20 class NavTriangleRawPtr;
22 class NavHalfEdgeRawPtr;
23 class TriangleFromPosAndTriangleSeedQuery;
24 class WorldIntegerPos;
25 class LocalStoreActiveDataWorkspaceContext;
26 class RawNavTagSubSegment;
30 class WorkingMemArray;
40 class CompositeSubSegment
43 CompositeSubSegment() {}
44 CompositeSubSegment(
const Vec3f& startPos3f,
const NavTriangleRawPtr& startTriangle,
KyFloat32 costMultiplier)
46 m_rawNavTagSubSegment.m_navTriangleRawPtr = startTriangle;
47 m_rawNavTagSubSegment.m_entrancePos3f = startPos3f;
48 m_costMultiplierSubSegment.m_costMultiplier = costMultiplier;
49 m_costMultiplierSubSegment.m_entrancePos3f = startPos3f;
53 RawNavTagSubSegment m_rawNavTagSubSegment;
54 CostMultiplierSubSegment m_costMultiplierSubSegment;
63 RayQueryUtils(
const Vec3f& startPos3f,
const Vec3f& destPos3f,
void* traverseLogicUserData, ScopedDynamicOutput& scopeAutoSaveDynamicOutput,
69 template <
class TraverseLogic>
78 void UpdateCostAlongAxis(
const Vec3f& endOfCostMultiplierSegment,
KyFloat32& cost);
80 template <
class TLogic>
83 return NeedToCommputeOrStoreDataFromCost(
typename TLogic::CostMultiplierUsage(), dynamicOutputMode, computeCostMode);
87 static KyResult FinalizeLastSubSegment(
DynamicOutputMode dynamicOutputMode, ScopedDynamicOutput& scopedDynamicOutput,
const Vec3f& lastPos, CompositeSubSegment& subSegment);
100 Vec3f& intersection);
102 KyResult StoreOrComputeCostFromPropagationData(
KyFloat32 integerPrecision,
const NavHalfEdgeRawPtr& currentPairHalfEdgeRawPtr, CompositeSubSegment& currentSubSegment,
109 return NeedToCommputeOrStoreDataFromCost_Impl(dynamicOutputMode, computeCostMode);
113 return NeedToCommputeOrStoreDataFromCost_Impl(dynamicOutputMode, computeCostMode);
124 void* m_traverseLogicUserData;
128 ScopedDynamicOutput* m_scopedDynamicOutput;
131 Vec3f m_currentCostMultiplierStartPos;
135 template <
class TLogic>
140 bool updateDataFromCostLimit = NeedToCommputeOrStoreDataFromCost<TLogic>(m_dynamicOutputMode, m_computeCostMode);
141 return StoreOrComputeCostFromPropagationData(integerPrecision, currentPairHalfEdgeRawPtr, currentSubSegment, cellOrigin, navFloorBlob, nextCostMultiplier,
142 updateDataFromCostLimit, cost);
The NavFloorBlob contains a connected and not overlapping part of triangle mesh static data within a ...
Definition: navfloorblob.h:38
The cost is not computed.
Definition: rayqueryutils.h:35
KyUInt32 NavHalfEdgeIdx
An index that uniquely identifies a single edge of a triangle within the set of edges owned by a NavF...
Definition: navmeshtypes.h:84
2d vector using KyInt64
Definition: vec2ll.h:18
DynamicOutputMode
Enumerates possible ways of storing collected data by a query in a QueryDynamicOutput object...
Definition: querydynamicoutput.h:21
Tag type used for function overloading in templates.
Definition: traverselogic.h:69
This class is a "volatile" version of the NavTagSubSegment class.
Definition: navtagsubsegment.h:16
ComputeCostMode
Enumerates the possible ways a RayCanGoQuery can compute the cost of following the ray...
Definition: rayqueryutils.h:33
std::int64_t KyInt64
int64_t
Definition: types.h:25
Navigation return code class.
Definition: types.h:108
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
Tag type used for function overloading in templates.
Definition: traverselogic.h:59
This class is an helper used internaly to factorize code of Ray queries (RayCanGoQuery, RayCastGoQuery, ...)
Definition: rayqueryutils.h:58
do not store anything
Definition: querydynamicoutput.h:23
Identifies a single NavTriangle in a NavFloor.
Definition: navtrianglerawptr.h:21
This class represents a CostMultiplier sub-segment of a ray (within a RayCastQuery or a RayCanGoQuery...
Definition: costmultipliersubsegment.h:21
std::int32_t KyInt32
int32_t
Definition: types.h:24
Tag type used for function overloading in templates.
Definition: traverselogic.h:64
The cost is computed according to the CanTraverseAndGetCostMultiplier function of the traverseLogic...
Definition: rayqueryutils.h:36
store CostMultiplierSubSegment array
Definition: querydynamicoutput.h:28
Each instance of this class uniquely identifies a single NavHalfEdge in a NavFloor.
Definition: navhalfedgerawptr.h:23
float KyFloat32
float
Definition: types.h:32
3d vector using 32bits floating points.
Definition: vec3f.h:16