manpagez: man pages & more
html files: goffice-0.10
Home | html | info | man

Geometry helpers

Geometry helpers

Object Hierarchy

    GEnum
    ╰── GODirection

Description

Functions

go_direction_get_name ()

char const *
go_direction_get_name (GODirection d);

Returns


go_direction_is_forward ()

gboolean
go_direction_is_forward (GODirection d);

Parameters

Returns

TRUE for GO_DIRECTION_DOWN or GO_DIRECTION_RIGHT.


go_direction_is_horizontal ()

gboolean
go_direction_is_horizontal (GODirection d);

Parameters

Returns

TRUE for GO_DIRECTION_LEFT and GO_DIRECTION_RIGHT.


go_geometry_AABR_add ()

void
go_geometry_AABR_add (GOGeometryAABR *aabr0,
                      GOGeometryAABR const *aabr1);

Computes the Axis Aligned Bounding Rectangle of aabr0 and aabr1, and stores result in aabr0.

Parameters

aabr0

a GOGeometryAABR

 

aabr1

a GOGeometryAABR

 

go_geometry_OBR_to_AABR ()

void
go_geometry_OBR_to_AABR (GOGeometryOBR const *obr,
                         GOGeometryAABR *aabr);

Stores Axis Aligned Bounding Rectangle of obr in aabr .

Parameters

obr

a GOGeometryOBR

 

aabr

a GOGeometryAABR

 

go_geometry_calc_label_anchor ()

GOGeometrySide
go_geometry_calc_label_anchor (GOGeometryOBR *obr,
                               double alpha);

Parameters

obr

bounding rectangle of label

 

alpha

angle of axis

 

Returns

computed label anchor, to be used by go_geometry_calc_label_position.


go_geometry_calc_label_position ()

GOGeometrySide
go_geometry_calc_label_position (GOGeometryOBR *obr,
                                 double alpha,
                                 double offset,
                                 GOGeometrySide side,
                                 GOGeometrySide anchor);

Convenience routine that computes position of a label relative to an axis.

Parameters

obr

bounding rectangle of label

 

alpha

angle of axis

 

offset

minimum distance between label and axis

 

side

side of label with respect to axis

 

anchor

where to anchor the label

 

Returns

the computed anchor if anchor == GO_SIDE_AUTO, or anchor value.


go_geometry_cartesian_to_polar ()

void
go_geometry_cartesian_to_polar (double x,
                                double y,
                                double *rho,
                                double *theta);

Converts cartesion coordinates to polar coordinates.

Parameters

x

cartesian coordinate

 

y

cartesian coordinate

 

rho

polar coordinate

 

theta

polar coordinate

 

go_geometry_get_rotation_type ()

GOGeometryRotationType
go_geometry_get_rotation_type (double alpha);

Calculates rotation type for handling of special angles (alpha = n * pi / 2)

Parameters

alpha

angle in radians

 

go_geometry_point_to_segment ()

double
go_geometry_point_to_segment (double xp,
                              double yp,
                              double xs,
                              double ys,
                              double w,
                              double h);

Parameters

xp

point coordinate

 

yp

point coordinate

 

xs

segment start coordinate

 

ys

segment start coordinate

 

w

extent of segment

 

h

extent of segment

 

Returns

the distance between a point and a segment.


go_geometry_test_OBR_overlap ()

gboolean
go_geometry_test_OBR_overlap (GOGeometryOBR const *obr0,
                              GOGeometryOBR const *obr1);

Overlap test of Oriented Bounding Rectangles by the separating axis method.

Parameters

obr0

a GOGeometryOBR

 

obr1

a GOGeometryOBR

 

Returns

TRUE if OOBRs overlap

Types and Values

GOGeometryAABR

typedef struct _GogViewAllocation GOGeometryAABR;


GOGeometryOBR

typedef struct {
        double x, y;
        double w, h;
        double alpha;
} GOGeometryOBR;

Members

double x;

horizontal position of the center.

 

double y;

vertical position of the center.

 

double w;

width of edge.

 

double h;

height of edge.

 

double alpha;

Aangle from x axis to w edge, in radians.

 

enum GOGeometryRotationType

Members

GO_ROTATE_NONE

no rotation.

 

GO_ROTATE_COUNTERCLOCKWISE

counter clockwise.

 

GO_ROTATE_UPSIDEDOWN

upside down.

 

GO_ROTATE_CLOCKWISE

clockwise.

 

GO_ROTATE_FREE

free rotation.

 

enum GOGeometrySide

Members

GO_SIDE_LEFT

left.

 

GO_SIDE_RIGHT

right.

 

GO_SIDE_LEFT_RIGHT

left or right.

 

GO_SIDE_TOP

top.

 

GO_SIDE_BOTTOM

bottom.

 

GO_SIDE_TOP_BOTTOM

top or bottom.

 

GO_SIDE_AUTO

auto.

 

GO_GEOMETRY_ANGLE_TOLERANCE

#define GO_GEOMETRY_ANGLE_TOLERANCE 1E-3


enum GODirection

Members

GO_DIRECTION_UP

up.

 

GO_DIRECTION_DOWN

down.

 

GO_DIRECTION_LEFT

left.

 

GO_DIRECTION_RIGHT

right.

 

GO_DIRECTION_NONE

no direction.

 
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.