Struct parry2d_f64::shape::ConvexPolygon
source · 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<Real>) -> BoundingSphere
pub fn bounding_sphere(&self, pos: &Isometry<Real>) -> 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: &[Point<Real>]) -> Option<Self>
pub fn from_convex_hull(points: &[Point<Real>]) -> Option<Self>
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<Point<Real>>) -> Option<Self>
pub fn from_convex_polyline(points: Vec<Point<Real>>) -> Option<Self>
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<Vector<Real>>]
pub fn normals(&self) -> &[Unit<Vector<Real>>]
The normals of the edges of this convex polygon.
sourcepub fn scaled(self, scale: &Vector<Real>) -> Option<Self>
pub fn scaled(self, scale: &Vector<Real>) -> Option<Self>
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).
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: &Point<Real>,
solid: bool
) -> PointProjection
fn project_local_point( &self, point: &Point<Real>, solid: bool ) -> PointProjection
self. Read moresource§fn project_local_point_and_get_feature(
&self,
point: &Point<Real>
) -> (PointProjection, FeatureId)
fn project_local_point_and_get_feature( &self, point: &Point<Real> ) -> (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: &Point<Real>,
solid: bool,
max_dist: Real
) -> Option<PointProjection>
fn project_local_point_with_max_dist( &self, pt: &Point<Real>, solid: bool, max_dist: Real ) -> Option<PointProjection>
self, unless the projection lies further than the given max distance. Read moresource§fn project_point_with_max_dist(
&self,
m: &Isometry<Real>,
pt: &Point<Real>,
solid: bool,
max_dist: Real
) -> Option<PointProjection>
fn project_point_with_max_dist( &self, m: &Isometry<Real>, pt: &Point<Real>, solid: bool, max_dist: Real ) -> Option<PointProjection>
self transformed by m, unless the projection lies further than the given max distance.source§fn distance_to_local_point(&self, pt: &Point<Real>, solid: bool) -> Real
fn distance_to_local_point(&self, pt: &Point<Real>, solid: bool) -> Real
self.source§fn contains_local_point(&self, pt: &Point<Real>) -> bool
fn contains_local_point(&self, pt: &Point<Real>) -> bool
self.source§fn project_point(
&self,
m: &Isometry<Real>,
pt: &Point<Real>,
solid: bool
) -> PointProjection
fn project_point( &self, m: &Isometry<Real>, pt: &Point<Real>, solid: bool ) -> PointProjection
self transformed by m.source§fn distance_to_point(
&self,
m: &Isometry<Real>,
pt: &Point<Real>,
solid: bool
) -> Real
fn distance_to_point( &self, m: &Isometry<Real>, pt: &Point<Real>, solid: bool ) -> Real
self transformed by m.source§fn project_point_and_get_feature(
&self,
m: &Isometry<Real>,
pt: &Point<Real>
) -> (PointProjection, FeatureId)
fn project_point_and_get_feature( &self, m: &Isometry<Real>, pt: &Point<Real> ) -> (PointProjection, FeatureId)
self transformed by m and returns the id of the
feature the point was projected on.source§impl PolygonalFeatureMap for ConvexPolygon
impl PolygonalFeatureMap for ConvexPolygon
source§fn local_support_feature(
&self,
dir: &Unit<Vector<Real>>,
out_feature: &mut PolygonalFeature
)
fn local_support_feature( &self, dir: &Unit<Vector<Real>>, 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_toi: Real,
solid: bool
) -> Option<RayIntersection>
fn cast_local_ray_and_get_normal( &self, ray: &Ray, max_toi: Real, solid: bool ) -> Option<RayIntersection>
source§fn cast_local_ray(&self, ray: &Ray, max_toi: Real, solid: bool) -> Option<Real>
fn cast_local_ray(&self, ray: &Ray, max_toi: Real, solid: bool) -> Option<Real>
source§fn intersects_local_ray(&self, ray: &Ray, max_toi: Real) -> bool
fn intersects_local_ray(&self, ray: &Ray, max_toi: Real) -> bool
source§fn cast_ray(
&self,
m: &Isometry<Real>,
ray: &Ray,
max_toi: Real,
solid: bool
) -> Option<Real>
fn cast_ray( &self, m: &Isometry<Real>, ray: &Ray, max_toi: Real, solid: bool ) -> Option<Real>
source§fn cast_ray_and_get_normal(
&self,
m: &Isometry<Real>,
ray: &Ray,
max_toi: Real,
solid: bool
) -> Option<RayIntersection>
fn cast_ray_and_get_normal( &self, m: &Isometry<Real>, ray: &Ray, max_toi: Real, solid: bool ) -> Option<RayIntersection>
source§impl Shape for ConvexPolygon
impl Shape for ConvexPolygon
source§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<Real>) -> Aabb
fn compute_aabb(&self, position: &Isometry<Real>) -> Aabb
Aabb of this shape with the given position.source§fn mass_properties(&self, density: Real) -> MassProperties
fn mass_properties(&self, density: Real) -> 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) -> Real
fn ccd_angular_thickness(&self) -> Real
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, Real)>
fn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, Real)>
source§fn feature_normal_at_point(
&self,
feature: FeatureId,
_point: &Point<Real>
) -> Option<Unit<Vector<Real>>>
fn feature_normal_at_point( &self, feature: FeatureId, _point: &Point<Real> ) -> Option<Unit<Vector<Real>>>
source§fn compute_bounding_sphere(&self, position: &Isometry<Real>) -> BoundingSphere
fn compute_bounding_sphere(&self, position: &Isometry<Real>) -> BoundingSphere
fn as_composite_shape(&self) -> Option<&dyn SimdCompositeShape>
source§impl SupportMap for ConvexPolygon
impl SupportMap for ConvexPolygon
fn local_support_point(&self, dir: &Vector<Real>) -> Point<Real>
source§fn local_support_point_toward(&self, dir: &Unit<Vector<Real>>) -> Point<Real>
fn local_support_point_toward(&self, dir: &Unit<Vector<Real>>) -> Point<Real>
self.local_support_point except that dir is normalized.fn support_point( &self, transform: &Isometry<Real>, dir: &Vector<Real> ) -> Point<Real>
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> 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<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.