VR-Forces 4.0.4 Class Documentation
include/vrvVrl/DtEntityElementProcessor.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtEntityElementProcessor.h,v $ $Revision: 1.17 $ $State: Exp $
00007 ******************************************************************************/
00008 
00012 
00013 #pragma once
00014 
00015 #include <vrvVrl/vrvVrl.h>
00016 #include <vrvCore/DtVisualizerCreationSettings.h>
00017 #include <vrvUtil/DtSignalConnectionManager.h>
00018 #include <boost/unordered_map.hpp>
00019 #include <vl/globalObjDes.h>
00020 
00021 namespace makVrv
00022 {
00023    class DtEntityVisualizerSet;
00024    class DtAggregateEchelonManager;
00025    class DtEntityFilter;
00026 
00027    namespace DT_PROTOCOL_NAMESPACE
00028    {
00029       class DtEntityElement;
00030       class DtEntityExistenceListener;
00031       class DtVrlinkConnection;
00032       class DtVrlinkEntityStateListener;
00033 
00039       class DL_DLL_IGCONVRLINK DtEntityElementProcessor : public DtVirtualBaseClass
00040       {
00041       public:
00043          DtEntityElementProcessor(DtVrlinkConnection& conn);
00044 
00047          static void registerInstance(DtVrlinkConnection& conn, 
00048             DtEntityElementProcessor* instance);
00049 
00051          static DtEntityElementProcessor* findInstance(DtVrlinkConnection& conn);
00052 
00054          virtual ~DtEntityElementProcessor();
00055 
00057          void toggleLabelPinnedState(const DtSelectionManager::IdSet& ids);
00058 
00060          void changeEntitySelection(const DtSelectionManager::IdSet& selected,
00061             const DtSelectionManager::IdSet& deselected);
00062 
00064          DtEntityVisualizerSet* findVisualizer(int modelSet, const DtGlobalObjectDesignator& id);
00065 
00068          std::vector<DtEntityVisualizerSet*> findVisualizers( const DtGlobalObjectDesignator& id);
00069 
00072          DtEntityVisualizerSet* findVisualizerSet(
00073             const DtGlobalObjectDesignator& id, unsigned int modelSet);
00074 
00076          DtVrlinkEntityStateListener* findListener( const DtElementID& elementId );
00077          
00079          DtEntityElement* findElement( const DtElementID& elementId );
00080          
00082          DtEntityElement* findElement( const DtGlobalObjectDesignator& id );
00083 
00085          DtEntityVisualizerSet* findVisualizer( const DtUniqueID& id);
00086 
00089          void setVisualizerCreationProcessingTime(double);
00090          double visualizerCreationProcessingTime() const;
00091 
00093          const DtVisualizerCreationSettings::VisualTypeVisualizerCreationMap& 
00094             visualTypeVisualizerCreationMap() const;
00095 
00096       public:
00097          boost::signal<void (DtVrlinkEntityStateListener&, DtEntityElement*)> signal_elementCreated;
00098          boost::signal<void (DtVrlinkEntityStateListener&, DtEntityElement*)> signal_elementAboutToBeDestroyed;
00099 
00100       protected:
00101 
00104          virtual void modelSetVisualized(int modelSet, bool enabled);
00105 
00107          virtual void handleElementAttributeChanged(
00108             DtEntityElement& entity, const DtElementAttribute* attr);
00109          
00111          virtual void onEntityDiscovered(DtVrlinkEntityStateListener& listener);
00112 
00114          virtual void onEntityToBeDestroyed(DtVrlinkEntityStateListener& listener);
00115 
00117          virtual bool onFilterEntity(const std::string& entityId);
00118          
00120          virtual void elementAttributeChangeRequested( DtUniqueID id, 
00121             DtUniqueID parentID, DtBoost::shared_ptr<const DtElementAttribute> atr );
00122 
00124          virtual void slot_completeDiscovery();
00125 
00126          virtual void slot_addEntityFilter(DtEntityFilter* filter);
00127 
00130          virtual void slot_visualizerCreationEnabled( int modelSet, int visualType );
00131 
00134          virtual void slot_visualizerCreationDisabled( int modelSet, int visualType );
00135 
00138          virtual void createElement(DtVrlinkEntityStateListener&);
00139 
00140       protected:
00141 
00142          typedef boost::unordered_map<DtUniqueID, DtEntityElement*>
00143             EntityElementVisualizerMap;
00144          typedef boost::unordered_map<std::string, DtEntityElement*> 
00145             GlobalIdToEntityElementVisualizerMap;
00146          typedef boost::unordered_map<DtUniqueID, DtVrlinkEntityStateListener*> 
00147             ToBeVisualizedMap;
00148          typedef std::vector<DtEntityFilter*> EntityFilterList;
00149 
00150          DtVrlinkConnection& myConnection;
00151          DtSignalConnectionManager myConnections;
00152          EntityElementVisualizerMap myEntityElementVisualizers;
00153          GlobalIdToEntityElementVisualizerMap myGlobalIdToElementVisualizerMap;
00154          DtAggregateEchelonManager& myEchelonHierarchy;
00155          ToBeVisualizedMap myToBeVisualized;
00156          double myVisualizerCreationProcessingTime;
00157          EntityFilterList myEntityFilterList;
00158          DtVisualizerCreationSettings* myVisualTypeVisualizerSettings;
00159       };    
00160    }
00161 }

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)