True Axis Physics SDK 1.2.0.1 Beta Documentation
www.trueaxis.com

StaticObject.h

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------------
00002 // File Name: StaticObject.h
00003 // Description:
00006 //
00007 // Copyright (C) 2004 - 2006 True Axis Pty Ltd, Australia. 
00008 // All Rights Reserved.
00009 //
00010 // History:
00011 //      Created File.
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     //pl.BeginExportClass(StaticObject)
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     //pl.Release()
00056 
00057         
00058     void SetUserData(void* pData);
00059     void* GetUserData();
00060     
00061 
00062     //pl.EndExportClass(DynamicObject)
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.