Expand description
Continuous-space A* pathfinding.
Discretizes a continuous 2D or 3D space into a grid, runs A* on the grid,
then maps the resulting path back to continuous coordinates. This mirrors
Julia Agents.jl astar_continuous.jl.
§How it works
- The continuous space
[0, extent_x) x [0, extent_y)is overlaid with a walkability grid ofgrid_w x grid_hcells. - Continuous positions are converted to discrete grid cells.
- A* runs on the grid using the configured cost metric.
- The discrete path is converted back to continuous waypoints (cell centers), with anti-backtracking optimization on the last waypoint.
§Example
use rustsim_pathfinding::continuous_astar::{ContinuousAStar, ContinuousAStarOpts};
// 100x100 continuous space, discretized to a 50x50 walkability grid
let walkmap = vec![true; 50 * 50]; // all walkable
let pathfinder = ContinuousAStar::new(
100.0, 100.0,
&walkmap, 50, 50,
ContinuousAStarOpts::default(),
)
.unwrap();
let path = pathfinder.find_path((10.0, 10.0), (90.0, 90.0));
assert!(path.is_some());Structs§
- ContinuousA
Star - 2D continuous-space A* pathfinder.
- ContinuousA
Star3D - 3D continuous-space A* pathfinder.
- ContinuousA
Star Opts - Options for continuous-space A* pathfinding.
- Continuous
Path - Result of a continuous-space A* search.
- Continuous
Path3D - Result of a 3D continuous-space A* search.
Enums§
- ContinuousA
Star Config Error - Errors returned by continuous A* configuration validation.