16#ifndef BT_CONVEX_INTERNAL_SHAPE_H
17#define BT_CONVEX_INTERNAL_SHAPE_H
68 btScalar safeMargin = defaultMarginMultiplier * minDimension;
79 btScalar minDimension = halfExtents[halfExtents.minAxis()];
123 (void)penetrationVector;
156 btConvexInternalShapeData* shapeData = (btConvexInternalShapeData*)dataBuffer;
166 return "btConvexInternalShapeData";
174 bool m_isLocalAabbValid;
181 m_isLocalAabbValid =
true;
182 m_localAabbMin = aabbMin;
183 m_localAabbMax = aabbMax;
189 aabbMin = m_localAabbMin;
190 aabbMax = m_localAabbMax;
197 btTransformAabb(m_localAabbMin, m_localAabbMax, margin, trans, aabbMin, aabbMax);
SIMD_FORCE_INLINE void btTransformAabb(const btVector3 &halfExtents, btScalar margin, const btTransform &t, btVector3 &aabbMinOut, btVector3 &aabbMaxOut)
virtual void setLocalScaling(const btVector3 &scaling)
virtual void getPreferredPenetrationDirection(int index, btVector3 &penetrationVector) const
virtual btVector3 localGetSupportingVertex(const btVector3 &vec) const
virtual void getAabb(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
virtual void setMargin(btScalar collisionMargin)
virtual int getNumPreferredPenetrationDirections() const
virtual const btVector3 & getLocalScaling() const =0
virtual btScalar getMargin() const =0
btScalar m_collisionMargin
virtual void getAabbSlow(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
const btVector3 & getImplicitShapeDimensions() const
void setSafeMargin(btScalar minDimension, btScalar defaultMarginMultiplier=0.1f)
btScalar getMarginNV() const
const btVector3 & getLocalScalingNV() const
void setImplicitShapeDimensions(const btVector3 &dimensions)
btVector3 m_implicitShapeDimensions
btConvexShape()
not supported on IBM SDK, until we fix the alignment of btVector3
unsigned calculateSerializeBufferSize() const
virtual bool serialize(void *o_alignedDataBuffer, unsigned i_dataBufferSize, bool i_swapEndian) const
Data buffer MUST be 16 byte aligned.
#define BT_DECLARE_ALIGNED_ALLOCATOR()
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define ATTRIBUTE_ALIGNED16(a)
#define SIMD_FORCE_INLINE
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
void getCachedLocalAabb(btVector3 &aabbMin, btVector3 &aabbMax) const
btConvexInternalAabbCachingShape()
void setCachedLocalAabb(const btVector3 &aabbMin, const btVector3 &aabbMax)
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
btVector3FloatData m_implicitShapeDimensions
btVector3FloatData m_localScaling
btCollisionShapeData m_collisionShapeData