condor_navmesh/algorithms/mod.rs
1//! Online and prepared navmesh solvers owned by this crate.
2//!
3//! # Choose a family
4//!
5//! - **Static pathfinders** ([`NavmeshPathfinder`](crate::NavmeshPathfinder)) —
6//! one validated [`Navmesh`](crate::Navmesh) per call, no preprocess, no shared
7//! cache:
8//! - [`channel_search`] — cell-corridor BFS + portal-midpoint funnel
9//! - [`ta_star`] — same corridor, then local portal-endpoint refinement
10//! - optional crate-root [`Polyanya`](crate::Polyanya) (feature-gated) —
11//! external mesh adapt + funnel
12//!
13//! - **Prepared TRA*** ([`tra_star`]) — implement
14//! [`PreparedNavmeshBuilder`](crate::PreparedNavmeshBuilder): preprocess once
15//! into an immutable map, then `search` many queries. Variants differ only in
16//! how portal-midpoint seeds are cached (none, eager static, lazy, LRU,
17//! policy-profile). They do **not** apply dynamic availability; materialize a
18//! static snapshot first when cells/portals toggle.
19//!
20//! All public solvers share the same continuous outcome shape
21//! ([`NavmeshSearchResult`](crate::NavmeshSearchResult)) and post-corridor
22//! funnel ([`navmesh::funnel`](crate::navmesh::funnel)). Private candidates may
23//! live beside these modules without a separate experiment crate.
24
25/// Static corridor BFS + portal-midpoint funnel navmesh pathfinder.
26pub mod channel_search;
27/// Static TA* tactical navmesh route search.
28pub mod ta_star;
29/// Prepared TRA* builders and waypoint-DB policy variants.
30pub mod tra_star;
31
32// Candidate code is deliberately private: it shares the normal navmesh crate
33// and validation route, but is not yet part of the supported solver surface.
34#[allow(dead_code)]
35mod tra_star_portal_corner_graph;
36#[allow(dead_code)]
37mod tra_star_portal_interval_search;