![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtObserverSettingsLogic.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvCoreQt/vrvCoreQt.h> 00015 #include <vrvCore/DtObserverObject.h> 00016 00017 namespace makVrv 00018 { 00019 class DtDe; 00020 class DtObserverSettingsInterface; 00021 class DtPersistenceControlsInterface; 00022 class DtSettingsBackup; 00023 class DtInputDriver; 00024 class DtObserver; 00025 00028 class DT_DLL_VRVCOREQT DtObserverSettingsLogic 00029 { 00030 public: 00031 00033 DtObserverSettingsLogic(DtDe& de, DtPersistenceControlsInterface* persistIf, 00034 DtObserverSettingsInterface* observerModeEditorIf ); 00035 00037 ~DtObserverSettingsLogic(); 00038 00040 virtual void setSelectedObserver( const std::string& observerName ); 00041 00043 virtual void setSelectedObserverMode( const std::string& ObserverModeName ); 00044 00045 virtual void modelSetChanged( int modelSet ); 00046 virtual void keyMapChanged( const std::string& keyMap ); 00047 virtual void projectionChanged( const std::string& projection ); 00048 virtual void settingChanged( int settingKey, bool value ); 00049 00051 virtual void setModelScaleFactor( int factor ); 00052 00054 virtual void setModelScaleType( DtObserverObject::ScaleType type ); 00055 00057 virtual void setMaxModelScaleFactor( double maxScaleFactor ); 00058 00060 virtual void setLinearSpeedGain( int gain ); 00061 00063 virtual void setRotationSpeedGain( int gain ); 00064 00066 virtual void setOrbitSpeedGain( int gain ); 00067 00068 virtual void createObserver( const std::string& ObserverName ); 00069 virtual void deleteObserver( const std::string& ObserverName ); 00070 virtual void renameObserver( const std::string& oldName, const std::string& newName ); 00071 00072 virtual void createObserverMode( const std::string& ObserverModeName ); 00073 virtual void deleteObserverMode( const std::string& ObserverModeName ); 00074 virtual void renameObserverMode( const std::string& oldName, const std::string& newName ); 00075 00076 protected: 00077 00078 virtual void observerModesRestored(const DtSettingsBackup*); 00079 00081 void setupValues(); 00082 00083 // called by setupValues, and also when projection or model set changes 00084 // the update the settings pane 00085 void setupSettings(); 00086 00087 void setupSpeedSliders(); 00088 void setupModelScaleFactorSlider(); 00089 void setupModelScaleTypeSelector(); 00090 void setupMaxModelScaleFactorSpinBox(); 00091 00092 void setupObserverList(); 00093 void setupObserverModeList(); 00094 00095 std::string projectionToString( bool is2D ); 00096 bool projectionFromString( const std::string& is2D ); 00097 00099 virtual void onExport(); 00100 00102 virtual void onExportSelected(); 00103 00106 virtual void onExportFilenameChosen(const std::string&, bool selected); 00107 00110 virtual void onImport(); 00111 00114 virtual void onImportFilenameChosen(const std::string&); 00115 00118 virtual void onMerge(); 00119 00122 virtual void onMergeFilenameChosen( const std::string& ); 00123 00124 virtual void updateDeleteEnabledState( const std::string& channelKeyToIgnore = "" ); 00125 00126 virtual void setCurrentObserverSelected(); 00127 00128 protected: 00129 void slot_observerModeNameChanged( int modeId ); 00130 00131 void slot_observerModeModelSetChanged( int modeId ); 00132 void slot_observerModeKeyMapChanged( int modeId ); 00133 void slot_observerModeSettingChanged( int modeId, int settingId ); 00134 void slot_observerModeIs2DChanged( int modeId ); 00135 void slot_observerModeLinearScaledSpeedGainChanged( int modeId ); 00136 void slot_observerModeLinearUnscaledSpeedGainChanged( int modeId ); 00137 void slot_observerModeRotationSpeedGainChanged( int modeId ); 00138 void slot_observerModeOrbitSpeedGainChanged( int modeId ); 00139 void slot_observerModeGainPrecisionChanged( int modeId ); 00140 void slot_observerModeModelScaleFactorChanged( int modeId ); 00141 void slot_observerModeModelScaleTypeChanged( int modeId ); 00142 void slot_observerModeMaxModelScaleFactorChanged( int modeId ); 00143 00146 void slot_channelConfigurationModified(); 00147 00150 void slot_channelToBeDestroyed(const std::string& displayName, 00151 const std::string& windowName, const std::string& channelName ); 00152 00155 void slot_channelConfigurationAdded(); 00156 00158 void slot_observerCreated( DtInputDriver* inputDriver, 00159 DtObserver* observer ); 00160 00162 void slot_observerAboutToBeDestroyed( DtInputDriver* inputDriver, 00163 DtObserver* observer ); 00164 00166 void slot_observerModeChanged( DtObserver* observer, int newObserverMode ); 00167 00168 protected: 00169 DtDe& myDe; 00170 DtObserverSettingsInterface* myEditorInterface; 00171 DtPersistenceControlsInterface* myPersistenceInterface; 00172 DtObserver* mySelectedObserver; 00173 // We need this so we don't make an observer that's being deleted the 00174 // new selected observer 00175 DtObserver* myObserverBeingDeleted; 00176 }; 00177 }