btInternalEdgeUtility.h

Go to the documentation of this file.
00001 
00002 #ifndef BT_INTERNAL_EDGE_UTILITY_H
00003 #define BT_INTERNAL_EDGE_UTILITY_H
00004 
00005 #include "LinearMath/btHashMap.h"
00006 #include "LinearMath/btVector3.h"
00007 
00008 #include "BulletCollision/CollisionShapes/btTriangleInfoMap.h"
00009 
00012 
00013 class btBvhTriangleMeshShape;
00014 class btCollisionObject;
00015 struct btCollisionObjectWrapper;
00016 class btManifoldPoint;
00017 class btIDebugDraw;
00018 
00019 
00020 
00021 enum btInternalEdgeAdjustFlags
00022 {
00023         BT_TRIANGLE_CONVEX_BACKFACE_MODE = 1,
00024         BT_TRIANGLE_CONCAVE_DOUBLE_SIDED = 2, //double sided options are experimental, single sided is recommended
00025         BT_TRIANGLE_CONVEX_DOUBLE_SIDED = 4
00026 };
00027 
00028 
00030 void    btGenerateInternalEdgeInfo (btBvhTriangleMeshShape*trimeshShape, btTriangleInfoMap* triangleInfoMap);
00031 
00032 
00035 void    btAdjustInternalEdgeContacts(btManifoldPoint& cp, const btCollisionObjectWrapper* trimeshColObj0Wrap,const btCollisionObjectWrapper* otherColObj1Wrap, int partId0, int index0, int normalAdjustFlags = 0);
00036 
00039 //#define BT_INTERNAL_EDGE_DEBUG_DRAW
00040 
00041 #ifdef BT_INTERNAL_EDGE_DEBUG_DRAW
00042 void    btSetDebugDrawer(btIDebugDraw* debugDrawer);
00043 #endif //BT_INTERNAL_EDGE_DEBUG_DRAW
00044 
00045 
00046 #endif //BT_INTERNAL_EDGE_UTILITY_H
00047