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 93 of file btVoronoiSimplexSolver.h.

Constructor & Destructor Documentation

◆ btVoronoiSimplexSolver()

btVoronoiSimplexSolver::btVoronoiSimplexSolver ( )
inline

Definition at line 130 of file btVoronoiSimplexSolver.h.

Member Function Documentation

◆ addVertex()

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

Definition at line 69 of file btVoronoiSimplexSolver.cpp.

◆ backup_closest()

void btVoronoiSimplexSolver::backup_closest ( btVector3 v)

Definition at line 296 of file btVoronoiSimplexSolver.cpp.

◆ BT_DECLARE_ALIGNED_ALLOCATOR()

btVoronoiSimplexSolver::BT_DECLARE_ALIGNED_ALLOCATOR ( )

◆ closest()

bool btVoronoiSimplexSolver::closest ( btVector3 v)

Definition at line 236 of file btVoronoiSimplexSolver.cpp.

◆ closestPtPointTetrahedron()

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

Definition at line 437 of file btVoronoiSimplexSolver.cpp.

◆ closestPtPointTriangle()

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

Definition at line 313 of file btVoronoiSimplexSolver.cpp.

◆ compute_points()

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

Definition at line 306 of file btVoronoiSimplexSolver.cpp.

◆ emptySimplex()

bool btVoronoiSimplexSolver::emptySimplex ( ) const

Definition at line 301 of file btVoronoiSimplexSolver.cpp.

◆ fullSimplex()

bool btVoronoiSimplexSolver::fullSimplex ( ) const
inline

Definition at line 152 of file btVoronoiSimplexSolver.h.

◆ getEqualVertexThreshold()

btScalar btVoronoiSimplexSolver::getEqualVertexThreshold ( ) const
inline

Definition at line 143 of file btVoronoiSimplexSolver.h.

◆ getSimplex()

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

Definition at line 257 of file btVoronoiSimplexSolver.cpp.

◆ inSimplex()

bool btVoronoiSimplexSolver::inSimplex ( const btVector3 w)

Definition at line 269 of file btVoronoiSimplexSolver.cpp.

◆ maxVertex()

btScalar btVoronoiSimplexSolver::maxVertex ( )

Definition at line 243 of file btVoronoiSimplexSolver.cpp.

◆ numVertices()

int btVoronoiSimplexSolver::numVertices ( ) const
inline

Definition at line 167 of file btVoronoiSimplexSolver.h.

◆ pointOutsideOfPlane()

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 411 of file btVoronoiSimplexSolver.cpp.

◆ reduceVertices()

void btVoronoiSimplexSolver::reduceVertices ( const btUsageBitfield usedVerts)

Definition at line 43 of file btVoronoiSimplexSolver.cpp.

◆ removeVertex()

void btVoronoiSimplexSolver::removeVertex ( int  index)

Definition at line 34 of file btVoronoiSimplexSolver.cpp.

◆ reset()

void btVoronoiSimplexSolver::reset ( )

Definition at line 59 of file btVoronoiSimplexSolver.cpp.

◆ setEqualVertexThreshold()

void btVoronoiSimplexSolver::setEqualVertexThreshold ( btScalar  threshold)
inline

Definition at line 138 of file btVoronoiSimplexSolver.h.

◆ updateClosestVectorAndPoints()

bool btVoronoiSimplexSolver::updateClosestVectorAndPoints ( )

Definition at line 81 of file btVoronoiSimplexSolver.cpp.

Member Data Documentation

◆ m_cachedBC

btSubSimplexClosestResult btVoronoiSimplexSolver::m_cachedBC

Definition at line 117 of file btVoronoiSimplexSolver.h.

◆ m_cachedP1

btVector3 btVoronoiSimplexSolver::m_cachedP1

Definition at line 109 of file btVoronoiSimplexSolver.h.

◆ m_cachedP2

btVector3 btVoronoiSimplexSolver::m_cachedP2

Definition at line 110 of file btVoronoiSimplexSolver.h.

◆ m_cachedV

btVector3 btVoronoiSimplexSolver::m_cachedV

Definition at line 111 of file btVoronoiSimplexSolver.h.

◆ m_cachedValidClosest

bool btVoronoiSimplexSolver::m_cachedValidClosest

Definition at line 115 of file btVoronoiSimplexSolver.h.

◆ m_equalVertexThreshold

btScalar btVoronoiSimplexSolver::m_equalVertexThreshold

Definition at line 114 of file btVoronoiSimplexSolver.h.

◆ m_lastW

btVector3 btVoronoiSimplexSolver::m_lastW

Definition at line 112 of file btVoronoiSimplexSolver.h.

◆ m_needsUpdate

bool btVoronoiSimplexSolver::m_needsUpdate

Definition at line 119 of file btVoronoiSimplexSolver.h.

◆ m_numVertices

int btVoronoiSimplexSolver::m_numVertices

Definition at line 103 of file btVoronoiSimplexSolver.h.

◆ m_simplexPointsP

btVector3 btVoronoiSimplexSolver::m_simplexPointsP[VORONOI_SIMPLEX_MAX_VERTS]

Definition at line 106 of file btVoronoiSimplexSolver.h.

◆ m_simplexPointsQ

btVector3 btVoronoiSimplexSolver::m_simplexPointsQ[VORONOI_SIMPLEX_MAX_VERTS]

Definition at line 107 of file btVoronoiSimplexSolver.h.

◆ m_simplexVectorW

btVector3 btVoronoiSimplexSolver::m_simplexVectorW[VORONOI_SIMPLEX_MAX_VERTS]

Definition at line 105 of file btVoronoiSimplexSolver.h.


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