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

pub trait Joint<N: RealField + Copy>: Downcast + Send + Sync {
Show 17 methods 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, parameters: &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 clone(&self) -> Box<dyn Joint<N>>; fn nimpulses(&self) -> usize { ... }
fn num_velocity_constraints(&self) -> usize { ... }
fn velocity_constraints(
        &self,
        _params: &IntegrationParameters<N>,
        _multibody: &Multibody<N>,
        _link: &MultibodyLink<N>,
        _assembly_id: usize,
        _dof_id: usize,
        _ext_vels: &[N],
        _ground_j_id: &mut usize,
        _jacobians: &mut [N],
        _velocity_constraints: &mut ConstraintSet<N, (), (), usize>
    ) { ... }
fn num_position_constraints(&self) -> usize { ... }
fn position_constraint(
        &self,
        _i: usize,
        _multibody: &Multibody<N>,
        _link: &MultibodyLink<N>,
        _handle: BodyPartHandle<()>,
        _dof_id: usize,
        _jacobians: &mut [N]
    ) -> Option<GenericNonlinearConstraint<N, ()>> { ... }
}
Expand description

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.

Implementations

Returns true if the trait object wraps an object of type __T.

Returns a boxed object from a boxed trait object if the underlying object is of type __T. Returns the original boxed trait if it isn’t.

Returns an Rc-ed object from an Rc-ed trait object if the underlying object is of type __T. Returns the original Rc-ed trait if it isn’t.

Returns a reference to the object within the trait object if it is of type __T, or None if it isn’t.

Returns a mutable reference to the object within the trait object if it is of type __T, or None if it isn’t.

Implementors