SpineRelativeCameraSpaceCoordinateSystem::SpineRelativeCameraSpaceCoordinateSystem( ) : m_dwLastTrackingID( 0 ), m_fAverageSpineHeadLength( 0.0f ), m_vAverageNormalToGravity( XMVectorZero() ) { m_vAverageSpine = XMVectorSet( 0.0f, 0.0f, 0.0f, 1.0f ); m_vRightHandRelative = XMVectorSet( 0.0f, 0.0f, 0.0f, 0.0f ); m_vLeftHandRelative = XMVectorSet( 0.0f, 0.0f, 0.0f, 0.0f ); // Call the updates function with default parameters SetUpdateRates(); }
//----------------------------------------------------------------------------- //! //----------------------------------------------------------------------------- tPerformanceWidget::tPerformanceWidget( tIInstrumentProductFactory* pProductFactory, QWidget* pParent ) : QWidget( pParent ) , m_Mode( tPerformanceWidget::eModeAuto ) { Assert( pProductFactory ); if ( pProductFactory ) { setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ); m_pLayout = new QGridLayout( this ); m_pLayout->setSpacing( 0 ); m_pLayout->setContentsMargins( 0, 0, 0, 0 ); m_pGaugeStack = new tSlidingStackedWidget( this ); m_pGaugeStack->setSpeed( 300 ); m_pGaugeStack->setAnimation( QEasingCurve::OutQuad ); m_pGaugeStack->setWrap( true ); m_pLayout->addWidget( m_pGaugeStack, 0, 1, 2, 1 ); tGaugeParams gaugeParams = tGaugeParams(); gaugeParams.m_SliderParams.m_LeftHandScale = false; // Bar graphs m_pVmgPerfGraph = new tPerfSliderGauge( DATA_TYPE_SPEED_WATER, this, gaugeParams ); m_pGaugeStack->addWidget( m_pVmgPerfGraph ); m_Gauges << m_pVmgPerfGraph; m_pReachingPerfGraph = new tPerfSliderGauge( DATA_TYPE_POLAR_PERFORMANCE, this, gaugeParams ); m_pGaugeStack->addWidget( m_pReachingPerfGraph ); m_Gauges << m_pReachingPerfGraph; // Digital gauges m_pTargetBspGauge = pProductFactory->GetDigitalGauge( DATA_TYPE_TARGET_BOAT_SPEED, this ); m_pTargetBspGauge->SetBorders( false, false, true, true ); m_pTargetBspGauge->SetTaperedBorder( true, false ); m_pLayout->addWidget( m_pTargetBspGauge, 0, 0 ); m_Gauges << m_pTargetBspGauge; m_pTargetTwaGauge = pProductFactory->GetDigitalGauge( DATA_TYPE_TARGET_TRUE_WIND_ANGLE, this ); m_pTargetTwaGauge->SetBorders( false, false, true, false ); m_pTargetTwaGauge->SetTaperedBorder( false, true ); m_pLayout->addWidget( m_pTargetTwaGauge, 1, 0 ); m_Gauges << m_pTargetTwaGauge; m_pPolarSpeedGauge = pProductFactory->GetDigitalGauge( DATA_TYPE_POLAR_SPEED, this ); m_pPolarSpeedGauge->SetBorders( false, false, true, true ); m_pPolarSpeedGauge->SetTaperedBorder( true, false ); m_pLayout->addWidget( m_pPolarSpeedGauge, 0, 0 ); m_Gauges << m_pPolarSpeedGauge; m_pBoatSpeedGauge = pProductFactory->GetDigitalGauge( DATA_TYPE_SPEED_WATER, this ); m_pBoatSpeedGauge->SetBorders( false, false, true, false ); m_pBoatSpeedGauge->SetTaperedBorder( false, true ); m_pLayout->addWidget( m_pBoatSpeedGauge, 1, 0 ); m_Gauges << m_pBoatSpeedGauge; int dataBoxW = Widgets::GetThirdScreenWidth(); m_pVmgPerfGraph->setFixedSize( Widgets::GetScreenWidth() - dataBoxW, Widgets::GetScreenHeight() ); m_pReachingPerfGraph->setFixedSize( Widgets::GetScreenWidth() - dataBoxW, Widgets::GetScreenHeight() ); m_pTargetBspGauge->setFixedSize( dataBoxW, Widgets::GetHalfScreenHeight() ); m_pTargetTwaGauge->setFixedSize( dataBoxW, Widgets::GetHalfScreenHeight() ); m_pPolarSpeedGauge->setFixedSize( dataBoxW, Widgets::GetHalfScreenHeight() ); m_pBoatSpeedGauge->setFixedSize( dataBoxW, Widgets::GetHalfScreenHeight() ); SetUpdateRates(); Connect( tInstrumentDataManager::Instance(), SIGNAL( UpdateRatesChanged() ), this, SLOT( SetUpdateRates() ) ); UpdatePerfGauge(); QTimer* pTimer = new QTimer( this ); pTimer->setInterval( 1000 ); Connect( pTimer, SIGNAL( timeout() ), this, SLOT( UpdatePerfGauge() ) ); pTimer->start(); } }