| GNOME Canvas Library Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | ||||
#include <libgnomecanvas/libgnomecanvas.h> struct GnomeCanvasPoints; GnomeCanvasPoints * gnome_canvas_points_new (int num_points); GnomeCanvasPoints * gnome_canvas_points_ref (GnomeCanvasPoints *points); #define gnome_canvas_points_unref void gnome_canvas_points_free (GnomeCanvasPoints *points); int gnome_canvas_get_miter_points (double x1,double y1,double x2,double y2,double x3,double y3,double width,double *mx1,double *my1,double *mx2,double *my2); void gnome_canvas_get_butt_points (double x1,double y1,double x2,double y2,double width,int project,double *bx1,double *by1,double *bx2,double *by2); double gnome_canvas_polygon_to_point (double *poly,int num_points,double x,double y); void gnome_canvas_render_svp (GnomeCanvasBuf *buf,ArtSVP *svp,guint32 rgba); void gnome_canvas_update_svp (GnomeCanvas *canvas,ArtSVP **p_svp,ArtSVP *new_svp); void gnome_canvas_update_svp_clip (GnomeCanvas *canvas,ArtSVP **p_svp,ArtSVP *new_svp,ArtSVP *clip_svp); void gnome_canvas_item_reset_bounds (GnomeCanvasItem *item); void gnome_canvas_item_update_svp (GnomeCanvasItem *item,ArtSVP **p_svp,ArtSVP *new_svp); void gnome_canvas_item_update_svp_clip (GnomeCanvasItem *item,ArtSVP **p_svp,ArtSVP *new_svp,ArtSVP *clip_svp); void gnome_canvas_item_request_redraw_svp (GnomeCanvasItem *item,const ArtSVP *svp); void gnome_canvas_update_bbox (GnomeCanvasItem *item,int x1,int y1,int x2,int y2); void gnome_canvas_buf_ensure_buf (GnomeCanvasBuf *buf); ArtPathStrokeJoinType gnome_canvas_join_gdk_to_art (GdkJoinStyle gdk_join); ArtPathStrokeCapType gnome_canvas_cap_gdk_to_art (GdkCapStyle gdk_cap);
struct GnomeCanvasPoints {
double *coords;
int num_points;
int ref_count;
};
GnomeCanvasPoints * gnome_canvas_points_new (int num_points);
Creates a structure that should be used to pass an array of points to items.
|
The number of points to allocate space for in the array. |
Returns : |
A newly-created array of points. It should be filled in by the user. |
GnomeCanvasPoints * gnome_canvas_points_ref (GnomeCanvasPoints *points);
Increases the reference count of the specified points structure.
|
A canvas points structure. |
Returns : |
The canvas points structure itself. |
void gnome_canvas_points_free (GnomeCanvasPoints *points);
Decreases the reference count of the specified points structure. If it reaches zero, then the structure is freed.
|
A canvas points structure. |
int gnome_canvas_get_miter_points (double x1,double y1,double x2,double y2,double x3,double y3,double width,double *mx1,double *my1,double *mx2,double *my2);
Given three points forming an angle, computes the coordinates of the inside and outside points of the mitered corner formed by a line of a given width at that angle.
|
X coordinate of the first point |
|
Y coordinate of the first point |
|
X coordinate of the second (angle) point |
|
Y coordinate of the second (angle) point |
|
X coordinate of the third point |
|
Y coordinate of the third point |
|
Width of the line |
|
The X coordinate of the first miter point is returned here. |
|
The Y coordinate of the first miter point is returned here. |
|
The X coordinate of the second miter point is returned here. |
|
The Y coordinate of the second miter point is returned here. |
Returns : |
FALSE if the angle is less than 11 degrees (this is the same threshold as X uses. If this occurs, the return points are not modified. Otherwise, returns TRUE. |
void gnome_canvas_get_butt_points (double x1,double y1,double x2,double y2,double width,int project,double *bx1,double *by1,double *bx2,double *by2);
Computes the butt points of a line segment.
|
X coordinate of first point in the line |
|
Y cooordinate of first point in the line |
|
X coordinate of second point (endpoint) of the line |
|
Y coordinate of second point (endpoint) of the line |
|
Width of the line |
|
Whether the butt points should project out by width/2 distance |
|
X coordinate of first butt point is returned here |
|
Y coordinate of first butt point is returned here |
|
X coordinate of second butt point is returned here |
|
Y coordinate of second butt point is returned here |
double gnome_canvas_polygon_to_point (double *poly,int num_points,double x,double y);
Computes the distance between a point and a polygon.
|
Vertices of the polygon. X coordinates are in the even indices, and Y coordinates are in the odd indices |
|
Number of points in the polygon |
|
X coordinate of the point |
|
Y coordinate of the point |
Returns : |
The distance from the point to the polygon, or zero if the point is inside the polygon. |
void gnome_canvas_render_svp (GnomeCanvasBuf *buf,ArtSVP *svp,guint32 rgba);
Render the svp over the buf.
|
the canvas buffer to render over |
|
the vector path to render |
|
the rgba color to render |
void gnome_canvas_update_svp (GnomeCanvas *canvas,ArtSVP **p_svp,ArtSVP *new_svp);
Sets the svp to the new value, requesting repaint on what's changed. This function takes responsibility for freeing new_svp.
|
the canvas containing the svp that needs updating. |
|
a pointer to the existing svp |
|
the new svp |
void gnome_canvas_update_svp_clip (GnomeCanvas *canvas,ArtSVP **p_svp,ArtSVP *new_svp,ArtSVP *clip_svp);
Sets the svp to the new value, clipping if necessary, and requesting repaint on what's changed. This function takes responsibility for freeing new_svp.
|
the canvas containing the svp that needs updating. |
|
a pointer to the existing svp |
|
the new svp |
|
a clip path, if non-null |
void gnome_canvas_item_reset_bounds (GnomeCanvasItem *item);
Resets the bounding box of a canvas item to an empty rectangle.
|
A canvas item |
void gnome_canvas_item_update_svp (GnomeCanvasItem *item,ArtSVP **p_svp,ArtSVP *new_svp);
Sets the svp to the new value, requesting repaint on what's changed. This function takes responsibility for freeing new_svp. This routine also adds the svp's bbox to the item's.
|
the canvas item containing the svp that needs updating. |
|
a pointer to the existing svp |
|
the new svp |
void gnome_canvas_item_update_svp_clip (GnomeCanvasItem *item,ArtSVP **p_svp,ArtSVP *new_svp,ArtSVP *clip_svp);
Sets the svp to the new value, clipping if necessary, and requesting repaint on what's changed. This function takes responsibility for freeing new_svp.
|
the canvas item containing the svp that needs updating. |
|
a pointer to the existing svp |
|
the new svp |
|
a clip path, if non-null |
void gnome_canvas_item_request_redraw_svp (GnomeCanvasItem *item,const ArtSVP *svp);
Request redraw of the svp if in aa mode, or the entire item in in xlib mode.
|
the item containing the svp |
|
the svp that needs to be redrawn |
void gnome_canvas_update_bbox (GnomeCanvasItem *item,int x1,int y1,int x2,int y2);
Sets the bbox to the new value, requesting full repaint.
|
the canvas item needing update |
|
Left coordinate of the new bounding box |
|
Top coordinate of the new bounding box |
|
Right coordinate of the new bounding box |
|
Bottom coordinate of the new bounding box |
void gnome_canvas_buf_ensure_buf (GnomeCanvasBuf *buf);
Ensure that the buffer is in RGB format, suitable for compositing.
|
the buf that needs to be represened in RGB format |
ArtPathStrokeJoinType gnome_canvas_join_gdk_to_art (GdkJoinStyle gdk_join);
Convert from GDK line join specifier to libart.
|
a join type, represented in GDK format |
Returns : |
The line join specifier in libart format. |
ArtPathStrokeCapType gnome_canvas_cap_gdk_to_art (GdkCapStyle gdk_cap);
Convert from GDK line cap specifier to libart.
|
a cap type, represented in GDK format |
Returns : |
The line cap specifier in libart format. |