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

DynamicObjectGroup.h

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------------
00002 // File Name: DynamicObjectGroup.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 #ifdef TA_DYNAMIC_OBJECT_GROUP_ENABLED
00015 
00016 #ifndef TA_DYNAMICOBJECTGROUP_H
00017 #define TA_DYNAMICOBJECTGROUP_H
00018 
00019 #ifndef TA_DYNAMICOBJECT_H
00020 #include "DynamicObject.h"
00021 #endif // TA_DYNAMICOBJECT_H
00022 
00023 namespace TA
00024 {
00025 
00026 class TAPHYSICS_CLASS DynamicObjectGroup : public DynamicObject
00027 {
00028 public:
00030 
00031     void Initialise(DynamicObject* pDynamicObject);
00032     void Finalise();
00034 
00036 
00037     virtual void Update(float fDt);
00038     virtual void ApplyVelocityToNextFrame(float fDt);
00040 
00041     void AddDynamicObject(DynamicObject* pDynamicObject);
00042     void RemoveDynamicObject(DynamicObject* pDynamicObject);
00043 
00044     static DynamicObjectGroup* TAC_CALL CreateNew();
00045 
00046 protected:
00047     DynamicObjectGroup();
00048     ~DynamicObjectGroup();
00049 
00050 private:
00051     struct Child
00052     {
00053         MFrame mFrame;
00054         DynamicObject* pDynamicObject;
00055     };
00056     typedef List<Child>::Iterator ChildIterator;
00057     typedef List<Child>::ConstIterator ConstChildIterator;
00058     List<Child> m_childList;
00059     
00060     void CalculateMass(float& fMass, Vec3& v3CenterOfMass, Mat33& m33Inertia) const;
00061 
00062 };
00063 
00064 }
00065 
00066 #endif
00067 
00068 #endif // TA_DYNAMICOBJECTGROUP_H


© Copyright 2004-2006 TRUE AXIS PTY LTD Australia. All rights reserved.