cheshirekow
v0.1.0
|
A simplex is the convex hull of d+1 points in general position (IGP), i.e. they do not lie on the same hyperplane. More...
#include <mpblocks/clarkson93/dynamic/Simplex.h>
Public Types | |
typedef HorizonRidge< Traits > | HorizonRidge_t |
typedef Traits::idx_t | idx_t |
enum | Orientation { INSIDE, OUTSIDE } |
typedef Traits::Point | Point |
typedef Traits::PointDeref | PointDeref |
typedef Traits::PointRef | PointRef |
typedef Traits::Scalar | Scalar |
typedef Traits::Simplex | Simplex |
typedef SimplexBase< Traits > | SimplexBase_t |
typedef SimplexBase< Traits > | This_t |
typedef unsigned int | uint |
Public Member Functions | |
void | calculateConstraint (uint ndim, PointDeref &deref) |
calculate the normal and offset of the constraint given the d vertices on it's base facet (does not compute orientation / sign) More... | |
bool | isInfinite (PointRef antiOrigin) |
returns true if vertex[0] is the anti origin More... | |
bool | isVisible (const Point &x) |
returns true if x is on the inside of the base facet (i.e. x is in the same half space as the simplex) More... | |
Scalar | normalProjection (const Point &x) |
returns the distance of x to the base facet, used in walking the triangulation to x More... | |
void | orientConstraint (const Point &x, Orientation orient=INSIDE) |
orient the constraint by ensuring that the point x satisfies it (i.e. ) More... | |
Public Member Functions inherited from mpblocks::clarkson93::BitMember< SimplexBits, simplex::NUM_BITS > | |
void | addTo (SimplexBitssetBit) |
bool | isMemberOf (SimplexBitssetBit) |
void | removeFrom (SimplexBitssetBit) |
Public Attributes | |
Scalar | c |
offset of base facet inequality hyperplane More... | |
Point | n |
normal vector of base facet More... | |
std::vector< Simplex * > | neighbors |
simplices which share a facet More... | |
std::vector< PointRef > | vertices |
vertices of the simplex More... | |
A simplex is the convex hull of d+1 points in general position (IGP), i.e. they do not lie on the same hyperplane.
In order to implicitly maintain the convensions of Clarkson.compgeo93, we will order the vertices and facets of the simplex such that the i'th facet is opposite the i'th vertex (using the definition of clarkson), and thus is defined by the d vertices excluding the i'th. In addition, the i'th neighbor is the neighbor sharing the i'th facet and opposite the i'th vertex.
By the uniformity conventions of Clarkson.compgeo93, we'll reserve the 0 index for the 'peak' vertex, and the 'base' facet
Because the 0'th vertex is the 'peak' vertex and the 'peak' vertex of a boundary simplex in the extended triangulation is the anti origin, the address stored in vertices[0] will be equal to the address of Triangulation::origin for the triangulation which owns this simplex.
The simplex also stores a normal vector n
and an offset c
defining a linear inequality whose hyperplane is coincident to the 'base' facet and oriented such that n' x < c is the half-space containing the 'peak' vertex
typedef HorizonRidge<Traits> mpblocks::clarkson93::dynamic::SimplexBase< Traits >::HorizonRidge_t |
typedef Traits::idx_t mpblocks::clarkson93::dynamic::SimplexBase< Traits >::idx_t |
typedef Traits::Point mpblocks::clarkson93::dynamic::SimplexBase< Traits >::Point |
typedef Traits::PointDeref mpblocks::clarkson93::dynamic::SimplexBase< Traits >::PointDeref |
typedef Traits::PointRef mpblocks::clarkson93::dynamic::SimplexBase< Traits >::PointRef |
typedef Traits::Scalar mpblocks::clarkson93::dynamic::SimplexBase< Traits >::Scalar |
typedef Traits::Simplex mpblocks::clarkson93::dynamic::SimplexBase< Traits >::Simplex |
typedef SimplexBase<Traits> mpblocks::clarkson93::dynamic::SimplexBase< Traits >::SimplexBase_t |
typedef SimplexBase<Traits> mpblocks::clarkson93::dynamic::SimplexBase< Traits >::This_t |
typedef unsigned int mpblocks::clarkson93::dynamic::SimplexBase< Traits >::uint |
enum mpblocks::clarkson93::dynamic::SimplexBase::Orientation |
void mpblocks::clarkson93::dynamic::SimplexBase< Traits >::calculateConstraint | ( | uint | ndim, |
PointDeref & | deref | ||
) |
calculate the normal and offset of the constraint given the d vertices on it's base facet (does not compute orientation / sign)
Definition at line 38 of file Simplex.hpp.
bool mpblocks::clarkson93::dynamic::SimplexBase< Traits >::isInfinite | ( | PointRef | antiOrigin | ) |
returns true if vertex[0] is the anti origin
Definition at line 102 of file Simplex.hpp.
bool mpblocks::clarkson93::dynamic::SimplexBase< Traits >::isVisible | ( | const Point & | x | ) |
returns true if x is on the inside of the base facet (i.e. x is in the same half space as the simplex)
Definition at line 108 of file Simplex.hpp.
Traits::Scalar mpblocks::clarkson93::dynamic::SimplexBase< Traits >::normalProjection | ( | const Point & | x | ) |
returns the distance of x to the base facet, used in walking the triangulation to x
Definition at line 95 of file Simplex.hpp.
void mpblocks::clarkson93::dynamic::SimplexBase< Traits >::orientConstraint | ( | const Point & | x, |
Orientation | orient = INSIDE |
||
) |
orient the constraint by ensuring that the point x satisfies it (i.e. )
Definition at line 60 of file Simplex.hpp.
Scalar mpblocks::clarkson93::dynamic::SimplexBase< Traits >::c |
Point mpblocks::clarkson93::dynamic::SimplexBase< Traits >::n |
std::vector<Simplex*> mpblocks::clarkson93::dynamic::SimplexBase< Traits >::neighbors |
std::vector<PointRef> mpblocks::clarkson93::dynamic::SimplexBase< Traits >::vertices |