% This function is part of the NMSM Pipeline, see file for full license.
%
% This function prepares the inputs for the all treatment optimization
% modules (tracking, verification, and design optimization.
%
% (struct, struct) -> (struct)
function inputs = makeTreatmentOptimizationInputs(inputs, params)
if isequal(mexext, 'mexw64')
pointKinematicsMexWindows(inputs.mexModel);
inverseDynamicsMexWindows(inputs.mexModel);
end
inputs = getStateDerivatives(inputs);
inputs = setupGroundContact(inputs);
inputs = getSplines(inputs);
inputs = checkStateGuess(inputs);
inputs = checkControlGuess(inputs);
inputs = checkParameterGuess(inputs);
inputs = getIntegralBounds(inputs);
inputs = getPathConstraintBounds(inputs);
inputs = getTerminalConstraintBounds(inputs);
inputs = getDesignVariableInputBounds(inputs);
end