16#ifndef BT_VORONOI_SIMPLEX_SOLVER_H
17#define BT_VORONOI_SIMPLEX_SOLVER_H
21#define VORONOI_SIMPLEX_MAX_VERTS 5
24#define BT_USE_EQUAL_VERTEX_THRESHOLD
26#ifdef BT_USE_DOUBLE_PRECISION
27#define VORONOI_DEFAULT_EQUAL_VERTEX_THRESHOLD 1e-12f
29#define VORONOI_DEFAULT_EQUAL_VERTEX_THRESHOLD 0.0001f
92#ifdef NO_VIRTUAL_INTERFACE
121 void removeVertex(
int index);
123 bool updateClosestVectorAndPoints();
140 m_equalVertexThreshold = threshold;
145 return m_equalVertexThreshold;
154 return (m_numVertices == 4);
163 bool emptySimplex()
const;
169 return m_numVertices;
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define ATTRIBUTE_ALIGNED16(a)
#define btSimplexSolverInterface
#define VORONOI_SIMPLEX_MAX_VERTS
#define VORONOI_DEFAULT_EQUAL_VERTEX_THRESHOLD
btVector3 can be used to represent 3D points and vectors.
btVoronoiSimplexSolver is an implementation of the closest point distance algorithm from a 1-4 points...
btSubSimplexClosestResult m_cachedBC
BT_DECLARE_ALIGNED_ALLOCATOR()
bool m_cachedValidClosest
btScalar getEqualVertexThreshold() const
btScalar m_equalVertexThreshold
void setEqualVertexThreshold(btScalar threshold)
void setBarycentricCoordinates(btScalar a=btScalar(0.), btScalar b=btScalar(0.), btScalar c=btScalar(0.), btScalar d=btScalar(0.))
btUsageBitfield m_usedVertices
btScalar m_barycentricCoords[4]
btVector3 m_closestPointOnSimplex
unsigned short usedVertexC
unsigned short usedVertexB
unsigned short usedVertexA
unsigned short usedVertexD