Fixed several bugs: python refcounting related and Bullet related (basic add/remove...
[blender.git] / extern / bullet / Bullet / CollisionShapes / EmptyShape.h
1 /*
2  * Copyright (c) 2005 Erwin Coumans http://continuousphysics.com/Bullet/
3  *
4  * Permission to use, copy, modify, distribute and sell this software
5  * and its documentation for any purpose is hereby granted without fee,
6  * provided that the above copyright notice appear in all copies.
7  * Erwin Coumans makes no representations about the suitability 
8  * of this software for any purpose.  
9  * It is provided "as is" without express or implied warranty.
10  */
11
12 #ifndef EMPTY_SHAPE_H
13 #define EMPTY_SHAPE_H
14
15 #include "CollisionShape.h"
16
17 #include "SimdVector3.h"
18 #include "SimdTransform.h"
19 #include "SimdMatrix3x3.h"
20 #include <vector>
21 #include "CollisionShapes/CollisionMargin.h"
22
23
24
25
26 /// EmptyShape is a collision shape without actual collision detection. It can be replaced by another shape during runtime
27 class EmptyShape        : public CollisionShape
28 {
29 public:
30         EmptyShape();
31
32         virtual ~EmptyShape();
33
34
35         ///GetAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version
36         void GetAabb(const SimdTransform& t,SimdVector3& aabbMin,SimdVector3& aabbMax) const;
37
38
39         virtual void    setLocalScaling(const SimdVector3& scaling)
40         {
41                 m_localScaling = scaling;
42         }
43         virtual const SimdVector3& getLocalScaling() const 
44         {
45                 return m_localScaling;
46         }
47
48         virtual void    CalculateLocalInertia(SimdScalar mass,SimdVector3& inertia);
49         
50         virtual int     GetShapeType() const { return EMPTY_SHAPE_PROXYTYPE;}
51
52         virtual void    SetMargin(float margin)
53         {
54                 m_collisionMargin = margin;
55         }
56         virtual float   GetMargin() const
57         {
58                 return m_collisionMargin;
59         }
60         virtual char*   GetName()const
61         {
62                 return "Empty";
63         }
64
65
66 private:
67         SimdScalar      m_collisionMargin;
68 protected:
69         SimdVector3     m_localScaling;
70
71 };
72
73
74
75 #endif //EMPTY_SHAPE_H