16 #ifndef BT_CAPSULE_SHAPE_H
17 #define BT_CAPSULE_SHAPE_H
47 virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(
const btVector3* vectors,
btVector3* supportVerticesOut,
int numVectors)
const;
52 btVector3 oldMargin(getMargin(),getMargin(),getMargin());
53 btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;
56 btVector3 newMargin(getMargin(),getMargin(),getMargin());
57 m_implicitShapeDimensions = implicitShapeDimensionsWithMargin - newMargin;
63 btVector3 halfExtents(getRadius(),getRadius(),getRadius());
64 halfExtents[m_upAxis] = getRadius() + getHalfHeight();
65 halfExtents +=
btVector3(getMargin(),getMargin(),getMargin());
68 btVector3 extent = halfExtents.
dot3(abs_b[0], abs_b[1], abs_b[2]);
70 aabbMin = center - extent;
71 aabbMax = center + extent;
76 return "CapsuleShape";
86 int radiusAxis = (m_upAxis+2)%3;
87 return m_implicitShapeDimensions[radiusAxis];
92 return m_implicitShapeDimensions[m_upAxis];
97 btVector3 oldMargin(getMargin(),getMargin(),getMargin());
98 btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;
99 btVector3 unScaledImplicitShapeDimensionsWithMargin = implicitShapeDimensionsWithMargin / m_localScaling;
103 m_implicitShapeDimensions = (unScaledImplicitShapeDimensionsWithMargin * m_localScaling) - oldMargin;
110 aniDir[getUpAxis()]=1;
115 virtual int calculateSerializeBufferSize()
const;
118 virtual const char* serialize(
void* dataBuffer,
btSerializer* serializer)
const;
181 return "btCapsuleShapeData";
184 #endif //BT_CAPSULE_SHAPE_H