pub struct AStarPlanner { /* private fields */ }Expand description
A* search algorithm planner
Implementations§
Source§impl AStarPlanner
impl AStarPlanner
Sourcepub fn with_max_iterations(self, maxiterations: usize) -> Self
pub fn with_max_iterations(self, maxiterations: usize) -> Self
Set the maximum number of iterations
Sourcepub fn with_weight(self, weight: f64) -> Self
pub fn with_weight(self, weight: f64) -> Self
Set the heuristic weight (for weighted A*)
Sourcepub fn search<N: Clone + Eq + Hash>(
&self,
start: N,
goal: N,
neighbors_fn: &dyn Fn(&N) -> Vec<(N, f64)>,
heuristic_fn: &dyn Fn(&N, &N) -> f64,
) -> SpatialResult<Option<Path<N>>>
pub fn search<N: Clone + Eq + Hash>( &self, start: N, goal: N, neighbors_fn: &dyn Fn(&N) -> Vec<(N, f64)>, heuristic_fn: &dyn Fn(&N, &N) -> f64, ) -> SpatialResult<Option<Path<N>>>
Run the A* search algorithm
§Arguments
start- The start stategoal- The goal stateneighbors_fn- Function that returns neighboring states and costsheuristic_fn- Function that estimates the cost from a state to the goal
§Returns
Ok(Some(Path))- A path was foundOk(None)- No path was foundErr(SpatialError)- An error occurred
Trait Implementations§
Source§impl Debug for AStarPlanner
impl Debug for AStarPlanner
Auto Trait Implementations§
impl Freeze for AStarPlanner
impl RefUnwindSafe for AStarPlanner
impl Send for AStarPlanner
impl Sync for AStarPlanner
impl Unpin for AStarPlanner
impl UnwindSafe for AStarPlanner
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.