Skip to main content

Crate condor_grid

Crate condor_grid 

Source
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

NeedStart with
One static 4-connected queryAStar via Pathfinder
Straight-line paths through a gridAnyAnglePathfinder implementations
Many queries over one static gridPreprocessedGridBuilder or a domain-specific prepared builder
Changing costs or blocked cellsGridReplanner / InterpolatedGridReplanner
Multiple agentsMapfStarterPlanner

§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 Pathfinder trait, search request, budget, and outcome contracts. Online 4-connected grid-search request, result, and Pathfinder contract.

Macros§

grid
Constructs a Grid from textual rows using Grid::try_from_rows.

Structs§

BudgetWatch
One-shot wall-clock deadline for a single search invocation.
Point2
Continuous 2D point in world / scene coordinates (not grid cells).
SearchBudget
Caller-chosen expansion and/or wall-clock limits for one search.

Enums§

BudgetExhausted
Why a search stopped for budget rather than completing found/no-path.
SearchOutcome
Successful search computation, separate from request validation failures.

Traits§

SearchPathCost
Path value that exposes the cost reported by its search domain.
SearchVisitStats
Search statistics that expose an algorithm-defined node-visit count.