19 : btConvexInternalShape(),
24 m_transA.setIdentity();
28btVector3 btMinkowskiSumShape::localGetSupportingVertexWithoutMargin(
const btVector3& vec)
const
30 btVector3 supVertexA = m_transA(
m_shapeA->localGetSupportingVertexWithoutMargin(vec * m_transA.getBasis()));
32 return supVertexA - supVertexB;
35void btMinkowskiSumShape::batchedUnitVectorGetSupportingVertexWithoutMargin(
const btVector3* vectors, btVector3* supportVerticesOut,
int numVectors)
const
38 for (
int i = 0; i < numVectors; i++)
44btScalar btMinkowskiSumShape::getMargin()
const
49void btMinkowskiSumShape::calculateLocalInertia(
btScalar mass, btVector3& inertia)
const
54 identity.setIdentity();
55 btVector3 aabbMin, aabbMax;
56 getAabb(identity, aabbMin, aabbMax);
58 btVector3 halfExtents = (aabbMax - aabbMin) *
btScalar(0.5);
70 inertia = scaledmass * (
btVector3(y2 + z2, x2 + z2, x2 + y2));
SIMD_FORCE_INLINE btVector3 localGetSupportingVertexWithoutMargin(const btVector3 &vec) const
btConvexShape Interface
virtual void getAabb(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
getAabb's default implementation is brute force, expected derived classes to implement a fast dedicat...
@ MINKOWSKI_DIFFERENCE_SHAPE_PROXYTYPE
virtual btScalar getMargin() const =0
btConvexShape()
not supported on IBM SDK, until we fix the alignment of btVector3
const btConvexShape * m_shapeA
const btConvexShape * m_shapeB
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btVector3
btVector3 can be used to represent 3D points and vectors. It has an un-used w component to suit 16-by...