- Main Page
- Modules
- Classes

- Class List
- Class Hierarchy
- Class Members

# IpeSegmentSubPath Class Reference
[Ipe Objects]

Subpath consisting of a sequence of IpePathSegment's. More...

Inherits IpeSubPath.

List of all members.

## Public Member Functions

- IpeSegmentSubPath ()
- virtual TType Type () const
- virtual bool Closed () const
- virtual const IpeSegmentSubPath * AsSegs () const
- virtual IpeSegmentSubPath * AsSegs ()
- virtual IpeSubPath * Clone () const
- virtual IpeSubPath * Transform (const IpeMatrix &m) const
- virtual void SaveAsXml (IpeStream &stream) const
- virtual void Draw (IpePainter &painter) const
- virtual void AddToBBox (IpeRect &box, const IpeMatrix &m) const
- virtual double Distance (const IpeVector &v, const IpeMatrix &m, double bound) const
- virtual void SnapVtx (const IpeVector &mouse, const IpeMatrix &m, IpeVector &pos, double &bound) const
- virtual void SnapBnd (const IpeVector &mouse, const IpeMatrix &m, IpeVector &pos, double &bound) const
- int NumSegments () const
- IpePathSegment Segment (int i) const
- IpePathSegment ClosingSegment (IpeVector u[2]) const
- void Append (const IpePathSegment &seg)
- void Append (const IpeMatrix &m, const IpePathSegment &seg)
- void AppendReversed (const IpeMatrix &m, const IpePathSegment &seg)
- void AppendSegment (const IpeVector &v0, const IpeVector &v1)
- void AppendArc (const IpeMatrix &m, const IpeVector &v0, const IpeVector &v1)
- void AppendQuad (const IpeVector &v0, const IpeVector &v1, const IpeVector &v2)
- void AppendBezier (const IpeVector &v0, const IpeVector &v1, const IpeVector &v2, const IpeVector &v3)
- void AppendSpline (const std::vector< IpeVector > &v)
- void SetClosed (bool closed)
- void MoveCP (int seg, int cp, const IpeVector &pos)
- void InsertCP (int seg, int cp, const IpeVector &pos)
- void InsertSegment (int seg)
- void DeleteSegment (int seg)
- void DeleteCP (int seg, int cp)
- void Straighten (int seg)
- void SetMatrix (int seg, const IpeMatrix &m)

## Detailed Description

Subpath consisting of a sequence of IpePathSegment's.

## Constructor & Destructor Documentation

IpeSegmentSubPath::IpeSegmentSubPath | ( |  | ) |

Create an empty, open subpath.

## Member Function Documentation

IpeSubPath::TType IpeSegmentSubPath::Type | ( |  | ) | const`[virtual]`

Return type of this subpath.

Implements IpeSubPath.

virtual bool IpeSegmentSubPath::Closed | ( |  | ) | const`[inline, virtual]`

Is this subpath closed?

Default implementation returns `true`.

Reimplemented from IpeSubPath.

const IpeSegmentSubPath * IpeSegmentSubPath::AsSegs | ( |  | ) | const`[virtual]`

Return this object as an IpeSegmentSubPath, or else 0.

Reimplemented from IpeSubPath.

IpeSegmentSubPath * IpeSegmentSubPath::AsSegs | ( |  | ) | `[virtual]`

Return this object as an IpeSegmentSubPath, or else 0.

Reimplemented from IpeSubPath.

IpeSubPath * IpeSegmentSubPath::Clone | ( |  | ) | const`[virtual]`

Return a copy of this subpath.

Implements IpeSubPath.

IpeSubPath * IpeSegmentSubPath::Transform | ( | const IpeMatrix & | m | ) | const`[virtual]`

Return a transformed copy of this subpath.

Implements IpeSubPath.

void IpeSegmentSubPath::SaveAsXml | ( | IpeStream & | stream | ) | const`[virtual]`

Save subpath to XML stream.

Implements IpeSubPath.

void IpeSegmentSubPath::Draw | ( | IpePainter & | painter | ) | const`[virtual]`

Draw subpath (does not call DrawPath()).

Implements IpeSubPath.

void IpeSegmentSubPath::AddToBBox | ( | IpeRect & | box,
|  | const IpeMatrix & | m |
| ) |  |  | const`[virtual]`

Add subpath to box.

Implements IpeSubPath.

double IpeSegmentSubPath::Distance | ( | const IpeVector & | v,
|  | const IpeMatrix & | m,
|  | double | bound |
| ) |  |  | const`[virtual]`

Return distance from v to subpath transformed by m.

Implements IpeSubPath.

void IpeSegmentSubPath::SnapVtx | ( | const IpeVector & | mouse,
|  | const IpeMatrix & | m,
|  | IpeVector & | pos,
|  | double & | bound |
| ) |  |  | const`[virtual]`

Snap to vertex.

Implements IpeSubPath.

void IpeSegmentSubPath::SnapBnd | ( | const IpeVector & | mouse,
|  | const IpeMatrix & | m,
|  | IpeVector & | pos,
|  | double & | bound |
| ) |  |  | const`[virtual]`

Snap to boundary of subpath.

Implements IpeSubPath.

int IpeSegmentSubPath::NumSegments | ( |  | ) | const`[inline]`

Return number of segments.

This does not include the closing segment for a closed path.

IpePathSegment IpeSegmentSubPath::Segment | ( | int | i | ) | const

Return segment.

If i is negative, elements from the end are returned. The closing segment of a closed path is not accessible this way (use ClosingSegment instead)!

IpePathSegment IpeSegmentSubPath::ClosingSegment | ( | IpeVector | u[2] | ) | const

Returns the closing segment of a closed path.

Since the closing segment isn't actually stored inside this object, you have to provide a length-2 vector for the control points.

void IpeSegmentSubPath::Append | ( | const IpePathSegment & | seg | ) |

Append a segment (from a different path) to the subpath.

void IpeSegmentSubPath::Append | ( | const IpeMatrix & | m,
|  | const IpePathSegment & | seg |
| ) |  |  |

Append a segment (from a different path) to the subpath.

Transform segment before appending.

void IpeSegmentSubPath::AppendReversed | ( | const IpeMatrix & | m,
|  | const IpePathSegment & | seg |
| ) |  |  |

Append a segment to the subpath, reversing its orientation.

void IpeSegmentSubPath::AppendSegment | ( | const IpeVector & | v0,
|  | const IpeVector & | v1 |
| ) |  |  |

Append a straight segment to the subpath.

void IpeSegmentSubPath::AppendArc | ( | const IpeMatrix & | m,
|  | const IpeVector & | v0,
|  | const IpeVector & | v1 |
| ) |  |  |

Append elliptic arc to the subpath.

void IpeSegmentSubPath::AppendQuad | ( | const IpeVector & | v0,
|  | const IpeVector & | v1,
|  | const IpeVector & | v2 |
| ) |  |  |

Append quadratic Bezier spline.

void IpeSegmentSubPath::AppendBezier | ( | const IpeVector & | v0,
|  | const IpeVector & | v1,
|  | const IpeVector & | v2,
|  | const IpeVector & | v3 |
| ) |  |  |

Append cubic Bezier spline.

void IpeSegmentSubPath::AppendSpline | ( | const std::vector< IpeVector > & | v | ) |

Append B-spline curve.

void IpeSegmentSubPath::SetClosed | ( | bool | closed | ) |

Set whether subpath is closed or not.

void IpeSegmentSubPath::MoveCP | ( | int | seg,
|  | int | cp,
|  | const IpeVector & | pos |
| ) |  |  |

Move control point cp of segment cp to position pos.

If seg or cp are negative, they count from the end.

void IpeSegmentSubPath::InsertCP | ( | int | seg,
|  | int | cp,
|  | const IpeVector & | pos |
| ) |  |  |

Insert a control point into a spline segment.

If seg is negative, counts from the end. If cp is negative, append to segment.

void IpeSegmentSubPath::InsertSegment | ( | int | seg | ) |

Insert a zero-length segment before segment seg.

If seg is negative, it counts from the end.

void IpeSegmentSubPath::DeleteSegment | ( | int | seg | ) |

Delete a segment from the subpath.

If seg is negative, it counts from the end. If a segment in the middle is deleted, the first and last control point must be identical.

void IpeSegmentSubPath::DeleteCP | ( | int | seg,
|  | int | cp |
| ) |  |  |

Delete a control point from a spline segment.

If seg or cp are negative, count from the end. This cannot be used to remove the first or last CP of a spline curve, unless the spline is the first or last segment of the subpath. If the spline has only two vertices, it is simply deleted.

void IpeSegmentSubPath::Straighten | ( | int | seg | ) |

Replace segment by a straight segment.

If seg is negative, counts from the end.

void IpeSegmentSubPath::SetMatrix | ( | int | seg,
|  | const IpeMatrix & | m |
| ) |  |  |

Change the matrix of arc segment.

If seg is negative, counts from the end.

The documentation for this class was generated from the following files:

- ipepath.h
- ipepath.cpp