VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTrackMonitor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtTickable.h>
14 #include <vrvCore/DtUniqueID.h>
15 
18 
19 #include <matrix/geodeticCoord.h>
20 
21 namespace makVrv
22 {
23  class DtDe;
24  class DtObserver;
25  class DtChannel;
26  class DtWindowPolygonAgent;
27  class DtCoordinateSystem;
28 
37  {
38  friend class DtTrackMonitorCreator;
39  public:
41  virtual ~DtTrackMonitor();
42 
45  virtual void update( DtTime tNow );
46 
49  virtual bool needsUpdate( DtTime tNow );
50 
52  virtual void getTrackedObjectGateInfo( unsigned int& gateXSize, unsigned int& gateYSize,
53  double& gateXPosition, double& gateYPosition );
54 
56  virtual DtVector trackedObjectPosition( );
57 
59  virtual DtGeodeticCoord trackedObjectGeodeticCoord( );
60 
63  virtual void setTrackBoxOn( bool boxOn );
64 
66  virtual bool activeTrack();
67 
69  virtual DtElementID const monitoredObjectId( ) const;
70  virtual void setObjectId(const DtElementID& entity );
71 
72  protected:
74  DtTrackMonitor( DtDe& de, DtObserver& observer, DtChannel& channel, DtElementID& objectIdToMonitor );
75 
77  virtual void slot_coordinateSystemChanged();
78 
79  protected:
83  DtWindowPolygonAgent* myTrackBoxWindowPolygon;
84 
88  unsigned int myGateXSize;
89  unsigned int myGateYSize;
92 
95  DtCoordinateSystem* myCoordinateSystem = nullptr;
96 
97  };
98 
102  {
103  public:
106  {
107  }
108 
111  {
112  }
113 
115  virtual DtTrackMonitorCreator* clone() const = 0;
116 
118  virtual DtTrackMonitor* create( DtDe& de, DtObserver& observer, DtChannel& channel, DtElementID& objectIdToMonitor ) const = 0;
119  };
120 
121  template <typename TrackMonitorObject>
123  {
124  public:
127  {
128  }
129 
132  {
133  }
134 
136  virtual DtTrackMonitorCreator* clone() const
137  {
139  }
140 
142  virtual DtTrackMonitor* create( DtDe& de, DtObserver& observer, DtChannel& channel, DtElementID& objectIdToMonitor ) const
143  {
144  return new TrackMonitorObject( de, observer, channel, objectIdToMonitor );
145  }
146  };
147 }
DtDe & myDe
Definition: DtTrackMonitor.h:80
virtual ~DtTrackMonitorCreator()
DTOR.
Definition: DtTrackMonitor.h:110
DtWindowPolygonAgent * myTrackBoxWindowPolygon
Definition: DtTrackMonitor.h:83
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
DtVector myTrackedObjectPosition
Definition: DtTrackMonitor.h:90
unsigned int myGateYSize
Definition: DtTrackMonitor.h:89
virtual DtTrackMonitorCreator * clone() const
Clone.
Definition: DtTrackMonitor.h:136
An abstract base class for objects that require updates. This object automatically adds itself to a D...
Definition: DtTickable.h:26
bool myTrackIsActive
Definition: DtTrackMonitor.h:85
bool myTrackBoxOn
Definition: DtTrackMonitor.h:86
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
A facade for a DtObserverObject.
Definition: DtObserver.h:38
Contains makVrv::DtVirtualBaseClass class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtTrackMonitorCreator()
CTOR.
Definition: DtTrackMonitor.h:105
DtChannel * myChannel
Definition: DtTrackMonitor.h:82
DtElementID myObjectIdToMonitor
Definition: DtTrackMonitor.h:91
DtTrackMonitorCreatorTemplate()
CTOR.
Definition: DtTrackMonitor.h:126
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
virtual ~DtTrackMonitorCreatorTemplate()
DTOR.
Definition: DtTrackMonitor.h:131
Definition: DtTrackMonitor.h:122
Base class to provide boost signal/slot management.
Contains the declaration for makVrv::DtTickable.
unsigned int myGateXSize
The XY Size of the entity on screen in pixels.
Definition: DtTrackMonitor.h:88
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:76
Abstract DtTrackMonitor creator.
Definition: DtTrackMonitor.h:101
DtObserver * myObserver
Definition: DtTrackMonitor.h:81
virtual DtTrackMonitor * create(DtDe &de, DtObserver &observer, DtChannel &channel, DtElementID &objectIdToMonitor) const
Create Function.
Definition: DtTrackMonitor.h:142
Contains DLL export macros.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)