gwnavruntime/queries/raycastquery.h Source File

raycastquery.h
Go to the documentation of this file.
1 /*
2 * Copyright 2016 Autodesk, Inc. All rights reserved.
3 * Use of this software is subject to the terms of the Autodesk license agreement and any attachments or Appendices thereto provided at the time of installation or download,
4 * or which otherwise accompanies this software in either electronic or hard copy form, or which is signed by you and accepted by Autodesk.
5 */
6 
7 #pragma once
8 
13 
14 namespace Kaim
15 {
16 
17 class QueryUtils;
18 class NavHalfEdgeRawPtr;
19 class RawNavTagSubSegment;
20 template <class T> class WorkingMemArray;
21 
22 
30 template<class TraverseLogic>
32 {
33 public:
34  // ------------------------------ Functions -----------------------------
35 
37 
38  virtual ~RayCastQuery() {}
39 
40  // ---------------------------------- Query framework functions ----------------------------------
41 
42  virtual void Advance(WorkingMemory* workingMemory)
43  {
44  PerformQuery(workingMemory);
45  m_processStatus = QueryDone;
46  }
47 
49  void PerformQuery(WorkingMemory* workingMemory = nullptr);
50 
51 public: // internal
52  void PerformQueryWithInputCoordPos(WorkingMemory* workingMemory);
53 
54 private:
55  void RayCast_BorderHit(QueryUtils& queryUtils, const NavHalfEdgeRawPtr& halfEdgeRawPtrHit, const CoordPos64& destCoordPos,
56  CompositeSubSegment& subSegment, ScopedDynamicOutput& scopedDynamicOutput);
57 };
58 
59 }
60 
62 
63 
virtual void Advance(WorkingMemory *workingMemory)
This function is called by the QueryQueue to process one step on the query.
Definition: raycastquery.h:42
QueryProcessStatus m_processStatus
Modified by the query within Advance(). Do not modify.
Definition: iquery.h:231
2d vector using KyInt64
Definition: vec2ll.h:18
void PerformQuery(WorkingMemory *workingMemory=nullptr)
If workingMemory param is nullptr, m_database.GetWorkingMemory() will be used.
Definition: raycastquery.inl:10
Base class for RayCastQuery.
Definition: baseraycastquery.h:43
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
This class is an helper used internally by the Queries to factorize Code that is used in many Queries...
Definition: queryutils.h:28
The RayCastQuery class tests whether a ray (with a width of 0) can be cast from a starting point (m_s...
Definition: raycastquery.h:31
Each instance of this class uniquely identifies a single NavHalfEdge in a NavFloor.
Definition: navhalfedgerawptr.h:23