double SpaceVehicle::getGrossWeight() const { double value = 0.0; if (getDynamicsModel() != nullptr) { value = getDynamicsModel()->getGrossWeight(); } return value; }
int SpaceVehicle::getEngThrust(double* const data, const int max) const { int n = 0; if (getDynamicsModel() != nullptr) { n = getDynamicsModel()->getEngThrust(data, max); } return n; }
//------------------------------------------------------------------------------ // Get engine data: num engines, thrust, rpm, pla and fuel flow //------------------------------------------------------------------------------ int SpaceVehicle::getNumberOfEngines() const { int n = 0; if (getDynamicsModel() != nullptr) { n = getDynamicsModel()->getNumberOfEngines(); } return n; }
//------------------------------------------------------------------------------ // atReleaseInit() -- Init weapon data at release //------------------------------------------------------------------------------ void Missile::atReleaseInit() { // First the base class will setup the initial conditions BaseClass::atReleaseInit(); if (getDynamicsModel() == 0) { // set initial commands cmdPitch = (LCreal) getPitch(); cmdHeading = (LCreal) getHeading(); cmdVelocity = vpMax; if (getTargetTrack() != 0) { // Set initial range and range dot osg::Vec3 los = getTargetTrack()->getPosition(); trng = los.length(); trngT = trng; } else if (getTargetPlayer() != 0) { // Set initial range and range dot osg::Vec3 los = getTargetPosition(); trng = los.length(); trngT = trng; } else { trng = 0; } // Range dot trdot = 0; trdotT = 0; } }
//------------------------------------------------------------------------------ // setTranslateYInput(transy) -- Translate Y inputs: normalized // transy: -1.0 -> max left; 0.0 -> center; 1.0 -> max right //------------------------------------------------------------------------------ bool SpaceVehicle::setTranslateYInput(const double transy) { bool ok = false; SpaceDynamicsModel* model = dynamic_cast<SpaceDynamicsModel*>(getDynamicsModel()); if (model != nullptr) { ok = model->setTranslateYInput(transy); } return ok; }
//------------------------------------------------------------------------------ // setControlStickYawInput(yaw) -- Yaw inputs: normalized // yaw: -1.0 -> max left; 0.0 -> center; 1.0 -> max right //------------------------------------------------------------------------------ bool SpaceVehicle::setControlStickYawInput(const double yaw) { bool ok = false; SpaceDynamicsModel* model = dynamic_cast<SpaceDynamicsModel*>(getDynamicsModel()); if (model != nullptr) { ok = model->setControlStickYawInput(yaw); } return ok; }
const AerodynamicsModel* AirVehicle::getAerodynamicsModel() const { return dynamic_cast<const AerodynamicsModel*>( getDynamicsModel() ); }