mecha10-planning 0.6.3

Path planning and navigation algorithms for Mecha10 - A*, RRT, and more
//! Mecha10 Planning
//!
//! > **NOTE: This crate has no consumers in the workspace.** It is a complete
//! > implementation of A* and RRT path planning algorithms, ready to use, but
//! > no node or CLI command currently depends on it. It exists for future
//! > navigation nodes. See USE_CASES.md.
//!
//! This crate provides path planning and navigation algorithms as `BehaviorNode` implementations.
//!
//! # Available Planners
//!
//! - **A* (A-Star)**: Optimal grid-based path planning
//! - **RRT (Rapidly-exploring Random Tree)**: Sampling-based planning for complex spaces
//!
//! # Example
//!
//! ```rust,no_run
//! use mecha10_planning::prelude::*;
//!
//! # async fn example(ctx: &Context) -> anyhow::Result<()> {
//! // Create A* planner
//! let planner = AStarPlanner::new(
//!     (0.0, 0.0),      // start
//!     (10.0, 10.0),    // goal
//!     0.1,             // resolution
//! );
//!
//! // Execute planning
//! let mut node = PathPlannerNode::new(Box::new(planner));
//! let status = node.tick(ctx).await?;
//! # Ok(())
//! # }
//! ```

mod astar;
mod path_planner_node;
mod rrt;
mod types;

pub use astar::AStarPlanner;
pub use path_planner_node::{PathPlannerConfig, PathPlannerNode};
pub use rrt::RRTPlanner;
pub use types::{Obstacle, Path, Point2D};

/// Prelude module for convenient imports
pub mod prelude {
    pub use crate::astar::AStarPlanner;
    pub use crate::path_planner_node::{PathPlannerConfig, PathPlannerNode};
    pub use crate::rrt::RRTPlanner;
    pub use crate::types::{Obstacle, Path, Point2D};
    pub use mecha10_behavior_runtime::prelude::*;
}