Atoms Crowd
7.0.0
|
#include <DetourNavMeshQuery.h>
Public Member Functions | |
dtStatus | init (const dtNavMesh *nav, const int maxNodes, dtQuerySpecialLinkFilter *linkFilter=0) |
void | updateLinkFilter (dtQuerySpecialLinkFilter *linkFilter) |
updates special link filter for this query | |
dtStatus | getPortalPoints (dtPolyRef from, dtPolyRef to, float *left, float *right, unsigned char &fromType, unsigned char &toType) const |
Returns portal points between two polygons. | |
dtStatus | getPortalPoints (dtPolyRef from, const dtPoly *fromPoly, const dtMeshTile *fromTile, dtPolyRef to, const dtPoly *toPoly, const dtMeshTile *toTile, float *left, float *right) const |
dtStatus | getEdgeMidPoint (dtPolyRef from, dtPolyRef to, float *mid) const |
Returns edge mid point between two polygons. | |
dtStatus | getEdgeMidPoint (dtPolyRef from, const dtPoly *fromPoly, const dtMeshTile *fromTile, dtPolyRef to, const dtPoly *toPoly, const dtMeshTile *toTile, float *mid) const |
Standard Pathfinding Functions | |
dtStatus | findPath (dtPolyRef startRef, dtPolyRef endRef, const float *startPos, const float *endPos, const float costLimit, const dtQueryFilter *filter, dtQueryResult &result, float *totalCost) const |
dtStatus | testClusterPath (dtPolyRef startRef, dtPolyRef endRef) const |
dtStatus | findStraightPath (const float *startPos, const float *endPos, const dtPolyRef *path, const int pathSize, dtQueryResult &result, const int options=0) const |
Sliced Pathfinding Functions | |
Common use case:
| |
dtStatus | initSlicedFindPath (dtPolyRef startRef, dtPolyRef endRef, const float *startPos, const float *endPos, const float costLimit, const dtQueryFilter *filter) |
dtStatus | updateSlicedFindPath (const int maxIter, int *doneIters) |
dtStatus | finalizeSlicedFindPath (dtPolyRef *path, int *pathCount, const int maxPath) |
dtStatus | finalizeSlicedFindPathPartial (const dtPolyRef *existing, const int existingSize, dtPolyRef *path, int *pathCount, const int maxPath) |
Dijkstra Search Functions | |
| |
dtStatus | findPolysAroundCircle (dtPolyRef startRef, const float *centerPos, const float radius, const dtQueryFilter *filter, dtPolyRef *resultRef, dtPolyRef *resultParent, float *resultCost, int *resultCount, const int maxResult) const |
dtStatus | findPolysAroundShape (dtPolyRef startRef, const float *verts, const int nverts, const dtQueryFilter *filter, dtPolyRef *resultRef, dtPolyRef *resultParent, float *resultCost, int *resultCount, const int maxResult) const |
dtStatus | findPolysInPathDistance (dtPolyRef startRef, const float *centerPos, const float pathDistance, const dtQueryFilter *filter, dtPolyRef *resultRef, int *resultCount, const int maxResult) const |
Local Query Functions | |
dtStatus | findNearestPoly (const float *center, const float *extents, const dtQueryFilter *filter, dtPolyRef *nearestRef, float *nearestPt, const float *referencePt=0) const |
dtStatus | findNearestPoly2D (const float *center, const float *extents, const dtQueryFilter *filter, dtPolyRef *outProjectedRef, float *outProjectedPt, const float *referencePt=0, float tolerance=0) const |
dtStatus | findNearestContainingPoly (const float *center, const float *extents, const dtQueryFilter *filter, dtPolyRef *nearestRef, float *nearestPt) const |
dtStatus | queryPolygons (const float *center, const float *extents, const dtQueryFilter *filter, dtPolyRef *polys, int *polyCount, const int maxPolys) const |
dtStatus | findLocalNeighbourhood (dtPolyRef startRef, const float *centerPos, const float radius, const dtQueryFilter *filter, dtPolyRef *resultRef, dtPolyRef *resultParent, int *resultCount, const int maxResult) const |
dtStatus | findWallsInNeighbourhood (dtPolyRef startRef, const float *centerPos, const float radius, const dtQueryFilter *filter, dtPolyRef *neiRefs, int *neiCount, const int maxNei, float *resultWalls, dtPolyRef *resultRefs, int *resultCount, const int maxResult) const |
Finds the wall segments in local neighbourhood. | |
dtStatus | moveAlongSurface (dtPolyRef startRef, const float *startPos, const float *endPos, const dtQueryFilter *filter, float *resultPos, dtPolyRef *visited, int *visitedCount, const int maxVisitedSize) const |
dtStatus | raycast (dtPolyRef startRef, const float *startPos, const float *endPos, const dtQueryFilter *filter, float *t, float *hitNormal, dtPolyRef *path, int *pathCount, const int maxPath) const |
dtStatus | findDistanceToWall (dtPolyRef startRef, const float *centerPos, const float maxRadius, const dtQueryFilter *filter, float *hitDist, float *hitPos, float *hitNormal) const |
dtStatus | getPolyWallSegments (dtPolyRef ref, const dtQueryFilter *filter, float *segmentVerts, dtPolyRef *segmentRefs, int *segmentCount, const int maxSegments) const |
dtStatus | findRandomPoint (const dtQueryFilter *filter, int randomSeed, dtPolyRef *randomRef, float *randomPt) const |
dtStatus | findRandomPointAroundCircle (dtPolyRef startRef, const float *centerPos, const float maxRadius, const dtQueryFilter *filter, int randomSeed, dtPolyRef *randomRef, float *randomPt) const |
dtStatus | findRandomPointInCluster (dtClusterRef clusterRef, int randomSeed, dtPolyRef *randomRef, float *randomPt) const |
dtStatus | closestPointOnPoly (dtPolyRef ref, const float *pos, float *closest) const |
dtStatus | closestPointOnPolyBoundary (dtPolyRef ref, const float *pos, float *closest) const |
dtStatus | projectedPointOnPoly (dtPolyRef ref, const float *pos, float *projected) const |
dtStatus | isPointInsidePoly (dtPolyRef ref, const float *pos, bool &result) const |
dtStatus | getPolyHeight (dtPolyRef ref, const float *pos, float *height) const |
dtStatus | getPolyCluster (dtPolyRef polyRef, dtClusterRef &clusterRef) const |
Miscellaneous Functions | |
bool | isValidPolyRef (dtPolyRef ref, const dtQueryFilter *filter) const |
bool | isInClosedList (dtPolyRef ref) const |
bool | wasClusterLinkSearched (dtPolyRef cFrom, dtPolyRef cTo) const |
class dtNodePool * | getNodePool () const |
const dtNavMesh * | getAttachedNavMesh () const |
void | getCurrentBestResult (struct dtNode *&bestNode, float &bestCost) const |
Gets best node ref and cost from sliced pathfinding data. | |
int | getQueryNodes () const |
Provides the ability to perform pathfinding related queries against a navigation mesh.
dtStatus AtomsUtils::dtNavMeshQuery::closestPointOnPoly | ( | dtPolyRef | ref, |
const float * | pos, | ||
float * | closest | ||
) | const |
Finds the closest point on the specified polygon.
[in] | ref | The reference id of the polygon. |
[in] | pos | The position to check. [(x, y, z)] |
[out] | closest | The closest point on the polygon. [(x, y, z)] |
dtStatus AtomsUtils::dtNavMeshQuery::closestPointOnPolyBoundary | ( | dtPolyRef | ref, |
const float * | pos, | ||
float * | closest | ||
) | const |
Returns a point on the boundary closest to the source point if the source point is outside the polygon's xz-bounds.
[in] | ref | The reference id to the polygon. |
[in] | pos | The position to check. [(x, y, z)] |
[out] | closest | The closest point. [(x, y, z)] |
dtStatus AtomsUtils::dtNavMeshQuery::finalizeSlicedFindPath | ( | dtPolyRef * | path, |
int * | pathCount, | ||
const int | maxPath | ||
) |
Finalizes and returns the results of a sliced path query.
[out] | path | An ordered list of polygon references representing the path. (Start to end.) [(polyRef) * pathCount ] |
[out] | pathCount | The number of polygons returned in the path array. |
[in] | maxPath | The max number of polygons the path array can hold. [Limit: >= 1] |
dtStatus AtomsUtils::dtNavMeshQuery::finalizeSlicedFindPathPartial | ( | const dtPolyRef * | existing, |
const int | existingSize, | ||
dtPolyRef * | path, | ||
int * | pathCount, | ||
const int | maxPath | ||
) |
Finalizes and returns the results of an incomplete sliced path query, returning the path to the furthest polygon on the existing path that was visited during the search.
[out] | existing | An array of polygon references for the existing path. |
[out] | existingSize | The number of polygon in the existing array. |
[out] | path | An ordered list of polygon references representing the path. (Start to end.) [(polyRef) * pathCount ] |
[out] | pathCount | The number of polygons returned in the path array. |
[in] | maxPath | The max number of polygons the path array can hold. [Limit: >= 1] |
dtStatus AtomsUtils::dtNavMeshQuery::findDistanceToWall | ( | dtPolyRef | startRef, |
const float * | centerPos, | ||
const float | maxRadius, | ||
const dtQueryFilter * | filter, | ||
float * | hitDist, | ||
float * | hitPos, | ||
float * | hitNormal | ||
) | const |
Finds the distance from the specified position to the nearest polygon wall.
[in] | startRef | The reference id of the polygon containing centerPos . |
[in] | centerPos | The center of the search circle. [(x, y, z)] |
[in] | maxRadius | The radius of the search circle. |
[in] | filter | The polygon filter to apply to the query. |
[out] | hitDist | The distance to the nearest wall from centerPos . |
[out] | hitPos | The nearest position on the wall that was hit. [(x, y, z)] |
[out] | hitNormal | The normalized ray formed from the wall point to the source point. [(x, y, z)] |
dtStatus AtomsUtils::dtNavMeshQuery::findLocalNeighbourhood | ( | dtPolyRef | startRef, |
const float * | centerPos, | ||
const float | radius, | ||
const dtQueryFilter * | filter, | ||
dtPolyRef * | resultRef, | ||
dtPolyRef * | resultParent, | ||
int * | resultCount, | ||
const int | maxResult | ||
) | const |
Finds the non-overlapping navigation polygons in the local neighbourhood around the center position.
[in] | startRef | The reference id of the polygon where the search starts. |
[in] | centerPos | The center of the query circle. [(x, y, z)] |
[in] | radius | The radius of the query circle. |
[in] | filter | The polygon filter to apply to the query. |
[out] | resultRef | The reference ids of the polygons touched by the circle. |
[out] | resultParent | The reference ids of the parent polygons for each result. Zero if a result polygon has no parent. [opt] |
[out] | resultCount | The number of polygons found. |
[in] | maxResult | The maximum number of polygons the result arrays can hold. |
dtStatus AtomsUtils::dtNavMeshQuery::findNearestContainingPoly | ( | const float * | center, |
const float * | extents, | ||
const dtQueryFilter * | filter, | ||
dtPolyRef * | nearestRef, | ||
float * | nearestPt | ||
) | const |
Finds the nearest polygon containing the specified center point.
[in] | center | The center of the search box. [(x, y, z)] |
[in] | extents | The search distance along each axis. [(x, y, z)] |
[in] | filter | The polygon filter to apply to the query. |
[out] | nearestRef | The reference id of the nearest polygon. |
[out] | nearestPt | The nearest point on the polygon. [opt] [(x, y, z)] |
dtStatus AtomsUtils::dtNavMeshQuery::findNearestPoly | ( | const float * | center, |
const float * | extents, | ||
const dtQueryFilter * | filter, | ||
dtPolyRef * | nearestRef, | ||
float * | nearestPt, | ||
const float * | referencePt = 0 |
||
) | const |
Finds the polygon nearest to the specified center point.
[in] | center | The center of the search box. [(x, y, z)] |
[in] | extents | The search distance along each axis. [(x, y, z)] |
[in] | filter | The polygon filter to apply to the query. |
[out] | nearestRef | The reference id of the nearest polygon. |
[out] | nearestPt | The nearest point on the polygon. [opt] [(x, y, z)] |
[in] | referencePt | If supplied replaces |
center | in terms of distance measurements. [opt] [(x, y, z)] |
dtStatus AtomsUtils::dtNavMeshQuery::findNearestPoly2D | ( | const float * | center, |
const float * | extents, | ||
const dtQueryFilter * | filter, | ||
dtPolyRef * | outProjectedRef, | ||
float * | outProjectedPt, | ||
const float * | referencePt = 0 , |
||
float | tolerance = 0 |
||
) | const |
Finds the polygon 2D-nearest to the specified center point.
[in] | center | The center of the search box. [(x, y, z)] |
[in] | extents | The search distance along each axis. [(x, y, z)] |
[in] | filter | The polygon filter to apply to the query. |
[out] | nearestRef | The reference id of the nearest polygon. |
[out] | nearestPt | The nearest point on the polygon. [opt] [(x, y, z)] |
[in] | referencePt | If supplied replaces |
center | in terms of distance measurements. [opt] [(x, y, z)] | |
[in] | tolerance | Radius around best 2D point for picking vertical match |
dtStatus AtomsUtils::dtNavMeshQuery::findPath | ( | dtPolyRef | startRef, |
dtPolyRef | endRef, | ||
const float * | startPos, | ||
const float * | endPos, | ||
const float | costLimit, | ||
const dtQueryFilter * | filter, | ||
dtQueryResult & | result, | ||
float * | totalCost | ||
) | const |
Finds a path from the start polygon to the end polygon.
[in] | startRef | The reference id of the start polygon. |
[in] | endRef | The reference id of the end polygon. |
[in] | startPos | A position within the start polygon. [(x, y, z)] |
[in] | endPos | A position within the end polygon. [(x, y, z)] |
[in] | costLimit | Cost limit of nodes allowed to be added to the open list |
[in] | filter | The polygon filter to apply to the query. |
[out] | result | Results for path corridor, fills in refs and costs for each poly from start to end |
[out] | totalCost | If provided will get filled will total cost of path |
dtStatus AtomsUtils::dtNavMeshQuery::findPolysAroundCircle | ( | dtPolyRef | startRef, |
const float * | centerPos, | ||
const float | radius, | ||
const dtQueryFilter * | filter, | ||
dtPolyRef * | resultRef, | ||
dtPolyRef * | resultParent, | ||
float * | resultCost, | ||
int * | resultCount, | ||
const int | maxResult | ||
) | const |
Finds the polygons along the navigation graph that touch the specified circle.
[in] | startRef | The reference id of the polygon where the search starts. |
[in] | centerPos | The center of the search circle. [(x, y, z)] |
[in] | radius | The radius of the search circle. |
[in] | filter | The polygon filter to apply to the query. |
[out] | resultRef | The reference ids of the polygons touched by the circle. [opt] |
[out] | resultParent | The reference ids of the parent polygons for each result. Zero if a result polygon has no parent. [opt] |
[out] | resultCost | The search cost from centerPos to the polygon. [opt] |
[out] | resultCount | The number of polygons found. [opt] |
[in] | maxResult | The maximum number of polygons the result arrays can hold. |
dtStatus AtomsUtils::dtNavMeshQuery::findPolysAroundShape | ( | dtPolyRef | startRef, |
const float * | verts, | ||
const int | nverts, | ||
const dtQueryFilter * | filter, | ||
dtPolyRef * | resultRef, | ||
dtPolyRef * | resultParent, | ||
float * | resultCost, | ||
int * | resultCount, | ||
const int | maxResult | ||
) | const |
Finds the polygons along the naviation graph that touch the specified convex polygon.
[in] | startRef | The reference id of the polygon where the search starts. |
[in] | verts | The vertices describing the convex polygon. (CCW) [(x, y, z) * nverts ] |
[in] | nverts | The number of vertices in the polygon. |
[in] | filter | The polygon filter to apply to the query. |
[out] | resultRef | The reference ids of the polygons touched by the search polygon. [opt] |
[out] | resultParent | The reference ids of the parent polygons for each result. Zero if a result polygon has no parent. [opt] |
[out] | resultCost | The search cost from the centroid point to the polygon. [opt] |
[out] | resultCount | The number of polygons found. |
[in] | maxResult | The maximum number of polygons the result arrays can hold. |
dtStatus AtomsUtils::dtNavMeshQuery::findPolysInPathDistance | ( | dtPolyRef | startRef, |
const float * | centerPos, | ||
const float | pathDistance, | ||
const dtQueryFilter * | filter, | ||
dtPolyRef * | resultRef, | ||
int * | resultCount, | ||
const int | maxResult | ||
) | const |
Finds the polygons along the navigation graph that are no more than given path length away from centerPos.
[in] | startRef | The reference id of the polygon where the search starts. |
[in] | centerPos | The center of the search circle. [(x, y, z)] |
[in] | pathDistance | The path distance limit of the search |
[in] | filter | The polygon filter to apply to the query. |
[out] | resultRef | The reference ids of the polygons touched by the circle. [opt] |
[out] | resultCount | The number of polygons found. [opt] |
[in] | maxResult | The maximum number of polygons the result arrays can hold. |
dtStatus AtomsUtils::dtNavMeshQuery::findRandomPoint | ( | const dtQueryFilter * | filter, |
int | randomSeed, | ||
dtPolyRef * | randomRef, | ||
float * | randomPt | ||
) | const |
Returns random location on navmesh. Polygons are chosen weighted by area. The search runs in linear related to number of polygon.
[in] | filter | The polygon filter to apply to the query. |
[in] | frand | Function returning a random number [0..1). |
[out] | randomRef | The reference id of the random location. |
[out] | randomPt | The random location. |
dtStatus AtomsUtils::dtNavMeshQuery::findRandomPointAroundCircle | ( | dtPolyRef | startRef, |
const float * | centerPos, | ||
const float | maxRadius, | ||
const dtQueryFilter * | filter, | ||
int | randomSeed, | ||
dtPolyRef * | randomRef, | ||
float * | randomPt | ||
) | const |
Returns random location on navmesh within the reach of specified location. Polygons are chosen weighted by area. The search runs in linear related to number of polygon. The location is not exactly constrained by the circle, but it limits the visited polygons.
[in] | startRef | The reference id of the polygon where the search starts. |
[in] | centerPos | The center of the search circle. [(x, y, z)] |
[in] | filter | The polygon filter to apply to the query. |
[in] | frand | Function returning a random number [0..1). |
[out] | randomRef | The reference id of the random location. |
[out] | randomPt | The random location. [(x, y, z)] |
dtStatus AtomsUtils::dtNavMeshQuery::findRandomPointInCluster | ( | dtClusterRef | clusterRef, |
int | randomSeed, | ||
dtPolyRef * | randomRef, | ||
float * | randomPt | ||
) | const |
Returns random location on navmesh within specified cluster.
[in] | frand | Function returning a random number [0..1). |
[out] | randomRef | The reference id of the random location. |
[out] | randomPt | The random location. |
dtStatus AtomsUtils::dtNavMeshQuery::findStraightPath | ( | const float * | startPos, |
const float * | endPos, | ||
const dtPolyRef * | path, | ||
const int | pathSize, | ||
dtQueryResult & | result, | ||
const int | options = 0 |
||
) | const |
Finds the straight path from the start to the end position within the polygon corridor.
[in] | startPos | Path start position. [(x, y, z)] |
[in] | endPos | Path end position. [(x, y, z)] |
[in] | path | An array of polygon references that represent the path corridor. |
[in] | pathSize | The number of polygons in the path array. |
[out] | result | Fills in positions, refs and flags |
[in] | options | Query options. (see: dtStraightPathOptions) |
|
inline |
Gets the navigation mesh the query object is using.
|
inline |
Gets the node pool.
dtStatus AtomsUtils::dtNavMeshQuery::getPolyCluster | ( | dtPolyRef | polyRef, |
dtClusterRef & | clusterRef | ||
) | const |
Gets the cluster containing given polygon
[in] | polyRef | The reference id of the polygon. |
[out] | clusterRef | The reference id of the cluster |
dtStatus AtomsUtils::dtNavMeshQuery::getPolyHeight | ( | dtPolyRef | ref, |
const float * | pos, | ||
float * | height | ||
) | const |
Gets the height of the polygon at the provided position using the height detail. (Most accurate.)
[in] | ref | The reference id of the polygon. |
[in] | pos | A position within the xz-bounds of the polygon. [(x, y, z)] |
[out] | height | The height at the surface of the polygon. |
dtStatus AtomsUtils::dtNavMeshQuery::getPolyWallSegments | ( | dtPolyRef | ref, |
const dtQueryFilter * | filter, | ||
float * | segmentVerts, | ||
dtPolyRef * | segmentRefs, | ||
int * | segmentCount, | ||
const int | maxSegments | ||
) | const |
Returns the segments for the specified polygon, optionally including portals.
[in] | ref | The reference id of the polygon. |
[in] | filter | The polygon filter to apply to the query. |
[out] | segmentVerts | The segments. [(ax, ay, az, bx, by, bz) * segmentCount] |
[out] | segmentRefs | The reference ids of each segment's neighbor polygon. Or zero if the segment is a wall. [opt] [(parentRef) * segmentCount ] |
[out] | segmentCount | The number of segments returned. |
[in] | maxSegments | The maximum number of segments the result arrays can hold. |
dtStatus AtomsUtils::dtNavMeshQuery::init | ( | const dtNavMesh * | nav, |
const int | maxNodes, | ||
dtQuerySpecialLinkFilter * | linkFilter = 0 |
||
) |
Initializes the query object.
[in] | nav | Pointer to the dtNavMesh object to use for all queries. |
[in] | maxNodes | Maximum number of search nodes. [Limits: 0 < value <= 65536] |
[in] | linkFilter | Special link filter used for every query |
dtStatus AtomsUtils::dtNavMeshQuery::initSlicedFindPath | ( | dtPolyRef | startRef, |
dtPolyRef | endRef, | ||
const float * | startPos, | ||
const float * | endPos, | ||
const float | costLimit, | ||
const dtQueryFilter * | filter | ||
) |
Initializes a sliced path query.
[in] | startRef | The refrence id of the start polygon. |
[in] | endRef | The reference id of the end polygon. |
[in] | startPos | A position within the start polygon. [(x, y, z)] |
[in] | endPos | A position within the end polygon. [(x, y, z)] |
[in] | costLimit | Cost limit of nodes allowed to be added to the open list |
[in] | filter | The polygon filter to apply to the query. |
bool AtomsUtils::dtNavMeshQuery::isInClosedList | ( | dtPolyRef | ref | ) | const |
Returns true if the polygon reference is in the closed list.
[in] | ref | The reference id of the polygon to check. |
dtStatus AtomsUtils::dtNavMeshQuery::isPointInsidePoly | ( | dtPolyRef | ref, |
const float * | pos, | ||
bool & | result | ||
) | const |
Checks if specified pos is inside given polygon specified by ref
[in] | ref | The reference id of the polygon. |
[in] | pos | The position to check. [(x, y, z)] |
[out] | result | The result of the check, whether the point is inside (true) or not (false) |
bool AtomsUtils::dtNavMeshQuery::isValidPolyRef | ( | dtPolyRef | ref, |
const dtQueryFilter * | filter | ||
) | const |
Returns true if the polygon reference is valid and passes the filter restrictions.
[in] | ref | The polygon reference to check. |
[in] | filter | The filter to apply. |
dtStatus AtomsUtils::dtNavMeshQuery::moveAlongSurface | ( | dtPolyRef | startRef, |
const float * | startPos, | ||
const float * | endPos, | ||
const dtQueryFilter * | filter, | ||
float * | resultPos, | ||
dtPolyRef * | visited, | ||
int * | visitedCount, | ||
const int | maxVisitedSize | ||
) | const |
Moves from the start to the end position constrained to the navigation mesh.
[in] | startRef | The reference id of the start polygon. |
[in] | startPos | A position of the mover within the start polygon. [(x, y, x)] |
[in] | endPos | The desired end position of the mover. [(x, y, z)] |
[in] | filter | The polygon filter to apply to the query. |
[out] | resultPos | The result position of the mover. [(x, y, z)] |
[out] | visited | The reference ids of the polygons visited during the move. |
[out] | visitedCount | The number of polygons visited during the move. |
[in] | maxVisitedSize | The maximum number of polygons the visited array can hold. |
dtStatus AtomsUtils::dtNavMeshQuery::projectedPointOnPoly | ( | dtPolyRef | ref, |
const float * | pos, | ||
float * | projected | ||
) | const |
Finds the point's projection on the specified polygon.
[in] | ref | The reference id of the polygon. |
[in] | pos | The position to check. [(x, y, z)] |
[out] | closest | The projected point on the polygon. [(x, y, z)] |
dtStatus AtomsUtils::dtNavMeshQuery::queryPolygons | ( | const float * | center, |
const float * | extents, | ||
const dtQueryFilter * | filter, | ||
dtPolyRef * | polys, | ||
int * | polyCount, | ||
const int | maxPolys | ||
) | const |
Finds polygons that overlap the search box.
[in] | center | The center of the search box. [(x, y, z)] |
[in] | extents | The search distance along each axis. [(x, y, z)] |
[in] | filter | The polygon filter to apply to the query. |
[out] | polys | The reference ids of the polygons that overlap the query box. |
[out] | polyCount | The number of polygons in the search result. |
[in] | maxPolys | The maximum number of polygons the search result can hold. |
dtStatus AtomsUtils::dtNavMeshQuery::raycast | ( | dtPolyRef | startRef, |
const float * | startPos, | ||
const float * | endPos, | ||
const dtQueryFilter * | filter, | ||
float * | t, | ||
float * | hitNormal, | ||
dtPolyRef * | path, | ||
int * | pathCount, | ||
const int | maxPath | ||
) | const |
Casts a 'walkability' ray along the surface of the navigation mesh from the start position toward the end position.
[in] | startRef | The reference id of the start polygon. |
[in] | startPos | A position within the start polygon representing the start of the ray. [(x, y, z)] |
[in] | endPos | The position to cast the ray toward. [(x, y, z)] |
[out] | t | The hit parameter. (FLT_MAX if no wall hit.) |
[out] | hitNormal | The normal of the nearest wall hit. [(x, y, z)] |
[in] | filter | The polygon filter to apply to the query. |
[out] | path | The reference ids of the visited polygons. [opt] |
[out] | pathCount | The number of visited polygons. [opt] |
[in] | maxPath | The maximum number of polygons the path array can hold. |
[in] | walkableArea | Specific area that can be visited or 255 to skip it and test all areas. |
Check if there is a path from start polygon to the end polygon using cluster graph (cheap, does not care about link costs)
[in] | startRef | The reference id of the start polygon. |
[in] | endRef | The reference id of the end polygon. |
dtStatus AtomsUtils::dtNavMeshQuery::updateSlicedFindPath | ( | const int | maxIter, |
int * | doneIters | ||
) |
Updates an in-progress sliced path query.
[in] | maxIter | The maximum number of iterations to perform. |
[out] | doneIters | The actual number of iterations completed. [opt] |
Returns true if the cluster link was used in previous search.
[in] | cFrom | The reference id of the start cluster. |
[in] | cto | The reference id of the end cluster. |