![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00009 00010 #pragma once 00011 00012 #include <vrvCore/vrvCore.h> 00013 #include <vrvCore/DtVisualizerCreationSettings.h> 00014 00015 #include <vrvUtil/DtVirtualBaseClass.h> 00016 #include <vrvUtil/event_signal.h> 00017 #include <vrvUtil/DtSignalConnectionManager.h> 00018 00019 #include <boost/unordered_map.hpp> 00020 00021 #include <set> 00022 00023 namespace makVrv 00024 { 00025 class DtBaseConnection; 00026 class DtDe; 00027 class DtObserver; 00028 class DtInputDriver; 00029 00034 class DT_DLL_VRVCORE DtVisualizerCreationSettingsManager : 00035 public DtVirtualBaseClass 00036 { 00037 public: 00038 00040 friend class DtVisualizerCreationSettingsManagerCreator; 00041 00044 static DtVisualizerCreationSettingsManager& instance(DtDe& de); 00045 00047 virtual ~DtVisualizerCreationSettingsManager(); 00048 00052 void setCreationStrategy(int, bool); 00053 00057 virtual void createAndRegisterVisualizerCreationSettings( 00058 DtBaseConnection& connection ); 00059 00060 protected: 00061 00065 typedef boost::unordered_map<int, bool> 00066 VisualTypeVisualizerCreationStrategyMap; 00067 00069 DtVisualizerCreationSettingsManager(DtDe& de); 00070 00073 virtual void slot_observerModeSettingChanged( int observerMode, 00074 int setting ); 00075 00078 virtual void slot_observerModeModelSetChanged( int observerMode ); 00079 00082 virtual void slot_observerModeChanged( DtObserver* observer, 00083 int newMode ); 00084 00087 virtual void slot_observerCreated( DtInputDriver*, DtObserver* observer ); 00088 00091 virtual void slot_observerToBeDestroyed( DtInputDriver*, 00092 DtObserver* observer ); 00093 00095 virtual void initializeCreationSettings( 00096 DtVisualizerCreationSettings* settings) const; 00097 00099 virtual void connectToObserver( DtObserver* observer ); 00100 00102 virtual void disconnectFromObserver( DtObserver* observer ); 00103 00106 virtual void updateAllCreationSettings() const; 00107 00108 private: 00109 // Copy constructor not implemented 00110 DtVisualizerCreationSettingsManager( 00111 const DtVisualizerCreationSettingsManager&); 00112 00113 // Assignment operator not implemented 00114 DtVisualizerCreationSettingsManager& operator=( 00115 const DtVisualizerCreationSettingsManager&); 00116 00117 protected: 00118 00119 DtDe& myDe; 00120 VisualTypeVisualizerCreationStrategyMap 00121 myVisualTypeVisualizerCreationStrategyMap; 00122 00123 DtSignalConnectionManager myConnections; 00124 std::set<DtObserver*> myObserverSet; 00125 }; 00126 00129 class DT_DLL_VRVCORE DtVisualizerCreationSettingsManagerCreator 00130 : public DtVirtualBaseClass 00131 { 00132 00133 public: 00136 static DtVisualizerCreationSettingsManagerCreator& instance(DtDe& de); 00137 00139 static void registerInstance(DtDe& de, 00140 DtVisualizerCreationSettingsManagerCreator* anInstance); 00141 00143 virtual DtVisualizerCreationSettingsManager* create(DtDe& de); 00144 }; 00145 }