#include <polyclip.h>
Inheritance diagram for csPolygonClipper:
Public Methods | |
csPolygonClipper (csPoly2D *Clipper, bool mirror=false, bool copy=false) | |
Create a polygon clipper object from a 2D polygon. | |
csPolygonClipper (csVector2 *Clipper, int Count, bool mirror=false, bool copy=false) | |
Create a polygon clipper object from a set of 2D vectors. | |
virtual | ~csPolygonClipper () |
Destroy the polygon clipper object. | |
virtual UByte | Clip (csVector2 *InPolygon, int InCount, csVector2 *OutPolygon, int &OutCount) |
Simple clipping. | |
virtual UByte | Clip (csVector2 *InPolygon, int InCount, csVector2 *OutPolygon, int &OutCount, csBox2 &BoundingBox) |
Clip and compute the bounding box. | |
virtual UByte | Clip (csVector2 *InPolygon, int InCount, csVector2 *OutPolygon, int &OutCount, csVertexStatus *OutStatus) |
Clip and return additional information about each vertex. | |
virtual int | ClassifyBox (const csBox2 &box) |
Classify some bounding box against this clipper. | |
virtual bool | IsInside (const csVector2 &v) |
Return true if given point is inside (or on bound) of clipper polygon. | |
virtual int | GetVertexCount () |
Return number of vertices for this clipper polygon. | |
virtual csVector2* | GetClipPoly () |
Return a pointer to the array of csVector2's. |
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.