27 #include <QGraphicsView>
28 #include <QGraphicsRectItem>
29 #include <QGraphicsSvgItem>
91 explicit qfi_EADI( QWidget *parent = Q_NULLPTR );
115 inline void setLNAV(
LNAV lnav )
121 inline void setVNAV(
VNAV vnav )
129 _adi->setRoll( roll );
135 _adi->setPitch( pitch );
142 inline void setFPM(
double aoa,
double sideslip,
bool visible =
true )
144 _adi->setFPM( aoa, sideslip, visible );
150 _adi->setSlipSkid( slipSkid );
158 _adi->setTurnRate( turnRate );
166 inline void setDots(
double dotH,
double dotV,
bool visibleH,
bool visibleV )
168 _adi->setDots( dotH, dotV, visibleH, visibleV );
175 inline void setFD(
double roll,
double pitch,
bool visible =
true )
177 _adi->setFD( roll, pitch, visible );
183 _adi->setStall( stall );
189 _alt->setAltitude( altitude );
197 _alt->setPressure( pressure, pressureMode );
203 _asi->setAirspeed( airspeed );
209 _asi->setMachNo( machNo );
215 _hdg->setHeading( heading );
221 _vsi->setClimbRate( climbRate );
227 _asi->setAirspeedSel( airspeed );
233 _alt->setAltitudeSel( altitude );
239 _hdg->setHeadingSel( heading );
257 void resizeEvent( QResizeEvent *event );
267 QGraphicsScene *_scene;
275 QGraphicsSvgItem *_itemBack;
276 QGraphicsSvgItem *_itemMask;
278 QGraphicsTextItem *_itemFMA;
279 QGraphicsTextItem *_itemSPD;
281 QGraphicsTextItem *_itemLNAV;
282 QGraphicsTextItem *_itemVNAV;
284 QGraphicsTextItem *_itemLNAV_ARM;
285 QGraphicsTextItem *_itemVNAV_ARM;
296 QPointF _originalFMA;
297 QPointF _originalSPD;
299 QPointF _originalLNAV;
300 QPointF _originalVNAV;
302 QPointF _originalLNAV_ARM;
303 QPointF _originalVNAV_ARM;
305 const int _originalHeight;
306 const int _originalWidth;
322 ADI( QGraphicsScene *scene );
324 void init(
double scaleX,
double scaleY );
325 void update(
double scaleX,
double scaleY );
329 void setFPM(
double aoa,
double sideslip,
bool visible =
true );
332 void setDots(
double dotH,
double dotV,
bool visibleH,
bool visibleV );
333 void setFD(
double roll,
double pitch,
bool visible =
true );
338 QGraphicsScene *_scene;
340 QGraphicsSvgItem *_itemBack;
341 QGraphicsSvgItem *_itemLadd;
342 QGraphicsSvgItem *_itemRoll;
343 QGraphicsSvgItem *_itemSlip;
344 QGraphicsSvgItem *_itemTurn;
345 QGraphicsSvgItem *_itemDotH;
346 QGraphicsSvgItem *_itemDotV;
347 QGraphicsSvgItem *_itemFD;
348 QGraphicsSvgItem *_itemStall;
349 QGraphicsSvgItem *_itemMask;
350 QGraphicsSvgItem *_itemScaleH;
351 QGraphicsSvgItem *_itemScaleV;
352 QGraphicsSvgItem *_itemFPM;
353 QGraphicsSvgItem *_itemFPMX;
363 double _angleOfAttack;
364 double _sideslipAngle;
375 double _laddDeltaX_new;
376 double _laddDeltaX_old;
377 double _laddDeltaY_new;
378 double _laddDeltaY_old;
379 double _laddBackDeltaX_new;
380 double _laddBackDeltaX_old;
381 double _laddBackDeltaY_new;
382 double _laddBackDeltaY_old;
383 double _slipDeltaX_new;
384 double _slipDeltaX_old;
385 double _slipDeltaY_new;
386 double _slipDeltaY_old;
387 double _turnDeltaX_new;
388 double _turnDeltaX_old;
389 double _dotHDeltaX_new;
390 double _dotHDeltaX_old;
391 double _dotVDeltaY_new;
392 double _dotVDeltaY_old;
393 double _fdDeltaX_new;
394 double _fdDeltaX_old;
395 double _fdDeltaY_new;
396 double _fdDeltaY_old;
397 double _fpmDeltaX_new;
398 double _fpmDeltaX_old;
399 double _fpmDeltaY_new;
400 double _fpmDeltaY_old;
401 double _fpmxDeltaX_new;
402 double _fpmxDeltaX_old;
403 double _fpmxDeltaY_new;
404 double _fpmxDeltaY_old;
409 const double _originalPixPerDeg;
410 const double _deltaLaddBack_max;
411 const double _deltaLaddBack_min;
412 const double _maxSlipDeflection;
413 const double _maxTurnDeflection;
414 const double _maxDotsDeflection;
416 QPointF _originalAdiCtr;
417 QPointF _originalBackPos;
418 QPointF _originalLaddPos;
419 QPointF _originalRollPos;
420 QPointF _originalSlipPos;
421 QPointF _originalTurnPos;
422 QPointF _originalDotHPos;
423 QPointF _originalDotVPos;
424 QPointF _originalFdPos;
425 QPointF _originalStallPos;
426 QPointF _originalScaleHPos;
427 QPointF _originalScaleVPos;
428 QPointF _originalFpmPos;
444 void updateLadd(
double delta,
double sinRoll,
double cosRoll );
445 void updateLaddBack(
double delta,
double sinRoll,
double cosRoll );
447 void updateSlipSkid(
double sinRoll,
double cosRoll );
448 void updateTurnRate();
450 void updateFD(
double sinRoll,
double cosRoll );
459 ALT( QGraphicsScene *scene );
461 void init(
double scaleX,
double scaleY );
462 void update(
double scaleX,
double scaleY );
470 QGraphicsScene *_scene;
472 QGraphicsSvgItem *_itemBack;
473 QGraphicsSvgItem *_itemScale1;
474 QGraphicsSvgItem *_itemScale2;
475 QGraphicsTextItem *_itemLabel1;
476 QGraphicsTextItem *_itemLabel2;
477 QGraphicsTextItem *_itemLabel3;
478 QGraphicsSvgItem *_itemGround;
479 QGraphicsSvgItem *_itemBugAlt;
480 QGraphicsSvgItem *_itemFrame;
481 QGraphicsTextItem *_itemAltitude;
482 QGraphicsTextItem *_itemPressure;
483 QGraphicsTextItem *_itemSetpoint;
487 double _altitude_sel;
491 double _scale1DeltaY_new;
492 double _scale1DeltaY_old;
493 double _scale2DeltaY_new;
494 double _scale2DeltaY_old;
495 double _groundDeltaY_new;
496 double _groundDeltaY_old;
497 double _labelsDeltaY_new;
498 double _labelsDeltaY_old;
499 double _bugDeltaY_new;
500 double _bugDeltaY_old;
505 const double _originalPixPerAlt;
506 const double _originalScaleHeight;
507 const double _originalLabelsX;
508 const double _originalLabel1Y;
509 const double _originalLabel2Y;
510 const double _originalLabel3Y;
512 QPointF _originalBackPos;
513 QPointF _originalScale1Pos;
514 QPointF _originalScale2Pos;
515 QPointF _originalGroundPos;
516 QPointF _originalFramePos;
517 QPointF _originalAltitudeCtr;
518 QPointF _originalPressureCtr;
519 QPointF _originalAltitudeSet;
527 const int _frameTextZ;
531 void updateAltitude();
532 void updatePressure();
533 void updateAltitudeBug();
535 void updateScaleLabels();
542 ASI( QGraphicsScene *scene );
544 void init(
double scaleX,
double scaleY );
545 void update(
double scaleX,
double scaleY );
550 void setVfe(
double vfe );
551 void setVne(
double vne );
555 QGraphicsScene *_scene;
557 QGraphicsSvgItem *_itemBack;
558 QGraphicsSvgItem *_itemScale1;
559 QGraphicsSvgItem *_itemScale2;
560 QGraphicsTextItem *_itemLabel1;
561 QGraphicsTextItem *_itemLabel2;
562 QGraphicsTextItem *_itemLabel3;
563 QGraphicsTextItem *_itemLabel4;
564 QGraphicsTextItem *_itemLabel5;
565 QGraphicsTextItem *_itemLabel6;
566 QGraphicsTextItem *_itemLabel7;
567 QGraphicsSvgItem *_itemBugIAS;
568 QGraphicsSvgItem *_itemFrame;
569 QGraphicsRectItem *_itemVfe;
570 QGraphicsSvgItem *_itemVne;
571 QGraphicsTextItem *_itemAirspeed;
572 QGraphicsTextItem *_itemMachNo;
573 QGraphicsTextItem *_itemSetpoint;
580 double _airspeed_sel;
584 double _scale1DeltaY_new;
585 double _scale1DeltaY_old;
586 double _scale2DeltaY_new;
587 double _scale2DeltaY_old;
588 double _labelsDeltaY_new;
589 double _labelsDeltaY_old;
590 double _bugDeltaY_new;
591 double _bugDeltaY_old;
592 double _vneDeltaY_new;
593 double _vneDeltaY_old;
598 const double _originalPixPerSpd;
599 const double _originalScaleHeight;
600 const double _originalLabelsX;
601 const double _originalLabel1Y;
602 const double _originalLabel2Y;
603 const double _originalLabel3Y;
604 const double _originalLabel4Y;
605 const double _originalLabel5Y;
606 const double _originalLabel6Y;
607 const double _originalLabel7Y;
608 const double _originalVfeWidth;
610 QPointF _originalBackPos;
611 QPointF _originalScale1Pos;
612 QPointF _originalScale2Pos;
613 QPointF _originalFramePos;
614 QPointF _originalAirspeedCtr;
615 QPointF _originalMachNoCtr;
616 QPointF _originalAirspeedSet;
617 QPointF _originalVfePos;
626 const int _frameTextZ;
630 void updateAirspeed();
631 void updateAirspeedBug();
633 void updateScaleLabels();
642 HDG( QGraphicsScene *scene );
644 void init(
double scaleX,
double scaleY );
645 void update(
double scaleX,
double scaleY );
652 QGraphicsScene *_scene;
654 QGraphicsSvgItem *_itemBack;
655 QGraphicsSvgItem *_itemFace;
656 QGraphicsSvgItem *_itemHdgBug;
657 QGraphicsSvgItem *_itemMarks;
658 QGraphicsTextItem *_itemFrameText;
666 QPointF _originalHsiCtr;
667 QPointF _originalBackPos;
668 QPointF _originalFacePos;
669 QPointF _originalBugPos;
670 QPointF _originalMarksPos;
671 QPointF _originalFrameTextCtr;
677 const int _frameTextZ;
681 void updateHeading();
688 VSI( QGraphicsScene *scene );
690 void init(
double scaleX,
double scaleY );
691 void update(
double scaleX,
double scaleY );
697 QGraphicsScene *_scene;
699 QGraphicsSvgItem *_itemScale;
700 QGraphicsRectItem *_itemMarker;
707 const double _originalMarkerWidth;
708 const double _originalPixPerSpd1;
709 const double _originalPixPerSpd2;
710 const double _originalPixPerSpd4;
712 QPointF _originalScalePos;
713 QPointF _originalMarkerPos;