VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtObserverViewsManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
13 
14 #include <vrvCore/vrvCore.h>
15 
18 
19 namespace makVrv
20 {
21 
22  class DtDe;
23  class DtObserver;
24  class DtUnicode;
25 
29  {
30 
31  public:
32 
34 
36  {
38  Projection3D
39  };
40 
41  virtual ~DtObserverViewsManager();
42 
47  virtual void loadTerrainObserverViewsFile(const DtUnicode& pathTofile, bool reload);
48 
50  virtual void loadObserverViewsFile(const DtUnicode& pathTofile);
51 
54  virtual std::string generateUniqueNameForObserverViewRecord(const makArchives::DtObserverStateRecord&) const;
55 
57  virtual void addObserverViewRecordToList(const makArchives::DtObserverStateRecord& observerStateRecord);
58 
61  virtual void setObserverViewByName(const std::string& observerViewName, bool animate = false);
62 
65  virtual void setObserverViewByNameAndMode(const std::string& observerViewName, ViewProjection projection, bool animate = false);
66 
68  // it doesn't support terrain patches
69  virtual void associateObserverViewsToTerrain(bool associate);
70 
72  virtual const std::string& observerView3DDefaultRecordName() const;
73 
75  virtual void setObserverView3DDefaultRecordName(const std::string& val);
76 
78  virtual const std::string& observerView2DDefaultRecordName() const;
79 
81  virtual void setObserverView2DDefaultRecordName(const std::string& val);
82 
88  virtual bool getTerrainDefaultObserverView(std::string& defaultView, ViewProjection& projection);
89 
94  virtual void setTerrainDefaultObserverView();
95 
100  virtual void setSuppressDefaultView(const std::string& observerName);
101 
103  virtual const makArchives::DtObserverStateRecordsList& observerViewList();
104 
106  virtual void setObserverViewList(const makArchives::DtObserverStateRecordsList& val);
107 
109  virtual void saveObserverViewsFile(const DtUnicode& filename);
110 
112  virtual void saveObserverViewFile(const DtUnicode& filename, const std::string& observerViewName, ViewProjection projection);
113 
115  virtual bool renameObserverRecord(const std::string& newName, const std::string& oldName, ViewProjection projection);
116 
118  virtual void setDefaultObserverViewRecord(const std::string& recordName, ViewProjection projection);
119 
121  virtual void unSetDefaultObserverViewRecord(const std::string& recordName, ViewProjection projection);
122 
124  virtual void clearObserverViewList();
125 
127  virtual bool removeObserverViewRecord(const std::string& observerViewName, ViewProjection projection);
128 
131  virtual bool isRecordAssociatedToTerrain(const std::string& recordDisplayName);
132 
133 
135  virtual void setIsDefaultObserverViewRecord(const std::string& newName, bool isDefault);
136 
138  virtual void setIsDefaultObserverViewRecord(const makArchives::DtObserverStateRecord& record, bool isDefault);
139 
141  virtual bool setAssociateObserverViewRecord(const std::string&, bool associate);
142 
144  virtual unsigned int countAssociatedViews() const;
145 
147  // adds it to the observer view list
148  virtual void captureAndAddObserverView();
149 
151  virtual const std::string& rightClickedObserverViewName() const;
152 
154  virtual void setRightClickedObserverViewName(const std::string& val);
155 
157  virtual ViewProjection rightClickedObserverViewProjection() const;
158 
160  virtual void setRightClickedObserverViewProjection(ViewProjection projection);
161 
164  virtual bool rightClickedObserverViewIsAttached() const;
165 
168  virtual void setRightClickedObserverViewIsAttached(bool val);
169 
172  virtual void setRightClickedObserverViewIsAttached(const std::string& recordName);
173 
176  virtual bool rightClickedObserverViewIsAssociated() const;
177 
180  virtual void setRightClickedObserverViewIsAssociated(bool val);
181 
184  virtual void setRightClickedObserverViewIsAssociated(const std::string& recordName);
185 
188  virtual const std::string& observerViewsFile() const;
189 
192  virtual void setObserverViewsFile(const std::string& val);
193 
196  virtual bool isDirty() const;
197 
199  virtual void setDirty(bool val);
200 
202  virtual bool areDefaultsDirty() const;
203 
205  virtual void setDefaultsDirty(bool val);
206 
208  virtual const std::string& terrainObserverViewRecordsFileName() const;
209 
211  virtual void setTerrainObserverViewRecordsFileName(const std::string& val);
212 
214  virtual void setObserverViewRecordsFromIntializer();
215 
218  virtual bool findObserverViewByNameAndMode(const std::string& observerName, ViewProjection projection, makArchives::DtObserverStateRecord& record);
219 
221  virtual void setObserverViewByrecord(makArchives::DtObserverStateRecord& record, bool animate = false);
222 
223  private:
226 
227  protected:
230 
231  protected:
232 
234  virtual bool readObserverViewListFromFile(const DtUnicode& fileName, makArchives::DtObserverStateRecordsList& recordList);
235 
238  virtual void slot_terrainCleared(bool reload);
239 
241  virtual void slot_onApplicationQuit();
242 
244  virtual void slot_closeConfirmationMessageToBeDisplayed();
245 
248  virtual void processObserverViewRecordsList(makArchives::DtObserverStateRecordsList& incomingList, bool associated);
249 
255  virtual DtObserver* findObserverToUse();
256 
257  virtual bool observerOnSuppressList(const std::string& observerName);
258 
259  protected:
260 
262 
265 
268 
271 
274 
275  // \brief gui uses this variable to retrieve the observer view record name where the system called a
276  // right click event.
278 
279  // \brief gui uses this variable to retrieve the observer view record mode where the system called a
280  // right click event.
282 
283  // \brief gui uses this variable to check if the observer view record where the system called a
284  // right click event is attached to an entity.
286 
287  // \brief gui uses this variable to check if the observer view record where the system called a
288  // right click event is associated to the opened terrain in the scene
290 
291  // \brief observers views list
292  std::string myObserverViewsFile;
293 
294  // default 2d observer view name
295  //std::string myDefault2DObserverViewDisplayName;
296 
297  // default 3d observer view name
298  //std::string myDefault3DObserverViewDisplayName;
299 
301 
303 
305  bool myIsDirty;
306 
310 
312 
313  std::list<std::string> myObserversSuppressDefaultView;
314  };
315 
316 
320  {
321  public:
322 
325 
327  static DtObserverViewsManagerCreator& instance(DtDe&);
328 
330  static void registerInstance(DtDe& de, DtObserverViewsManagerCreator*);
331 
333  virtual DtObserverViewsManager* create(DtDe& de);
334  };
335 
339  {
340  public:
341 
343  static DtObserverViewManagerSignaler& instance(DtDe&);
344 
347 
349  boost::signal<void()> signal_observerViewListIsDirty;
350 
352  boost::signal<void(DtObserverViewsManager::ViewProjection projection, const std::string& viewName)> signal_defaultViewChanged;
353 
355  boost::signal<void(const makArchives::DtObserverStateRecord& observerView)> signal_capturedObserverViewAdded;
356 
358  boost::signal<void(const makArchives::DtObserverStateRecord& observerView)> signal_observerViewRemoved;
359 
361  boost::signal<void(const std::string& oldName, const makArchives::DtObserverStateRecord& observerView)> signal_observerViewNameModified;
362 
365 
367  boost::signal<void(const makArchives::DtObserverStateRecordsList& observerView)> signal_observerViewDissociatedToTerrain;
368 
370  boost::signal<void(const makArchives::DtObserverStateRecordsList& observerViewList)> signal_observerViewsImportedAndMerge;
371 
373  boost::signal<void(const makArchives::DtObserverStateRecordsList& observerViewList)> signal_observerViewsImportedAndReplaced;
374 
376  boost::signal<void(const makArchives::DtObserverStateRecordsList& observerViewList)> signal_associatedViewsToTerrainLoaded;
377 
379  boost::signal<void(const makArchives::DtObserverStateRecordsList& observerViewList)> signal_associatedViewsToTerrainUnLoaded;
380 
383 
385  boost::signal<void()> signal_observerViewsCleared;
386 
388  boost::signal<void(const makArchives::DtObserverStateRecord&)> signal_setDefaultObserverViewRecord;
389 
391  boost::signal<void(const makArchives::DtObserverStateRecord&)> signal_unSetDefaultObserverViewRecord;
392 
393  protected:
394 
396 
397  };
398 }
boost::signal< void(const makArchives::DtObserverStateRecord &)> signal_unSetDefaultObserverViewRecord
This signal is emitted after an observer view has been unset has default.
Definition: DtObserverViewsManager.h:391
std::string myObserverView2DDefaultRecordName
name of 2D default observer view record
Definition: DtObserverViewsManager.h:267
Virtual base class.
Definition: DtVirtualBaseClass.h:22
A unicode string.
Definition: DtUnicode.h:33
std::list< std::string > myObserversSuppressDefaultView
Definition: DtObserverViewsManager.h:313
boost::signal< void()> signal_observerViewListIsDirty
Emitted when the observer view list has unsaved changes.
Definition: DtObserverViewsManager.h:349
boost::signal< void(const makArchives::DtObserverStateRecord &)> signal_setDefaultObserverViewRecord
This signal is emitted after an observer view has been set has default.
Definition: DtObserverViewsManager.h:388
bool myDefaultsDirty
Tracks changes to defaults, which mean we should enable re-association but not enough to nag / enable...
Definition: DtObserverViewsManager.h:309
boost::signal< void(const makArchives::DtObserverStateRecordsList &observerView)> signal_observerViewDissociatedToTerrain
This signal is emitted after the observer views are dissociated from the terrain in scene...
Definition: DtObserverViewsManager.h:367
std::string myObserverViewsFile
Definition: DtObserverViewsManager.h:292
A DtObserverSettingsRecord contains the state of an observer.
Definition: DtObserverStateRecord.h:20
bool myApplicationIsClosing
Definition: DtObserverViewsManager.h:311
DtSignalConnectionManager myConnections
Definition: DtObserverViewsManager.h:300
boost::signal< void(const makArchives::DtObserverStateRecordsList &observerViewList)> signal_observerViewsImportedAndReplaced
This signal is emitted after the records from an opened osrx file replace the current observer list...
Definition: DtObserverViewsManager.h:373
boost::signal< void(const makArchives::DtObserverStateRecord &observerView)> signal_capturedObserverViewAdded
This signal is emitted after observer views are added to the list.
Definition: DtObserverViewsManager.h:355
boost::signal< void(const makArchives::DtObserverStateRecordsList &observerViewList)> signal_observerViewsImportedAndMerge
This signal is emitted after the records from an opened osrx file are added to the current observer l...
Definition: DtObserverViewsManager.h:370
boost::signal< void()> signal_observerViewsAssociatedToTerrain
This signal is emitted after the observer views are associated to the terrain in scene.
Definition: DtObserverViewsManager.h:364
boost::signal< void()> signal_observerViewsCleared
This signal is emitted after all observer views are cleared.
Definition: DtObserverViewsManager.h:385
The signaler object for the makVrv::DtTerrainPatchObject class.
Definition: DtObserverViewsManager.h:338
bool myRightClickedObserverViewIsAttached
Definition: DtObserverViewsManager.h:285
boost::signal< void(const std::string &oldName, const makArchives::DtObserverStateRecord &observerView)> signal_observerViewNameModified
This signal is emitted after the name of an observer view is modified.
Definition: DtObserverViewsManager.h:361
A facade for a DtObserverObject.
Definition: DtObserver.h:37
Contains makVrv::DtVirtualBaseClass class.
Contains makArchives::DtObserverStateRecordsList class.
DtObserverStateRecordsList class contains a collection of DtObserverStateRecord.
Definition: DtObserverStateRecordsList.h:21
DtDe & myDe
Definition: DtObserverViewsManager.h:261
boost::signal< void(const makArchives::DtObserverStateRecordsList &observerViewList)> signal_associatedViewsToTerrainLoaded
This signal is emitted after the associated views of a terrain had been added to the current observer...
Definition: DtObserverViewsManager.h:376
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
boost::signal< void(const makArchives::DtObserverStateRecordsList &observerViewList)> signal_associatedViewsToTerrainUnLoaded
This signal is emitted after the associated views of a terrain had been removed from the current obse...
Definition: DtObserverViewsManager.h:379
std::string myTerrainObserverViewRecordsFileName
terrain osrx file name
Definition: DtObserverViewsManager.h:273
std::string myObserverView3DDefaultRecordName
name of 3D default observer view record
Definition: DtObserverViewsManager.h:264
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
bool myRightClickedObserverViewIsAssociated
Definition: DtObserverViewsManager.h:289
bool myIsDirty
tracks if any change in the saved view list needs to be saved
Definition: DtObserverViewsManager.h:305
makArchives::DtObserverStateRecordsList myObserverViewList
Observer Views List.
Definition: DtObserverViewsManager.h:270
Definition: DtObserverViewsManager.h:37
ViewProjection myRightClickedObserverViewProjection
Definition: DtObserverViewsManager.h:281
bool myHasSetupObserverRecords
Definition: DtObserverViewsManager.h:302
Base class to provide boost signal/slot management.
boost::signal< void()> signal_observerViewsAboutToBeCleared
This signal is emitted before all observer views are cleared.
Definition: DtObserverViewsManager.h:382
boost::signal< void(DtObserverViewsManager::ViewProjection projection, const std::string &viewName)> signal_defaultViewChanged
emitted when a 2D or 3D default view is changed
Definition: DtObserverViewsManager.h:352
Manager for the observer view records loaded in the application.
Definition: DtObserverViewsManager.h:28
Creator class.
Definition: DtObserverViewsManager.h:319
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
boost::signal< void(const makArchives::DtObserverStateRecord &observerView)> signal_observerViewRemoved
This signal is emitted after a observer view is removed to the list.
Definition: DtObserverViewsManager.h:358
std::string myRightClickedObserverViewName
Definition: DtObserverViewsManager.h:277
ViewProjection
Definition: DtObserverViewsManager.h:35
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)