Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef BT_GJK_EPA2_H
00026 #define BT_GJK_EPA2_H
00027
00028 #include "BulletCollision/CollisionShapes/btConvexShape.h"
00029
00031 struct btGjkEpaSolver2
00032 {
00033 struct sResults
00034 {
00035 enum eStatus
00036 {
00037 Separated,
00038 Penetrating,
00039 GJK_Failed,
00040 EPA_Failed
00041 } status;
00042 btVector3 witnesses[2];
00043 btVector3 normal;
00044 btScalar distance;
00045 };
00046
00047 static int StackSizeRequirement();
00048
00049 static bool Distance( const btConvexShape* shape0,const btTransform& wtrs0,
00050 const btConvexShape* shape1,const btTransform& wtrs1,
00051 const btVector3& guess,
00052 sResults& results);
00053
00054 static bool Penetration(const btConvexShape* shape0,const btTransform& wtrs0,
00055 const btConvexShape* shape1,const btTransform& wtrs1,
00056 const btVector3& guess,
00057 sResults& results,
00058 bool usemargins=true);
00059 #ifndef __SPU__
00060 static btScalar SignedDistance( const btVector3& position,
00061 btScalar margin,
00062 const btConvexShape* shape,
00063 const btTransform& wtrs,
00064 sResults& results);
00065
00066 static bool SignedDistance( const btConvexShape* shape0,const btTransform& wtrs0,
00067 const btConvexShape* shape1,const btTransform& wtrs1,
00068 const btVector3& guess,
00069 sResults& results);
00070 #endif //__SPU__
00071
00072 };
00073
00074 #endif //BT_GJK_EPA2_H
00075