|
| 1 | +#include "Animation.h" |
| 2 | + |
| 3 | +#include <QDateTime> |
| 4 | + |
| 5 | +Animation::Animation(QObject *parent) |
| 6 | + : QObject(parent) |
| 7 | + , mPlayTime(0.0) |
| 8 | +{ |
| 9 | + connect(&mTimer, &QTimer::timeout, this, &Animation::update); |
| 10 | +} |
| 11 | + |
| 12 | +void Animation::update() |
| 13 | +{ |
| 14 | + quint64 currentTime = QDateTime::currentMSecsSinceEpoch(); |
| 15 | + mPlayTime += (currentTime - mPreviousTime) / 1000.0; |
| 16 | + mPreviousTime = currentTime; |
| 17 | + |
| 18 | + mPfd->setAngleOfAttack(21.0 * sin(mPlayTime / 10.0)); |
| 19 | + mPfd->setAngleOfSideSlip(16.0 * sin(mPlayTime / 10.0)); |
| 20 | + mPfd->setRoll(180.0 * sin(mPlayTime / 10.0)); |
| 21 | + mPfd->setPitch(90.0 * sin(mPlayTime / 20.0)); |
| 22 | + mPfd->setHeading(360.0 * sin(mPlayTime / 40.0)); |
| 23 | + mPfd->setSlipSkid(1.0 * sin(mPlayTime / 10.0)); |
| 24 | + mPfd->setTurnRate(1.0 * sin(mPlayTime / 10.0)); |
| 25 | + mPfd->setIlsLOC(1.0 * sin(mPlayTime / 20.0)); |
| 26 | + mPfd->setIlsGS(1.0 * sin(mPlayTime / 20.0)); |
| 27 | + mPfd->setFdRoll(30.0 * sin(mPlayTime / 20.0)); |
| 28 | + mPfd->setFdPitch(10.0 * sin(mPlayTime / 20.0)); |
| 29 | + mPfd->setAirspeed(-100.0 * cos(mPlayTime / 10.0) + 100.0); |
| 30 | + mPfd->setAltitude(-5000.0 * cos(mPlayTime / 40.0) + 5000.0); |
| 31 | + mPfd->setPressure(2.0 * sin(mPlayTime / 20.0) + 30.0); |
| 32 | + mPfd->setClimbRate(6 * sin(mPlayTime / 20.0)); |
| 33 | + mPfd->setMachNumber(mPfd->airspeed() / 650.0); |
| 34 | + mPfd->setHeadingBug(-360.0 * sin(mPlayTime / 40.0)); |
| 35 | + mPfd->setCourse(360.0 * sin(mPlayTime / 20.0)); |
| 36 | + mPfd->setVorDeviation(1.0 * sin(mPlayTime / 20.0)); |
| 37 | + mPfd->setBearing(-360.0 * sin(mPlayTime / 50.0)); |
| 38 | + mPfd->setDmeDistance(99.0 * sin(mPlayTime / 100.0)); |
| 39 | + mPfd->setAirspeedBug(-50.0 * cos(mPlayTime / 10.0) + 50.0); |
| 40 | + mPfd->setAltitudeBug(-1000.0 * cos(mPlayTime / 40.0) + 1000.0); |
| 41 | +} |
| 42 | + |
| 43 | +void Animation::init() |
| 44 | +{ |
| 45 | + mPfd->setPressureMode(PrimaryFlightData::PressureMode::IN); |
| 46 | + mPfd->setFlightMode(PrimaryFlightData::FlightMode::FD); |
| 47 | + mPfd->setSpeedMode(PrimaryFlightData::SpeedMode::Off); |
| 48 | + mPfd->setLateralNavigationMode(PrimaryFlightData::LNAV::Off); |
| 49 | + mPfd->setVerticalNavigationMode(PrimaryFlightData::VNAV::Off); |
| 50 | + mPfd->setCourseDeviationIndicatorMode(PrimaryFlightData::CDI::Off); |
| 51 | + |
| 52 | + mPfd->setStall(false); |
| 53 | + mPfd->setFdVisible(false); |
| 54 | + mPfd->setIlsGSVisible(false); |
| 55 | + mPfd->setIlsGSVisible(false); |
| 56 | + |
| 57 | + mPreviousTime = QDateTime::currentMSecsSinceEpoch(); |
| 58 | + mTimer.start(10); |
| 59 | +} |
| 60 | + |
| 61 | +void Animation::setPfd(PrimaryFlightData *newPfd) |
| 62 | +{ |
| 63 | + mPfd = newPfd; |
| 64 | +} |
0 commit comments