1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//! 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());
//! ```
/// Online continuous pathfinder trait, polyline path, and search result vocabulary.
/// Polygon scenes, world bounds, validation, and free-space walkability primitives.
/// Source-rooted prepared shortest-path maps for repeated polygonal queries.
/// Exact topological-fracture continuous polygonal pathfinder.
/// Exact visibility-graph continuous polygonal pathfinder (sparse-scene baseline).
// Private retained candidates are deliberately not constructed or re-exported
// until a promotion decision; keep their identity/next-step metadata local.
pub use ;