sch::CD_Simplex Class Reference

#include <sch/CD/CD_Simplex.h>

Inheritance diagram for sch::CD_Simplex:
Collaboration diagram for sch::CD_Simplex:

Public Member Functions

SCH_API CD_Simplex (const CD_Simplex &rhs)
 
SCH_API CD_Simplex (const Point3 &p)
 
SCH_API CD_Simplex (const Point3 &p1, const Point3 &p2)
 
SCH_API CD_Simplex (const Point3 &p1, const Point3 &p2, const Point3 &p3)
 
SCH_API CD_Simplex (const Point3 &p1, const Point3 &p2, const Point3 &p3, const Point3 &p4)
 
virtual SCH_API ~CD_Simplex ()
 
SCH_API CD_SimplexType getType () const
 
const SCH_API Point3operator[] (unsigned char) const
 
SCH_API Point3operator[] (unsigned char)
 
SCH_API CD_Simplexoperator= (const CD_Simplex &s)
 
SCH_API CD_Simplexoperator= (const Point3 &p)
 
SCH_API bool operator== (const CD_Simplex &s)
 
SCH_API bool operator!= (const CD_Simplex &s)
 
SCH_API CD_Simplexoperator+= (const Point3 &)
 Adds a point to a simplex to transform it in a higher dimemsion simplex (doesn't work with tetrahedron) \updateVetors must be called after this operator to keep the vectors up to date. More...
 
SCH_API CD_Simplex operator+ (const Point3 &) const
 Adds a point to a simplex to transform it in a higher dimemsion simplex (doesn't work with tetrahedron) \updateVetors must be called after this operator to keep the vectors up to date. More...
 
virtual SCH_API void filter (const CD_SimplexKeptPoints &k)
 Updates the simplex by supressing some vertexes and/or change their order according to a filter. More...
 
SCH_API Scalar squareDistanceAtOrigin (const Vector3 &v) const
 Gives the distance squared at the origin for a simplex, and according the direction v. More...
 
SCH_API void updateVectors ()
 Updates AB,AC,AD vectors. A is the last vertex inserted and B, C and D are previous vertexes. More...
 
const SCH_API Vector3AB () const
 Returns AB vector. More...
 
const SCH_API Vector3AC () const
 Returns AC vector. More...
 
const SCH_API Vector3AD () const
 Returns AD vector. More...
 

Protected Attributes

CD_SimplexType type_
 
Point3 s1_
 
Point3 s2_
 
Point3 s3_
 
Point3 s4_
 
Vector3 ab_
 
Vector3 ac_
 
Vector3 ad_
 

Static Protected Attributes

static const Scalar zero_
 
static const Scalar zero2_
 
static const Scalar zero3_
 
static const Scalar zero4_
 

Constructor & Destructor Documentation

◆ CD_Simplex() [1/5]

CD_Simplex::CD_Simplex ( const CD_Simplex rhs)
inline

◆ CD_Simplex() [2/5]

CD_Simplex::CD_Simplex ( const Point3 p)
inline

◆ CD_Simplex() [3/5]

CD_Simplex::CD_Simplex ( const Point3 p1,
const Point3 p2 
)
inline

◆ CD_Simplex() [4/5]

CD_Simplex::CD_Simplex ( const Point3 p1,
const Point3 p2,
const Point3 p3 
)
inline

◆ CD_Simplex() [5/5]

CD_Simplex::CD_Simplex ( const Point3 p1,
const Point3 p2,
const Point3 p3,
const Point3 p4 
)
inline

◆ ~CD_Simplex()

virtual SCH_API sch::CD_Simplex::~CD_Simplex ( )
virtual

Member Function Documentation

◆ AB()

const Vector3 & CD_Simplex::AB ( ) const
inline

Returns AB vector.

◆ AC()

const Vector3 & CD_Simplex::AC ( ) const
inline

Returns AC vector.

◆ AD()

const Vector3 & CD_Simplex::AD ( ) const
inline

Returns AD vector.

◆ filter()

void CD_Simplex::filter ( const CD_SimplexKeptPoints k)
inlinevirtual

Updates the simplex by supressing some vertexes and/or change their order according to a filter.

Parameters
kis the filter used to know wich vertexes will be kept and in wich order \updateVetors must be called after this function to keep the vectors up to date.

Reimplemented in sch::CD_SimplexEnhanced.

◆ getType()

CD_SimplexType CD_Simplex::getType ( ) const
inline

◆ operator!=()

bool CD_Simplex::operator!= ( const CD_Simplex s)
inline

◆ operator+()

CD_Simplex CD_Simplex::operator+ ( const Point3 p) const
inline

Adds a point to a simplex to transform it in a higher dimemsion simplex (doesn't work with tetrahedron) \updateVetors must be called after this operator to keep the vectors up to date.

◆ operator+=()

CD_Simplex & CD_Simplex::operator+= ( const Point3 p)
inline

Adds a point to a simplex to transform it in a higher dimemsion simplex (doesn't work with tetrahedron) \updateVetors must be called after this operator to keep the vectors up to date.

◆ operator=() [1/2]

CD_Simplex & CD_Simplex::operator= ( const CD_Simplex s)
inline

◆ operator=() [2/2]

CD_Simplex & CD_Simplex::operator= ( const Point3 p)
inline

◆ operator==()

bool CD_Simplex::operator== ( const CD_Simplex s)
inline

◆ operator[]() [1/2]

SCH_API Point3& sch::CD_Simplex::operator[] ( unsigned char  )

◆ operator[]() [2/2]

const SCH_API Point3& sch::CD_Simplex::operator[] ( unsigned char  ) const

◆ squareDistanceAtOrigin()

Scalar CD_Simplex::squareDistanceAtOrigin ( const Vector3 v) const
inline

Gives the distance squared at the origin for a simplex, and according the direction v.

◆ updateVectors()

void CD_Simplex::updateVectors ( )
inline

Updates AB,AC,AD vectors. A is the last vertex inserted and B, C and D are previous vertexes.

Member Data Documentation

◆ ab_

Vector3 sch::CD_Simplex::ab_
protected

◆ ac_

Vector3 sch::CD_Simplex::ac_
protected

◆ ad_

Vector3 sch::CD_Simplex::ad_
protected

◆ s1_

Point3 sch::CD_Simplex::s1_
protected

◆ s2_

Point3 sch::CD_Simplex::s2_
protected

◆ s3_

Point3 sch::CD_Simplex::s3_
protected

◆ s4_

Point3 sch::CD_Simplex::s4_
protected

◆ type_

CD_SimplexType sch::CD_Simplex::type_
protected

◆ zero2_

const Scalar sch::CD_Simplex::zero2_
staticprotected

◆ zero3_

const Scalar sch::CD_Simplex::zero3_
staticprotected

◆ zero4_

const Scalar sch::CD_Simplex::zero4_
staticprotected

◆ zero_

const Scalar sch::CD_Simplex::zero_
staticprotected

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