19
19
#include "btPolyhedralConvexShape.h"
20
20
#include "btCollisionMargin.h"
21
21
#include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h"
22
#include "LinearMath/btPoint3.h"
22
#include "LinearMath/btVector3.h"
23
23
#include "LinearMath/btMinMax.h"
25
25
///The btBoxShape is a box primitive around the origin, its sides axis aligned with length specified by half extents, in local shape coordinates. When used as part of a btCollisionObject or btRigidBody it will be an oriented box in world space.
85
btBoxShape( const btVector3& boxHalfExtents)
83
btBoxShape( const btVector3& boxHalfExtents)
84
: btPolyhedralConvexShape()
86
m_shapeType = BOX_SHAPE_PROXYTYPE;
87
87
btVector3 margin(getMargin(),getMargin(),getMargin());
88
88
m_implicitShapeDimensions = (boxHalfExtents * m_localScaling) - margin;
118
118
virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const;
120
virtual void getPlane(btVector3& planeNormal,btPoint3& planeSupport,int i ) const
120
virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const
122
122
//this plane might not be aligned...
123
123
btVector4 plane ;
164
plane.setValue(btScalar(1.),btScalar(0.),btScalar(0.));
165
plane[3] = -halfExtents.x();
164
plane.setValue(btScalar(1.),btScalar(0.),btScalar(0.),-halfExtents.x());
168
plane.setValue(btScalar(-1.),btScalar(0.),btScalar(0.));
169
plane[3] = -halfExtents.x();
167
plane.setValue(btScalar(-1.),btScalar(0.),btScalar(0.),-halfExtents.x());
172
plane.setValue(btScalar(0.),btScalar(1.),btScalar(0.));
173
plane[3] = -halfExtents.y();
170
plane.setValue(btScalar(0.),btScalar(1.),btScalar(0.),-halfExtents.y());
176
plane.setValue(btScalar(0.),btScalar(-1.),btScalar(0.));
177
plane[3] = -halfExtents.y();
173
plane.setValue(btScalar(0.),btScalar(-1.),btScalar(0.),-halfExtents.y());
180
plane.setValue(btScalar(0.),btScalar(0.),btScalar(1.));
181
plane[3] = -halfExtents.z();
176
plane.setValue(btScalar(0.),btScalar(0.),btScalar(1.),-halfExtents.z());
184
plane.setValue(btScalar(0.),btScalar(0.),btScalar(-1.));
185
plane[3] = -halfExtents.z();
179
plane.setValue(btScalar(0.),btScalar(0.),btScalar(-1.),-halfExtents.z());
193
virtual void getEdge(int i,btPoint3& pa,btPoint3& pb) const
187
virtual void getEdge(int i,btVector3& pa,btVector3& pb) const
194
188
//virtual void getEdge(int i,Edge& edge) const
196
190
int edgeVert0 = 0;