pub struct PreparedTRAStarWaypointDatabaseAdaptiveLru { /* private fields */ }Expand description
Prepared TRA* with a capacity-bounded single-tier LRU of portal midpoints.
Midpoints fill on first use and survive across queries until capacity eviction (recency only).
Implementations§
Source§impl PreparedTRAStarWaypointDatabaseAdaptiveLru
impl PreparedTRAStarWaypointDatabaseAdaptiveLru
Sourcepub fn builder() -> TRAStarWaypointDatabaseAdaptiveLruBuilder
pub fn builder() -> TRAStarWaypointDatabaseAdaptiveLruBuilder
Returns a TRAStarWaypointDatabaseAdaptiveLruBuilder for preprocess entry.
Sourcepub fn prepared_tra_star(&self) -> &PreparedTRAStar
pub fn prepared_tra_star(&self) -> &PreparedTRAStar
Underlying base TRA* prepared surface.
Sourcepub fn lru_capacity(&self) -> usize
pub fn lru_capacity(&self) -> usize
Maximum midpoint entries retained in the adaptive LRU.
Sourcepub fn retained_waypoint_count(&self) -> usize
pub fn retained_waypoint_count(&self) -> usize
Midpoints currently held in the adaptive LRU (across queries).
Sourcepub fn search(
&self,
query: NavmeshQuery,
) -> Result<SearchOutcome<PolygonPath, NavmeshSearchStats>, NavmeshSearchError>
pub fn search( &self, query: NavmeshQuery, ) -> Result<SearchOutcome<PolygonPath, NavmeshSearchStats>, NavmeshSearchError>
Routes while updating the adaptive LRU midpoint cache.
Trait Implementations§
Owned static mesh snapshot this preparation was built from.
Source§fn neighbors(&self, cell_index: usize) -> Option<&[usize]>
fn neighbors(&self, cell_index: usize) -> Option<&[usize]>
Indexed neighbor cell list for
cell_index, or None if out of range.Source§fn portals_from(&self, cell_index: usize) -> Option<&[NavmeshPortal]>
fn portals_from(&self, cell_index: usize) -> Option<&[NavmeshPortal]>
Indexed portals incident to
cell_index, or None if out of range.Source§fn portal_between(
&self,
left_cell: usize,
right_cell: usize,
) -> Option<NavmeshPortal>
fn portal_between( &self, left_cell: usize, right_cell: usize, ) -> Option<NavmeshPortal>
Portal joining two cells when one was recorded at preprocess time. Read more
Source§fn locate_point(&self, point: Point2) -> Option<usize>
fn locate_point(&self, point: Point2) -> Option<usize>
First cell containing
point; see Navmesh::locate_point.Source§fn locate_cells(&self, point: Point2) -> Vec<usize>
fn locate_cells(&self, point: Point2) -> Vec<usize>
All cells containing
point; see Navmesh::locate_cells.Source§fn query(&self, query: NavmeshQuery) -> NavmeshQueryResult
fn query(&self, query: NavmeshQuery) -> NavmeshQueryResult
Cell-graph connectivity for
query; see Navmesh::query.Source§fn materialize_corridor(
&self,
start: Point2,
goal: Point2,
cells: &[usize],
) -> Option<NavmeshCorridor>
fn materialize_corridor( &self, start: Point2, goal: Point2, cells: &[usize], ) -> Option<NavmeshCorridor>
Builds a
NavmeshCorridor for a known cell sequence using the owned mesh portals. Read moreAuto Trait Implementations§
impl !Freeze for PreparedTRAStarWaypointDatabaseAdaptiveLru
impl RefUnwindSafe for PreparedTRAStarWaypointDatabaseAdaptiveLru
impl Send for PreparedTRAStarWaypointDatabaseAdaptiveLru
impl Sync for PreparedTRAStarWaypointDatabaseAdaptiveLru
impl Unpin for PreparedTRAStarWaypointDatabaseAdaptiveLru
impl UnsafeUnpin for PreparedTRAStarWaypointDatabaseAdaptiveLru
impl UnwindSafe for PreparedTRAStarWaypointDatabaseAdaptiveLru
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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 more