VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtPositionResponder.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCigi/vrvCigi.h>
13 #include <vrvCore/DtUniqueID.h>
14 
17 
18 #include <matrix/vlVector.h> // need this for struct
19 
20 #include <map>
21 
22 #include <vrvUtil/signalslib.h>
23 
24 class CigiBasePositionReq;
25 class CigiPositionReqV3;
26 class CigiPositionReqV4;
27 
28 namespace makVrv
29 {
30  class DtCigiConnection;
31  class DtCigiEntityVisualizer;
32  class DtDe;
33  class DtChannelConfiguration;
34 
51  {
52  public:
54 
57  {
58  OneShot = 0,
59  Continuous
60  };
61 
64  {
65  Entity = 0,
69  MotionTracker
70  };
71 
76  {
77  Geodetic = 0,
79  Submodel
80  };
81 
88  {
97  };
98 
102  {
107  DtVector position;
108  float yaw;
109  float pitch;
110  float roll;
111  };
112 
114  virtual ~DtPositionResponder();
115 
117  vrvSignalsLib::signal<void ( DtPositionRequestData* )> signal_positionCheckRequest;
118 
120  virtual void processContinuousPositionRequests();
121 
125  virtual void generatePositionResponse( DtPositionResponseData& responseDate );
126 
128  virtual void reset();
129 
132  DtPositionResponder() = delete;
133  DtPositionResponder( const DtPositionResponder& ) = delete;
135  DtPositionResponder& operator=( const DtPositionResponder& ) = delete;
136  DtPositionResponder& operator=( DtPositionResponder&& ) = delete;
138  protected:
139 
141  DtPositionResponder( DtCigiConnection& connection );
142 
144  void processPositionRequest( CigiBasePositionReq& positionReq );
145 
149  void processPosReqV3( CigiPositionReqV3& posReq );
150 
154  void processPosReqV4( CigiPositionReqV4& posReq );
155 
158  virtual void sendPositionRequest( DtPositionRequestData& positionReq );
159 
160  protected:
164  using PositionDataId = std::pair<DtUniqueID, int>;
165  using PositionRequestsMap = std::map<PositionDataId, DtPositionRequestData>;
168 
170  };
171 
174  {
175  public:
178 
180  virtual ~DtPositionResponderCreator();
181 
183  static DtPositionResponderCreator& instance( DtDe& de );
184 
186  static DtPositionResponderCreator& instance( DtCigiConnection& con );
187 
189  virtual DtPositionResponderCreator* clone();
190 
192  static void copyInstance( DtCigiConnection& con, DtDe& de );
193 
195  virtual DtPositionResponder* create( DtCigiConnection& connection ) const;
196  protected:
197  };
198 
199 }
int disArtPartId
Definition: DtPositionResponder.h:93
DtCigiConnection & myConnection
Definition: DtPositionResponder.h:167
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Struct for all Position Request data ParentID &amp; ArticulatedModelID = -1 when not in use...
Definition: DtPositionResponder.h:87
vrvSignalsLib::signal< void(DtPositionRequestData *)> signal_positionCheckRequest
Signal to Position Handler for processing.
Definition: DtPositionResponder.h:117
ObjectClass objectClass
Definition: DtPositionResponder.h:105
int cigiArtPartId
Definition: DtPositionResponder.h:92
Creator class for the DtPositionResponder.
Definition: DtPositionResponder.h:173
ObjectClass
Type of object request.
Definition: DtPositionResponder.h:63
CoordinateClass coordClass
Definition: DtPositionResponder.h:96
std::pair< DtUniqueID, int > PositionDataId
Object ID &amp; articulated part id Object ID = ViewID/ViewGrp ID when they are requested Entity requests...
Definition: DtPositionResponder.h:164
Definition: DtPositionResponder.h:78
DtUniqueID articulatedModelID
Definition: DtPositionResponder.h:91
Contains DLL export macros.
Definition: DtPositionResponder.h:66
Struct for all Position response data In degrees.
Definition: DtPositionResponder.h:101
DtUniqueID objectId
Definition: DtPositionResponder.h:89
int artPartId
Definition: DtPositionResponder.h:104
DtSignalConnectionManager myConnections
Definition: DtPositionResponder.h:169
float yaw
Definition: DtPositionResponder.h:108
CoordinateClass
Coordinate System of request. Parent - invalid for top level entities Submodel – This value shall be v...
Definition: DtPositionResponder.h:75
Contains makVrv::DtVirtualBaseClass class.
A DtPositionResponder processes CIGI Position request messages This class catches signals from the Dt...
Definition: DtPositionResponder.h:50
DtUniqueID objectId
Definition: DtPositionResponder.h:103
ObjectClass objectClass
Definition: DtPositionResponder.h:95
DtUniqueID parentId
Definition: DtPositionResponder.h:90
float pitch
Definition: DtPositionResponder.h:109
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
UpdateMode updateMode
Definition: DtPositionResponder.h:94
This class is responsible for the actual processing of CIGI data. This holds the entity visualizer...
Definition: DtCigiConnection.h:58
float roll
Definition: DtPositionResponder.h:110
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Definition: DtPositionResponder.h:67
DtVector position
Definition: DtPositionResponder.h:107
Definition: DtPositionResponder.h:68
Base class to provide boost signal/slot management.
PositionRequestsMap myPositionRequests
Definition: DtPositionResponder.h:166
Contains makVrv::DtUniqueID type.
UpdateMode
Update mode for request.
Definition: DtPositionResponder.h:56
Definition: vrfObjectManipulationHandlerBaseClass.h:56
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
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
std::map< PositionDataId, DtPositionRequestData > PositionRequestsMap
Definition: DtPositionResponder.h:165
CoordinateClass coordClass
Definition: DtPositionResponder.h:106

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)