pub struct DistanceField { /* private fields */ }Expand description
A signed-distance field represented as a 2-D grid.
sdf\[ix\]\[iy\] stores the distance to the nearest obstacle for the cell
at integer coordinates (ix, iy). Values are positive outside obstacles.
Implementations§
Source§impl DistanceField
impl DistanceField
Sourcepub fn from_obstacle_grid(obstacles: &[Vec<bool>]) -> Self
pub fn from_obstacle_grid(obstacles: &[Vec<bool>]) -> Self
Build a distance field from a binary obstacle grid.
obstacles is a row-major width x height grid where true means
occupied. The returned field stores the Euclidean distance to the
nearest occupied cell (approximated via a two-pass sweeping algorithm).
Sourcepub fn query(&self, x: f64, y: f64) -> f64
pub fn query(&self, x: f64, y: f64) -> f64
Query the distance at a continuous position (nearest-cell lookup).
pub fn width(&self) -> usize
pub fn height(&self) -> usize
Auto Trait Implementations§
impl Freeze for DistanceField
impl RefUnwindSafe for DistanceField
impl Send for DistanceField
impl Sync for DistanceField
impl Unpin for DistanceField
impl UnsafeUnpin for DistanceField
impl UnwindSafe for DistanceField
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 more§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§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 more§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).§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.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.