Skip to main content

rustsim_pathfinding/
lib.rs

1//! Pathfinding algorithms for agent-based models.
2//!
3//! Provides:
4//!
5//! - [`astar`] -- generic A* over any graph/node type, plus grid-specific variants
6//! - [`metrics`] -- pluggable cost metrics (DirectDistance, MaxDistance, Manhattan, PenaltyMap)
7//! - [`continuous_astar`] -- continuous-space A* with automatic discretization (2D and 3D)
8//! - [`route`] -- route planning and step-along-route movement for agents
9//! - [`route_choice`] -- multinomial logit (MNL) route choice model
10//! - [`walkability`] -- walkable-cell queries and random walkable position utilities
11//! - [`yen`] -- Yen's K-shortest loopless paths algorithm
12//!
13//! Mirrors Julia Agents.jl `Pathfinding` submodule.
14
15pub mod astar;
16pub mod continuous_astar;
17pub mod metrics;
18pub mod route;
19pub mod route_choice;
20pub mod walkability;
21pub mod yen;
22
23/// Re-exports of pathfinding types and functions.
24pub mod prelude {
25    pub use crate::astar::{astar, astar_grid2d, astar_grid2d_opts, AStarResult, GridAStarOpts};
26    pub use crate::continuous_astar::{
27        ContinuousAStar, ContinuousAStar3D, ContinuousAStarConfigError, ContinuousAStarOpts,
28        ContinuousPath, ContinuousPath3D,
29    };
30    pub use crate::metrics::{
31        CostMetric, DirectDistance, Manhattan, MaxDistance, PenaltyMap, PenaltyMapError,
32    };
33    pub use crate::route::{MoveResult2D, MoveResult3D, RoutePlanner};
34    pub use crate::route_choice::{mnl_logsum, mnl_probabilities, mnl_select};
35    pub use crate::walkability::{
36        nearby_walkable, random_walkable, random_walkable_continuous,
37        random_walkable_continuous_nearby, random_walkable_nearby,
38    };
39    pub use crate::yen::{yen_k_shortest, YenPath};
40}