Ipelib
Classes | Public Member Functions
ipe::Curve Class Reference

#include <ipeshape.h>

Inherits ipe::SubPath.

List of all members.

Classes

struct  Seg

Public Member Functions

 Curve ()
virtual Type type () const
virtual bool closed () const
virtual const CurveasCurve () const
virtual void save (Stream &stream) const
virtual void draw (Painter &painter) const
virtual void addToBBox (Rect &box, const Matrix &m, bool cp) const
virtual double distance (const Vector &v, const Matrix &m, double bound) const
virtual void snapVtx (const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
virtual void snapBnd (const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
int countSegments () const
CurveSegment segment (int i) const
CurveSegment closingSegment (Vector u[2]) const
void appendSegment (const Vector &v0, const Vector &v1)
void appendArc (const Matrix &m, const Vector &v0, const Vector &v1)
void appendQuad (const Vector &v0, const Vector &v1, const Vector &v2)
void appendBezier (const Vector &v0, const Vector &v1, const Vector &v2, const Vector &v3)
void appendSpline (const std::vector< Vector > &v)
void setClosed (bool closed)
- Public Member Functions inherited from ipe::SubPath
virtual ~SubPath ()=0
virtual const EllipseasEllipse () const
virtual const ClosedSplineasClosedSpline () const

Additional Inherited Members

- Public Types inherited from ipe::SubPath
enum  Type { ECurve, EEllipse, EClosedSpline }

Detailed Description

Subpath consisting of a sequence of CurveSegment's.


Constructor & Destructor Documentation

Curve::Curve ( )

Create an empty, open subpath.


Member Function Documentation

SubPath::Type Curve::type ( ) const
virtual

Return type of this subpath.

Implements ipe::SubPath.

virtual bool ipe::Curve::closed ( ) const
inlinevirtual

Is this subpath closed?

Default implementation returns true.

Reimplemented from ipe::SubPath.

const Curve * Curve::asCurve ( ) const
virtual

Return this object as an Curve, or else 0.

Reimplemented from ipe::SubPath.

void Curve::save ( Stream stream) const
virtual

Save subpath to XML stream.

Implements ipe::SubPath.

void Curve::draw ( Painter painter) const
virtual

Draw subpath (does not call drawPath()).

Implements ipe::SubPath.

void Curve::addToBBox ( Rect box,
const Matrix m,
bool  cp 
) const
virtual

Add subpath to box.

Implements ipe::SubPath.

double Curve::distance ( const Vector v,
const Matrix m,
double  bound 
) const
virtual

Return distance from v to subpath transformed by m.

Implements ipe::SubPath.

void Curve::snapVtx ( const Vector mouse,
const Matrix m,
Vector pos,
double &  bound 
) const
virtual

Snap to vertex.

Implements ipe::SubPath.

void Curve::snapBnd ( const Vector mouse,
const Matrix m,
Vector pos,
double &  bound 
) const
virtual

Snap to boundary of subpath.

Implements ipe::SubPath.

int ipe::Curve::countSegments ( ) const
inline

Return number of segments. This does not include the closing segment for a closed path.

CurveSegment Curve::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)!

CurveSegment Curve::closingSegment ( Vector  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.

This method panics if the Curve is not closed.

void Curve::appendSegment ( const Vector v0,
const Vector v1 
)

Append a straight segment to the subpath.

void Curve::appendArc ( const Matrix m,
const Vector v0,
const Vector v1 
)

Append elliptic arc to the subpath.

void Curve::appendQuad ( const Vector v0,
const Vector v1,
const Vector v2 
)

Append quadratic Bezier spline.

void Curve::appendBezier ( const Vector v0,
const Vector v1,
const Vector v2,
const Vector v3 
)

Append cubic Bezier spline.

void Curve::appendSpline ( const std::vector< Vector > &  v)

Append B-spline curve.

void Curve::setClosed ( bool  closed)

Set whether subpath is closed or not.


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