VR-Forces 4.0.4 Class Documentation
include/vrvVrl/DtRemoteGraphicsProcessor.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtVrlinkRemoteGraphicVisualizer.h,v $ $Revision: 1.12 $ $State: Exp $
00007 ******************************************************************************/
00008 
00012 
00013 #pragma once
00014 
00015 #include <vrvVrl/vrvVrl.h>
00016 
00017 #include <vrvUtil/DtVirtualBaseClass.h>
00018 #include <vrvVrl/DtRemoteGraphicVisualizerSet.h>
00019 #include <map>
00020 #include <boost/unordered_map.hpp>
00021 #include <boost/function.hpp>
00022 
00023 #include <vl/dataInter.h>
00024 
00025 namespace vrvControlToolkit
00026 {
00027    struct DtRemoteGraphicSet_v1;
00028 }
00029 
00030 namespace makVrv
00031 {
00032    class DtRemoteGraphicSetControllerAgent;   
00033 
00034    namespace DT_PROTOCOL_NAMESPACE
00035    {
00036       class DtVrlinkRemoteGraphicStateListener;
00037       class DtRemoteGraphicVisualizerSet;
00038       class DtRemoteGraphicElement;
00039 
00043       class DL_DLL_IGCONVRLINK DtRemoteGraphicsProcessor 
00044          : public DtVirtualBaseClass
00045       {
00046       public:
00047 
00049          DtRemoteGraphicsProcessor(DtVrlinkConnection& connection);
00050 
00052          static void registerInstance(DtVrlinkConnection& connection, 
00053             DtRemoteGraphicsProcessor* instance);
00054 
00056          static DtRemoteGraphicsProcessor* findInstance(DtVrlinkConnection& connection);
00057 
00059          virtual ~DtRemoteGraphicsProcessor();
00060 
00062          void remoteGraphicsSelectionChanged(const DtSelectionManager::IdSet& selected,
00063             const DtSelectionManager::IdSet& deselected); 
00064 
00066          std::vector<DtRemoteGraphicVisualizerSet*> findVisualizers(
00067             const DtGlobalObjectDesignator& id);
00068 
00070          inline DtVrlinkRemoteGraphicStateListener* findListener( DtUniqueID id);
00071 
00073          void processInteraction(const DtDataInteraction& dataInter);  
00074 
00078          virtual void setRemoteGraphicSet(const std::string& name, bool onOff);
00079 
00081          virtual bool remoteGraphicSetStatus(
00082             const std::vector<std::string>& names) const;
00083 
00084          virtual void addRemoteGraphicSet(const std::string& name);
00085 
00086          virtual void removeRemoteGraphicSet(const std::string& name);
00087 
00088          virtual void addAttributeGroupTemplate(const std::string& groupName,
00089             const std::string& templateName);
00090 
00091          virtual void removeAttributeGroupTemplate(const std::string& groupName,
00092             const std::string& templateName);
00093 
00094          virtual void setAttributeGroupTemplateStatus(const std::string& groupName,
00095             const std::string& templateName, bool onOff);
00096 
00097          boost::signal<void ()> signal_layersChanged;
00098 
00099       protected:
00100          
00102          void onEnvironmentalDiscovered(DtVrlinkEnvironmentalStateListenerInterface& listener);
00103 
00105          void onEnvironmentalToBeDestroyed(DtVrlinkEnvironmentalStateListenerInterface& listener);
00106          
00107          virtual void getLayerNames(const std::string& name, std::vector<std::string>& names) const;
00108 
00109          virtual void getGroupAndTemplateNames(const std::string& name,
00110             std::string& groupName, std::string& templateName);
00111 
00113          //View control functions. All functions are registered by default in
00114          //the CTOR.
00115          void processRemoteGraphicSetControl(const vrvControlToolkit::DtRemoteGraphicSet_v1* command);
00117 
00118       protected:
00119 
00120          typedef boost::unordered_map<DtUniqueID, DtVrlinkRemoteGraphicStateListener*> 
00121            RemoteGraphicElementIdToListenerMap;
00122            
00123          typedef boost::unordered_map<DtVrlinkRemoteGraphicStateListener*, DtRemoteGraphicElement*> 
00124             RemoteGraphicElementMap;
00125             
00126          typedef boost::unordered_map<std::string, DtRemoteGraphicElement*> 
00127             GlobalIdToRemoteGraphicElementMap;
00128 
00129          typedef std::map<std::string, bool> GraphicSetStatusMap;
00130             
00131          DtVrlinkConnection& myConnection;
00132          DtSignalConnectionManager myConnections;
00133          RemoteGraphicElementIdToListenerMap myElementIdToListenerMap;
00134          RemoteGraphicElementMap myElementVisualizers;      
00135          GlobalIdToRemoteGraphicElementMap myGlobalIdToElementVisualizerMap;
00136          GraphicSetStatusMap myRemoteGraphicSetStatus;
00137          DtRemoteGraphicSetControllerAgent* myRemoteGraphicSetAgent;
00138       };
00139 
00140    }
00141 }

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)