Struct oxygengine_physics_2d::prelude::ConvexPolygon [−][src]
Expand description
A 2D convex polygon.
Implementations
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.
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).
The normals of the edges of this convex polygon.
Checks that the given direction in world-space is on the tangent cone of the given feature
.
Trait Implementations
Gets the specified vertex in the shape local-space.
Fill face
with the geometric description of the specified face, in the shape’s local-space.
pub fn feature_normal(
&self,
feature: FeatureId
) -> Unit<Matrix<N, Const<{_: usize}>, Const<1_usize>, ArrayStorage<N, 2_usize, 1_usize>>>
pub fn feature_normal(
&self,
feature: FeatureId
) -> Unit<Matrix<N, Const<{_: usize}>, Const<1_usize>, ArrayStorage<N, 2_usize, 1_usize>>>
Returns any normal from the normal cone of the given feature.
pub fn support_face_toward(
&self,
m: &Isometry<N, Unit<Complex<N>>, 2_usize>,
dir: &Unit<Matrix<N, Const<{_: usize}>, Const<1_usize>, ArrayStorage<N, 2_usize, 1_usize>>>,
out: &mut ConvexPolygonalFeature<N>
)
pub fn support_face_toward(
&self,
m: &Isometry<N, Unit<Complex<N>>, 2_usize>,
dir: &Unit<Matrix<N, Const<{_: usize}>, Const<1_usize>, ArrayStorage<N, 2_usize, 1_usize>>>,
out: &mut ConvexPolygonalFeature<N>
)
Retrieve the face (in world-space) with a normal that maximizes the scalar product with dir
.
pub fn support_feature_toward(
&self,
transform: &Isometry<N, Unit<Complex<N>>, 2_usize>,
dir: &Unit<Matrix<N, Const<{_: usize}>, Const<1_usize>, ArrayStorage<N, 2_usize, 1_usize>>>,
_angle: N,
out: &mut ConvexPolygonalFeature<N>
)
pub fn support_feature_toward(
&self,
transform: &Isometry<N, Unit<Complex<N>>, 2_usize>,
dir: &Unit<Matrix<N, Const<{_: usize}>, Const<1_usize>, ArrayStorage<N, 2_usize, 1_usize>>>,
_angle: N,
out: &mut ConvexPolygonalFeature<N>
)
Retrieve the feature (in world-space) which normal cone contains dir
.
pub fn support_feature_id_toward(
&self,
local_dir: &Unit<Matrix<N, Const<{_: usize}>, Const<1_usize>, ArrayStorage<N, 2_usize, 1_usize>>>
) -> FeatureId
pub fn support_feature_id_toward(
&self,
local_dir: &Unit<Matrix<N, Const<{_: usize}>, Const<1_usize>, ArrayStorage<N, 2_usize, 1_usize>>>
) -> FeatureId
Retrieve the identifier of the feature which normal cone contains dir
.
impl<'de, N> Deserialize<'de> for ConvexPolygon<N> where
N: RealField + Copy + Deserialize<'de>,
impl<'de, N> Deserialize<'de> for ConvexPolygon<N> where
N: RealField + Copy + Deserialize<'de>,
pub fn deserialize<__D>(
__deserializer: __D
) -> Result<ConvexPolygon<N>, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
pub fn deserialize<__D>(
__deserializer: __D
) -> Result<ConvexPolygon<N>, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
The bounding volume of self
transformed by m
.
The bounding volume of self
.
impl<N> HasBoundingVolume<N, BoundingSphere<N>> for ConvexPolygon<N> where
N: RealField + Copy,
impl<N> HasBoundingVolume<N, BoundingSphere<N>> for ConvexPolygon<N> where
N: RealField + Copy,
pub fn bounding_volume(
&self,
m: &Isometry<N, Unit<Complex<N>>, 2_usize>
) -> BoundingSphere<N>
pub fn bounding_volume(
&self,
m: &Isometry<N, Unit<Complex<N>>, 2_usize>
) -> BoundingSphere<N>
The bounding volume of self
transformed by m
.
The bounding volume of self
.
pub fn project_point(
&self,
m: &Isometry<N, Unit<Complex<N>>, 2_usize>,
point: &OPoint<N, Const<2_usize>>,
solid: bool
) -> PointProjection<N>
pub fn project_point(
&self,
m: &Isometry<N, Unit<Complex<N>>, 2_usize>,
point: &OPoint<N, Const<2_usize>>,
solid: bool
) -> PointProjection<N>
Projects a point on self
transformed by m
.
Projects a point on the boundary of self
transformed by m
and retuns the id of the
feature the point was projected on. Read more
Computes the minimal distance between a point and self
transformed by m
.
pub fn toi_and_normal_with_ray(
&self,
m: &Isometry<N, Unit<Complex<N>>, 2_usize>,
ray: &Ray<N>,
max_toi: N,
solid: bool
) -> Option<RayIntersection<N>>
pub fn toi_and_normal_with_ray(
&self,
m: &Isometry<N, Unit<Complex<N>>, 2_usize>,
ray: &Ray<N>,
max_toi: N,
solid: bool
) -> Option<RayIntersection<N>>
Computes the time of impact, and normal between this transformed shape and a ray.
Computes the time of impact between this transform shape and a ray.
pub fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
pub fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
The AABB of self
transformed by m
.
The AABB of self
.
pub fn bounding_sphere(
&self,
m: &Isometry<N, Unit<Complex<N>>, 2_usize>
) -> BoundingSphere<N>
pub fn bounding_sphere(
&self,
m: &Isometry<N, Unit<Complex<N>>, 2_usize>
) -> BoundingSphere<N>
The bounding sphere of self
transformed by m
.
The RayCast
implementation of self
.
The PointQuery
implementation of self
.
The support mapping of self
if applicable.
Whether self
uses a support-mapping based representation.
The convex polyhedron representation of self
if applicable.
Whether self
uses a convex polyhedron representation.
Check if if the feature _feature
of the i-th
subshape of self
transformed by m
has a tangent
cone that contains dir
at the point pt
. Read more
The bounding sphere of self
.
Returns the id of the subshape containing the specified feature. Read more
The composite shape representation of self
if applicable.
The deformable shape representation of self
if applicable.
The mutable deformable shape representation of self
if applicable.
Whether self
uses a composite shape-based representation.
Whether self
uses a composite shape-based representation.
pub fn local_support_point(
&self,
dir: &Matrix<N, Const<{_: usize}>, Const<1_usize>, ArrayStorage<N, 2_usize, 1_usize>>
) -> OPoint<N, Const<2_usize>>
fn local_support_point_toward(
&self,
dir: &Unit<Matrix<N, Const<{_: usize}>, Const<1_usize>, ArrayStorage<N, 2_usize, 1_usize>>>
) -> OPoint<N, Const<2_usize>>
fn local_support_point_toward(
&self,
dir: &Unit<Matrix<N, Const<{_: usize}>, Const<1_usize>, ArrayStorage<N, 2_usize, 1_usize>>>
) -> OPoint<N, Const<2_usize>>
Same as self.local_support_point
except that dir
is normalized.
fn support_point(
&self,
transform: &Isometry<N, Unit<Complex<N>>, 2_usize>,
dir: &Matrix<N, Const<{_: usize}>, Const<1_usize>, ArrayStorage<N, 2_usize, 1_usize>>
) -> OPoint<N, Const<2_usize>>
Computes the center of mass of this object.
pub fn unit_angular_inertia(
&self
) -> Matrix<N, Const<1_usize>, Const<1_usize>, ArrayStorage<N, 1_usize, 1_usize>>
pub fn unit_angular_inertia(
&self
) -> Matrix<N, Const<1_usize>, Const<1_usize>, ArrayStorage<N, 1_usize, 1_usize>>
Computes the angular inertia tensor of this object.
pub fn mass_properties(
&self,
density: N
) -> (N, OPoint<N, Const<2_usize>>, Matrix<N, Const<1_usize>, Const<1_usize>, ArrayStorage<N, 1_usize, 1_usize>>)
pub fn mass_properties(
&self,
density: N
) -> (N, OPoint<N, Const<2_usize>>, Matrix<N, Const<1_usize>, Const<1_usize>, ArrayStorage<N, 1_usize, 1_usize>>)
Given its density, this computes the mass, center of mass, and inertia tensor of this object.
fn angular_inertia(
&self,
mass: N
) -> Matrix<N, Const<1_usize>, Const<1_usize>, ArrayStorage<N, 1_usize, 1_usize>>
fn angular_inertia(
&self,
mass: N
) -> Matrix<N, Const<1_usize>, Const<1_usize>, ArrayStorage<N, 1_usize, 1_usize>>
Given its mass, this computes the angular inertia of this object.
Given its density and position, this computes the mass, transformed center of mass, and transformed inertia tensor of this object.
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
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
Convert 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
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
pub fn is_in_subset(&self) -> bool
pub fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
pub fn to_subset_unchecked(&self) -> SS
pub fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
pub fn from_subset(element: &SS) -> SP
pub fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.