VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCigiIntersectionHandler.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>
15 
16 #include <vrvCore/DtUniqueID.h>
17 
20 
21 #include <matrix/vlVector.h>
22 #include <matrix/geodeticCoord.h>
23 
24 namespace makVrv
25 {
26  class DtDe;
27  class DtCigiConnection;
28  class DtCigiLosRequest;
29  class DtCigiLosBasicResponse;
30  class DtCigiLosExtendedResponse;
31  class DtIntersectorResult;
32 
40  {
41  public:
43 
45  virtual ~DtCigiIntersectionHandler();
46 
47  protected:
50 
53  virtual void slot_onHatHotRequest( const DtHatHotResponder::DtHatHotRequestData& request );
54 
59  virtual void performHatHotRequest( const DtHatHotResponder::DtHatHotRequestData& request );
60 
63  virtual void slot_lineOfSightCheckRequest(DtCigiLosRequest* request, bool takeOwnership);
64 
80  virtual void performLineOfSightRequest(DtCigiLosRequest* request, bool takeOwnership);
81 
85  virtual void slot_onCollisionSegmentCheckRequest( DtCollisionResponder::DtCollisionSegmentDefinitionData* request);
86 
91  virtual void performCollisionSegmentRequest( DtCollisionResponder::DtCollisionSegmentDefinitionData* request );
92 
99  virtual void setDatabaseCoordinateFromEntity(DtUniqueID entity,
100  const DtVector& entityCoord, DtVector& databaseCoord);
101 
107  virtual void setEntityCoordinateFromDatabase(DtUniqueID entity,
108  const DtVector& databaseCoord, DtVector& entityCoord);
109 
111  virtual void setGeodeticCoordinateFromDatabase(const DtVector& from,
112  DtGeodeticCoord& to);
113 
117  virtual void getNormalAzAndEl(const DtVector& databaseCoord, const DtVector& normal,
118  float& normalAz, float& normalEl);
119 
124  virtual double groundHeight(const DtVector& currentLocal, bool& foundIntersection);
125 
133  virtual double groundHeightExtended( const DtVector& currentLocal, bool& foundIntersection,
134  float& normalAzimuth, float& normalElevation, int& elementType );
135 
140  virtual void generateLosBasicResponse(DtCigiLosBasicResponse* losResponse);
141 
146  virtual void generateLosExtendedResponse(DtCigiLosExtendedResponse* losResponse);
147 
151  virtual void generateHatHotResponse( const DtHatHotResponder::DtHatHotResponseData* hatHotReponse );
152 
156  virtual void generateCollisionSegmentResponse( DtCollisionResponder::DtCollisionSegmentResponseData& collResponse);
157 
158  protected:
159  virtual DtCigiLosBasicResponse* createBasicResponse(const DtVector& start, DtIntersectorResult& result,
160  unsigned int respCount, DtCigiLosRequest* req);
161 
162  virtual DtCigiLosBasicResponse* createBasicNoIsectResponse(DtCigiLosRequest* req);
163 
164  virtual DtCigiLosExtendedResponse* createExtendedResponse(const DtVector& start, DtIntersectorResult& result,
165  unsigned int respCount, DtCigiLosRequest* req);
166 
167  virtual DtCigiLosExtendedResponse* createExtendedNoIsectResponse(DtCigiLosRequest* req);
168 
169  protected:
173  };
174 
178  {
179  public:
182 
185 
187  static DtCigiIntersectionHandlerCreator& instance( DtDe& de );
188 
190  virtual DtCigiIntersectionHandler* create( DtCigiConnection& connection ) const;
191 
192  protected:
194  };
195 }
196 
Virtual base class.
Definition: DtVirtualBaseClass.h:22
This class handles all of the intersection processing for HAT/HOT, LOS , and Collision segment reques...
Definition: DtCigiIntersectionHandler.h:39
Creator class for the DtCigiIntersectionHandler.
Definition: DtCigiIntersectionHandler.h:177
Descriptor for a single intersection result.
Definition: DtIntersector.h:33
DtDe & myDe
Definition: DtCigiIntersectionHandler.h:193
Struct for HatHotResponseData.
Definition: DtHatHotResponder.h:70
Contains DLL export macros.
A DtCigiIntersectionHandler processes CIGI LOS Requests and packages the results into instances of th...
Definition: DtCigiLosExtendedResponse.h:29
Struct for Cigi Collision Request Data.
Definition: DtCollisionResponder.h:60
Contains makVrv::DtCollisionResponder &amp; creator class.
Contains makVrv::DtVirtualBaseClass class.
DtCigiConnection & myCigiConnection
Definition: DtCigiIntersectionHandler.h:171
Struct for Collision Response Data.
Definition: DtCollisionResponder.h:76
Struct storage for the HatHotRequest Data Passed to the DtCigiIntersectionHandler for processing...
Definition: DtHatHotResponder.h:57
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
Contains makVrv::DtHatHotResponder class.
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.
Definition: DtCigiConnection.h:56
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
DtSignalConnectionManager myConnections
Definition: DtCigiIntersectionHandler.h:172
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.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
DtDe & myDe
Definition: DtCigiIntersectionHandler.h:170

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)