title: jmonkey rotation and translation
body: <p>I am having an issue in JME (JMonkey) with rotating then translating two boxes. I have searched the forums and found some similar issues with other languages but I do not understand the answers and that may be because I do not know the other languages. I have two boxes with .lookat( [the other box] ), a rotate, and then a local translation. In my mind the local translation should move the box in the direction it is facing, but it does not it seems to be moving along the world axes. One thing of note; I do not know anything about using matrix math in 3d, some of the answers I found used matrix math to solve the problem. I would like to understand this so that I can avoid this problem in the future. I have reduced my code as small as possible so it does not have any unnessicary parts.</p>
  
  <pre><code>package jme3test.helloworld;
  import com.jme3.app.SimpleApplication;
  import com.jme3.font.BitmapText;
  import com.jme3.material.Material;
  import com.jme3.math.Vector3f;
  import com.jme3.scene.Geometry;
  import com.jme3.scene.shape.Box;
  import com.jme3.math.ColorRGBA;
  import com.jme3.renderer.RenderManager;
  import com.jme3.renderer.ViewPort;
  import com.jme3.scene.Node;
  import com.jme3.scene.Spatial;
  import com.jme3.scene.control.AbstractControl;
  import java.util.ResourceBundle.Control;
  
  
  public class SSF2 extends SimpleApplication {
  public Geometry blue = null;
  public Geometry red = null;
  
  public static void main(String[] args){
      final SSF2 app = new SSF2();
      app.start();
  }
  
  @Override
  public void simpleInitApp() {
      // create a blue box at coordinates (1,-1,1)
      Box box1 = new Box( Vector3f.ZERO, 1f,2f,.5f);
      blue =  new Geometry("Box", box1);
      Material mat1 = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
      mat1.setColor("Color", ColorRGBA.Blue);
      blue.setMaterial(mat1);
      blue.move(-5,0,-3);
  
      // create a red box straight above the blue one at (1,3,1)
      Box box2 = new Box( Vector3f.ZERO, 1f,2f,.5f);
      red = new Geometry("Box", box2);
      Material mat2 = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
      mat2.setColor("Color", ColorRGBA.Red);
      red.setMaterial(mat2);
      red.move(5,0,-3);
  
      rootNode.attachChild(blue);
      rootNode.attachChild(red);
  
      blue.lookAt(red.getWorldTranslation(), new Vector3f(0,1,0) );
      red.lookAt(blue.getWorldTranslation(), new Vector3f(0,1,0) );
  }
  
  @Override
  public void simpleUpdate(float tpf) {
      blue.setLocalTranslation(new Vector3f( (blue.getLocalTranslation().getX() + .02f), (blue.getLocalTranslation().getY())  , (blue.getLocalTranslation().getZ() )));
      red.setLocalTranslation(new Vector3f( (red.getLocalTranslation().getX() + .02f), (red.getLocalTranslation().getY())  , (red.getLocalTranslation().getZ() )));
  }
  }
  </code></pre>