of the Jets on the catapult.
switch(o->type) {
case THROTTLE: ((Thruster*)obj)->setThrottle(lval); break;
case MIXTURE: ((Thruster*)obj)->setMixture(lval); break;
- case CONDLEVER: ((TurbineEngine*)((PropEngine*)obj)->getEngine())->setCondLever(lval); break;
+ case CONDLEVER: ((TurbineEngine*)((PropEngine*)
+ obj)->getEngine())->setCondLever(lval); break;
case STARTER: ((Thruster*)obj)->setStarter(lval != 0.0); break;
case MAGNETOS: ((PropEngine*)obj)->setMagnetos((int)lval); break;
case ADVANCE: ((PropEngine*)obj)->setAdvance(lval); break;
case EXTEND: ((Gear*)obj)->setExtension(lval); break;
case HEXTEND: ((Hook*)obj)->setExtension(lval); break;
case LEXTEND: ((Launchbar*)obj)->setExtension(lval); break;
+ case LACCEL: ((Launchbar*)obj)->setAcceleration(lval); break;
case CASTERING:((Gear*)obj)->setCastering(lval != 0); break;
case SLAT: ((Wing*)obj)->setSlat(lval); break;
case FLAP0: ((Wing*)obj)->setFlap0(lval, rval); break;
enum OutputType { THROTTLE, MIXTURE, CONDLEVER, STARTER, MAGNETOS,
ADVANCE, REHEAT, PROP,
- BRAKE, STEER, EXTEND, HEXTEND, LEXTEND,
+ BRAKE, STEER, EXTEND, HEXTEND, LEXTEND, LACCEL,
INCIDENCE, FLAP0, FLAP1, SLAT, SPOILER, VECTOR,
FLAP0EFFECTIVENESS, FLAP1EFFECTIVENESS,
BOOST, CASTERING, PROPPITCH, PROPFEATHER,
if(eq(name, "EXTEND")) return ControlMap::EXTEND;
if(eq(name, "HEXTEND")) return ControlMap::HEXTEND;
if(eq(name, "LEXTEND")) return ControlMap::LEXTEND;
+ if(eq(name, "LACCEL")) return ControlMap::LACCEL;
if(eq(name, "INCIDENCE")) return ControlMap::INCIDENCE;
if(eq(name, "FLAP0")) return ControlMap::FLAP0;
if(eq(name, "FLAP0EFFECTIVENESS")) return ControlMap::FLAP0EFFECTIVENESS;
#include "BodyEnvironment.hpp"
#include "Ground.hpp"
#include "RigidBody.hpp"
-
#include "Launchbar.hpp"
namespace yasim {
_pos_on_cat = 0.0;
_state = Unmounted;
_strop = false;
+ _acceleration = 0.25;
}
void Launchbar::setLaunchbarMount(float* position)
_launch_cmd = cmd;
}
+void Launchbar::setAcceleration(float acceleration)
+{
+ _acceleration = acceleration;
+}
+
void Launchbar::setGlobalGround(double *global_ground)
{
int i;
if (_state == Launch) {
// Now apply a constant tension from the catapult over the launchbar.
- Math::mul3(25.0, llbdir, _launchbar_force);
+ // We modify the max accleration 100 m/s^2 by the normalised input
+ //SG_LOG(SG_FLIGHT, SG_ALERT, "acceleration " << 100 * _acceleration );
+ Math::mul3(100 * _acceleration, llbdir, _launchbar_force);
if (1.0 < dist) {
_state = Completed;
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);
bool _strop;
double _global_ground[4];
LBState _state;
+ float _acceleration;
};
}; // namespace yasim