Sourceforge.net - The VCF's Project Host
   The VCF Website Home   |   Online Discussion Forums   |   Sourceforge.net Project Page   

VCF::Path Class Reference

A Path is an abstract class that represents a series of points used to draw one or more shapes. More...

#include <vcf/GraphicsKit/Path.h>

Inheritance diagram for VCF::Path:

VCF::Interface VCF::BezierCurve VCF::Ellipse VCF::Circle List of all members.

Public Types

enum  WindingRule { wrEvenOdd = 0, wrNonZero }

Public Member Functions

virtual ~Path ()
virtual void applyTransform (const Matrix2D &transform)=0
 Applies the transform to the path.
virtual bool contains (const Rect &rect)=0
 Returns true or false, depending on whether or not the path includes, or contains, the specified rectangle.
virtual bool contains (const Point &pt)=0
 Returns true or false, depending on whether or not the path includes, or contains, the specified point.
virtual bool intersects (const Point &pt)=0
 Returns true or false, depending on whether or not the specified point intersects any part of the path.
virtual bool intersects (const Rect &rect)=0
 Returns true or false, depending on whether or not the specified rectangle intersects any part of the path.
virtual Rect getBounds ()=0
 returns the smallest rectangular bounds that fully enclose this path
virtual WindingRule getWindingRule ()=0
 Returns the winding rule for the path.
virtual void setWindingRule (WindingRule rule)=0
virtual bool getPoints (std::vector< PathPoint > &points, Matrix2D *transform)=0
 This fills in the points vector with a series of all the points that make up the path.
virtual void flattenPoints (std::vector< Point > &flattenedPoints)=0
 This does the same thing as getPoints(), only it "flattens" the path if neccessary.

Detailed Description

A Path is an abstract class that represents a series of points used to draw one or more shapes.

The path instance is used in conjuntion with a fill and/or a stroke instance to actually render the shape on the graphics context.

See also:
GraphicsContext

Fill

Stroke


Member Enumeration Documentation

enum VCF::Path::WindingRule
 

Enumerator:
wrEvenOdd 
wrNonZero 


Constructor & Destructor Documentation

virtual VCF::Path::~Path  )  [inline, virtual]
 


Member Function Documentation

virtual void VCF::Path::applyTransform const Matrix2D transform  )  [pure virtual]
 

Applies the transform to the path.

Implemented in VCF::BezierCurve, and VCF::Ellipse.

virtual bool VCF::Path::contains const Point pt  )  [pure virtual]
 

Returns true or false, depending on whether or not the path includes, or contains, the specified point.

Returns:
bool Returns true if the point is within the bounds of the shape, otherwise false.

Implemented in VCF::BezierCurve, and VCF::Ellipse.

virtual bool VCF::Path::contains const Rect rect  )  [pure virtual]
 

Returns true or false, depending on whether or not the path includes, or contains, the specified rectangle.

Returns:
bool Returns true if the rect is within the bounds of the shape, otherwise false.

Implemented in VCF::BezierCurve, and VCF::Ellipse.

virtual void VCF::Path::flattenPoints std::vector< Point > &  flattenedPoints  )  [pure virtual]
 

This does the same thing as getPoints(), only it "flattens" the path if neccessary.

For example, if you had a path that was a bezier curve, it might be made of 4 points, the start point, 1st control point, 2nd control point, and end point. Calling getPoints would returns these 4 points, where as calling flattenPoints() would "flatten" the curve, and return a series of points that approximate the curve. How closely the flattened points approximate the curve is entirely up to the implementor of the Path class.

Implemented in VCF::BezierCurve, and VCF::Ellipse.

virtual Rect VCF::Path::getBounds  )  [pure virtual]
 

returns the smallest rectangular bounds that fully enclose this path

Implemented in VCF::BezierCurve, and VCF::Ellipse.

virtual bool VCF::Path::getPoints std::vector< PathPoint > &  points,
Matrix2D transform
[pure virtual]
 

This fills in the points vector with a series of all the points that make up the path.

If the path were to describe a rectangle, then more than likely the points parameter would be filled with 4 points for the 4 corners of the rectangle.

Parameters:
std::vector<PathPoint> 
Matrix2D a pointer to an affine matrix. This matrix is used to apply a transformation to the returned points. It does not modify the path. The matrix instance is optional, and may be NULL.
Returns:
bool returns true if the points vector is non empty (i.e. points.emtpy() == false).

Implemented in VCF::BezierCurve, and VCF::Ellipse.

virtual WindingRule VCF::Path::getWindingRule  )  [pure virtual]
 

Returns the winding rule for the path.

This affects how the path get rendered.

Implemented in VCF::BezierCurve, and VCF::Ellipse.

virtual bool VCF::Path::intersects const Rect rect  )  [pure virtual]
 

Returns true or false, depending on whether or not the specified rectangle intersects any part of the path.

Returns:
bool Returns true if the rectangle intersects the shape, otherwise false.

Implemented in VCF::BezierCurve, and VCF::Ellipse.

virtual bool VCF::Path::intersects const Point pt  )  [pure virtual]
 

Returns true or false, depending on whether or not the specified point intersects any part of the path.

Returns:
bool Returns true if the point intersects the shape, otherwise false.

Implemented in VCF::BezierCurve, and VCF::Ellipse.

virtual void VCF::Path::setWindingRule WindingRule  rule  )  [pure virtual]
 


The documentation for this class was generated from the following file:
   Comments or Suggestions?    License Information