gerbv  2.6A
gerbv.h File Reference

Go to the source code of this file.

Data Structures

struct  error_list
struct  gerbv_stats_t
struct  drill_list
struct  gerbv_drill_stats_t
struct  gerbv_selection_info_t
struct  gerbv_user_transformation_t
struct  gerbv_render_size_t
struct  gerbv_layer_t
struct  gerbv_netstate_t
struct  gerbv_net
struct  gerbv_format
struct  gerbv_image_info
struct  gerbv_image_t
struct  gerbv_fileinfo_t
struct  gerbv_project_t
struct  gerbv_layer_color
struct  gerbv_render_info_t

Typedefs

typedef struct error_list gerbv_error_list_t
typedef struct drill_list gerbv_drill_list_t
typedef struct gerbv_net gerbv_net_t
typedef struct gerbv_format gerbv_format_t
typedef struct gerbv_image_info gerbv_image_info_t

Enumerations

enum  gerbv_opcodes_t {
  GERBV_OPCODE_NOP, GERBV_OPCODE_PUSH, GERBV_OPCODE_PPUSH, GERBV_OPCODE_PPOP,
  GERBV_OPCODE_ADD, GERBV_OPCODE_SUB, GERBV_OPCODE_MUL, GERBV_OPCODE_DIV,
  GERBV_OPCODE_PRIM
}
enum  gerbv_message_type_t { GERBV_MESSAGE_FATAL, GERBV_MESSAGE_ERROR, GERBV_MESSAGE_WARNING, GERBV_MESSAGE_NOTE }
enum  gerbv_aperture_type_t {
  GERBV_APTYPE_NONE, GERBV_APTYPE_CIRCLE, GERBV_APTYPE_RECTANGLE, GERBV_APTYPE_OVAL,
  GERBV_APTYPE_POLYGON, GERBV_APTYPE_MACRO, GERBV_APTYPE_MACRO_CIRCLE, GERBV_APTYPE_MACRO_OUTLINE,
  GERBV_APTYPE_MACRO_POLYGON, GERBV_APTYPE_MACRO_MOIRE, GERBV_APTYPE_MACRO_THERMAL, GERBV_APTYPE_MACRO_LINE20,
  GERBV_APTYPE_MACRO_LINE21, GERBV_APTYPE_MACRO_LINE22
}
enum  gerbv_aperture_state_t { GERBV_APERTURE_STATE_OFF, GERBV_APERTURE_STATE_ON, GERBV_APERTURE_STATE_FLASH }
enum  gerbv_unit_t { GERBV_UNIT_INCH, GERBV_UNIT_MM, GERBV_UNIT_UNSPECIFIED }
enum  gerbv_polarity_t { GERBV_POLARITY_POSITIVE, GERBV_POLARITY_NEGATIVE, GERBV_POLARITY_DARK, GERBV_POLARITY_CLEAR }
enum  gerbv_omit_zeros_t { GERBV_OMIT_ZEROS_LEADING, GERBV_OMIT_ZEROS_TRAILING, GERBV_OMIT_ZEROS_EXPLICIT, GERBV_OMIT_ZEROS_UNSPECIFIED }
enum  gerbv_coordinate_t { GERBV_COORDINATE_ABSOLUTE, GERBV_COORDINATE_INCREMENTAL }
enum  gerbv_interpolation_t {
  GERBV_INTERPOLATION_LINEARx1, GERBV_INTERPOLATION_x10, GERBV_INTERPOLATION_LINEARx01, GERBV_INTERPOLATION_LINEARx001,
  GERBV_INTERPOLATION_CW_CIRCULAR, GERBV_INTERPOLATION_CCW_CIRCULAR, GERBV_INTERPOLATION_PAREA_START, GERBV_INTERPOLATION_PAREA_END,
  GERBV_INTERPOLATION_DELETED
}
enum  gerbv_layertype_t { GERBV_LAYERTYPE_RS274X, GERBV_LAYERTYPE_DRILL, GERBV_LAYERTYPE_PICKANDPLACE_TOP, GERBV_LAYERTYPE_PICKANDPLACE_BOT }
enum  gerbv_selection_t { GERBV_SELECTION_EMPTY, GERBV_SELECTION_POINT_CLICK, GERBV_SELECTION_DRAG_BOX }
enum  gerbv_render_types_t {
  GERBV_RENDER_TYPE_GDK, GERBV_RENDER_TYPE_GDK_XOR, GERBV_RENDER_TYPE_CAIRO_NORMAL, GERBV_RENDER_TYPE_CAIRO_HIGH_QUALITY,
  GERBV_RENDER_TYPE_MAX
}

Functions

gerbv_image_tgerbv_create_image (gerbv_image_t *image, const gchar *type)
void gerbv_destroy_image (gerbv_image_t *image)
void gerbv_image_copy_image (gerbv_image_t *sourceImage, gerbv_user_transformation_t *transform, gerbv_image_t *destinationImage)
gerbv_image_tgerbv_image_duplicate_image (gerbv_image_t *sourceImage, gerbv_user_transformation_t *transform)
void gerbv_image_delete_net (gerbv_net_t *currentNet)
gerbv_net_tgerbv_image_return_next_renderable_object (gerbv_net_t *oldNet)
gerbv_project_tgerbv_create_project (void)
void gerbv_destroy_project (gerbv_project_t *gerbvProject)
void gerbv_open_layer_from_filename (gerbv_project_t *gerbvProject, gchar *filename)
void gerbv_open_layer_from_filename_with_color (gerbv_project_t *gerbvProject, gchar *filename, guint16 red, guint16 green, guint16 blue, guint16 alpha)
void gerbv_destroy_fileinfo (gerbv_fileinfo_t *fileInfo)
void gerbv_render_zoom_to_fit_display (gerbv_project_t *gerbvProject, gerbv_render_info_t *renderInfo)
void gerbv_render_layer_to_cairo_target (cairo_t *cr, gerbv_fileinfo_t *fileInfo, gerbv_render_info_t *renderInfo)
void gerbv_export_png_file_from_project_autoscaled (gerbv_project_t *gerbvProject, int widthInPixels, int heightInPixels, gchar const *filename)
void gerbv_export_png_file_from_project (gerbv_project_t *gerbvProject, gerbv_render_info_t *renderInfo, gchar const *filename)
void gerbv_export_pdf_file_from_project_autoscaled (gerbv_project_t *gerbvProject, gchar const *filename)
void gerbv_export_pdf_file_from_project (gerbv_project_t *gerbvProject, gerbv_render_info_t *renderInfo, gchar const *filename)
void gerbv_export_postscript_file_from_project_autoscaled (gerbv_project_t *gerbvProject, gchar const *filename)
void gerbv_export_postscript_file_from_project (gerbv_project_t *gerbvProject, gerbv_render_info_t *renderInfo, gchar const *filename)
void gerbv_export_svg_file_from_project_autoscaled (gerbv_project_t *gerbvProject, gchar const *filename)
void gerbv_export_svg_file_from_project (gerbv_project_t *gerbvProject, gerbv_render_info_t *renderInfo, gchar const *filename)
gerbv_image_tgerbv_create_rs274x_image_from_filename (gchar *filename)
gboolean gerbv_export_rs274x_file_from_image (gchar *filename, gerbv_image_t *image, gerbv_user_transformation_t *transform)
gboolean gerbv_export_drill_file_from_image (gchar *filename, gerbv_image_t *image, gerbv_user_transformation_t *transform)
void gerbv_image_create_line_object (gerbv_image_t *image, gdouble startX, gdouble startY, gdouble endX, gdouble endY, gdouble lineWidth, gerbv_aperture_type_t apertureType)
void gerbv_image_create_arc_object (gerbv_image_t *image, gdouble centerX, gdouble centerY, gdouble radius, gdouble startAngle, gdouble endAngle, gdouble lineWidth, gerbv_aperture_type_t apertureType)
void gerbv_image_create_rectangle_object (gerbv_image_t *image, gdouble coordinateX, gdouble coordinateY, gdouble width, gdouble height)
void gerbv_image_create_dummy_apertures (gerbv_image_t *parsed_image)
gerbv_drill_stats_tgerbv_drill_stats_new (void)
void gerbv_drill_stats_destroy (gerbv_drill_stats_t *)
void gerbv_drill_stats_add_layer (gerbv_drill_stats_t *accum_stats, gerbv_drill_stats_t *input_stats, int this_layer)
gerbv_stats_tgerbv_stats_new (void)
void gerbv_stats_destroy (gerbv_stats_t *)
void gerbv_stats_add_layer (gerbv_stats_t *accum_stats, gerbv_stats_t *input_stats, int this_layer)

Detailed Description

The main header file for the libgerbv library.

Definition in file gerbv.h.

Typedef Documentation

Linked list of drills found in active layers. Used in reporting statistics

A linked list of errors found in the files

typedef struct gerbv_format gerbv_format_t

Struct holding info about interpreting the Gerber files read e.g. leading zeros, etc.

Struct holding info about a particular image

typedef struct gerbv_net gerbv_net_t

The structure used to hold a geometric entity (line/polygon/etc)

Enumeration Type Documentation

the current state of the aperture drawing tool

Enumerator:
GERBV_APERTURE_STATE_OFF 

tool drawing is off, and nothing will be drawn

GERBV_APERTURE_STATE_ON 

tool drawing is on, and something will be drawn

GERBV_APERTURE_STATE_FLASH 

tool is flashing, and will draw a single aperture

Definition at line 147 of file gerbv.h.

The different aperture types available Please keep these in sync with the aperture names defined by aperture_names in callbacks.c

Enumerator:
GERBV_APTYPE_NONE 

no aperture used

GERBV_APTYPE_CIRCLE 

a round aperture

GERBV_APTYPE_RECTANGLE 

a rectangular aperture

GERBV_APTYPE_OVAL 

an ovular (obround) aperture

GERBV_APTYPE_POLYGON 

a polygon aperture

GERBV_APTYPE_MACRO 

a RS274X macro

GERBV_APTYPE_MACRO_CIRCLE 

a RS274X circle macro

GERBV_APTYPE_MACRO_OUTLINE 

a RS274X outline macro

GERBV_APTYPE_MACRO_POLYGON 

a RS274X polygon macro

GERBV_APTYPE_MACRO_MOIRE 

a RS274X moire macro

GERBV_APTYPE_MACRO_THERMAL 

a RS274X thermal macro

GERBV_APTYPE_MACRO_LINE20 

a RS274X line (code 20) macro

GERBV_APTYPE_MACRO_LINE21 

a RS274X line (code 21) macro

GERBV_APTYPE_MACRO_LINE22 

a RS274X line (code 22) macro

Definition at line 130 of file gerbv.h.

the coordinate system used

Enumerator:
GERBV_COORDINATE_ABSOLUTE 

all coordinates are absolute from a common origin

GERBV_COORDINATE_INCREMENTAL 

all coordinates are relative to the previous coordinate

Definition at line 173 of file gerbv.h.

the interpolation methods available

Enumerator:
GERBV_INTERPOLATION_LINEARx1 

draw a line

GERBV_INTERPOLATION_x10 

draw a line

GERBV_INTERPOLATION_LINEARx01 

draw a line

GERBV_INTERPOLATION_LINEARx001 

draw a line

GERBV_INTERPOLATION_CW_CIRCULAR 

draw an arc in the clockwise direction

GERBV_INTERPOLATION_CCW_CIRCULAR 

draw an arc in the counter-clockwise direction

GERBV_INTERPOLATION_PAREA_START 

start a polygon draw

GERBV_INTERPOLATION_PAREA_END 

end a polygon draw

GERBV_INTERPOLATION_DELETED 

the net has been deleted by the user, and will not be drawn

Definition at line 178 of file gerbv.h.

The different layer types used

Enumerator:
GERBV_LAYERTYPE_RS274X 

the file is a RS274X file

GERBV_LAYERTYPE_DRILL 

the file is an Excellon drill file

GERBV_LAYERTYPE_PICKANDPLACE_TOP 

the file is a CSV pick and place file, top side

GERBV_LAYERTYPE_PICKANDPLACE_BOT 

the file is a CSV pick and place file, bottom side

Definition at line 198 of file gerbv.h.

The different message types used in libgerbv

Enumerator:
GERBV_MESSAGE_FATAL 

processing cannot continue

GERBV_MESSAGE_ERROR 

something went wrong, but processing can still continue

GERBV_MESSAGE_WARNING 

something was encountered that may provide the wrong output

GERBV_MESSAGE_NOTE 

an irregularity was encountered, but needs no intervention

Definition at line 121 of file gerbv.h.

the decimal point parsing style used

Enumerator:
GERBV_OMIT_ZEROS_LEADING 

omit extra zeros before the decimal point

GERBV_OMIT_ZEROS_TRAILING 

omit extra zeros after the decimal point

GERBV_OMIT_ZEROS_EXPLICIT 

explicitly specify how many decimal places are used

GERBV_OMIT_ZEROS_UNSPECIFIED 

use the default parsing style

Definition at line 166 of file gerbv.h.

The aperture macro commands

Enumerator:
GERBV_OPCODE_NOP 

no operation

GERBV_OPCODE_PUSH 

push the instruction onto the stack

GERBV_OPCODE_PPUSH 

push parameter onto stack

GERBV_OPCODE_PPOP 

pop parameter from stack

GERBV_OPCODE_ADD 

mathmatical add operation

GERBV_OPCODE_SUB 

mathmatical subtract operation

GERBV_OPCODE_MUL 

mathmatical multiply operation

GERBV_OPCODE_DIV 

mathmatical divide operation

GERBV_OPCODE_PRIM 

draw macro primative

Definition at line 109 of file gerbv.h.

the different drawing polarities available

Enumerator:
GERBV_POLARITY_POSITIVE 

draw "positive", using the current layer's polarity

GERBV_POLARITY_NEGATIVE 

draw "negative", reversing the current layer's polarity

GERBV_POLARITY_DARK 

add to the current rendering

GERBV_POLARITY_CLEAR 

subtract from the current rendering

Definition at line 159 of file gerbv.h.

The different rendering modes available to libgerbv

Enumerator:
GERBV_RENDER_TYPE_GDK 

render using normal GDK drawing functions

GERBV_RENDER_TYPE_GDK_XOR 

use the GDK_XOR mask to draw a pseudo-transparent scene

GERBV_RENDER_TYPE_CAIRO_NORMAL 

use the cairo library

GERBV_RENDER_TYPE_CAIRO_HIGH_QUALITY 

use the cairo library with the smoothest edges

GERBV_RENDER_TYPE_MAX 

End-of-enum indicator

Definition at line 232 of file gerbv.h.

The different selection modes available

Enumerator:
GERBV_SELECTION_EMPTY 

the selection buffer is empty

GERBV_SELECTION_POINT_CLICK 

the user clicked on a single point

GERBV_SELECTION_DRAG_BOX 

the user dragged a box to encompass one or more objects

Definition at line 226 of file gerbv.h.

the current unit used

Enumerator:
GERBV_UNIT_INCH 

inches

GERBV_UNIT_MM 

mm

GERBV_UNIT_UNSPECIFIED 

use default units

Definition at line 153 of file gerbv.h.

Function Documentation

gerbv_image_t* gerbv_create_image ( gerbv_image_t image,
const gchar *  type 
)

Allocate a new gerbv_image structure.

Returns
the newly created image
Parameters
imagethe old image to free or NULL
typethe type of image to create

Definition at line 46 of file gerb_image.c.

References gerbv_image_t::drill_stats, gerbv_destroy_image(), GERBV_POLARITY_DARK, gerbv_image_t::gerbv_stats, gerbv_image_t::info, gerbv_net::layer, gerbv_image_t::layers, gerbv_image_t::netlist, gerbv_layer_t::polarity, gerbv_netstate_t::scaleA, gerbv_netstate_t::scaleB, gerbv_net::state, gerbv_image_t::states, and gerbv_layer_t::stepAndRepeat.

Referenced by gerbv_image_duplicate_image(), and parse_gerb().

gerbv_image_t* gerbv_create_rs274x_image_from_filename ( gchar *  filename)

Parse a RS274X file and return the parsed image.

Returns
the new gerbv_image_t, or NULL if not successful
Parameters
filenamethe filename of the file to be parsed

Definition at line 527 of file gerbv.c.

References parse_gerb().

void gerbv_destroy_fileinfo ( gerbv_fileinfo_t fileInfo)

Free a fileinfo structure.

Parameters
fileInfothe fileinfo to free

Definition at line 159 of file gerbv.c.

References gerbv_fileinfo_t::fullPathname, gerbv_destroy_image(), gerbv_fileinfo_t::image, gerbv_fileinfo_t::name, and gerbv_fileinfo_t::privateRenderData.

Referenced by gerbv_destroy_project().

void gerbv_destroy_project ( gerbv_project_t gerbvProject)

Free a project and all related variables.

Parameters
gerbvProjectthe project to destroy

Definition at line 139 of file gerbv.c.

References gerbv_project_t::execname, gerbv_project_t::execpath, gerbv_project_t::file, gerbv_destroy_fileinfo(), gerbv_project_t::last_loaded, gerbv_project_t::path, and gerbv_project_t::project.

void gerbv_drill_stats_add_layer ( gerbv_drill_stats_t accum_stats,
gerbv_drill_stats_t input_stats,
int  this_layer 
)

Add stats gathered from specified layer to accumulatedd drill stats compiled from all layers

Definition at line 112 of file drill_stats.c.

Referenced by generate_drill_analysis().

void gerbv_drill_stats_destroy ( gerbv_drill_stats_t )

Free the memory for a drill stats struct

Definition at line 102 of file drill_stats.c.

Referenced by callbacks_analyze_active_drill_activate(), and gerbv_destroy_image().

gerbv_drill_stats_t* gerbv_drill_stats_new ( void  )

Allocates a new drill_stats structure.

Create new struct for holding drill stats

Returns
drill_stats pointer on success, NULL on ERROR

Definition at line 46 of file drill_stats.c.

Referenced by generate_drill_analysis().

gboolean gerbv_export_drill_file_from_image ( gchar *  filename,
gerbv_image_t image,
gerbv_user_transformation_t transform 
)

Export an image to a new file in Excellon drill format.

Returns
TRUE if successful, or FALSE if not
Parameters
filenamethe filename for the new file
imagethe image to export
transformthe transformation to apply before exporting

Definition at line 42 of file export-drill.c.

References gerbv_net::aperture, gerbv_image_t::aperture, gerbv_net::aperture_state, GERBV_APERTURE_STATE_FLASH, GERBV_APERTURE_STATE_ON, GERBV_APTYPE_CIRCLE, gerbv_destroy_image(), gerbv_image_duplicate_image(), gerbv_image_t::netlist, gerbv_net::next, gerbv_net::start_x, gerbv_net::start_y, gerbv_net::stop_x, and gerbv_net::stop_y.

void gerbv_export_pdf_file_from_project ( gerbv_project_t gerbvProject,
gerbv_render_info_t renderInfo,
gchar const *  filename 
)

Render a project to a PDF file using user-specified render info.

Parameters
gerbvProjectthe project to render
renderInfothe render settings for the rendered image
filenamethe filename for the exported PDF file

Definition at line 108 of file exportimage.c.

References gerbv_render_info_t::displayHeight, and gerbv_render_info_t::displayWidth.

Referenced by gerbv_export_pdf_file_from_project_autoscaled().

void gerbv_export_pdf_file_from_project_autoscaled ( gerbv_project_t gerbvProject,
gchar const *  filename 
)

Render a project to a PDF file, autoscaling the layers to fit inside the specified image dimensions.

Parameters
gerbvProjectthe project to render
filenamethe filename for the exported PDF file

Definition at line 103 of file exportimage.c.

References gerbv_export_pdf_file_from_project().

void gerbv_export_png_file_from_project ( gerbv_project_t gerbvProject,
gerbv_render_info_t renderInfo,
gchar const *  filename 
)

Render a project to a PNG file using user-specified render info.

Parameters
gerbvProjectthe project to render
renderInfothe render settings for the rendered image
filenamethe filename for the exported PNG file

Definition at line 91 of file exportimage.c.

References gerbv_render_info_t::displayHeight, and gerbv_render_info_t::displayWidth.

Referenced by gerbv_export_png_file_from_project_autoscaled().

void gerbv_export_png_file_from_project_autoscaled ( gerbv_project_t gerbvProject,
int  widthInPixels,
int  heightInPixels,
gchar const *  filename 
)

Render a project to a PNG file, autoscaling the layers to fit inside the specified image dimensions.

Parameters
gerbvProjectthe project to render
widthInPixelsthe width of the rendered picture (in pixels)
heightInPixelsthe height of the rendered picture (in pixels)
filenamethe filename for the exported PNG file

Definition at line 81 of file exportimage.c.

References gerbv_export_png_file_from_project(), GERBV_RENDER_TYPE_CAIRO_HIGH_QUALITY, and gerbv_render_zoom_to_fit_display().

void gerbv_export_postscript_file_from_project ( gerbv_project_t gerbvProject,
gerbv_render_info_t renderInfo,
gchar const *  filename 
)

Render a project to a Postscript file using user-specified render info.

Parameters
gerbvProjectthe project to render
renderInfothe render settings for the rendered image
filenamethe filename for the exported Postscript file

Definition at line 121 of file exportimage.c.

References gerbv_render_info_t::displayHeight, and gerbv_render_info_t::displayWidth.

Referenced by gerbv_export_postscript_file_from_project_autoscaled().

void gerbv_export_postscript_file_from_project_autoscaled ( gerbv_project_t gerbvProject,
gchar const *  filename 
)

Render a project to a Postscript file, autoscaling the layers to fit inside the specified image dimensions.

Parameters
gerbvProjectthe project to render
filenamethe filename for the exported Postscript file

Definition at line 116 of file exportimage.c.

References gerbv_export_postscript_file_from_project().

void gerbv_export_svg_file_from_project ( gerbv_project_t gerbvProject,
gerbv_render_info_t renderInfo,
gchar const *  filename 
)

Render a project to a file using user-specified render info.

Parameters
gerbvProjectthe project to render
renderInfothe render settings for the rendered image
filenamethe filename for the exported file

Definition at line 133 of file exportimage.c.

References gerbv_render_info_t::displayHeight, and gerbv_render_info_t::displayWidth.

Referenced by gerbv_export_svg_file_from_project_autoscaled().

void gerbv_export_svg_file_from_project_autoscaled ( gerbv_project_t gerbvProject,
gchar const *  filename 
)

Render a project to a SVG file, autoscaling the layers to fit inside the specified image dimensions.

Parameters
gerbvProjectthe project to render
filenamethe filename for the exported file

Definition at line 128 of file exportimage.c.

References gerbv_export_svg_file_from_project().

void gerbv_image_copy_image ( gerbv_image_t sourceImage,
gerbv_user_transformation_t transform,
gerbv_image_t destinationImage 
)

Copy an image into an existing image, effectively merging the two together.

Parameters
sourceImagethe source image
transformthe transformation to apply to the new image, or NULL for none
destinationImagethe destination image to copy to

Definition at line 562 of file gerb_image.c.

References gerbv_image_t::aperture, gerbv_image_t::layers, gerbv_image_t::netlist, gerbv_layer_t::next, gerbv_netstate_t::next, gerbv_net::next, and gerbv_image_t::states.

Referenced by merge_images().

void gerbv_image_create_arc_object ( gerbv_image_t image,
gdouble  centerX,
gdouble  centerY,
gdouble  radius,
gdouble  startAngle,
gdouble  endAngle,
gdouble  lineWidth,
gerbv_aperture_type_t  apertureType 
)

Draw an arc on the specified image.

Parameters
imagethe image to draw to
centerXthe center X coordinate
centerYthe center Y coordinate
radiusthe arc radius
startAnglethe start angle (in CCW degrees)
endAnglethe start angle (in CCW degrees)
lineWidththe width of the line to draw
apertureTypethe type of aperture to use (e.g. CIRCLE)

Definition at line 752 of file gerb_image.c.

References gerbv_net::aperture, gerbv_net::aperture_state, gerbv_net::boundingBox, gerbv_net::cirseg, GERBV_APERTURE_STATE_ON, GERBV_INTERPOLATION_CCW_CIRCULAR, gerbv_net::interpolation, gerbv_net::start_x, gerbv_net::start_y, gerbv_net::stop_x, and gerbv_net::stop_y.

void gerbv_image_create_dummy_apertures ( gerbv_image_t parsed_image)

Create any missing apertures in the specified image.

Parameters
parsed_imagethe image to repair

Definition at line 987 of file gerb_image.c.

References gerbv_net::aperture, gerbv_image_t::aperture, GERBV_APTYPE_CIRCLE, gerbv_image_t::netlist, and gerbv_net::next.

void gerbv_image_create_line_object ( gerbv_image_t image,
gdouble  startX,
gdouble  startY,
gdouble  endX,
gdouble  endY,
gdouble  lineWidth,
gerbv_aperture_type_t  apertureType 
)

Draw a line on the specified image.

Parameters
imagethe image to draw to
startXthe starting X coordinate
startYthe starting Y coordinate
endXthe ending X coordinate
endYthe ending Y coordinate
lineWidththe width of the line to draw
apertureTypethe type of aperture to use (e.g. CIRCLE)

Definition at line 795 of file gerb_image.c.

References gerbv_net::aperture, gerbv_net::aperture_state, gerbv_net::boundingBox, GERBV_APERTURE_STATE_FLASH, GERBV_APERTURE_STATE_ON, GERBV_INTERPOLATION_LINEARx1, gerbv_net::interpolation, gerbv_net::start_x, gerbv_net::start_y, gerbv_net::stop_x, and gerbv_net::stop_y.

void gerbv_image_create_rectangle_object ( gerbv_image_t image,
gdouble  coordinateX,
gdouble  coordinateY,
gdouble  width,
gdouble  height 
)

Draw a filled rectangle on the specified image.

Parameters
imagethe image to draw to
coordinateXthe X coordinate of the lower left corner
coordinateYthe Y coordinate of the lower left corner
widththe width of the drawn rectangle
heightthe height of the drawn rectangle

Definition at line 653 of file gerb_image.c.

References gerbv_net::aperture_state, gerbv_net::boundingBox, GERBV_APERTURE_STATE_OFF, GERBV_APERTURE_STATE_ON, GERBV_INTERPOLATION_LINEARx1, GERBV_INTERPOLATION_PAREA_END, GERBV_INTERPOLATION_PAREA_START, gerbv_net::interpolation, gerbv_image_t::netlist, gerbv_net::next, gerbv_net::start_x, gerbv_net::start_y, gerbv_net::stop_x, and gerbv_net::stop_y.

void gerbv_image_delete_net ( gerbv_net_t currentNet)
gerbv_image_t* gerbv_image_duplicate_image ( gerbv_image_t sourceImage,
gerbv_user_transformation_t transform 
)

Duplicate an existing image and return the new copy.

Returns
the newly created image
Parameters
sourceImagethe source image
transformthe transformation to apply to the new image, or NULL for none

Definition at line 524 of file gerb_image.c.

References gerbv_image_t::aperture, gerbv_create_image(), gerbv_image_t::info, gerbv_image_t::layers, gerbv_image_t::layertype, and gerbv_image_t::states.

Referenced by gerbv_export_drill_file_from_image(), gerbv_export_rs274x_file_from_image(), and merge_images().

void gerbv_open_layer_from_filename ( gerbv_project_t gerbvProject,
gchar *  filename 
)

Open a file, parse the contents, and add a new layer to an existing project.

Parameters
gerbvProjectthe existing project to add the new layer to
filenamethe full pathname of the file to be parsed

Definition at line 171 of file gerbv.c.

References gerbv_project_t::file, gerbv_project_t::last_loaded, and gerbv_fileinfo_t::layer_dirty.

Referenced by callbacks_open_layer_activate().

void gerbv_open_layer_from_filename_with_color ( gerbv_project_t gerbvProject,
gchar *  filename,
guint16  red,
guint16  green,
guint16  blue,
guint16  alpha 
)

Open a file, parse the contents, and add a new layer to an existing project while setting the color of the layer.

Parameters
gerbvProjectthe existing project to add the new layer to
filenamethe full pathname of the file to be parsed
redthe value for the red color component
greenthe value for the green color component
bluethe value for the blue color component
alphathe value for the alpha color component

Definition at line 189 of file gerbv.c.

References gerbv_fileinfo_t::alpha, gerbv_fileinfo_t::color, gerbv_project_t::file, gerbv_project_t::last_loaded, and gerbv_fileinfo_t::layer_dirty.

void gerbv_render_layer_to_cairo_target ( cairo_t *  cr,
gerbv_fileinfo_t fileInfo,
gerbv_render_info_t renderInfo 
)

Render a layer to a cairo context.

Parameters
crthe cairo context
fileInfothe layer fileinfo pointer
renderInfothe scene render info

Definition at line 811 of file gerbv.c.

void gerbv_render_zoom_to_fit_display ( gerbv_project_t gerbvProject,
gerbv_render_info_t renderInfo 
)

Calculate the zoom and translations to fit the rendered scene inside the given scene size.

Parameters
gerbvProjectthe project to use for calculating
renderInfothe scene render pointer (updates the values in this parameter)

Definition at line 609 of file gerbv.c.

References gerbv_render_size_t::bottom, gerbv_render_info_t::displayHeight, gerbv_render_info_t::displayWidth, gerbv_render_size_t::left, gerbv_render_info_t::lowerLeftX, gerbv_render_info_t::lowerLeftY, gerbv_render_size_t::right, gerbv_render_info_t::scaleFactorX, gerbv_render_info_t::scaleFactorY, and gerbv_render_size_t::top.

Referenced by callbacks_open_layer_activate(), callbacks_open_project_activate(), and gerbv_export_png_file_from_project_autoscaled().

void gerbv_stats_add_layer ( gerbv_stats_t accum_stats,
gerbv_stats_t input_stats,
int  this_layer 
)

Add stats gathered from specified layer to accumulated Gerber stats compiled from all layers

This fcn is called with a two gerbv_stats_t structs: accum_stats and input_stats. Accum_stats holds a list of stats accumulated for all layers. This will be reported in the report window. Input_stats holds a list of the stats for one particular layer to be added to the accumulated list.

Definition at line 123 of file gerb_stats.c.

Referenced by generate_gerber_analysis().

void gerbv_stats_destroy ( gerbv_stats_t )

Free the memory for a stats struct

Definition at line 105 of file gerb_stats.c.

Referenced by callbacks_analyze_active_gerbers_activate(), and gerbv_destroy_image().

gerbv_stats_t* gerbv_stats_new ( void  )

Allocates a new gerbv_stats structure.

Create new struct for holding Gerber stats

Returns
gerbv_stats pointer on success, NULL on ERROR

Definition at line 44 of file gerb_stats.c.

Referenced by generate_gerber_analysis(), and parse_gerb().