35 static QueryType GetStaticType() {
return TypeRayCastFull3D; }
53 void Initialize(
const Vec3f& startPos,
const Vec3f& destPos);
57 virtual void Advance(WorkingMemory* workingMemory)
64 void PerformQuery(WorkingMemory* workingMemory =
nullptr);
75 RayCastData(
const Vec3f& startPos,
const Vec3f& destPos) : m_dir(destPos-startPos), m_dirInv(1.f, 1.f, 1.f)
77 m_dirIsNullOnAxis[0] =
false;
78 m_dirIsNullOnAxis[1] =
false;
79 m_dirIsNullOnAxis[2] =
false;
85 bool m_dirIsNullOnAxis[3];
88 void CollideAgainsttriangle(
const Vec3f& a,
const Vec3f& b,
const Vec3f& c,
KyFloat32& currentCollisionDistance);
89 void RayCast3DAgainstNavFloor(NavFloor* navFloor,
const RayCastData& rayCastData,
const CoordPos64& cellOrigin,
KyFloat32& currentCollisionDistance);
90 bool RayVersusBox3f(
const RayCastData& rayCastData,
const Box3f& box);
Vec3f m_startPos3f
start position
Definition: raycastfull3dquery.h:93
virtual QueryType GetType() const
Get query type.
Definition: raycastfull3dquery.h:36
QueryProcessStatus m_processStatus
Modified by the query within Advance(). Do not modify.
Definition: iquery.h:231
Box2LL CoordBox64
A type that represents a bounding box in the integer 2D grid.
Definition: navmeshtypes.h:17
Base class for all the queries that do not need to be time-sliced.
Definition: iquery.h:245
RayCast in full 3d useful for implementing picking on NavMesh.
Definition: raycastfull3dquery.h:32
void BindToDatabase(Database *database)
Binds the query with the specified Database, clears all the inputs and outputs and sets all other par...
Definition: raycastfull3dquery.cpp:24
Indicates that the point provided is outside the navigable boundaries of the NavMesh.
Definition: raycastfull3dquery.h:26
RayCast3dQueryResult
Enumerates the possible results of a RayCast3dQuery.
Definition: raycastfull3dquery.h:21
QueryType
Enumerates all the type of query.
Definition: iquery.h:25
Indicates that the query was completed successfully; a triangle was found.
Definition: raycastfull3dquery.h:27
virtual void Advance(WorkingMemory *workingMemory)
This function is called by the QueryQueue to process one step on the query.
Definition: raycastfull3dquery.h:57
void PerformQuery(WorkingMemory *workingMemory=nullptr)
If workingMemory param is nullptr, m_database.GetWorkingMemory() will be used.
Definition: raycastfull3dquery.cpp:50
Vec2LL CoordPos64
A type that represents the position of a point within the 2D integer grid.
Definition: navmeshtypes.h:16
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
Indicates that the query has not yet been initialized.
Definition: iquery.h:295
NavTrianglePtr m_resultTrianglePtr
Updated during processing to store the nearest triangle found to m_startPos3f.
Definition: raycastfull3dquery.h:99
Vec3f m_destPos3f
destination position
Definition: raycastfull3dquery.h:94
Indicates the query has not yet been initialized.
Definition: raycastfull3dquery.h:23
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: iquery.h:296
Vec3f m_collisionPoint3f
collision position
Definition: raycastfull3dquery.h:95
RayCast3dQueryResult m_result
Updated during processing to indicate the result of the query.
Definition: raycastfull3dquery.h:101
Indicates the query has not yet been launched.
Definition: raycastfull3dquery.h:24
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
float KyFloat32
float
Definition: types.h:32
3d vector using 32bits floating points.
Definition: vec3f.h:16