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