pub trait NonlinearConstraintGenerator<N, Handle>where
N: RealField + Copy,
Handle: BodyHandle,{
// Required methods
fn num_position_constraints(
&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>>;
}
Expand description
Implemented by structures that generate non-linear constraints.
Required Methods§
sourcefn num_position_constraints(
&self,
bodies: &dyn BodySet<N, Handle = Handle>
) -> usize
fn num_position_constraints( &self, bodies: &dyn BodySet<N, Handle = Handle> ) -> usize
Maximum of non-linear position constraint this generator needs to output.
sourcefn position_constraint(
&self,
parameters: &IntegrationParameters<N>,
i: usize,
bodies: &mut dyn BodySet<N, Handle = Handle>,
jacobians: &mut [N]
) -> Option<GenericNonlinearConstraint<N, Handle>>
fn position_constraint( &self, parameters: &IntegrationParameters<N>, i: usize, bodies: &mut dyn BodySet<N, Handle = Handle>, jacobians: &mut [N] ) -> Option<GenericNonlinearConstraint<N, Handle>>
Generate the i
-th position constraint of this generator.