class for EPA algorithm  
 More...
#include <gjk.h>
|  | 
| bool | expand (size_t pass, const SimplexVertex &w, SimplexFace *f, size_t e, SimplexHorizon &horizon) | 
|  | the goal is to add a face connecting vertex w and face edge f[e]  More... 
 | 
|  | 
| SimplexFace * | findClosestFace () | 
|  | Find the best polytope face to split.  More... 
 | 
|  | 
| bool | getEdgeDist (SimplexFace *face, const SimplexVertex &a, const SimplexVertex &b, CoalScalar &dist) | 
|  | 
| void | initialize () | 
|  | Allocates memory for the EPA algorithm. This function should only be called by the constructor. Otherwise use reset.  More... 
 | 
|  | 
| SimplexFace * | newFace (size_t id_a, size_t id_b, size_t id_vertex, bool force=false) | 
|  | Add a new face to the polytope. This function sets the ignoreflag totrueif the origin does not project inside the face.  More...
 | 
|  | 
class for EPA algorithm 
Definition at line 258 of file coal/narrowphase/gjk.h.
◆ SimplexVertex
◆ Status
| Enumerator | 
|---|
| DidNotRun |  | 
| Failed |  | 
| Valid |  | 
| AccuracyReached |  | 
| Degenerated |  | 
| NonConvex |  | 
| InvalidHull |  | 
| OutOfFaces |  | 
| OutOfVertices |  | 
| FallBack |  | 
Definition at line 329 of file coal/narrowphase/gjk.h.
 
 
◆ EPA() [1/2]
  
  | 
        
          | coal::details::EPA::EPA | ( | size_t | max_iterations_, |  
          |  |  | CoalScalar | tolerance_ |  
          |  | ) |  |  |  | inline | 
 
 
◆ EPA() [2/2]
  
  | 
        
          | coal::details::EPA::EPA | ( | const EPA & | other | ) |  |  | inline | 
 
 
◆ bind()
We bind the face fa along its edge ea to the face fb along its edge fb. 
Definition at line 311 of file coal/narrowphase/gjk.h.
 
 
◆ evaluate()
- Returns
- a Status which can be demangled using (status & Valid) or (status & Failed). The other values provide a more detailled status 
Definition at line 1157 of file src/narrowphase/gjk.cpp.
 
 
◆ expand()
◆ findClosestFace()
◆ getEdgeDist()
◆ getNumFaces()
  
  | 
        
          | size_t coal::details::EPA::getNumFaces | ( |  | ) | const |  | inline | 
 
 
◆ getNumIterations()
  
  | 
        
          | size_t coal::details::EPA::getNumIterations | ( |  | ) | const |  | inline | 
 
 
◆ getNumMaxFaces()
  
  | 
        
          | size_t coal::details::EPA::getNumMaxFaces | ( |  | ) | const |  | inline | 
 
 
◆ getNumMaxIterations()
  
  | 
        
          | size_t coal::details::EPA::getNumMaxIterations | ( |  | ) | const |  | inline | 
 
 
◆ getNumMaxVertices()
  
  | 
        
          | size_t coal::details::EPA::getNumMaxVertices | ( |  | ) | const |  | inline | 
 
 
◆ getNumVertices()
  
  | 
        
          | size_t coal::details::EPA::getNumVertices | ( |  | ) | const |  | inline | 
 
 
◆ getTolerance()
  
  | 
        
          | CoalScalar coal::details::EPA::getTolerance | ( |  | ) | const |  | inline | 
 
 
◆ getWitnessPointsAndNormal()
Get the witness points on each object, and the corresponding normal. 
- Parameters
- 
  
    | [in] | shape | is the Minkowski difference of the two shapes. |  | [out] | w0 | is the witness point on shape0. |  | [out] | w1 | is the witness point on shape1. |  | [in] | normal | is the normal found by EPA. It points from shape0 to shape1. The normal is used to correct the witness points on the shapes if the shapes have a non-zero swept-sphere radius. |  
 
Definition at line 1452 of file src/narrowphase/gjk.cpp.
 
 
◆ initialize()
  
  | 
        
          | void coal::details::EPA::initialize | ( |  | ) |  |  | private | 
 
 
◆ newFace()
  
  | 
        
          | EPA::SimplexFace * coal::details::EPA::newFace | ( | size_t | id_a, |  
          |  |  | size_t | id_b, |  
          |  |  | size_t | id_vertex, |  
          |  |  | bool | force = false |  
          |  | ) |  |  |  | private | 
 
Add a new face to the polytope. This function sets the ignore flag to true if the origin does not project inside the face. 
Definition at line 1069 of file src/narrowphase/gjk.cpp.
 
 
◆ reset()
      
        
          | void coal::details::EPA::reset | ( | size_t | max_iterations, | 
        
          |  |  | CoalScalar | tolerance | 
        
          |  | ) |  |  | 
      
 
resets the EPA algorithm, preparing it for a new run. It potentially reallocates memory for the vertices and faces if the passed parameters are bigger than the previous ones. This function does not modify the parameters of the EPA algorithm, i.e. the maximum number of iterations and the tolerance. 
- Note
- calling this function destroys the previous state of EPA. In the future, we may want to copy it instead, i.e. when EPA will be (properly) warm-startable. 
Definition at line 1015 of file src/narrowphase/gjk.cpp.
 
 
◆ closest_face
◆ depth
◆ fc_store
◆ hull
◆ iterations
  
  | 
        
          | size_t coal::details::EPA::iterations |  | private | 
 
 
◆ max_iterations
  
  | 
        
          | size_t coal::details::EPA::max_iterations |  | private | 
 
 
◆ normal
      
        
          | Vec3s coal::details::EPA::normal | 
      
 
 
◆ num_vertices
  
  | 
        
          | size_t coal::details::EPA::num_vertices |  | private | 
 
 
◆ result
◆ status
      
        
          | Status coal::details::EPA::status | 
      
 
 
◆ stock
◆ support_hint
◆ sv_store
◆ tolerance
The documentation for this struct was generated from the following files: