Changeset 7983 for code/branches/kicklib/src/external/bullet/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h
- Timestamp:
- Feb 27, 2011, 7:43:24 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/kicklib/src/external/bullet/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h
r5781 r7983 1 1 /* 2 2 Bullet Continuous Collision Detection and Physics Library 3 Copyright (c) 2003-200 6 Erwin Coumans http://continuousphysics.com/Bullet/3 Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org 4 4 5 5 This software is provided 'as-is', without any express or implied warranty. … … 20 20 #include "btOptimizedBvh.h" 21 21 #include "LinearMath/btAlignedAllocator.h" 22 22 #include "btTriangleInfoMap.h" 23 23 24 24 ///The btBvhTriangleMeshShape is a static-triangle mesh shape with several optimizations, such as bounding volume hierarchy and cache friendly traversal for PlayStation 3 Cell SPU. It is recommended to enable useQuantizedAabbCompression for better memory usage. … … 30 30 31 31 btOptimizedBvh* m_bvh; 32 btTriangleInfoMap* m_triangleInfoMap; 33 32 34 bool m_useQuantizedAabbCompression; 33 35 bool m_ownsBvh; … … 38 40 BT_DECLARE_ALIGNED_ALLOCATOR(); 39 41 40 btBvhTriangleMeshShape() : btTriangleMeshShape(0),m_bvh(0),m_ ownsBvh(false) {m_shapeType = TRIANGLE_MESH_SHAPE_PROXYTYPE;};42 btBvhTriangleMeshShape() : btTriangleMeshShape(0),m_bvh(0),m_triangleInfoMap(0),m_ownsBvh(false) {m_shapeType = TRIANGLE_MESH_SHAPE_PROXYTYPE;}; 41 43 btBvhTriangleMeshShape(btStridingMeshInterface* meshInterface, bool useQuantizedAabbCompression, bool buildBvh = true); 42 44 … … 74 76 } 75 77 78 void setOptimizedBvh(btOptimizedBvh* bvh, const btVector3& localScaling=btVector3(1,1,1)); 76 79 77 void setOptimizedBvh(btOptimizedBvh* bvh, const btVector3& localScaling=btVector3(1,1,1));80 void buildOptimizedBvh(); 78 81 79 82 bool usesQuantizedAabbCompression() const … … 81 84 return m_useQuantizedAabbCompression; 82 85 } 86 87 void setTriangleInfoMap(btTriangleInfoMap* triangleInfoMap) 88 { 89 m_triangleInfoMap = triangleInfoMap; 90 } 91 92 const btTriangleInfoMap* getTriangleInfoMap() const 93 { 94 return m_triangleInfoMap; 95 } 96 97 btTriangleInfoMap* getTriangleInfoMap() 98 { 99 return m_triangleInfoMap; 100 } 101 102 virtual int calculateSerializeBufferSize() const; 103 104 ///fills the dataBuffer and returns the struct name (and 0 on failure) 105 virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const; 106 107 virtual void serializeSingleBvh(btSerializer* serializer) const; 108 109 virtual void serializeSingleTriangleInfoMap(btSerializer* serializer) const; 110 111 }; 112 113 ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 114 struct btTriangleMeshShapeData 115 { 116 btCollisionShapeData m_collisionShapeData; 117 118 btStridingMeshInterfaceData m_meshInterface; 119 120 btQuantizedBvhFloatData *m_quantizedFloatBvh; 121 btQuantizedBvhDoubleData *m_quantizedDoubleBvh; 122 123 btTriangleInfoMapData *m_triangleInfoMap; 124 125 float m_collisionMargin; 126 127 char m_pad3[4]; 128 129 }; 130 131 132 SIMD_FORCE_INLINE int btBvhTriangleMeshShape::calculateSerializeBufferSize() const 133 { 134 return sizeof(btTriangleMeshShapeData); 83 135 } 84 ; 136 137 85 138 86 139 #endif //BVH_TRIANGLE_MESH_SHAPE_H
Note: See TracChangeset
for help on using the changeset viewer.