18 #ifndef BT_VORONOI_SIMPLEX_SOLVER_H 19 #define BT_VORONOI_SIMPLEX_SOLVER_H 25 #define VORONOI_SIMPLEX_MAX_VERTS 5 28 #define BT_USE_EQUAL_VERTEX_THRESHOLD 30 #ifdef BT_USE_DOUBLE_PRECISION 31 #define VORONOI_DEFAULT_EQUAL_VERTEX_THRESHOLD 1e-12f 33 #define VORONOI_DEFAULT_EQUAL_VERTEX_THRESHOLD 0.0001f 34 #endif//BT_USE_DOUBLE_PRECISION 73 setBarycentricCoordinates();
74 m_usedVertices.
reset();
78 bool valid = (m_barycentricCoords[0] >=
btScalar(0.)) &&
79 (m_barycentricCoords[1] >=
btScalar(0.)) &&
80 (m_barycentricCoords[2] >=
btScalar(0.)) &&
81 (m_barycentricCoords[3] >=
btScalar(0.));
88 m_barycentricCoords[0] = a;
89 m_barycentricCoords[1] = b;
90 m_barycentricCoords[2] = c;
91 m_barycentricCoords[3] = d;
98 #ifdef NO_VIRTUAL_INTERFACE 129 void removeVertex(
int index);
131 bool updateClosestVectorAndPoints();
149 m_equalVertexThreshold = threshold;
154 return m_equalVertexThreshold;
163 return (m_numVertices == 4);
172 bool emptySimplex()
const ;
178 return m_numVertices;
184 #endif //BT_VORONOI_SIMPLEX_SOLVER_H unsigned short usedVertexA
btVector3 m_closestPointOnSimplex
unsigned short usedVertexD
#define VORONOI_DEFAULT_EQUAL_VERTEX_THRESHOLD
unsigned short usedVertexB
btScalar m_equalVertexThreshold
bool m_cachedValidClosest
#define btSimplexSolverInterface
btVoronoiSimplexSolver is an implementation of the closest point distance algorithm from a 1-4 points...
void setEqualVertexThreshold(btScalar threshold)
void setBarycentricCoordinates(btScalar a=btScalar(0.), btScalar b=btScalar(0.), btScalar c=btScalar(0.), btScalar d=btScalar(0.))
btVector3 can be used to represent 3D points and vectors.
#define ATTRIBUTE_ALIGNED16(a)
btSubSimplexClosestResult m_cachedBC
#define BT_DECLARE_ALIGNED_ALLOCATOR()
unsigned short usedVertexC
btUsageBitfield m_usedVertices
btScalar getEqualVertexThreshold() const
#define VORONOI_SIMPLEX_MAX_VERTS
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...