18btConvexInternalShape::btConvexInternalShape()
24void btConvexInternalShape::setLocalScaling(
const btVector3& scaling)
29void btConvexInternalShape::getAabbSlow(
const btTransform& trans, btVector3& minAabb, btVector3& maxAabb)
const
34 for (
int i = 0; i < 3; i++)
41 btVector3 tmp = trans(sv);
42 maxAabb[i] = tmp[i] + margin;
45 minAabb[i] = tmp[i] - margin;
50btVector3 btConvexInternalShape::localGetSupportingVertex(
const btVector3& vec)
const
58 btVector3 vecnorm = vec;
75 : btConvexInternalShape(),
78 m_isLocalAabbValid(
false)
89 btConvexInternalShape::setLocalScaling(scaling);
95 m_isLocalAabbValid =
true;
98 static const btVector3 _directions[] =
107 btVector3 _supporting[] =
118 for (
int i = 0; i < 3; ++i)
120 m_localAabbMax[i] = _supporting[i][i];
121 m_localAabbMin[i] = _supporting[i + 3][i];
126 for (
int i = 0; i < 3; i++)
131 m_localAabbMax[i] = tmp[i];
134 m_localAabbMin[i] = tmp[i];
SIMD_FORCE_INLINE btVector3 localGetSupportingVertexWithoutMargin(const btVector3 &vec) const
btConvexShape Interface
virtual btVector3 localGetSupportingVertex(const btVector3 &vec) const
virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const
#define CONVEX_DISTANCE_MARGIN
virtual btScalar getMargin() const =0
btScalar m_collisionMargin
virtual btScalar getMargin() const
virtual btVector3 localGetSupportingVertex(const btVector3 &vec) const
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...
void getNonvirtualAabb(const btTransform &trans, btVector3 &aabbMin, btVector3 &aabbMax, btScalar margin) const
btConvexInternalAabbCachingShape()
virtual void setLocalScaling(const btVector3 &scaling)
virtual void getAabb(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const