VR-Forces 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
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
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:72
Abstract DtTrackMonitor creator.
Definition: DtTrackMonitor.h:101
Contains DLL export macros.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)