[][src]Trait nphysics2d::joint::Joint

pub trait Joint<N: Real>: Downcast + 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 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>
    ) { ... }
fn num_position_constraints(&self) -> usize { ... }
fn position_constraint(
        &self,
        _i: usize,
        _multibody: &Multibody<N>,
        _link: &MultibodyLink<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> dyn Joint<N> where
    N: Any + 'static,
    N: Real, 

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 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

impl<N: Real> Joint<N> for CartesianJoint<N>
[src]

impl<N: Real> Joint<N> for FixedJoint<N>
[src]

impl<N: Real> Joint<N> for FreeJoint<N>
[src]

impl<N: Real> Joint<N> for PrismaticJoint<N>
[src]

impl<N: Real> Joint<N> for RevoluteJoint<N>
[src]