VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtLosResponder.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 <vrvUtil/coordUtils.h>
19 
20 #include <matrix/geodeticCoord.h>
21 
22 #include <vrvUtil/signalslib.h>
23 
24 class CigiBaseLosSegReq;
25 class CigiLosSegReqV3_2;
26 class CigiLosSegReqV4;
27 
28 class CigiBaseLosVectReq;
29 class CigiLosVectReqV3_2;
30 class CigiLosVectReqV4;
31 
32 namespace makVrv
33 {
34  class DtCigiConnection;
35  class DtCigiLosRequest;
36  class DtCigiLosBasicResponse;
37  class DtCigiLosExtendedResponse;
38 
44  {
45  public:
46  friend class DtLosResponderCreator;
47 
49  virtual ~DtLosResponder();
50 
52  virtual void generateLosBasicResponse(DtCigiLosBasicResponse* losResponse);
53 
55  virtual void generateLosExtendedResponse(DtCigiLosExtendedResponse* losResponse);
56 
59  virtual void processLosRequests();
60 
62  vrvSignalsLib::signal<void (DtCigiLosRequest*, bool takeOwnership)> signal_losCheckRequested;
63 
64  protected:
66  DtLosResponder(DtCigiConnection& connection);
67 
70  virtual void processLosSegmentRequest( CigiBaseLosSegReq& losSegReq);
71 
73  virtual void processLosVectorRequest( CigiBaseLosVectReq& losVectReq);
74 
76  virtual void processLosSegReqV3( CigiLosSegReqV3_2& losSegReq );
77 
79  virtual void processLosSegReqV4( CigiLosSegReqV4& losSegReq );
80 
82  virtual void processLosVectReqV3( CigiLosVectReqV3_2& losVectReq );
83 
85  virtual void processLosVectReqV4( CigiLosVectReqV4& losVectReq );
86 
88  virtual void setDatabaseCoordinateFromGeodetic(const DtGeodeticCoord& from,
89  DtVector& to);
90 
92  virtual void addPeriodicLosRequest(DtCigiLosRequest* request);
93 
95  virtual void sendLosRequest(DtCigiLosRequest* request, bool takeOwnership);
96 
97 
98  protected:
100  std::map<int, DtCigiLosRequest*> myLosIdToRequestMap;
101 
103  };
104 
107  {
108  public:
111 
113  virtual ~DtLosResponderCreator();
114 
116  static DtLosResponderCreator& instance( DtDe& de );
117 
119  static DtLosResponderCreator& instance( DtCigiConnection& con );
120 
122  virtual DtLosResponderCreator* clone();
123 
125  static void copyInstance(DtCigiConnection& con, DtDe& de);
126 
128  virtual DtLosResponder* create( DtCigiConnection& connection ) const;
129  };
130 }
131 
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Contains additional coordinate system related utilities.
DtCigiConnection & myConnection
Definition: DtLosResponder.h:99
Contains DLL export macros.
A DtCigiIntersectionHandler processes CIGI LOS Requests and packages the results into instances of th...
Definition: DtCigiLosExtendedResponse.h:29
std::map< int, DtCigiLosRequest * > myLosIdToRequestMap
Definition: DtLosResponder.h:100
Contains makVrv::DtVirtualBaseClass class.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtSignalConnectionManager myConnections
Definition: DtLosResponder.h:102
A DtCigiIntersectionHandler processes CIGI LOS Requests and packages the results into instances of th...
Definition: DtCigiLosBasicResponse.h:27
This class is responsible for the actual processing of CIGI data. This holds the entity visualizer...
Definition: DtCigiConnection.h:57
vrvSignalsLib::signal< void(DtCigiLosRequest *, bool takeOwnership)> signal_losCheckRequested
Signal to the intersection handler of a request.
Definition: DtLosResponder.h:62
Creator class for the LOS Responder.
Definition: DtLosResponder.h:106
Base class to provide boost signal/slot management.
A DtLosResponder processes CIGI LOS Segment Request and LOS Vector Request messages and packages them...
Definition: DtCigiLosRequest.h:26
Contains makVrv::DtUniqueID type.
A DtLosResponder processes CIGI LOS Segment Request and LOS Vector Request messages, and either immediately signals the DtCigiIntersectionHandler of a request or adds a periodic request to its queue.
Definition: DtLosResponder.h:43
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

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)