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)
btScalar m_collisionMargin
virtual void setLocalScaling(const btVector3 &scaling)
in case we receive negative scaling
BT_DECLARE_ALIGNED_ALLOCATOR()
virtual btScalar getMargin() const
virtual int calculateSerializeBufferSize() const
virtual void setMargin(btScalar margin)
const btVector3 & getImplicitShapeDimensions() const
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...
virtual btVector3 localGetSupportingVertex(const btVector3 &vec) const
void setSafeMargin(btScalar minDimension, btScalar defaultMarginMultiplier=0.1f)
btScalar getMarginNV() const
virtual ~btConvexInternalShape()
const btVector3 & getLocalScalingNV() const
virtual const btVector3 & getLocalScaling() const
virtual void getAabbSlow(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
virtual const char * serialize(void *dataBuffer, btSerializer *serializer) const
fills the dataBuffer and returns the struct name (and 0 on failure)
void setImplicitShapeDimensions(const btVector3 &dimensions)
btVector3 m_implicitShapeDimensions
virtual void getPreferredPenetrationDirection(int index, btVector3 &penetrationVector) const
virtual int getNumPreferredPenetrationDirections() const
btConvexShape()
not supported on IBM SDK, until we fix the alignment of btVector3
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()
virtual void setLocalScaling(const btVector3 &scaling)
virtual void getAabb(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
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