CEL

Public API Reference

Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members

mechthruster.h

00001 #ifndef __CEL_PF_MECHANICS_THRUSTER__
00002 #define __CEL_PF_MECHANICS_THRUSTER__
00003 
00004 #include "cstypes.h"
00005 #include "csutil/scf.h"
00006 
00007 #include "propclass/mechcommon.h"
00008 
00009 class csVector3;
00010 struct iPcMechanicsObject;
00011 struct iPcMechanicsThrusterGroup;
00012 
00013 SCF_VERSION (iPcMechanicsThruster, 0, 0, 1);
00014 
00019 struct iPcMechanicsThruster : public iBase
00020 {
00025   virtual void SetMechanicsObject (iPcMechanicsObject* mechsys) = 0;
00026 
00030   virtual iPcMechanicsObject* GetMechanicsObject () = 0;
00031 
00032 
00034   //Set thruster properties
00035 
00040   virtual void SetPosition (const csVector3& pos) = 0;
00041 
00045   virtual const csVector3& GetPosition () = 0;
00046 
00051   virtual void SetOrientation (const csVector3& orientation) = 0;
00052 
00056   virtual const csVector3& GetOrientation () = 0;
00057 
00063   virtual void SetMaxThrust (float maxthrust) = 0;
00064 
00068   virtual float GetMaxThrust () = 0;
00069 
00075   virtual float GetThrustForce (float thrust) = 0;
00076 
00080   virtual float AvailableThrust () = 0;
00081 
00082 
00084   //Applying thrust
00085 
00090   virtual void ThrustChange (float deltathrust) = 0;
00091 };
00092 
00093 
00094 SCF_VERSION (iPcMechanicsBalancedGroup, 0, 0, 1);
00095 
00096 enum celAxisType {
00097   CEL_AT_NONE,
00098   CEL_AT_ROTATION,
00099   CEL_AT_TRANSLATION
00100 };
00101 
00106 struct iPcMechanicsBalancedGroup : public iBase
00107 {
00112   virtual void SetType (celAxisType type) = 0;
00113 
00117   virtual celAxisType GetType () = 0;
00118 
00119 
00126   virtual void AddThruster (iPcMechanicsThruster* thruster, float multiplier) = 0;
00127 
00132   virtual void RemoveThruster (const char* tag) = 0;
00133 
00138   virtual iPcMechanicsThruster* GetThruster (const char* tag) = 0;
00139 
00144   virtual float AvailableThrust () = 0;
00145 
00150   virtual float AvailableThrustForce () = 0;
00151 
00156   virtual void ChangeThrust (float deltathrust) = 0;
00157 };
00158 
00159 
00160 SCF_VERSION (iPcMechanicsThrusterController, 0, 0, 1);
00161 
00166 struct iPcMechanicsThrusterController : public iBase
00167 {
00172   virtual void SetMechanicsObject (iPcMechanicsObject* mechobj) = 0;
00173 
00177   virtual iPcMechanicsObject* GetMechanicsObject () = 0;
00178 
00188   virtual void AddAxis (const char* name, celAxisType type, const
00189         csVector3 axis) = 0;
00190 
00195   virtual const csVector3 GetAxis (const char* name) = 0;
00196 
00201   virtual const celAxisType GetAxisType (const char* name) = 0;
00202 
00207   virtual const float GetAxisVelocity (const char* name) = 0;
00208 
00213   virtual float GetAxisMaxForce (const char* name) = 0;
00214 
00220   virtual float GetAxisMaxThrust (const char* name) = 0;
00221 
00227   virtual void AddBalancedGroup (iPcMechanicsBalancedGroup* group,
00228         const char* axisname) = 0;
00229 
00235   virtual void RemoveBalancedGroup (const char* grouptag, const char*
00236         axisname) = 0;
00237 
00244   virtual void ApplyThrust (float thrust, const char* axisname,
00245         uint32& id) = 0;
00246 
00251   virtual void CancelThrust (uint32 id) = 0;
00252 };
00253 
00254 #endif //__CEL_PF_MECHANICS_THRUSTER__

Generated for CEL: Crystal Entity Layer by doxygen 1.4.4