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) 2025 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  virtual void setLodCenterSettings(int modeKey, const DtObserverObject::DtLodCenterSettings& settings);
233  virtual const DtObserverObject::DtLodCenterSettings& lodCenterSettings(int modeKey) const;
235 
237  virtual void applyRecommendedLodCenterSettingsForAircraft(int modeKey);
241 
243  virtual void applyRecommendedLodCenterSettingsForGround(int modeKey);
247 
249  void setIsFrustumBasedViewMagnificationEnabled(int modeKey, bool enabled);
251  bool isFrustumBasedViewMagnificationEnabled(int modeKey) const;
253 
255  void setNorthType(int modeKey, DtObserverObject::NorthType northType);
257  DtObserverObject::NorthType northType(int modeKey) const;
259 
263  virtual void setColorControlEnabled(int modeKey, bool enabled);
264 
266  virtual bool colorControlEnabled(int modeKey) const;
267 
271  virtual void setColorControlInvert(int modeKey, bool enabled);
272 
274  virtual bool colorControlInvert(int modeKey) const;
275 
279  virtual void setColorControlContrast(int modeKey, double value);
280 
282  virtual double colorControlContrast(int modeKey) const;
283 
287  virtual void setColorControlBrightness(int modeKey, double value);
288 
290  virtual double colorControlBrightness(int modeKey) const;
291 
295  virtual void setColorControlColorMix(int modeKey, double value);
296 
298  virtual double colorControlColorMix(int modeKey) const;
299 
304  void setObserverSetting( int modeKey, int settingKey, bool val );
305 
310  bool observerSetting( int modeKey, int settingKey ) const;
311 
314 
316  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings );
317 
319  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings, bool merge );
320 
324 
326  virtual void importSettings( const std::string& filepath, bool merge );
327 
329  virtual void exportObserverMode( int modeKey,
330  const std::string& filepath ) const;
331 
333  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record );
334 
339  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record,
340  bool merge );
341 
343  virtual void setObserverModeFromRecord( const makArchives::DtObserverModesRecord& record,
344  int modeKey );
345 
347  virtual void getRecord( makArchives::DtObserverModesRecord& record ) const;
348 
351  virtual DtObserverModesSettingsBackup* observerModeSettingsBackup();
353 
354  public:
355 
357  boost::signalslib::signal<void (int)> observerModeKeyMapChanged;
358 
360  boost::signalslib::signal<void (int)> observerModeModelSetChanged;
361 
362  // \brief signal that the indicated observer mode's dimension changed
363  boost::signalslib::signal<void (int)> observerModeIs2DChanged;
364 
366  boost::signalslib::signal<void (int)> observerModeNameChanged;
367 
369  boost::signalslib::signal<void (int)> observerModeSensorChanged;
370 
372  boost::signalslib::signal<void (int, int,bool)> observerModeSettingChanged;
373 
375  boost::signalslib::signal<void (int)> observerModeGainPrecisionChanged;
376 
378  boost::signalslib::signal<void (int)> observerModeOrbitSpeedGainChanged;
379 
381  boost::signalslib::signal<void (int)> observerModeRotationSpeedGainChanged;
382 
384  boost::signalslib::signal<void (int)> observerModeLinearScaledSpeedGainChanged;
385 
387  boost::signalslib::signal<void (int)> observerModeLinearUnscaledSpeedGainChanged;
388 
390  boost::signalslib::signal<void (int)> observerModeModelScaleFactorChanged;
391 
393  boost::signalslib::signal<void (int)> observerModeModelScaleTypeChanged;
394 
396  boost::signalslib::signal<void (int)> observerModeMaxModelScaleFactorChanged;
397 
399  boost::signalslib::signal<void (int)> observerModeMaxLinearModelScaleFactorChanged;
400 
403  boost::signalslib::signal<void (int)> observerModeSpeedScalingModeChanged;
404 
407  boost::signalslib::signal<void (int)> observerModeSpeedScalingMslModeOffsetChanged;
408 
410  boost::signalslib::signal<void (int)> observerModeCameraShakeEnabledChanged;
411 
413  boost::signalslib::signal<void (int)> observerModeCameraShakeIntensityChanged;
414 
416  boost::signalslib::signal<void(int)> observerModeIsFrustumBasedViewMagnificationEnabledChanged;
417 
419  boost::signalslib::signal<void(int)> observerModeLodCenterSettingsChanged;
420 
422  boost::signalslib::signal<void(int)> observerModeNorthTypeChanged;
423 
425  boost::signalslib::signal<void(int)> observerModeColorControlEnabledChanged;
426 
428  boost::signalslib::signal<void(int)> observerModeColorControlInvertChanged;
429 
431  boost::signalslib::signal<void(int)> observerModeColorControlContrastChanged;
432 
434  boost::signalslib::signal<void(int)> observerModeColorControlBrightnessChanged;
435 
437  boost::signalslib::signal<void(int)> observerModeColorControlColorMixChanged;
438 
440  boost::signalslib::signal<void (int)> observerModeAdded;
441 
443  boost::signalslib::signal<void (int)> observerModeToBeRemoved;
444 
445  protected:
446 
448  template <typename ManagerClass>
449  friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
450 
452  template <typename ManagerClass>
453  friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
454 
457 
460 
465  virtual bool applyFactoryOverrides(makArchives::DtObserverModesRecord& rec) const;
466 
469  DtObserverMode* getObserverModePtr( int modeKey );
470 
474  const DtObserverMode* getObserverModeConstPtr( int modeKey ) const;
475 
478  virtual void addObserverMode( const DtObserverMode& mode );
479 
481  virtual void clear();
482 
483  virtual void initializeBackup();
484 
485  virtual void slot_wireframeModeChanged(bool onOrOff);
486 
487 
488  protected:
489 
491  typedef std::map<std::string,int> ObserverModesMap;
492 
494 
495  // The map of visual modes (from id to DtObserverMode)
497 
498  // map from name to id
500 
502 
503  };
504 
505 
509  {
510  public:
511 
514 
516  virtual ~DtObserverModeManagerCreator();
517 
520  static DtObserverModeManagerCreator& instance( DtDe& de );
521 
523  virtual DtObserverModeManager* create( DtDe& );
524 
525  };
526 
527 }
Base class for (non-shared) settings managers. Extends the functionality provided by the DtCommonBase...
Definition: DtBaseSettingsManager.h:283
boost::signalslib::signal< void(int)> observerModeIs2DChanged
Definition: DtObserverModeManager.h:363
boost::signalslib::signal< void(int)> observerModeCameraShakeIntensityChanged
signal that the camera shake intensity has changed
Definition: DtObserverModeManager.h:413
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:425
Creator for DtObserverModeManager class.
Definition: DtObserverModeManager.h:508
boost::signalslib::signal< void(int)> observerModeNorthTypeChanged
signal that the north type has changed
Definition: DtObserverModeManager.h:422
boost::signalslib::signal< void(int)> observerModeSpeedScalingModeChanged
signal that the indicated observer mode&#39;s speed scaling mode has changed
Definition: DtObserverModeManager.h:403
boost::signalslib::signal< void(int)> observerModeMaxModelScaleFactorChanged
signal that the indicated observer mode&#39;s max model scale factor changed
Definition: DtObserverModeManager.h:396
boost::signalslib::signal< void(int)> observerModeRotationSpeedGainChanged
signal that the indicated observer mode&#39;s rotation speed changed
Definition: DtObserverModeManager.h:381
boost::signalslib::signal< void(int)> observerModeModelSetChanged
signal that the indicated observer mode&#39;s model set changed
Definition: DtObserverModeManager.h:360
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:434
std::map< std::string, int > ObserverModesMap
Map type for mapping observer mode names to integer keys.
Definition: DtObserverModeManager.h:491
Definition: DtObserverModeManager.h:26
The makVrv::DtRecordSettingsBackup is a templaced class that settings records will use in order to ba...
Definition: DtRecordSettingsBackup.h:101
boost::signalslib::signal< void(int, int, bool)> observerModeSettingChanged
signal that the indicated observer mode&#39;s setting changed
Definition: DtObserverModeManager.h:372
boost::signalslib::signal< void(int)> observerModeColorControlContrastChanged
signal that the color control contrast has changed
Definition: DtObserverModeManager.h:431
Definition: DtObserverObject.h:71
Contains vrvCore::DtObserverMode class.
SpeedScalingMode
Definition: DtObserverObject.h:56
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:390
#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:369
boost::signalslib::signal< void(int)> observerModeLinearScaledSpeedGainChanged
signal that the indicated observer mode&#39;s scaled linear speed changed
Definition: DtObserverModeManager.h:384
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
ObserverModes myObserverModes
Definition: DtObserverModeManager.h:496
NorthType
Definition: DtObserverObject.h:62
Contains makArchives::DtObserverModesRecord class.
boost::signalslib::signal< void(int)> observerModeNameChanged
signal that the indicated observer mode&#39;s name changed
Definition: DtObserverModeManager.h:366
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:887
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:387
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:375
ObserverModesMap myObserverModesMap
Definition: DtObserverModeManager.h:499
boost::signalslib::signal< void(int)> observerModeColorControlInvertChanged
signal that the color control invert has been enabled or disabled
Definition: DtObserverModeManager.h:428
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:443
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function. Manager requirements: 1) Static instance function 2) Protected DtS...
Definition: DtDe.h:849
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:410
boost::signalslib::signal< void(int)> observerModeKeyMapChanged
signal that the indicated observer mode&#39;s key map changed
Definition: DtObserverModeManager.h:357
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:76
DtStringKeyConverter * myStringKeyConverter
Definition: DtObserverModeManager.h:493
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
boost::signalslib::signal< void(int)> observerModeSpeedScalingMslModeOffsetChanged
signal that the indicated observer mode&#39;s speed scaling MSL mode offset has changed ...
Definition: DtObserverModeManager.h:407
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:399
voidpf uLong offset
Definition: ioapi.h:42
DtSignalConnectionManager mySignalConnections
Definition: DtObserverModeManager.h:501
boost::signalslib::signal< void(int)> observerModeAdded
signal that the indicated observer mode was added
Definition: DtObserverModeManager.h:440
boost::signalslib::signal< void(int)> observerModeModelScaleTypeChanged
signal that the indicated observer mode&#39;s model scale type changed
Definition: DtObserverModeManager.h:393
boost::signalslib::signal< void(int)> observerModeOrbitSpeedGainChanged
signal that the indicated observer mode&#39;s orbit speed changed
Definition: DtObserverModeManager.h:378
boost::signalslib::signal< void(int)> observerModeLodCenterSettingsChanged
signal that the lod center settings has changed
Definition: DtObserverModeManager.h:419
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:437
boost::signalslib::signal< void(int)> observerModeIsFrustumBasedViewMagnificationEnabledChanged
signal that the frustum based view magnification has been enabled or disabled
Definition: DtObserverModeManager.h:416

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)