Foxit PDF SDK

Public Types | Public Member Functions | List of all members
foxit::common::Path Class Reference
Inheritance diagram for foxit::common::Path:

## Public Types
enum | PointType { e_TypeMoveTo = 1, e_TypeLineTo = 2, e_TypeLineToCloseFigure = 3, e_TypeBezierTo = 4, e_TypeBezierToCloseFigure = 5 }
| Enumeration for point type in path. More...

## Public Member Functions
| Path ()
| Constructor.
| Path (const Path &other)
| Constructor, with another path object. More...
| ~Path ()
| Destructor.
bool | AppendEllipse (const RectF &rect)
| Add an ellipse figure to the end of current path. More...
bool | AppendRect (const RectF &rect)
| Add a rectangle figure to the end of current path. More...
void | Clear ()
| Clear all points. More...
bool | CloseFigure ()
| Close current figure (which is also the last figure in current path). More...
bool | CubicBezierTo (const PointF &point1, const PointF &point2, const PointF &point3)
| Add a cubic bezier spline to the end of current figure, by three points: two control points and one target point. More...
PointF | GetPoint (int index)
| Get a point specified by index. More...
int | GetPointCount ()
| Get the count of points. More...
PointType | GetPointType (int index)
| Get the type of a point specified by index. More...
void | IncreasePointCount (int count)
| Increase the point count and prepare adequate memory for these new points. More...
bool | IsEmpty () const
| Check whether current object is empty or not. More...
bool | LineTo (const PointF &point)
| Add a point to the end of current figure, and a line is to be drawn from current point to the new point. More...
bool | MoveTo (const PointF &point)
| Add a point to the end of current path, to start a new figure. More...
bool | operator != (const Path &other) const
| Not equal operator. More...
Path & | operator= (const Path &other)
| Assign operator. More...
bool | operator== (const Path &other) const
| Equal operator. More...
bool | RemovePoint (int index)
| Remove a point specified by index. More...
bool | SetPoint (int index, const PointF &point, PointType type)
| Change the value and type of a point specified by index. More...
void | Transform (const Matrix &matrix)
| Transform all points in current path with a given matrix. More...
Public Member Functions inherited from foxit::Base
FS_HANDLE | Handle () const
| Get the handle of current object. More...

## Detailed Description

This class represents a path which contains one or more figures.

## Member Enumeration Documentation

## ◆ PointType

enum foxit::common::Path::PointType

Enumeration for point type in path.

Values of this enumeration should be used alone.

Enumerator
e_TypeMoveTo | Indicates that the point is the first point of a figure.
e_TypeLineTo | Indicates that a line is drawn from the previous point to this point.
e_TypeLineToCloseFigure | Indicates that a line is drawn from the previous point to this point, and this point will also be connected to the nearest Path::e_TypeMoveTo point before this point, in order to close current figure.
e_TypeBezierTo | Indicates that this point is a control point or ending point for a Bezier spline.
e_TypeBezierToCloseFigure | Indicates that this point is the ending point for a Bezier spline, and this point will also be connected to the nearest Path::e_TypeMoveTo point before this point, in order to close current figure.

## Constructor & Destructor Documentation

## ◆ Path()

foxit::common::Path::Path | ( | const Path & | other | ) |

Constructor, with another path object.

Parameters

  [in] | other | Another path object.

## Member Function Documentation

## ◆ AppendEllipse()

bool foxit::common::Path::AppendEllipse | ( | const RectF & | rect | ) |

Add an ellipse figure to the end of current path.

Parameters

  [in] | rect | The enclosing rectangle of an ellipse figure.

Returns
  true means success, while false means failure.

## ◆ AppendRect()

bool foxit::common::Path::AppendRect | ( | const RectF & | rect | ) |

Add a rectangle figure to the end of current path.

Parameters

  [in] | rect | A rectangle which specifies a rectangle figure.

Returns
  true means success, while false means failure.

## ◆ Clear()

void foxit::common::Path::Clear | ( |  | ) |

Clear all points.

Returns
  None.

## ◆ CloseFigure()

bool foxit::common::Path::CloseFigure | ( |  | ) |

Close current figure (which is also the last figure in current path).

When closing current figure, the last point's type may be changed:

- If the last point's type is Path::e_TypeMoveTo, that means the last figure just has one point and cannot be closed and current function will return false.
- If the last point's type is Path::e_TypeLineTo, the type will be changed to Path::e_TypeLineToCloseFigure.
- If the last point's type is Path::e_TypeLineTo, the type will be changed to Path::e_TypeBezierToCloseFigure.
- If the last point's type is already Path::e_TypeLineToCloseFigure or Path::e_TypeBezierToCloseFigure, that means the last figure has been closed. The type will not be changed and function will still return true.

Returns
  true means success, while false means failure.

## ◆ CubicBezierTo()

bool foxit::common::Path::CubicBezierTo | ( | const PointF & | point1,
|  | const PointF & | point2,
|  | const PointF & | point3
| ) |  |

Add a cubic bezier spline to the end of current figure, by three points: two control points and one target point.

If this function succeeds, parameter point3 will become the new "current point".

Parameters

  [in] | point1 | New point as the first control point for cubic bezier, in PDF coordinate system.
  [in] | point2 | New point as the second control point for cubic bezier, in PDF coordinate system.
  [in] | point3 | New point as target point for cubic bezier, in PDF coordinate system.

Returns
  true means success, while false means failure.

## ◆ GetPoint()

PointF foxit::common::Path::GetPoint | ( | int | index | ) |

Get a point specified by index.

Parameters

  [in] | index | The index of the point. Valid range: 0 to (count-1). count is returned by function Path::GetPointCount.

Returns
  The specified point.

## ◆ GetPointCount()

int foxit::common::Path::GetPointCount | ( |  | ) |

Get the count of points.

Returns
  The count of points.

## ◆ GetPointType()

PointType foxit::common::Path::GetPointType | ( | int | index | ) |

Get the type of a point specified by index.

Parameters

  [in] | index | The index of the point. Valid range: 0 to (count-1). count is returned by function Path::GetPointCount.

Returns
  The type of specified point. Please refer to values starting from Path::e_TypeMoveTo and this would be one of these values.

## ◆ IncreasePointCount()

void foxit::common::Path::IncreasePointCount | ( | int | count | ) |

Increase the point count and prepare adequate memory for these new points.

This function will allocate more memory for given point count and initialize these new points with point (0, 0) and type Path::e_TypeMoveTo by default. After calling this function successfully, user can use function Path::SetPoint to set these new points.

Parameters

  [in] | count | The new point count. It should not be negative.

Returns
  None.

## ◆ IsEmpty()

bool foxit::common::Path::IsEmpty | ( |  | ) | const

Check whether current object is empty or not.

When the current object is empty, that means current object is useless.

Returns
  true means current object is empty, while false means not.

## ◆ LineTo()

bool foxit::common::Path::LineTo | ( | const PointF & | point | ) |

Add a point to the end of current figure, and a line is to be drawn from current point to the new point.

If this function succeeds, the new point will become the new "current point".

Parameters

  [in] | point | New point, in PDF coordinate system.

Returns
  true means success, while false means failure.

## ◆ MoveTo()

bool foxit::common::Path::MoveTo | ( | const PointF & | point | ) |

Add a point to the end of current path, to start a new figure.

If this function succeeds, the new point will become the new "current point", and the new figure will become the new "current figure".

Parameters

  [in] | point | New point, in PDF coordinate system.

Returns
  true means success, while false means failure.

## ◆ operator !=()

bool foxit::common::Path::operator != | ( | const Path & | other | ) | const

Not equal operator.

Parameters

  [in] | other | Another path object. This function will check if current object is not equal to this one.

Returns
  true means not equal, while false means equal.

## ◆ operator=()

Path& foxit::common::Path::operator= | ( | const Path & | other | ) |

Assign operator.

Parameters

  [in] | other | Another path object, whose value would be assigned to current object.

Returns
  Reference to current object itself.

## ◆ operator==()

bool foxit::common::Path::operator== | ( | const Path & | other | ) | const

Equal operator.

Parameters

  [in] | other | Another path object. This function will check if current object is equal to this one.

Returns
  true means equal, while false means not equal.

## ◆ RemovePoint()

bool foxit::common::Path::RemovePoint | ( | int | index | ) |

Remove a point specified by index.

Parameters

  [in] | index | The index of the point to be removed. Valid range: 0 to (count-1). count is returned by function Path::GetPointCount.

Returns
  true means success, while false means failure.

## ◆ SetPoint()

bool foxit::common::Path::SetPoint | ( | int | index,
|  | const PointF & | point,
|  | PointType | type
| ) |  |

Change the value and type of a point specified by index.

Parameters

  [in] | index | The index of the point. Valid range: 0 to (count-1). count is returned by function Path::GetPointCount.
  [in] | point | The new point to set, in PDF coordinate system.
  [in] | type | The type used to set to the new point. Please refer to values starting from Path::e_TypeMoveTo and this should be one of these values.

Returns
  true means success, while false means failure.

## ◆ Transform()

void foxit::common::Path::Transform | ( | const Matrix & | matrix | ) |

Transform all points in current path with a given matrix.

Parameters

  [in] | matrix | A matrix used for transforming.

Returns
  None.