Go to the documentation of this file. 1 inline CD_SimplexEnhanced::CD_SimplexEnhanced(
const Point3 & p)
2 :
CD_Simplex(p), norm1_(p.normsquared()), norm2_(0), norm3_(0), norm4_(0)
7 :
CD_Simplex(p1, p2), norm1_(p1.normsquared()), norm2_(p2.normsquared()), norm3_(0), norm4_(0)
12 :
CD_Simplex(p1, p2, p3), norm1_(p1.normsquared()), norm2_(p2.normsquared()), norm3_(p3.normsquared()), norm4_(0)
20 :
CD_Simplex(p1, p2, p3, p4), norm1_(p1.normsquared()), norm2_(p2.normsquared()), norm3_(p3.normsquared()),
21 norm4_(p4.normsquared())
35 inline Scalar CD_SimplexEnhanced::square_(
const Scalar & a)
40 inline Scalar CD_SimplexEnhanced::cube_(
const Scalar & a)
58 char a[] = {0, 1, 2, 3};
61 CD_SimplexExchangeTest<Vector3>(
s1_, (*
this)[f.
b1], cache);
63 CD_SimplexExchange<char>(a[0], a[(
int)f.
b1], b);
65 s2_ = (*this)[a[(int)(f.
b2)]];
74 char a[] = {0, 1, 2, 3};
77 CD_SimplexExchangeTest<Vector3>(
s1_, (*
this)[f.
b1], cache);
79 CD_SimplexExchange<char>(a[0], a[(
int)f.
b1], b);
81 CD_SimplexExchangeTest<Vector3>(
s2_, (*
this)[a[(
int)f.
b2]], cache);
82 CD_SimplexExchange<Scalar>(
norm2_,
norms(a[(
int)f.
b2]), cache2);
83 CD_SimplexExchange<char>(a[(
int)a[1]], a[(
int)a[(
int)f.
b2]], b);
85 s3_ = (*this)[a[(int)f.
b3]];
103 char a[] = {0, 1, 2, 3};
105 CD_SimplexExchangeTest<Vector3>(
s1_, (*
this)[f.
b1], cache);
107 CD_SimplexExchange<char>(a[0], a[(
int)f.
b1], b);
109 CD_SimplexExchangeTest<Vector3>(
s2_, (*
this)[a[(
int)f.
b2]], cache);
110 CD_SimplexExchange<Scalar>(
norm2_,
norms(a[(
int)f.
b2]), cache2);
111 CD_SimplexExchange<char>(a[(
int)a[1]], a[(
int)a[(
int)f.
b2]], b);
113 CD_SimplexExchangeTest<Vector3>(
s3_, (*
this)[a[(
int)f.
b3]], cache);
114 CD_SimplexExchange<Scalar>(
norm3_,
norms(a[(
int)f.
b3]), cache2);
115 CD_SimplexExchange<char>(a[(
int)a[2]], a[(
int)a[(
int)f.
b3]], b);
117 s4_ = (*this)[a[(int)f.
b4]];
127 :
CD_Simplex(p1, p2), norm1_(norm1), norm2_(norm2)
137 :
CD_Simplex(p1, p2, p3), norm1_(norm1), norm2_(norm2), norm3_(norm3)
149 :
CD_Simplex(p1, p2, p3, p4), norm1_(norm1), norm2_(norm2), norm3_(norm3), norm4_(norm4)
160 if(
this == &s)
return *
this;
Scalar norm3_
Definition: CD_SimplexEnhanced.h:90
Definition: CD_SimplexEnhanced.h:10
Vector3 ac_
Definition: CD_Simplex.h:125
Scalar norm4_
Definition: CD_SimplexEnhanced.h:90
Definition: CD_Simplex.h:27
T normsquared() const
Definition: SmallVector3T.h:308
Vector3 ab_
Definition: CD_Simplex.h:125
@ CD_Triangle
Definition: CD_Simplex.h:19
CD_Matrix::Matrix3x3T< Scalar > Matrix3x3
Definition: SCH_Types.h:27
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 tetrahedro...
Definition: CD_SimplexEnhanced.hxx:225
@ CD_Segment
Definition: CD_Simplex.h:18
char b4
Definition: CD_Simplex.h:29
SCH_API CD_SimplexEnhanced & operator+=(const Point3 &)
Adds a point to a simplex to transform it in a higher dimemsion simplex (doesn't work with tetrahedro...
Definition: CD_SimplexEnhanced.hxx:201
SCH_API bool isAffinelyDependent() const
Tells if the simplex is affinely dependant or not according to the static variable zero to make it wo...
Definition: CD_SimplexEnhanced.hxx:342
SCH_API Scalar farthestPointDistance() const
gives the distance squared between the origin and the furthest simplex vertices
Definition: CD_SimplexEnhanced.hxx:243
Point3 s4_
Definition: CD_Simplex.h:124
char b2
Definition: CD_Simplex.h:29
char b1
Definition: CD_Simplex.h:29
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.
Definition: CD_SimplexEnhanced.hxx:45
Vector3 ad_
Definition: CD_Simplex.h:125
SCH_API Scalar norms(const char i) const
returns the distances of the simplex points to the origin
Definition: CD_SimplexEnhanced.hxx:30
SCH_API CD_SimplexEnhanced(const CD_SimplexEnhanced &rhs)
Definition: CD_SimplexEnhanced.hxx:153
static const Scalar zero_
Definition: CD_Simplex.h:127
CD_SimplexType type
Definition: CD_Simplex.h:31
@ CD_None
Definition: CD_Simplex.h:21
Point3 s2_
Definition: CD_Simplex.h:124
char b3
Definition: CD_Simplex.h:29
Point3 s3_
Definition: CD_Simplex.h:124
double Scalar
Definition: SCH_Types.h:23
Definition: CD_Simplex.h:54
Point3 s1_
Definition: CD_Simplex.h:124
@ CD_Point
Definition: CD_Simplex.h:17
Scalar norm1_
Definition: CD_SimplexEnhanced.h:90
SCH_API CD_SimplexEnhanced & operator=(const CD_SimplexEnhanced &)
Definition: CD_SimplexEnhanced.hxx:158
CD_SimplexType type_
Definition: CD_Simplex.h:122
@ CD_Tetrahedron
Definition: CD_Simplex.h:20
Scalar norm2_
Definition: CD_SimplexEnhanced.h:90