//------------------------------------------------------------------------------
// getCalculatedAirframeHeatSignature()
//------------------------------------------------------------------------------
double AircraftIrSignature::getCalculatedAirframeHeatSignature(const IrQueryMsg* const msg) {

    double irPower = 0;
    const auto targetAircraft = dynamic_cast<const AirVehicle*>(static_cast<const Player*>(msg->getTarget()));
    if(targetAircraft != nullptr) {
        // this will need checks to ensure targetAircraft is , in fact,
        // an airvehicle and not something else.
        const double targetAlt = static_cast<double>(targetAircraft->getAltitudeM());
        const double targetVel = targetAircraft->getMach();
        double targetAzimuth = msg->getAzimuthAoi();
        const double targetElevation = msg->getElevationAoi();
        if (targetAzimuth < 0) {
            targetAzimuth = -targetAzimuth;
        }
        irPower = getAirframeSignature(targetVel, targetAlt, targetAzimuth, targetElevation);
    }
    return irPower;
}
Example #2
0
// Returns system altitude (ft)
double Navigation::getAltitudeFt() const
{
    return getAltitudeM() * Basic::Distance::M2FT;
}