#[repr(C)]pub struct TriMesh { /* private fields */ }
Expand description
A triangle mesh.
Implementations§
Source§impl TriMesh
impl TriMesh
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 triangle mesh, 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 triangle mesh.
Source§impl TriMesh
impl TriMesh
Sourcepub fn canonical_split(
&self,
axis: usize,
bias: f32,
epsilon: f32,
) -> SplitResult<TriMesh>
pub fn canonical_split( &self, axis: usize, bias: f32, epsilon: f32, ) -> SplitResult<TriMesh>
Splits this TriMesh
along the given canonical axis.
This will split the Aabb by a plane with a normal with it’s axis
-th component set to 1.
The splitting plane is shifted wrt. the origin by the bias
(i.e. it passes through the point
equal to normal * bias
).
§Result
Returns the result of the split. The first mesh returned is the piece lying on the negative half-space delimited by the splitting plane. The second mesh returned is the piece lying on the positive half-space delimited by the splitting plane.
Sourcepub fn split(
&self,
position: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
axis: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>,
bias: f32,
epsilon: f32,
) -> SplitResult<TriMesh>
pub fn split( &self, position: &Isometry<f32, Unit<Quaternion<f32>>, 3>, axis: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>, bias: f32, epsilon: f32, ) -> SplitResult<TriMesh>
Splits this mesh, transformed by position
by a plane identified by its normal local_axis
and the bias
(i.e. the plane passes through the point equal to normal * bias
).
Sourcepub fn local_split(
&self,
local_axis: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>,
bias: f32,
epsilon: f32,
) -> SplitResult<TriMesh>
pub fn local_split( &self, local_axis: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>, bias: f32, epsilon: f32, ) -> SplitResult<TriMesh>
Splits this mesh by a plane identified by its normal local_axis
and the bias
(i.e. the plane passes through the point equal to normal * bias
).
Sourcepub fn canonical_intersection_with_plane(
&self,
axis: usize,
bias: f32,
epsilon: f32,
) -> IntersectResult<Polyline>
pub fn canonical_intersection_with_plane( &self, axis: usize, bias: f32, epsilon: f32, ) -> IntersectResult<Polyline>
Computes the intersection Polyline
s between this mesh and the plane identified by
the given canonical axis.
This will intersect the mesh by a plane with a normal with it’s axis
-th component set to 1.
The splitting plane is shifted wrt. the origin by the bias
(i.e. it passes through the point
equal to normal * bias
).
Note that the resultant polyline may have multiple connected components
Sourcepub fn intersection_with_plane(
&self,
position: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
axis: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>,
bias: f32,
epsilon: f32,
) -> IntersectResult<Polyline>
pub fn intersection_with_plane( &self, position: &Isometry<f32, Unit<Quaternion<f32>>, 3>, axis: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>, bias: f32, epsilon: f32, ) -> IntersectResult<Polyline>
Computes the intersection Polyline
s between this mesh, transformed by position
,
and a plane identified by its normal axis
and the bias
(i.e. the plane passes through the point equal to normal * bias
).
Sourcepub fn intersection_with_local_plane(
&self,
local_axis: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>,
bias: f32,
epsilon: f32,
) -> IntersectResult<Polyline>
pub fn intersection_with_local_plane( &self, local_axis: &Unit<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>>, bias: f32, epsilon: f32, ) -> IntersectResult<Polyline>
Computes the intersection Polyline
s between this mesh
and a plane identified by its normal local_axis
and the bias
(i.e. the plane passes through the point equal to normal * bias
).
Sourcepub fn intersection_with_aabb(
&self,
position: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
flip_mesh: bool,
aabb: &Aabb,
flip_cuboid: bool,
epsilon: f32,
) -> Result<Option<TriMesh>, MeshIntersectionError>
pub fn intersection_with_aabb( &self, position: &Isometry<f32, Unit<Quaternion<f32>>, 3>, flip_mesh: bool, aabb: &Aabb, flip_cuboid: bool, epsilon: f32, ) -> Result<Option<TriMesh>, MeshIntersectionError>
Computes the intersection mesh between an Aabb and this mesh.
Sourcepub fn intersection_with_cuboid(
&self,
position: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
flip_mesh: bool,
cuboid: &Cuboid,
cuboid_position: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
flip_cuboid: bool,
epsilon: f32,
) -> Result<Option<TriMesh>, MeshIntersectionError>
pub fn intersection_with_cuboid( &self, position: &Isometry<f32, Unit<Quaternion<f32>>, 3>, flip_mesh: bool, cuboid: &Cuboid, cuboid_position: &Isometry<f32, Unit<Quaternion<f32>>, 3>, flip_cuboid: bool, epsilon: f32, ) -> Result<Option<TriMesh>, MeshIntersectionError>
Computes the intersection mesh between a cuboid and this mesh transformed by position
.
Sourcepub fn intersection_with_local_cuboid(
&self,
flip_mesh: bool,
cuboid: &Cuboid,
cuboid_position: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
flip_cuboid: bool,
_epsilon: f32,
) -> Result<Option<TriMesh>, MeshIntersectionError>
pub fn intersection_with_local_cuboid( &self, flip_mesh: bool, cuboid: &Cuboid, cuboid_position: &Isometry<f32, Unit<Quaternion<f32>>, 3>, flip_cuboid: bool, _epsilon: f32, ) -> Result<Option<TriMesh>, MeshIntersectionError>
Computes the intersection mesh between a cuboid and this mesh.
Source§impl TriMesh
impl TriMesh
Sourcepub fn new(
vertices: Vec<OPoint<f32, Const<3>>>,
indices: Vec<[u32; 3]>,
) -> Result<TriMesh, TriMeshBuilderError>
pub fn new( vertices: Vec<OPoint<f32, Const<3>>>, indices: Vec<[u32; 3]>, ) -> Result<TriMesh, TriMeshBuilderError>
Creates a new triangle mesh from a vertex buffer and an index buffer.
Sourcepub fn with_flags(
vertices: Vec<OPoint<f32, Const<3>>>,
indices: Vec<[u32; 3]>,
flags: TriMeshFlags,
) -> Result<TriMesh, TriMeshBuilderError>
pub fn with_flags( vertices: Vec<OPoint<f32, Const<3>>>, indices: Vec<[u32; 3]>, flags: TriMeshFlags, ) -> Result<TriMesh, TriMeshBuilderError>
Creates a new triangle mesh from a vertex buffer and an index buffer, and flags controlling optional properties.
Sourcepub fn set_flags(&mut self, flags: TriMeshFlags) -> Result<(), TopologyError>
pub fn set_flags(&mut self, flags: TriMeshFlags) -> Result<(), TopologyError>
Sets the flags of this triangle mesh, controlling its optional associated data.
Sourcepub fn transform_vertices(
&mut self,
transform: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
)
pub fn transform_vertices( &mut self, transform: &Isometry<f32, Unit<Quaternion<f32>>, 3>, )
Transforms in-place the vertices of this triangle mesh.
Sourcepub fn scaled(
self,
scale: &Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>,
) -> TriMesh
pub fn scaled( self, scale: &Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>, ) -> TriMesh
Returns a scaled version of this triangle mesh.
Sourcepub fn flat_indices(&self) -> &[u32]
pub fn flat_indices(&self) -> &[u32]
A flat view of the index buffer of this mesh.
Sourcepub fn triangles(&self) -> impl ExactSizeIterator
pub fn triangles(&self) -> impl ExactSizeIterator
An iterator through all the triangles of this mesh.
Source§impl TriMesh
impl TriMesh
Sourcepub fn flags(&self) -> TriMeshFlags
pub fn flags(&self) -> TriMeshFlags
The flags of this triangle mesh.
Sourcepub fn aabb(&self, pos: &Isometry<f32, Unit<Quaternion<f32>>, 3>) -> Aabb
pub fn aabb(&self, pos: &Isometry<f32, Unit<Quaternion<f32>>, 3>) -> Aabb
Compute the axis-aligned bounding box of this triangle mesh.
Sourcepub fn local_aabb(&self) -> &Aabb
pub fn local_aabb(&self) -> &Aabb
Gets the local axis-aligned bounding box of this triangle mesh.
Sourcepub fn num_triangles(&self) -> usize
pub fn num_triangles(&self) -> usize
The number of triangles forming this mesh.
Sourcepub fn is_backface(&self, feature: FeatureId) -> bool
pub fn is_backface(&self, feature: FeatureId) -> bool
Does the given feature ID identify a backface of this trimesh?
Sourcepub fn triangle_normal_constraints(
&self,
i: u32,
) -> Option<TrianglePseudoNormals>
pub fn triangle_normal_constraints( &self, i: u32, ) -> Option<TrianglePseudoNormals>
Returns the pseudo-normals of one of this mesh’s triangles, if it was computed.
This returns None
if the pseudo-normals of this triangle were not computed.
To have its pseudo-normals computed, be sure to set the TriMeshFlags
so that
they contain the TriMeshFlags::FIX_INTERNAL_EDGES
flag.
Sourcepub fn topology(&self) -> Option<&TriMeshTopology>
pub fn topology(&self) -> Option<&TriMeshTopology>
Returns the topology information of this trimesh, if it has been computed.
Sourcepub fn connected_components(&self) -> Option<&TriMeshConnectedComponents>
pub fn connected_components(&self) -> Option<&TriMeshConnectedComponents>
Returns the connected-component information of this trimesh, if it has been computed.
Sourcepub fn connected_component_meshes(
&self,
flags: TriMeshFlags,
) -> Option<Vec<Result<TriMesh, TriMeshBuilderError>>>
pub fn connected_component_meshes( &self, flags: TriMeshFlags, ) -> Option<Vec<Result<TriMesh, TriMeshBuilderError>>>
Returns the connected-component of this mesh.
The connected-components are returned as a set of TriMesh
build with the given flags
.
Sourcepub fn pseudo_normals(&self) -> Option<&TriMeshPseudoNormals>
pub fn pseudo_normals(&self) -> Option<&TriMeshPseudoNormals>
The pseudo-normals of this triangle mesh, if they have been computed.
Trait Implementations§
Source§impl From<HeightField> for TriMesh
impl From<HeightField> for TriMesh
Source§fn from(heightfield: HeightField) -> TriMesh
fn from(heightfield: HeightField) -> TriMesh
Source§impl PointQuery for TriMesh
impl PointQuery for TriMesh
Source§fn 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>
Projects a point on self
transformed by m
, unless the projection lies further than the given max distance.
Source§fn 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 moreSource§fn 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.Source§fn contains_local_point(&self, point: &OPoint<f32, Const<3>>) -> bool
fn contains_local_point(&self, point: &OPoint<f32, Const<3>>) -> bool
self
.Source§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>
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.Source§fn 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
.Source§fn 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
.Source§fn 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
.Source§fn 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.Source§impl PointQueryWithLocation for TriMesh
impl PointQueryWithLocation for TriMesh
Source§fn project_local_point_and_get_location_with_max_dist(
&self,
point: &OPoint<f32, Const<3>>,
solid: bool,
max_dist: f32,
) -> Option<(PointProjection, <TriMesh as PointQueryWithLocation>::Location)>
fn project_local_point_and_get_location_with_max_dist( &self, point: &OPoint<f32, Const<3>>, solid: bool, max_dist: f32, ) -> Option<(PointProjection, <TriMesh as PointQueryWithLocation>::Location)>
Projects a point on self
, with a maximum projection distance.
Source§type Location = (u32, TrianglePointLocation)
type Location = (u32, TrianglePointLocation)
Source§fn project_local_point_and_get_location(
&self,
point: &OPoint<f32, Const<3>>,
solid: bool,
) -> (PointProjection, <TriMesh as PointQueryWithLocation>::Location)
fn project_local_point_and_get_location( &self, point: &OPoint<f32, Const<3>>, solid: bool, ) -> (PointProjection, <TriMesh as PointQueryWithLocation>::Location)
self
.Source§fn project_point_and_get_location(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
pt: &OPoint<f32, Const<3>>,
solid: bool,
) -> (PointProjection, Self::Location)
fn project_point_and_get_location( &self, m: &Isometry<f32, Unit<Quaternion<f32>>, 3>, pt: &OPoint<f32, Const<3>>, solid: bool, ) -> (PointProjection, Self::Location)
self
transformed by m
.Source§impl RayCast for TriMesh
impl RayCast for TriMesh
Source§fn cast_local_ray(
&self,
ray: &Ray,
max_time_of_impact: f32,
solid: bool,
) -> Option<f32>
fn cast_local_ray( &self, ray: &Ray, max_time_of_impact: f32, solid: bool, ) -> Option<f32>
Source§fn cast_local_ray_and_get_normal(
&self,
ray: &Ray,
max_time_of_impact: f32,
solid: bool,
) -> Option<RayIntersection>
fn cast_local_ray_and_get_normal( &self, ray: &Ray, max_time_of_impact: f32, solid: bool, ) -> Option<RayIntersection>
Source§fn intersects_local_ray(&self, ray: &Ray, max_time_of_impact: f32) -> bool
fn intersects_local_ray(&self, ray: &Ray, max_time_of_impact: f32) -> bool
Source§fn cast_ray(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
ray: &Ray,
max_time_of_impact: f32,
solid: bool,
) -> Option<f32>
fn cast_ray( &self, m: &Isometry<f32, Unit<Quaternion<f32>>, 3>, ray: &Ray, max_time_of_impact: f32, solid: bool, ) -> Option<f32>
Source§fn cast_ray_and_get_normal(
&self,
m: &Isometry<f32, Unit<Quaternion<f32>>, 3>,
ray: &Ray,
max_time_of_impact: f32,
solid: bool,
) -> Option<RayIntersection>
fn cast_ray_and_get_normal( &self, m: &Isometry<f32, Unit<Quaternion<f32>>, 3>, ray: &Ray, max_time_of_impact: f32, solid: bool, ) -> Option<RayIntersection>
Source§impl Shape for TriMesh
impl Shape for TriMesh
Source§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>>>>
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>>>>
Gets the normal of the triangle represented by feature
.
Source§fn scale_dyn(
&self,
scale: &Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>,
_num_subdivisions: u32,
) -> Option<Box<dyn Shape>>
fn scale_dyn( &self, scale: &Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>, _num_subdivisions: u32, ) -> Option<Box<dyn Shape>>
scale
into a boxed trait-object. Read moreSource§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<f32, Unit<Quaternion<f32>>, 3>,
) -> Aabb
fn compute_aabb( &self, position: &Isometry<f32, Unit<Quaternion<f32>>, 3>, ) -> Aabb
Aabb
of this shape with the given position.Source§fn mass_properties(&self, density: f32) -> MassProperties
fn mass_properties(&self, density: f32) -> 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) -> f32
fn ccd_angular_thickness(&self) -> f32
fn as_composite_shape(&self) -> Option<&dyn SimdCompositeShape>
Source§fn clone_box(&self) -> Box<dyn Shape>
fn clone_box(&self) -> Box<dyn Shape>
clone_dyn
Source§fn 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
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, f32)>
fn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, f32)>
Source§fn 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
Aabb
of this shape, i.e., the space it would occupy by moving from
the given start position to the given end position.Source§impl SimdCompositeShape for TriMesh
impl SimdCompositeShape for TriMesh
Source§fn map_part_at(
&self,
i: u32,
f: &mut dyn FnMut(Option<&Isometry<f32, Unit<Quaternion<f32>>, 3>>, &(dyn Shape + 'static), Option<&(dyn NormalConstraints + 'static)>),
)
fn map_part_at( &self, i: u32, f: &mut dyn FnMut(Option<&Isometry<f32, Unit<Quaternion<f32>>, 3>>, &(dyn Shape + 'static), Option<&(dyn NormalConstraints + 'static)>), )
Source§impl TypedSimdCompositeShape for TriMesh
impl TypedSimdCompositeShape for TriMesh
type PartShape = Triangle
type PartNormalConstraints = TrianglePseudoNormals
type PartId = u32
fn map_typed_part_at( &self, i: u32, f: impl FnMut(Option<&Isometry<f32, Unit<Quaternion<f32>>, 3>>, &<TriMesh as TypedSimdCompositeShape>::PartShape, Option<&<TriMesh as TypedSimdCompositeShape>::PartNormalConstraints>), )
fn map_untyped_part_at( &self, i: u32, f: impl FnMut(Option<&Isometry<f32, Unit<Quaternion<f32>>, 3>>, &(dyn Shape + 'static), Option<&(dyn NormalConstraints + 'static)>), )
fn typed_qbvh(&self) -> &Qbvh<u32>
Auto Trait Implementations§
impl Freeze for TriMesh
impl RefUnwindSafe for TriMesh
impl Send for TriMesh
impl Sync for TriMesh
impl Unpin for TriMesh
impl UnwindSafe for TriMesh
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<T> Pointable for T
impl<T> Pointable for T
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>
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.