VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtObserverModeManager.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2017 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
15 
17 #include <vrvCore/DtObserverMode.h>
18 
19 #include <string>
20 #include <map>
21 
22 namespace makVrv
23 {
24  class DtObserverModeManager;
25 
27  : public DtRecordSettingsBackup< DtBaseSettingsManager<makArchives::DtObserverModesRecord>,
28  makArchives::DtObserverModesRecord >
29  {
30  public:
31 
33  const std::string& name, const std::string& displayName );
34 
36 
37  virtual void restoreSelected( const DtSettingsBackup* );
38 
39  virtual int currentSelectedObserverMode() const;
40  virtual void setCurrentSelectedObserverMode( int modeKey );
41 
42  protected:
44  };
45 
46  class DtDe;
48 
54  : public DtBaseSettingsManager<makArchives::DtObserverModesRecord>
55  {
56  public:
57 
59  typedef std::map<int, DtObserverMode> ObserverModes;
60 
61  public:
62 
64  static DtObserverModeManager& instance( DtDe& de );
65 
67  virtual ~DtObserverModeManager();
68 
71  const ObserverModes& observerModes() const;
72 
74  int numberOfObserverModes() const;
75 
79  virtual int createObserverMode( const std::string& stringKey,
80  const std::string& displayName );
81 
84  virtual int cloneObserverMode( int modeKeyOrig, const std::string& newStringKey,
85  const std::string& newDisplayName );
86 
90  virtual int createModeKey( const std::string& stringKey );
91 
93  virtual void removeObserverMode( int mode );
94 
97  int lookupObserverModeKey( const std::string& stringKey ) const;
98 
100  const std::string* findObserverModeStringKey( int modeKey ) const;
101 
103  bool getObserverModeById( int modeKey, DtObserverMode& result ) const;
104 
109  bool getObserverModeByName( const std::string& observerModeName,
110  DtObserverMode& result );
111 
113  std::string name( int modeKey ) const;
114 
116  void setName( int modeKey, const std::string& name );
117 
119  int modelSet( int modeKey ) const;
120 
123  void setModelSet( int modeKey, int modelSet );
124 
126  std::string keyMap( int modeKey ) const;
127 
130  void setKeyMap( int modeKey, const std::string& keyMap );
131 
133  void setIs2D( int modeKey, bool trueOrFalse );
134 
136  bool is2D( int modeKey ) const;
137 
139  void setSensor(int modeKey, const std::string& sensorName);
140 
142  std::string sensor( int modeKey ) const;
143 
145  void setGainPrecision( int modeKey, int precision );
146 
148  int gainPrecision( int modeKey ) const;
149 
151  void setModelScaleFactor( int modeKey, double modelScaleFactor );
152 
154  double modelScaleFactor( int modeKey ) const;
155 
157  void setModelScaleType( int modeKey, DtObserverObject::ScaleType modelScaleType );
158 
160  DtObserverObject::ScaleType modelScaleType( int modeKey ) const;
161 
163  void setMaxModelScaleFactor( int modeKey, double maxModelScaleFactor );
164 
166  double maxModelScaleFactor( int modeKey ) const;
167 
169  void setMaxLinearModelScaleFactor( int modeKey, double maxLinearModelScaleFactor );
170 
172  double maxLinearModelScaleFactor( int modeKey ) const;
173 
175  void setOrbitSpeedGain( int modeKey, int gain );
176 
178  int orbitSpeedGain( int modeKey ) const;
179 
181  void setLinearScaledSpeedGain( int modeKey, int gain );
182 
184  int linearScaledSpeedGain( int modeKey ) const;
185 
187  void setLinearUnscaledSpeedGain( int modeKey, int gain );
188 
190  int linearUnscaledSpeedGain( int modeKey ) const;
191 
193  void setRotationSpeedGain( int modeKey, int gain );
194 
196  int rotationSpeedGain( int modeKey ) const;
197 
199 
200  void setSpeedScalingMode( int modeKey,
202  DtObserverObject::SpeedScalingMode speedScalingMode( int modeKey ) const;
204 
206 
207  void setSpeedScalingMslModeOffset( int modeKey, double offset );
208  double speedScalingMslModeOffset( int modeKey ) const;
210 
212 
213  void setCameraShakeEnabled( int modeKey, bool enabled );
214  bool cameraShakeEnabled( int modeKey ) const;
216 
218 
219  void setCameraShakeIntensity( int modeKey, double intensity );
220  double cameraShakeIntensity( int modeKey ) const;
222 
227  void setObserverSetting( int modeKey, int settingKey, bool val );
228 
233  bool observerSetting( int modeKey, int settingKey ) const;
234 
237 
239  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings );
240 
242  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings, bool merge );
243 
247 
249  virtual void importSettings( const std::string& filepath, bool merge );
250 
252  virtual void exportObserverMode( int modeKey,
253  const std::string& filepath ) const;
254 
256  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record );
257 
262  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record,
263  bool merge );
264 
266  virtual void setObserverModeFromRecord( const makArchives::DtObserverModesRecord& record,
267  int modeKey );
268 
270  virtual void getRecord( makArchives::DtObserverModesRecord& record ) const;
271 
274  virtual DtObserverModesSettingsBackup* observerModeSettingsBackup();
276 
277  public:
278 
280  boost::signal<void (int)> observerModeKeyMapChanged;
281 
283  boost::signal<void (int)> observerModeModelSetChanged;
284 
285  // \brief signal that the indicated observer mode's dimension changed
286  boost::signal<void (int)> observerModeIs2DChanged;
287 
289  boost::signal<void (int)> observerModeNameChanged;
290 
292  boost::signal<void (int)> observerModeSensorChanged;
293 
295  boost::signal<void (int, int,bool)> observerModeSettingChanged;
296 
298  boost::signal<void (int)> observerModeGainPrecisionChanged;
299 
301  boost::signal<void (int)> observerModeOrbitSpeedGainChanged;
302 
304  boost::signal<void (int)> observerModeRotationSpeedGainChanged;
305 
307  boost::signal<void (int)> observerModeLinearScaledSpeedGainChanged;
308 
311 
313  boost::signal<void (int)> observerModeModelScaleFactorChanged;
314 
316  boost::signal<void (int)> observerModeModelScaleTypeChanged;
317 
319  boost::signal<void (int)> observerModeMaxModelScaleFactorChanged;
320 
323 
326  boost::signal<void (int)> observerModeSpeedScalingModeChanged;
327 
331 
333  boost::signal<void (int)> observerModeCameraShakeEnabledChanged;
334 
336  boost::signal<void (int)> observerModeCameraShakeIntensityChanged;
337 
339  boost::signal<void (int)> observerModeAdded;
340 
342  boost::signal<void (int)> observerModeToBeRemoved;
343 
344  protected:
345 
347  template <typename ManagerClass>
348  friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
349 
351  template <typename ManagerClass>
352  friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
353 
356 
359 
362  DtObserverMode* getObserverModePtr( int modeKey );
363 
367  const DtObserverMode* getObserverModeConstPtr( int modeKey ) const;
368 
371  virtual void addObserverMode( const DtObserverMode& mode );
372 
374  virtual void clear();
375 
376  virtual void initializeBackup();
377 
378  virtual void slot_wireframeModeChanged(bool onOrOff);
379 
380 
381  protected:
382 
384  typedef std::map<std::string,int> ObserverModesMap;
385 
387 
388  // The map of visual modes (from id to DtObserverMode)
390 
391  // map from name to id
393 
395 
396  };
397 
398 
402  {
403  public:
404 
407 
409  virtual ~DtObserverModeManagerCreator();
410 
413  static DtObserverModeManagerCreator& instance( DtDe& de );
414 
416  virtual DtObserverModeManager* create( DtDe& );
417 
418  };
419 
420 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)