void traverseSwitchChild( int child, HashKey key, int index, SwitchRetained switchRoot, boolean init, boolean swChanged, boolean switchOn, int switchLevel, ArrayList<SwitchState> updateList) { SwitchRetained sw; LinkRetained ln; Object obj; int i, j, k; ArrayList<NodeRetained> childSwitchLinks = childrenSwitchLinks.get(child); for (i = 0; i < childSwitchLinks.size(); i++) { obj = childSwitchLinks.get(i); if (obj instanceof SwitchRetained) { sw = (SwitchRetained) obj; for (j = 0; j < sw.children.size(); j++) { sw.traverseSwitchChild( j, key, index, switchRoot, init, swChanged, switchOn, switchLevel, updateList); } } else { // LinkRetained ln = (LinkRetained) obj; switchKey.set(key); switchKey.append(LinkRetained.plus).append(ln.nodeId); if (ln.sharedGroup.localToVworldKeys != null) { j = switchKey.equals( ln.sharedGroup.localToVworldKeys, 0, ln.sharedGroup.localToVworldKeys.length); if (j < 0) { System.err.println("SharedGroupRetained : Can't find hashKey"); } if (j < ln.sharedGroup.localToVworldKeys.length) { for (k = 0; k < ln.sharedGroup.children.size(); k++) { ln.sharedGroup.traverseSwitchChild( k, ln.sharedGroup.localToVworldKeys[j], j, switchRoot, init, swChanged, switchOn, switchLevel, updateList); } } } } } }
void traverseSwitchParent() { int i; for (i = 0; i < parents.size(); i++) { NodeRetained ln = parents.get(i); if (ln.parentSwitchLink != null) { if (parentSwitchLink instanceof SwitchRetained) { ((SwitchRetained) parentSwitchLink).traverseSwitchParent(); } else if (parentSwitchLink instanceof SharedGroupRetained) { ((SharedGroupRetained) parentSwitchLink).traverseSwitchParent(); } } } }