![]() |
![]() |
![]() |
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. |