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