btSdfCollisionShape.h 964 B

1234567891011121314151617181920212223242526272829
  1. #ifndef BT_SDF_COLLISION_SHAPE_H
  2. #define BT_SDF_COLLISION_SHAPE_H
  3. #include "btConcaveShape.h"
  4. class btSdfCollisionShape : public btConcaveShape
  5. {
  6. struct btSdfCollisionShapeInternalData* m_data;
  7. public:
  8. btSdfCollisionShape();
  9. virtual ~btSdfCollisionShape();
  10. bool initializeSDF(const char* sdfData, int sizeInBytes);
  11. virtual void getAabb(const btTransform& t, btVector3& aabbMin, btVector3& aabbMax) const;
  12. virtual void setLocalScaling(const btVector3& scaling);
  13. virtual const btVector3& getLocalScaling() const;
  14. virtual void calculateLocalInertia(btScalar mass, btVector3& inertia) const;
  15. virtual const char* getName() const;
  16. virtual void setMargin(btScalar margin);
  17. virtual btScalar getMargin() const;
  18. virtual void processAllTriangles(btTriangleCallback* callback, const btVector3& aabbMin, const btVector3& aabbMax) const;
  19. bool queryPoint(const btVector3& ptInSDF, btScalar& distOut, btVector3& normal);
  20. };
  21. #endif //BT_SDF_COLLISION_SHAPE_H