![]() |
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 <vrvCore/DtEnvironmentalStateListener.h> 00014 #include <vrvCore/DtSharedModelSetSettings.h> 00015 #include <vrvVrl/DtTacticalGraphicVisualizerSet.h> 00016 #include <vrvCore/DtUniqueID.h> 00017 #include <vrvUtil/DtSignalConnectionManager.h> 00018 #include <vrvVrl/DtVrlinkElement.h> 00019 #include <vrvVrl/DtSharedSimulationSettings.h> 00020 00021 #include <boost/unordered_map.hpp> 00022 00023 namespace makVrv 00024 { 00025 00026 namespace DT_PROTOCOL_NAMESPACE 00027 { 00028 00029 class DtVrlinkConnection; 00030 class DtTacticalGraphicVisualizerSet; 00031 class DtVrlinkTacticalGraphicStateListener; 00032 00036 class DL_DLL_IGCONVRLINK DtTacticalGraphicElement : public DtVrlinkElement 00037 { 00038 public: 00039 00040 typedef boost::unordered_map<int, DtTacticalGraphicVisualizerSet*> 00041 ModelSetMap; 00042 00044 DtTacticalGraphicElement( DtVrlinkConnection& conn, 00045 DtVrlinkTacticalGraphicStateListener& ); 00046 00048 virtual ~DtTacticalGraphicElement(); 00049 00050 virtual void visualize(const DtSharedModelSetSettings::ModelSetVisualizedMap& sets); 00051 00054 virtual void setModelSetEnabled( int modelSet, bool b ); 00055 00057 virtual const ModelSetMap& modelSetMap() const 00058 { 00059 return myTacticalGraphicModelSetMap; 00060 } 00061 00063 inline DtVrlinkTacticalGraphicStateListener& listener() 00064 { 00065 return myListener; 00066 } 00067 00068 virtual DtElementEntry::ObjectType elementType() const 00069 { 00070 return myObjectType; 00071 } 00072 00073 template <typename VisualizerClass> 00074 void findVisualizers( std::vector<VisualizerClass*>& visualizers ) 00075 { 00076 ModelSetMap::iterator i = myTacticalGraphicModelSetMap.begin(); 00077 ModelSetMap::iterator e = myTacticalGraphicModelSetMap.end(); 00078 for ( ; i != e; ++i ) 00079 { 00080 i->second->findVisualizers(visualizers); 00081 } 00082 } 00083 00086 virtual void setHatLinesEnabled( bool enabled ); 00087 00090 virtual void setHatLineMode( 00091 DtSharedTacticalGraphicsDisplaySettings::HeightAboveTerrainMode mode ); 00092 00094 virtual void setVisible( bool vis ); 00095 00096 protected: 00097 00099 void setKindAndCategory( int kind, int category ); 00100 00102 void reportKindAndCategory(); 00103 00104 //Get the current definitions, in this class this function does nothing. 00105 virtual void getDefinitions( std::vector<DtUnicode>& definitions ); 00106 00107 virtual void slot_controlPointsChanged( 00108 const DtEnvironmentalStateListener::ControlPointsList& controlPoints ); 00109 00110 virtual void slot_tacticalGraphicsEnabled( bool enabled ); 00111 00112 virtual DtUniqueID addVertexElement(); 00113 virtual void removeVertexElement(int iIndex); 00114 00115 protected: 00116 00117 ModelSetMap myTacticalGraphicModelSetMap; 00118 DtVrlinkConnection& myVrlinkConnection; 00119 DtVrlinkTacticalGraphicStateListener& myListener; 00120 DtSignalConnectionManager myConnections; 00121 00122 DtElementEntry::ObjectType myObjectType; 00123 std::vector<DtUniqueID> myVertexElementIDs; 00124 std::pair<int,int> myKindCat; 00125 00126 }; 00127 00128 } 00129 }