VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTrackObjectFactory.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>
13 
15 #include <vrvCore/DtUniqueID.h>
16 #include <boost/unordered_map.hpp>
17 #include <string>
18 
19 namespace makVrv
20 {
21  class DtDe;
22  class DtObserver;
23  class DtChannel;
24  class DtTrackAcquirerCreator;
25  class DtTrackMonitorCreator;
26  class DtTrackAcquirer;
27  class DtTrackMonitor;
28 
32  {
33  public:
35  typedef boost::unordered_map<unsigned int, DtTrackAcquirerCreator*> AcquirerCreatorMap;
36  typedef boost::unordered_map<unsigned int, DtTrackMonitorCreator*> MonitorCreatorMap;
37 
40 
42  virtual ~DtTrackObjectFactory();
43 
46 
48  DtTrackObjectFactory& operator=( const DtTrackObjectFactory& rhs );
49 
51  static DtTrackObjectFactory& instance( DtDe& de );
52 
54  virtual DtTrackObjectFactory* clone();
55 
57 
63  virtual void addTrackAcquirerCreator( const unsigned int trackModeType, DtTrackAcquirerCreator* creator );
64 
67  DtTrackAcquirer* createTrackAcquirer( const unsigned int trackModeType, DtDe& de, DtObserver& observer, DtChannel& channel );
68 
70  const AcquirerCreatorMap& acquirerCreators() const;
71 
73  const DtTrackAcquirerCreator* findAcquirerCreator( const unsigned int& trackModeType ) const;
75 
78 
83  virtual void addTrackMonitorCreator( const unsigned int trackModeType, DtTrackMonitorCreator* creator );
84 
87  DtTrackMonitor* createTrackMonitor( const unsigned int trackModeType, DtDe& de, DtObserver& observer,
88  DtChannel& channel, DtElementID& elementId );
89 
91  const MonitorCreatorMap& monitorCreators() const;
92 
94  const DtTrackMonitorCreator* findMonitorCreator( const unsigned int& trackModeType ) const;
96 
97  protected:
100  };
101 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
MonitorCreatorMap myMonitorCreators
Definition: DtTrackObjectFactory.h:99
Base class for Track Monitors which monitor the tracking of an object. For example, a current derived class is DtLosTrackMonitor, which monitors LOS to an Entity. Track Monitors should set myTrackIsActive to false in their overide of update if the condition for monitoring that object is false. For examples when LOS is lost. To &quot;reactivate&quot; monitoring set the objectID using setObjectId()
Definition: DtTrackMonitor.h:36
A factory for DtTrackAcquirer &amp; DtTrackMonitor Objects.
Definition: DtTrackObjectFactory.h:31
The abstract Channel Class.
Definition: DtChannel.h:35
AcquirerCreatorMap myAcquirerCreators
Definition: DtTrackObjectFactory.h:98
Abstract DtTrackAcquirer creator.
Definition: DtTrackAcquirer.h:114
A facade for a DtObserverObject.
Definition: DtObserver.h:37
Contains makVrv::DtVirtualBaseClass class.
Base class for objects that identify entities that can be tracked on screen or in the scene...
Definition: DtTrackAcquirer.h:41
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
boost::unordered_map< unsigned int, DtTrackMonitorCreator * > MonitorCreatorMap
Definition: DtTrackObjectFactory.h:36
boost::unordered_map< unsigned int, DtTrackAcquirerCreator * > AcquirerCreatorMap
Maps a track mode type to an acquirer creator.
Definition: DtTrackObjectFactory.h:35
Contains makVrv::DtUniqueID type.
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
Abstract DtTrackMonitor creator.
Definition: DtTrackMonitor.h:103
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)