Minor improvements + usage description in NavMesh
This commit is contained in:
parent
90d8b0479d
commit
fd20de9dcc
@ -4,6 +4,13 @@
|
|||||||
|
|
||||||
namespace Gedeng {
|
namespace Gedeng {
|
||||||
|
|
||||||
|
// A NavMesh can be constructed from the geometry in a node tree in order to be
|
||||||
|
// used for pathfinding. A typical scenario would go as follows:
|
||||||
|
// 1. Load Nodes using NodeSystem::load_nodes_from_disk
|
||||||
|
// 2. Create a NavMesh using NavMesh::create_from_nodes
|
||||||
|
// 3. Verify the resulting NavMesh via NavMesh::is_valid
|
||||||
|
// 4. Get a path between the desired points via NavMesh::get_path
|
||||||
|
// 5. Position an entity along this path via Path::get_interpolated_position
|
||||||
class NavMesh {
|
class NavMesh {
|
||||||
// Build the NavMesh from all collider geometry in the given node and all
|
// Build the NavMesh from all collider geometry in the given node and all
|
||||||
// its children.
|
// its children.
|
||||||
@ -13,16 +20,15 @@ class NavMesh {
|
|||||||
// former `create_from_nodes` call) and its geometry is valid.
|
// former `create_from_nodes` call) and its geometry is valid.
|
||||||
bool is_valid() const;
|
bool is_valid() const;
|
||||||
|
|
||||||
// Return a valid path from a given Vector3 to a given Vector3.
|
// Return a valid and optimal path from a given Vector3 to a given Vector3.
|
||||||
// If no valid path can be constructed, the returned path will be of size 1
|
// If no valid path can be constructed, the returned path will be of size 1
|
||||||
// and contain only the `from` vector.
|
// and contain only the `from` vector.
|
||||||
// The returned path may not be optimal -- if that is undesired, call
|
|
||||||
// `optimize_path` on the result.
|
|
||||||
Path get_path(const Vector3 &from, const Vector3 &to) const;
|
Path get_path(const Vector3 &from, const Vector3 &to) const;
|
||||||
|
|
||||||
// Optimize the given path to traverse the NavMesh as efficiently as
|
// Return any valid path from a given Vector3 to a given Vector3.
|
||||||
// possible. This can be slow!
|
// This is more performant than `get_path`, but the returned path may not be
|
||||||
void optimize_path(Path &path) const;
|
// optimal -- if that is undesired, call `get_path` instead.
|
||||||
|
Path get_unoptimized_path(const Vector3 &from, const Vector3 &to) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Gedeng
|
} // namespace Gedeng
|
Loading…
x
Reference in New Issue
Block a user