code: public void forAllDescendants(SceneVisitor visitor) {
          synchronized (mChildren)
          {
              if (visitor.visit(this))
              {
                  for (GVRSceneObject child : mChildren)
                  {
                      child.forAllDescendants(visitor);
                  }
              }
          }
      }
docs: Visits all the descendants of this scene object.
  The SceneVisitor.visit function is called for every
  descendant until it returns false. This allows you
  to traverse the scene graph safely without copying it.
  This method gives much better performance than iterating
  children() or getChildren().
  
  @param visitor SceneVisitor interface implementing "visit" function
  @see #children()
  @see #getChildren()
  @see SceneVisitor
  @see #forAllComponents(ComponentVisitor)
  @see #forAllComponents(ComponentVisitor, long)