![]() |
Public API Reference |
![]() |
The csPolygonClipper class can be used for clipping any polygon against any other convex polygon. More...
#include <csgeom/polyclip.h>
Public Member Functions | |
virtual int | ClassifyBox (const csBox2 &box) |
Classify some bounding box against this clipper. | |
virtual uint8 | Clip (const csVector2 *InPolygon, size_t InCount, csVector2 *OutPolygon, size_t &OutCount) |
Simple clipping. | |
virtual uint8 | Clip (const csVector2 *InPolygon, size_t InCount, csVector2 *OutPolygon, size_t &OutCount, csBox2 &BoundingBox) |
Clip and compute the bounding box. | |
virtual uint8 | Clip (const csVector2 *InPolygon, size_t InCount, csVector2 *OutPolygon, size_t &OutCount, csVertexStatus *OutStatus) |
Clip and return additional information about each vertex. | |
csPolygonClipper (csPoly2D *Clipper, bool mirror=false, bool copy=false) | |
Create a polygon clipper object from a 2D polygon. | |
csPolygonClipper (const csVector2 *Clipper, size_t Count, bool mirror=false, bool copy=false) | |
Create a polygon clipper object from a set of 2D vectors. | |
virtual ClipperType | GetClipperType () const |
Retrieve the type of this clipper. | |
virtual const csVector2 * | GetClipPoly () |
Return a pointer to the array of csVector2's. | |
virtual size_t | GetVertexCount () |
Return number of vertices for this clipper polygon. | |
virtual bool | IsInside (const csVector2 &v) |
Return true if given point is inside (or on bound) of clipper polygon. | |
virtual | ~csPolygonClipper () |
Destroy the polygon clipper object. |
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 142 of file polyclip.h.
csPolygonClipper::csPolygonClipper | ( | csPoly2D * | Clipper, |
bool | mirror = false , |
||
bool | copy = false |
||
) |
Create a polygon clipper object from a 2D polygon.
csPolygonClipper::csPolygonClipper | ( | const csVector2 * | Clipper, |
size_t | 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.
virtual int csPolygonClipper::ClassifyBox | ( | const csBox2 & | box | ) | [virtual] |
Classify some bounding box against this clipper.
Implements iClipper2D.
virtual uint8 csPolygonClipper::Clip | ( | const csVector2 * | InPolygon, |
size_t | InCount, | ||
csVector2 * | OutPolygon, | ||
size_t & | OutCount | ||
) | [virtual] |
Simple clipping.
Implements iClipper2D.
virtual uint8 csPolygonClipper::Clip | ( | const csVector2 * | InPolygon, |
size_t | InCount, | ||
csVector2 * | OutPolygon, | ||
size_t & | OutCount, | ||
csBox2 & | BoundingBox | ||
) | [virtual] |
Clip and compute the bounding box.
Implements iClipper2D.
virtual uint8 csPolygonClipper::Clip | ( | const csVector2 * | InPolygon, |
size_t | InCount, | ||
csVector2 * | OutPolygon, | ||
size_t & | OutCount, | ||
csVertexStatus * | OutStatus | ||
) | [virtual] |
Clip and return additional information about each vertex.
Implements iClipper2D.
virtual ClipperType csPolygonClipper::GetClipperType | ( | ) | const [inline, virtual] |
Retrieve the type of this clipper.
Implements iClipper2D.
Definition at line 193 of file polyclip.h.
virtual const csVector2* csPolygonClipper::GetClipPoly | ( | ) | [inline, virtual] |
Return a pointer to the array of csVector2's.
Implements iClipper2D.
Definition at line 190 of file polyclip.h.
virtual size_t csPolygonClipper::GetVertexCount | ( | ) | [inline, virtual] |
Return number of vertices for this clipper polygon.
Implements iClipper2D.
Definition at line 187 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.