Struct rhusics_core::ForceAccumulator [−][src]
pub struct ForceAccumulator<F, T> { /* fields omitted */ }
Force accumulator for a rigid body.
Will be consumed when doing force integration for the next frame.
Type parameters:
F
: Force type, usuallyVector2
orVector3
T
: Torque force, usuallyScalar
orVector3
Methods
impl<F, T> ForceAccumulator<F, T> where
F: VectorSpace + Zero,
T: Zero + Copy + Clone,
[src]
impl<F, T> ForceAccumulator<F, T> where
F: VectorSpace + Zero,
T: Zero + Copy + Clone,
pub fn new() -> Self
[src]
pub fn new() -> Self
Create a new force accumulator
pub fn add_force(&mut self, force: F)
[src]
pub fn add_force(&mut self, force: F)
Add a force vector to the accumulator
pub fn add_torque(&mut self, torque: T)
[src]
pub fn add_torque(&mut self, torque: T)
Add a torque vector to the accumulator
pub fn add_force_at_point<P, B>(&mut self, force: F, position: P, pose: &B) where
P: EuclideanSpace<Scalar = F::Scalar, Diff = F>,
P::Scalar: BaseFloat,
B: Transform<P>,
F: PartialCrossProduct<F, Output = T>,
[src]
pub fn add_force_at_point<P, B>(&mut self, force: F, position: P, pose: &B) where
P: EuclideanSpace<Scalar = F::Scalar, Diff = F>,
P::Scalar: BaseFloat,
B: Transform<P>,
F: PartialCrossProduct<F, Output = T>,
Add a force on a given point on the body
If the force vector does not pass directly through the origin of the body, as expressed by the pose, torque will occur. Note that no validation is made on the given position to make sure it's actually contained in the shape of the body.
Parameters:
force
: Force to applyposition
: Position on the body to apply the force at.pose
: Current pose of the body, used to compute the world coordinates of the body center of mass
pub fn consume_force(&mut self) -> F
[src]
pub fn consume_force(&mut self) -> F
Consume the accumulated force
Returns he current accumulated force. The force in the accumulator is reset.
pub fn consume_torque(&mut self) -> T
[src]
pub fn consume_torque(&mut self) -> T
Consume the torque
Returns the current accumulated torque. The torque in the accumulator is reset.
Trait Implementations
impl<F: Debug, T: Debug> Debug for ForceAccumulator<F, T>
[src]
impl<F: Debug, T: Debug> Debug for ForceAccumulator<F, T>
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl<F, T> Default for ForceAccumulator<F, T> where
F: VectorSpace + Zero,
T: Zero + Copy + Clone,
[src]
impl<F, T> Default for ForceAccumulator<F, T> where
F: VectorSpace + Zero,
T: Zero + Copy + Clone,
Auto Trait Implementations
impl<F, T> Send for ForceAccumulator<F, T> where
F: Send,
T: Send,
impl<F, T> Send for ForceAccumulator<F, T> where
F: Send,
T: Send,
impl<F, T> Sync for ForceAccumulator<F, T> where
F: Sync,
T: Sync,
impl<F, T> Sync for ForceAccumulator<F, T> where
F: Sync,
T: Sync,