Using Coordinate::setValue() in CMCActuatorSubsystem ensures consistency of coordinate values in the underlying state, but it is unnecessary to assemble the model to satisfy constraints, since desired kinematics have already been through SimbodyEngine::formCompleteStorages(). We projectQ() just in case coordinates are perturbed slightly from the desired.
Using Coordinate::setValue() in CMCActuatorSubsystem ensures consistency of coordinate values in the underlying state, but it is unnecessary to assemble the model to satisfy constraints, since desired kinematics have already been through SimbodyEngine::formCompleteStorages(). We projectQ() just in case coordinates are perturbed slightly from the desired.

opensim-org/opensim-core,opensim-org/opensim-core,opensim-org/opensim-core,opensim-org/opensim-core,opensim-org/opensim-core,opensim-org/opensim-core,opensim-org/opensim-core