VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtObserverModeManager.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2012 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
15 #include <vrvCore/DtObserverMode.h>
16 #include <string>
17 #include <map>
18 
19 namespace makVrv
20 {
21  class DtObserverModeManager;
22 
24  : public DtRecordSettingsBackup< DtBaseSettingsManager<makArchives::DtObserverModesRecord>,
25  makArchives::DtObserverModesRecord >
26  {
27  public:
28 
30  const std::string& name, const std::string& displayName );
31 
33 
34  virtual void restoreSelected( const DtSettingsBackup* );
35 
36  virtual int currentSelectedObserverMode() const;
37  virtual void setCurrentSelectedObserverMode( int modeKey );
38 
39  protected:
41  };
42 
43  class DtDe;
45 
51  : public DtBaseSettingsManager<makArchives::DtObserverModesRecord>
52  {
53  public:
54 
56  typedef std::map<int, DtObserverMode> ObserverModes;
57 
58  public:
59 
61  static DtObserverModeManager& instance( DtDe& de );
62 
64  virtual ~DtObserverModeManager();
65 
68  const ObserverModes& observerModes() const;
69 
71  int numberOfObserverModes() const;
72 
76  virtual int createObserverMode( const std::string& stringKey,
77  const std::string& displayName );
78 
82  virtual int createModeKey( const std::string& stringKey );
83 
85  virtual void removeObserverMode( int mode );
86 
89  int lookupObserverModeKey( std::string stringKey ) const;
90 
92  const std::string* findObserverModeStringKey( int modeKey ) const;
93 
95  bool getObserverModeById( int modeKey, DtObserverMode& result ) const;
96 
101  bool getObserverModeByName( const std::string& observerModeName,
102  DtObserverMode& result );
103 
105  std::string name( int modeKey ) const;
106 
108  void setName( int modeKey, const std::string& name );
109 
111  int modelSet( int modeKey ) const;
112 
115  void setModelSet( int modeKey, int modelSet );
116 
118  std::string keyMap( int modeKey ) const;
119 
122  void setKeyMap( int modeKey, const std::string& keyMap );
123 
125  void setIs2D( int modeKey, bool trueOrFalse );
126 
128  bool is2D( int modeKey ) const;
129 
131  void setSensor(int modeKey, const std::string& sensorName);
132 
134  std::string sensor( int modeKey ) const;
135 
137  void setGainPrecision( int modeKey, int precision );
138 
140  int gainPrecision( int modeKey ) const;
141 
143  void setModelScaleFactor( int modeKey, double modelScaleFactor );
144 
146  double modelScaleFactor( int modeKey ) const;
147 
149  void setModelScaleType( int modeKey, DtObserverObject::ScaleType modelScaleType );
150 
152  DtObserverObject::ScaleType modelScaleType( int modeKey ) const;
153 
155  void setMaxModelScaleFactor( int modeKey, double maxModelScaleFactor );
156 
158  double maxModelScaleFactor( int modeKey ) const;
159 
161  void setMaxLinearModelScaleFactor( int modeKey, double maxLinearModelScaleFactor );
162 
164  double maxLinearModelScaleFactor( int modeKey ) const;
165 
167  void setOrbitSpeedGain( int modeKey, int gain );
168 
170  int orbitSpeedGain( int modeKey ) const;
171 
173  void setLinearScaledSpeedGain( int modeKey, int gain );
174 
176  int linearScaledSpeedGain( int modeKey ) const;
177 
179  void setLinearUnscaledSpeedGain( int modeKey, int gain );
180 
182  int linearUnscaledSpeedGain( int modeKey ) const;
183 
185  void setRotationSpeedGain( int modeKey, int gain );
186 
188  int rotationSpeedGain( int modeKey ) const;
189 
191 
192  void setSpeedScalingMode( int modeKey,
194  DtObserverObject::SpeedScalingMode speedScalingMode( int modeKey ) const;
196 
198 
199  void setSpeedScalingAslModeOffset( int modeKey, double offset );
200  double speedScalingAslModeOffset( int modeKey ) const;
202 
204 
205  void setCameraShakeEnabled( int modeKey, bool enabled );
206  bool cameraShakeEnabled( int modeKey ) const;
208 
210 
211  void setCameraShakeIntensity( int modeKey, double intensity );
212  double cameraShakeIntensity( int modeKey ) const;
214 
219  void setObserverSetting( int modeKey, int settingKey, bool val );
220 
225  bool observerSetting( int modeKey, int settingKey ) const;
226 
229 
231  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings );
232 
234  virtual void loadDefaultSettings( bool loadOnlyDefaultSettings, bool merge );
235 
239 
241  virtual void importSettings( const std::string& filepath, bool merge );
242 
244  virtual void exportObserverMode( int modeKey,
245  const std::string& filepath ) const;
246 
248  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record );
249 
254  virtual void setFromRecord( const makArchives::DtObserverModesRecord& record,
255  bool merge );
256 
258  virtual void setObserverModeFromRecord( const makArchives::DtObserverModesRecord& record,
259  int modeKey );
260 
262  virtual void getRecord( makArchives::DtObserverModesRecord& record ) const;
263 
266  virtual DtObserverModesSettingsBackup* observerModeSettingsBackup();
268 
269  public:
270 
272  boost::signal<void (int)> observerModeKeyMapChanged;
273 
275  boost::signal<void (int)> observerModeModelSetChanged;
276 
277  // \brief signal that the indicated observer mode's dimension changed
278  boost::signal<void (int)> observerModeIs2DChanged;
279 
281  boost::signal<void (int)> observerModeNameChanged;
282 
284  boost::signal<void (int)> observerModeSensorChanged;
285 
287  boost::signal<void (int, int,bool)> observerModeSettingChanged;
288 
290  boost::signal<void (int)> observerModeGainPrecisionChanged;
291 
293  boost::signal<void (int)> observerModeOrbitSpeedGainChanged;
294 
296  boost::signal<void (int)> observerModeRotationSpeedGainChanged;
297 
299  boost::signal<void (int)> observerModeLinearScaledSpeedGainChanged;
300 
303 
305  boost::signal<void (int)> observerModeModelScaleFactorChanged;
306 
308  boost::signal<void (int)> observerModeModelScaleTypeChanged;
309 
311  boost::signal<void (int)> observerModeMaxModelScaleFactorChanged;
312 
315 
318  boost::signal<void (int)> observerModeSpeedScalingModeChanged;
319 
323 
325  boost::signal<void (int)> observerModeCameraShakeEnabledChanged;
326 
328  boost::signal<void (int)> observerModeCameraShakeIntensityChanged;
329 
331  boost::signal<void (int)> observerModeAdded;
332 
334  boost::signal<void (int)> observerModeToBeRemoved;
335 
336  protected:
337 
339  template <typename ManagerClass>
340  friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
341 
343  template <typename ManagerClass>
344  friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
345 
348 
351 
354  DtObserverMode* getObserverModePtr( int modeKey );
355 
358  virtual void addObserverMode( const DtObserverMode& mode );
359 
361  virtual void clear();
362 
363  virtual void initializeBackup();
364 
365  protected:
366 
368  typedef std::map<std::string,int> ObserverModesMap;
369 
371 
372  // The map of visual modes (from id to DtObserverMode)
374 
375  // map from name to id
377 
378  };
379 
380 
384  {
385  public:
386 
389 
391  virtual ~DtObserverModeManagerCreator();
392 
395  static DtObserverModeManagerCreator& instance( DtDe& de );
396 
398  virtual DtObserverModeManager* create( DtDe& );
399 
400  };
401 
402 }

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)