Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef BT_SIMPLEX_SOLVER_INTERFACE_H
00019 #define BT_SIMPLEX_SOLVER_INTERFACE_H
00020
00021 #include "LinearMath/btVector3.h"
00022
00023 #define NO_VIRTUAL_INTERFACE 1
00024 #ifdef NO_VIRTUAL_INTERFACE
00025 #include "btVoronoiSimplexSolver.h"
00026 #define btSimplexSolverInterface btVoronoiSimplexSolver
00027 #else
00028
00032 class btSimplexSolverInterface
00033 {
00034 public:
00035 virtual ~btSimplexSolverInterface() {};
00036
00037 virtual void reset() = 0;
00038
00039 virtual void addVertex(const btVector3& w, const btVector3& p, const btVector3& q) = 0;
00040
00041 virtual bool closest(btVector3& v) = 0;
00042
00043 virtual btScalar maxVertex() = 0;
00044
00045 virtual bool fullSimplex() const = 0;
00046
00047 virtual int getSimplex(btVector3 *pBuf, btVector3 *qBuf, btVector3 *yBuf) const = 0;
00048
00049 virtual bool inSimplex(const btVector3& w) = 0;
00050
00051 virtual void backup_closest(btVector3& v) = 0;
00052
00053 virtual bool emptySimplex() const = 0;
00054
00055 virtual void compute_points(btVector3& p1, btVector3& p2) = 0;
00056
00057 virtual int numVertices() const =0;
00058
00059
00060 };
00061 #endif
00062 #endif //BT_SIMPLEX_SOLVER_INTERFACE_H
00063