PathEngine home previous: iMesh::findShortestPath_MultipleStartPositions()next: iMesh::firstCollision()
Contents, API Reference, Interfaces, iMesh, findShortestPath_WithQueryCallBack



Finds the shortest path from a given start position to a given end position for agents with a specified collision shape.
(This version supports passing in a callback object to enable the query to be aborted early.)


std::unique_ptr<iPath> findShortestPath_WithQueryCallBack(const iShape& shape, const iCollisionContext* context, const cPosition& start, const cPosition& goal, iQueryCallBack* queryCallBack) const


shape The collision shape to use for this query.
context The state of dynamic collision that will apply for this query.
An empty context can be specified by passing nullptr for this argument.
start The start point for pathfinding.
This position must be a valid position on this mesh, and must not be obstructed by the base mesh or burnt-in obstacles.
goal The target point for pathfinding.
This position must be a valid position on this mesh.
queryCallBack A pointer to a valid implementation of the iQueryCallBack interface, or else null.


Requires that pathfind preprocess has been generated on this mesh for the collision shape specified.

Return Value

A newly created Interface iPath object, if a path can be found.
Otherwise a zero pointer is returned.


If start and end are identical then a path with only one point is returned.

Queries for which the target position is obstructed can be a lot more expensive, so if the target position is potentially obstructed then it is a good idea to call iMesh::testPointCollision() for the target position first.
If the target position is obstructed then you know that the query will fail.
This check is not performed internally to avoid adding overhead in cases where the target position is known in advance to be unobstructed.

Refer to Aborting Pathfinding Early for details about using the query callback mechanism.
Note that if the search is aborted by the query callback then the path returned will not reach the goal.

See Also

iMesh::findShortestPath(), iMesh::findPathAway(), iMesh::findPathAway_WithQueryCallBack(), Interface iCollisionContext

C# Mapping

Path findShortestPath_WithQueryCallBack(Shape shape, CollisionContext context, PathEngine.Position start, PathEngine.Position goal, QueryCallBack queryCallBack);

Documentation for PathEngine release 6.04 - Copyright © 2002-2024 PathEnginenext: iMesh::firstCollision()