Enum heron::BodyType [−][src]
pub enum BodyType { Dynamic, Static, Kinematic, Sensor, }
Component that defines the type of rigid body.
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(Body::Sphere { radius: 1.0 }) // Make a body (is dynamic by default) .insert(BodyType::Static); // Make it static (so that it doesn't move and is not affected by forces like gravity) }
Variants
A dynamic body is normally affected by physic forces and affect the other bodies normally too.
This is the most “natural” type in the sense that, in real life, everything is dynamic.
It is the default type.
A static body is not affected by physic forces and doesn’t move. But it does affect the other bodies.
This effectively behaves like a dynamic body with infinite mass and zero velocity.
It is well suited for terrain and static obstacles.
A kinematic body is not moved by the physics engine. But it can have user-defined velocity.
It affects the other bodies normally but is not affected by them.
If the transform is updated, then a velocity will be automatically calculated, producing realistic interaction with other bodies.
It can also have a velocity be applied.
It is well-suited for moving platforms.
A sensor is not affected by physics forces and doesn’t affect other bodies either.
Other bodies will be able to penetrate the sensor. But it still participates in collision events.
A sensor is useful when we are only interested in collision events. One may, for example, add a sensor to detect when the player reaches a certain area.
Implementations
impl BodyType
[src]
#[must_use]pub fn can_have_velocity(self) -> bool
[src]
Returns true if this body type can be moved by Velocity
Trait Implementations
impl Clone for BodyType
[src]
impl Copy for BodyType
[src]
impl Debug for BodyType
[src]
impl Default for BodyType
[src]
impl Eq for BodyType
[src]
impl GetTypeRegistration for BodyType
[src]
pub fn get_type_registration() -> TypeRegistration
[src]
impl PartialEq<BodyType> for BodyType
[src]
pub fn eq(&self, other: &BodyType) -> bool
[src]
#[must_use]pub fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
impl Reflect for BodyType
[src]
pub fn type_name(&self) -> &str
[src]
pub fn any(&self) -> &(dyn Any + 'static)
[src]
pub fn any_mut(&mut self) -> &mut (dyn Any + 'static)
[src]
pub fn clone_value(&self) -> Box<dyn Reflect + 'static, Global>
[src]
pub fn apply(&mut self, value: &(dyn Reflect + 'static))
[src]
pub fn set(
&mut self,
value: Box<dyn Reflect + 'static, Global>
) -> Result<(), Box<dyn Reflect + 'static, Global>>
[src]
&mut self,
value: Box<dyn Reflect + 'static, Global>
) -> Result<(), Box<dyn Reflect + 'static, Global>>
pub fn reflect_ref(&self) -> ReflectRef<'_>
[src]
pub fn reflect_mut(&mut self) -> ReflectMut<'_>
[src]
pub fn reflect_hash(&self) -> Option<u64>
[src]
pub fn reflect_partial_eq(
&self,
value: &(dyn Reflect + 'static)
) -> Option<bool>
[src]
&self,
value: &(dyn Reflect + 'static)
) -> Option<bool>
pub fn serializable(&self) -> Option<Serializable<'_>>
[src]
impl StructuralEq for BodyType
[src]
impl StructuralPartialEq for BodyType
[src]
Auto Trait Implementations
impl RefUnwindSafe for BodyType
impl Send for BodyType
impl Sync for BodyType
impl Unpin for BodyType
impl UnwindSafe for BodyType
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
T: Any,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CloneAny for T where
T: Any + Clone,
T: Any + Clone,
impl<T> Component for T where
T: 'static + Send + Sync,
T: 'static + Send + Sync,
impl<T> Downcast for T where
T: Any,
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn as_any(&self) -> &(dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
impl<T> Downcast<T> for T
impl<T> DowncastSync for T where
T: Any + Send + Sync,
T: Any + Send + Sync,
impl<T> DynEq for T where
T: Any + Eq,
T: Any + Eq,
pub fn as_any(&self) -> &(dyn Any + 'static)
pub fn dyn_eq(&self, other: &(dyn DynEq + 'static)) -> bool
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
pub fn equivalent(&self, key: &K) -> bool
[src]
impl<T> From<T> for T
[src]
impl<T> FromWorld for T where
T: Default,
T: Default,
pub fn from_world(_world: &mut World) -> T
impl<T> GetPath for T where
T: Reflect,
T: Reflect,
pub fn path(
&'r self,
path: &'p str
) -> Result<&'r (dyn Reflect + 'static), ReflectPathError<'p>>
&'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>>
&'r mut self,
path: &'p str
) -> Result<&'r mut (dyn Reflect + 'static), ReflectPathError<'p>>
pub fn get_path<T>(
&'r self,
path: &'p str
) -> Result<&'r T, ReflectPathError<'p>> where
T: Reflect,
&'r self,
path: &'p str
) -> Result<&'r T, ReflectPathError<'p>> where
T: Reflect,
pub fn get_path_mut<T>(
&'r mut self,
path: &'p str
) -> Result<&'r mut T, ReflectPathError<'p>> where
T: Reflect,
&'r mut self,
path: &'p str
) -> Result<&'r mut T, ReflectPathError<'p>> where
T: Reflect,
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> Scalar for T where
T: Copy + PartialEq<T> + Debug + Any,
[src]
T: Copy + PartialEq<T> + Debug + Any,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn is_in_subset(&self) -> bool
pub fn to_subset_unchecked(&self) -> SS
pub fn from_subset(element: &SS) -> SP
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
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]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
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]
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
T: 'static + Send + Sync + Clone,
pub fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>
impl<T> Upcast<T> for T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,