Trait bevy_rapier2d::prelude::Shape[][src]

pub trait Shape: RayCast + PointQuery + DowncastSync {
Show methods fn compute_local_aabb(&self) -> AABB;
fn compute_local_bounding_sphere(&self) -> BoundingSphere;
fn clone_box(&self) -> Box<dyn Shape + 'static, Global>;
fn mass_properties(&self, density: f32) -> MassProperties;
fn shape_type(&self) -> ShapeType;
fn as_typed_shape(&self) -> TypedShape<'_>;
fn ccd_thickness(&self) -> f32;
fn ccd_angular_thickness(&self) -> f32; fn compute_aabb(
        &self,
        position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
    ) -> AABB { ... }
fn compute_bounding_sphere(
        &self,
        position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
    ) -> BoundingSphere { ... }
fn is_convex(&self) -> bool { ... }
fn as_support_map(&self) -> Option<&dyn SupportMap> { ... }
fn as_composite_shape(&self) -> Option<&dyn SimdCompositeShape> { ... }
fn as_polygonal_feature_map(
        &self
    ) -> Option<(&dyn PolygonalFeatureMap, f32)> { ... }
fn feature_normal_at_point(
        &self,
        _feature: FeatureId,
        _point: &Point<f32, 2_usize>
    ) -> Option<Unit<Matrix<f32, Const<{_: usize}>, Const<1_usize>, ArrayStorage<f32, 2_usize, 1_usize>>>> { ... }
fn compute_swept_aabb(
        &self,
        start_pos: &Isometry<f32, Unit<Complex<f32>>, 2_usize>,
        end_pos: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
    ) -> AABB { ... }
}
Expand description

Trait implemented by shapes usable by Rapier.

Required methods

fn compute_local_aabb(&self) -> AABB[src]

Computes the AABB of this shape.

fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

Computes the bounding-sphere of this shape.

fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

Clones this shape into a boxed trait-object.

fn mass_properties(&self, density: f32) -> MassProperties[src]

Compute the mass-properties of this shape given its uniform density.

fn shape_type(&self) -> ShapeType[src]

Gets the type tag of this shape.

fn as_typed_shape(&self) -> TypedShape<'_>[src]

Gets the underlying shape as an enum.

fn ccd_thickness(&self) -> f32[src]

fn ccd_angular_thickness(&self) -> f32[src]

Provided methods

fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

Computes the AABB of this shape with the given position.

fn compute_bounding_sphere(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> BoundingSphere
[src]

Computes the bounding-sphere of this shape with the given position.

fn is_convex(&self) -> bool[src]

Is this shape known to be convex?

If this returns true then self is known to be convex. If this returns false then it is not known whether or not self is convex.

fn as_support_map(&self) -> Option<&dyn SupportMap>[src]

Convents this shape into its support mapping, if it has one.

fn as_composite_shape(&self) -> Option<&dyn SimdCompositeShape>[src]

fn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, f32)>[src]

Converts this shape to a polygonal feature-map, if it is one.

fn feature_normal_at_point(
    &self,
    _feature: FeatureId,
    _point: &Point<f32, 2_usize>
) -> Option<Unit<Matrix<f32, Const<{_: usize}>, Const<1_usize>, ArrayStorage<f32, 2_usize, 1_usize>>>>
[src]

The shape’s normal at the given point located on a specific feature.

fn compute_swept_aabb(
    &self,
    start_pos: &Isometry<f32, Unit<Complex<f32>>, 2_usize>,
    end_pos: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

Computes the swept AABB of this shape, i.e., the space it would occupy by moving from the given start position to the given end position.

Implementations

impl dyn Shape + 'static[src]

pub fn as_shape<T>(&self) -> Option<&T> where
    T: Shape
[src]

Converts this abstract shape to the given shape, if it is one.

pub fn as_shape_mut<T>(&mut self) -> Option<&mut T> where
    T: Shape
[src]

Converts this abstract shape to the given mutable shape, if it is one.

pub fn as_ball(&self) -> Option<&Ball>[src]

Converts this abstract shape to a ball, if it is one.

pub fn as_ball_mut(&mut self) -> Option<&mut Ball>[src]

Converts this abstract shape to a mutable ball, if it is one.

pub fn as_cuboid(&self) -> Option<&Cuboid>[src]

Converts this abstract shape to a cuboid, if it is one.

pub fn as_cuboid_mut(&mut self) -> Option<&mut Cuboid>[src]

Converts this abstract shape to a mutable cuboid, if it is one.

pub fn as_halfspace(&self) -> Option<&HalfSpace>[src]

Converts this abstract shape to a halfspace, if it is one.

pub fn as_halfspace_mut(&mut self) -> Option<&mut HalfSpace>[src]

Converts this abstract shape to a halfspace, if it is one.

pub fn as_segment(&self) -> Option<&Segment>[src]

Converts this abstract shape to a segment, if it is one.

pub fn as_segment_mut(&mut self) -> Option<&mut Segment>[src]

Converts this abstract shape to a mutable segment, if it is one.

pub fn as_capsule(&self) -> Option<&Capsule>[src]

Converts this abstract shape to a capsule, if it is one.

pub fn as_capsule_mut(&mut self) -> Option<&mut Capsule>[src]

Converts this abstract shape to a mutable capsule, if it is one.

pub fn as_triangle(&self) -> Option<&Triangle>[src]

Converts this abstract shape to a triangle, if it is one.

pub fn as_triangle_mut(&mut self) -> Option<&mut Triangle>[src]

Converts this abstract shape to a mutable triangle, if it is one.

pub fn as_compound(&self) -> Option<&Compound>[src]

Converts this abstract shape to a compound shape, if it is one.

pub fn as_compound_mut(&mut self) -> Option<&mut Compound>[src]

Converts this abstract shape to a mutable compound shape, if it is one.

pub fn as_trimesh(&self) -> Option<&TriMesh>[src]

Converts this abstract shape to a triangle mesh, if it is one.

pub fn as_trimesh_mut(&mut self) -> Option<&mut TriMesh>[src]

Converts this abstract shape to a mutable triangle mesh, if it is one.

pub fn as_polyline(&self) -> Option<&Polyline>[src]

Converts this abstract shape to a polyline, if it is one.

pub fn as_polyline_mut(&mut self) -> Option<&mut Polyline>[src]

Converts this abstract shape to a mutable polyline, if it is one.

pub fn as_heightfield(&self) -> Option<&HeightField>[src]

Converts this abstract shape to a heightfield, if it is one.

pub fn as_heightfield_mut(&mut self) -> Option<&mut HeightField>[src]

Converts this abstract shape to a mutable heightfield, if it is one.

pub fn as_round_cuboid(&self) -> Option<&RoundShape<Cuboid>>[src]

Converts this abstract shape to a round cuboid, if it is one.

pub fn as_round_cuboid_mut(&mut self) -> Option<&mut RoundShape<Cuboid>>[src]

Converts this abstract shape to a mutable round cuboid, if it is one.

pub fn as_round_triangle(&self) -> Option<&RoundShape<Triangle>>[src]

Converts this abstract shape to a round triangle, if it is one.

pub fn as_round_triangle_mut(&mut self) -> Option<&mut RoundShape<Triangle>>[src]

Converts this abstract shape to a round triangle, if it is one.

pub fn as_convex_polygon(&self) -> Option<&ConvexPolygon>[src]

Converts this abstract shape to a convex polygon, if it is one.

pub fn as_convex_polygon_mut(&mut self) -> Option<&mut ConvexPolygon>[src]

Converts this abstract shape to a mutable convex polygon, if it is one.

pub fn as_round_convex_polygon(&self) -> Option<&RoundShape<ConvexPolygon>>[src]

Converts this abstract shape to a round convex polygon, if it is one.

pub fn as_round_convex_polygon_mut(
    &mut self
) -> Option<&mut RoundShape<ConvexPolygon>>
[src]

Converts this abstract shape to a mutable round convex polygon, if it is one.

impl dyn Shape + 'static[src]

pub fn is<__T>(&self) -> bool where
    __T: Shape
[src]

Returns true if the trait object wraps an object of type __T.

pub fn downcast<__T>(
    self: Box<dyn Shape + 'static, Global>
) -> Result<Box<__T, Global>, Box<dyn Shape + 'static, Global>> where
    __T: Shape
[src]

Returns a boxed object from a boxed trait object if the underlying object is of type __T. Returns the original boxed trait if it isn’t.

pub fn downcast_rc<__T>(
    self: Rc<dyn Shape + 'static>
) -> Result<Rc<__T>, Rc<dyn Shape + 'static>> where
    __T: Shape
[src]

Returns an Rc-ed object from an Rc-ed trait object if the underlying object is of type __T. Returns the original Rc-ed trait if it isn’t.

pub fn downcast_ref<__T>(&self) -> Option<&__T> where
    __T: Shape
[src]

Returns a reference to the object within the trait object if it is of type __T, or None if it isn’t.

pub fn downcast_mut<__T>(&mut self) -> Option<&mut __T> where
    __T: Shape
[src]

Returns a mutable reference to the object within the trait object if it is of type __T, or None if it isn’t.

pub fn downcast_arc<__T>(
    self: Arc<dyn Shape + 'static>
) -> Result<Arc<__T>, Arc<dyn Shape + 'static>> where
    __T: Shape + Any + Send + Sync
[src]

Returns an Arc-ed object from an Arc-ed trait object if the underlying object is of type __T. Returns the original Arc-ed trait if it isn’t.

Trait Implementations

impl AsRef<dyn Shape + 'static> for SharedShape[src]

pub fn as_ref(&self) -> &(dyn Shape + 'static)[src]

Performs the conversion.

Implementations on Foreign Types

impl Shape for Segment[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn mass_properties(&self, _density: f32) -> MassProperties[src]

pub fn is_convex(&self) -> bool[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

pub fn as_support_map(&self) -> Option<&dyn SupportMap>[src]

pub fn as_polygonal_feature_map(
    &self
) -> Option<(&dyn PolygonalFeatureMap, f32)>
[src]

impl Shape for Ball[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn mass_properties(&self, density: f32) -> MassProperties[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

pub fn is_convex(&self) -> bool[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

pub fn as_support_map(&self) -> Option<&dyn SupportMap>[src]

impl Shape for Cuboid[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn mass_properties(&self, density: f32) -> MassProperties[src]

pub fn is_convex(&self) -> bool[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

pub fn as_support_map(&self) -> Option<&dyn SupportMap>[src]

pub fn as_polygonal_feature_map(
    &self
) -> Option<(&dyn PolygonalFeatureMap, f32)>
[src]

impl Shape for Triangle[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn mass_properties(&self, _density: f32) -> MassProperties[src]

pub fn is_convex(&self) -> bool[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

pub fn as_support_map(&self) -> Option<&dyn SupportMap>[src]

pub fn as_polygonal_feature_map(
    &self
) -> Option<(&dyn PolygonalFeatureMap, f32)>
[src]

impl Shape for HeightField[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn mass_properties(&self, _density: f32) -> MassProperties[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

impl Shape for Capsule[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn mass_properties(&self, density: f32) -> MassProperties[src]

pub fn is_convex(&self) -> bool[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

pub fn as_support_map(&self) -> Option<&dyn SupportMap>[src]

pub fn as_polygonal_feature_map(
    &self
) -> Option<(&dyn PolygonalFeatureMap, f32)>
[src]

Implementors

impl Shape for Compound[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn mass_properties(&self, density: f32) -> MassProperties[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

pub fn as_composite_shape(&self) -> Option<&dyn SimdCompositeShape>[src]

impl Shape for ConvexPolygon[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn mass_properties(&self, density: f32) -> MassProperties[src]

pub fn is_convex(&self) -> bool[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

pub fn as_support_map(&self) -> Option<&dyn SupportMap>[src]

pub fn as_polygonal_feature_map(
    &self
) -> Option<(&dyn PolygonalFeatureMap, f32)>
[src]

impl Shape for HalfSpace[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn is_convex(&self) -> bool[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

pub fn mass_properties(&self, f32) -> MassProperties[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

impl Shape for Polyline[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn mass_properties(&self, _density: f32) -> MassProperties[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

pub fn as_composite_shape(&self) -> Option<&dyn SimdCompositeShape>[src]

impl Shape for RoundShape<Cuboid>[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn mass_properties(&self, density: f32) -> MassProperties[src]

pub fn is_convex(&self) -> bool[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

pub fn as_support_map(&self) -> Option<&dyn SupportMap>[src]

pub fn as_polygonal_feature_map(
    &self
) -> Option<(&dyn PolygonalFeatureMap, f32)>
[src]

impl Shape for RoundShape<Triangle>[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn mass_properties(&self, density: f32) -> MassProperties[src]

pub fn is_convex(&self) -> bool[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

pub fn as_support_map(&self) -> Option<&dyn SupportMap>[src]

pub fn as_polygonal_feature_map(
    &self
) -> Option<(&dyn PolygonalFeatureMap, f32)>
[src]

impl Shape for RoundShape<ConvexPolygon>[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn mass_properties(&self, density: f32) -> MassProperties[src]

pub fn is_convex(&self) -> bool[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

pub fn as_support_map(&self) -> Option<&dyn SupportMap>[src]

pub fn as_polygonal_feature_map(
    &self
) -> Option<(&dyn PolygonalFeatureMap, f32)>
[src]

impl Shape for TriMesh[src]

pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>[src]

pub fn compute_local_aabb(&self) -> AABB[src]

pub fn compute_local_bounding_sphere(&self) -> BoundingSphere[src]

pub fn compute_aabb(
    &self,
    position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
[src]

pub fn mass_properties(&self, _density: f32) -> MassProperties[src]

pub fn shape_type(&self) -> ShapeType[src]

pub fn as_typed_shape(&self) -> TypedShape<'_>[src]

pub fn ccd_thickness(&self) -> f32[src]

pub fn ccd_angular_thickness(&self) -> f32[src]

pub fn as_composite_shape(&self) -> Option<&dyn SimdCompositeShape>[src]