Struct nphysics3d::joint::PinSlotConstraint [−][src]
pub struct PinSlotConstraint<N: Real> { /* fields omitted */ }
A constraint that removes two translational and two rotational degrees of freedoms.
This is different frmo the cylindrical constraint since the remaining rotation and translation are not restricted to be done wrt. the same axis.
Methods
impl<N: Real> PinSlotConstraint<N>
[src]
impl<N: Real> PinSlotConstraint<N>
pub fn new(
b1: BodyHandle,
b2: BodyHandle,
anchor1: Point<N>,
axis_v1: Unit<Vector<N>>,
axis_w1: Unit<Vector<N>>,
anchor2: Point<N>,
axis_w2: Unit<Vector<N>>
) -> Self
[src]
pub fn new(
b1: BodyHandle,
b2: BodyHandle,
anchor1: Point<N>,
axis_v1: Unit<Vector<N>>,
axis_w1: Unit<Vector<N>>,
anchor2: Point<N>,
axis_w2: Unit<Vector<N>>
) -> Self
Creates a new pin-slot constraint.
This will ensure the relative linear motions are always along axis_v1
(here expressed
in the local coordinate frame of b1
), and that axis_w1
and axis_w2
always coincide.
All axises and anchors are expressed in the local coordinate frame of their respective body
part.
Trait Implementations
impl<N: Real> JointConstraint<N> for PinSlotConstraint<N>
[src]
impl<N: Real> JointConstraint<N> for PinSlotConstraint<N>
fn num_velocity_constraints(&self) -> usize
[src]
fn num_velocity_constraints(&self) -> usize
The maximum number of velocity constraints generated by this joint.
fn anchors(&self) -> (BodyHandle, BodyHandle)
[src]
fn anchors(&self) -> (BodyHandle, BodyHandle)
The two body parts affected by this joint.
fn velocity_constraints(
&mut self,
_: &IntegrationParameters<N>,
bodies: &BodySet<N>,
ext_vels: &DVector<N>,
ground_j_id: &mut usize,
j_id: &mut usize,
jacobians: &mut [N],
constraints: &mut ConstraintSet<N>
)
[src]
fn velocity_constraints(
&mut self,
_: &IntegrationParameters<N>,
bodies: &BodySet<N>,
ext_vels: &DVector<N>,
ground_j_id: &mut usize,
j_id: &mut usize,
jacobians: &mut [N],
constraints: &mut ConstraintSet<N>
)
Initialize and retrieve all the constraints appied to the bodies attached to this joint.
fn cache_impulses(&mut self, constraints: &ConstraintSet<N>)
[src]
fn cache_impulses(&mut self, constraints: &ConstraintSet<N>)
Called after velocity constraint resolution, allows the joint to keep a cache of impulses generated for each constraint.
fn is_active(&self, bodies: &BodySet<N>) -> bool
[src]
fn is_active(&self, bodies: &BodySet<N>) -> bool
Return true
if the constraint is active. Read more
impl<N: Real> NonlinearConstraintGenerator<N> for PinSlotConstraint<N>
[src]
impl<N: Real> NonlinearConstraintGenerator<N> for PinSlotConstraint<N>
fn num_position_constraints(&self, bodies: &BodySet<N>) -> usize
[src]
fn num_position_constraints(&self, bodies: &BodySet<N>) -> usize
Maximum of non-linear position constraint this generater needs to output.
fn position_constraint(
&self,
params: &IntegrationParameters<N>,
i: usize,
bodies: &mut BodySet<N>,
jacobians: &mut [N]
) -> Option<GenericNonlinearConstraint<N>>
[src]
fn position_constraint(
&self,
params: &IntegrationParameters<N>,
i: usize,
bodies: &mut BodySet<N>,
jacobians: &mut [N]
) -> Option<GenericNonlinearConstraint<N>>
Generate the i
-th position constraint of this generator.
Auto Trait Implementations
impl<N> Send for PinSlotConstraint<N> where
N: Scalar,
impl<N> Send for PinSlotConstraint<N> where
N: Scalar,
impl<N> Sync for PinSlotConstraint<N> where
N: Scalar,
impl<N> Sync for PinSlotConstraint<N> where
N: Scalar,