# Struct nphysics3d::joint::BallJoint [−][src]

pub struct BallJoint<N: Real> { /* fields omitted */ }

A joint that allows only all rotational degrees of freedom between two multibody links.

## Methods

`impl<N: Real> BallJoint<N>`

[src]

`impl<N: Real> BallJoint<N>`

`pub fn new(axisangle: Vector3<N>) -> Self`

[src]

`pub fn new(axisangle: Vector3<N>) -> Self`

Create a ball joint with the an initial position given by a rotation in axis-angle form.

## Trait Implementations

`impl<N: Copy + Real> Copy for BallJoint<N>`

[src]

`impl<N: Copy + Real> Copy for BallJoint<N>`

`impl<N: Clone + Real> Clone for BallJoint<N>`

[src]

`impl<N: Clone + Real> Clone for BallJoint<N>`

`fn clone(&self) -> BallJoint<N>`

[src]

`fn clone(&self) -> BallJoint<N>`

Returns a copy of the value. Read more

`fn clone_from(&mut self, source: &Self)`

1.0.0[src]

`fn clone_from(&mut self, source: &Self)`

Performs copy-assignment from `source`

. Read more

`impl<N: Debug + Real> Debug for BallJoint<N>`

[src]

`impl<N: Debug + Real> Debug for BallJoint<N>`

`fn fmt(&self, f: &mut Formatter) -> Result`

[src]

`fn fmt(&self, f: &mut Formatter) -> Result`

Formats the value using the given formatter. Read more

`impl<N: Real> Joint<N> for BallJoint<N>`

[src]

`impl<N: Real> Joint<N> for BallJoint<N>`

`fn ndofs(&self) -> usize`

[src]

`fn ndofs(&self) -> usize`

The number of degrees of freedom allowed by the joint.

`fn body_to_parent(`

&self,

parent_shift: &Vector3<N>,

body_shift: &Vector3<N>

) -> Isometry3<N>

[src]

`fn body_to_parent(`

&self,

parent_shift: &Vector3<N>,

body_shift: &Vector3<N>

) -> Isometry3<N>

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

`fn update_jacobians(&mut self, body_shift: &Vector3<N>, vels: &[N])`

[src]

`fn update_jacobians(&mut self, body_shift: &Vector3<N>, vels: &[N])`

Update the jacobians of this joint.

`fn jacobian(&self, transform: &Isometry3<N>, out: &mut JacobianSliceMut<N>)`

[src]

`fn jacobian(&self, transform: &Isometry3<N>, out: &mut JacobianSliceMut<N>)`

Sets in `out`

the non-zero entries of the joint jacobian transformed by `transform`

.

`fn jacobian_dot(&self, transform: &Isometry3<N>, out: &mut JacobianSliceMut<N>)`

[src]

`fn jacobian_dot(&self, transform: &Isometry3<N>, out: &mut JacobianSliceMut<N>)`

Sets in `out`

the non-zero entries of the time-derivative of the joint jacobian transformed by `transform`

.

`fn jacobian_dot_veldiff_mul_coordinates(`

&self,

transform: &Isometry3<N>,

acc: &[N],

out: &mut JacobianSliceMut<N>

)

[src]

`fn jacobian_dot_veldiff_mul_coordinates(`

&self,

transform: &Isometry3<N>,

acc: &[N],

out: &mut JacobianSliceMut<N>

)

Sets in `out`

the non-zero entries of the velocity-derivative of the time-derivative of the joint jacobian transformed by `transform`

.

`fn jacobian_mul_coordinates(&self, acc: &[N]) -> Velocity<N>`

[src]

`fn jacobian_mul_coordinates(&self, acc: &[N]) -> Velocity<N>`

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

`fn jacobian_dot_mul_coordinates(&self, acc: &[N]) -> Velocity<N>`

[src]

`fn jacobian_dot_mul_coordinates(&self, acc: &[N]) -> Velocity<N>`

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

`fn default_damping(&self, out: &mut DVectorSliceMut<N>)`

[src]

`fn default_damping(&self, out: &mut DVectorSliceMut<N>)`

Fill `out`

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

`fn integrate(&mut self, params: &IntegrationParameters<N>, vels: &[N])`

[src]

`fn integrate(&mut self, params: &IntegrationParameters<N>, vels: &[N])`

Integrate the position of this joint.

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

[src]

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

Apply a displacement to the joint.

`fn nimpulses(&self) -> usize`

[src]

`fn nimpulses(&self) -> usize`

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

`fn num_velocity_constraints(&self) -> usize`

[src]

`fn num_velocity_constraints(&self) -> usize`

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

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

)

[src]

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

)

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

`fn num_position_constraints(&self) -> usize`

[src]

`fn num_position_constraints(&self) -> usize`

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

`fn position_constraint(`

&self,

_i: usize,

_link: &MultibodyLinkRef<N>,

_dof_id: usize,

_jacobians: &mut [N]

) -> Option<GenericNonlinearConstraint<N>>

[src]

`fn position_constraint(`

&self,

_i: usize,

_link: &MultibodyLinkRef<N>,

_dof_id: usize,

_jacobians: &mut [N]

) -> Option<GenericNonlinearConstraint<N>>

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