VR-Forces 4.0.4 Class Documentation
include/vrvVrl/DtTacticalGraphicElement.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 <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 }

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)