18 class SpatializedPointCollectorContext;
36 static QueryType GetStaticType() {
return TypeSpatializedPointCollectorInAABB; }
38 virtual void BuildQueryBlob(BaseBlobHandler* blobHandler);
39 virtual void InitFromQueryBlob(
World* world,
void* blob);
40 virtual Ptr<BaseBlobHandler> CreateQueryBlobHandler() {
return CreateStaticQueryBlobHandler(); }
41 static Ptr<BaseBlobHandler> CreateStaticQueryBlobHandler();
48 const Vec3f& GetStartPos()
const;
49 const Box3f& GetExtentBox()
const;
50 const NavTrianglePtr& GetStartTrianglePtr()
const;
51 QueryDynamicOutput* GetQueryDynamicOutput()
const;
52 const WorldIntegerPos& GetStartIntegerPos()
const;
54 const PositionSpatializationRange& GetPositionSpatializationRange()
const;
56 Box3f ComputeAABB()
const;
63 void BindToDatabase(Database* database);
64 void Initialize(
const Vec3f& startPos,
const Box3f& extentBox);
66 void SetStartTrianglePtr(
const NavTrianglePtr& startTrianglePtr);
67 void SetPositionSpatializationRange(
const PositionSpatializationRange& positionSpatializationRange);
68 void SetStartIntegerPos(
const WorldIntegerPos& startIntegerPos);
70 void SetQueryDynamicOutput(QueryDynamicOutput* queryDynamicOutput);
72 KyResult PrepareWithInputCoordPos(WorkingMemory* workingMemory);
74 KyResult OpenNode(SpatializedPointCollectorContext* collectorContext,
const NavFloorRawPtr& navFloorRawPtr);
75 KyResult OpenNode(SpatializedPointCollectorContext* collectorContext,
const NavGraphEdgeRawPtr& navGraphEdgeRawPtr);
77 bool ShouldOpenNavFloorNode(SpatializedPointCollectorContext* collectorContext,
const NavFloorRawPtr& navFloorRawPtr);
78 bool ShouldOpenNavGraphEdgeNode(
const NavGraphEdgeRawPtr& navGraphEdgeRawPtr);
81 KyResult TraverseNeighborNavFloors(SpatializedPointCollectorContext* collectorContext,
const NavFloorRawPtr& navFloorRawPtr);
84 KyResult TraverseNeighborNavFloors(SpatializedPointCollectorContext* collectorContext,
const NavGraphEdgeRawPtr& navGraphEdgeRawPtr);
87 KyResult TraverseNeighborNavGraphEdges(SpatializedPointCollectorContext* collectorContext,
const NavFloorRawPtr& navFloorRawPtr);
90 KyResult TraverseNeighborNavGraphEdges(SpatializedPointCollectorContext* collectorContext,
const NavGraphEdgeRawPtr& navGraphEdgeRawPtr);
92 KyResult ProcessNeighborNavFloor(SpatializedPointCollectorContext* collectorContext,
const NavFloorRawPtr& navFloorRawPtr);
93 KyResult ProcessNeighborNavGraphEdge(SpatializedPointCollectorContext* collectorContext,
const NavGraphEdgeRawPtr& navGraphEdgeRawPtr);
95 KyResult InitDataStructure(SpatializedPointCollectorContext* collectorContext, WorkingMemory* workingMemory);
Indicates that insufficient working memory caused the query to stop.
Definition: basespatializedpointcollectorinaabbquery.h:27
virtual QueryType GetType() const
Get query type.
Definition: basespatializedpointcollectorinaabbquery.h:37
SpatializedPointCollectorInAABBQueryResult m_result
Updated during processing to indicate the result of the query.
Definition: basespatializedpointcollectorinaabbquery.h:112
Vertical range (above, below) that represents the altitude tolerance for a position to be inside the ...
Definition: positionspatializationrange.h:17
Base class for all the queries that do not need to be time-sliced.
Definition: iquery.h:245
SpatializedPointCollectorInAABBQueryResult
Enumerates the possible results of a SpatializedPointCollectorInAABBQuery.
Definition: basespatializedpointcollectorinaabbquery.h:21
Indicates that a NavMesh triangle could not be found for the starting point.
Definition: basespatializedpointcollectorinaabbquery.h:26
NavTrianglePtr m_startTrianglePtr
The NavMesh triangle that corresponds to m_startPos3f.
Definition: basespatializedpointcollectorinaabbquery.h:108
This class is a runtime container for Autodesk Navigation WorldElements such as NavData, Bots, BoxObstacles, TagVolumes...
Definition: world.h:52
Ptr< QueryDynamicOutput > m_queryDynamicOutput
A ref-counted Ptr to a QueryDynamicOutput instance, used to store the collected SpatializedPoint.
Definition: basespatializedpointcollectorinaabbquery.h:118
BaseSpatializedPointCollectorInAABBQuery()
Computes the actual AABB used by this query to collect the SpatializedPoints.
Definition: basespatializedpointcollectorinaabbquery.cpp:19
QueryType
Enumerates all the type of query.
Definition: iquery.h:25
PositionSpatializationRange m_positionSpatializationRange
The altitude range around the position to use when determining m_startTrianglePtr from the m_startPos...
Definition: basespatializedpointcollectorinaabbquery.h:110
3d axis aligned box of 32bits floating points
Definition: box3f.h:16
Vec3f m_startPos3f
The starting point of the traversal.
Definition: basespatializedpointcollectorinaabbquery.h:104
Box3f m_extentBox
The Axis Aligned Bounding Box within which to collect the spatialized elements.
Definition: basespatializedpointcollectorinaabbquery.h:100
Navigation return code class.
Definition: types.h:108
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
Base class for SpatializedPointCollectorInAABBQuery.
Definition: basespatializedpointcollectorinaabbquery.h:33
Indicates that the query was completed successfully.
Definition: basespatializedpointcollectorinaabbquery.h:29
Indicates that the query has not yet been initialized.
Definition: iquery.h:295
Utilities for dealing with NavData coordinates, which are expressed in a world space based on integer...
Definition: worldintegerpos.h:19
Each instance of this class uniquely identifies a single NavTriangle in a NavFloor.
Definition: navtriangleptr.h:17
Indicates that the query has not yet been launched.
Definition: basespatializedpointcollectorinaabbquery.h:24
Indicates that the query has not yet been launched.
Definition: iquery.h:296
Indicates that the query has not yet been initialized.
Definition: basespatializedpointcollectorinaabbquery.h:23
void Initialize()
Should be called by the derived class prior to perform the query or to push it in a QueryQueue...
Definition: iquery.h:220
3d vector using 32bits floating points.
Definition: vec3f.h:16