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 | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Friends
makVrv::DtPositionResponder Class Reference

A DtPositionResponder processes CIGI Position request messages This class catches signals from the DtCigiSignalProcessor for CigiBasePositionReq packets and splits the processing for the base packet into V3 and V4 methods. This class sends DtPositionRequestData structs via signals to the DtCigiPositionHandler for processing, as it has access to the rendering thread, and this class does not. The Position Response Data struct is declared in this class for tidyness, it is not used here. It is utilised by the DtCigiPositionHandler. All position requests for the connection are also stored here. The DtCigiConnection calls processContinuousPositionRequests to iterate through saved requests Motion tracker positional requests are not supported Geodetic requests for articulated parts are not supported.

Classes

struct  DtPositionRequestData
 
struct  DtPositionResponseData
 

Public Types

enum  UpdateMode { OneShot = 0, Continuous }
 
enum  ObjectClass {
  Entity = 0, ArticulatedPart, View, ViewGroup,
  MotionTracker
}
 
enum  CoordinateClass { Geodetic = 0, ParentEntity, Submodel }
 

Public Member Functions

virtual ~DtPositionResponder ()
 
virtual void processContinuousPositionRequests ()
 
virtual void generatePositionResponse (DtPositionResponseData &responseDate)
 
virtual void reset ()
 
 DtPositionResponder ()=delete
 
 DtPositionResponder (const DtPositionResponder &)=delete
 
 DtPositionResponder (DtPositionResponder &&)=delete
 
DtPositionResponderoperator= (const DtPositionResponder &)=delete
 
DtPositionResponderoperator= (DtPositionResponder &&)=delete
 

Public Attributes

vrvSignalsLib::signal< void(DtPositionRequestData *)> signal_positionCheckRequest
 

Protected Types

using PositionDataId = std::pair< DtUniqueID, int >
 
using PositionRequestsMap = std::map< PositionDataId, DtPositionRequestData >
 

Protected Member Functions

 DtPositionResponder (DtCigiConnection &connection)
 
void processPositionRequest (CigiBasePositionReq &positionReq)
 
void processPosReqV3 (CigiPositionReqV3 &posReq)
 
void processPosReqV4 (CigiPositionReqV4 &posReq)
 
virtual void sendPositionRequest (DtPositionRequestData &positionReq)
 

Protected Attributes

PositionRequestsMap myPositionRequests
 
DtCigiConnectionmyConnection
 
DtSignalConnectionManager myConnections
 

Friends

class DtPositionResponderCreator
 

Member Typedef Documentation

Object ID & articulated part id Object ID = ViewID/ViewGrp ID when they are requested Entity requests with no required, artpartid = -1.

Member Enumeration Documentation

Update mode for request.

Enumerator
OneShot 
Continuous 

Type of object request.

Enumerator
Entity 
ArticulatedPart 
View 
ViewGroup 
MotionTracker 

Coordinate System of request. Parent - invalid for top level entities Submodel – This value shall be valid only when Object Class is set to Articulated Part (1).

Enumerator
Geodetic 
ParentEntity 
Submodel 

Constructor & Destructor Documentation

virtual makVrv::DtPositionResponder::~DtPositionResponder ( )
virtual

Destructor/.

makVrv::DtPositionResponder::DtPositionResponder ( )
delete

Not allowed.

makVrv::DtPositionResponder::DtPositionResponder ( const DtPositionResponder )
delete

Not allowed.

makVrv::DtPositionResponder::DtPositionResponder ( DtPositionResponder &&  )
delete

Not allowed.

makVrv::DtPositionResponder::DtPositionResponder ( DtCigiConnection connection)
protected

Constructor.

Member Function Documentation

virtual void makVrv::DtPositionResponder::processContinuousPositionRequests ( )
virtual

Iterates through position requests that are set to continuous.

virtual void makVrv::DtPositionResponder::generatePositionResponse ( DtPositionResponseData responseDate)
virtual

Makes a call to the DtCigiConnetion to send a position response. Converts any DtUnique entity IDs to CIGI Entity IDs, or DIS IDs if the connection object flag is checked.

virtual void makVrv::DtPositionResponder::reset ( )
virtual

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

DtPositionResponder& makVrv::DtPositionResponder::operator= ( const DtPositionResponder )
delete

Not allowed.

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

Not allowed.

void makVrv::DtPositionResponder::processPositionRequest ( CigiBasePositionReq &  positionReq)
protected

Takes CIGI packet passes to version processing.

void makVrv::DtPositionResponder::processPosReqV3 ( CigiPositionReqV3 &  posReq)
protected

V3 Takes CIGI packet, sends response, adds to continuous request if needed.

void makVrv::DtPositionResponder::processPosReqV4 ( CigiPositionReqV4 &  posReq)
protected

V4 Takes CIGI packet, sends response, adds to continuous request if needed.

virtual void makVrv::DtPositionResponder::sendPositionRequest ( DtPositionRequestData positionReq)
protectedvirtual

Sends the position request to the DtPositionHandler by raising a signal_positionCheckRequest signal.

Friends And Related Function Documentation

friend class DtPositionResponderCreator
friend

Member Data Documentation

vrvSignalsLib::signal<void ( DtPositionRequestData* )> makVrv::DtPositionResponder::signal_positionCheckRequest

Signal to Position Handler for processing.

PositionRequestsMap makVrv::DtPositionResponder::myPositionRequests
protected
DtCigiConnection& makVrv::DtPositionResponder::myConnection
protected
DtSignalConnectionManager makVrv::DtPositionResponder::myConnections
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)