VR-Forces 4.8 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) 2020 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, const std::string& modelScaleType );
158 
160  const std::string& 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  void setSpeedScalingMode( int modeKey,
202  DtObserverObject::SpeedScalingMode speedScalingMode( int modeKey ) const;
204 
206  void setSpeedScalingMslModeOffset( int modeKey, double offset );
208  double speedScalingMslModeOffset( int modeKey ) const;
210 
212  void setCameraShakeEnabled( int modeKey, bool enabled );
214  bool cameraShakeEnabled( int modeKey ) const;
216 
218  void setCameraShakeIntensity( int modeKey, double intensity );
220  double cameraShakeIntensity( int modeKey ) const;
222 
224  void setLodScaleCenterEnabled(int modeKey, bool enabled);
226  bool lodScaleCenterEnabled(int modeKey) const;
228 
230  void setLodScaleCenterMagMinLimit(int modeKey, double limit);
232  double lodScaleCenterMagMinLimit(int modeKey) const;
234 
239  void setObserverSetting( int modeKey, int settingKey, bool val );
240 
245  bool observerSetting( int modeKey, int settingKey ) const;
246 
249 
251  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings );
252 
254  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings, bool merge );
255 
259 
261  virtual void importSettings( const std::string& filepath, bool merge );
262 
264  virtual void exportObserverMode( int modeKey,
265  const std::string& filepath ) const;
266 
268  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record );
269 
274  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record,
275  bool merge );
276 
278  virtual void setObserverModeFromRecord( const makArchives::DtObserverModesRecord& record,
279  int modeKey );
280 
282  virtual void getRecord( makArchives::DtObserverModesRecord& record ) const;
283 
286  virtual DtObserverModesSettingsBackup* observerModeSettingsBackup();
288 
289  public:
290 
292  boost::signal<void (int)> observerModeKeyMapChanged;
293 
295  boost::signal<void (int)> observerModeModelSetChanged;
296 
297  // \brief signal that the indicated observer mode's dimension changed
298  boost::signal<void (int)> observerModeIs2DChanged;
299 
301  boost::signal<void (int)> observerModeNameChanged;
302 
304  boost::signal<void (int)> observerModeSensorChanged;
305 
307  boost::signal<void (int, int,bool)> observerModeSettingChanged;
308 
310  boost::signal<void (int)> observerModeGainPrecisionChanged;
311 
313  boost::signal<void (int)> observerModeOrbitSpeedGainChanged;
314 
316  boost::signal<void (int)> observerModeRotationSpeedGainChanged;
317 
319  boost::signal<void (int)> observerModeLinearScaledSpeedGainChanged;
320 
323 
325  boost::signal<void (int)> observerModeModelScaleFactorChanged;
326 
328  boost::signal<void (int)> observerModeModelScaleTypeChanged;
329 
331  boost::signal<void (int)> observerModeMaxModelScaleFactorChanged;
332 
335 
338  boost::signal<void (int)> observerModeSpeedScalingModeChanged;
339 
343 
345  boost::signal<void (int)> observerModeCameraShakeEnabledChanged;
346 
348  boost::signal<void (int)> observerModeCameraShakeIntensityChanged;
349 
352 
355 
357  boost::signal<void (int)> observerModeAdded;
358 
360  boost::signal<void (int)> observerModeToBeRemoved;
361 
362  protected:
363 
365  template <typename ManagerClass>
366  friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
367 
369  template <typename ManagerClass>
370  friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
371 
374 
377 
380  DtObserverMode* getObserverModePtr( int modeKey );
381 
385  const DtObserverMode* getObserverModeConstPtr( int modeKey ) const;
386 
389  virtual void addObserverMode( const DtObserverMode& mode );
390 
392  virtual void clear();
393 
394  virtual void initializeBackup();
395 
396  virtual void slot_wireframeModeChanged(bool onOrOff);
397 
398 
399  protected:
400 
402  typedef std::map<std::string,int> ObserverModesMap;
403 
405 
406  // The map of visual modes (from id to DtObserverMode)
408 
409  // map from name to id
411 
413 
414  };
415 
416 
420  {
421  public:
422 
425 
427  virtual ~DtObserverModeManagerCreator();
428 
431  static DtObserverModeManagerCreator& instance( DtDe& de );
432 
434  virtual DtObserverModeManager* create( DtDe& );
435 
436  };
437 
438 }
Base class for (non-shared) settings managers.
Definition: DtBaseSettingsManager.h:271
DtObserverModeManager is responsible for loading and saving observer modes, and providing a mechanism...
Definition: DtObserverModeManager.h:53
Virtual base class.
Definition: DtVirtualBaseClass.h:22
boost::signal< void(int)> observerModeLinearUnscaledSpeedGainChanged
signal that the indicated observer mode&#39;s scaled linear speed changed
Definition: DtObserverModeManager.h:322
boost::signal< void(int)> observerModeLodScaleCenterEnabledChanged
signal that the lod scale center has been enabled or disabled
Definition: DtObserverModeManager.h:351
Creator for DtObserverModeManager class.
Definition: DtObserverModeManager.h:419
boost::signal< void(int)> observerModeLodScaleCenterMagMinLimitChanged
signal that the lod scale center view magnification min limit has changed
Definition: DtObserverModeManager.h:354
boost::signal< void(int)> observerModeCameraShakeEnabledChanged
signal that the camera shake has been enabled or disabled
Definition: DtObserverModeManager.h:345
DtObserverModesRecord is the serializable record used to read and write a list of Visual Mode Records...
Definition: DtObserverModesRecord.h:22
boost::signal< void(int, int, bool)> observerModeSettingChanged
signal that the indicated observer mode&#39;s setting changed
Definition: DtObserverModeManager.h:307
std::map< std::string, int > ObserverModesMap
Map type for mapping observer mode names to integer keys.
Definition: DtObserverModeManager.h:402
Definition: DtObserverModeManager.h:26
boost::signal< void(int)> observerModeToBeRemoved
signal that the indicated observer mode is about to be removed
Definition: DtObserverModeManager.h:360
boost::signal< void(int)> observerModeMaxLinearModelScaleFactorChanged
signal that the indicated observer mode&#39;s max linear model scale factor changed
Definition: DtObserverModeManager.h:334
The makVrv::DtRecordSettingsBackup is a templaced class that settings records will use in order to ba...
Definition: DtRecordSettingsBackup.h:103
boost::signal< void(int)> observerModeNameChanged
signal that the indicated observer mode&#39;s name changed
Definition: DtObserverModeManager.h:301
boost::signal< void(int)> observerModeKeyMapChanged
signal that the indicated observer mode&#39;s key map changed
Definition: DtObserverModeManager.h:292
boost::signal< void(int)> observerModeSpeedScalingMslModeOffsetChanged
signal that the indicated observer mode&#39;s speed scaling MSL mode offset has changed ...
Definition: DtObserverModeManager.h:342
Contains vrvCore::DtObserverMode class.
SpeedScalingMode
Definition: DtObserverObject.h:50
boost::signal< void(int)> observerModeIs2DChanged
Definition: DtObserverModeManager.h:298
boost::signal< void(int)> observerModeGainPrecisionChanged
signal that the indicated observer mode&#39;s gain precision changed
Definition: DtObserverModeManager.h:310
DtStringKeyConverter is used to convert string-based keys, used in files for things like model sets a...
Definition: DtStringKeyConverter.h:33
boost::signal< void(int)> observerModeLinearScaledSpeedGainChanged
signal that the indicated observer mode&#39;s scaled linear speed changed
Definition: DtObserverModeManager.h:319
boost::signal< void(int)> observerModeRotationSpeedGainChanged
signal that the indicated observer mode&#39;s rotation speed changed
Definition: DtObserverModeManager.h:316
boost::signal< void(int)> observerModeModelScaleFactorChanged
signal that the indicated observer mode&#39;s model scale factor changed
Definition: DtObserverModeManager.h:325
boost::signal< void(int)> observerModeCameraShakeIntensityChanged
signal that the camera shake intensity has changed
Definition: DtObserverModeManager.h:348
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
boost::signal< void(int)> observerModeSensorChanged
signal that the indicated observer mode&#39;s sensor changed
Definition: DtObserverModeManager.h:304
ObserverModes myObserverModes
Definition: DtObserverModeManager.h:407
Contains makArchives::DtObserverModesRecord class.
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:840
Provides a method of doign settings backup.
Definition: DtSettingsBackup.h:26
boost::signal< void(int)> observerModeSpeedScalingModeChanged
signal that the indicated observer mode&#39;s speed scaling mode has changed
Definition: DtObserverModeManager.h:338
int myCurrentSelectedObserverMode
Definition: DtObserverModeManager.h:43
boost::signal< void(int)> observerModeModelScaleTypeChanged
signal that the indicated observer mode&#39;s model scale type changed
Definition: DtObserverModeManager.h:328
ObserverModesMap myObserverModesMap
Definition: DtObserverModeManager.h:410
Base class to provide boost signal/slot management.
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function.
Definition: DtDe.h:802
const char int mode
Definition: ioapi.h:38
boost::signal< void(int)> observerModeMaxModelScaleFactorChanged
signal that the indicated observer mode&#39;s max model scale factor changed
Definition: DtObserverModeManager.h:331
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtStringKeyConverter * myStringKeyConverter
Definition: DtObserverModeManager.h:404
boost::signal< void(int)> observerModeAdded
signal that the indicated observer mode was added
Definition: DtObserverModeManager.h:357
std::map< int, DtObserverMode > ObserverModes
Type returned when retrieving all observer modes.
Definition: DtObserverModeManager.h:59
DtObserverMode is the class used to represent a single Visual Mode Visual Modes may be saved and rest...
Definition: DtObserverMode.h:29
voidpf uLong offset
Definition: ioapi.h:42
DtSignalConnectionManager mySignalConnections
Definition: DtObserverModeManager.h:412
boost::signal< void(int)> observerModeModelSetChanged
signal that the indicated observer mode&#39;s model set changed
Definition: DtObserverModeManager.h:295
boost::signal< void(int)> observerModeOrbitSpeedGainChanged
signal that the indicated observer mode&#39;s orbit speed changed
Definition: DtObserverModeManager.h:313
Contains the DtBaseSettingsManager class declaration.
Contains DLL export macros.

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)