Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef BT_UNIFORM_SCALING_SHAPE_H
00017 #define BT_UNIFORM_SCALING_SHAPE_H
00018
00019 #include "btConvexShape.h"
00020 #include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h"
00021
00024 ATTRIBUTE_ALIGNED16(class) btUniformScalingShape : public btConvexShape
00025 {
00026 btConvexShape* m_childConvexShape;
00027
00028 btScalar m_uniformScalingFactor;
00029
00030 public:
00031
00032 BT_DECLARE_ALIGNED_ALLOCATOR();
00033
00034 btUniformScalingShape( btConvexShape* convexChildShape, btScalar uniformScalingFactor);
00035
00036 virtual ~btUniformScalingShape();
00037
00038 virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const;
00039
00040 virtual btVector3 localGetSupportingVertex(const btVector3& vec)const;
00041
00042 virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;
00043
00044 virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const;
00045
00046 btScalar getUniformScalingFactor() const
00047 {
00048 return m_uniformScalingFactor;
00049 }
00050
00051 btConvexShape* getChildShape()
00052 {
00053 return m_childConvexShape;
00054 }
00055
00056 const btConvexShape* getChildShape() const
00057 {
00058 return m_childConvexShape;
00059 }
00060
00061 virtual const char* getName()const
00062 {
00063 return "UniformScalingShape";
00064 }
00065
00066
00067
00069
00070
00072 void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;
00073
00074 virtual void getAabbSlow(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;
00075
00076 virtual void setLocalScaling(const btVector3& scaling) ;
00077 virtual const btVector3& getLocalScaling() const ;
00078
00079 virtual void setMargin(btScalar margin);
00080 virtual btScalar getMargin() const;
00081
00082 virtual int getNumPreferredPenetrationDirections() const;
00083
00084 virtual void getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const;
00085
00086
00087 };
00088
00089 #endif //BT_UNIFORM_SCALING_SHAPE_H