Enum heron_core::CollisionShape[][src]

pub enum CollisionShape {
    Sphere {
        radius: f32,
    },
    Capsule {
        half_segment: f32,
        radius: f32,
    },
    Cuboid {
        half_extends: Vec3,
    },
    ConvexHull {
        points: Vec<Vec3>,
    },
}
Expand description

Components that defines the collision shape of a rigid body

The collision shape will be attached to the RigidBody of the same entity. If there isn’t any RigidBody in the entity, the collision shape will be attached to the RigidBody of the parent entity.

Example

fn spawn(mut commands: Commands, mut materials: ResMut<Assets<ColorMaterial>>) {
    commands.spawn_bundle(todo!("Spawn your sprite/mesh, incl. at least a GlobalTransform"))
        .insert(RigidBody::Dynamic) // Create a dynamic rigid body
        .insert(CollisionShape::Sphere { radius: 1.0 }); // Attach a collision shape
}

Variants

Sphere

A sphere (or circle in 2d) shape defined by its radius

Show fields

Fields of Sphere

radius: f32

Radius of the sphere

Capsule

A capsule shape

Show fields

Fields of Capsule

half_segment: f32

Distance from the center of the capsule to the center of an hemisphere.

radius: f32

Radius of the hemispheres

Cuboid

A cuboid/rectangular shape

Show fields

Fields of Cuboid

half_extends: Vec3

The half extends on each axis. (x = half width, y = half height, z = half depth)

In 2d the z axis is ignored

ConvexHull

A convex polygon/polyhedron shape

Show fields

Fields of ConvexHull

points: Vec<Vec3>

A vector of points describing the convex hull

Trait Implementations

impl Clone for CollisionShape[src]

fn clone(&self) -> CollisionShape[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for CollisionShape[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Default for CollisionShape[src]

fn default() -> Self[src]

Returns the “default value” for a type. Read more

impl GetTypeRegistration for CollisionShape[src]

fn get_type_registration() -> TypeRegistration[src]

impl Reflect for CollisionShape[src]

fn type_name(&self) -> &str[src]

fn any(&self) -> &dyn Any[src]

fn any_mut(&mut self) -> &mut dyn Any[src]

fn clone_value(&self) -> Box<dyn Reflect>[src]

fn apply(&mut self, value: &dyn Reflect)[src]

fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>[src]

fn reflect_ref(&self) -> ReflectRef<'_>[src]

fn reflect_mut(&mut self) -> ReflectMut<'_>[src]

fn reflect_hash(&self) -> Option<u64>[src]

Returns a hash of the value (which includes the type) if hashing is supported. Otherwise None will be returned. Read more

fn reflect_partial_eq(&self, value: &dyn Reflect) -> Option<bool>[src]

Returns a “partial equal” comparison result if comparison is supported. Otherwise None will be returned. Read more

fn serializable(&self) -> Option<Serializable<'_>>[src]

Returns a serializable value, if serialization is supported. Otherwise None will be returned. Read more

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> Downcast for T where
    T: Any

pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>

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>

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

pub fn as_any(&self) -> &(dyn Any + 'static)

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)

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<T> DowncastSync for T where
    T: Any + Send + Sync

pub fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + 'static + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T> FromWorld for T where
    T: Default

pub fn from_world(_world: &mut World) -> T

Creates Self using data from the given [World]

impl<T> GetPath for T where
    T: Reflect, 

pub fn path(
    &'r self,
    path: &'p str
) -> Result<&'r (dyn Reflect + 'static), ReflectPathError<'p>>

pub fn path_mut(
    &'r mut self,
    path: &'p str
) -> Result<&'r mut (dyn Reflect + 'static), ReflectPathError<'p>>

fn get_path<T>(&'r self, path: &'p str) -> Result<&'r T, ReflectPathError<'p>> where
    T: Reflect, 

fn get_path_mut<T>(
    &'r mut self,
    path: &'p str
) -> Result<&'r mut T, ReflectPathError<'p>> where
    T: Reflect, 

impl<T> Instrument for T[src]

fn instrument(self, span: Span) -> Instrumented<Self>[src]

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

fn in_current_span(self) -> Instrumented<Self>[src]

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<T> TypeData for T where
    T: 'static + Send + Sync + Clone

pub fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

pub fn vzip(self) -> V

impl<T> Component for T where
    T: 'static + Send + Sync