Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion jme3-blender/src/main/java/com/jme3/asset/BlenderKey.java
Original file line number Diff line number Diff line change
Expand Up @@ -967,11 +967,12 @@ public Spatial deepClone() {
}

@Override
public void depthFirstTraversal(SceneGraphVisitor visitor) {
public void depthFirstTraversal(SceneGraphVisitor visitor, boolean preOrder) {
}

@Override
protected void breadthFirstTraversal(SceneGraphVisitor visitor, Queue<Spatial> queue) {
}

}
}
2 changes: 1 addition & 1 deletion jme3-core/src/main/java/com/jme3/scene/Geometry.java
Original file line number Diff line number Diff line change
Expand Up @@ -447,7 +447,7 @@ public int collideWith(Collidable other, CollisionResults results) {
}

@Override
public void depthFirstTraversal(SceneGraphVisitor visitor) {
public void depthFirstTraversal(SceneGraphVisitor visitor, boolean preOrder) {
visitor.visit(this);
}

Expand Down
18 changes: 13 additions & 5 deletions jme3-core/src/main/java/com/jme3/scene/Node.java
Original file line number Diff line number Diff line change
Expand Up @@ -625,15 +625,23 @@ public void updateModelBound() {
}
}
}

@Override
public void depthFirstTraversal(SceneGraphVisitor visitor) {
for (Spatial child : children.getArray()) {
child.depthFirstTraversal(visitor);
public void depthFirstTraversal(SceneGraphVisitor visitor, boolean preOrder) {
if (preOrder) {
visitor.visit(this);
for (Spatial child : children.getArray()) {
child.depthFirstTraversal(visitor);
}
} else {
for (Spatial child : children.getArray()) {
child.depthFirstTraversal(visitor);
}
visitor.visit(this);
}
visitor.visit(this);
}


@Override
protected void breadthFirstTraversal(SceneGraphVisitor visitor, Queue<Spatial> queue) {
queue.addAll(children);
Expand Down
17 changes: 15 additions & 2 deletions jme3-core/src/main/java/com/jme3/scene/Spatial.java
Original file line number Diff line number Diff line change
Expand Up @@ -1492,10 +1492,23 @@ public Matrix4f getLocalToWorldMatrix(Matrix4f store) {
}

/**
* Visit each scene graph element ordered by DFS
* Visit each scene graph element ordered by DFS, also called post order traversal.
* Delegates to {@link #depthFirstTraversal(com.jme3.scene.SceneGraphVisitor, boolean) }
* with {@code preOrder} set to {@code false}.
* @param visitor
*/
public abstract void depthFirstTraversal(SceneGraphVisitor visitor);
public void depthFirstTraversal(SceneGraphVisitor visitor) {
depthFirstTraversal(visitor, false);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didnt see this one, my comment can be ignored.

}

/**
* Visit each scene graph element using post order traversal if {@code preOrder}
* is {@code false} or using pre order traversal if {@code preOrder} is
* {@code true}.
* @param visitor the visitor to use
* @param preOrder {@code false} for post order, {@code true} for pre order
*/
public abstract void depthFirstTraversal(SceneGraphVisitor visitor, boolean preOrder);

/**
* Visit each scene graph element ordered by BFS
Expand Down