VR-Forces 4.0.4 Class Documentation
include/vrvVrl/DtTacticalGraphicElementProcessor.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 <vrvVrl/vrvVrl.h>
00013 #include <vrvVrl/DtSharedTacticalGraphicsDisplaySettings.h>
00014 #include <vrvUtil/DtSignalConnectionManager.h>
00015 #include <boost/unordered_map.hpp>
00016 #include <vl/globalObjDes.h>
00017 #include <boost/signal.hpp>
00018 #include <boost/shared_ptr.hpp>
00019 
00020 namespace makVrv
00021 {
00022 
00023    class DtVisualAttributeStringVector;
00024 
00025    namespace DT_PROTOCOL_NAMESPACE
00026    {
00027 
00028       class DtTacticalGraphicElement;
00029       class DtTacticalGraphicVisualizerSet;
00030       class DtVrlinkConnection;
00031       class DtVrlinkTacticalGraphicStateListener;
00032       class DtVrlinkEnvironmentalStateListenerInterface;
00033 
00037       class DL_DLL_IGCONVRLINK DtTacticalGraphicElementProcessor 
00038          : public DtVirtualBaseClass
00039       {
00040       public:
00041 
00043          DtTacticalGraphicElementProcessor( DtVrlinkConnection& simulation );
00044 
00046          static void registerInstance( DtVrlinkConnection& simulation,
00047             DtTacticalGraphicElementProcessor* instance );
00048 
00050          static DtTacticalGraphicElementProcessor* findInstance(
00051             DtVrlinkConnection& simulation );
00052 
00054          virtual ~DtTacticalGraphicElementProcessor();
00055 
00057          void tacticalGraphicsSelectionChanged( const DtSelectionManager::IdSet& selected,
00058             const DtSelectionManager::IdSet& deselected );
00059 
00061          void tacticalGraphicsHeightAboveTerrainLinesEnabledChanged( bool enabled );
00062 
00064          void tacticalGraphicsHeightAboveTerrainModeChanged(
00065             DtSharedTacticalGraphicsDisplaySettings::HeightAboveTerrainMode );
00066 
00068          DtTacticalGraphicVisualizerSet* findVisualizer( int modelSet,
00069             const DtGlobalObjectDesignator& id );
00070 
00072          std::vector<DtTacticalGraphicVisualizerSet*> findVisualizers(
00073             const DtGlobalObjectDesignator& id );
00074 
00076          DtTacticalGraphicVisualizerSet* findVisualizer( DtUniqueID sceneId);
00077 
00079          DtVrlinkTacticalGraphicStateListener* findListener( DtUniqueID id);
00080 
00082          DtTacticalGraphicElement* findElement( const DtUniqueID& elementId );
00083 
00085          DtTacticalGraphicElement* findElement( const DtGlobalObjectDesignator& id );
00086 
00089          void setVisualizerCreationProcessingTime(double);
00090          double visualizerCreationProcessingTime() const;
00091 
00092       public:
00093 
00094          boost::signal<void (DtVrlinkEnvironmentalStateListenerInterface&, DtTacticalGraphicElement*)> signal_elementCreated;
00095          boost::signal<void (DtVrlinkEnvironmentalStateListenerInterface&, DtTacticalGraphicElement*)> signal_elementAboutToBeDestroyed;
00096 
00097       protected:
00098 
00099          virtual void modelSetVisualized(int set, bool b);
00100 
00101          virtual void handleElementAttributeChanged(
00102             DtTacticalGraphicElement& graphic, const DtElementAttribute* attr);
00103 
00104          virtual void handleChildElementAttributeChanged(
00105             DtTacticalGraphicElement& graphic, DtUniqueID childId,
00106             const DtElementAttribute* attr );
00107 
00109          void onEnvironmentalDiscovered(
00110             DtVrlinkEnvironmentalStateListenerInterface& listener );
00111 
00113          void onEnvironmentalToBeDestroyed(
00114             DtVrlinkEnvironmentalStateListenerInterface& listener );
00115 
00116          virtual void slot_elementAttributeChangeRequested( DtUniqueID id, DtUniqueID parentId,
00117             DtBoost::shared_ptr<const DtElementAttribute> atr );
00118 
00120          void tacticalGraphicsVertexSelected( const DtUniqueID& vertexElementID,
00121             const DtUniqueID& parentElementID );
00122 
00124          void tacticalGraphicsVertexDeselected( const DtUniqueID& vertexElementID,
00125             const DtUniqueID& parentElementID );
00126 
00127          void onItemVisibilityChanged( const DtUniqueID& elementID, bool flag );
00128 
00130          virtual void slot_completeDiscovery();
00131 
00132          virtual void createVisualizer(DtVrlinkTacticalGraphicStateListener&);
00133 
00134       protected:
00135 
00136          typedef boost::unordered_map<DtUniqueID, DtTacticalGraphicElement*> 
00137             TacticalGraphicElementVisualizerMap;
00138 
00139          typedef boost::unordered_map<std::string, DtTacticalGraphicElement*> 
00140             GlobalIdToTacticalGraphicElementVisualizerMap;
00141 
00142          typedef boost::unordered_map<DtUniqueID, DtVrlinkEnvironmentalStateListenerInterface*> 
00143             ToBeVisualizedMap;
00144 
00145          DtVrlinkConnection& myConnection;
00146          DtSignalConnectionManager myConnections;
00147          TacticalGraphicElementVisualizerMap myElementVisualizers;
00148          GlobalIdToTacticalGraphicElementVisualizerMap myGlobalIdToElementVisualizerMap;
00149          ToBeVisualizedMap myToBeVisualized;
00150          double myVisualizerCreationProcessingTime;
00151 
00152       };
00153 
00154    }
00155 }

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)