Tcpolytope Struct Reference

Detailed Description

The area of influence of a chart is bounded by a polytope. This is used to determine which charts are exterior (belong to the expanding frontier of the exploration) and which are interior (completely sorrounded by other local charts). (See the atlas structure to see how charts are ensambled together.) The polytope is represented as a set of vertices that is updated every time a new chart is added to the atlas. In this case, the polytope stored in the chart is cut (removing vertices and adding new ones) with a plane derived from the intersection with the new neighbouring charts. Charts with all vertices inside the (hyper)sphere are interior.

Being able to differentiate between interior and exterior charts allows to control the ratio of expansion/refinement of the atlas.

See Also
chart.h,chart.c.

Definition at line 52 of file cpolytope.h.

Data Fields

unsigned int k
 
double r
 
double v
 
boolean emptyPolytope
 
unsigned int nFaces
 
unsigned int maxFaces
 
double ** face
 
unsigned int * ID
 
unsigned int maxVertices
 
unsigned int nVertices
 
double ** vertex
 
booleanexpandible
 
unsigned int nExpandible
 
unsigned int freeVertex
 
unsigned int * nIndices
 
unsigned int * maxIndices
 
unsigned int ** indices
 
Tbox bb
 
boolean open
 

Field Documentation

double Tcpolytope::r

Radius around p (in tangent space) where the linearization holds. About half the size of the box containing the ball (it is not exactly half due to the POLYTOPE_R_ENLARGEMENT).

Definition at line 54 of file cpolytope.h.

Referenced by CopyPolytope(), CutPolytope(), CutPolytopeWithFace(), DefinePolytope(), GetPolytopeRadius(), InitEmptyPolytope(), InsidePolytope(), LoadPolytope(), Polytope2SPolytope(), PolytopeBoundaryPointFromExternalCornerInt(), PolytopeMaxVolume(), RandomPointInPolytope(), and SavePolytope().

double Tcpolytope::v

Volume of the polytope.

Definition at line 57 of file cpolytope.h.

Referenced by CopyPolytope(), CutPolytopeWithFace(), InitEmptyPolytope(), LoadPolytope(), PolytopeVolume(), and SavePolytope().

unsigned int Tcpolytope::maxFaces
double** Tcpolytope::face

Parameters of the faces defining the polytope

Definition at line 67 of file cpolytope.h.

Referenced by CopyPolytope(), CutPolytopeWithFace(), DefinePolytope(), DeletePolytope(), InsidePolytope(), LoadPolytope(), Polytope2SPolytope(), PrintPolytopeInfo(), and SavePolytope().

unsigned int* Tcpolytope::ID
unsigned int Tcpolytope::nVertices
boolean* Tcpolytope::expandible

TRUE for that can not be used to expand the chart (vertices out of the chart ball, vertices with some error)

Definition at line 74 of file cpolytope.h.

Referenced by CopyPolytope(), CutPolytopeWithFace(), DefinePolytope(), DeletePolytope(), LoadPolytope(), PolytopeBoundaryPointFromExternalCornerInt(), SavePolytope(), and WrongPolytopeCorner().

unsigned int Tcpolytope::freeVertex

First free vertex.

Definition at line 78 of file cpolytope.h.

Referenced by CopyPolytope(), CutPolytopeWithFace(), DefinePolytope(), DeletePolytope(), LoadPolytope(), and SavePolytope().

unsigned int* Tcpolytope::nIndices

Number of face index per vertex.

Definition at line 80 of file cpolytope.h.

Referenced by CopyPolytope(), CutPolytopeWithFace(), DefinePolytope(), DeletePolytope(), LoadPolytope(), PrintPolytopeInfo(), and SavePolytope().

unsigned int** Tcpolytope::indices

Indices of the faces defining a vertex. Vertices with k-1 common faces define an edge. Edges that cross new faces added to the polytope define the new vertices (and the vertices to be removed).

Definition at line 82 of file cpolytope.h.

Referenced by CopyPolytope(), CutPolytopeWithFace(), DefinePolytope(), DeletePolytope(), HaveEdge(), LoadPolytope(), PrintPolytopeInfo(), and SavePolytope().

Tbox Tcpolytope::bb
boolean Tcpolytope::open

TRUE if the polytope has "open" borders, i.e., faces not given by another chart but with an undefined neighbour. These are undefined or given by the global domain borders.

Definition at line 88 of file cpolytope.h.

Referenced by CopyPolytope(), CutPolytopeWithFace(), DefinePolytope(), InitEmptyPolytope(), LoadPolytope(), and SavePolytope().