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

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

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

## Methods

### `impl<N: Real> CartesianJoint<N>`[src]

#### `pub fn new(position: Vector<N>) -> Self`[src]

Create a cartesian joint with an initial position given by `position`.

## Trait Implementations

### `impl<N: Clone + Real> Clone for CartesianJoint<N>`[src]

#### `fn clone(&self) -> CartesianJoint<N>`[src]

Returns a copy of the value. Read more

#### `fn clone_from(&mut self, source: &Self)`1.0.0[src]

Performs copy-assignment from `source`. Read more

### `impl<N: Debug + Real> Debug for CartesianJoint<N>`[src]

#### `fn fmt(&self, f: &mut Formatter) -> Result`[src]

Formats the value using the given formatter. Read more

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

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

The number of degrees of freedom allowed by the joint.

#### `fn body_to_parent(    &self,     parent_shift: &Vector<N>,     body_shift: &Vector<N>) -> Isometry<N>`[src]

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

#### `fn update_jacobians(&mut self, _: &Vector<N>, _: &[N])`[src]

Update the jacobians of this joint.

#### `fn jacobian(&self, _: &Isometry<N>, out: &mut JacobianSliceMut<N>)`[src]

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

#### `fn jacobian_dot(&self, _: &Isometry<N>, _: &mut JacobianSliceMut<N>)`[src]

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,     _: &Isometry<N>,     _: &[N],     _: &mut JacobianSliceMut<N>)`[src]

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, vels: &[N]) -> Velocity<N>`[src]

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, _: &[N]) -> Velocity<N>`[src]

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, _: &mut DVectorSliceMut<N>)`[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.

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

Integrate the position of this joint.

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

Apply a displacement to the joint.

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

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

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

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]

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

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

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]

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