VR-Forces 5.0.1 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 
94 
97  DtCoordinateSystem* myCoordinateSystem = nullptr;
98 
99  };
100 
104  {
105  public:
108  {
109  }
110 
113  {
114  }
115 
117  virtual DtTrackMonitorCreator* clone() const = 0;
118 
120  virtual DtTrackMonitor* create( DtDe& de, DtObserver& observer, DtChannel& channel, DtElementID& objectIdToMonitor ) const = 0;
121  };
122 
123  template <typename TrackMonitorObject>
125  {
126  public:
129  {
130  }
131 
134  {
135  }
136 
138  virtual DtTrackMonitorCreator* clone() const
139  {
141  }
142 
144  virtual DtTrackMonitor* create( DtDe& de, DtObserver& observer, DtChannel& channel, DtElementID& objectIdToMonitor ) const
145  {
146  return new TrackMonitorObject( de, observer, channel, objectIdToMonitor );
147  }
148  };
149 }
DtDe & myDe
Definition: DtTrackMonitor.h:80
virtual ~DtTrackMonitorCreator()
DTOR.
Definition: DtTrackMonitor.h:112
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:138
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
The abstract Channel Class.
Definition: DtChannel.h:35
A facade for a DtObserverObject.
Definition: DtObserver.h:37
Contains makVrv::DtVirtualBaseClass class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtTrackMonitorCreator()
CTOR.
Definition: DtTrackMonitor.h:107
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtChannel * myChannel
Definition: DtTrackMonitor.h:82
DtSignalConnectionManager myConnections
Definition: DtTrackMonitor.h:93
DtElementID myObjectIdToMonitor
Definition: DtTrackMonitor.h:91
DtTrackMonitorCreatorTemplate()
CTOR.
Definition: DtTrackMonitor.h:128
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:41
virtual ~DtTrackMonitorCreatorTemplate()
DTOR.
Definition: DtTrackMonitor.h:133
Definition: DtTrackMonitor.h:124
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:70
Abstract DtTrackMonitor creator.
Definition: DtTrackMonitor.h:103
DtObserver * myObserver
Definition: DtTrackMonitor.h:81
virtual DtTrackMonitor * create(DtDe &de, DtObserver &observer, DtChannel &channel, DtElementID &objectIdToMonitor) const
Create Function.
Definition: DtTrackMonitor.h:144
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)