1package com.jme3.scene;
2
3/**
4 * <code>SceneGraphVisitorAdapter</code> is used to traverse the scene
5 * graph tree. The adapter version of the interface simply separates
6 * between the {@link Geometry geometries} and the {@link Node nodes} by
7 * supplying visit methods that take them.
8 * Use by calling {@link Spatial#depthFirstTraversal(com.jme3.scene.SceneGraphVisitor) }
9 * or {@link Spatial#breadthFirstTraversal(com.jme3.scene.SceneGraphVisitor)}.
10 */
11public class SceneGraphVisitorAdapter implements SceneGraphVisitor {
12
13    /**
14     * Called when a {@link Geometry} is visited.
15     *
16     * @param geom The visited geometry
17     */
18    public void visit(Geometry geom) {}
19
20    /**
21     * Called when a {@link visit} is visited.
22     *
23     * @param geom The visited node
24     */
25    public void visit(Node geom) {}
26
27    @Override
28    public final void visit(Spatial spatial) {
29        if (spatial instanceof Geometry) {
30            visit((Geometry)spatial);
31        } else {
32            visit((Node)spatial);
33        }
34    }
35}
36