[−][src]Struct oxygengine_physics_2d::prelude::ConvexPolygon
A 2D convex polygon.
Implementations
impl<N> ConvexPolygon<N> where
N: RealField,
[src]
N: RealField,
pub fn try_from_points(points: &[Point<N, U2>]) -> Option<ConvexPolygon<N>>
[src]
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.
pub fn try_new(points: Vec<Point<N, U2>>) -> Option<ConvexPolygon<N>>
[src]
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 some consecutive points are identical (or too close to being so).
pub fn points(&self) -> &[Point<N, U2>]ⓘ
[src]
The vertices of this convex polygon.
pub fn normals(
&self
) -> &[Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>]ⓘ
[src]
&self
) -> &[Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>]ⓘ
The normals of the edges of this convex polygon.
pub fn tangent_cone_contains_dir(
&self,
feature: FeatureId,
m: &Isometry<N, U2, Unit<Complex<N>>>,
dir: &Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>
) -> bool
[src]
&self,
feature: FeatureId,
m: &Isometry<N, U2, Unit<Complex<N>>>,
dir: &Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>
) -> bool
Checks that the given direction in world-space is on the tangent cone of the given feature
.
Trait Implementations
impl<N> Clone for ConvexPolygon<N> where
N: Clone + RealField,
[src]
N: Clone + RealField,
fn clone(&self) -> ConvexPolygon<N>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<N> ConvexPolyhedron<N> for ConvexPolygon<N> where
N: RealField,
[src]
N: RealField,
fn vertex(&self, id: FeatureId) -> Point<N, U2>
[src]
fn face(&self, id: FeatureId, out: &mut ConvexPolygonalFeature<N>)
[src]
fn feature_normal(
&self,
feature: FeatureId
) -> Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>
[src]
&self,
feature: FeatureId
) -> Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>
fn support_face_toward(
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
dir: &Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>,
out: &mut ConvexPolygonalFeature<N>
)
[src]
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
dir: &Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>,
out: &mut ConvexPolygonalFeature<N>
)
fn support_feature_toward(
&self,
transform: &Isometry<N, U2, Unit<Complex<N>>>,
dir: &Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>,
_angle: N,
out: &mut ConvexPolygonalFeature<N>
)
[src]
&self,
transform: &Isometry<N, U2, Unit<Complex<N>>>,
dir: &Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>,
_angle: N,
out: &mut ConvexPolygonalFeature<N>
)
fn support_feature_id_toward(
&self,
local_dir: &Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>
) -> FeatureId
[src]
&self,
local_dir: &Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>
) -> FeatureId
impl<N> Debug for ConvexPolygon<N> where
N: Debug + RealField,
[src]
N: Debug + RealField,
impl<'de, N> Deserialize<'de> for ConvexPolygon<N> where
N: RealField + Deserialize<'de>,
[src]
N: RealField + Deserialize<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<ConvexPolygon<N>, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
[src]
__deserializer: __D
) -> Result<ConvexPolygon<N>, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
impl<N> HasBoundingVolume<N, AABB<N>> for ConvexPolygon<N> where
N: RealField,
[src]
N: RealField,
fn bounding_volume(&self, m: &Isometry<N, U2, Unit<Complex<N>>>) -> AABB<N>
[src]
fn local_bounding_volume(&self) -> AABB<N>
[src]
impl<N> HasBoundingVolume<N, BoundingSphere<N>> for ConvexPolygon<N> where
N: RealField,
[src]
N: RealField,
fn bounding_volume(
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>
) -> BoundingSphere<N>
[src]
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>
) -> BoundingSphere<N>
fn local_bounding_volume(&self) -> BoundingSphere<N>
[src]
impl<N> PointQuery<N> for ConvexPolygon<N> where
N: RealField,
[src]
N: RealField,
fn project_point(
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
point: &Point<N, U2>,
solid: bool
) -> PointProjection<N>
[src]
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
point: &Point<N, U2>,
solid: bool
) -> PointProjection<N>
fn project_point_with_feature(
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
point: &Point<N, U2>
) -> (PointProjection<N>, FeatureId)
[src]
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
point: &Point<N, U2>
) -> (PointProjection<N>, FeatureId)
fn distance_to_point(
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
pt: &Point<N, U2>,
solid: bool
) -> N
[src]
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
pt: &Point<N, U2>,
solid: bool
) -> N
fn contains_point(
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
pt: &Point<N, U2>
) -> bool
[src]
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
pt: &Point<N, U2>
) -> bool
impl<N> RayCast<N> for ConvexPolygon<N> where
N: RealField,
[src]
N: RealField,
fn toi_and_normal_with_ray(
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
ray: &Ray<N>,
max_toi: N,
solid: bool
) -> Option<RayIntersection<N>>
[src]
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
ray: &Ray<N>,
max_toi: N,
solid: bool
) -> Option<RayIntersection<N>>
fn toi_with_ray(
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
ray: &Ray<N>,
max_toi: N,
solid: bool
) -> Option<N>
[src]
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
ray: &Ray<N>,
max_toi: N,
solid: bool
) -> Option<N>
fn intersects_ray(
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
ray: &Ray<N>,
max_toi: N
) -> bool
[src]
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
ray: &Ray<N>,
max_toi: N
) -> bool
impl<N> Serialize for ConvexPolygon<N> where
N: RealField + Serialize,
[src]
N: RealField + Serialize,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
[src]
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
impl<N> Shape<N> for ConvexPolygon<N> where
N: RealField,
[src]
N: RealField,
fn aabb(&self, m: &Isometry<N, U2, Unit<Complex<N>>>) -> AABB<N>
[src]
fn local_aabb(&self) -> AABB<N>
[src]
fn bounding_sphere(
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>
) -> BoundingSphere<N>
[src]
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>
) -> BoundingSphere<N>
fn as_ray_cast(&self) -> Option<&dyn RayCast<N>>
[src]
fn as_point_query(&self) -> Option<&dyn PointQuery<N>>
[src]
fn as_support_map(&self) -> Option<&dyn SupportMap<N>>
[src]
fn is_support_map(&self) -> bool
[src]
fn as_convex_polyhedron(&self) -> Option<&dyn ConvexPolyhedron<N>>
[src]
fn is_convex_polyhedron(&self) -> bool
[src]
fn tangent_cone_contains_dir(
&self,
feature: FeatureId,
m: &Isometry<N, U2, Unit<Complex<N>>>,
Option<&[N]>,
dir: &Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>
) -> bool
[src]
&self,
feature: FeatureId,
m: &Isometry<N, U2, Unit<Complex<N>>>,
Option<&[N]>,
dir: &Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>
) -> bool
fn local_bounding_sphere(&self) -> BoundingSphere<N>
[src]
fn subshape_containing_feature(&self, _i: FeatureId) -> usize
[src]
fn as_composite_shape(&self) -> Option<&dyn CompositeShape<N>>
[src]
fn as_deformable_shape(&self) -> Option<&dyn DeformableShape<N>>
[src]
fn as_deformable_shape_mut(&mut self) -> Option<&mut dyn DeformableShape<N>>
[src]
fn is_composite_shape(&self) -> bool
[src]
fn is_deformable_shape(&self) -> bool
[src]
impl<N> SupportMap<N> for ConvexPolygon<N> where
N: RealField,
[src]
N: RealField,
fn support_point(
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
dir: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>
) -> Point<N, U2>
[src]
&self,
m: &Isometry<N, U2, Unit<Complex<N>>>,
dir: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>
) -> Point<N, U2>
fn support_point_toward(
&self,
transform: &Isometry<N, U2, Unit<Complex<N>>>,
dir: &Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>
) -> Point<N, U2>
[src]
&self,
transform: &Isometry<N, U2, Unit<Complex<N>>>,
dir: &Unit<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>>
) -> Point<N, U2>
impl<N> Volumetric<N> for ConvexPolygon<N> where
N: RealField,
[src]
N: RealField,
fn area(&self) -> N
[src]
fn volume(&self) -> N
[src]
fn center_of_mass(&self) -> Point<N, U2>
[src]
fn unit_angular_inertia(
&self
) -> Matrix<N, U1, U1, <DefaultAllocator as Allocator<N, U1, U1>>::Buffer>
[src]
&self
) -> Matrix<N, U1, U1, <DefaultAllocator as Allocator<N, U1, U1>>::Buffer>
fn mass_properties(
&self,
density: N
) -> (N, Point<N, U2>, Matrix<N, U1, U1, <DefaultAllocator as Allocator<N, U1, U1>>::Buffer>)
[src]
&self,
density: N
) -> (N, Point<N, U2>, Matrix<N, U1, U1, <DefaultAllocator as Allocator<N, U1, U1>>::Buffer>)
fn mass(&self, density: N) -> N
[src]
fn angular_inertia(
&self,
mass: N
) -> Matrix<N, U1, U1, <DefaultAllocator as Allocator<N, U1, U1>>::Buffer>
[src]
&self,
mass: N
) -> Matrix<N, U1, U1, <DefaultAllocator as Allocator<N, U1, U1>>::Buffer>
fn transformed_mass_properties(
&self,
density: N,
pos: &Isometry<N, U2, Unit<Complex<N>>>
) -> (Point<N, U2>, Inertia2<N>)
[src]
&self,
density: N,
pos: &Isometry<N, U2, Unit<Complex<N>>>
) -> (Point<N, U2>, Inertia2<N>)
fn inertia(&self, density: N) -> Inertia2<N>
[src]
Auto Trait Implementations
impl<N> RefUnwindSafe for ConvexPolygon<N> where
N: RefUnwindSafe + Scalar,
N: RefUnwindSafe + Scalar,
impl<N> Send for ConvexPolygon<N> where
N: Scalar,
N: Scalar,
impl<N> Sync for ConvexPolygon<N> where
N: Scalar,
N: Scalar,
impl<N> Unpin for ConvexPolygon<N> where
N: Scalar + Unpin,
N: Scalar + Unpin,
impl<N> UnwindSafe for ConvexPolygon<N> where
N: Scalar + UnwindSafe,
N: Scalar + UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
T: Any,
fn get_type_id(&self) -> TypeId
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> Downcast for T where
T: Any,
T: Any,
fn into_any(self: Box<T>) -> Box<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
impl<T> DowncastSync for T where
T: Send + Sync + Any,
T: Send + Sync + Any,
impl<T> Event for T where
T: Send + Sync + 'static,
T: Send + Sync + 'static,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Resource for T where
T: Any,
T: Any,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn is_in_subset(&self) -> bool
fn to_subset_unchecked(&self) -> SS
fn from_subset(element: &SS) -> SP
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> UserData for T where
T: Clone + Send + Sync + Any,
[src]
T: Clone + Send + Sync + Any,
fn clone_boxed(&self) -> Box<dyn UserData + 'static>
[src]
fn to_any(&self) -> Box<dyn Any + 'static + Sync + Send>
[src]
fn as_any(&self) -> &(dyn Any + 'static + Sync + Send)
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,