![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /***************************************************************************** 00002 * Copyright (c) 2012 MAK Technologies, Inc. 00003 * All rights reserved. 00004 *****************************************************************************/ 00005 00009 00010 #pragma once 00011 00012 #include <vrvCore/DtDriver.h> 00013 #include <vrvCore/DtModelSetRealizationManager.h> 00014 00015 #include <boost/unordered_map.hpp> 00016 00017 #include <matrix/vlTaitBryan.h> 00018 #include <matrix/vlVector.h> 00019 00020 namespace makVrv 00021 { 00022 class DtEntityFacade; 00023 class DtSceneObjectAgent; 00024 class DtRibbonModelAgent; 00025 class DtTrackHistoryUpdaterAgent; 00026 } 00027 00030 class DtExampleTrackHistoryDriver : public makVrv::DtDriver 00031 { 00032 public: 00033 00035 DtExampleTrackHistoryDriver( makVrv::DtAgentManager& am ); 00036 00038 virtual ~DtExampleTrackHistoryDriver(); 00039 00042 00045 virtual const std::string& className() const; 00046 00049 virtual bool onStart(); 00050 00053 virtual bool onStop(); 00054 00057 virtual bool onTick(); 00058 00061 virtual void slot_displayEngineAdded( const makVrv::DtDeRecord& igRecord ); 00062 00064 00067 virtual void slot_settingsChanged(); 00068 00069 protected: 00070 00072 void createEntityTrackHistories( makVrv::DtEntityFacade* entityFacade, bool distribute ); 00073 00075 void createEntityTrackHistory( int modelSet, int visualType, 00076 makVrv::DtSceneObjectAgent* sceneObjectAgent, bool distribute ); 00077 00080 makVrv::DtEntityFacade* createEntityFacade( makVrv::DtAgentManager& am, makVrv::DtElementID elementId, 00081 const makVrv::DtModelSetRealizationManager::ModelSetRealizations& modelSets, bool distribute ); 00082 00084 virtual void updatePosition(); 00085 00087 virtual void repositionAircraft( DtVector position, DtTaitBryan ori ); 00088 00089 protected: 00090 00091 struct TrackHistoryInfo 00092 { 00093 makVrv::DtSceneObjectAgent* mySceneObject; 00094 makVrv::DtRibbonModelAgent* myTrackHistory; 00095 makVrv::DtTrackHistoryUpdaterAgent* myUpdater; 00096 }; 00097 00098 protected: 00099 00101 typedef std::vector<TrackHistoryInfo> TrackHistoriesVector; 00102 00103 TrackHistoriesVector myTrackHistories; 00104 00105 makVrv::DtEntityFacade* myEntityFacade; 00106 00107 DtVector myOrbitCenter; 00108 00109 double myAngularVelocity; 00110 double myLastUpdateTime; 00111 double myClockAngle; 00112 double myRadius; 00113 double myRoll; 00114 00115 };