VR-Forces Developer's Guide
 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) 2023 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  DtModelSetId modelSet( int modeKey ) const;
120 
123  void setModelSet( int modeKey, DtModelSetId 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 
144  bool setSensor(int modeKey, const std::string& sensorName);
145 
147  std::string sensor( int modeKey ) const;
148 
150  void setGainPrecision( int modeKey, int precision );
151 
153  int gainPrecision( int modeKey ) const;
154 
156  void setModelScaleFactor( int modeKey, double modelScaleFactor );
157 
159  double modelScaleFactor( int modeKey ) const;
160 
162  void setModelScaleType( int modeKey, const std::string& modelScaleType );
163 
165  const std::string& modelScaleType( int modeKey ) const;
166 
168  void setMaxModelScaleFactor( int modeKey, double maxModelScaleFactor );
169 
171  double maxModelScaleFactor( int modeKey ) const;
172 
174  void setMaxLinearModelScaleFactor( int modeKey, double maxLinearModelScaleFactor );
175 
177  double maxLinearModelScaleFactor( int modeKey ) const;
178 
180  void setOrbitSpeedGain( int modeKey, int gain );
181 
183  int orbitSpeedGain( int modeKey ) const;
184 
186  void setLinearScaledSpeedGain( int modeKey, int gain );
187 
189  int linearScaledSpeedGain( int modeKey ) const;
190 
192  void setLinearUnscaledSpeedGain( int modeKey, int gain );
193 
195  int linearUnscaledSpeedGain( int modeKey ) const;
196 
198  void setRotationSpeedGain( int modeKey, int gain );
199 
201  int rotationSpeedGain( int modeKey ) const;
202 
204  void setSpeedScalingMode( int modeKey,
207  DtObserverObject::SpeedScalingMode speedScalingMode( int modeKey ) const;
209 
211  void setSpeedScalingMslModeOffset( int modeKey, double offset );
213  double speedScalingMslModeOffset( int modeKey ) const;
215 
217  void setCameraShakeEnabled( int modeKey, bool enabled );
219  bool cameraShakeEnabled( int modeKey ) const;
221 
223  void setCameraShakeIntensity( int modeKey, double intensity );
225  double cameraShakeIntensity( int modeKey ) const;
227 
229  void setLodScaleCenterEnabled(int modeKey, bool enabled);
231  bool lodScaleCenterEnabled(int modeKey) const;
233 
235  void setLodScaleCenterMagMinLimit(int modeKey, double limit);
237  double lodScaleCenterMagMinLimit(int modeKey) const;
239 
241  void setNorthType(int modeKey, DtObserverObject::NorthType northType);
243  DtObserverObject::NorthType northType(int modeKey) const;
245 
249  virtual void setColorControlEnabled(int modeKey, bool enabled);
250 
252  virtual bool colorControlEnabled(int modeKey) const;
253 
257  virtual void setColorControlInvert(int modeKey, bool enabled);
258 
260  virtual bool colorControlInvert(int modeKey) const;
261 
265  virtual void setColorControlContrast(int modeKey, double value);
266 
268  virtual double colorControlContrast(int modeKey) const;
269 
273  virtual void setColorControlBrightness(int modeKey, double value);
274 
276  virtual double colorControlBrightness(int modeKey) const;
277 
281  virtual void setColorControlColorMix(int modeKey, double value);
282 
284  virtual double colorControlColorMix(int modeKey) const;
285 
290  void setObserverSetting( int modeKey, int settingKey, bool val );
291 
296  bool observerSetting( int modeKey, int settingKey ) const;
297 
300 
302  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings );
303 
305  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings, bool merge );
306 
310 
312  virtual void importSettings( const std::string& filepath, bool merge );
313 
315  virtual void exportObserverMode( int modeKey,
316  const std::string& filepath ) const;
317 
319  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record );
320 
325  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record,
326  bool merge );
327 
329  virtual void setObserverModeFromRecord( const makArchives::DtObserverModesRecord& record,
330  int modeKey );
331 
333  virtual void getRecord( makArchives::DtObserverModesRecord& record ) const;
334 
337  virtual DtObserverModesSettingsBackup* observerModeSettingsBackup();
339 
340  public:
341 
343  boost::signalslib::signal<void (int)> observerModeKeyMapChanged;
344 
346  boost::signalslib::signal<void (int)> observerModeModelSetChanged;
347 
348  // \brief signal that the indicated observer mode's dimension changed
349  boost::signalslib::signal<void (int)> observerModeIs2DChanged;
350 
352  boost::signalslib::signal<void (int)> observerModeNameChanged;
353 
355  boost::signalslib::signal<void (int)> observerModeSensorChanged;
356 
358  boost::signalslib::signal<void (int, int,bool)> observerModeSettingChanged;
359 
361  boost::signalslib::signal<void (int)> observerModeGainPrecisionChanged;
362 
364  boost::signalslib::signal<void (int)> observerModeOrbitSpeedGainChanged;
365 
367  boost::signalslib::signal<void (int)> observerModeRotationSpeedGainChanged;
368 
370  boost::signalslib::signal<void (int)> observerModeLinearScaledSpeedGainChanged;
371 
373  boost::signalslib::signal<void (int)> observerModeLinearUnscaledSpeedGainChanged;
374 
376  boost::signalslib::signal<void (int)> observerModeModelScaleFactorChanged;
377 
379  boost::signalslib::signal<void (int)> observerModeModelScaleTypeChanged;
380 
382  boost::signalslib::signal<void (int)> observerModeMaxModelScaleFactorChanged;
383 
385  boost::signalslib::signal<void (int)> observerModeMaxLinearModelScaleFactorChanged;
386 
389  boost::signalslib::signal<void (int)> observerModeSpeedScalingModeChanged;
390 
393  boost::signalslib::signal<void (int)> observerModeSpeedScalingMslModeOffsetChanged;
394 
396  boost::signalslib::signal<void (int)> observerModeCameraShakeEnabledChanged;
397 
399  boost::signalslib::signal<void (int)> observerModeCameraShakeIntensityChanged;
400 
402  boost::signalslib::signal<void(int)> observerModeLodScaleCenterEnabledChanged;
403 
405  boost::signalslib::signal<void(int)> observerModeLodScaleCenterMagMinLimitChanged;
406 
408  boost::signalslib::signal<void(int)> observerModeNorthTypeChanged;
409 
411  boost::signalslib::signal<void(int)> observerModeColorControlEnabledChanged;
412 
414  boost::signalslib::signal<void(int)> observerModeColorControlInvertChanged;
415 
417  boost::signalslib::signal<void(int)> observerModeColorControlContrastChanged;
418 
420  boost::signalslib::signal<void(int)> observerModeColorControlBrightnessChanged;
421 
423  boost::signalslib::signal<void(int)> observerModeColorControlColorMixChanged;
424 
426  boost::signalslib::signal<void (int)> observerModeAdded;
427 
429  boost::signalslib::signal<void (int)> observerModeToBeRemoved;
430 
431  protected:
432 
434  template <typename ManagerClass>
435  friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
436 
438  template <typename ManagerClass>
439  friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
440 
443 
446 
451  virtual bool applyFactoryOverrides(makArchives::DtObserverModesRecord& rec) const;
452 
455  DtObserverMode* getObserverModePtr( int modeKey );
456 
460  const DtObserverMode* getObserverModeConstPtr( int modeKey ) const;
461 
464  virtual void addObserverMode( const DtObserverMode& mode );
465 
467  virtual void clear();
468 
469  virtual void initializeBackup();
470 
471  virtual void slot_wireframeModeChanged(bool onOrOff);
472 
473 
474  protected:
475 
477  typedef std::map<std::string,int> ObserverModesMap;
478 
480 
481  // The map of visual modes (from id to DtObserverMode)
483 
484  // map from name to id
486 
488 
489  };
490 
491 
495  {
496  public:
497 
500 
502  virtual ~DtObserverModeManagerCreator();
503 
506  static DtObserverModeManagerCreator& instance( DtDe& de );
507 
509  virtual DtObserverModeManager* create( DtDe& );
510 
511  };
512 
513 }
Base class for (non-shared) settings managers. Extends the functionality provided by the DtCommonBase...
Definition: DtBaseSettingsManager.h:291
boost::signalslib::signal< void(int)> observerModeIs2DChanged
Definition: DtObserverModeManager.h:349
boost::signalslib::signal< void(int)> observerModeCameraShakeIntensityChanged
signal that the camera shake intensity has changed
Definition: DtObserverModeManager.h:399
DtObserverModeManager is responsible for loading and saving observer modes, and providing a mechanism...
Definition: DtObserverModeManager.h:53
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::signalslib::signal< void(int)> observerModeColorControlEnabledChanged
signal that the color control has been enabled or disabled
Definition: DtObserverModeManager.h:411
Creator for DtObserverModeManager class.
Definition: DtObserverModeManager.h:494
boost::signalslib::signal< void(int)> observerModeNorthTypeChanged
signal that the north type has changed
Definition: DtObserverModeManager.h:408
boost::signalslib::signal< void(int)> observerModeSpeedScalingModeChanged
signal that the indicated observer mode&#39;s speed scaling mode has changed
Definition: DtObserverModeManager.h:389
boost::signalslib::signal< void(int)> observerModeMaxModelScaleFactorChanged
signal that the indicated observer mode&#39;s max model scale factor changed
Definition: DtObserverModeManager.h:382
boost::signalslib::signal< void(int)> observerModeRotationSpeedGainChanged
signal that the indicated observer mode&#39;s rotation speed changed
Definition: DtObserverModeManager.h:367
boost::signalslib::signal< void(int)> observerModeModelSetChanged
signal that the indicated observer mode&#39;s model set changed
Definition: DtObserverModeManager.h:346
DtObserverModesRecord is the serializable record used to read and write a list of Visual Mode Records...
Definition: DtObserverModesRecord.h:22
boost::signalslib::signal< void(int)> observerModeColorControlBrightnessChanged
signal that the color control brightness has changed
Definition: DtObserverModeManager.h:420
std::map< std::string, int > ObserverModesMap
Map type for mapping observer mode names to integer keys.
Definition: DtObserverModeManager.h:477
Definition: DtObserverModeManager.h:26
The makVrv::DtRecordSettingsBackup is a templaced class that settings records will use in order to ba...
Definition: DtRecordSettingsBackup.h:100
boost::signalslib::signal< void(int, int, bool)> observerModeSettingChanged
signal that the indicated observer mode&#39;s setting changed
Definition: DtObserverModeManager.h:358
boost::signalslib::signal< void(int)> observerModeLodScaleCenterMagMinLimitChanged
signal that the lod scale center view magnification min limit has changed
Definition: DtObserverModeManager.h:405
boost::signalslib::signal< void(int)> observerModeColorControlContrastChanged
signal that the color control contrast has changed
Definition: DtObserverModeManager.h:417
Contains vrvCore::DtObserverMode class.
SpeedScalingMode
Definition: DtObserverObject.h:53
DtStringKeyConverter is used to convert string-based keys, used in files for things like model sets a...
Definition: DtStringKeyConverter.h:30
boost::signalslib::signal< void(int)> observerModeModelScaleFactorChanged
signal that the indicated observer mode&#39;s model scale factor changed
Definition: DtObserverModeManager.h:376
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
boost::signalslib::signal< void(int)> observerModeSensorChanged
signal that the indicated observer mode&#39;s sensor changed
Definition: DtObserverModeManager.h:355
boost::signalslib::signal< void(int)> observerModeLinearScaledSpeedGainChanged
signal that the indicated observer mode&#39;s scaled linear speed changed
Definition: DtObserverModeManager.h:370
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
ObserverModes myObserverModes
Definition: DtObserverModeManager.h:482
NorthType
Definition: DtObserverObject.h:59
Contains makArchives::DtObserverModesRecord class.
boost::signalslib::signal< void(int)> observerModeNameChanged
signal that the indicated observer mode&#39;s name changed
Definition: DtObserverModeManager.h:352
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:882
Provides a method of doign settings backup.
Definition: DtSettingsBackup.h:23
boost::signalslib::signal< void(int)> observerModeLinearUnscaledSpeedGainChanged
signal that the indicated observer mode&#39;s scaled linear speed changed
Definition: DtObserverModeManager.h:373
int myCurrentSelectedObserverMode
Definition: DtObserverModeManager.h:43
boost::signalslib::signal< void(int)> observerModeGainPrecisionChanged
signal that the indicated observer mode&#39;s gain precision changed
Definition: DtObserverModeManager.h:361
ObserverModesMap myObserverModesMap
Definition: DtObserverModeManager.h:485
boost::signalslib::signal< void(int)> observerModeColorControlInvertChanged
signal that the color control invert has been enabled or disabled
Definition: DtObserverModeManager.h:414
Base class to provide boost signal/slot management.
boost::signalslib::signal< void(int)> observerModeToBeRemoved
signal that the indicated observer mode is about to be removed
Definition: DtObserverModeManager.h:429
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function. Manager requirements: 1) Static instance function 2) Protected DtS...
Definition: DtDe.h:844
const char int mode
Definition: ioapi.h:38
boost::signalslib::signal< void(int)> observerModeCameraShakeEnabledChanged
signal that the camera shake has been enabled or disabled
Definition: DtObserverModeManager.h:396
boost::signalslib::signal< void(int)> observerModeKeyMapChanged
signal that the indicated observer mode&#39;s key map changed
Definition: DtObserverModeManager.h:343
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
DtStringKeyConverter * myStringKeyConverter
Definition: DtObserverModeManager.h:479
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:30
boost::signalslib::signal< void(int)> observerModeSpeedScalingMslModeOffsetChanged
signal that the indicated observer mode&#39;s speed scaling MSL mode offset has changed ...
Definition: DtObserverModeManager.h:393
DtModelSetId
Definition: DtModelSetEnums.h:19
boost::signalslib::signal< void(int)> observerModeMaxLinearModelScaleFactorChanged
signal that the indicated observer mode&#39;s max linear model scale factor changed
Definition: DtObserverModeManager.h:385
voidpf uLong offset
Definition: ioapi.h:42
DtSignalConnectionManager mySignalConnections
Definition: DtObserverModeManager.h:487
boost::signalslib::signal< void(int)> observerModeAdded
signal that the indicated observer mode was added
Definition: DtObserverModeManager.h:426
boost::signalslib::signal< void(int)> observerModeModelScaleTypeChanged
signal that the indicated observer mode&#39;s model scale type changed
Definition: DtObserverModeManager.h:379
boost::signalslib::signal< void(int)> observerModeOrbitSpeedGainChanged
signal that the indicated observer mode&#39;s orbit speed changed
Definition: DtObserverModeManager.h:364
boost::signalslib::signal< void(int)> observerModeLodScaleCenterEnabledChanged
signal that the lod scale center has been enabled or disabled
Definition: DtObserverModeManager.h:402
Contains the DtBaseSettingsManager class declaration.
Contains DLL export macros.
boost::signalslib::signal< void(int)> observerModeColorControlColorMixChanged
signal that the color control color mix has changed
Definition: DtObserverModeManager.h:423

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)