sch::CD_SimplexEnhanced Class Reference

#include <sch/CD/CD_SimplexEnhanced.h>

Inheritance diagram for sch::CD_SimplexEnhanced:
Collaboration diagram for sch::CD_SimplexEnhanced:

Public Member Functions

SCH_API CD_SimplexEnhanced (const CD_SimplexEnhanced &rhs)
 
SCH_API CD_SimplexEnhanced (const Point3 &p)
 
SCH_API CD_SimplexEnhanced (const Point3 &p1, const Point3 &p2)
 
SCH_API CD_SimplexEnhanced (const Point3 &p1, const Point3 &p2, const Point3 &p3)
 
SCH_API CD_SimplexEnhanced (const Point3 &p1, const Point3 &p2, const Point3 &p3, const Point3 &p4)
 
SCH_API CD_SimplexEnhanced (const Point3 &p, Scalar norm)
 
SCH_API CD_SimplexEnhanced (const Point3 &p1, const Point3 &p2, Scalar norm1, Scalar norm2)
 
SCH_API CD_SimplexEnhanced (const Point3 &p1, const Point3 &p2, const Point3 &p3, Scalar norm1, Scalar norm2, Scalar norm3)
 
SCH_API CD_SimplexEnhanced (const Point3 &p1, const Point3 &p2, const Point3 &p3, const Point3 &p4, Scalar norm1, Scalar norm2, Scalar norm3, Scalar norm4)
 
virtual SCH_API ~CD_SimplexEnhanced (void)
 
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 norms (const char i) const
 returns the distances of the simplex points to the origin More...
 
SCH_API Scalarnorms (const char i)
 returns the distances of the simplex points to the origin More...
 
SCH_API CD_SimplexEnhancedoperator= (const CD_SimplexEnhanced &)
 
SCH_API CD_SimplexEnhancedoperator+= (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_SimplexEnhanced 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...
 
SCH_API Scalar farthestPointDistance () const
 gives the distance squared between the origin and the furthest simplex vertices More...
 
SCH_API void getClosestSubSimplexGJK (CD_SimplexKeptPoints &k) const
 optimized version of GetClosestSubSimplex((0,0,0),v) for GJK (the highest index point is the last inserted in the GJK algorithm) to make it work, updateVectors must be called before. More...
 
SCH_API bool isAffinelyDependent () const
 Tells if the simplex is affinely dependant or not according to the static variable zero to make it work, updateVectors must be called before. More...
 
- Public Member Functions inherited from sch::CD_Simplex
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...
 
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

Scalar norm1_
 
Scalar norm2_
 
Scalar norm3_
 
Scalar norm4_
 
- Protected Attributes inherited from sch::CD_Simplex
CD_SimplexType type_
 
Point3 s1_
 
Point3 s2_
 
Point3 s3_
 
Point3 s4_
 
Vector3 ab_
 
Vector3 ac_
 
Vector3 ad_
 

Additional Inherited Members

- Static Protected Attributes inherited from sch::CD_Simplex
static const Scalar zero_
 
static const Scalar zero2_
 
static const Scalar zero3_
 
static const Scalar zero4_
 

Constructor & Destructor Documentation

◆ CD_SimplexEnhanced() [1/9]

CD_SimplexEnhanced::CD_SimplexEnhanced ( const CD_SimplexEnhanced rhs)
inline

◆ CD_SimplexEnhanced() [2/9]

CD_SimplexEnhanced::CD_SimplexEnhanced ( const Point3 p)
inline

◆ CD_SimplexEnhanced() [3/9]

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

◆ CD_SimplexEnhanced() [4/9]

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

◆ CD_SimplexEnhanced() [5/9]

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

◆ CD_SimplexEnhanced() [6/9]

CD_SimplexEnhanced::CD_SimplexEnhanced ( const Point3 p,
Scalar  norm 
)
inline

◆ CD_SimplexEnhanced() [7/9]

CD_SimplexEnhanced::CD_SimplexEnhanced ( const Point3 p1,
const Point3 p2,
Scalar  norm1,
Scalar  norm2 
)
inline

◆ CD_SimplexEnhanced() [8/9]

CD_SimplexEnhanced::CD_SimplexEnhanced ( const Point3 p1,
const Point3 p2,
const Point3 p3,
Scalar  norm1,
Scalar  norm2,
Scalar  norm3 
)
inline

◆ CD_SimplexEnhanced() [9/9]

CD_SimplexEnhanced::CD_SimplexEnhanced ( const Point3 p1,
const Point3 p2,
const Point3 p3,
const Point3 p4,
Scalar  norm1,
Scalar  norm2,
Scalar  norm3,
Scalar  norm4 
)
inline

◆ ~CD_SimplexEnhanced()

virtual SCH_API sch::CD_SimplexEnhanced::~CD_SimplexEnhanced ( void  )
virtual

Member Function Documentation

◆ farthestPointDistance()

Scalar CD_SimplexEnhanced::farthestPointDistance ( ) const
inline

gives the distance squared between the origin and the furthest simplex vertices

◆ filter()

void CD_SimplexEnhanced::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 from sch::CD_Simplex.

◆ getClosestSubSimplexGJK()

SCH_API void sch::CD_SimplexEnhanced::getClosestSubSimplexGJK ( CD_SimplexKeptPoints k) const

optimized version of GetClosestSubSimplex((0,0,0),v) for GJK (the highest index point is the last inserted in the GJK algorithm) to make it work, updateVectors must be called before.

◆ isAffinelyDependent()

bool CD_SimplexEnhanced::isAffinelyDependent ( ) const
inline

Tells if the simplex is affinely dependant or not according to the static variable zero to make it work, updateVectors must be called before.

◆ norms() [1/2]

Scalar & CD_SimplexEnhanced::norms ( const char  i)
inline

returns the distances of the simplex points to the origin

◆ norms() [2/2]

Scalar CD_SimplexEnhanced::norms ( const char  i) const
inline

returns the distances of the simplex points to the origin

◆ operator+()

CD_SimplexEnhanced CD_SimplexEnhanced::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_SimplexEnhanced & CD_SimplexEnhanced::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=()

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

Member Data Documentation

◆ norm1_

Scalar sch::CD_SimplexEnhanced::norm1_
protected

◆ norm2_

Scalar sch::CD_SimplexEnhanced::norm2_
protected

◆ norm3_

Scalar sch::CD_SimplexEnhanced::norm3_
protected

◆ norm4_

Scalar sch::CD_SimplexEnhanced::norm4_
protected

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