Kaim::PathFinderQueryUtils Class Reference

Kaim::PathFinderQueryUtils Class Reference

#include <pathfinderqueryutils.h>

Class Description

This class is an helper used internaly by the PathFinder Queries to factorize Code.

Inherits Kaim::QueryUtils.

Public Attributes

Databasem_database
 
WorkingMemory * m_workingMemory
 

Accessors

DatabaseGetDatabase ()
 
WorkingMemory * GetWorkingMemory ()
 
void * GetTraverseLogicUserData ()
 

Location functions

bool FindTriangleFromPositionIfNotValid (NavTrianglePtr &navTrianglePtr, const Vec3f &pos, const PositionSpatializationRange &positionSpatializationRange)
 
bool FindTriangleFromPositionIfNotValid (NavTrianglePtr &navTrianglePtr, const Vec3f &pos, const PositionSpatializationRange &positionSpatializationRange, WorldIntegerPos &outputIntegerPos)
 
bool FindTriangleFromPositionIfNotValid (NavTrianglePtr &navTrianglePtr, const Vec3f &pos, const WorldIntegerPos &integerPos, const PositionSpatializationRange &positionSpatializationRange)
 
template<class TraverseLogic >
bool IsHalfEdgeCompatibleWithThinCapsule (const NavHalfEdgeRawPtr &halfEdge, ThinCapsuleWithExtentOffset &capsuleParams)
 

For internal use only

void GetNextHalfEdgeAroundStartVertex (const NavHalfEdgeRawPtr &currentHalfEdge, NavHalfEdgeRawPtr &nextHalfEdge)
 
void GetPrevHalfEdgeAroundDestVertex (const NavHalfEdgeRawPtr &currentHalfEdge, NavHalfEdgeRawPtr &prevHalfEdge)
 
template<class TraverseLogic >
KyResult FindValidPositionFromIntegerIntersection (const Vec3f &collisionPos3f, const NavHalfEdgePtr &halfEdgePtrHit, WorldIntegerPos &arrivalIntegerPos, NavTrianglePtr &arrivalTrianglePtr)
 
template<class TLogic , class BorderHalfEdgeProcessor >
KyResult BrowseAndProcessAllBorderNavHalfEdgeInBox (BorderHalfEdgeProcessor &borderHalfEdgeProcessor)
 

Member Function Documentation

bool Kaim::QueryUtils::FindTriangleFromPositionIfNotValid ( NavTrianglePtr navTrianglePtr,
const Vec3f pos,
const PositionSpatializationRange &  positionSpatializationRange 
)
inherited

Checks the validity of the specified triangle.

If the triangle is not valid, this method tries to retrieve a valid triangle ID from the specified position. If a valid triangle is found, it updatesnavTrianglePtr.

Parameters
[in,out]navTrianglePtrThe triangle to test. If the triangle is invalid and a valid triangle is found, this parameter will be updated with the ID of the new triangle.
posThe position used to retrieve a new triangle, if needed.
positionSpatializationRangeThe maximum difference in altitude between pos and the returned triangle.
Returns
true if the input triangle is valid or if navTrianglePtr was updated, otherwise false.
bool Kaim::QueryUtils::FindTriangleFromPositionIfNotValid ( NavTrianglePtr navTrianglePtr,
const Vec3f pos,
const PositionSpatializationRange &  positionSpatializationRange,
WorldIntegerPos outputIntegerPos 
)
inherited

Checks the validity of the specified triangle.

If the triangle is not valid, this method tries to retrieve a valid triangle ID from the specified position. If a valid triangle is found, it updatesnavTrianglePtr.

Parameters
[in,out]navTrianglePtrThe triangle to test. If the triangle is invalid and a valid triangle is found, this parameter will be updated with the ID of the new triangle.
posThe position used to retrieve a new triangle, if needed.
positionSpatializationRangeThe maximum difference in altitude between pos and the returned triangle.
[out]outputIntegerPosStores the integer position of the returned triangle, or of pos if the original triangle was valid.
Returns
true if the input triangle is valid or if navTrianglePtr was updated, otherwise false.
bool Kaim::QueryUtils::FindTriangleFromPositionIfNotValid ( NavTrianglePtr navTrianglePtr,
const Vec3f pos,
const WorldIntegerPos integerPos,
const PositionSpatializationRange &  positionSpatializationRange 
)
inherited

Checks the validity of the specified triangle.

If the triangle is not valid, this method tries to retrieve a valid triangle ID from the specified position. If a valid triangle is found, it updatesnavTrianglePtr.

Parameters
[in,out]navTrianglePtrThe triangle to test. If the triangle is invalid and a valid triangle is found, this parameter will be updated with the ID of the new triangle.
posThe position used to retrieve a new triangle, if needed. Only the altitude of this position is used.
[in]integerPosProvides the (x,y) coordinates of the desired position.
positionSpatializationRangeThe maximum difference in altitude between pos and the returned triangle.
Returns
true if the input triangle is valid or if navTrianglePtr was updated, otherwise false.
template<class TLogic >
bool Kaim::QueryUtils::IsHalfEdgeCompatibleWithThinCapsule ( const NavHalfEdgeRawPtr halfEdge,
ThinCapsuleWithExtentOffset capsuleParams 
)
inlineinherited

Check if the specified half edge intersects the specified thin capsule.

Parameters
halfEdgeThe half edge to check.
capsuleStartCoordPosThe capsule start position expressed in CoordPos64.
capsuleEndCoordPosThe capsule end position expressed in CoordPos64.
capsuleSquareRadiusThe capsule square radius, expressed in integer.
recoveryDistanceThe distance the start position is moved forward or the end position is moved backward when they are too close from the halfEdge.
Precondition
The radius must be less than PixelSize / 3.

Member Data Documentation

Database* Kaim::QueryUtils::m_database
inherited

The Database taken into account by queries made through this object. Do not modify.

WorkingMemory* Kaim::QueryUtils::m_workingMemory
inherited

Contains memory buffers used for performing queries and storing results. For internal use. Do not modify.


The documentation for this class was generated from the following files: