rotate = ({ controls, camera, speed = 1 }, angle) => {
  let {
    thetaDelta,
    phiDelta
  } = controls

  if (controls.userControl.rotate) {
    thetaDelta += (angle[0] * speed)
    phiDelta += (angle[1] * speed)
  }

  return {
    controls: {
      thetaDelta,
      phiDelta
    },
    camera
  }
}
compute camera state to rotate the camera
@param {Object} controls the controls data/state
@param {Object} camera the camera data/state
@param {Float} angle value of the angle to rotate
@return {Object} the updated camera data/state