Skip to main content

Module continuous_astar

Module continuous_astar 

Source
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

  1. The continuous space [0, extent_x) x [0, extent_y) is overlaid with a walkability grid of grid_w x grid_h cells.
  2. Continuous positions are converted to discrete grid cells.
  3. A* runs on the grid using the configured cost metric.
  4. 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§

ContinuousAStar
2D continuous-space A* pathfinder.
ContinuousAStar3D
3D continuous-space A* pathfinder.
ContinuousAStarOpts
Options for continuous-space A* pathfinding.
ContinuousPath
Result of a continuous-space A* search.
ContinuousPath3D
Result of a 3D continuous-space A* search.

Enums§

ContinuousAStarConfigError
Errors returned by continuous A* configuration validation.