pub struct ConvexPolygon { /* private fields */ }
Expand description
A 2D convex polygon.
Implementations§
Source§impl ConvexPolygon
impl ConvexPolygon
Source§impl ConvexPolygon
impl ConvexPolygon
Sourcepub fn bounding_sphere(
&self,
pos: &Isometry<f32, Unit<Complex<f32>>, 2>,
) -> BoundingSphere
pub fn bounding_sphere( &self, pos: &Isometry<f32, Unit<Complex<f32>>, 2>, ) -> BoundingSphere
Computes the world-space bounding sphere of this convex polygon, 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 convex polygon.
Source§impl ConvexPolygon
impl ConvexPolygon
Sourcepub fn from_convex_hull(
points: &[OPoint<f32, Const<2>>],
) -> Option<ConvexPolygon>
pub fn from_convex_hull( points: &[OPoint<f32, Const<2>>], ) -> Option<ConvexPolygon>
Creates a new 2D convex polygon from an arbitrary set of points.
This explicitly computes the convex hull of the given set of points.
Returns None
if the convex hull computation failed.
Sourcepub fn from_convex_polyline(
points: Vec<OPoint<f32, Const<2>>>,
) -> Option<ConvexPolygon>
pub fn from_convex_polyline( points: Vec<OPoint<f32, Const<2>>>, ) -> Option<ConvexPolygon>
Creates a new 2D convex polygon from a set of points assumed to describe a counter-clockwise convex polyline.
Convexity of the input polyline is not checked.
Returns None
if all points form an almost flat line.
Sourcepub fn normals(
&self,
) -> &[Unit<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>>]
pub fn normals( &self, ) -> &[Unit<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>>]
The normals of the edges of this convex polygon.
Sourcepub fn scaled(
self,
scale: &Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>,
) -> Option<ConvexPolygon>
pub fn scaled( self, scale: &Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, ) -> Option<ConvexPolygon>
Computes a scaled version of this convex polygon.
Returns None
if the result had degenerate normals (for example if
the scaling factor along one axis is zero).
Sourcepub fn offsetted(&self, amount: f32) -> ConvexPolygon
pub fn offsetted(&self, amount: f32) -> ConvexPolygon
Sourcepub fn support_feature_id_toward(
&self,
local_dir: &Unit<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>>,
) -> FeatureId
pub fn support_feature_id_toward( &self, local_dir: &Unit<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>>, ) -> FeatureId
Get the ID of the feature with a normal that maximizes the dot product with local_dir
.
Trait Implementations§
Source§impl Clone for ConvexPolygon
impl Clone for ConvexPolygon
Source§fn clone(&self) -> ConvexPolygon
fn clone(&self) -> ConvexPolygon
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ConvexPolygon
impl Debug for ConvexPolygon
Source§impl PointQuery for ConvexPolygon
impl PointQuery for ConvexPolygon
Source§fn project_local_point(
&self,
point: &OPoint<f32, Const<2>>,
solid: bool,
) -> PointProjection
fn project_local_point( &self, point: &OPoint<f32, Const<2>>, solid: bool, ) -> PointProjection
self
. Read moreSource§fn project_local_point_and_get_feature(
&self,
point: &OPoint<f32, Const<2>>,
) -> (PointProjection, FeatureId)
fn project_local_point_and_get_feature( &self, point: &OPoint<f32, Const<2>>, ) -> (PointProjection, FeatureId)
self
and returns the id of the
feature the point was projected on.Source§fn project_local_point_with_max_dist(
&self,
pt: &OPoint<f32, Const<2>>,
solid: bool,
max_dist: f32,
) -> Option<PointProjection>
fn project_local_point_with_max_dist( &self, pt: &OPoint<f32, Const<2>>, solid: bool, max_dist: f32, ) -> Option<PointProjection>
self
, unless the projection lies further than the given max distance. Read moreSource§fn project_point_with_max_dist(
&self,
m: &Isometry<f32, Unit<Complex<f32>>, 2>,
pt: &OPoint<f32, Const<2>>,
solid: bool,
max_dist: f32,
) -> Option<PointProjection>
fn project_point_with_max_dist( &self, m: &Isometry<f32, Unit<Complex<f32>>, 2>, pt: &OPoint<f32, Const<2>>, 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: &OPoint<f32, Const<2>>,
solid: bool,
) -> f32
fn distance_to_local_point( &self, pt: &OPoint<f32, Const<2>>, solid: bool, ) -> f32
self
.Source§fn contains_local_point(&self, pt: &OPoint<f32, Const<2>>) -> bool
fn contains_local_point(&self, pt: &OPoint<f32, Const<2>>) -> bool
self
.Source§fn project_point(
&self,
m: &Isometry<f32, Unit<Complex<f32>>, 2>,
pt: &OPoint<f32, Const<2>>,
solid: bool,
) -> PointProjection
fn project_point( &self, m: &Isometry<f32, Unit<Complex<f32>>, 2>, pt: &OPoint<f32, Const<2>>, solid: bool, ) -> PointProjection
self
transformed by m
.Source§fn distance_to_point(
&self,
m: &Isometry<f32, Unit<Complex<f32>>, 2>,
pt: &OPoint<f32, Const<2>>,
solid: bool,
) -> f32
fn distance_to_point( &self, m: &Isometry<f32, Unit<Complex<f32>>, 2>, pt: &OPoint<f32, Const<2>>, solid: bool, ) -> f32
self
transformed by m
.Source§impl PolygonalFeatureMap for ConvexPolygon
impl PolygonalFeatureMap for ConvexPolygon
Source§fn local_support_feature(
&self,
dir: &Unit<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>>,
out_feature: &mut PolygonalFeature,
)
fn local_support_feature( &self, dir: &Unit<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>>, out_feature: &mut PolygonalFeature, )
self
towards the dir
.Source§fn is_convex_polyhedron(&self) -> bool
fn is_convex_polyhedron(&self) -> bool
ConvexPolyhedron
?Source§impl RayCast for ConvexPolygon
impl RayCast for ConvexPolygon
Source§fn cast_local_ray_and_get_normal(
&self,
ray: &Ray,
max_time_of_impact: f32,
solid: bool,
) -> Option<RayIntersection>
fn cast_local_ray_and_get_normal( &self, ray: &Ray, max_time_of_impact: f32, solid: 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: &Isometry<f32, Unit<Complex<f32>>, 2>,
ray: &Ray,
max_time_of_impact: f32,
solid: bool,
) -> Option<f32>
fn cast_ray( &self, m: &Isometry<f32, Unit<Complex<f32>>, 2>, ray: &Ray, max_time_of_impact: f32, solid: bool, ) -> Option<f32>
Source§impl Shape for ConvexPolygon
impl Shape for ConvexPolygon
Source§fn scale_dyn(
&self,
scale: &Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>,
_num_subdivisions: u32,
) -> Option<Box<dyn Shape>>
fn scale_dyn( &self, scale: &Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, _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: &Isometry<f32, Unit<Complex<f32>>, 2>) -> Aabb
fn compute_aabb(&self, position: &Isometry<f32, Unit<Complex<f32>>, 2>) -> 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 as_support_map(&self) -> Option<&dyn SupportMap>
fn as_support_map(&self) -> Option<&dyn SupportMap>
Source§fn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, f32)>
fn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, f32)>
Source§fn feature_normal_at_point(
&self,
feature: FeatureId,
_point: &OPoint<f32, Const<2>>,
) -> Option<Unit<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>>>
fn feature_normal_at_point( &self, feature: FeatureId, _point: &OPoint<f32, Const<2>>, ) -> Option<Unit<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>>>
Source§fn clone_box(&self) -> Box<dyn Shape>
fn clone_box(&self) -> Box<dyn Shape>
clone_dyn
Source§fn compute_bounding_sphere(
&self,
position: &Isometry<f32, Unit<Complex<f32>>, 2>,
) -> BoundingSphere
fn compute_bounding_sphere( &self, position: &Isometry<f32, Unit<Complex<f32>>, 2>, ) -> BoundingSphere
fn as_composite_shape(&self) -> Option<&dyn SimdCompositeShape>
Source§impl SupportMap for ConvexPolygon
impl SupportMap for ConvexPolygon
fn local_support_point( &self, dir: &Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, ) -> OPoint<f32, Const<2>>
Source§fn local_support_point_toward(
&self,
dir: &Unit<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>>,
) -> OPoint<f32, Const<2>>
fn local_support_point_toward( &self, dir: &Unit<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>>, ) -> OPoint<f32, Const<2>>
self.local_support_point
except that dir
is normalized.fn support_point( &self, transform: &Isometry<f32, Unit<Complex<f32>>, 2>, dir: &Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, ) -> OPoint<f32, Const<2>>
Auto Trait Implementations§
impl Freeze for ConvexPolygon
impl RefUnwindSafe for ConvexPolygon
impl Send for ConvexPolygon
impl Sync for ConvexPolygon
impl Unpin for ConvexPolygon
impl UnwindSafe for ConvexPolygon
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>
. Box<dyn Any>
can
then be further downcast
into Box<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>
. Rc<Any>
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> DowncastSync for T
impl<T> DowncastSync for T
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<T> Pointable for T
impl<T> Pointable for T
Source§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.