16#ifndef BT_SIMPLEX_SOLVER_INTERFACE_H
17#define BT_SIMPLEX_SOLVER_INTERFACE_H
21#define NO_VIRTUAL_INTERFACE 1
22#ifdef NO_VIRTUAL_INTERFACE
24#define btSimplexSolverInterface btVoronoiSimplexSolver
33 virtual ~btSimplexSolverInterface(){};
35 virtual void reset() = 0;
37 virtual void addVertex(
const btVector3&
w,
const btVector3& p,
const btVector3& q) = 0;
39 virtual bool closest(btVector3&
v) = 0;
45 virtual int getSimplex(btVector3* pBuf, btVector3* qBuf, btVector3* yBuf)
const = 0;
47 virtual bool inSimplex(
const btVector3&
w) = 0;
ATTR_WARN_UNUSED_RESULT const BMVert * v
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define btSimplexSolverInterface
void reset()
clear internal cached data and reset random seed
void addVertex(const btVector3 &pt)
int getSimplex(btVector3 *pBuf, btVector3 *qBuf, btVector3 *yBuf) const
bool inSimplex(const btVector3 &w)
bool emptySimplex() const
void compute_points(btVector3 &p1, btVector3 &p2)
bool closest(btVector3 &v)
void backup_closest(btVector3 &v)