00001
00002
00003
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef TA_STATICOBJECT_H
00015 #define TA_STATICOBJECT_H
00016
00017 #ifndef TA_DYNAMICOBJECT_H
00018 #include "DynamicObject.h"
00019 #endif // TA_DYNAMICOBJECT_H
00020
00021 TA_OBFUSCATION_SKIP_PASS_2
00022
00023 namespace TA
00024 {
00025
00026 class CollisionObjectComplex;
00027
00028 class TAPHYSICS_CLASS StaticObject : public PhysicsObject
00029 {
00030 public:
00031
00032
00033 TA_OBFUSCATION_RESERVED_ON
00034 void Initialise(CollisionObjectComplex* pCollisionObjectComplex);
00035 void Finalise();
00036
00037 const MFrame& GetFrame() const;
00038 void SetFrame(const MFrame& frame);
00039 const MFrame& GetNextFrame() const;
00040 void SetNextFrame(const MFrame& nextFrame);
00041
00042 CollisionObjectComplex& GetCollisionObject();
00043 const AABB& GetWorldAABB() const;
00044
00045 void TestLineForCollision(
00046 const Vec3& v3Start,
00047 const Vec3& v3Normal,
00048 float fLength,
00049 Collision& collision);
00050
00051 DynamicObject* GetDynamicObject();
00052
00053 static StaticObject* TAC_CALL CreateNew();
00054
00055
00056
00057
00058 void SetUserData(void* pData);
00059 void* GetUserData();
00060
00061
00062
00063
00064 protected:
00065 StaticObject();
00066 ~StaticObject();
00067 TA_OBFUSCATION_RESERVED_OFF
00068
00069 private:
00070 DynamicObject* m_pDynamicObject;
00071 };
00072
00073 inline const MFrame& StaticObject::GetFrame() const { return m_pDynamicObject->GetFrame(); }
00074 inline const MFrame& StaticObject::GetNextFrame() const { return m_pDynamicObject->GetNextFrame(); }
00075 inline CollisionObjectComplex& StaticObject::GetCollisionObject() { TA_ASSERT(m_pDynamicObject); TA_ASSERT(m_pDynamicObject->GetCollisionObjectComplex()); return *m_pDynamicObject->GetCollisionObjectComplex(); }
00076 inline const AABB& StaticObject::GetWorldAABB() const { return m_pDynamicObject->GetWorldAABB(); }
00077 inline DynamicObject* StaticObject::GetDynamicObject() { return m_pDynamicObject; }
00078 inline void StaticObject::SetUserData(void* pData) { m_pDynamicObject->SetUserData(pData); }
00079 inline void* StaticObject::GetUserData() { return m_pDynamicObject->GetUserData(); }
00080
00081 }
00082
00083 #endif // TA_STATICOBJECT_H
© Copyright 2004-2006 TRUE AXIS PTY LTD Australia. All rights reserved.