28 #ifndef HPL_COLLIDE_SHAPE_H 29 #define HPL_COLLIDE_SHAPE_H 31 #include "hpl1/engine/math/BoundingVolume.h" 32 #include "hpl1/engine/math/MathTypes.h" 36 enum eCollideShapeType {
37 eCollideShapeType_Null,
38 eCollideShapeType_Box,
39 eCollideShapeType_Sphere,
40 eCollideShapeType_Cylinder,
41 eCollideShapeType_Capsule,
42 eCollideShapeType_ConvexHull,
43 eCollideShapeType_Mesh,
44 eCollideShapeType_Compound,
45 eCollideShapeType_LastEnum
56 virtual int GetSubShapeNum() = 0;
60 float GetRadius() {
return mvSize.x; }
61 float GetHeight() {
return mvSize.y; }
62 float GetWidth() {
return mvSize.x; }
63 float GetDepth() {
return mvSize.z; }
65 const cMatrixf &GetOffset() {
return m_mtxOffset; }
67 eCollideShapeType GetType() {
return mType; }
69 void IncUserCount() { mlUserCount++; }
70 void DecUserCount() { mlUserCount--; }
72 bool HasUsers() {
return mlUserCount > 0; }
73 int GetUserCount() {
return mlUserCount; }
75 float GetVolume() {
return mfVolume; }
81 eCollideShapeType mType;
94 #endif // HPL_COLLIDE_SHAPE_H
Definition: PhysicsWorld.h:115
Definition: BoundingVolume.h:71
Definition: CollideShape.h:50