Expand description
Grid-domain owner crate for discrete pathfinding substrate.
This domain crate owns the map model (Grid), discrete and any-angle search
contracts (Pathfinder, AnyAnglePathfinder), prepared / preprocessed
multi-query maps, flow fields, hierarchical abstracts, MAPF starter surface,
and incremental replanning traits. Algorithm implementations live under
algorithms; root re-exports form the curated consumer surface that the
public facade (condor-for-games / lib condor) mirrors for compatibility.
Not polygonal / navmesh routing — those live in sibling domain crates. This owner crate depends on neutral core contracts, never on the public facade; corpus conformance and capture evidence live in private developer packages.
§Choose a grid surface
| Need | Start with |
|---|---|
| One static 4-connected query | AStar via Pathfinder |
| Straight-line paths through a grid | AnyAnglePathfinder implementations |
| Many queries over one static grid | PreprocessedGridBuilder or a domain-specific prepared builder |
| Changing costs or blocked cells | GridReplanner / InterpolatedGridReplanner |
| Multiple agents | MapfStarterPlanner |
§Example
use condor_grid::{AStar, Cell, Grid, Pathfinder, Point, SearchRequest};
let mut grid = Grid::new(3, 3).expect("grid dimensions are valid");
grid.set_cell(Point::new(1, 1), Cell::Blocked)
.expect("point is in bounds");
let result = AStar.search(
&grid,
SearchRequest::new(Point::new(0, 0), Point::new(2, 2)),
).expect("request is valid");
assert!(result.is_found());Re-exports§
pub use algorithms::anya::Anya;pub use algorithms::anya::AnyaDiagnostics;pub use algorithms::anya::AnyaInspection;pub use algorithms::astar::AStar;pub use algorithms::astar::AStarDiagnostics;pub use algorithms::astar::AStarInspection;pub use algorithms::bfs::Bfs;pub use algorithms::bidirectional_bfs::BidirectionalBfs;pub use algorithms::dijkstra::Dijkstra;pub use algorithms::hpa_star::HPAStarBuilder;pub use algorithms::hpa_star::PreparedHPAStar;pub use algorithms::jps_plus::JpsPlusBuilder;pub use algorithms::jps_plus::PreparedJpsPlus;pub use algorithms::jump_point_search::JumpPointSearch;pub use algorithms::jump_point_search::JumpPointSearchDiagnostics;pub use algorithms::jump_point_search::JumpPointSearchInspection;pub use algorithms::lazy_theta_star::LazyThetaStar;pub use algorithms::rectangular_symmetry_reduction::RectangularSymmetryReduction;pub use algorithms::subgoal_graph::PreparedSubgoalGraph;pub use algorithms::subgoal_graph::SubgoalGraphBuilder;pub use algorithms::theta_star::ThetaStar;pub use any_angle::AnyAnglePath;pub use any_angle::AnyAnglePathBuildError;pub use any_angle::AnyAnglePathfinder;pub use any_angle::AnyAngleSearchError;pub use any_angle::AnyAngleSearchRequest;pub use any_angle::AnyAngleSearchResult;pub use any_angle::AnyAngleSearchStats;pub use any_angle::has_line_of_sight;pub use flow_field::FlowDirection;pub use flow_field::FlowFieldBuildError;pub use flow_field::FlowFieldBuilder;pub use flow_field::PreparedFlowField;pub use grid::Cell;pub use grid::Grid;pub use grid::GridBuildError;pub use grid::GridBuilder;pub use grid::GridEditError;pub use grid::GridStorage;pub use hierarchical::HierarchicalGridBuildError;pub use hierarchical::HierarchicalGridBuilder;pub use hierarchical::PreparedHierarchicalGrid;pub use mapf::MapfAgent;pub use mapf::MapfAgentPath;pub use mapf::MapfConflict;pub use mapf::MapfObjective;pub use mapf::MapfPlan;pub use mapf::MapfPlanMetrics;pub use mapf::MapfProblem;pub use mapf::MapfStarterPlanner;pub use mapf::MapfStarterPlannerFailure;pub use mapf::MapfStarterPlannerOutcome;pub use mapf::MapfStarterPlannerResult;pub use mapf::MapfValidationReport;pub use path::Path;pub use path::PathBuildError;pub use point::Point;pub use prepared_any_angle::PREPARED_ANY_ANGLE_CSR_U32_INDEX_LIMIT;pub use prepared_any_angle::PREPARED_ANY_ANGLE_DEFAULT_BENCHMARK_NODE_BUDGET;pub use prepared_any_angle::PREPARED_ANY_ANGLE_DIRECTED_EDGE_BUDGET;pub use prepared_any_angle::PREPARED_ANY_ANGLE_NODE_BUDGET;pub use prepared_any_angle::PREPARED_ANY_ANGLE_RETAINED_BYTES_BUDGET;pub use prepared_any_angle::PreparedAnyAngleBenchmarkAdmission;pub use prepared_any_angle::PreparedAnyAngleBuildDiagnostics;pub use prepared_any_angle::PreparedAnyAngleGrid;pub use prepared_any_angle::PreparedAnyAngleGridBuildError;pub use prepared_any_angle::PreparedAnyAngleGridBuilder;pub use prepared_any_angle::PreparedAnyAngleQueryDiagnostics;pub use preprocessed_grid::PreparedGridSearch;pub use preprocessed_grid::PreprocessedGridBuildError;pub use preprocessed_grid::PreprocessedGridBuilder;pub use preprocessed_grid::PreprocessedGridMetadata;pub use preprocessed_grid::StaticPreparedGrid;pub use preprocessed_grid::StaticPreparedGridBuilder;pub use replanning::GridReplanner;pub use replanning::InterpolatedExpectedKind;pub use replanning::InterpolatedGridReplanner;pub use replanning::InterpolatedMovingGoalReplanner;pub use replanning::InterpolatedPath;pub use replanning::InterpolatedPathBuildError;pub use replanning::InterpolatedPathOutcome;pub use replanning::InterpolatedPathOutcomeKind;pub use replanning::InterpolatedPathOutcomeRef;pub use replanning::InterpolatedQueryResult;pub use replanning::InterpolatedSearchError;pub use replanning::InterpolatedSearchOutcome;pub use replanning::InterpolatedSearchRequest;pub use replanning::InterpolatedSearchResult;pub use replanning::InterpolatedSearchStats;pub use replanning::InterpolatedTraversalCostModel;pub use replanning::best_fallback_interpolated_path;pub use replanning::best_partial_interpolated_path;pub use replanning::interpolated_path_cost;pub use replanning::interpolated_segment_cost;pub use replanning::query_interpolated_grid;pub use search::GridSearchError;pub use search::Pathfinder;pub use search::SearchRequest;pub use search::SearchResult;pub use search::SearchStats;
Modules§
- algorithms
- Grid algorithm implementations (static, prepared, any-angle, replanning families). Grid algorithm owner tree: static, prepared, any-angle, and replanning lanes.
- any_
angle - Any-angle pathfinder trait and continuous-on-grid request/result contracts.
Any-angle grid search contracts for continuous endpoints on a blocked
Grid. - flow_
field - Same-goal multi-agent flow-field build and query amortization. Same-goal flow field for amortizing many independent 4-connected paths.
- grid
- Discrete grid storage, cell model, and edit/build errors. Rectangular 4-connected map substrate shared by all discrete grid lanes.
- hierarchical
- Hierarchical abstract-grid layers for multi-level search. Hierarchical build-once/query-many contracts for cluster abstraction and refinement.
- mapf
- Multi-agent pathfinding starter planner and conflict vocabulary. Collision-aware multi-agent pathfinding model, validator, and starter planner.
- path
- Discrete path reconstruction and path cost types. Validated discrete path value: ordered cells plus an algorithm-reported cost.
- point
- Integer cell coordinates for the discrete grid lane. Integer coordinates for discrete grid cells.
- prepared_
any_ angle - Prepared any-angle visibility graphs over static grids. Prepared exact any-angle search for many queries over one static grid.
- preprocessed_
grid - Preprocessed static multi-query grid search substrates. Algorithm-neutral build-once/query-many contracts for static grid search.
- replanning
- Incremental grid replanning and interpolated continuous-on-grid routes. Incremental grid replanning contracts for changing maps and costs.
- search
- Online
Pathfindertrait, search request, budget, and outcome contracts. Online 4-connected grid-search request, result, andPathfindercontract.
Macros§
- grid
- Constructs a
Gridfrom textual rows usingGrid::try_from_rows.
Structs§
- Budget
Watch - One-shot wall-clock deadline for a single search invocation.
- Point2
- Continuous 2D point in world / scene coordinates (not grid cells).
- Search
Budget - Caller-chosen expansion and/or wall-clock limits for one search.
Enums§
- Budget
Exhausted - Why a search stopped for budget rather than completing found/no-path.
- Search
Outcome - Successful search computation, separate from request validation failures.
Traits§
- Search
Path Cost - Path value that exposes the cost reported by its search domain.
- Search
Visit Stats - Search statistics that expose an algorithm-defined node-visit count.