d60bacff9628e1604146565fc11d4121fa53a282
[blender-staging.git] / extern / bullet / Bullet / CollisionShapes / CylinderShape.h
1 /*
2  * Copyright (c) 2005 Erwin Coumans http://www.erwincoumans.com
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 CYLINDER_MINKOWSKI_H
13 #define CYLINDER_MINKOWSKI_H
14
15 #include "BoxShape.h"
16 #include "BroadphaseCollision/BroadphaseProxy.h" // for the types
17 #include "SimdVector3.h"
18
19 /// implements cylinder shape interface
20 class CylinderShape : public BoxShape
21
22 {
23
24 public:
25         CylinderShape (const SimdVector3& halfExtents);
26         
27
28         virtual SimdVector3     LocalGetSupportingVertexWithoutMargin(const SimdVector3& vec)const;
29
30
31
32
33         //use box inertia
34         //      virtual void    CalculateLocalInertia(SimdScalar mass,SimdVector3& inertia);
35
36         virtual int     GetShapeType() const
37         {
38                 return CYLINDER_SHAPE_PROXYTYPE;
39         }
40         
41
42
43 };
44
45 class CylinderShapeX : public CylinderShape
46 {
47 public:
48         CylinderShapeX (const SimdVector3& halfExtents);
49
50         virtual SimdVector3     LocalGetSupportingVertexWithoutMargin(const SimdVector3& vec)const;
51 };
52
53 class CylinderShapeZ : public CylinderShape
54 {
55 public:
56         CylinderShapeZ (const SimdVector3& halfExtents);
57
58         virtual SimdVector3     LocalGetSupportingVertexWithoutMargin(const SimdVector3& vec)const;
59
60 };
61
62
63 #endif //CYLINDER_MINKOWSKI_H