VR-Forces 5.0.2 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) 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 
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 
250  void setObserverSetting( int modeKey, int settingKey, bool val );
251 
256  bool observerSetting( int modeKey, int settingKey ) const;
257 
260 
262  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings );
263 
265  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings, bool merge );
266 
270 
272  virtual void importSettings( const std::string& filepath, bool merge );
273 
275  virtual void exportObserverMode( int modeKey,
276  const std::string& filepath ) const;
277 
279  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record );
280 
285  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record,
286  bool merge );
287 
289  virtual void setObserverModeFromRecord( const makArchives::DtObserverModesRecord& record,
290  int modeKey );
291 
293  virtual void getRecord( makArchives::DtObserverModesRecord& record ) const;
294 
297  virtual DtObserverModesSettingsBackup* observerModeSettingsBackup();
299 
300  public:
301 
303  boost::signalslib::signal<void (int)> observerModeKeyMapChanged;
304 
306  boost::signalslib::signal<void (int)> observerModeModelSetChanged;
307 
308  // \brief signal that the indicated observer mode's dimension changed
309  boost::signalslib::signal<void (int)> observerModeIs2DChanged;
310 
312  boost::signalslib::signal<void (int)> observerModeNameChanged;
313 
315  boost::signalslib::signal<void (int)> observerModeSensorChanged;
316 
318  boost::signalslib::signal<void (int, int,bool)> observerModeSettingChanged;
319 
321  boost::signalslib::signal<void (int)> observerModeGainPrecisionChanged;
322 
324  boost::signalslib::signal<void (int)> observerModeOrbitSpeedGainChanged;
325 
327  boost::signalslib::signal<void (int)> observerModeRotationSpeedGainChanged;
328 
330  boost::signalslib::signal<void (int)> observerModeLinearScaledSpeedGainChanged;
331 
333  boost::signalslib::signal<void (int)> observerModeLinearUnscaledSpeedGainChanged;
334 
336  boost::signalslib::signal<void (int)> observerModeModelScaleFactorChanged;
337 
339  boost::signalslib::signal<void (int)> observerModeModelScaleTypeChanged;
340 
342  boost::signalslib::signal<void (int)> observerModeMaxModelScaleFactorChanged;
343 
345  boost::signalslib::signal<void (int)> observerModeMaxLinearModelScaleFactorChanged;
346 
349  boost::signalslib::signal<void (int)> observerModeSpeedScalingModeChanged;
350 
353  boost::signalslib::signal<void (int)> observerModeSpeedScalingMslModeOffsetChanged;
354 
356  boost::signalslib::signal<void (int)> observerModeCameraShakeEnabledChanged;
357 
359  boost::signalslib::signal<void (int)> observerModeCameraShakeIntensityChanged;
360 
362  boost::signalslib::signal<void(int)> observerModeLodScaleCenterEnabledChanged;
363 
365  boost::signalslib::signal<void(int)> observerModeLodScaleCenterMagMinLimitChanged;
366 
368  boost::signalslib::signal<void(int)> observerModeNorthTypeChanged;
369 
371  boost::signalslib::signal<void (int)> observerModeAdded;
372 
374  boost::signalslib::signal<void (int)> observerModeToBeRemoved;
375 
376  protected:
377 
379  template <typename ManagerClass>
380  friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
381 
383  template <typename ManagerClass>
384  friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
385 
388 
391 
394  DtObserverMode* getObserverModePtr( int modeKey );
395 
399  const DtObserverMode* getObserverModeConstPtr( int modeKey ) const;
400 
403  virtual void addObserverMode( const DtObserverMode& mode );
404 
406  virtual void clear();
407 
408  virtual void initializeBackup();
409 
410  virtual void slot_wireframeModeChanged(bool onOrOff);
411 
412 
413  protected:
414 
416  typedef std::map<std::string,int> ObserverModesMap;
417 
419 
420  // The map of visual modes (from id to DtObserverMode)
422 
423  // map from name to id
425 
427 
428  };
429 
430 
434  {
435  public:
436 
439 
441  virtual ~DtObserverModeManagerCreator();
442 
445  static DtObserverModeManagerCreator& instance( DtDe& de );
446 
448  virtual DtObserverModeManager* create( DtDe& );
449 
450  };
451 
452 }
Base class for (non-shared) settings managers. Extends the functionality provided by the DtCommonBase...
Definition: DtBaseSettingsManager.h:271
boost::signalslib::signal< void(int)> observerModeIs2DChanged
Definition: DtObserverModeManager.h:309
boost::signalslib::signal< void(int)> observerModeCameraShakeIntensityChanged
signal that the camera shake intensity has changed
Definition: DtObserverModeManager.h:359
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
Creator for DtObserverModeManager class.
Definition: DtObserverModeManager.h:433
boost::signalslib::signal< void(int)> observerModeNorthTypeChanged
signal that the north type has changed
Definition: DtObserverModeManager.h:368
boost::signalslib::signal< void(int)> observerModeSpeedScalingModeChanged
signal that the indicated observer mode&#39;s speed scaling mode has changed
Definition: DtObserverModeManager.h:349
boost::signalslib::signal< void(int)> observerModeMaxModelScaleFactorChanged
signal that the indicated observer mode&#39;s max model scale factor changed
Definition: DtObserverModeManager.h:342
boost::signalslib::signal< void(int)> observerModeRotationSpeedGainChanged
signal that the indicated observer mode&#39;s rotation speed changed
Definition: DtObserverModeManager.h:327
boost::signalslib::signal< void(int)> observerModeModelSetChanged
signal that the indicated observer mode&#39;s model set changed
Definition: DtObserverModeManager.h:306
DtObserverModesRecord is the serializable record used to read and write a list of Visual Mode Records...
Definition: DtObserverModesRecord.h:22
std::map< std::string, int > ObserverModesMap
Map type for mapping observer mode names to integer keys.
Definition: DtObserverModeManager.h:416
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:318
boost::signalslib::signal< void(int)> observerModeLodScaleCenterMagMinLimitChanged
signal that the lod scale center view magnification min limit has changed
Definition: DtObserverModeManager.h:365
Contains vrvCore::DtObserverMode class.
SpeedScalingMode
Definition: DtObserverObject.h:50
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:336
#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:315
boost::signalslib::signal< void(int)> observerModeLinearScaledSpeedGainChanged
signal that the indicated observer mode&#39;s scaled linear speed changed
Definition: DtObserverModeManager.h:330
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
ObserverModes myObserverModes
Definition: DtObserverModeManager.h:421
NorthType
Definition: DtObserverObject.h:56
Contains makArchives::DtObserverModesRecord class.
boost::signalslib::signal< void(int)> observerModeNameChanged
signal that the indicated observer mode&#39;s name changed
Definition: DtObserverModeManager.h:312
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:866
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:333
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:321
ObserverModesMap myObserverModesMap
Definition: DtObserverModeManager.h:424
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:374
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function. Manager requirements: 1) Static instance function 2) Protected DtS...
Definition: DtDe.h:828
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:356
boost::signalslib::signal< void(int)> observerModeKeyMapChanged
signal that the indicated observer mode&#39;s key map changed
Definition: DtObserverModeManager.h:303
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:70
DtStringKeyConverter * myStringKeyConverter
Definition: DtObserverModeManager.h:418
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:353
boost::signalslib::signal< void(int)> observerModeMaxLinearModelScaleFactorChanged
signal that the indicated observer mode&#39;s max linear model scale factor changed
Definition: DtObserverModeManager.h:345
voidpf uLong offset
Definition: ioapi.h:42
DtSignalConnectionManager mySignalConnections
Definition: DtObserverModeManager.h:426
boost::signalslib::signal< void(int)> observerModeAdded
signal that the indicated observer mode was added
Definition: DtObserverModeManager.h:371
boost::signalslib::signal< void(int)> observerModeModelScaleTypeChanged
signal that the indicated observer mode&#39;s model scale type changed
Definition: DtObserverModeManager.h:339
boost::signalslib::signal< void(int)> observerModeOrbitSpeedGainChanged
signal that the indicated observer mode&#39;s orbit speed changed
Definition: DtObserverModeManager.h:324
boost::signalslib::signal< void(int)> observerModeLodScaleCenterEnabledChanged
signal that the lod scale center has been enabled or disabled
Definition: DtObserverModeManager.h:362
Contains the DtBaseSettingsManager class declaration.
Contains DLL export macros.

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)