rustsim-pathfinding 0.0.1

Generic A* and grid-specific pathfinding for rustsim
Documentation
//! Pathfinding algorithms for agent-based models.
//!
//! Provides:
//!
//! - [`astar`] -- generic A* over any graph/node type, plus grid-specific variants
//! - [`metrics`] -- pluggable cost metrics (DirectDistance, MaxDistance, Manhattan, PenaltyMap)
//! - [`continuous_astar`] -- continuous-space A* with automatic discretization (2D and 3D)
//! - [`route`] -- route planning and step-along-route movement for agents
//! - [`route_choice`] -- multinomial logit (MNL) route choice model
//! - [`walkability`] -- walkable-cell queries and random walkable position utilities
//! - [`yen`] -- Yen's K-shortest loopless paths algorithm
//!
//! Mirrors Julia Agents.jl `Pathfinding` submodule.

pub mod astar;
pub mod continuous_astar;
pub mod metrics;
pub mod route;
pub mod route_choice;
pub mod walkability;
pub mod yen;

/// Re-exports of pathfinding types and functions.
pub mod prelude {
    pub use crate::astar::{astar, astar_grid2d, astar_grid2d_opts, AStarResult, GridAStarOpts};
    pub use crate::continuous_astar::{
        ContinuousAStar, ContinuousAStar3D, ContinuousAStarConfigError, ContinuousAStarOpts,
        ContinuousPath, ContinuousPath3D,
    };
    pub use crate::metrics::{
        CostMetric, DirectDistance, Manhattan, MaxDistance, PenaltyMap, PenaltyMapError,
    };
    pub use crate::route::{MoveResult2D, MoveResult3D, RoutePlanner};
    pub use crate::route_choice::{mnl_logsum, mnl_probabilities, mnl_select};
    pub use crate::walkability::{
        nearby_walkable, random_walkable, random_walkable_continuous,
        random_walkable_continuous_nearby, random_walkable_nearby,
    };
    pub use crate::yen::{yen_k_shortest, YenPath};
}