#include <polyedge.h>
Public Methods | |
csPoly2DEdges (int start_size=10) | |
Make a new empty polygon. | |
csPoly2DEdges (csPoly2DEdges ©) | |
Copy constructor. | |
virtual | ~csPoly2DEdges () |
Destructor. | |
void | MakeEmpty () |
Initialize the polygon to empty. | |
int | GetEdgeCount () |
Get the number of edges. | |
csSegment2* | GetEdges () |
Get the array with all edges. | |
csSegment2* | GetEdge (int i) |
Get the specified edge. | |
csSegment2& | operator[] (int i) |
Get the specified edge. | |
csSegment2* | GetFirst () |
Get the first edge. | |
csSegment2* | GetLast () |
Get the last edge. | |
bool | In (const csVector2 &v) |
Test if this vector is inside the polygon. | |
void | MakeRoom (int new_max) |
Make room for at least the specified number of edges. | |
void | SetEdgeCount (int n) |
Set the number of edges. | |
int | AddEdge (const csSegment2 &e) |
Add a edge (2D) to the polygon. More... | |
int | AddEdge (const csVector2 &v1, const csVector2 &v2) |
Add a edge (2D) to the polygon. More... | |
void | Intersect (const csPlane2 &plane, csPoly2DEdges &left, csPoly2DEdges &right, bool &onplane) const |
Intersect this polygon with a given plane and return the two resulting polygons in left and right. More... | |
Static Public Methods | |
bool | In (csSegment2 *poly, int num_edge, const csVector2 &v) |
Test if a vector is inside the given polygon. | |
Protected Attributes | |
csSegment2* | edges |
The edges. | |
int | num_edges |
int | max_edges |
|
Add a edge (2D) to the polygon. Return index of added edge. |
|
Add a edge (2D) to the polygon. Return index of added edge. |
|
Intersect this polygon with a given plane and return the two resulting polygons in left and right. This version is robust. If one of the edges of this polygon happens to be on the same plane as 'plane' then this edge will be ignored and 'onplane' will be set to true.
Note that this routine may result in unconnected polygons. i.e. edges that are not adjacent. |