Bullet Collision Detection & Physics Library
Public Member Functions | Public Attributes | List of all members
btVoronoiSimplexSolver Class Reference

btVoronoiSimplexSolver is an implementation of the closest point distance algorithm from a 1-4 points simplex to the origin. More...

#include <btVoronoiSimplexSolver.h>

Collaboration diagram for btVoronoiSimplexSolver:
Collaboration graph
[legend]

Public Member Functions

 BT_DECLARE_ALIGNED_ALLOCATOR ()
 
void removeVertex (int index)
 
void reduceVertices (const btUsageBitfield &usedVerts)
 
bool updateClosestVectorAndPoints ()
 
bool closestPtPointTetrahedron (const btVector3 &p, const btVector3 &a, const btVector3 &b, const btVector3 &c, const btVector3 &d, btSubSimplexClosestResult &finalResult)
 
int pointOutsideOfPlane (const btVector3 &p, const btVector3 &a, const btVector3 &b, const btVector3 &c, const btVector3 &d)
 Test if point p and d lie on opposite sides of plane through abc. More...
 
bool closestPtPointTriangle (const btVector3 &p, const btVector3 &a, const btVector3 &b, const btVector3 &c, btSubSimplexClosestResult &result)
 
 btVoronoiSimplexSolver ()
 
void reset ()
 
void addVertex (const btVector3 &w, const btVector3 &p, const btVector3 &q)
 
void setEqualVertexThreshold (btScalar threshold)
 
btScalar getEqualVertexThreshold () const
 
bool closest (btVector3 &v)
 
btScalar maxVertex ()
 
bool fullSimplex () const
 
int getSimplex (btVector3 *pBuf, btVector3 *qBuf, btVector3 *yBuf) const
 
bool inSimplex (const btVector3 &w)
 
void backup_closest (btVector3 &v)
 
bool emptySimplex () const
 
void compute_points (btVector3 &p1, btVector3 &p2)
 
int numVertices () const
 

Public Attributes

int m_numVertices
 
btVector3 m_simplexVectorW [VORONOI_SIMPLEX_MAX_VERTS]
 
btVector3 m_simplexPointsP [VORONOI_SIMPLEX_MAX_VERTS]
 
btVector3 m_simplexPointsQ [VORONOI_SIMPLEX_MAX_VERTS]
 
btVector3 m_cachedP1
 
btVector3 m_cachedP2
 
btVector3 m_cachedV
 
btVector3 m_lastW
 
btScalar m_equalVertexThreshold
 
bool m_cachedValidClosest
 
btSubSimplexClosestResult m_cachedBC
 
bool m_needsUpdate
 

Detailed Description

btVoronoiSimplexSolver is an implementation of the closest point distance algorithm from a 1-4 points simplex to the origin.

Can be used with GJK, as an alternative to Johnson distance algorithm.

Definition at line 99 of file btVoronoiSimplexSolver.h.

Constructor & Destructor Documentation

btVoronoiSimplexSolver::btVoronoiSimplexSolver ( )
inline

Definition at line 139 of file btVoronoiSimplexSolver.h.

Member Function Documentation

void btVoronoiSimplexSolver::addVertex ( const btVector3 w,
const btVector3 p,
const btVector3 q 
)

Definition at line 78 of file btVoronoiSimplexSolver.cpp.

void btVoronoiSimplexSolver::backup_closest ( btVector3 v)

Definition at line 310 of file btVoronoiSimplexSolver.cpp.

btVoronoiSimplexSolver::BT_DECLARE_ALIGNED_ALLOCATOR ( )
bool btVoronoiSimplexSolver::closest ( btVector3 v)

Definition at line 243 of file btVoronoiSimplexSolver.cpp.

bool btVoronoiSimplexSolver::closestPtPointTetrahedron ( const btVector3 p,
const btVector3 a,
const btVector3 b,
const btVector3 c,
const btVector3 d,
btSubSimplexClosestResult finalResult 
)

Definition at line 460 of file btVoronoiSimplexSolver.cpp.

bool btVoronoiSimplexSolver::closestPtPointTriangle ( const btVector3 p,
const btVector3 a,
const btVector3 b,
const btVector3 c,
btSubSimplexClosestResult result 
)

Definition at line 333 of file btVoronoiSimplexSolver.cpp.

void btVoronoiSimplexSolver::compute_points ( btVector3 p1,
btVector3 p2 
)

Definition at line 322 of file btVoronoiSimplexSolver.cpp.

bool btVoronoiSimplexSolver::emptySimplex ( ) const

Definition at line 316 of file btVoronoiSimplexSolver.cpp.

bool btVoronoiSimplexSolver::fullSimplex ( ) const
inline

Definition at line 161 of file btVoronoiSimplexSolver.h.

btScalar btVoronoiSimplexSolver::getEqualVertexThreshold ( ) const
inline

Definition at line 152 of file btVoronoiSimplexSolver.h.

int btVoronoiSimplexSolver::getSimplex ( btVector3 pBuf,
btVector3 qBuf,
btVector3 yBuf 
) const

Definition at line 268 of file btVoronoiSimplexSolver.cpp.

bool btVoronoiSimplexSolver::inSimplex ( const btVector3 w)

Definition at line 283 of file btVoronoiSimplexSolver.cpp.

btScalar btVoronoiSimplexSolver::maxVertex ( )

Definition at line 252 of file btVoronoiSimplexSolver.cpp.

int btVoronoiSimplexSolver::numVertices ( ) const
inline

Definition at line 176 of file btVoronoiSimplexSolver.h.

int btVoronoiSimplexSolver::pointOutsideOfPlane ( const btVector3 p,
const btVector3 a,
const btVector3 b,
const btVector3 c,
const btVector3 d 
)

Test if point p and d lie on opposite sides of plane through abc.

Definition at line 433 of file btVoronoiSimplexSolver.cpp.

void btVoronoiSimplexSolver::reduceVertices ( const btUsageBitfield usedVerts)

Definition at line 45 of file btVoronoiSimplexSolver.cpp.

void btVoronoiSimplexSolver::removeVertex ( int  index)

Definition at line 35 of file btVoronoiSimplexSolver.cpp.

void btVoronoiSimplexSolver::reset ( )

Definition at line 66 of file btVoronoiSimplexSolver.cpp.

void btVoronoiSimplexSolver::setEqualVertexThreshold ( btScalar  threshold)
inline

Definition at line 147 of file btVoronoiSimplexSolver.h.

bool btVoronoiSimplexSolver::updateClosestVectorAndPoints ( )

Definition at line 90 of file btVoronoiSimplexSolver.cpp.

Member Data Documentation

btSubSimplexClosestResult btVoronoiSimplexSolver::m_cachedBC

Definition at line 125 of file btVoronoiSimplexSolver.h.

btVector3 btVoronoiSimplexSolver::m_cachedP1

Definition at line 116 of file btVoronoiSimplexSolver.h.

btVector3 btVoronoiSimplexSolver::m_cachedP2

Definition at line 117 of file btVoronoiSimplexSolver.h.

btVector3 btVoronoiSimplexSolver::m_cachedV

Definition at line 118 of file btVoronoiSimplexSolver.h.

bool btVoronoiSimplexSolver::m_cachedValidClosest

Definition at line 122 of file btVoronoiSimplexSolver.h.

btScalar btVoronoiSimplexSolver::m_equalVertexThreshold

Definition at line 121 of file btVoronoiSimplexSolver.h.

btVector3 btVoronoiSimplexSolver::m_lastW

Definition at line 119 of file btVoronoiSimplexSolver.h.

bool btVoronoiSimplexSolver::m_needsUpdate

Definition at line 127 of file btVoronoiSimplexSolver.h.

int btVoronoiSimplexSolver::m_numVertices

Definition at line 108 of file btVoronoiSimplexSolver.h.

btVector3 btVoronoiSimplexSolver::m_simplexPointsP[VORONOI_SIMPLEX_MAX_VERTS]

Definition at line 111 of file btVoronoiSimplexSolver.h.

btVector3 btVoronoiSimplexSolver::m_simplexPointsQ[VORONOI_SIMPLEX_MAX_VERTS]

Definition at line 112 of file btVoronoiSimplexSolver.h.

btVector3 btVoronoiSimplexSolver::m_simplexVectorW[VORONOI_SIMPLEX_MAX_VERTS]

Definition at line 110 of file btVoronoiSimplexSolver.h.


The documentation for this class was generated from the following files: