CrystalSpace

Public API Reference

Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

csPolygonClipper Class Reference
[Geometry utilities]

The csPolygonClipper class can be used for clipping any polygon against any other convex polygon. More...

#include <polyclip.h>

Inheritance diagram for csPolygonClipper:

csClipper iClipper2D iBase List of all members.

Public Methods

 csPolygonClipper (csPoly2D *Clipper, bool mirror=false, bool copy=false)
 Create a polygon clipper object from a 2D polygon. More...

 csPolygonClipper (csVector2 *Clipper, int Count, bool mirror=false, bool copy=false)
 Create a polygon clipper object from a set of 2D vectors. More...

virtual ~csPolygonClipper ()
 Destroy the polygon clipper object. More...

virtual uint8 Clip (csVector2 *InPolygon, int InCount, csVector2 *OutPolygon, int &OutCount)
 Simple clipping. More...

virtual uint8 Clip (csVector2 *InPolygon, int InCount, csVector2 *OutPolygon, int &OutCount, csBox2 &BoundingBox)
 Clip and compute the bounding box. More...

virtual uint8 Clip (csVector2 *InPolygon, int InCount, csVector2 *OutPolygon, int &OutCount, csVertexStatus *OutStatus)
 Clip and return additional information about each vertex. More...

virtual int ClassifyBox (const csBox2 &box)
 Classify some bounding box against this clipper. More...

virtual bool IsInside (const csVector2 &v)
 Return true if given point is inside (or on bound) of clipper polygon. More...

virtual int GetVertexCount ()
 Return number of vertices for this clipper polygon. More...

virtual csVector2GetClipPoly ()
 Return a pointer to the array of csVector2's. More...


Detailed Description

The csPolygonClipper class can be used for clipping any polygon against any other convex polygon.

The clipper object should be used, if possible, for many polygons (for example, a 3D sprite can initialize a clipper object then clip all of its triangle against it at once) as the initialization of clipper polygon involves some (although not too expensive) calculations. The clipping polygon *should* be convex since the routine does not expect any line to intersect the edge of clipping polygon more than twice.

Definition at line 132 of file polyclip.h.


Constructor & Destructor Documentation

csPolygonClipper::csPolygonClipper csPoly2D   Clipper,
bool    mirror = false,
bool    copy = false
 

Create a polygon clipper object from a 2D polygon.

csPolygonClipper::csPolygonClipper csVector2   Clipper,
int    Count,
bool    mirror = false,
bool    copy = false
 

Create a polygon clipper object from a set of 2D vectors.

virtual csPolygonClipper::~csPolygonClipper   [virtual]
 

Destroy the polygon clipper object.


Member Function Documentation

virtual int csPolygonClipper::ClassifyBox const csBox2   box [virtual]
 

Classify some bounding box against this clipper.

Implements iClipper2D.

virtual uint8 csPolygonClipper::Clip csVector2   InPolygon,
int    InCount,
csVector2   OutPolygon,
int &    OutCount,
csVertexStatus   OutStatus
[virtual]
 

Clip and return additional information about each vertex.

Implements iClipper2D.

virtual uint8 csPolygonClipper::Clip csVector2   InPolygon,
int    InCount,
csVector2   OutPolygon,
int &    OutCount,
csBox2   BoundingBox
[virtual]
 

Clip and compute the bounding box.

Implements iClipper2D.

virtual uint8 csPolygonClipper::Clip csVector2   InPolygon,
int    InCount,
csVector2   OutPolygon,
int &    OutCount
[virtual]
 

Simple clipping.

Implements iClipper2D.

virtual csVector2* csPolygonClipper::GetClipPoly   [inline, virtual]
 

Return a pointer to the array of csVector2's.

Implements iClipper2D.

Definition at line 180 of file polyclip.h.

virtual int csPolygonClipper::GetVertexCount   [inline, virtual]
 

Return number of vertices for this clipper polygon.

Implements iClipper2D.

Definition at line 177 of file polyclip.h.

virtual bool csPolygonClipper::IsInside const csVector2   v [virtual]
 

Return true if given point is inside (or on bound) of clipper polygon.

Implements iClipper2D.


The documentation for this class was generated from the following file:
Generated for Crystal Space by doxygen 1.2.14