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