anchor.diff:  
   [source,java]
   ----
  -int id = pivot.getUserData( "pivot id" ); 
  +int id = pivot.getUserData( "pivot id" );
   ----
   
   By using different Strings keys (here the key is `pivot id`), you can get and set several values for whatever data the Spatial needs to carry. When you start writing your game, you might add a fuel value to a car node, speed value to an airplane node, or number of gold coins to a player node, and much more. However, one should note that only custom objects that implements Savable can be passed.
  
positive.code: = jMonkeyEngine 3 Tutorial (2) - Hello Node
  :author: 
  :revnumber: 
  :revdate: 2016/03/17 20:48
  :keywords: beginner, rootNode, node, intro, documentation, color, spatial, geometry, scenegraph, mesh
  :relfileprefix: ../../
  
negative.code: [cols="55,15,15,15", options="header"]
  |===
  
  a| Rotation turns Spatials
  a| X-axis (Pitch)
  a| Y-axis (Yaw)
  a| Z-axis (Roll)
  
  a|3-D rotation is a bit tricky (<<jme3/rotate#,learn details here>>). In short: You can rotate around three axes: Pitch, yaw, and roll. You can specify angles in degrees by multiplying the degrees value with `FastMath.DEG_TO_RAD`. +
  To roll an object 180° around the z axis:
  [source,java]
  ----
  thing.rotate( 0f , 0f , 180*FastMath.DEG_TO_RAD );
  ----
  
  Tip: If your game idea calls for a serious amount of rotations, it is worth looking into <<jme3/quaternion#,quaternions>>, a data structure that can combine and store rotations efficiently.
  
  [source,java]
  ----
  thing.setLocalRotation(
    new Quaternion().fromAngleAxis(180*FastMath.DEG_TO_RAD, new Vector3f(1,0,0)));
  ----
  
  