VR-Forces Developer's Guide
 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) 2022 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  class DtIntersector;
33  class DtIntersectorsContainer;
34  class DtCoordinateSystem;
35 
43  {
44  public:
46 
48  virtual ~DtCigiIntersectionHandler();
49 
50  protected:
53 
56  virtual void slot_onHatHotRequest( const DtHatHotResponder::DtHatHotRequestData& request );
57 
62  virtual void performHatHotRequest( const DtHatHotResponder::DtHatHotRequestData& request );
63 
66  virtual void slot_lineOfSightCheckRequest(DtCigiLosRequest* request, bool takeOwnership);
67 
83  virtual void performLineOfSightRequest(DtCigiLosRequest* request, bool takeOwnership);
84 
88  virtual void slot_onCollisionSegmentCheckRequest( DtCollisionResponder::DtCollisionSegmentDefinitionData* request);
89 
94  virtual void performCollisionSegmentRequest( DtCollisionResponder::DtCollisionSegmentDefinitionData* request );
95 
102  virtual void setDatabaseCoordinateFromEntity(DtUniqueID entity,
103  const DtVector& entityCoord, DtVector& databaseCoord);
104 
110  virtual void setEntityCoordinateFromDatabase(DtUniqueID entity,
111  const DtVector& databaseCoord, DtVector& entityCoord);
112 
114  virtual void setGeodeticCoordinateFromDatabase(const DtVector& from,
115  DtGeodeticCoord& to);
116 
120  virtual void getNormalAzAndEl(const DtVector& databaseCoord, const DtVector& normal,
121  float& normalAz, float& normalEl);
122 
127  virtual double groundHeight(const DtVector& currentLocal, bool& foundIntersection);
128 
136  virtual double groundHeightExtended( const DtVector& currentLocal, bool& foundIntersection,
137  float& normalAzimuth, float& normalElevation, int& elementType );
138 
143  virtual void generateLosBasicResponse(DtCigiLosBasicResponse* losResponse);
144 
149  virtual void generateLosExtendedResponse(DtCigiLosExtendedResponse* losResponse);
150 
154  virtual void generateHatHotResponse( const DtHatHotResponder::DtHatHotResponseData* hatHotReponse );
155 
159  virtual void generateCollisionSegmentResponse( DtCollisionResponder::DtCollisionSegmentResponseData& collResponse);
160 
162  virtual void slot_coordinateSystemChanged();
163 
164  protected:
165  virtual DtCigiLosBasicResponse* createBasicResponse(const DtVector& start, DtIntersectorResult& result,
166  unsigned int respCount, DtCigiLosRequest* req);
167 
168  virtual DtCigiLosBasicResponse* createBasicNoIsectResponse(DtCigiLosRequest* req);
169 
170  virtual DtCigiLosExtendedResponse* createExtendedResponse(const DtVector& start, DtIntersectorResult& result,
171  unsigned int respCount, DtCigiLosRequest* req);
172 
173  virtual DtCigiLosExtendedResponse* createExtendedNoIsectResponse(DtCigiLosRequest* req);
174 
175  protected:
179 
180  DtIntersectorsContainer* myIntersectors = nullptr;
181 
184  makVrv::DtCoordinateSystem* myCoordinateSystem = nullptr;
185  };
186 
190  {
191  public:
194 
197 
199  static DtCigiIntersectionHandlerCreator& instance( DtDe& de );
200 
202  virtual DtCigiIntersectionHandler* create( DtCigiConnection& connection ) const;
203 
204  protected:
206  };
207 }
208 
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
This class handles all of the intersection processing for HAT/HOT, LOS , and Collision segment reques...
Definition: DtCigiIntersectionHandler.h:42
Creator class for the DtCigiIntersectionHandler.
Definition: DtCigiIntersectionHandler.h:189
Utility class that contains intersectors for all model sets in the system (3d, xr, 2d) Use an object of this class when all models sets can be possibly needed. When you know which model set you need, you can just use the DtIntersectorCreator to create an intersector for a model set Models sets corresponding to 3d, xr and 2d are created by default (these correspond to values of 0, 1 and 5) Additional model sets can be registered with DtIntersectorsContainer::registerModelSet.
Definition: DtIntersectorsContainer.h:37
Descriptor for a single intersection result.
Definition: DtIntersectorResult.h:21
DtDe & myDe
Definition: DtCigiIntersectionHandler.h:205
Struct for HatHotResponseData. Unused in this class, used by intersection handler and the networkIO...
Definition: DtHatHotResponder.h:73
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:62
Contains makVrv::DtCollisionResponder &amp; creator class.
Contains makVrv::DtVirtualBaseClass class.
DtCigiConnection & myCigiConnection
Definition: DtCigiIntersectionHandler.h:177
Struct for Collision Response Data.
Definition: DtCollisionResponder.h:78
Struct storage for the HatHotRequest Data Passed to the DtCigiIntersectionHandler for processing...
Definition: DtHatHotResponder.h:60
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
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. This holds the entity visualizer...
Definition: DtCigiConnection.h:58
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtSignalConnectionManager myConnections
Definition: DtCigiIntersectionHandler.h:178
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
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. 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
DtDe & myDe
Definition: DtCigiIntersectionHandler.h:176

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)