mod_base_physics.hh

Go to the documentation of this file.
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