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

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

A constraint that removes all relative linear motion between two body parts.

## Methods

`impl<N: Real> BallConstraint<N>`

[src]

`impl<N: Real> BallConstraint<N>`

`pub fn new(`

b1: BodyHandle,

b2: BodyHandle,

anchor1: Point<N>,

anchor2: Point<N>

) -> Self

[src]

`pub fn new(`

b1: BodyHandle,

b2: BodyHandle,

anchor1: Point<N>,

anchor2: Point<N>

) -> Self

Creates a ball constaint between two body parts.

This will ensure the two points identified by `anchor1`

and `anchor2`

will coincide.
Both are given in the local-space of their corresponding body part.

`pub fn set_anchor_1(&mut self, anchor1: Point<N>)`

[src]

`pub fn set_anchor_1(&mut self, anchor1: Point<N>)`

Change the first anchor, expressed in the local space of the first body part.

`pub fn set_anchor_2(&mut self, anchor2: Point<N>)`

[src]

`pub fn set_anchor_2(&mut self, anchor2: Point<N>)`

Change the second anchor, expressed in the local space of the second body part.

## Trait Implementations

`impl<N: Real> JointConstraint<N> for BallConstraint<N>`

[src]

`impl<N: Real> JointConstraint<N> for BallConstraint<N>`

`fn num_velocity_constraints(&self) -> usize`

[src]

`fn num_velocity_constraints(&self) -> usize`

The maximum number of velocity constraints generated by this joint.

`fn anchors(&self) -> (BodyHandle, BodyHandle)`

[src]

`fn anchors(&self) -> (BodyHandle, BodyHandle)`

The two body parts affected by this joint.

`fn velocity_constraints(`

&mut self,

_: &IntegrationParameters<N>,

bodies: &BodySet<N>,

ext_vels: &DVector<N>,

ground_j_id: &mut usize,

j_id: &mut usize,

jacobians: &mut [N],

constraints: &mut ConstraintSet<N>

)

[src]

`fn velocity_constraints(`

&mut self,

_: &IntegrationParameters<N>,

bodies: &BodySet<N>,

ext_vels: &DVector<N>,

ground_j_id: &mut usize,

j_id: &mut usize,

jacobians: &mut [N],

constraints: &mut ConstraintSet<N>

)

Initialize and retrieve all the constraints appied to the bodies attached to this joint.

`fn cache_impulses(&mut self, constraints: &ConstraintSet<N>)`

[src]

`fn cache_impulses(&mut self, constraints: &ConstraintSet<N>)`

Called after velocity constraint resolution, allows the joint to keep a cache of impulses generated for each constraint.

`fn is_active(&self, bodies: &BodySet<N>) -> bool`

[src]

`fn is_active(&self, bodies: &BodySet<N>) -> bool`

Return `true`

if the constraint is active. Read more

`impl<N: Real> NonlinearConstraintGenerator<N> for BallConstraint<N>`

[src]

`impl<N: Real> NonlinearConstraintGenerator<N> for BallConstraint<N>`

`fn num_position_constraints(&self, bodies: &BodySet<N>) -> usize`

[src]

`fn num_position_constraints(&self, bodies: &BodySet<N>) -> usize`

Maximum of non-linear position constraint this generater needs to output.

`fn position_constraint(`

&self,

params: &IntegrationParameters<N>,

_: usize,

bodies: &mut BodySet<N>,

jacobians: &mut [N]

) -> Option<GenericNonlinearConstraint<N>>

[src]

`fn position_constraint(`

&self,

params: &IntegrationParameters<N>,

_: usize,

bodies: &mut BodySet<N>,

jacobians: &mut [N]

) -> Option<GenericNonlinearConstraint<N>>

Generate the `i`

-th position constraint of this generator.

## Auto Trait Implementations

`impl<N> Send for BallConstraint<N>`

`impl<N> Send for BallConstraint<N>`

`impl<N> Sync for BallConstraint<N>`

`impl<N> Sync for BallConstraint<N>`