X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FYASim%2FLaunchbar.hpp;h=86733d882ed246c20636b6d4b26842b6e603f84f;hb=3ec74d79c23347add2afa088b05ad29af975f65f;hp=dcdcb8a714c66c76420bc1edb5f01a418cd705a6;hpb=b5bfbcf706817641e36011ba5369c89accc95fa2;p=flightgear.git diff --git a/src/FDM/YASim/Launchbar.hpp b/src/FDM/YASim/Launchbar.hpp index dcdcb8a71..86733d882 100644 --- a/src/FDM/YASim/Launchbar.hpp +++ b/src/FDM/YASim/Launchbar.hpp @@ -5,7 +5,7 @@ namespace yasim { class Ground; class RigidBody; -class State; +struct State; // A launchbar has the following parameters: // @@ -14,7 +14,7 @@ class State; // class Launchbar { public: - enum LBState { Arrested, Launch, Unmounted }; + enum LBState { Arrested, Launch, Unmounted, Completed }; Launchbar(); @@ -22,6 +22,7 @@ public: void setLaunchbarMount(float* position); void setHoldbackMount(float* position); void setLength(float length); + void setHoldbackLength(float length); void setDownAngle(float ang); void setUpAngle(float ang); void setExtension(float extension); @@ -30,12 +31,18 @@ public: void getLaunchbarMount(float* out); void getHoldbackMount(float* out); + const char* getState(void); float getLength(void); + float getHoldbackLength(void); float getDownAngle(void); float getUpAngle(void); float getExtension(void); + bool getStrop(void); void getTipPosition(float* out); + void getHoldbackTipPosition(float* out); + float getTipPos(int i); + float getHoldbackTipPos(int i); void getTipGlobalPosition(State* s, double* out); float getPercentPosOnCat(float* lpos, float off, float lends[2][3]); @@ -46,12 +53,18 @@ public: // vector, and a ground plane (all specified in local coordinates) // and make a force and point of application (i.e. ground contact) // available via getForce(). - void calcForce(Ground *g_cb, RigidBody* body, State* s, float* lv, float* lrot); + void calcForce(Ground *g_cb, RigidBody* body, State* s, + float* lv, float* lrot); // Computed values: total force, weight-on-wheels (force normal to // ground) and compression fraction. - void getForce(float* force, float* off); + void getForce(float* force1, float* off1, float* force2, float* off2); float getCompressFraction(void); + float getHoldbackCompressFraction(void); + float getAngle(void); + float getHoldbackAngle(void); + float getLaunchbarPos(int i); + float getHoldbackPos(int j); private: float _launchbar_mount[3]; @@ -60,11 +73,16 @@ private: float _holdback_length; float _down_ang; float _up_ang; + float _ang; + float _h_ang; float _extension; - float _force[3]; + float _launchbar_force[3]; + float _holdback_force[3]; float _frac; + float _h_frac; float _pos_on_cat; bool _launch_cmd; + bool _strop; double _global_ground[4]; LBState _state; };