pub trait NonlinearConstraintGenerator<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.