![]() |
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 <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 }