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

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

A unit joint that allows only one translational degree on freedom.

## Methods

`impl<N: Real> PrismaticJoint<N>`

[src]

`impl<N: Real> PrismaticJoint<N>`

`pub fn new(axis: Unit<Vector<N>>, offset: N) -> Self`

[src]

`pub fn new(axis: Unit<Vector<N>>, offset: N) -> Self`

Create a new prismatic joint where the allowed traslation is defined along the provided axis.

The axis is expressed in the local coordinate system of the two multibody links attached to this joint.

`pub fn offset(&self) -> N`

[src]

`pub fn offset(&self) -> N`

The relative displacement of the attached multibody links along the joint axis.

`pub fn translation(&self) -> Translation<N>`

[src]

`pub fn translation(&self) -> Translation<N>`

The relative translation of the attached multibody links along the joint axis.

`pub fn min_offset(&self) -> Option<N>`

[src]

`pub fn min_offset(&self) -> Option<N>`

The lower limit of the relative displacement of the attached multibody links along the joint axis.

`pub fn max_offset(&self) -> Option<N>`

[src]

`pub fn max_offset(&self) -> Option<N>`

The upper limit of the relative displacement of the attached multibody links along the joint axis.

`pub fn disable_min_offset(&mut self)`

[src]

`pub fn disable_min_offset(&mut self)`

Disable the lower limit of the relative displacement of the attached multibody links along the joint axis.

`pub fn disable_max_offset(&mut self)`

[src]

`pub fn disable_max_offset(&mut self)`

Disable the upper limit of the relative displacement of the attached multibody links along the joint axis.

`pub fn enable_min_offset(&mut self, limit: N)`

[src]

`pub fn enable_min_offset(&mut self, limit: N)`

Set the lower limit of the relative displacement of the attached multibody links along the joint axis.

`pub fn enable_max_offset(&mut self, limit: N)`

[src]

`pub fn enable_max_offset(&mut self, limit: N)`

Set the upper limit of the relative displacement of the attached multibody links along the joint axis.

`pub fn is_linear_motor_enabled(&self) -> bool`

[src]

`pub fn is_linear_motor_enabled(&self) -> bool`

Returns `true`

if the joint motor is enabled.

`pub fn enable_linear_motor(&mut self)`

[src]

`pub fn enable_linear_motor(&mut self)`

Enable the joint motor.

`pub fn disable_linear_motor(&mut self)`

[src]

`pub fn disable_linear_motor(&mut self)`

Disable the joint motor.

`pub fn desired_linear_motor_velocity(&self) -> N`

[src]

`pub fn desired_linear_motor_velocity(&self) -> N`

The desired relative velocity to be enforced by the joint motor.

`pub fn set_desired_linear_motor_velocity(&mut self, vel: N)`

[src]

`pub fn set_desired_linear_motor_velocity(&mut self, vel: N)`

Set the desired relative velocity to be enforced by the joint motor.

`pub fn max_linear_motor_force(&self) -> N`

[src]

`pub fn max_linear_motor_force(&self) -> N`

The maximum force that can be output by the joint motor.

`pub fn set_max_linear_motor_force(&mut self, force: N)`

[src]

`pub fn set_max_linear_motor_force(&mut self, force: N)`

Set the maximum force that can be output by the joint motor.

## Trait Implementations

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

[src]

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

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

[src]

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

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

[src]

`fn clone(&self) -> PrismaticJoint<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 PrismaticJoint<N>`

[src]

`impl<N: Debug + Real> Debug for PrismaticJoint<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 PrismaticJoint<N>`

[src]

`impl<N: Real> Joint<N> for PrismaticJoint<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: &Vector<N>,

body_shift: &Vector<N>

) -> Isometry<N>

[src]

`fn body_to_parent(`

&self,

parent_shift: &Vector<N>,

body_shift: &Vector<N>

) -> Isometry<N>

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

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

[src]

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

Update the jacobians of this joint.

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

[src]

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

Sets in `out`

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

.

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

[src]

`fn jacobian_dot(&self, _: &Isometry<N>, _: &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,

_: &Isometry<N>,

_: &[N],

_: &mut JacobianSliceMut<N>

)

[src]

`fn jacobian_dot_veldiff_mul_coordinates(`

&self,

_: &Isometry<N>,

_: &[N],

_: &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 default_damping(&self, _: &mut DVectorSliceMut<N>)`

[src]

`fn default_damping(&self, _: &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 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, _: &[N]) -> Velocity<N>`

[src]

`fn jacobian_dot_mul_coordinates(&self, _: &[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 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],

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

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,

_: usize,

link: &MultibodyLinkRef<N>,

dof_id: usize,

jacobians: &mut [N]

) -> Option<GenericNonlinearConstraint<N>>

[src]

`fn position_constraint(`

&self,

_: 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.

`fn nimpulses(&self) -> usize`

[src]

`fn nimpulses(&self) -> usize`

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

`impl<N: Real> UnitJoint<N> for PrismaticJoint<N>`

[src]

`impl<N: Real> UnitJoint<N> for PrismaticJoint<N>`

`fn position(&self) -> N`

[src]

`fn position(&self) -> N`

The generalized coordinate of the unit joint.

`fn motor(&self) -> &JointMotor<N, N>`

[src]

`fn motor(&self) -> &JointMotor<N, N>`

The motor applied to the degree of freedom of the unit joitn.

`fn min_position(&self) -> Option<N>`

[src]

`fn min_position(&self) -> Option<N>`

The lower limit, if any, set to the generalized coordinate of this unit joint.

`fn max_position(&self) -> Option<N>`

[src]

`fn max_position(&self) -> Option<N>`

The upper limit, if any, set to the generalized coordinate of this unit joint.

## Auto Trait Implementations

`impl<N> Send for PrismaticJoint<N> where`

N: Scalar,

`impl<N> Send for PrismaticJoint<N> where`

N: Scalar,

`impl<N> Sync for PrismaticJoint<N> where`

N: Scalar,

`impl<N> Sync for PrismaticJoint<N> where`

N: Scalar,