27 #ifndef MPBLOCKS_CLARKSON93_DYNAMIC_TRIANGULATION_H_
28 #define MPBLOCKS_CLARKSON93_DYNAMIC_TRIANGULATION_H_
36 namespace clarkson93 {
52 template <
class Traits >
58 static const unsigned int NDim = Traits::NDim;
61 typedef typename Traits::Scalar
Scalar;
62 typedef typename Traits::Point
Point;
66 typedef typename Traits::Setup
Setup;
79 typedef typename Traits::template Factory<HorizonRidge_t>
HorizonAlloc;
117 template <
class Iterator>
118 void init(Iterator begin, Iterator end);
171 #endif // TRIANGULATION_H_
Triangulation< Traits > Triangulation_t
Traits::template Factory< Simplex > SimplexAlloc
void insert(const PointRef x, Simplex *S=0)
insert a new point into the triangulation and update the convex hull (if necessary) ...
WalkQueue m_xv_walk
walk for x-visible search
SimplexSet m_x_visible
set of x-visible simplices
Traits::PointDeref PointDeref
Stack< HorizonRidge_t > HorizonSet
P_Queue< PQ_Key > WalkQueue
Traits::template Factory< HorizonRidge_t > HorizonAlloc
void alter_x_visible(PointRef x)
A simplex is the convex hull of d+1 points in general position (IGP), i.e. they do not lie on the sam...
SimplexSet m_xv_queue
search queue for x-visible building
PointRef m_antiOrigin
fictitious point
HorizonRidge< Traits > HorizonRidge_t
static const unsigned int NDim
Stack< Simplex * > SimplexStack
Traits::PointRef PointRef
Indexed< Scalar, Simplex * > PQ_Key
void find_x_visible(PointRef x, Simplex *S=0)
find the set of facets and put them in x_visible
SimplexAlloc & getAllocator()
return the allocator (for debugging)
Triangulation< Traits > This_t
SimplexBase< Traits > SimplexBase_t
PointDeref m_deref
dereferences a PointRef
std::set< PointRef > PointSet
void init(Iterator begin, Iterator end)
builds the initial triangulation from the first NDim + 1 points inserted
SimplexSet m_xv_walked
set of simplices ever expanded for the walk
void setup(Setup &setup)
set's up the triangulation by helping it construct it's allocators and preallocate it's sets ...
Simplex * m_hullSimplex
a simplex in the hull
HorizonSet m_ridges
set of horizon ridges
Stack< Simplex *, SimplexBits > SimplexSet
A horizon ridge is a d-2 dimensional facet (i.e. a facet of a facet),.
SimplexAlloc m_sAlloc
simplex allocator
misleadingly-named data structure, is actually a "simplexification", the dimension agnostic analog of...
void clear()
destroys all simplex objects that have been generated and clears all lists/ sets
Simplex * m_origin
origin simplex