Go to the documentation of this file.
3 inline CD_Simplex::CD_Simplex(
const Point3 & p) : type_(
CD_Point), s1_(p) {}
84 return ((i == 0) ?
s1_ : (i == 1) ?
s2_ : (i == 2) ?
s3_ :
s4_);
89 return ((i == 0) ?
s1_ : (i == 1) ?
s2_ : (i == 2) ?
s3_ :
s4_);
154 return !((*this) == s);
208 char a[] = {0, 1, 2, 3};
210 CD_SimplexExchangeTest<Vector3>(
s1_, (*
this)[f.
b1], cache);
211 CD_SimplexExchange<char>(a[0], a[(
int)f.
b1], b);
213 s2_ = (*this)[a[(int)f.
b2]];
220 char a[] = {0, 1, 2, 3};
222 CD_SimplexExchangeTest<Vector3>(
s1_, (*
this)[(
int)f.
b1], cache);
223 CD_SimplexExchange<char>(a[0], a[(
int)f.
b1], b);
225 CD_SimplexExchangeTest<Vector3>(
s2_, (*
this)[a[(
int)f.
b2]], cache);
226 CD_SimplexExchange<char>(a[(
int)a[1]], a[(
int)a[(
int)f.
b2]], b);
228 s3_ = (*this)[a[(int)f.
b3]];
235 s1_ = (*this)[(int)f.
b1];
242 char a[] = {0, 1, 2, 3};
244 CD_SimplexExchangeTest<Vector3>(
s1_, (*
this)[(
int)f.
b1], cache);
245 CD_SimplexExchange<char>(a[0], a[(
int)f.
b1], b);
247 CD_SimplexExchangeTest<Vector3>(
s2_, (*
this)[a[(
int)f.
b2]], cache);
248 CD_SimplexExchange<char>(a[(
int)a[1]], a[(
int)a[(
int)f.
b2]], b);
250 CD_SimplexExchangeTest<Vector3>(
s3_, (*
this)[a[(
int)f.
b3]], cache);
251 CD_SimplexExchange<char>(a[(
int)a[2]], a[(
int)a[(
int)f.
b3]], b);
253 s4_ = (*this)[a[(int)f.
b4]];
Vector3 ac_
Definition: CD_Simplex.h:125
SCH_API CD_Simplex & operator+=(const Point3 &)
Adds a point to a simplex to transform it in a higher dimemsion simplex (doesn't work with tetrahedro...
Definition: CD_Simplex.hxx:157
Definition: CD_Simplex.h:27
const SCH_API Vector3 & AC() const
Returns AC vector.
Definition: CD_Simplex.hxx:41
T normsquared() const
Definition: SmallVector3T.h:308
Vector3 Point3
Definition: SCH_Types.h:26
Vector3 ab_
Definition: CD_Simplex.h:125
const SCH_API Point3 & operator[](unsigned char) const
SCH_API CD_SimplexType getType() const
Definition: CD_Simplex.hxx:77
void CD_SimplexExchange(T &a, T &b, T &c)
Definition: CD_Simplex.hxx:29
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 tetrahedro...
Definition: CD_Simplex.hxx:178
@ CD_Triangle
Definition: CD_Simplex.h:19
@ CD_Segment
Definition: CD_Simplex.h:18
char b4
Definition: CD_Simplex.h:29
SCH_API bool operator==(const CD_Simplex &s)
Definition: CD_Simplex.hxx:136
SCH_API bool operator!=(const CD_Simplex &s)
Definition: CD_Simplex.hxx:152
Point3 s4_
Definition: CD_Simplex.h:124
char b2
Definition: CD_Simplex.h:29
char b1
Definition: CD_Simplex.h:29
const SCH_API Vector3 & AB() const
Returns AB vector.
Definition: CD_Simplex.hxx:36
SCH_API CD_Simplex(const CD_Simplex &rhs)
Definition: CD_Simplex.hxx:92
const SCH_API Vector3 & AD() const
Returns AD vector.
Definition: CD_Simplex.hxx:46
Vector3 ad_
Definition: CD_Simplex.h:125
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_Simplex.hxx:196
SCH_API Scalar squareDistanceAtOrigin(const Vector3 &v) const
Gives the distance squared at the origin for a simplex, and according the direction v.
Definition: CD_Simplex.hxx:259
CD_SimplexType
Definition: CD_Simplex.h:15
CD_SimplexType type
Definition: CD_Simplex.h:31
@ CD_None
Definition: CD_Simplex.h:21
void CD_SimplexExchangeTest(T &a, T &b, T &c)
Definition: CD_Simplex.hxx:18
Point3 s2_
Definition: CD_Simplex.h:124
char b3
Definition: CD_Simplex.h:29
SCH_API void updateVectors()
Updates AB,AC,AD vectors. A is the last vertex inserted and B, C and D are previous vertexes.
Definition: CD_Simplex.hxx:51
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
CD_SimplexType type_
Definition: CD_Simplex.h:122
@ CD_Tetrahedron
Definition: CD_Simplex.h:20
SCH_API CD_Simplex & operator=(const CD_Simplex &s)
Definition: CD_Simplex.hxx:97