pub struct RigidBody {Show 17 fields
pub collision: Option<[f32; 3]>,
pub stepped: bool,
pub air_drag: f32,
pub fluid_drag: f32,
pub resting: Vec3<i32>,
pub in_fluid: bool,
pub ratio_in_fluid: f32,
pub velocity: Vec3<f32>,
pub forces: Vec3<f32>,
pub impulses: Vec3<f32>,
pub sleep_frame_count: i32,
pub aabb: AABB,
pub mass: f32,
pub friction: f32,
pub restitution: f32,
pub gravity_multiplier: f32,
pub auto_step: bool,
}
Expand description
A physical body in the Voxelize world.
Fields§
§collision: Option<[f32; 3]>
If body.collision
is true that tick, means there’s a collision detected.
stepped: bool
If the body stepped upwards that tick.
air_drag: f32
The amount of drag this body has in air.
fluid_drag: f32
The amount of drag this body has in fluid.
resting: Vec3<i32>
A vector representing which axis is the body resting against something.
in_fluid: bool
Whether or not this body is in fluid.
ratio_in_fluid: f32
Ratio of body this body is in fluid.
velocity: Vec3<f32>
Velocity vector of the rigid body.
forces: Vec3<f32>
Forces vector of the rigid body.
impulses: Vec3<f32>
Impulses vector of the rigid body.
sleep_frame_count: i32
Counts how many frames this rigid body is static.
aabb: AABB
AABB of this rigid body, describing its collision box.
mass: f32
Mass of this rigid body.
friction: f32
Friction of this rigid body.
restitution: f32
Restitution of this rigid body.
gravity_multiplier: f32
Gravity Multiplier of this rigid body. Set to 0 to fly.
auto_step: bool
Whether or not this rigid body auto-steps up blocks.
Implementations§
source§impl RigidBody
impl RigidBody
sourcepub fn new(aabb: &AABB) -> RigidBodyBuilder
pub fn new(aabb: &AABB) -> RigidBodyBuilder
Instantiate a new RigidBody using the Builder’s pattern.
sourcepub fn set_position(&mut self, px: f32, py: f32, pz: f32)
pub fn set_position(&mut self, px: f32, py: f32, pz: f32)
Setter for rigid body’s position, which is the center of the rigid body.
sourcepub fn get_position(&self) -> Vec3<f32>
pub fn get_position(&self) -> Vec3<f32>
Get the position of the rigid body, which is the center of the rigid body.
sourcepub fn apply_force(&mut self, fx: f32, fy: f32, fz: f32)
pub fn apply_force(&mut self, fx: f32, fy: f32, fz: f32)
Adds a vector to rigid body’s internal force, which gets processed every tick.
sourcepub fn apply_impulse(&mut self, ix: f32, iy: f32, iz: f32)
pub fn apply_impulse(&mut self, ix: f32, iy: f32, iz: f32)
Adds a vector to rigid body’s internal impulse, which gets processed every tick.
sourcepub fn at_rest_x(&self) -> i32
pub fn at_rest_x(&self) -> i32
Get x-axis of the resting vector of a rigid body. A resting vector indicates whether a body is resting or not.
sourcepub fn at_rest_y(&self) -> i32
pub fn at_rest_y(&self) -> i32
Get y-axis of the resting vector of a rigid body. A resting vector indicates whether a body is resting or not.
sourcepub fn at_rest_z(&self) -> i32
pub fn at_rest_z(&self) -> i32
Get z-axis of the resting vector of a rigid body. A resting vector indicates whether a body is resting or not.
sourcepub fn mark_active(&mut self)
pub fn mark_active(&mut self)
Mark rigid body as active in the physical world.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RigidBody
impl RefUnwindSafe for RigidBody
impl Send for RigidBody
impl Sync for RigidBody
impl Unpin for RigidBody
impl UnwindSafe for RigidBody
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> 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> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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.source§impl<T> TryDefault for Twhere
T: Default,
impl<T> TryDefault for Twhere
T: Default,
source§fn try_default() -> Result<T, String>
fn try_default() -> Result<T, String>
source§fn unwrap_default() -> Self
fn unwrap_default() -> Self
try_default
and panics on an error case.