Struct ncollide2d::shape::ConvexPolygon
source · pub struct ConvexPolygon<N: Real> { /* private fields */ }
Expand description
A 2D convex polygon.
Implementations§
source§impl<N: Real> ConvexPolygon<N>
impl<N: Real> ConvexPolygon<N>
sourcepub fn try_from_points(points: &[Point<N>]) -> Option<Self>
pub fn try_from_points(points: &[Point<N>]) -> 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. Use
Returns None
if the convex hull computation failed.
Trait Implementations§
source§impl<N: Clone + Real> Clone for ConvexPolygon<N>
impl<N: Clone + Real> Clone for ConvexPolygon<N>
source§fn clone(&self) -> ConvexPolygon<N>
fn clone(&self) -> ConvexPolygon<N>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<N: Real> ConvexPolyhedron<N> for ConvexPolygon<N>
impl<N: Real> ConvexPolyhedron<N> for ConvexPolygon<N>
source§fn vertex(&self, id: FeatureId) -> Point<N>
fn vertex(&self, id: FeatureId) -> Point<N>
Gets the specified vertex in the shape local-space.
source§fn face(&self, id: FeatureId, out: &mut ConvexPolygonalFeature<N>)
fn face(&self, id: FeatureId, out: &mut ConvexPolygonalFeature<N>)
Fill
face
with the geometric description of the specified face, in the shape’s local-space.source§fn normal_cone(&self, feature: FeatureId) -> PolyhedralCone<N>
fn normal_cone(&self, feature: FeatureId) -> PolyhedralCone<N>
Get the normal cone of the specified feature, in the shape’s local-space.
source§fn support_face_toward(
&self,
m: &Isometry<N>,
dir: &Unit<Vector<N>>,
out: &mut ConvexPolygonalFeature<N>
)
fn support_face_toward(
&self,
m: &Isometry<N>,
dir: &Unit<Vector<N>>,
out: &mut ConvexPolygonalFeature<N>
)
Retrieve the face (in world-space) with a normal that maximizes the scalar product with
dir
.source§fn support_feature_toward(
&self,
transform: &Isometry<N>,
dir: &Unit<Vector<N>>,
_angle: N,
out: &mut ConvexPolygonalFeature<N>
)
fn support_feature_toward(
&self,
transform: &Isometry<N>,
dir: &Unit<Vector<N>>,
_angle: N,
out: &mut ConvexPolygonalFeature<N>
)
Retrieve the feature (in world-space) which normal cone contains
dir
.source§impl<N: Real> HasBoundingVolume<N, AABB<N>> for ConvexPolygon<N>
impl<N: Real> HasBoundingVolume<N, AABB<N>> for ConvexPolygon<N>
source§fn bounding_volume(&self, m: &Isometry<N>) -> AABB<N>
fn bounding_volume(&self, m: &Isometry<N>) -> AABB<N>
The bounding volume of
self
transformed by m
.source§impl<N: Real> HasBoundingVolume<N, BoundingSphere<N>> for ConvexPolygon<N>
impl<N: Real> HasBoundingVolume<N, BoundingSphere<N>> for ConvexPolygon<N>
source§fn bounding_volume(&self, m: &Isometry<N>) -> BoundingSphere<N>
fn bounding_volume(&self, m: &Isometry<N>) -> BoundingSphere<N>
The bounding volume of
self
transformed by m
.source§impl<N: Real> PointQuery<N> for ConvexPolygon<N>
impl<N: Real> PointQuery<N> for ConvexPolygon<N>
source§fn project_point(
&self,
m: &Isometry<N>,
point: &Point<N>,
solid: bool
) -> PointProjection<N>
fn project_point(
&self,
m: &Isometry<N>,
point: &Point<N>,
solid: bool
) -> PointProjection<N>
Projects a point on
self
transformed by m
.source§fn project_point_with_feature(
&self,
m: &Isometry<N>,
point: &Point<N>
) -> (PointProjection<N>, FeatureId)
fn project_point_with_feature(
&self,
m: &Isometry<N>,
point: &Point<N>
) -> (PointProjection<N>, FeatureId)
Projects a point on the boundary of
self
transformed by m
and retuns the id of the
feature the point was projected on. Read moresource§impl<N: Real> RayCast<N> for ConvexPolygon<N>
impl<N: Real> RayCast<N> for ConvexPolygon<N>
source§fn toi_and_normal_with_ray(
&self,
m: &Isometry<N>,
ray: &Ray<N>,
solid: bool
) -> Option<RayIntersection<N>>
fn toi_and_normal_with_ray(
&self,
m: &Isometry<N>,
ray: &Ray<N>,
solid: bool
) -> Option<RayIntersection<N>>
Computes the time of impact, and normal between this transformed shape and a ray.
source§impl<N: Real> Shape<N> for ConvexPolygon<N>
impl<N: Real> Shape<N> for ConvexPolygon<N>
source§fn bounding_sphere(&self, m: &Isometry<N>) -> BoundingSphere<N>
fn bounding_sphere(&self, m: &Isometry<N>) -> BoundingSphere<N>
The bounding sphere of
self
.source§fn as_ray_cast(&self) -> Option<&dyn RayCast<N>>
fn as_ray_cast(&self) -> Option<&dyn RayCast<N>>
The
RayCast
implementation of self
.source§fn as_point_query(&self) -> Option<&dyn PointQuery<N>>
fn as_point_query(&self) -> Option<&dyn PointQuery<N>>
The
PointQuery
implementation of self
.source§fn as_support_map(&self) -> Option<&dyn SupportMap<N>>
fn as_support_map(&self) -> Option<&dyn SupportMap<N>>
The support mapping of
self
if applicable.source§fn is_support_map(&self) -> bool
fn is_support_map(&self) -> bool
Whether
self
uses a supportmapping-based representation.source§fn as_convex_polyhedron(&self) -> Option<&dyn ConvexPolyhedron<N>>
fn as_convex_polyhedron(&self) -> Option<&dyn ConvexPolyhedron<N>>
The convex polyhedron representation of
self
if applicable.source§fn is_convex_polyhedron(&self) -> bool
fn is_convex_polyhedron(&self) -> bool
Whether
self
uses a conve polyhedron representation.source§fn subshape_transform(&self, _: usize) -> Option<Isometry<N>>
fn subshape_transform(&self, _: usize) -> Option<Isometry<N>>
The transform of a specific subshape. Read more
source§fn as_composite_shape(&self) -> Option<&dyn CompositeShape<N>>
fn as_composite_shape(&self) -> Option<&dyn CompositeShape<N>>
The composite shape representation of
self
if applicable.source§fn is_composite_shape(&self) -> bool
fn is_composite_shape(&self) -> bool
Whether
self
uses a composite shape-based representation.source§impl<N: Real> SupportMap<N> for ConvexPolygon<N>
impl<N: Real> SupportMap<N> for ConvexPolygon<N>
Auto Trait Implementations§
impl<N> RefUnwindSafe for ConvexPolygon<N>where
N: RefUnwindSafe,
impl<N> Send for ConvexPolygon<N>
impl<N> Sync for ConvexPolygon<N>
impl<N> Unpin for ConvexPolygon<N>where
N: Unpin,
impl<N> UnwindSafe for ConvexPolygon<N>where
N: UnwindSafe,
Blanket Implementations§
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>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moresource§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).source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.