Skip to main content

ContinuousAStar

Struct ContinuousAStar 

Source
pub struct ContinuousAStar<'a> { /* private fields */ }
Expand description

2D continuous-space A* pathfinder.

Wraps a walkability grid and continuous-space extent. Use find_path to compute paths between continuous positions.

Implementations§

Source§

impl<'a> ContinuousAStar<'a>

Source

pub fn new( extent_x: f64, extent_y: f64, walkmap: &'a [bool], grid_w: usize, grid_h: usize, opts: ContinuousAStarOpts, ) -> Result<Self, ContinuousAStarConfigError>

Create a new continuous-space pathfinder.

Source

pub fn with_metric(self, metric: impl CostMetric + 'static) -> Self

Set a custom cost metric for the underlying grid A*.

Source

pub fn find_path( &self, from: (f64, f64), to: (f64, f64), ) -> Option<ContinuousPath>

Find a path from from to to in continuous coordinates.

Returns None if no path exists (start or goal is unwalkable, or no connected path through walkable cells).

The returned ContinuousPath contains waypoints in continuous coordinates. The last waypoint is the exact to position.

Auto Trait Implementations§

§

impl<'a> Freeze for ContinuousAStar<'a>

§

impl<'a> !RefUnwindSafe for ContinuousAStar<'a>

§

impl<'a> !Send for ContinuousAStar<'a>

§

impl<'a> !Sync for ContinuousAStar<'a>

§

impl<'a> Unpin for ContinuousAStar<'a>

§

impl<'a> UnsafeUnpin for ContinuousAStar<'a>

§

impl<'a> !UnwindSafe for ContinuousAStar<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V