|  |  |  | Goffice Reference Manual |  | 
|---|---|---|---|---|
enum GOPathDirection; enum GOPathOptions; GOPathPoint; GOPath; #define IS_GO_PATH (x) GOPath* go_path_new (void); void go_path_clear (GOPath *path); void go_path_free (GOPath *path); void go_path_set_options (GOPath *path, GOPathOptions options); GOPathOptions go_path_get_options (GOPath const *path); void go_path_move_to (GOPath *path, double x, double y); void go_path_line_to (GOPath *path, double x, double y); void go_path_curve_to (GOPath *path, double x0, double y0, double x1, double y1, double x2, double y2); void go_path_close (GOPath *path); void go_path_ring_wedge (GOPath *path, double cx, double cy, double rx_out, double ry_out, double rx_in, double ry_in, double th0, double th1); void go_path_pie_wedge (GOPath *path, double cx, double cy, double rx, double ry, double th0, double th1); void go_path_arc (GOPath *path, double cx, double cy, double rx, double ry, double th0, double th1); void go_path_arc_to (GOPath *path, double cx, double cy, double rx, double ry, double th0, double th1); void go_path_rectangle (GOPath *path, double x, double y, double width, double height); void go_path_interpret (GOPath const *path, GOPathDirection direction, GOPathMoveToFunc *move_to, GOPathLineToFunc *line_to, GOPathCurveToFunc *curve_to, GOPathClosePathFunc *close_path, void *closure);
typedef enum {
	GO_PATH_DIRECTION_FORWARD,
	GO_PATH_DIRECTION_BACKWARD
} GOPathDirection;
typedef enum {
	GO_PATH_OPTIONS_SNAP_COORDINATES 	= 1<<0,
	GO_PATH_OPTIONS_SNAP_WIDTH		= 1<<1,
	GO_PATH_OPTIONS_SHARP			= 3
} GOPathOptions;
typedef struct {
	GOPathDataBuffer *data_buffer_head;
	GOPathDataBuffer *data_buffer_tail;
	gboolean sharp;
} GOPath;
void go_path_free (GOPath *path);
Frees all memory allocated for path.
| 
 | a GOPath | 
void go_path_set_options (GOPath *path, GOPathOptions options);
| 
 | |
| 
 | 
void go_path_curve_to (GOPath *path, double x0, double y0, double x1, double y1, double x2, double y2);
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | 
void go_path_ring_wedge (GOPath *path, double cx, double cy, double rx_out, double ry_out, double rx_in, double ry_in, double th0, double th1);
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | 
void go_path_pie_wedge (GOPath *path, double cx, double cy, double rx, double ry, double th0, double th1);
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | 
void go_path_arc (GOPath *path, double cx, double cy, double rx, double ry, double th0, double th1);
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | 
void go_path_arc_to (GOPath *path, double cx, double cy, double rx, double ry, double th0, double th1);
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | 
void go_path_rectangle (GOPath *path, double x, double y, double width, double height);
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | 
void go_path_interpret (GOPath const *path, GOPathDirection direction, GOPathMoveToFunc *move_to, GOPathLineToFunc *line_to, GOPathCurveToFunc *curve_to, GOPathClosePathFunc *close_path, void *closure);
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |