Пример #1
0
double SpaceVehicle::getGrossWeight() const
{
   double value = 0.0;
   if (getDynamicsModel() != nullptr) {
      value = getDynamicsModel()->getGrossWeight();
   }
   return value;
}
Пример #2
0
int SpaceVehicle::getEngThrust(double* const data, const int max) const
{
   int  n = 0;
   if (getDynamicsModel() != nullptr) {
      n = getDynamicsModel()->getEngThrust(data, max);
   }
   return n;
}
Пример #3
0
//------------------------------------------------------------------------------
// 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;
}
Пример #4
0
//------------------------------------------------------------------------------
// 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;
   }
}
Пример #5
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;
}
Пример #6
0
//------------------------------------------------------------------------------
// 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;
}
Пример #7
0
const AerodynamicsModel* AirVehicle::getAerodynamicsModel() const
{
   return dynamic_cast<const AerodynamicsModel*>( getDynamicsModel() );
}