00001 /* 00008 * LEGAL: COPYRIGHT (C) 2007 JIM E. BROOKS 00009 * THIS SOURCE CODE IS RELEASED UNDER THE TERMS 00010 * OF THE GNU GENERAL PUBLIC LICENSE VERSION 2 (GPL 2). 00011 *****************************************************************************/ 00012 00013 #if COMPILING_MODULE 00014 #ifndef MOD_BASE_PHYSICS_HH 00015 #define MOD_BASE_PHYSICS_HH 1 00016 00017 namespace mod_base { 00018 00019 class Dyna; 00020 00034 class Physics 00035 { 00036 00037 public: 00038 Physics( SharedPtr<Dyna> dyna ); 00039 ~Physics(); 00040 CLASS_METHOD void EnableAll( bool enable ); 00041 void Enable( bool enable ); 00042 void SetEyeCraft( void ); 00043 void Reset( void ); 00044 void MoveObject( void ); 00045 Vector3 ComputeSpeed( void ); 00046 fp ComputeSpeedMach( void ); 00047 fp GetMaxMach( void ); 00048 bool IfStall( void ); 00049 fp ComputeStall( void ); 00050 void SetSpeedMach( const fp mach ); 00051 void SetThrust( const Vector3& thrust ); 00052 void SetMaxThrust( const Vector3& maxThrust ); 00053 void SetMaxSpeed( const Vector3& maxSpeed ); 00054 void SetMaxMach( const fp maxMach ); 00055 void SetStallMach( const fp stallMach ); 00056 00057 private: 00058 fp Mach2Speed( const fp mach ); 00059 fp Speed2Mach( const fp speed ); 00060 00061 private: 00062 CLASS_VAR bool msEnable; 00063 bool mEnable; 00064 shptr<Dyna> mDyna; 00065 fp mStepDir; 00066 fp mUpDir; 00067 fp mWeightDir; 00068 00069 Vector3 mThrust; 00070 Vector3 mDrag; 00071 Vector3 mLift; 00072 Vector3 mWeight; 00073 00074 Vector3 mSpeed; 00075 Vector3 mSpeedStall; 00076 00077 Vector3 mMaxThrust; 00078 Vector3 mMaxSpeed; 00079 fp mMaxMach; 00080 }; 00081 00082 } // namespace mod_base 00083 00084 #endif // MOD_BASE_PHYSICS_HH 00085 #endif // COMPILING_MODULE
Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:12 2007