]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.proconf.g3d/src/org/simantics/proconf/g3d/tools/ScenegraphLockTraverser.java
latest release (0.41), third attempt
[simantics/3d.git] / org.simantics.proconf.g3d / src / org / simantics / proconf / g3d / tools / ScenegraphLockTraverser.java
1 package org.simantics.proconf.g3d.tools;\r
2 \r
3 import java.util.ArrayList;\r
4 \r
5 import com.jme.scene.Node;\r
6 import com.jme.scene.Spatial;\r
7 \r
8 public class ScenegraphLockTraverser {\r
9         Node root;\r
10         boolean lock;\r
11         public ScenegraphLockTraverser(Node root, boolean lock) {\r
12                 this.root = root;\r
13                 this.lock = lock;\r
14                 lock(root);\r
15         }\r
16         \r
17         private void lock(Spatial spatial) {\r
18                 if (lock)\r
19                         spatial.lock();\r
20                 else\r
21                         spatial.unlock();\r
22                 if (spatial instanceof Node) {\r
23                         Node node = (Node)spatial;\r
24                         ArrayList<Spatial> children = node.getChildren();\r
25                 for (Spatial s : children) {\r
26                         s.lock();\r
27                         lock(s);\r
28                 }\r
29                 }\r
30                 \r
31         }\r
32 }\r