Changeset View
Changeset View
Standalone View
Standalone View
extern/bullet2/src/BulletCollision/CollisionShapes/btConvexShape.h
| Show All 22 Lines | |||||
| #include "LinearMath/btMatrix3x3.h" | #include "LinearMath/btMatrix3x3.h" | ||||
| #include "btCollisionMargin.h" | #include "btCollisionMargin.h" | ||||
| #include "LinearMath/btAlignedAllocator.h" | #include "LinearMath/btAlignedAllocator.h" | ||||
| #define MAX_PREFERRED_PENETRATION_DIRECTIONS 10 | #define MAX_PREFERRED_PENETRATION_DIRECTIONS 10 | ||||
| /// The btConvexShape is an abstract shape interface, implemented by all convex shapes such as btBoxShape, btConvexHullShape etc. | /// The btConvexShape is an abstract shape interface, implemented by all convex shapes such as btBoxShape, btConvexHullShape etc. | ||||
| /// It describes general convex shapes using the localGetSupportingVertex interface, used by collision detectors such as btGjkPairDetector. | /// It describes general convex shapes using the localGetSupportingVertex interface, used by collision detectors such as btGjkPairDetector. | ||||
| ATTRIBUTE_ALIGNED16(class) btConvexShape : public btCollisionShape | ATTRIBUTE_ALIGNED16(class) | ||||
| btConvexShape : public btCollisionShape | |||||
| { | { | ||||
| public: | public: | ||||
| BT_DECLARE_ALIGNED_ALLOCATOR(); | BT_DECLARE_ALIGNED_ALLOCATOR(); | ||||
| btConvexShape (); | btConvexShape(); | ||||
| virtual ~btConvexShape(); | virtual ~btConvexShape(); | ||||
| virtual btVector3 localGetSupportingVertex(const btVector3& vec)const = 0; | virtual btVector3 localGetSupportingVertex(const btVector3& vec) const = 0; | ||||
| //////// | //////// | ||||
| #ifndef __SPU__ | #ifndef __SPU__ | ||||
| virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec) const=0; | virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec) const = 0; | ||||
| #endif //#ifndef __SPU__ | #endif //#ifndef __SPU__ | ||||
| btVector3 localGetSupportVertexWithoutMarginNonVirtual (const btVector3& vec) const; | btVector3 localGetSupportVertexWithoutMarginNonVirtual(const btVector3& vec) const; | ||||
| btVector3 localGetSupportVertexNonVirtual (const btVector3& vec) const; | btVector3 localGetSupportVertexNonVirtual(const btVector3& vec) const; | ||||
| btScalar getMarginNonVirtual () const; | btScalar getMarginNonVirtual() const; | ||||
| void getAabbNonVirtual (const btTransform& t, btVector3& aabbMin, btVector3& aabbMax) const; | void getAabbNonVirtual(const btTransform& t, btVector3& aabbMin, btVector3& aabbMax) const; | ||||
| virtual void project(const btTransform& trans, const btVector3& dir, btScalar& minProj, btScalar& maxProj, btVector3& witnesPtMin,btVector3& witnesPtMax) const; | virtual void project(const btTransform& trans, const btVector3& dir, btScalar& minProj, btScalar& maxProj, btVector3& witnesPtMin, btVector3& witnesPtMax) const; | ||||
| //notice that the vectors should be unit length | //notice that the vectors should be unit length | ||||
| virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const= 0; | virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors, btVector3* supportVerticesOut, int numVectors) const = 0; | ||||
| ///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version | ///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version | ||||
| void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const =0; | void getAabb(const btTransform& t, btVector3& aabbMin, btVector3& aabbMax) const = 0; | ||||
| virtual void getAabbSlow(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const =0; | virtual void getAabbSlow(const btTransform& t, btVector3& aabbMin, btVector3& aabbMax) const = 0; | ||||
| virtual void setLocalScaling(const btVector3& scaling) =0; | virtual void setLocalScaling(const btVector3& scaling) = 0; | ||||
| virtual const btVector3& getLocalScaling() const =0; | virtual const btVector3& getLocalScaling() const = 0; | ||||
| virtual void setMargin(btScalar margin)=0; | virtual void setMargin(btScalar margin) = 0; | ||||
| virtual btScalar getMargin() const=0; | virtual btScalar getMargin() const = 0; | ||||
| virtual int getNumPreferredPenetrationDirections() const=0; | virtual int getNumPreferredPenetrationDirections() const = 0; | ||||
| virtual void getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const=0; | virtual void getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const = 0; | ||||
| }; | }; | ||||
| #endif //BT_CONVEX_SHAPE_INTERFACE1 | #endif //BT_CONVEX_SHAPE_INTERFACE1 | ||||