title: SCNNode Z-rotation axis stays constant, while X and Y axes change when node is rotated
body: <p>I have a node that the user can rotate via a pan gesture. The user can select either X, Y, or Z axis and pan, and the node will rotate around that axis.</p>
  
  <p><strong>The Issue</strong>: The node's front is facing the camera. Let's say the user pans to the right and rotates the node around the Y axis. The node's front is now facing the right. If the user switches to the X axis and pans down, the node's front will rotate downward (or clockwise from the user's perspective) from it's initial right-facing orientation. This is desired behavior. The problem arises when the user switches to the Z rotation. If the user switches to Z axis rotation and pans right, the node will rotate down (clockwise from the user's perspective).</p>
  
  <p>Essentially, the Z axis of the node is always constant, never moving from it's initial orientation, but the X and Y axes do change, affected by other axes' rotations.</p>
  
  <p>Can anyone explain what's causing this?</p>
  
  <p>Below is the code I'm using to rotate the node:</p>
  
  <pre><code>let translation = sender.translation(in: sceneView)
          var newAngleX = Float(translation.y)*Float((Double.pi)/180.0)
          var newAngleY = Float(translation.x)*Float((Double.pi)/180.0)
          var newAngleZ = Float(translation.x)*Float((Double.pi)/180.0)
  
          if axisSelected == "x" {
              newAngleX += currentAngleX
              node.eulerAngles.x = newAngleX
              if(sender.state == .ended) {
                  currentAngleX = newAngleX
              }
          }
          if axisSelected == "y" {
              newAngleY += currentAngleY
              node.eulerAngles.y = newAngleY
              if(sender.state == .ended) {
                  currentAngleY = newAngleY
              }
          }
          if axisSelected == "z" {
              newAngleZ += currentAngleZ
              node.eulerAngles.z = newAngleZ
              if(sender.state == .ended) {
                  currentAngleZ = newAngleZ
              }
          }
  </code></pre>