SSVTreeCollider.h
Go to the documentation of this file.
00001 #ifndef __SSV_TREE_COLLIDER_H__
00002 #define __SSV_TREE_COLLIDER_H__
00003 
00004 #include "config.h"
00005 #include "Opcode/Opcode.h"
00006 
00007 using namespace Opcode;
00008 
00012 class HRP_COLLISION_EXPORT SSVTreeCollider : public AABBTreeCollider {
00013 public:
00017     SSVTreeCollider();
00018 
00022     ~SSVTreeCollider(){};
00023 
00034     bool Distance(BVTCache& cache, float& minD, Point &point0, Point&point1,
00035                   const Matrix4x4* world0=null, const Matrix4x4* world1=null);
00036 
00045     bool Collide(BVTCache& cache, double tolerance,
00046                  const Matrix4x4* world0=null, const Matrix4x4* world1=null);
00047 
00048 protected:
00055      float SsvSsvDist(const AABBCollisionNode* b0, const AABBCollisionNode *b1);
00056 
00065      float PrimDist(udword id0, udword id1, Point& point0, Point& point1);
00066 
00067 private:
00068     void Distance(const AABBCollisionTree* tree0, 
00069                   const AABBCollisionTree* tree1, 
00070                   const Matrix4x4* world0, const Matrix4x4* world1, 
00071                   Pair* cache, float& minD,  Point &point0, Point&point1);
00072 
00073     void _Distance(const AABBCollisionNode* b0, const AABBCollisionNode* b1,
00074                    float& minD, Point& point0, Point& point1);
00075     bool Collide(const AABBCollisionTree* tree0, 
00076                  const AABBCollisionTree* tree1, 
00077                  const Matrix4x4* world0, const Matrix4x4* world1, 
00078                  Pair* cache, double tolerance);
00079     
00080     bool _Collide(const AABBCollisionNode* b0, const AABBCollisionNode* b1,
00081                   double tolerance);
00090     float PssPssDist(float r0, const Point& center0, float r1, const Point& center1);
00091 
00101     float PssLssDist(float r0, const Point& center0, 
00102                      float r1, const Point& point0, const Point& point1);
00103 
00113     float LssPssDist(float r0, const Point& point0, const Point& point1,
00114                      float r1, const Point& center0);
00115 
00126     float LssLssDist(float r0, const Point& point0, const Point& point1,
00127                      float r1, const Point& point2, const Point& point3);
00128 };
00129 
00130 #endif


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Thu Apr 11 2019 03:30:19