title: Setting SCNNode's rotation with valid values, but it's always 0,0,0,0
body: <p>I'm trying to set my camera node's rotation, and the value's are there, but it never changes from 0,0,0,0...
  initialize the player node (left out other settings, the node has no geometry, but its physics body does have geometry)</p>
  
  <pre><code>playerNode = [SCNNode node];
  </code></pre>
  
  <p>and I set it's position and add it to the scene's root node... </p>
  
  <pre><code>- (void)viewDidLoad
  {
      [super viewDidLoad];
  
      // create a new scene
      SCNScene *scene = [SCNScene scene];
      scene.physicsWorld.gravity = SCNVector3Make(0, -9, 0);
      scene.physicsWorld.timeStep = 1.0/360;
  
      // add world node
      worldNode = [SCNNode node];
      worldNode.name = @"world";
      [scene.rootNode addChildNode:worldNode];
  
      // add terrain
      .../* terrain stuff */
  
      // add player node
      playerNode = [SCNNode node];
      playerNode.name = @"player";
      playerNode.position = SCNVector3Make(0, 0, 0);
      playerNode.physicsBody = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeDynamic shape:[SCNPhysicsShape shapeWithGeometry:[SCNCylinder cylinderWithRadius:0.2 height:1] options:nil]];
      playerNode.physicsBody.angularDamping = 0.9999;
      playerNode.physicsBody.damping = 0.9999;
      playerNode.physicsBody.rollingFriction = 0;
      playerNode.physicsBody.friction = 0;
      playerNode.physicsBody.restitution = 0;
      playerNode.physicsBody.velocityFactor = SCNVector3Make(1, 0, 1);
      playerNode.physicsBody.categoryBitMask = playerCategory;
      [scene.rootNode addChildNode:playerNode];
  
      // create and add a camera to the scene
      SCNNode *cameraNode = [SCNNode node];
      [playerNode addChildNode:cameraNode];
  
      cameraNode.camera = [SCNCamera camera];
      cameraNode.camera.xFov = 53;
      cameraNode.camera.zNear = 0.01;
      cameraNode.camera.zFar = 5000;
      // place the camera
      cameraNode.position = SCNVector3Make(0, 0, 0);
      .../* rest of view did load */
  }
  </code></pre>
  
  <p>and then trying to set the rotation:</p>
  
  <pre><code>-(void)lookGestureRecognized:(UIPanGestureRecognizer *)gesture {
      SCNView *scnView = (SCNView *)self.view;
      CGPoint translation = [gesture translationInView:self.view];
      NSLog(@"lookGestureRecognized: translation x %g y %g", translation.x, translation.y);
      CGFloat hAngle = acos(((float)translation.x / 200) - (float)M_PI_2);
      CGFloat vAngle = acos(((float)translation.y / 200) - (float)M_PI_2);
  
      // rotate hero
      [playerNode.physicsBody applyTorque:SCNVector4Make(0, 1, 0, hAngle) impulse:YES];
  
      // tilt camera
      [SCNTransaction setAnimationDuration:0.0];
      elevation = MAX((float)-M_PI_4, MIN((float)M_PI_4, elevation + vAngle));
      NSLog(@"elevation: %g", elevation);
      SCNVector4 cameraRotation = SCNVector4Make(1, 0, 0, elevation);
      cameraNode.rotation = cameraRotation;
      // cameraNode.transform = SCNMatrix4Rotate(cameraNode.transform, 1, 0, 0, elevation); // tried this, didn't work either
      NSLog(@"cameraNode.rotation = x %g y %g z %g, w %g", cameraNode.rotation.x, cameraNode.rotation.y, cameraNode.rotation.z, cameraNode.rotation.w);
  
      // reset translation
      [gesture setTranslation:CGPointZero inView:self.view];
  }
  </code></pre>
  
  <p>the elevation is being calculated correctly, but trying to set it to the node's rotation fails... the log always says 0,0,0,0... </p>
  
  <pre><code>NSLog sample output:
  2015-02-17 14:37:11.732 usingGestureRecognizer.01[96111:289778] lookGestureRecognized: translation x 0 y 0.5
  2015-02-17 14:37:11.733 usingGestureRecognizer.01[96111:289778] elevation: -0.785398
  2015-02-17 14:37:11.733 usingGestureRecognizer.01[96111:289778] cameraNode.rotation = x 0 y 0 z 0, w 0
  </code></pre>
  
  <p>Any ideas? </p>
  
  <p>(Side note, mimic'ing the code I found from an example, translated it from swift to obj-c, and the sample code works perfectly)</p>