condor-pathfinding-geometry 0.4.0

Continuous polygonal pathfinding algorithms and geometry primitives for Condor.
Documentation

Owner crate for the continuous polygonal free-space lane.

Runtime substrate ([polygonal]), the online [continuous::PolygonPathfinder] trait and path types, exact solvers ([visibility_graph], [topological_fracture_search]), and source-rooted prepared maps ([shortest_path_map]) live here. Free space uses Euclidean polyline cost and the shared [condor_core::SearchOutcome] found/no-path shape. The facade re-exports these modules under the polygonal feature and still owns fixture packs / pack adapters; do not depend on this crate for grid, any-angle, or navmesh surfaces.

This owner crate depends on neutral core contracts, never on the public facade. Corpus conformance belongs to the private harness package and benchmark/capture evidence to the private bench package.

Private not-ready candidates remain module-private and unreexported until implemented and promoted through the ordinary geometry-family validation route.

Choose a continuous surface

Use [visibility_graph::VisibilityGraph] or [topological_fracture_search::TopologicalFractureSearch] for one exact query in a polygon scene. For many goals from a fixed source, build a [shortest_path_map] instead of rebuilding an online solver each time.

Example

use condor_geometry::{
    continuous::PolygonPathfinder,
    polygonal::{Point2, PolygonScene, PolygonSearchRequest, WorldBounds},
    visibility_graph::VisibilityGraph,
};

let scene = PolygonScene {
    world_bounds: WorldBounds::new(Point2::new(0.0, 0.0), Point2::new(3.0, 3.0)),
    obstacles: Vec::new(),
};
let request = PolygonSearchRequest::new(Point2::new(0.5, 0.5), Point2::new(2.5, 2.5));
let result = VisibilityGraph.search(&scene, request).expect("request is valid");
assert!(result.is_found());