pub struct HeightField { /* private fields */ }Expand description
A 2D heightfield with a generic storage buffer for its heights.
Implementations§
Source§impl HeightField
impl HeightField
Source§impl HeightField
impl HeightField
Sourcepub fn bounding_sphere(&self, pos: &Pose) -> BoundingSphere
pub fn bounding_sphere(&self, pos: &Pose) -> BoundingSphere
Computes the world-space bounding sphere of this height-field, transformed by pos.
Sourcepub fn local_bounding_sphere(&self) -> BoundingSphere
pub fn local_bounding_sphere(&self) -> BoundingSphere
Computes the local-space bounding sphere of this height-field.
Source§impl HeightField
impl HeightField
Source§impl HeightField
impl HeightField
Sourcepub fn set_scale(&mut self, new_scale: Vector)
pub fn set_scale(&mut self, new_scale: Vector)
Sets the scale factor applied to this heightfield.
Sourcepub fn cell_width(&self) -> f32
pub fn cell_width(&self) -> f32
The width of a single cell of this heightfield.
Sourcepub fn unit_cell_width(&self) -> f32
pub fn unit_cell_width(&self) -> f32
The width of a single cell of this heightfield, without taking the scale factor into account.
Sourcepub fn cell_at_point(&self, pt: Vector2) -> Option<usize>
pub fn cell_at_point(&self, pt: Vector2) -> Option<usize>
Index of the cell a point is on after vertical projection.
Sourcepub fn height_at_point(&self, pt: Vector2) -> Option<f32>
pub fn height_at_point(&self, pt: Vector2) -> Option<f32>
Height of the heightfield at the given point after vertical projection on the heightfield surface.
Sourcepub fn segments(&self) -> impl Iterator<Item = Segment> + '_
pub fn segments(&self) -> impl Iterator<Item = Segment> + '_
Iterator through all the segments of this heightfield.
Sourcepub fn segment_at(&self, i: usize) -> Option<Segment>
pub fn segment_at(&self, i: usize) -> Option<Segment>
The i-th segment of the heightfield if it has not been removed.
Sourcepub fn set_segment_removed(&mut self, i: usize, removed: bool)
pub fn set_segment_removed(&mut self, i: usize, removed: bool)
Mark the i-th segment of this heightfield as removed or not.
Sourcepub fn is_segment_removed(&self, i: usize) -> bool
pub fn is_segment_removed(&self, i: usize) -> bool
Checks if the i-th segment has been removed.
Sourcepub fn unclamped_elements_range_in_local_aabb(
&self,
aabb: &Aabb,
) -> Range<isize>
pub fn unclamped_elements_range_in_local_aabb( &self, aabb: &Aabb, ) -> Range<isize>
The range of segment ids that may intersect the given local Aabb.
Source§impl HeightField
impl HeightField
Trait Implementations§
Source§impl Clone for HeightField
impl Clone for HeightField
Source§fn clone(&self) -> HeightField
fn clone(&self) -> HeightField
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HeightField
impl Debug for HeightField
Source§impl PointQuery for HeightField
impl PointQuery for HeightField
Source§fn project_local_point_with_max_dist(
&self,
pt: Vector,
solid: bool,
max_dist: f32,
) -> Option<PointProjection>
fn project_local_point_with_max_dist( &self, pt: Vector, solid: bool, max_dist: f32, ) -> Option<PointProjection>
Source§fn project_local_point(&self, point: Vector, _: bool) -> PointProjection
fn project_local_point(&self, point: Vector, _: bool) -> PointProjection
self. Read moreSource§fn project_local_point_and_get_feature(
&self,
point: Vector,
) -> (PointProjection, FeatureId)
fn project_local_point_and_get_feature( &self, point: Vector, ) -> (PointProjection, FeatureId)
self and returns the id of the
feature the point was projected on.Source§fn contains_local_point(&self, _point: Vector) -> bool
fn contains_local_point(&self, _point: Vector) -> bool
self.Source§fn project_point_with_max_dist(
&self,
m: &Pose,
pt: Vector,
solid: bool,
max_dist: f32,
) -> Option<PointProjection>
fn project_point_with_max_dist( &self, m: &Pose, pt: Vector, solid: bool, max_dist: f32, ) -> Option<PointProjection>
self transformed by m, unless the projection lies further than the given max distance.Source§fn distance_to_local_point(&self, pt: Vector, solid: bool) -> f32
fn distance_to_local_point(&self, pt: Vector, solid: bool) -> f32
self.Source§fn project_point(&self, m: &Pose, pt: Vector, solid: bool) -> PointProjection
fn project_point(&self, m: &Pose, pt: Vector, solid: bool) -> PointProjection
self transformed by m.Source§fn distance_to_point(&self, m: &Pose, pt: Vector, solid: bool) -> f32
fn distance_to_point(&self, m: &Pose, pt: Vector, solid: bool) -> f32
self transformed by m.Source§fn project_point_and_get_feature(
&self,
m: &Pose,
pt: Vector,
) -> (PointProjection, FeatureId)
fn project_point_and_get_feature( &self, m: &Pose, pt: Vector, ) -> (PointProjection, FeatureId)
self transformed by m and returns the id of the
feature the point was projected on.Source§impl PointQueryWithLocation for HeightField
impl PointQueryWithLocation for HeightField
Source§type Location = (usize, TrianglePointLocation)
type Location = (usize, TrianglePointLocation)
Source§fn project_local_point_and_get_location(
&self,
_point: Vector,
_: bool,
) -> (PointProjection, Self::Location)
fn project_local_point_and_get_location( &self, _point: Vector, _: bool, ) -> (PointProjection, Self::Location)
self.Source§fn project_point_and_get_location(
&self,
m: &Pose,
pt: Vector,
solid: bool,
) -> (PointProjection, Self::Location)
fn project_point_and_get_location( &self, m: &Pose, pt: Vector, solid: bool, ) -> (PointProjection, Self::Location)
self transformed by m.Source§fn project_local_point_and_get_location_with_max_dist(
&self,
pt: Vector,
solid: bool,
max_dist: f32,
) -> Option<(PointProjection, Self::Location)>
fn project_local_point_and_get_location_with_max_dist( &self, pt: Vector, solid: bool, max_dist: f32, ) -> Option<(PointProjection, Self::Location)>
self, with a maximum projection distance.Source§fn project_point_and_get_location_with_max_dist(
&self,
m: &Pose,
pt: Vector,
solid: bool,
max_dist: f32,
) -> Option<(PointProjection, Self::Location)>
fn project_point_and_get_location_with_max_dist( &self, m: &Pose, pt: Vector, solid: bool, max_dist: f32, ) -> Option<(PointProjection, Self::Location)>
self transformed by m, with a maximum projection distance.Source§impl RayCast for HeightField
Available on crate feature dim2 only.
impl RayCast for HeightField
dim2 only.Source§fn cast_local_ray_and_get_normal(
&self,
ray: &Ray,
max_time_of_impact: f32,
_: bool,
) -> Option<RayIntersection>
fn cast_local_ray_and_get_normal( &self, ray: &Ray, max_time_of_impact: f32, _: bool, ) -> Option<RayIntersection>
Source§fn cast_local_ray(
&self,
ray: &Ray,
max_time_of_impact: f32,
solid: bool,
) -> Option<f32>
fn cast_local_ray( &self, ray: &Ray, max_time_of_impact: f32, solid: bool, ) -> Option<f32>
Source§fn intersects_local_ray(&self, ray: &Ray, max_time_of_impact: f32) -> bool
fn intersects_local_ray(&self, ray: &Ray, max_time_of_impact: f32) -> bool
Source§fn cast_ray(
&self,
m: &Pose,
ray: &Ray,
max_time_of_impact: f32,
solid: bool,
) -> Option<f32>
fn cast_ray( &self, m: &Pose, ray: &Ray, max_time_of_impact: f32, solid: bool, ) -> Option<f32>
Source§fn cast_ray_and_get_normal(
&self,
m: &Pose,
ray: &Ray,
max_time_of_impact: f32,
solid: bool,
) -> Option<RayIntersection>
fn cast_ray_and_get_normal( &self, m: &Pose, ray: &Ray, max_time_of_impact: f32, solid: bool, ) -> Option<RayIntersection>
Source§impl Shape for HeightField
Available on crate feature alloc only.
impl Shape for HeightField
alloc only.Source§fn scale_dyn(
&self,
scale: Vector,
_num_subdivisions: u32,
) -> Option<Box<dyn Shape>>
fn scale_dyn( &self, scale: Vector, _num_subdivisions: u32, ) -> Option<Box<dyn Shape>>
scale into a boxed trait-object. Read moreSource§fn compute_local_aabb(&self) -> Aabb
fn compute_local_aabb(&self) -> Aabb
Aabb of this shape.Source§fn compute_local_bounding_sphere(&self) -> BoundingSphere
fn compute_local_bounding_sphere(&self) -> BoundingSphere
Source§fn compute_aabb(&self, position: &Pose) -> Aabb
fn compute_aabb(&self, position: &Pose) -> Aabb
Aabb of this shape with the given position.Source§fn mass_properties(&self, _density: f32) -> MassProperties
fn mass_properties(&self, _density: f32) -> MassProperties
Source§fn shape_type(&self) -> ShapeType
fn shape_type(&self) -> ShapeType
Source§fn as_typed_shape(&self) -> TypedShape<'_>
fn as_typed_shape(&self) -> TypedShape<'_>
fn ccd_thickness(&self) -> f32
fn ccd_angular_thickness(&self) -> f32
Source§fn clone_box(&self) -> Box<dyn Shape>
fn clone_box(&self) -> Box<dyn Shape>
renamed to clone_dyn
Source§fn compute_bounding_sphere(&self, position: &Pose) -> BoundingSphere
fn compute_bounding_sphere(&self, position: &Pose) -> BoundingSphere
Source§fn as_support_map(&self) -> Option<&dyn SupportMap>
fn as_support_map(&self) -> Option<&dyn SupportMap>
fn as_composite_shape(&self) -> Option<&dyn CompositeShape>
Source§fn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, f32)>
fn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, f32)>
Auto Trait Implementations§
impl Freeze for HeightField
impl RefUnwindSafe for HeightField
impl Send for HeightField
impl Sync for HeightField
impl Unpin for HeightField
impl UnsafeUnpin for HeightField
impl UnwindSafe for HeightField
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
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>
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>
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<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>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.