com.bulletphysics.collision.narrowphase
Class VoronoiSimplexSolver
java.lang.Object
   com.bulletphysics.collision.narrowphase.SimplexSolverInterface
com.bulletphysics.collision.narrowphase.SimplexSolverInterface
       com.bulletphysics.collision.narrowphase.VoronoiSimplexSolver
com.bulletphysics.collision.narrowphase.VoronoiSimplexSolver
- public class VoronoiSimplexSolver 
- extends SimplexSolverInterface
VoronoiSimplexSolver 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.
 
 
 
| Method Summary | 
|  void | addVertex(Vector3f w,
          Vector3f p,
          Vector3f q)
 | 
|  void | backup_closest(Vector3f v)
 | 
|  boolean | closest(Vector3f v)Return/calculate the closest vertex.
 | 
|  boolean | closestPtPointTetrahedron(Vector3f p,
                          Vector3f a,
                          Vector3f b,
                          Vector3f c,
                          Vector3f d,
                          VoronoiSimplexSolver.SubSimplexClosestResult finalResult)
 | 
|  boolean | closestPtPointTriangle(Vector3f p,
                       Vector3f a,
                       Vector3f b,
                       Vector3f c,
                       VoronoiSimplexSolver.SubSimplexClosestResult result)
 | 
|  void | compute_points(Vector3f p1,
               Vector3f p2)
 | 
|  boolean | emptySimplex()
 | 
|  boolean | fullSimplex()
 | 
|  int | getSimplex(Vector3f[] pBuf,
           Vector3f[] qBuf,
           Vector3f[] yBuf)
 | 
|  boolean | inSimplex(Vector3f w)
 | 
|  float | maxVertex()
 | 
|  int | numVertices()
 | 
| static int | pointOutsideOfPlane(Vector3f p,
                    Vector3f a,
                    Vector3f b,
                    Vector3f c,
                    Vector3f d)
 | 
|  void | reduceVertices(VoronoiSimplexSolver.UsageBitfield usedVerts)
 | 
|  void | removeVertex(int index)
 | 
|  void | reset()Clear the simplex, remove all the vertices.
 | 
|  boolean | updateClosestVectorAndPoints()
 | 
 
 
numVertices
public int numVertices
simplexVectorW
public final Vector3f[] simplexVectorW
simplexPointsP
public final Vector3f[] simplexPointsP
simplexPointsQ
public final Vector3f[] simplexPointsQ
cachedP1
public final Vector3f cachedP1
cachedP2
public final Vector3f cachedP2
cachedV
public final Vector3f cachedV
lastW
public final Vector3f lastW
cachedValidClosest
public boolean cachedValidClosest
cachedBC
public final VoronoiSimplexSolver.SubSimplexClosestResult cachedBC
needsUpdate
public boolean needsUpdate
VoronoiSimplexSolver
public VoronoiSimplexSolver()
removeVertex
public void removeVertex(int index)
- 
 
reduceVertices
public void reduceVertices(VoronoiSimplexSolver.UsageBitfield usedVerts)
- 
 
updateClosestVectorAndPoints
public boolean updateClosestVectorAndPoints()
- 
 
closestPtPointTriangle
public boolean closestPtPointTriangle(Vector3f p,
                                      Vector3f a,
                                      Vector3f b,
                                      Vector3f c,
                                      VoronoiSimplexSolver.SubSimplexClosestResult result)
- 
 
pointOutsideOfPlane
public static int pointOutsideOfPlane(Vector3f p,
                                      Vector3f a,
                                      Vector3f b,
                                      Vector3f c,
                                      Vector3f d)
- 
 
closestPtPointTetrahedron
public boolean closestPtPointTetrahedron(Vector3f p,
                                         Vector3f a,
                                         Vector3f b,
                                         Vector3f c,
                                         Vector3f d,
                                         VoronoiSimplexSolver.SubSimplexClosestResult finalResult)
- 
 
reset
public void reset()
- Clear the simplex, remove all the vertices.
 
- 
- Specified by:
- resetin class- SimplexSolverInterface
 
- 
 
addVertex
public void addVertex(Vector3f w,
                      Vector3f p,
                      Vector3f q)
- 
- Specified by:
- addVertexin class- SimplexSolverInterface
 
- 
 
closest
public boolean closest(Vector3f v)
- Return/calculate the closest vertex.
 
- 
- Specified by:
- closestin class- SimplexSolverInterface
 
- 
 
maxVertex
public float maxVertex()
- 
- Specified by:
- maxVertexin class- SimplexSolverInterface
 
- 
 
fullSimplex
public boolean fullSimplex()
- 
- Specified by:
- fullSimplexin class- SimplexSolverInterface
 
- 
 
getSimplex
public int getSimplex(Vector3f[] pBuf,
                      Vector3f[] qBuf,
                      Vector3f[] yBuf)
- 
- Specified by:
- getSimplexin class- SimplexSolverInterface
 
- 
 
inSimplex
public boolean inSimplex(Vector3f w)
- 
- Specified by:
- inSimplexin class- SimplexSolverInterface
 
- 
 
backup_closest
public void backup_closest(Vector3f v)
- 
- Specified by:
- backup_closestin class- SimplexSolverInterface
 
- 
 
emptySimplex
public boolean emptySimplex()
- 
- Specified by:
- emptySimplexin class- SimplexSolverInterface
 
- 
 
compute_points
public void compute_points(Vector3f p1,
                           Vector3f p2)
- 
- Specified by:
- compute_pointsin class- SimplexSolverInterface
 
- 
 
numVertices
public int numVertices()
- 
- Specified by:
- numVerticesin class- SimplexSolverInterface
 
-