Struct heron::rapier_plugin::rapier3d::geometry::ConvexPolyhedron
source · pub struct ConvexPolyhedron { /* private fields */ }
Expand description
A convex polyhedron without degenerate faces.
Implementations
sourceimpl ConvexPolyhedron
impl ConvexPolyhedron
sourcepub fn bounding_sphere(
&self,
pos: &Isometry<f32, Unit<Quaternion<f32>>, 3>
) -> BoundingSphere
pub fn bounding_sphere(
&self,
pos: &Isometry<f32, Unit<Quaternion<f32>>, 3>
) -> BoundingSphere
Computes the world-space bounding sphere of this convex polyhedron, 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 polyhedron.
sourceimpl ConvexPolyhedron
impl ConvexPolyhedron
sourcepub fn from_convex_hull(
points: &[OPoint<f32, Const<3>>]
) -> Option<ConvexPolyhedron>
pub fn from_convex_hull(
points: &[OPoint<f32, Const<3>>]
) -> Option<ConvexPolyhedron>
Creates a new convex polyhedron 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.
sourcepub fn from_convex_mesh(
points: Vec<OPoint<f32, Const<3>>, Global>,
indices: &[[u32; 3]]
) -> Option<ConvexPolyhedron>
pub fn from_convex_mesh(
points: Vec<OPoint<f32, Const<3>>, Global>,
indices: &[[u32; 3]]
) -> Option<ConvexPolyhedron>
Attempts to create a new solid assumed to be convex from the set of points and indices.
The given points and index information are assumed to describe a convex polyhedron. It it is not, weird results may be produced.
Return
Retruns None
if he given solid is not manifold (contains t-junctions, not closed, etc.)
sourcepub fn check_geometry(&self)
pub fn check_geometry(&self)
Verify if this convex polyhedron is actually convex.
sourcepub fn points(&self) -> &[OPoint<f32, Const<3>>]
pub fn points(&self) -> &[OPoint<f32, Const<3>>]
The set of vertices of this convex polyhedron.
sourcepub fn vertices_adj_to_face(&self) -> &[u32]
pub fn vertices_adj_to_face(&self) -> &[u32]
The array containing the indices of the vertices adjacent to each face.
sourcepub fn edges_adj_to_face(&self) -> &[u32]
pub fn edges_adj_to_face(&self) -> &[u32]
The array containing the indices of the edges adjacent to each face.
sourcepub fn faces_adj_to_vertex(&self) -> &[u32]
pub fn faces_adj_to_vertex(&self) -> &[u32]
The array containing the indices of the faces adjacent to each vertex.
sourcepub fn scaled(
self,
scale: &Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>
) -> Option<ConvexPolyhedron>
pub fn scaled(
self,
scale: &Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>
) -> Option<ConvexPolyhedron>
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 support_feature_id_toward(
&self,
local_dir: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>
) -> FeatureId
pub fn support_feature_id_toward(
&self,
local_dir: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>
) -> FeatureId
Computes the ID of the features with a normal that maximize the dot-product with local_dir
.
Trait Implementations
sourceimpl Clone for ConvexPolyhedron
impl Clone for ConvexPolyhedron
sourcefn clone(&self) -> ConvexPolyhedron
fn clone(&self) -> ConvexPolyhedron
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl Debug for ConvexPolyhedron
impl Debug for ConvexPolyhedron
sourceimpl PartialEq<ConvexPolyhedron> for ConvexPolyhedron
impl PartialEq<ConvexPolyhedron> for ConvexPolyhedron
sourcefn eq(&self, other: &ConvexPolyhedron) -> bool
fn eq(&self, other: &ConvexPolyhedron) -> bool
sourceimpl PointQuery for ConvexPolyhedron
impl PointQuery for ConvexPolyhedron
sourcefn project_local_point(
&self,
point: &OPoint<f32, Const<3>>,
solid: bool
) -> PointProjection
fn project_local_point(
&self,
point: &OPoint<f32, Const<3>>,
solid: bool
) -> PointProjection
self
. Read moresourcefn project_local_point_and_get_feature(
&self,
point: &OPoint<f32, Const<3>>
) -> (PointProjection, FeatureId)
fn project_local_point_and_get_feature(
&self,
point: &OPoint<f32, Const<3>>
) -> (PointProjection, FeatureId)
self
and returns the id of the
feature the point was projected on. Read moresourcefn project_local_point_with_max_dist(
&self,
pt: &OPoint<f32, Const<3>>,
solid: bool,
max_dist: f32
) -> Option<PointProjection>
fn project_local_point_with_max_dist(
&self,
pt: &OPoint<f32, Const<3>>,
solid: bool,
max_dist: f32
) -> Option<PointProjection>
self
, unless the projection lies further than the given max distance. Read moresourcefn project_point_with_max_dist(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
pt: &OPoint<f32, Const<3>>,
solid: bool,
max_dist: f32
) -> Option<PointProjection>
fn project_point_with_max_dist(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
pt: &OPoint<f32, Const<3>>,
solid: bool,
max_dist: f32
) -> Option<PointProjection>
self
transformed by m
, unless the projection lies further than the given max distance.sourcefn distance_to_local_point(&self, pt: &OPoint<f32, Const<3>>, solid: bool) -> f32
fn distance_to_local_point(&self, pt: &OPoint<f32, Const<3>>, solid: bool) -> f32
self
.sourcefn contains_local_point(&self, pt: &OPoint<f32, Const<3>>) -> bool
fn contains_local_point(&self, pt: &OPoint<f32, Const<3>>) -> bool
self
.sourcefn project_point(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
pt: &OPoint<f32, Const<3>>,
solid: bool
) -> PointProjection
fn project_point(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
pt: &OPoint<f32, Const<3>>,
solid: bool
) -> PointProjection
self
transformed by m
.sourcefn distance_to_point(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
pt: &OPoint<f32, Const<3>>,
solid: bool
) -> f32
fn distance_to_point(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
pt: &OPoint<f32, Const<3>>,
solid: bool
) -> f32
self
transformed by m
.sourcefn project_point_and_get_feature(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
pt: &OPoint<f32, Const<3>>
) -> (PointProjection, FeatureId)
fn project_point_and_get_feature(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
pt: &OPoint<f32, Const<3>>
) -> (PointProjection, FeatureId)
self
transformed by m
and returns the id of the
feature the point was projected on. Read moresourceimpl PolygonalFeatureMap for ConvexPolyhedron
impl PolygonalFeatureMap for ConvexPolyhedron
sourcefn local_support_feature(
&self,
dir: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>,
out_feature: &mut PolygonalFeature
)
fn local_support_feature(
&self,
dir: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>,
out_feature: &mut PolygonalFeature
)
self
towards the dir
.sourceimpl RayCast for ConvexPolyhedron
impl RayCast for ConvexPolyhedron
sourcefn cast_local_ray_and_get_normal(
&self,
ray: &Ray,
max_toi: f32,
solid: bool
) -> Option<RayIntersection>
fn cast_local_ray_and_get_normal(
&self,
ray: &Ray,
max_toi: f32,
solid: bool
) -> Option<RayIntersection>
sourcefn cast_local_ray(&self, ray: &Ray, max_toi: f32, solid: bool) -> Option<f32>
fn cast_local_ray(&self, ray: &Ray, max_toi: f32, solid: bool) -> Option<f32>
sourcefn intersects_local_ray(&self, ray: &Ray, max_toi: f32) -> bool
fn intersects_local_ray(&self, ray: &Ray, max_toi: f32) -> bool
sourcefn cast_ray(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
ray: &Ray,
max_toi: f32,
solid: bool
) -> Option<f32>
fn cast_ray(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
ray: &Ray,
max_toi: f32,
solid: bool
) -> Option<f32>
sourcefn cast_ray_and_get_normal(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
ray: &Ray,
max_toi: f32,
solid: bool
) -> Option<RayIntersection>
fn cast_ray_and_get_normal(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
ray: &Ray,
max_toi: f32,
solid: bool
) -> Option<RayIntersection>
sourcefn intersects_ray(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
ray: &Ray,
max_toi: f32
) -> bool
fn intersects_ray(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
ray: &Ray,
max_toi: f32
) -> bool
sourceimpl Shape for ConvexPolyhedron
impl Shape for ConvexPolyhedron
sourcefn clone_box(&self) -> Box<dyn Shape + 'static, Global>
fn clone_box(&self) -> Box<dyn Shape + 'static, Global>
sourcefn compute_local_aabb(&self) -> AABB
fn compute_local_aabb(&self) -> AABB
sourcefn compute_local_bounding_sphere(&self) -> BoundingSphere
fn compute_local_bounding_sphere(&self) -> BoundingSphere
sourcefn compute_aabb(
&self,
position: &Isometry<f32, Unit<Quaternion<f32>>, 3>
) -> AABB
fn compute_aabb(
&self,
position: &Isometry<f32, Unit<Quaternion<f32>>, 3>
) -> AABB
sourcefn mass_properties(&self, density: f32) -> MassProperties
fn mass_properties(&self, density: f32) -> MassProperties
sourcefn shape_type(&self) -> ShapeType
fn shape_type(&self) -> ShapeType
sourcefn as_typed_shape(&self) -> TypedShape<'_>
fn as_typed_shape(&self) -> TypedShape<'_>
fn ccd_thickness(&self) -> f32
fn ccd_angular_thickness(&self) -> f32
sourcefn as_support_map(&self) -> Option<&dyn SupportMap>
fn as_support_map(&self) -> Option<&dyn SupportMap>
sourcefn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, f32)>
fn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, f32)>
sourcefn feature_normal_at_point(
&self,
feature: FeatureId,
_point: &OPoint<f32, Const<3>>
) -> Option<Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>>
fn feature_normal_at_point(
&self,
feature: FeatureId,
_point: &OPoint<f32, Const<3>>
) -> Option<Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>>
sourcefn compute_bounding_sphere(
&self,
position: &Isometry<f32, Unit<Quaternion<f32>>, 3>
) -> BoundingSphere
fn compute_bounding_sphere(
&self,
position: &Isometry<f32, Unit<Quaternion<f32>>, 3>
) -> BoundingSphere
fn as_composite_shape(&self) -> Option<&dyn SimdCompositeShape>
sourcefn compute_swept_aabb(
&self,
start_pos: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
end_pos: &Isometry<f32, Unit<Quaternion<f32>>, 3>
) -> AABB
fn compute_swept_aabb(
&self,
start_pos: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
end_pos: &Isometry<f32, Unit<Quaternion<f32>>, 3>
) -> AABB
sourceimpl SupportMap for ConvexPolyhedron
impl SupportMap for ConvexPolyhedron
fn local_support_point(
&self,
dir: &Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>
) -> OPoint<f32, Const<3>>
sourcefn local_support_point_toward(
&self,
dir: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>
) -> OPoint<f32, Const<3>>
fn local_support_point_toward(
&self,
dir: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>
) -> OPoint<f32, Const<3>>
self.local_support_point
except that dir
is normalized.fn support_point(
&self,
transform: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
dir: &Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>
) -> OPoint<f32, Const<3>>
impl StructuralPartialEq for ConvexPolyhedron
Auto Trait Implementations
impl RefUnwindSafe for ConvexPolyhedron
impl Send for ConvexPolyhedron
impl Sync for ConvexPolyhedron
impl Unpin for ConvexPolyhedron
impl UnwindSafe for ConvexPolyhedron
Blanket Implementations
impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
T
[ShaderType
] for self
. When used in [AsBindGroup
]
derives, it is safe to assume that all images in self
exist. Read moresourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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 morefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read morefn 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. Read morefn 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. Read moresourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read morefn 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).fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.