//
class Launchbar {
public:
- enum LBState { Arrested, Launch, Unmounted };
+ enum LBState { Arrested, Launch, Unmounted, Completed };
Launchbar();
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);
void setLaunchCmd(bool cmd);
void setGlobalGround(double *global_ground);
+ void setAcceleration(float acceleration);
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]);
// 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];
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;
+ float _acceleration;
};
}; // namespace yasim