VR-Forces 4.6.1 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) 2018 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCigi/vrvCigi.h>
13 
14 #include <vrvCore/DtUniqueID.h>
15 
18 
19 #include <matrix/vlVector.h>
20 #include <matrix/geodeticCoord.h>
21 
22 namespace makVrv
23 {
24  class DtDe;
25  class DtCigiDriver;
26  class DtCigiConnection;
27  class DtCigiLosRequest;
28  class DtCigiLosBasicResponse;
29  class DtCigiLosExtendedResponse;
30  class DtIntersectorResult;
31 
39  {
40  public:
42 
44  virtual ~DtCigiIntersectionHandler();
45 
46  protected:
49 
52  virtual void slot_onHatHotRequest(DtUniqueID entityId,
53  const DtVector& localPosition, unsigned int hotId,
54  bool hatRequested, unsigned int lastHostFrameNumber);
55 
69  virtual void performHatHotRequest(DtUniqueID entityId,
70  const DtVector& localPosition, unsigned int hotId,
71  bool hatRequested, unsigned int lastHostFrameNumber);
72 
75  virtual void slot_lineOfSightCheckRequest(DtCigiLosRequest* request, bool takeOwnership);
76 
92  virtual void performLineOfSightRequest(DtCigiLosRequest* request, bool takeOwnership);
93 
100  virtual void setDatabaseCoordinateFromEntity(DtUniqueID entity,
101  const DtVector& entityCoord, DtVector& databaseCoord);
102 
108  virtual void setEntityCoordinateFromDatabase(DtUniqueID entity,
109  const DtVector& databaseCoord, DtVector& entityCoord);
110 
112  virtual void setGeodeticCoordinateFromDatabase(const DtVector& from,
113  DtGeodeticCoord& to);
114 
118  virtual void getNormalAzAndEl(const DtVector& databaseCoord, const DtVector& normal,
119  float& normalAz, float& normalEl);
120 
125  virtual double groundHeight(const DtVector& currentLocal, bool& foundIntersection);
126 
131  virtual void generateLosBasicResponse(DtCigiLosBasicResponse* losResponse);
132 
137  virtual void generateLosExtendedResponse(DtCigiLosExtendedResponse* losResponse);
138 
147  virtual void generateHatHotResponse(double height, unsigned int hotId, bool hat,
148  unsigned int lastFrame, bool valid);
149 
150  protected:
151  virtual DtCigiLosBasicResponse* createBasicResponse(const DtVector& start, DtIntersectorResult& result,
152  unsigned int respCount, DtCigiLosRequest* req);
153 
154  virtual DtCigiLosBasicResponse* createBasicNoIsectResponse(DtCigiLosRequest* req);
155 
156  virtual DtCigiLosExtendedResponse* createExtendedResponse(const DtVector& start, DtIntersectorResult& result,
157  unsigned int respCount, DtCigiLosRequest* req);
158 
159  virtual DtCigiLosExtendedResponse* createExtendedNoIsectResponse(DtCigiLosRequest* req);
160 
161  protected:
165  };
166 
170  {
171  public:
174 
177 
179  static DtCigiIntersectionHandlerCreator& instance( DtDe& de );
180 
182  virtual DtCigiIntersectionHandler* create( DtCigiConnection& connection ) const;
183 
184  protected:
186  };
187 }
188 

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)