Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef BT_CONVEX_TRIANGLEMESH_SHAPE_H
00016 #define BT_CONVEX_TRIANGLEMESH_SHAPE_H
00017
00018
00019 #include "btPolyhedralConvexShape.h"
00020 #include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h"
00021
00022
00025 ATTRIBUTE_ALIGNED16(class) btConvexTriangleMeshShape : public btPolyhedralConvexAabbCachingShape
00026 {
00027
00028 class btStridingMeshInterface* m_stridingMesh;
00029
00030 public:
00031 BT_DECLARE_ALIGNED_ALLOCATOR();
00032
00033 btConvexTriangleMeshShape(btStridingMeshInterface* meshInterface, bool calcAabb = true);
00034
00035 class btStridingMeshInterface* getMeshInterface()
00036 {
00037 return m_stridingMesh;
00038 }
00039 const class btStridingMeshInterface* getMeshInterface() const
00040 {
00041 return m_stridingMesh;
00042 }
00043
00044 virtual btVector3 localGetSupportingVertex(const btVector3& vec)const;
00045 virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const;
00046 virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;
00047
00048
00049 virtual const char* getName()const {return "ConvexTrimesh";}
00050
00051 virtual int getNumVertices() const;
00052 virtual int getNumEdges() const;
00053 virtual void getEdge(int i,btVector3& pa,btVector3& pb) const;
00054 virtual void getVertex(int i,btVector3& vtx) const;
00055 virtual int getNumPlanes() const;
00056 virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const;
00057 virtual bool isInside(const btVector3& pt,btScalar tolerance) const;
00058
00059
00060 virtual void setLocalScaling(const btVector3& scaling);
00061 virtual const btVector3& getLocalScaling() const;
00062
00068 void calculatePrincipalAxisTransform(btTransform& principal, btVector3& inertia, btScalar& volume) const;
00069
00070 };
00071
00072
00073
00074 #endif //BT_CONVEX_TRIANGLEMESH_SHAPE_H
00075
00076
00077