gnome-canvas-util

gnome-canvas-util

Synopsis

#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);

Object Hierarchy

  GBoxed
   +----GnomeCanvasPoints

Description

Details

struct GnomeCanvasPoints

struct GnomeCanvasPoints {
	double *coords;
	int num_points;
	int ref_count;
};

gnome_canvas_points_new ()

GnomeCanvasPoints * gnome_canvas_points_new             (int num_points);

Creates a structure that should be used to pass an array of points to items.

num_points :

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.

gnome_canvas_points_ref ()

GnomeCanvasPoints * gnome_canvas_points_ref             (GnomeCanvasPoints *points);

Increases the reference count of the specified points structure.

points :

A canvas points structure.

Returns :

The canvas points structure itself.

gnome_canvas_points_unref

#define             gnome_canvas_points_unref

gnome_canvas_points_free ()

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.

points :

A canvas points structure.

gnome_canvas_get_miter_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);

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.

x1 :

X coordinate of the first point

y1 :

Y coordinate of the first point

x2 :

X coordinate of the second (angle) point

y2 :

Y coordinate of the second (angle) point

x3 :

X coordinate of the third point

y3 :

Y coordinate of the third point

width :

Width of the line

mx1 :

The X coordinate of the first miter point is returned here.

my1 :

The Y coordinate of the first miter point is returned here.

mx2 :

The X coordinate of the second miter point is returned here.

my2 :

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.

gnome_canvas_get_butt_points ()

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.

x1 :

X coordinate of first point in the line

y1 :

Y cooordinate of first point in the line

x2 :

X coordinate of second point (endpoint) of the line

y2 :

Y coordinate of second point (endpoint) of the line

width :

Width of the line

project :

Whether the butt points should project out by width/2 distance

bx1 :

X coordinate of first butt point is returned here

by1 :

Y coordinate of first butt point is returned here

bx2 :

X coordinate of second butt point is returned here

by2 :

Y coordinate of second butt point is returned here

gnome_canvas_polygon_to_point ()

double              gnome_canvas_polygon_to_point       (double *poly,
                                                         int num_points,
                                                         double x,
                                                         double y);

Computes the distance between a point and a polygon.

poly :

Vertices of the polygon. X coordinates are in the even indices, and Y coordinates are in the odd indices

num_points :

Number of points in the polygon

x :

X coordinate of the point

y :

Y coordinate of the point

Returns :

The distance from the point to the polygon, or zero if the point is inside the polygon.

gnome_canvas_render_svp ()

void                gnome_canvas_render_svp             (GnomeCanvasBuf *buf,
                                                         ArtSVP *svp,
                                                         guint32 rgba);

Render the svp over the buf.

buf :

the canvas buffer to render over

svp :

the vector path to render

rgba :

the rgba color to render

gnome_canvas_update_svp ()

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.

canvas :

the canvas containing the svp that needs updating.

p_svp :

a pointer to the existing svp

new_svp :

the new svp

gnome_canvas_update_svp_clip ()

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.

canvas :

the canvas containing the svp that needs updating.

p_svp :

a pointer to the existing svp

new_svp :

the new svp

clip_svp :

a clip path, if non-null

gnome_canvas_item_reset_bounds ()

void                gnome_canvas_item_reset_bounds      (GnomeCanvasItem *item);

Resets the bounding box of a canvas item to an empty rectangle.

item :

A canvas item

gnome_canvas_item_update_svp ()

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.

item :

the canvas item containing the svp that needs updating.

p_svp :

a pointer to the existing svp

new_svp :

the new svp

gnome_canvas_item_update_svp_clip ()

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.

item :

the canvas item containing the svp that needs updating.

p_svp :

a pointer to the existing svp

new_svp :

the new svp

clip_svp :

a clip path, if non-null

gnome_canvas_item_request_redraw_svp ()

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.

item :

the item containing the svp

svp :

the svp that needs to be redrawn

gnome_canvas_update_bbox ()

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.

item :

the canvas item needing update

x1 :

Left coordinate of the new bounding box

y1 :

Top coordinate of the new bounding box

x2 :

Right coordinate of the new bounding box

y2 :

Bottom coordinate of the new bounding box

gnome_canvas_buf_ensure_buf ()

void                gnome_canvas_buf_ensure_buf         (GnomeCanvasBuf *buf);

Ensure that the buffer is in RGB format, suitable for compositing.

buf :

the buf that needs to be represened in RGB format

gnome_canvas_join_gdk_to_art ()

ArtPathStrokeJoinType gnome_canvas_join_gdk_to_art      (GdkJoinStyle gdk_join);

Convert from GDK line join specifier to libart.

gdk_join :

a join type, represented in GDK format

Returns :

The line join specifier in libart format.

gnome_canvas_cap_gdk_to_art ()

ArtPathStrokeCapType gnome_canvas_cap_gdk_to_art        (GdkCapStyle gdk_cap);

Convert from GDK line cap specifier to libart.

gdk_cap :

a cap type, represented in GDK format

Returns :

The line cap specifier in libart format.