12 :m_localScaling(1,1,1),
21 bool valid = m_data->m_sdf.load(sdfData, sizeInBytes);
48 btVector3 localAabbMin = m_data->m_sdf.m_domain.m_min;
49 btVector3 localAabbMax = m_data->m_sdf.m_domain.m_max;
58 m_data->m_localScaling = scaling;
62 return m_data->m_localScaling;
70 return "btSdfCollisionShape";
74 m_data->m_margin = margin;
78 return m_data->m_margin;
92 bool hasResult = m_data->m_sdf.interpolate(field,dist, ptInSDF,&grad);
95 normal.
setValue(grad[0],grad[1],grad[2]);
btSdfCollisionShapeInternalData()
virtual void getAabb(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
getAabb returns the axis aligned bounding box in the coordinate frame of the given transform t...
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z)
bool initializeSDF(const char *sdfData, int sizeInBytes)
virtual void calculateLocalInertia(btScalar mass, btVector3 &inertia) const
virtual const char * getName() const
The btTriangleCallback provides a callback for each overlapping triangle when calling processAllTrian...
virtual void setLocalScaling(const btVector3 &scaling)
virtual void setMargin(btScalar margin)
btVector3 can be used to represent 3D points and vectors.
virtual const btVector3 & getLocalScaling() const
bool queryPoint(const btVector3 &ptInSDF, btScalar &distOut, btVector3 &normal)
virtual ~btSdfCollisionShape()
virtual void processAllTriangles(btTriangleCallback *callback, const btVector3 &aabbMin, const btVector3 &aabbMax) const
void btTransformAabb(const btVector3 &halfExtents, btScalar margin, const btTransform &t, btVector3 &aabbMinOut, btVector3 &aabbMaxOut)
virtual btScalar getMargin() const
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...