VR-Forces 4.0.4 Class Documentation
include/vrvCoreQt/DtObserverSettingsLogic.h
Go to the documentation of this file.
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 }

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)