VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtObserverObjectManager.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 <vrvUtil/signalslib.h>
13 #include <vrvCore/vrvCore.h>
14 #include <map>
15 #include <vector>
16 
17 namespace makVrv
18 {
19  class DtDe;
20  class DtObserverObject;
21  class DtRenderer;
22 
26  {
27  public:
28 
29  typedef std::vector<DtObserverObject*> ObserverObjectsList;
30 
33 
35  virtual ~DtObserverObjectManager();
36 
38  virtual void update( double simTime );
39 
41  virtual void addObject( DtObserverObject* observer,
42  const std::string& name );
43 
45  virtual void removeObject( DtObserverObject* observer );
46 
49  virtual void removeObject( const std::string& name );
50 
52  DtObserverObject* findObserverObjectByName( const std::string& name );
54  const DtObserverObject* findObserverObjectByName(
55  const std::string& name ) const;
57 
59  const ObserverObjectsList& observerObjects() const;
60 
62  boost::signalslib::signal<void (const std::string&)> signal_observerAdded;
63 
65  boost::signalslib::signal<void (const std::string&)> signal_observerRemoved;
66 
67  protected:
68 
69  typedef std::map<std::string, DtObserverObject*> ObserverObjectsMap;
70 
71  void removeObject( ObserverObjectsMap& observers,
72  DtObserverObject* observer );
73 
74  void removeObject(ObserverObjectsMap& observers,
75  const std::string& name );
76 
77  void addObject( ObserverObjectsMap& observers,
78  DtObserverObject* observer, const std::string& name );
79 
81 
84  mutable std::vector<int> myMutableModelSets;
85  };
86 }
87 
88 
std::map< std::string, DtObserverObject * > ObserverObjectsMap
Definition: DtObserverObjectManager.h:69
ObserverObjectsList myObserverObjectsList
Definition: DtObserverObjectManager.h:83
The class responsible for managing and updating observer objects.
Definition: DtObserverObjectManager.h:25
DtDe & myDe
Definition: DtObserverObjectManager.h:80
ObserverObjectsMap myObserverObjects
Definition: DtObserverObjectManager.h:82
std::vector< int > myMutableModelSets
Definition: DtObserverObjectManager.h:84
std::vector< DtObserverObject * > ObserverObjectsList
Definition: DtObserverObjectManager.h:29
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
This abstract base class defines the interface for OS-specific keyboard and mouse event listeners...
Definition: DtObserverObject.h:29
boost::signalslib::signal< void(const std::string &)> signal_observerAdded
Boost signal emitted when an observer is added.
Definition: DtObserverObjectManager.h:62
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
boost::signalslib::signal< void(const std::string &)> signal_observerRemoved
Boost signal emitted when an observer is removed.
Definition: DtObserverObjectManager.h:65
Contains DLL export macros.

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)