VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtTacticalGraphicOverlayManager.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/vrvCore.h>
00013 #include <string>
00014 #include <map>
00015 #include <list>
00016 #include <vector>
00017 #include <boost/signal.hpp>
00018 #include <vrvUtil/DtSignalConnectionManager.h>
00019 #include <vrvUtil/DtVirtualBaseClass.h>
00020 #include <vrvCore/DtElementData.h>
00021 #include <vrvCore/DtOverlayFilter.h>
00022 
00023 namespace makVrv
00024 {
00025    class DtDe;
00026    class DtDriverManager;
00027    class DtTacticalGraphicOverlay;
00028  
00032    class DT_DLL_VRVCORE DtTacticalGraphicOverlayManager : public DtVirtualBaseClass
00033    {
00034 
00038       class DT_DLL_VRVCORE DtTacticalGraphicOverlayMember
00039       {
00040 
00041       public:
00042 
00044          DtTacticalGraphicOverlayMember();
00045 
00047          DtTacticalGraphicOverlayMember(DtUniqueID id, std::string name, std::string overlay="");
00048 
00050          virtual ~DtTacticalGraphicOverlayMember();
00051 
00053          virtual DtUniqueID id() const;
00054          virtual void setId(const DtUniqueID& id);
00055 
00057          virtual const std::string& name() const;
00058          virtual void setName(const std::string& name);
00059 
00061          virtual const std::string& overlay() const;
00062          virtual void setOverlay(const std::string& name);
00063 
00065          virtual bool visible() const;
00066          virtual void setVisible(bool flag);
00067 
00069          virtual bool filtered() const;
00070          virtual void setFiltered(bool flag);
00071          
00072       protected:
00073 
00074          DtUniqueID myObjectID;
00075          std::string myObjectName;
00076          std::string myOverlayName;
00077          bool myVisible;
00078          bool myFiltered;
00079       };
00080 
00081    public:
00082 
00083       typedef std::list<DtTacticalGraphicOverlay*> DtTacticalGraphicOverlayList;
00084       typedef std::vector<DtElementEntry::ElementType> TacticalGraphicTypeVector;
00085 
00086       static DtTacticalGraphicOverlayManager& instance(DtDe& de);
00087 
00088       static void registerInstance(DtDe& de, DtTacticalGraphicOverlayManager* mgr);
00089 
00091       virtual ~DtTacticalGraphicOverlayManager();
00092 
00095       virtual void addTacticalGraphic(const DtUniqueID& id, const std::string& name);
00096 
00099       virtual const std::string* tacticalGraphicName(const DtUniqueID& id) const;
00100       
00103       virtual void removeTacticalGraphic(const DtUniqueID& id);
00104 
00107       virtual void renameTacticalGraphic(const DtUniqueID& id, const std::string& newName);
00108 
00111       virtual void renameTacticalGraphicOverlay(const DtUniqueID& id, const std::string& newName);
00112 
00114       virtual void setTacticalGraphicVisible(const DtUniqueID& id, bool flag);
00115 
00117       virtual std::string newOverlay();
00118 
00121       virtual void addOverlay(const std::string name);
00122 
00125       virtual void deleteOverlay(const std::string& name);
00126 
00129       virtual void renameOverlay(const std::string& oldName, const std::string& newName);
00130 
00132       virtual DtTacticalGraphicOverlay* findOverlay(const std::string& name) const;
00133 
00135       virtual DtTacticalGraphicOverlayList overlays() const;
00136 
00138       virtual bool overlayVisible(const std::string& overlayName) const;
00139       virtual void setOverlayVisible(const std::string& overlayName, bool flag);
00140 
00142       virtual bool overlayFiltered(const std::string& overlayName) const;
00143       virtual void setOverlayFiltered(const std::string& overlayName, bool flag);
00144 
00147       virtual bool overlayLocked(const std::string& overlayName) const;
00148       virtual void setOverlayLocked(const std::string& overlayName, bool flag);
00149 
00151       virtual const DtTacticalGraphicOverlay* currentOverlay() const;      
00152       virtual void setCurrentOverlay(const std::string& name);
00153 
00155       virtual void setTacticalGraphicTypes(const TacticalGraphicTypeVector&);
00156 
00158       virtual const TacticalGraphicTypeVector& tacticalGraphicTypes() const;
00159 
00161       virtual bool isTacticalGraphic(const DtUniqueID& id) const;
00162 
00163       boost::signal<void (const DtUniqueID&, const std::string&)> signal_tacticalGraphicAdded;
00164       boost::signal<void (const DtUniqueID&, const std::string&)> signal_tacticalGraphicRenamed;
00165       boost::signal<void (const DtUniqueID&, const std::string&)> signal_tacticalGraphicOverlayRenamed;
00166       boost::signal<void (const DtUniqueID&)> signal_tacticalGraphicRemoved;
00167 
00168       boost::signal<void (const std::string&)> signal_overlayAdded;
00169       boost::signal<void (const std::string&)> signal_overlayDeleted;      
00170       boost::signal<void (const std::string&, bool)> signal_overlayFiltered;
00171       boost::signal<void (const std::string&, bool)> signal_overlayVisibilityChanged;
00172       boost::signal<void (const std::string&, const std::string&)> signal_overlayRenamed;
00173       boost::signal<void (const std::string&)> signal_currentOverlayChanged;
00174 
00175    protected:
00176 
00178       virtual void slot_onElementsAdded( const DtElementData::ElementList& elements );
00179 
00181       virtual void slot_onElementAttributesChanged( 
00182          const DtElementData::EntryAttributesList& attributes );
00183 
00185       virtual void slot_onElementsRemoved( const DtElementData::UniqueIdList& elementIds);
00186 
00188       virtual void addFilter(const std::string& name, DtOverlayFilter* filter, bool apply=false);
00189 
00190    protected:
00192       DtTacticalGraphicOverlayManager(DtDe& de);
00193 
00194    protected:
00195 
00196       typedef std::map<DtUniqueID, DtTacticalGraphicOverlayMember> DtTacticalGraphicOverlayObjectMap;
00197       typedef std::list<DtOverlayFilter*> DtTacticalGraphicOverlayFilterList;
00198 
00199       DtDe& myDe;
00200       DtTacticalGraphicOverlayList myOverlays;
00201       DtTacticalGraphicOverlayFilterList myFilters;
00202       DtTacticalGraphicOverlayObjectMap myTacticalGraphicNames;
00203       DtTacticalGraphicOverlay* myCurrentOverlay;
00204       
00205       DtSignalConnectionManager mySignals;
00206 
00207       TacticalGraphicTypeVector  myTacticalGraphicTypes;
00208    };
00209 }
00210 

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)