Ipelib
Classes | Public Member Functions | List of all members
ipe::Curve Class Reference

#include <ipeshape.h>

Inherits ipe::SubPath.

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, bool cp) 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 appendSpline (const std::vector< Vector > &v)
 
void appendOldSpline (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::Curve ( )

Create an empty, open subpath.

Referenced by ipe::CurveSegment::snapBnd().

Member Function Documentation

◆ type()

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

Return type of this subpath.

Implements ipe::SubPath.

◆ closed()

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

◆ asCurve()

const Curve * Curve::asCurve ( ) const
virtual

Return this object as an Curve, or else 0.

Reimplemented from ipe::SubPath.

◆ save()

void Curve::save ( Stream stream) const
virtual

◆ draw()

void Curve::draw ( Painter painter) const
virtual

Draw subpath (does not call drawPath()).

Implements ipe::SubPath.

References ipe::Painter::closePath(), and ipe::Painter::moveTo().

◆ addToBBox()

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

Add subpath to box.

Implements ipe::SubPath.

◆ distance()

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.

◆ snapVtx()

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

Snap to vertex.

Implements ipe::SubPath.

References ipe::CanvasBase::pos().

◆ snapBnd()

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

Snap to boundary of subpath.

Implements ipe::SubPath.

◆ countSegments()

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

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

Referenced by ipe::Shape::isSegment().

◆ segment()

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)!

Referenced by ipe::Path::clone(), ipe::Path::draw(), and ipe::Shape::isSegment().

◆ closingSegment()

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.

References ipe::CurveSegment::ESegment, and ipe::SubPath::~SubPath().

◆ appendSegment()

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

Append a straight segment to the subpath.

References ipe::CurveSegment::ESegment.

Referenced by ipe::Shape::load(), and ipe::Shape::Shape().

◆ appendArc()

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

◆ appendSpline()

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

◆ appendOldSpline()

void ipe::Curve::appendOldSpline ( const std::vector< Vector > &  v)
inline

◆ setClosed()

void Curve::setClosed ( bool  closed)

Set whether subpath is closed or not.

Referenced by ipe::Shape::load(), and ipe::Shape::Shape().


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