[−][src]Struct nphysics3d::joint::PinSlotConstraint
A constraint that removes two translational and two rotational degrees of freedoms.
This is different frmo the cylindrical constraint since the remaining rotation and translation are not restricted to be done wrt. the same axis.
Methods
impl<N: RealField, Handle: BodyHandle> PinSlotConstraint<N, Handle>
[src]
pub fn new(
b1: BodyPartHandle<Handle>,
b2: BodyPartHandle<Handle>,
anchor1: Point<N>,
axis_v1: Unit<Vector<N>>,
axis_w1: Unit<Vector<N>>,
anchor2: Point<N>,
axis_w2: Unit<Vector<N>>
) -> Self
[src]
b1: BodyPartHandle<Handle>,
b2: BodyPartHandle<Handle>,
anchor1: Point<N>,
axis_v1: Unit<Vector<N>>,
axis_w1: Unit<Vector<N>>,
anchor2: Point<N>,
axis_w2: Unit<Vector<N>>
) -> Self
Creates a new pin-slot constraint.
This will ensure the relative linear motions are always along axis_v1
(here expressed
in the local coordinate frame of b1
), and that axis_w1
and axis_w2
always coincide.
All axises and anchors are expressed in the local coordinate frame of their respective body
part.
pub fn set_break_force(&mut self, break_force: N)
[src]
The maximum force this joint can absorb before breaking.
pub fn set_break_torque(&mut self, break_torque: N)
[src]
The maximum torque this joint can absorb before breaking.
Trait Implementations
impl<N: RealField, Handle: BodyHandle> JointConstraint<N, Handle> for PinSlotConstraint<N, Handle>
[src]
fn is_broken(&self) -> bool
[src]
fn num_velocity_constraints(&self) -> usize
[src]
fn anchors(&self) -> (BodyPartHandle<Handle>, BodyPartHandle<Handle>)
[src]
fn velocity_constraints(
&mut self,
_: &IntegrationParameters<N>,
bodies: &dyn BodySet<N, Handle = Handle>,
ext_vels: &DVector<N>,
ground_j_id: &mut usize,
j_id: &mut usize,
jacobians: &mut [N],
constraints: &mut LinearConstraints<N, usize>
)
[src]
&mut self,
_: &IntegrationParameters<N>,
bodies: &dyn BodySet<N, Handle = Handle>,
ext_vels: &DVector<N>,
ground_j_id: &mut usize,
j_id: &mut usize,
jacobians: &mut [N],
constraints: &mut LinearConstraints<N, usize>
)
fn cache_impulses(
&mut self,
constraints: &LinearConstraints<N, usize>,
inv_dt: N
)
[src]
&mut self,
constraints: &LinearConstraints<N, usize>,
inv_dt: N
)
fn is_active(&self, bodies: &dyn BodySet<N, Handle = Handle>) -> bool
[src]
impl<N: RealField, Handle: BodyHandle> NonlinearConstraintGenerator<N, Handle> for PinSlotConstraint<N, Handle>
[src]
fn num_position_constraints(
&self,
bodies: &dyn BodySet<N, Handle = Handle>
) -> usize
[src]
&self,
bodies: &dyn BodySet<N, Handle = Handle>
) -> usize
fn position_constraint(
&self,
parameters: &IntegrationParameters<N>,
i: usize,
bodies: &mut dyn BodySet<N, Handle = Handle>,
jacobians: &mut [N]
) -> Option<GenericNonlinearConstraint<N, Handle>>
[src]
&self,
parameters: &IntegrationParameters<N>,
i: usize,
bodies: &mut dyn BodySet<N, Handle = Handle>,
jacobians: &mut [N]
) -> Option<GenericNonlinearConstraint<N, Handle>>
Auto Trait Implementations
impl<N, Handle> RefUnwindSafe for PinSlotConstraint<N, Handle> where
Handle: RefUnwindSafe,
N: RefUnwindSafe + Scalar,
Handle: RefUnwindSafe,
N: RefUnwindSafe + Scalar,
impl<N, Handle> Send for PinSlotConstraint<N, Handle> where
N: Scalar,
N: Scalar,
impl<N, Handle> Sync for PinSlotConstraint<N, Handle> where
N: Scalar,
N: Scalar,
impl<N, Handle> Unpin for PinSlotConstraint<N, Handle> where
Handle: Unpin,
N: Scalar + Unpin,
Handle: Unpin,
N: Scalar + Unpin,
impl<N, Handle> UnwindSafe for PinSlotConstraint<N, Handle> where
Handle: UnwindSafe,
N: Scalar + UnwindSafe,
Handle: UnwindSafe,
N: Scalar + UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Downcast for T where
T: Any,
T: Any,
fn into_any(self: Box<T>) -> Box<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
impl<T> DowncastSync for T where
T: Send + Sync + Any,
T: Send + Sync + Any,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn is_in_subset(&self) -> bool
unsafe fn to_subset_unchecked(&self) -> SS
fn from_subset(element: &SS) -> SP
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,