reset = ({ controls, camera }, desiredState) => {
  const options = {
    camera: {
      position: desiredState.camera.position,
      target: desiredState.camera.target,
      projection: mat4.perspective([], camera.fov, camera.aspect, camera.near, camera.far),
      view: desiredState.camera.view
    },
    controls: {
      thetaDelta: desiredState.controls.thetaDelta,
      phiDelta: desiredState.controls.phiDelta,
      scale: desiredState.controls.scale
    }
  }
  return options
}
compute controls state to 'reset it' to the given state
Note1: this is a non optimal but fast & easy implementation
@param {Object} controls the controls data/state
@param {Object} camera the camera data/state
@param {Object} desiredState the state to reset the camera to: defaults to default values
@return {Object} the updated camera data/state