Struct NavigationContext

Source
pub struct NavigationContext { /* private fields */ }
Expand description

Contains the graph and edges necessary for path finding

Implementations§

Source§

impl NavigationContext

Source

pub fn new(faces: impl IntoIterator<Item = Face>) -> Self

Creates a new navigation context

Source

pub fn new_shuffle( faces: impl IntoIterator<Item = Face>, rng: &mut impl Rng, ) -> Self

Creates a new navigation context. Shuffles the input which usually reduces the depth of the final tree.

Source

pub fn node(&self, index: NodeIndex) -> Option<&BSPNode>

Source

pub fn locate(&self, point: Vec2) -> Option<NodePayload<'_>>

Locate a position in the tree. Return None if there are no faces in the scene

Source

pub fn tree(&self) -> Option<&BSPTree>

Get a reference to the navigation context’s tree.

Source

pub fn portals(&self) -> &Portals

Get a reference to the navigation context’s portals.

Source

pub fn get(&self, index: NodeIndex) -> PortalIter<'_>

Get the portals associated to a node

Source

pub fn find_path( &self, start: Vec2, end: Vec2, heuristic: impl Fn(Vec2, Vec2) -> f32, info: SearchInfo, ) -> Option<Path>

Find a path from start to end Returns None if no path was found. If there are no faces in the scene, a straight path will be returned.

Source

pub fn find_path_inc<'a>( &self, start: Vec2, end: Vec2, heuristic: impl Fn(Vec2, Vec2) -> f32, info: SearchInfo, path: &'a mut Option<Path>, ) -> Option<&'a mut Path>

Find a path from start to end Returns None if no path was found. If there are no faces in the scene, a straight path will be returned. Uses an already allocated path to fill and will attempt to only update parts of the path

Trait Implementations§

Source§

impl Default for NavigationContext

Source§

fn default() -> NavigationContext

Returns the “default value” for a type. Read more

Auto Trait Implementations§

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