Changeset View
Changeset View
Standalone View
Standalone View
extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleBuffer.h
| Show All 13 Lines | |||||
| */ | */ | ||||
| #ifndef BT_TRIANGLE_BUFFER_H | #ifndef BT_TRIANGLE_BUFFER_H | ||||
| #define BT_TRIANGLE_BUFFER_H | #define BT_TRIANGLE_BUFFER_H | ||||
| #include "btTriangleCallback.h" | #include "btTriangleCallback.h" | ||||
| #include "LinearMath/btAlignedObjectArray.h" | #include "LinearMath/btAlignedObjectArray.h" | ||||
| struct btTriangle | struct btTriangle | ||||
| { | { | ||||
| btVector3 m_vertex0; | btVector3 m_vertex0; | ||||
| btVector3 m_vertex1; | btVector3 m_vertex1; | ||||
| btVector3 m_vertex2; | btVector3 m_vertex2; | ||||
| int m_partId; | int m_partId; | ||||
| int m_triangleIndex; | int m_triangleIndex; | ||||
| }; | }; | ||||
| ///The btTriangleBuffer callback can be useful to collect and store overlapping triangles between AABB and concave objects that support 'processAllTriangles' | ///The btTriangleBuffer callback can be useful to collect and store overlapping triangles between AABB and concave objects that support 'processAllTriangles' | ||||
| ///Example usage of this class: | ///Example usage of this class: | ||||
| /// btTriangleBuffer triBuf; | /// btTriangleBuffer triBuf; | ||||
| /// concaveShape->processAllTriangles(&triBuf,aabbMin, aabbMax); | /// concaveShape->processAllTriangles(&triBuf,aabbMin, aabbMax); | ||||
| /// for (int i=0;i<triBuf.getNumTriangles();i++) | /// for (int i=0;i<triBuf.getNumTriangles();i++) | ||||
| /// { | /// { | ||||
| /// const btTriangle& tri = triBuf.getTriangle(i); | /// const btTriangle& tri = triBuf.getTriangle(i); | ||||
| /// //do something useful here with the triangle | /// //do something useful here with the triangle | ||||
| /// } | /// } | ||||
| class btTriangleBuffer : public btTriangleCallback | class btTriangleBuffer : public btTriangleCallback | ||||
| { | { | ||||
| btAlignedObjectArray<btTriangle> m_triangleBuffer; | btAlignedObjectArray<btTriangle> m_triangleBuffer; | ||||
| public: | public: | ||||
| virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex); | virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex); | ||||
| int getNumTriangles() const | int getNumTriangles() const | ||||
| { | { | ||||
| return int(m_triangleBuffer.size()); | return int(m_triangleBuffer.size()); | ||||
| } | } | ||||
| const btTriangle& getTriangle(int index) const | const btTriangle& getTriangle(int index) const | ||||
| { | { | ||||
| return m_triangleBuffer[index]; | return m_triangleBuffer[index]; | ||||
| } | } | ||||
| void clearBuffer() | void clearBuffer() | ||||
| { | { | ||||
| m_triangleBuffer.clear(); | m_triangleBuffer.clear(); | ||||
| } | } | ||||
| }; | }; | ||||
| #endif //BT_TRIANGLE_BUFFER_H | #endif //BT_TRIANGLE_BUFFER_H | ||||