#include <lib_ngon.h>
Public Member Functions | |
Vector | CalcNormal (const Vector *padr, const CPolygon *polys) const |
void | GetMpRad (const Vector *padr, const CPolygon *polys, Vector &mp, Vector &rad) const |
Int32 | GetCount () const |
PgonEdge * | GetEdge (Int32 i) |
Int32 | ID (Int32 i) const |
Int32 | State (Int32 i) const |
Int32 | Edge (Int32 i) const |
Int32 | EdgeIndex (Int32 i) const |
Int32 | IsFirst (Int32 i) const |
Int32 | IsSegmentEnd (Int32 i) const |
Int32 | GetIdentity () const |
Int32 | GetSegmentCount () const |
Int32 | GetSegmentLen (Int32 startedge) const |
void | GetEdge (Int32 i, const CPolygon *vadr, Int32 &p1, Int32 &p2) |
Int32 | FindPolygon (Int32 id) const |
UChar | GetEdgeState (Int32 id) const |
Int32 | GetPointCount () const |
Int32 | GetPolygonCount () const |
void | UpdateStates () |
Private Attributes | |
PgonEdge * | m_Edge |
Int32 | m_Count |
UInt32 | m_CRC |
Calculates the normal for the N-gon.
[in] | padr | The point array. The caller owns the pointed array. |
[in] | polys | The polygons array. The caller owns the pointed array. |
Get the bounds of the N-gon.
[in] | padr | The point array. The caller owns the pointed array. |
[in] | polys | The polygons array. The caller owns the pointed array. |
[out] | mp | Assigned the calculated mid-point. |
[out] | rad | Assigned the calculated bounding box vector. |
Int32 GetCount | ( | void | ) | const |
Retrieves the number of elements in the array (all PgonEdge edges in all segments).
Gets access directly to a PgonEdge. Normally the helper functions below should be used.
[in] | i | An edge index. |
Retrieves the PgonEdge::ID() of the edge at index i.
[in] | i | An edge index. |
Retrieves the PgonEdge::State() of the edge at index i.
[in] | i | An edge index. |
Retrieves the PgonEdge::Edge() of the edge at index i.
[in] | i | An edge index. |
Retrieves the PgonEdge::EdgeIndex() of the edge at index i.
[in] | i | An edge index. |
Retrieves the PgonEdge::IsFirst() state of the edge at index i.
[in] | i | An edge index. |
Retrieves the PgonEdge::IsSegmentEnd() state of the edge at index i.
[in] | i | An edge index. |
Int32 GetIdentity | ( | ) | const |
Retrieves the first polygon ID in the array, useful as a marker (identity) for the N-gon giving a polygon ID that is within the N-gon.
Int32 GetSegmentCount | ( | ) | const |
Retrieves the number of segments in the N-gon.
Retrieves the number of elements in the segment starting from the index startedge. This includes any PgonEdge edges that are internal (NOEDGE).
[in] | startedge | An edge index. |
Maps to the function PgonEdge::GetEdge() of the edge at index i.
[in] | i | An edge index. |
[in] | vadr | The polygon array. The caller owns the pointed array. |
[out] | p1 | Assigned the first point index. |
[out] | p2 | Assigned the second point index. |
Does a search to see if the polygon index id exists within the N-gon; the look up uses tables so it is pretty fast.
[in] | id | A polygon ID to search for. |
Retrieves the edges (bits) for polygon id that form any edge/s around the N-gon.
[in] | id | Combined edge bits for all edges with polygon ID matching id: PGONEDGE |
Int32 GetPointCount | ( | ) | const |
Retrieves the number of points that form the N-gon.
Int32 GetPolygonCount | ( | ) | const |
Retrieves the number of polygons that form the N-gon.
void UpdateStates | ( | ) |
If any changes are done to the PgonEdges this must be called when completed to update the REPEAT markers of the PgonEdges.
Also note that any changes must correct set/change any of the marker bits (such as the segment end, or no edges markers).
|
private |
|
private |
|
private |