VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtObserverModeManager.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2012 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
15 #include <vrvCore/DtObserverMode.h>
16 #include <string>
17 #include <map>
18 
19 namespace makVrv
20 {
21  class DtObserverModeManager;
22 
24  : public DtRecordSettingsBackup< DtBaseSettingsManager<makArchives::DtObserverModesRecord>,
25  makArchives::DtObserverModesRecord >
26  {
27  public:
28 
30  const std::string& name, const std::string& displayName );
31 
33 
34  virtual void restoreSelected( const DtSettingsBackup* );
35 
36  virtual int currentSelectedObserverMode() const;
37  virtual void setCurrentSelectedObserverMode( int modeKey );
38 
39  protected:
41  };
42 
43  class DtDe;
45 
51  : public DtBaseSettingsManager<makArchives::DtObserverModesRecord>
52  {
53  public:
54 
56  typedef std::map<int, DtObserverMode> ObserverModes;
57 
58  public:
59 
61  static DtObserverModeManager& instance( DtDe& de );
62 
64  virtual ~DtObserverModeManager();
65 
68  const ObserverModes& observerModes() const;
69 
71  int numberOfObserverModes() const;
72 
76  virtual int createObserverMode( const std::string& stringKey,
77  const std::string& displayName );
78 
81  virtual int cloneObserverMode( int modeKeyOrig, const std::string& newStringKey,
82  const std::string& newDisplayName );
83 
87  virtual int createModeKey( const std::string& stringKey );
88 
90  virtual void removeObserverMode( int mode );
91 
94  int lookupObserverModeKey( std::string stringKey ) const;
95 
97  const std::string* findObserverModeStringKey( int modeKey ) const;
98 
100  bool getObserverModeById( int modeKey, DtObserverMode& result ) const;
101 
106  bool getObserverModeByName( const std::string& observerModeName,
107  DtObserverMode& result );
108 
110  std::string name( int modeKey ) const;
111 
113  void setName( int modeKey, const std::string& name );
114 
116  int modelSet( int modeKey ) const;
117 
120  void setModelSet( int modeKey, int modelSet );
121 
123  std::string keyMap( int modeKey ) const;
124 
127  void setKeyMap( int modeKey, const std::string& keyMap );
128 
130  void setIs2D( int modeKey, bool trueOrFalse );
131 
133  bool is2D( int modeKey ) const;
134 
136  void setSensor(int modeKey, const std::string& sensorName);
137 
139  std::string sensor( int modeKey ) const;
140 
142  void setGainPrecision( int modeKey, int precision );
143 
145  int gainPrecision( int modeKey ) const;
146 
148  void setModelScaleFactor( int modeKey, double modelScaleFactor );
149 
151  double modelScaleFactor( int modeKey ) const;
152 
154  void setModelScaleType( int modeKey, DtObserverObject::ScaleType modelScaleType );
155 
157  DtObserverObject::ScaleType modelScaleType( int modeKey ) const;
158 
160  void setMaxModelScaleFactor( int modeKey, double maxModelScaleFactor );
161 
163  double maxModelScaleFactor( int modeKey ) const;
164 
166  void setMaxLinearModelScaleFactor( int modeKey, double maxLinearModelScaleFactor );
167 
169  double maxLinearModelScaleFactor( int modeKey ) const;
170 
172  void setOrbitSpeedGain( int modeKey, int gain );
173 
175  int orbitSpeedGain( int modeKey ) const;
176 
178  void setLinearScaledSpeedGain( int modeKey, int gain );
179 
181  int linearScaledSpeedGain( int modeKey ) const;
182 
184  void setLinearUnscaledSpeedGain( int modeKey, int gain );
185 
187  int linearUnscaledSpeedGain( int modeKey ) const;
188 
190  void setRotationSpeedGain( int modeKey, int gain );
191 
193  int rotationSpeedGain( int modeKey ) const;
194 
196 
197  void setSpeedScalingMode( int modeKey,
199  DtObserverObject::SpeedScalingMode speedScalingMode( int modeKey ) const;
201 
203 
204  void setSpeedScalingMslModeOffset( int modeKey, double offset );
205  double speedScalingMslModeOffset( int modeKey ) const;
207 
209 
210  void setCameraShakeEnabled( int modeKey, bool enabled );
211  bool cameraShakeEnabled( int modeKey ) const;
213 
215 
216  void setCameraShakeIntensity( int modeKey, double intensity );
217  double cameraShakeIntensity( int modeKey ) const;
219 
224  void setObserverSetting( int modeKey, int settingKey, bool val );
225 
230  bool observerSetting( int modeKey, int settingKey ) const;
231 
234 
236  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings );
237 
239  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings, bool merge );
240 
244 
246  virtual void importSettings( const std::string& filepath, bool merge );
247 
249  virtual void exportObserverMode( int modeKey,
250  const std::string& filepath ) const;
251 
253  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record );
254 
259  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record,
260  bool merge );
261 
263  virtual void setObserverModeFromRecord( const makArchives::DtObserverModesRecord& record,
264  int modeKey );
265 
267  virtual void getRecord( makArchives::DtObserverModesRecord& record ) const;
268 
271  virtual DtObserverModesSettingsBackup* observerModeSettingsBackup();
273 
274  public:
275 
277  boost::signal<void (int)> observerModeKeyMapChanged;
278 
280  boost::signal<void (int)> observerModeModelSetChanged;
281 
282  // \brief signal that the indicated observer mode's dimension changed
283  boost::signal<void (int)> observerModeIs2DChanged;
284 
286  boost::signal<void (int)> observerModeNameChanged;
287 
289  boost::signal<void (int)> observerModeSensorChanged;
290 
292  boost::signal<void (int, int,bool)> observerModeSettingChanged;
293 
295  boost::signal<void (int)> observerModeGainPrecisionChanged;
296 
298  boost::signal<void (int)> observerModeOrbitSpeedGainChanged;
299 
301  boost::signal<void (int)> observerModeRotationSpeedGainChanged;
302 
304  boost::signal<void (int)> observerModeLinearScaledSpeedGainChanged;
305 
308 
310  boost::signal<void (int)> observerModeModelScaleFactorChanged;
311 
313  boost::signal<void (int)> observerModeModelScaleTypeChanged;
314 
316  boost::signal<void (int)> observerModeMaxModelScaleFactorChanged;
317 
320 
323  boost::signal<void (int)> observerModeSpeedScalingModeChanged;
324 
328 
330  boost::signal<void (int)> observerModeCameraShakeEnabledChanged;
331 
333  boost::signal<void (int)> observerModeCameraShakeIntensityChanged;
334 
336  boost::signal<void (int)> observerModeAdded;
337 
339  boost::signal<void (int)> observerModeToBeRemoved;
340 
341  protected:
342 
344  template <typename ManagerClass>
345  friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
346 
348  template <typename ManagerClass>
349  friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
350 
353 
356 
359  DtObserverMode* getObserverModePtr( int modeKey );
360 
364  const DtObserverMode* getObserverModeConstPtr( int modeKey ) const;
365 
368  virtual void addObserverMode( const DtObserverMode& mode );
369 
371  virtual void clear();
372 
373  virtual void initializeBackup();
374 
375  protected:
376 
378  typedef std::map<std::string,int> ObserverModesMap;
379 
381 
382  // The map of visual modes (from id to DtObserverMode)
384 
385  // map from name to id
387 
388  };
389 
390 
394  {
395  public:
396 
399 
401  virtual ~DtObserverModeManagerCreator();
402 
405  static DtObserverModeManagerCreator& instance( DtDe& de );
406 
408  virtual DtObserverModeManager* create( DtDe& );
409 
410  };
411 
412 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)