title: three.js ellipse.setRotationFromAxisAngle eliminates existing quaternion
body: <p>I'm currently working on a three.js project.</p>
  <p>One of the tasks is to rotate the ellipse around the <strong>local x axis</strong> and <strong>z axis</strong> for <strong>rx</strong> and <strong>rz</strong> degrees; and then rotate along <strong>a global axis (0,1,0)</strong> for <strong>ry</strong> degrees.
  My code is this:</p>
  <pre><code>    function createOrbit(ax, xRadius, yRadius, rx, ry, rz){
      const curve = new THREE.EllipseCurve(
          ax, 0,              // ax, aY
          xRadius, yRadius,         // xRadius, yRadius
          0,  2 * Math.PI,  // aStartAngle, aEndAngle
          false,            // aClockwise
          0                // aRotation
      );
      const points = curve.getPoints( 50 );
      const geometry = new THREE.BufferGeometry().setFromPoints( points );
      const material = new THREE.LineBasicMaterial( { color : 0xffff00 } );
      // Create the final object to add to the scene
      const ellipse = new THREE.Line( geometry, material );
      ellipse.rotation.x += rx;
      ellipse.rotation.z += rz;
      yax = new THREE.Vector3(0,1,0);
      ellipse.setRotationFromAxisAngle(yax, ry);
  
      return ellipse;
  }
  </code></pre>
  <p>However, I found that the function <code>ellipse.setRotationFromAxisAngle(yax, ry)</code> will eliminates the existing and reintroduce a new set of quarternion introduced by</p>
  <pre><code>    ellipse.rotation.x += rx;
      ellipse.rotation.z += rz;
  </code></pre>
  <p>Any advice how I could solve this?</p>