Path Class Documentation

class Path : Element

Namespace:datalogics_interface

Inherits from:
Element

Detailed Description

A path in a PDF file defines shapes.

Paths in PDF files are used to draw lines, define filled areas, and define boundaries for clipping graphics. A path is composed of straight and curved line segments.

Referenced by

Constructor & Destructor Documentation

Path

Path()

Create a path.

~Path

~Path()

Member Function Documentation

add_curve

void add_curve(const Point & p1, const Point & p2, const Point & p3)

Parameters

p1: const Point &

- first Bezier control point

p2: const Point &

- second Bezier control point

p3: const Point &

- the ending Point of the Bezier curve which will also be the current point of the current path.

Returns:

void

Adds a Bezier curve from the current path using the first two points specified as Bezier control points ending at the third point. The new current point is then set to the third point.

add_curve_v

void add_curve_v(const Point & p1, const Point & p2)

Parameters

p1: const Point &

- first Bezier control point

p2: const Point &

- the ending Point of the Bezier curve which will also be the new current point of the path.

Returns:

void

Adds a Bezier curve from the current path. This extends from the current path to the point Point2 using the current point and the first point specified as Bezier control points ending at the second point. The new current point is then set to the second point.

add_curve_y

void add_curve_y(const Point & p1, const Point & p2)

Parameters

p1: const Point &

- first Bezier control point

p2: const Point &

- second Bezier control point and the ending Point of the Bezier curve which will also be the new current point of the path.

Returns:

void

Adds a Bezier curve from the current path. This extends from the current path to the point Point2 using the two points specified as Bezier control points ending at the second point. The new current point is then set to the second point.

add_line

void add_line(const Point & pt)

Parameters

pt: const Point &

- the coordinates of the endpoint of the new line.

Returns:

void

Adds a line to the current path from the current path position. The given point becomes the new current position.

add_rect

void add_rect(const Point & pt, double width, double height)

Parameters

pt: const Point &

- the coordinates of the lower left corner of the new rectangle.

width: double

- the width of the new rectangle.

height: double

- the height of the new rectangle.

Returns:

void

Adds a rectangle to the current path with the lower left corner at the give point, and with the width and height specified.

clear_graphic_state

void clear_graphic_state()

Returns:

void

Removes the graphic state from this path.

close_path

void close_path()

Returns:

void

Closes the current subpath.

get_bounding_box

Rect get_bounding_box()

Returns:

Rect

The bounding box for this element. The coordinates of the bounding box are specified in user space coordinates, relative to the element's Content. Note that user space coordinates correspond to unrotated pages; any rotation specified in the page dictionary is not taken into account.

The bounding box for this element.

The bounding box is a rectangle that is guaranteed to encompass the element, but it is not guaranteed to be the smallest box that could contain the element. For example, if the element is a Path that contains an arc, the bounding box encompasses the bezier control points, and not just the curve itself.

get_matrix

Matrix get_matrix()

Returns:

Matrix

The current transformation matrix applied to this element.

The transformation matrix for the element.

get_paint_op

PathPaintOp get_paint_op()

Returns:

PathPaintOp

the PathPaintOpFlags flags describing the fill and stroke attributes.

Gets the fill and stroke attributes of a path.

move_to

void move_to(const Point & pt)

Parameters

pt: const Point &

- the coordinates of the new current point.

Returns:

void

Moves the current point of the path to the given point.

rotate

void rotate(double theta)

Parameters

theta: double

The rotation angle in degrees.

Returns:

void

Rotate an element by theta degrees counterclockwise using the matrix [ cos T sin T -sin T cos T 0 0 ].

scale

void scale(double sx, double sy)

Parameters

sx: double

The horizontal scale factor.

sy: double

The vertical scale factor.

Returns:

void

Scale an element by (sx,sy) units using the matrix [ sx 0 0 sy 0 0 ].

set_clip

void set_clip(Clip & clip)

Parameters

clip: Clip &

The clip to set as the current clip for this element, or NULL to remove clipping.

Returns:

void

Sets the current Clip for an Element.

set_graphic_state

void set_graphic_state(const GraphicState & gs)

Parameters

gs: const GraphicState &

- the new/updated Graphic State for the path.

Returns:

void

Set the Graphic State of the current path.

Note: The Path copies the graphic state internally.

set_matrix

void set_matrix(const Matrix & matrix)

Parameters

matrix: const Matrix &

The transformation matrix for the element.

Returns:

void

Set the transformation matrix for the element.

set_paint_op

void set_paint_op(PathPaintOp op)

Parameters

op: PathPaintOp

- the flags describing the fill and stroke attributes.

Returns:

void

Sets the fill and stroke attributes of a path.

translate

void translate(double tx, double ty)

Parameters

tx: double

The horizontal translation distance in user space units.

ty: double

The vertical translation distance in user space units.

Returns:

void

Translate an element by (tx,ty) units using the matrix [ 1 0 0 1 tx ty ].

try_as

T * try_as(typename T )

Parameters

: typename T

Returns:

T *

Attempt to downcast this element to a derived type. Returns a pointer to the derived type, or nullptr if the type doesn't match.

try_as

const T * try_as(typename T )

Parameters

: typename T

Returns:

const T *

Const overload of try_as(). Returns a const pointer, or nullptr.