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) 2023 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  {
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  protected:
127 
129  DtPositionResponder( DtCigiConnection& connection );
130 
132  void processPositionRequest( CigiBasePositionReq& positionReq );
133 
137  void processPosReqV3( CigiPositionReqV3& posReq );
138 
142  void processPosReqV4( CigiPositionReqV4& posReq );
143 
146  virtual void sendPositionRequest( DtPositionRequestData& positionReq );
147 
148  private:
150  DtPositionResponder& operator=( const DtPositionResponder& orig );
151 
154 
155  protected:
159  typedef std::pair<DtUniqueID, int> PositionDataId;
160  typedef std::map<PositionDataId, DtPositionRequestData> PositionRequestsMap;
163 
165  };
166 
169  {
170  public:
173 
175  virtual ~DtPositionResponderCreator();
176 
178  static DtPositionResponderCreator& instance( DtDe& de );
179 
181  static DtPositionResponderCreator& instance( DtCigiConnection& con );
182 
184  virtual DtPositionResponderCreator* clone();
185 
187  static void copyInstance( DtCigiConnection& con, DtDe& de );
188 
190  virtual DtPositionResponder* create( DtCigiConnection& connection ) const;
191  protected:
192  };
193 
194 }
int disArtPartId
Definition: DtPositionResponder.h:93
DtCigiConnection & myConnection
Definition: DtPositionResponder.h:162
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:168
ObjectClass
Type of object request.
Definition: DtPositionResponder.h:63
CoordinateClass coordClass
Definition: DtPositionResponder.h:96
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:164
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:57
float roll
Definition: DtPositionResponder.h:110
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
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:159
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:161
Contains makVrv::DtUniqueID type.
std::map< PositionDataId, DtPositionRequestData > PositionRequestsMap
Definition: DtPositionResponder.h:160
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:72
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
CoordinateClass coordClass
Definition: DtPositionResponder.h:106

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)