VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends
makVrv::DtCigiSensorController Class Reference

This class listens to signal_sensorControllerRequest from the DtCigiSensorResponder, which processes CIGI packets into non-CCL containers. This class initialises Sensor tracking through the use of DtTrackAcquirer()s and their derived classes, e.g. DtLosTrackAcquirer(). It also creates DtTrackMonitor()s to monitor the tracking of objects that are selected for tracking in the track acquirers. DtSensorResponder::DtSensorResponse structs are filled in this class from the information from both acquirers and track monitors. These structs are passed back to the DtSesnsorResponder through a signal in a thread safe manner. If you wish to use additional sensor types, IR2 for example. It must be added in the Display Settings in the vrvGui, and then added to the Cigi Mappings with a new CIGI sensor ID. This class uses SensorIDs to map and associate information with sensors. SensorIDs are used for sensor tracking, like in this class, and sensor names are used for sensor visualisation (DtCigiViewController).

Classes

struct  DtTrackObjectStruct
 

Public Types

using DtTrackObjectsMap = std::map< unsigned int, DtTrackObjectStruct * >
 

Public Member Functions

virtual ~DtCigiSensorController ()
 
virtual void reset ()
 
virtual void addTrackObject (unsigned int sensorId, DtTrackObjectStruct *trackObject)
 
virtual DtTrackObjectStructfindTrackObjectStruct (unsigned int sensorId)
 
virtual void destroyTrackObjectStruct (unsigned int sensorId)
 
virtual void slot_onSensorControlRequest (DtSensorResponder::DtSensorRequestData *request)
 
virtual void performSensorControlRequest (DtSensorResponder::DtSensorRequestData &request)
 
virtual void slot_sensorTrackAcquisitionBoxComponentReceived (unsigned int sensorId, unsigned int centerX, unsigned int centerY, unsigned int boxWidth, unsigned int boxHeight, bool render)
 
virtual void performSensorTrackAcquisitionBoxComponent (unsigned int sensorId, unsigned int centerX, unsigned int centerY, unsigned int boxWidth, unsigned int boxHeight, bool render)
 
virtual void initiateTrack (DtSensorResponder::DtSensorRequestData &request)
 
virtual void generateSensorResponse (DtSensorResponder::DtSensorResponseData &response)
 
virtual const DtTrackObjectsMaptrackObjects () const
 
virtual DtTrackObjectsMaptrackObjects ()
 
 DtCigiSensorController ()=delete
 
 DtCigiSensorController (DtCigiSensorController &)=delete
 
 DtCigiSensorController (DtCigiSensorController &&)=delete
 
DtCigiSensorControlleroperator= (DtCigiSensorController &)=delete
 
DtCigiSensorControlleroperator= (DtCigiSensorController &&)=delete
 

Protected Types

using DtSensorResponseMap = std::map< unsigned int, DtSensorResponder::DtSensorResponseData * >
 

Protected Member Functions

 DtCigiSensorController (DtDe &de, DtCigiConnection &connection)
 

Protected Attributes

DtDemyDe
 
DtCigiConnectionmyCigiConnection
 
DtSignalConnectionManager myConnections
 
DtSensorResponseMap mySensorResponseMap
 
DtTrackObjectsMap myTrackObjects
 

Friends

class DtCigiSensorControllerCreator
 

Member Typedef Documentation

Map type def for DtTrackObjects() storage , int = sensor id If the CIGI connection is using it's own thread this map is only safely accessible in the render thread.

Map type def for DtSensorResponseData() storage, int = sensor id.

Constructor & Destructor Documentation

virtual makVrv::DtCigiSensorController::~DtCigiSensorController ( )
virtual

Virtual DTOR.

makVrv::DtCigiSensorController::DtCigiSensorController ( )
delete

Not allowed.

makVrv::DtCigiSensorController::DtCigiSensorController ( DtCigiSensorController )
delete

Not allowed.

makVrv::DtCigiSensorController::DtCigiSensorController ( DtCigiSensorController &&  )
delete

Not allowed.

makVrv::DtCigiSensorController::DtCigiSensorController ( DtDe de,
DtCigiConnection connection 
)
protected

CTOR.

Member Function Documentation

virtual void makVrv::DtCigiSensorController::reset ( )
virtual

Reset the internal containers when the CIGI connection is reset via IGMode reset.

virtual const DtTrackObjectsMap& makVrv::DtCigiSensorController::trackObjects ( ) const
virtual

Get the track object map.

virtual DtTrackObjectsMap& makVrv::DtCigiSensorController::trackObjects ( )
virtual

Get the track object map.

virtual void makVrv::DtCigiSensorController::addTrackObject ( unsigned int  sensorId,
DtTrackObjectStruct trackObject 
)
virtual

Add a track object struct to our map.

virtual DtTrackObjectStruct* makVrv::DtCigiSensorController::findTrackObjectStruct ( unsigned int  sensorId)
virtual

Attempt to find the track object struct in the DtTrackObjectsMap that is associated with the in param sensor ID.

virtual void makVrv::DtCigiSensorController::destroyTrackObjectStruct ( unsigned int  sensorId)
virtual

Destroy the track object struct and all the objects/pointers inside the struct.

virtual void makVrv::DtCigiSensorController::slot_onSensorControlRequest ( DtSensorResponder::DtSensorRequestData request)
virtual

Slot for processing the struct sent from the DtSensorResponder. This method checks if the Cigi connection is using a thread, if so calls performSensorControlRequest() in a thread safe manner.

virtual void makVrv::DtCigiSensorController::performSensorControlRequest ( DtSensorResponder::DtSensorRequestData request)
virtual

This method is called from slot_onSensorControlRequest() in a thread safe manner. Processes the sensor request.

virtual void makVrv::DtCigiSensorController::slot_sensorTrackAcquisitionBoxComponentReceived ( unsigned int  sensorId,
unsigned int  centerX,
unsigned int  centerY,
unsigned int  boxWidth,
unsigned int  boxHeight,
bool  render 
)
virtual

Slot for signal sent from the CigiIGCOntrolProcessor. This method checks if the Cigi connection is using a thread, if so calls performSensorTrackAcquisitionBoxComponent() in a thread safe manner.

virtual void makVrv::DtCigiSensorController::performSensorTrackAcquisitionBoxComponent ( unsigned int  sensorId,
unsigned int  centerX,
unsigned int  centerY,
unsigned int  boxWidth,
unsigned int  boxHeight,
bool  render 
)
virtual

Creates or modifies the acquisition box associated with the sensor that is passed in. Called from slot_sensorTrackAcquisitionBoxComponentReceived() in a thread safe manner. This will render the acquisition box if the render flag is set. It is set from the component control state. Note this will only set values on the DtTrackAcquisitionBox, until we receive a Sensor Control packet and we determine which channel it is to be drawn on the acquisition will not be rendered.

virtual void makVrv::DtCigiSensorController::initiateTrack ( DtSensorResponder::DtSensorRequestData request)
virtual

Attempts to start a track on the observer & channel associated with the viewID in the sensor request. Creates a DtTrackAcquirer() and a DtTrackAcquisitionBox() for specific track mode if one does not exist yet. If the track acquirer successfully identifies an object to track, a DtTrackMonitor is created and the DtElementId of the object is passed into it for tracking. Creates a DtSensorResponseData() and fills it with a appropriate information from the track objects. Calls generateSensorResponse().

virtual void makVrv::DtCigiSensorController::generateSensorResponse ( DtSensorResponder::DtSensorResponseData response)
virtual

Passes the sensor response back to the DtSensorResponder in a thread safe manner.

DtCigiSensorController& makVrv::DtCigiSensorController::operator= ( DtCigiSensorController )
delete

Not allowed.

DtCigiSensorController& makVrv::DtCigiSensorController::operator= ( DtCigiSensorController &&  )
delete

Not allowed.

Friends And Related Function Documentation

friend class DtCigiSensorControllerCreator
friend

Member Data Documentation

DtDe& makVrv::DtCigiSensorController::myDe
protected
DtCigiConnection& makVrv::DtCigiSensorController::myCigiConnection
protected
DtSignalConnectionManager makVrv::DtCigiSensorController::myConnections
protected
DtSensorResponseMap makVrv::DtCigiSensorController::mySensorResponseMap
protected

Stores all the sensor responses This is here rather than the sensor responder as the responses need updated each frame from various render thread objects.

DtTrackObjectsMap makVrv::DtCigiSensorController::myTrackObjects
protected

The documentation for this class was generated from the following file:

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)