cheshirekow  v0.1.0
mpblocks::clarkson93::SimplexOps< Traits > Struct Template Reference

implements simplex operations for simplex references, using other references can be easily extended by building on top of this class More...

#include <mpblocks/clarkson93/Simplex2.h>

Public Types

typedef BitSet::reference BitRef
 
typedef std::bitset
< simplex::NUM_BITS
BitSet
 
typedef Traits::Deref Deref
 
typedef NeighborRange< Traits > NRange
 
typedef Traits::Point Point
 
typedef Traits::PointRef PointRef
 
typedef Traits::Scalar Scalar
 
typedef Simplex2< Traits > Simplex
 
typedef Traits::SimplexRef SimplexRef
 
typedef VertexRange< Traits > VRange
 

Public Member Functions

void computeBase (Simplex &S, Deref &deref)
 make two simplices neighbors across a common facet More...
 
void finish (Simplex &)
 after filling vertices, lay them out in sorted order More...
 
uint32_t indexOf (Simplex &S, PointRef v)
 index of v in S More...
 
bool isInfinite (const Simplex &S, PointRef antiOrigin)
 returns true if the base vertex is the anti origin More...
 
bool isMember (Simplex &S, SimplexBits bit)
 S is a member of a set. More...
 
bool isVisible (const Simplex &S, 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...
 
SimplexRef neighbor (Simplex &S, uint32_t i)
 neighbor at i More...
 
SimplexRef neighborAcross (Simplex &S, PointRef v)
 neighbor across v More...
 
NRange neighborhood (Simplex &S)
 complete neighborhood More...
 
template<typename Input , typename Output >
void neighborSharing (Simplex &S, Input first, Input last, Output iter)
 builds a list of neighbors that share a facet... this is the set of neighbors who are accross from a vertex v where v is not in the facet set More...
 
Scalar normalProjection (const Simplex &S, const Point &x)
 returns the distance of x to the base facet, used in walking the triangulation to x More...
 
void orientBase (Simplex &S, const Point &x, Orientation orient=INSIDE)
 orient the base facete normal by ensuring that the point x lies on the appropriate half-space $ n \cdot x \le c $ ) More...
 
PointRef peak (Simplex &S)
 designated peak vertex More...
 
SimplexRef peakNeighbor (Simplex &S)
 neighbor across peak More...
 
BitRef setMember (Simplex &S, SimplexBits bit)
 set S's membership in bit More...
 
Surrogate< SimplexRefsetNeighbor (Simplex &S, uint32_t i)
 set neighbor i More...
 
Surrogate< SimplexRefsetNeighborAcross (Simplex &S, PointRef v)
 set neighbor across v More...
 
Surrogate< PointRefsetPeak (Simplex &S)
 
Surrogate< PointRefsetVertex (Simplex &S, uint32_t i)
 set vertex i More...
 
PointRef vertex (Simplex &S, uint32_t i)
 vertex at i More...
 
VRange vertices (Simplex &S)
 complete vertex set More...
 
template<typename Output >
void vsetIntersection (Simplex &Sa, Simplex &Sb, Output intersect)
 builds a list of vertices common to both simplices More...
 
template<typename Output1 , typename Output2 , typename Output3 >
void vsetSplit (Simplex &Sa, Simplex &Sb, Output1 a_only, Output2 b_only, Output3 intersect)
 simultaneously construct the set intersection and the set symmetric difference of Sa and Sb More...
 

Static Public Attributes

static const unsigned int NDim = Traits::NDim
 

Detailed Description

template<class Traits>
struct mpblocks::clarkson93::SimplexOps< Traits >

implements simplex operations for simplex references, using other references can be easily extended by building on top of this class

Definition at line 229 of file Simplex2.h.

Member Typedef Documentation

template<class Traits >
typedef BitSet::reference mpblocks::clarkson93::SimplexOps< Traits >::BitRef

Definition at line 243 of file Simplex2.h.

template<class Traits >
typedef std::bitset<simplex::NUM_BITS> mpblocks::clarkson93::SimplexOps< Traits >::BitSet

Definition at line 242 of file Simplex2.h.

template<class Traits >
typedef Traits::Deref mpblocks::clarkson93::SimplexOps< Traits >::Deref

Definition at line 238 of file Simplex2.h.

template<class Traits >
typedef NeighborRange<Traits> mpblocks::clarkson93::SimplexOps< Traits >::NRange

Definition at line 239 of file Simplex2.h.

template<class Traits >
typedef Traits::Point mpblocks::clarkson93::SimplexOps< Traits >::Point

Definition at line 235 of file Simplex2.h.

template<class Traits >
typedef Traits::PointRef mpblocks::clarkson93::SimplexOps< Traits >::PointRef

Definition at line 237 of file Simplex2.h.

template<class Traits >
typedef Traits::Scalar mpblocks::clarkson93::SimplexOps< Traits >::Scalar

Definition at line 234 of file Simplex2.h.

template<class Traits >
typedef Simplex2<Traits> mpblocks::clarkson93::SimplexOps< Traits >::Simplex

Definition at line 241 of file Simplex2.h.

template<class Traits >
typedef Traits::SimplexRef mpblocks::clarkson93::SimplexOps< Traits >::SimplexRef

Definition at line 236 of file Simplex2.h.

template<class Traits >
typedef VertexRange<Traits> mpblocks::clarkson93::SimplexOps< Traits >::VRange

Definition at line 240 of file Simplex2.h.

Member Function Documentation

template<class Traits >
void mpblocks::clarkson93::SimplexOps< Traits >::computeBase ( Simplex S,
Deref deref 
)
inline

make two simplices neighbors across a common facet

compute the base facet normal and offset

Definition at line 233 of file Simplex2.hpp.

template<class Traits >
void mpblocks::clarkson93::SimplexOps< Traits >::finish ( Simplex S)
inline

after filling vertices, lay them out in sorted order

Definition at line 211 of file Simplex2.hpp.

template<class Traits >
uint32_t mpblocks::clarkson93::SimplexOps< Traits >::indexOf ( Simplex S,
PointRef  v 
)
inline

index of v in S

Definition at line 85 of file Simplex2.hpp.

template<class Traits >
bool mpblocks::clarkson93::SimplexOps< Traits >::isInfinite ( const Simplex S,
PointRef  antiOrigin 
)
inline

returns true if the base vertex is the anti origin

Definition at line 304 of file Simplex2.hpp.

template<class Traits >
bool mpblocks::clarkson93::SimplexOps< Traits >::isMember ( Simplex S,
SimplexBits  bit 
)
inline

S is a member of a set.

Definition at line 78 of file Simplex2.hpp.

template<class Traits >
bool mpblocks::clarkson93::SimplexOps< Traits >::isVisible ( const Simplex S,
const Point x 
)
inline

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 311 of file Simplex2.hpp.

template<class Traits >
Traits::SimplexRef mpblocks::clarkson93::SimplexOps< Traits >::neighbor ( Simplex S,
uint32_t  i 
)
inline

neighbor at i

Definition at line 47 of file Simplex2.hpp.

template<class Traits >
Traits::SimplexRef mpblocks::clarkson93::SimplexOps< Traits >::neighborAcross ( Simplex S,
PointRef  v 
)
inline

neighbor across v

Definition at line 55 of file Simplex2.hpp.

template<class Traits >
NeighborRange< Traits > mpblocks::clarkson93::SimplexOps< Traits >::neighborhood ( Simplex S)
inline

complete neighborhood

Definition at line 93 of file Simplex2.hpp.

template<class Traits >
template<typename Input , typename Output >
void mpblocks::clarkson93::SimplexOps< Traits >::neighborSharing ( Simplex S,
Input  first,
Input  last,
Output  iter 
)
inline

builds a list of neighbors that share a facet... this is the set of neighbors who are accross from a vertex v where v is not in the facet set

Definition at line 154 of file Simplex2.hpp.

template<class Traits >
Traits::Scalar mpblocks::clarkson93::SimplexOps< Traits >::normalProjection ( const Simplex S,
const Point x 
)
inline

returns the distance of x to the base facet, used in walking the triangulation to x

Definition at line 296 of file Simplex2.hpp.

template<class Traits >
void mpblocks::clarkson93::SimplexOps< Traits >::orientBase ( Simplex S,
const Point x,
Orientation  orient = INSIDE 
)
inline

orient the base facete normal by ensuring that the point x lies on the appropriate half-space $ n \cdot x \le c $ )

Definition at line 259 of file Simplex2.hpp.

template<class Traits >
Traits::PointRef mpblocks::clarkson93::SimplexOps< Traits >::peak ( Simplex S)
inline

designated peak vertex

Definition at line 71 of file Simplex2.hpp.

template<class Traits >
Traits::SimplexRef mpblocks::clarkson93::SimplexOps< Traits >::peakNeighbor ( Simplex S)
inline

neighbor across peak

Definition at line 63 of file Simplex2.hpp.

template<class Traits >
std::bitset< simplex::NUM_BITS >::reference mpblocks::clarkson93::SimplexOps< Traits >::setMember ( Simplex S,
SimplexBits  bit 
)
inline

set S's membership in bit

Definition at line 204 of file Simplex2.hpp.

template<class Traits >
Surrogate< typename Traits::SimplexRef > mpblocks::clarkson93::SimplexOps< Traits >::setNeighbor ( Simplex S,
uint32_t  i 
)
inline

set neighbor i

Definition at line 187 of file Simplex2.hpp.

template<class Traits >
Surrogate< typename Traits::SimplexRef > mpblocks::clarkson93::SimplexOps< Traits >::setNeighborAcross ( Simplex S,
PointRef  v 
)
inline

set neighbor across v

Definition at line 195 of file Simplex2.hpp.

template<class Traits >
Surrogate< typename Traits::PointRef > mpblocks::clarkson93::SimplexOps< Traits >::setPeak ( Simplex S)
inline

Definition at line 170 of file Simplex2.hpp.

template<class Traits >
Surrogate< typename Traits::PointRef > mpblocks::clarkson93::SimplexOps< Traits >::setVertex ( Simplex S,
uint32_t  i 
)
inline

set vertex i

Definition at line 179 of file Simplex2.hpp.

template<class Traits >
Traits::PointRef mpblocks::clarkson93::SimplexOps< Traits >::vertex ( Simplex S,
uint32_t  i 
)
inline

vertex at i

Definition at line 39 of file Simplex2.hpp.

template<class Traits >
VertexRange< Traits > mpblocks::clarkson93::SimplexOps< Traits >::vertices ( Simplex S)
inline

complete vertex set

Definition at line 101 of file Simplex2.hpp.

template<class Traits >
template<typename Output >
void mpblocks::clarkson93::SimplexOps< Traits >::vsetIntersection ( Simplex Sa,
Simplex Sb,
Output  intersect 
)
inline

builds a list of vertices common to both simplices

Definition at line 140 of file Simplex2.hpp.

template<class Traits >
template<typename Output1 , typename Output2 , typename Output3 >
void mpblocks::clarkson93::SimplexOps< Traits >::vsetSplit ( Simplex Sa,
Simplex Sb,
Output1  a_only,
Output2  b_only,
Output3  intersect 
)
inline

simultaneously construct the set intersection and the set symmetric difference of Sa and Sb

Definition at line 112 of file Simplex2.hpp.

Member Data Documentation

template<class Traits >
const unsigned int mpblocks::clarkson93::SimplexOps< Traits >::NDim = Traits::NDim
static

Definition at line 233 of file Simplex2.h.


The documentation for this struct was generated from the following files: