Trait oxygengine_physics_2d::prelude::joint::Joint[][src]

pub trait Joint<N>: Downcast + Send + Sync where
    N: RealField
{
Show methods pub fn ndofs(&self) -> usize;
pub fn body_to_parent(
        &self,
        parent_shift: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
        body_shift: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>
    ) -> Isometry<N, U2, Unit<Complex<N>>>;
pub fn update_jacobians(
        &mut self,
        body_shift: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
        vels: &[N]
    );
pub fn integrate(
        &mut self,
        parameters: &IntegrationParameters<N>,
        vels: &[N]
    );
pub fn apply_displacement(&mut self, disp: &[N]);
pub fn jacobian(
        &self,
        transform: &Isometry<N, U2, Unit<Complex<N>>>,
        out: &mut Matrix<N, U3, Dynamic, SliceStorageMut<'_, N, U3, Dynamic, U1, U3>>
    );
pub fn jacobian_dot(
        &self,
        transform: &Isometry<N, U2, Unit<Complex<N>>>,
        out: &mut Matrix<N, U3, Dynamic, SliceStorageMut<'_, N, U3, Dynamic, U1, U3>>
    );
pub fn jacobian_dot_veldiff_mul_coordinates(
        &self,
        transform: &Isometry<N, U2, Unit<Complex<N>>>,
        vels: &[N],
        out: &mut Matrix<N, U3, Dynamic, SliceStorageMut<'_, N, U3, Dynamic, U1, U3>>
    );
pub fn jacobian_mul_coordinates(&self, vels: &[N]) -> Velocity2<N>;
pub fn jacobian_dot_mul_coordinates(&self, vels: &[N]) -> Velocity2<N>;
pub fn default_damping(
        &self,
        out: &mut Matrix<N, Dynamic, U1, SliceStorageMut<'_, N, Dynamic, U1, U1, Dynamic>>
    );
pub fn clone(&self) -> Box<dyn Joint<N> + 'static, Global>; pub fn nimpulses(&self) -> usize { ... }
pub fn num_velocity_constraints(&self) -> usize { ... }
pub 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>
    ) { ... }
pub fn num_position_constraints(&self) -> usize { ... }
pub fn position_constraint(
        &self,
        _i: usize,
        _multibody: &Multibody<N>,
        _link: &MultibodyLink<N>,
        _handle: BodyPartHandle<()>,
        _dof_id: usize,
        _jacobians: &mut [N]
    ) -> Option<GenericNonlinearConstraint<N, ()>> { ... }
}

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

Required methods

pub fn ndofs(&self) -> usize[src]

The number of degrees of freedom allowed by the joint.

pub fn body_to_parent(
    &self,
    parent_shift: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
    body_shift: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>
) -> Isometry<N, U2, Unit<Complex<N>>>
[src]

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

pub fn update_jacobians(
    &mut self,
    body_shift: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
    vels: &[N]
)
[src]

Update the jacobians of this joint.

pub fn integrate(&mut self, parameters: &IntegrationParameters<N>, vels: &[N])[src]

Integrate the position of this joint.

pub fn apply_displacement(&mut self, disp: &[N])[src]

Apply a displacement to the joint.

pub fn jacobian(
    &self,
    transform: &Isometry<N, U2, Unit<Complex<N>>>,
    out: &mut Matrix<N, U3, Dynamic, SliceStorageMut<'_, N, U3, Dynamic, U1, U3>>
)
[src]

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

pub fn jacobian_dot(
    &self,
    transform: &Isometry<N, U2, Unit<Complex<N>>>,
    out: &mut Matrix<N, U3, Dynamic, SliceStorageMut<'_, N, U3, Dynamic, U1, U3>>
)
[src]

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

pub fn jacobian_dot_veldiff_mul_coordinates(
    &self,
    transform: &Isometry<N, U2, Unit<Complex<N>>>,
    vels: &[N],
    out: &mut Matrix<N, U3, Dynamic, SliceStorageMut<'_, N, U3, Dynamic, U1, U3>>
)
[src]

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

pub fn jacobian_mul_coordinates(&self, vels: &[N]) -> Velocity2<N>[src]

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

pub fn jacobian_dot_mul_coordinates(&self, vels: &[N]) -> Velocity2<N>[src]

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

pub fn default_damping(
    &self,
    out: &mut Matrix<N, Dynamic, U1, SliceStorageMut<'_, N, Dynamic, U1, U1, Dynamic>>
)
[src]

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

pub fn clone(&self) -> Box<dyn Joint<N> + 'static, Global>[src]

Loading content...

Provided methods

pub fn nimpulses(&self) -> usize[src]

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

pub fn num_velocity_constraints(&self) -> usize[src]

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

pub 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>
)
[src]

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

pub fn num_position_constraints(&self) -> usize[src]

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

pub fn position_constraint(
    &self,
    _i: usize,
    _multibody: &Multibody<N>,
    _link: &MultibodyLink<N>,
    _handle: BodyPartHandle<()>,
    _dof_id: usize,
    _jacobians: &mut [N]
) -> Option<GenericNonlinearConstraint<N, ()>>
[src]

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

Loading content...

Implementations

impl<N> dyn Joint<N> + 'static where
    N: Any + 'static + RealField
[src]

pub fn is<__T>(&self) -> bool where
    __T: Joint<N>, 
[src]

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

pub fn downcast<__T>(
    self: Box<dyn Joint<N> + 'static, Global>
) -> Result<Box<__T, Global>, Box<dyn Joint<N> + 'static, Global>> where
    __T: Joint<N>, 
[src]

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.

pub fn downcast_rc<__T>(
    self: Rc<dyn Joint<N> + 'static>
) -> Result<Rc<__T>, Rc<dyn Joint<N> + 'static>> where
    __T: Joint<N>, 
[src]

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.

pub fn downcast_ref<__T>(&self) -> Option<&__T> where
    __T: Joint<N>, 
[src]

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

pub fn downcast_mut<__T>(&mut self) -> Option<&mut __T> where
    __T: Joint<N>, 
[src]

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> Joint<N> for CartesianJoint<N> where
    N: RealField
[src]

impl<N> Joint<N> for FixedJoint<N> where
    N: RealField
[src]

impl<N> Joint<N> for FreeJoint<N> where
    N: RealField
[src]

impl<N> Joint<N> for PrismaticJoint<N> where
    N: RealField
[src]

impl<N> Joint<N> for RevoluteJoint<N> where
    N: RealField
[src]

Loading content...