VR-Forces 4.0.4 Class Documentation
examples/exampleTrackHistory/DtExampleTrackHistoryDriver.h
Go to the documentation of this file.
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 };

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)