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
sourceimpl 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 bottom 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 RefUnwindSafe for RigidBody
impl Send for RigidBody
impl Sync for RigidBody
impl Unpin for RigidBody
impl UnwindSafe for RigidBody
Blanket Implementations
impl<T> Any for T where
T: Any,
impl<T> Any for T where
T: Any,
fn get_type_id(&self) -> TypeId
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
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
fn as_any(&self) -> &(dyn Any + 'static)
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
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
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
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
sourceimpl<T> TryDefault for T where
T: Default,
impl<T> TryDefault for T where
T: Default,
sourcefn try_default() -> Result<T, String>
fn try_default() -> Result<T, String>
Tries to create the default.
sourcefn unwrap_default() -> Self
fn unwrap_default() -> Self
Calls try_default
and panics on an error case.
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more