public String toStringVerbose(int indent) { String str = "------------------".substring(0, indent) + toString() + "\n"; if (child == null) return str; FastOctnode children = child; while (children != null) { str += children.toStringVerbose(indent + 1); children = children.next; } return str; }
public void generateRenderSet( Geometry[] globalGeomList, Set<Geometry> renderSet, Camera cam, BoundingBox parentBox, boolean isRoot) { tempBox.setCenter(parentBox.getCenter()); tempBox.setXExtent(parentBox.getXExtent()); tempBox.setYExtent(parentBox.getYExtent()); tempBox.setZExtent(parentBox.getZExtent()); if (!isRoot) { findChildBound(tempBox, getSide()); } tempBox.setCheckPlane(0); cam.setPlaneState(0); Camera.FrustumIntersect result = cam.contains(tempBox); if (result != Camera.FrustumIntersect.Outside) { if (length != 0) { int start = getOffset(); int end = start + length; for (int i = start; i < end; i++) { renderSet.add(globalGeomList[i]); } } if (child == null) return; FastOctnode node = child; float x = tempBox.getCenter().x; float y = tempBox.getCenter().y; float z = tempBox.getCenter().z; float ext = tempBox.getXExtent(); while (node != null) { if (result == Camera.FrustumIntersect.Inside) { node.generateRenderSetNoCheck(globalGeomList, renderSet, cam); } else { node.generateRenderSet(globalGeomList, renderSet, cam, tempBox, false); } tempBox.getCenter().set(x, y, z); tempBox.setXExtent(ext); tempBox.setYExtent(ext); tempBox.setZExtent(ext); node = node.next; } } }
private void generateRenderSetNoCheck( Geometry[] globalGeomList, Set<Geometry> renderSet, Camera cam) { if (length != 0) { int start = getOffset(); int end = start + length; for (int i = start; i < end; i++) { renderSet.add(globalGeomList[i]); } } if (child == null) return; FastOctnode node = child; while (node != null) { node.generateRenderSetNoCheck(globalGeomList, renderSet, cam); node = node.next; } }