Trait nphysics3d::joint::Joint[][src]

pub trait Joint<N: Real>: Any + Send + Sync {
    fn ndofs(&self) -> usize;
fn body_to_parent(
        &self,
        parent_shift: &Vector<N>,
        body_shift: &Vector<N>
    ) -> Isometry<N>;
fn update_jacobians(&mut self, body_shift: &Vector<N>, vels: &[N]);
fn integrate(&mut self, params: &IntegrationParameters<N>, vels: &[N]);
fn apply_displacement(&mut self, disp: &[N]);
fn jacobian(&self, transform: &Isometry<N>, out: &mut JacobianSliceMut<N>);
fn jacobian_dot(
        &self,
        transform: &Isometry<N>,
        out: &mut JacobianSliceMut<N>
    );
fn jacobian_dot_veldiff_mul_coordinates(
        &self,
        transform: &Isometry<N>,
        vels: &[N],
        out: &mut JacobianSliceMut<N>
    );
fn jacobian_mul_coordinates(&self, vels: &[N]) -> Velocity<N>;
fn jacobian_dot_mul_coordinates(&self, vels: &[N]) -> Velocity<N>;
fn default_damping(&self, out: &mut DVectorSliceMut<N>); fn nimpulses(&self) -> usize { ... }
fn num_velocity_constraints(&self) -> usize { ... }
fn velocity_constraints(
        &self,
        _params: &IntegrationParameters<N>,
        _link: &MultibodyLinkRef<N>,
        _assembly_id: usize,
        _dof_id: usize,
        _ext_vels: &[N],
        _ground_j_id: &mut usize,
        _jacobians: &mut [N],
        _velocity_constraints: &mut ConstraintSet<N>
    ) { ... }
fn num_position_constraints(&self) -> usize { ... }
fn position_constraint(
        &self,
        _i: usize,
        _link: &MultibodyLinkRef<N>,
        _dof_id: usize,
        _jacobians: &mut [N]
    ) -> Option<GenericNonlinearConstraint<N>> { ... } }

Trait implemented by all joints following the reduced-coordinate formation.

Required Methods

The number of degrees of freedom allowed by the joint.

The position of the multibody link containing this joint relative to its parent.

Update the jacobians of this joint.

Integrate the position of this joint.

Apply a displacement to the joint.

Sets in out the non-zero entries of the joint jacobian transformed by transform.

Sets in out the non-zero entries of the time-derivative of the joint jacobian transformed by transform.

Sets in out the non-zero entries of the velocity-derivative of the time-derivative of the joint jacobian transformed by transform.

Multiply the joint jacobian by generalized velocities to obtain the relative velocity of the multibody link containing this joint.

Multiply the joint jacobian by generalized accelerations to obtain the relative acceleration of the multibody link containing this joint.

Fill out with the non-zero entries of a damping that can be applied by default to ensure a good stability of the joint.

Provided Methods

The maximum number of impulses needed by this joints for its constraints.

Maximum number of velocity constrains that can be generated by this joint.

Initialize and generate velocity constraints to enforce, e.g., joint limits and motors.

The maximum number of non-linear position constraints that can be generated by this joint.

Initialize and generate the i-th position constraints to enforce, e.g., joint limits.

Methods

impl<N> Joint<N> where
    N: Real

Important traits for &'a mut R

Important traits for &'a mut R

Important traits for Box<R>

Trait Implementations

impl<_T: Any, N> Downcast<_T> for Joint<N> where
    _T: Any,
    N: 'static,
    N: Real

Important traits for &'a mut R

Important traits for &'a mut R

Important traits for Box<R>

Implementors