VR-Forces 4.8 Class Documentation
 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) 2020 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCigi/vrvCigi.h>
13 #include <vrvCore/DtUniqueID.h>
15 
16 #include <matrix/vlVector.h> // need this for struct
17 
18 #include <map>
19 
20 #include <boost/signal.hpp>
21 
22 class CigiBasePositionReq;
23 class CigiPositionReqV3;
24 class CigiPositionReqV4;
25 
26 namespace makVrv
27 {
28  class DtCigiConnection;
29  class DtCigiEntityVisualizer;
30  class DtDe;
31  class DtChannelConfiguration;
32 
49  {
50  public:
52 
55  {
56  OneShot = 0,
57  Continuous
58  };
59 
62  {
63  Entity = 0,
67  MotionTracker
68  };
69 
74  {
75  Geodetic = 0,
77  Submodel
78  };
79 
86  {
95  };
96 
100  {
106  float yaw;
107  float pitch;
108  float roll;
109  };
110 
112  virtual ~DtPositionResponder();
113 
115  boost::signal<void ( DtPositionRequestData* )> signal_positionCheckRequest;
116 
118  virtual void processContinuousPositionRequests();
119 
123  virtual void generatePositionResponse( DtPositionResponseData& responseDate );
124  protected:
125 
127  DtPositionResponder( DtCigiConnection& connection );
128 
130  void processPositionRequest( CigiBasePositionReq& positionReq );
131 
135  void processPosReqV3( CigiPositionReqV3& posReq );
136 
140  void processPosReqV4( CigiPositionReqV4& posReq );
141 
144  virtual void sendPositionRequest( DtPositionRequestData& positionReq );
145 
146  private:
148  DtPositionResponder& operator=( const DtPositionResponder& orig );
149 
152 
153  protected:
157  typedef std::pair<DtUniqueID, int> PositionDataId;
158  typedef std::map<PositionDataId, DtPositionRequestData> PositionRequestsMap;
161 
162  };
163 
166  {
167  public:
170 
172  virtual ~DtPositionResponderCreator();
173 
175  static DtPositionResponderCreator& instance( DtDe& de );
176 
178  static DtPositionResponderCreator& instance( DtCigiConnection& con );
179 
181  virtual DtPositionResponderCreator* clone();
182 
184  static void copyInstance( DtCigiConnection& con, DtDe& de );
185 
187  virtual DtPositionResponder* create( DtCigiConnection& connection ) const;
188  protected:
189  };
190 
191 }
int disArtPartId
Definition: DtPositionResponder.h:91
DtCigiConnection & myConnection
Definition: DtPositionResponder.h:160
Virtual base class.
Definition: DtVirtualBaseClass.h:22
Struct for all Position Request data ParentID &amp; ArticulatedModelID = -1 when not in use...
Definition: DtPositionResponder.h:85
ObjectClass objectClass
Definition: DtPositionResponder.h:103
int cigiArtPartId
Definition: DtPositionResponder.h:90
Creator class for the DtPositionResponder.
Definition: DtPositionResponder.h:165
ObjectClass
Type of object request.
Definition: DtPositionResponder.h:61
CoordinateClass coordClass
Definition: DtPositionResponder.h:94
Definition: DtPositionResponder.h:76
DtUniqueID articulatedModelID
Definition: DtPositionResponder.h:89
Contains DLL export macros.
Definition: DtPositionResponder.h:64
Struct for all Position response data In degrees.
Definition: DtPositionResponder.h:99
DtUniqueID objectId
Definition: DtPositionResponder.h:87
int artPartId
Definition: DtPositionResponder.h:102
float yaw
Definition: DtPositionResponder.h:106
CoordinateClass
Coordinate System of request.
Definition: DtPositionResponder.h:73
Contains makVrv::DtVirtualBaseClass class.
A DtPositionResponder processes CIGI Position request messages This class catches signals from the Dt...
Definition: DtPositionResponder.h:48
DtUniqueID objectId
Definition: DtPositionResponder.h:101
ObjectClass objectClass
Definition: DtPositionResponder.h:93
DtUniqueID parentId
Definition: DtPositionResponder.h:88
float pitch
Definition: DtPositionResponder.h:107
UpdateMode updateMode
Definition: DtPositionResponder.h:92
This class is responsible for the actual processing of CIGI data.
Definition: DtCigiConnection.h:56
float roll
Definition: DtPositionResponder.h:108
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
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:157
Definition: DtPositionResponder.h:65
DtVector position
Definition: DtPositionResponder.h:105
Definition: DtPositionResponder.h:66
PositionRequestsMap myPositionRequests
Definition: DtPositionResponder.h:159
Contains makVrv::DtUniqueID type.
std::map< PositionDataId, DtPositionRequestData > PositionRequestsMap
Definition: DtPositionResponder.h:158
UpdateMode
Update mode for request.
Definition: DtPositionResponder.h:54
Definition: vrfObjectManipulationHandlerBaseClass.h:57
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
boost::signal< void(DtPositionRequestData *)> signal_positionCheckRequest
Signal to Position Handler for processing.
Definition: DtPositionResponder.h:115
CoordinateClass coordClass
Definition: DtPositionResponder.h:104

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)