anchor.diff:  SceneGraphVisitor visitor = new SceneGraphVisitor() {
   
     @Override
  -  public void visit(Spatial spat) {
  +  public void visit(Spatial spatial) {
       // search criterion can be control class:
       MyControl control = spatial.getControl(MyControl.class);
       if (control != null) {
         // you have access to any method, e.g. name.
  -      System.out.println("Instance of " + control.getClass().getName() 
  +      System.out.println("Instance of " + control.getClass().getName()
                          + " found for " + spatial.getName());
       }
     }
   
   };
  -  
  +
   // Now scan the tree either depth first...
   rootNode.depthFirstTraversal(visitor);
   // ... or scan it breadth first.
  
positive.code: = Traverse the SceneGraph
  :author: 
  :revnumber: 
  :revdate: 2016/03/17 20:48
  :keywords: spatial, node, mesh, geometry, scenegraph
  :relfileprefix: ../../
  
negative.code: *Example 1:*
  
  .  You have created a procedural scene with lots of dynamically generated elements.
  .  You want to find individual Spatials under ever-changing conditions and modify their state.
  
  *Example 2:*
  
  .  You created a mostly static scene in the jMonkeyEngine SDK and exported it as .j3o file. +
  The scene also contains interactive objects, for example a particle emitter, spatials with user data, or spatials with custom controls.
  .  You load the .j3o scene using the assetManager.
  .  You want to interact with one of the loaded interactive scene elements in your Java code. +
  For example, you want to call `emitAllParticles()` on the particle emitter. Or you want to find all NPC's Geometries with a custom CivilianControl, and call the CivilianControl method that makes them start acting their role.
  
  