// Path: src/com/htssoft/sploosh/SimpleVorton.java
// public class SimpleVorton extends Vorton {
// 	protected Vector3f position = new Vector3f();
// 	protected Vector3f vort = new Vector3f();
// 	
// 	public SimpleVorton(){};
// 	
// 	public SimpleVorton(Vorton other){
// 		this.position.set(other.getPosition());
// 		this.vort.set(other.getVort());
// 	}
// 	
// 	public void set(Vorton v){
// 		this.position.set(v.getPosition());
// 		this.vort.set(v.getVort());	
// 	}
// 	
// 	@Override
// 	public Vector3f getPosition() {
// 		return position;
// 	}
// 
// 	@Override
// 	public void getPosition(Vector3f store) {
// 		store.set(position);
// 	}
// 
// 	@Override
// 	public void setPosition(Vector3f value) {
// 		position.set(value);
// 	}
// 
// 	@Override
// 	public void getVort(Vector3f store) {
// 		store.set(vort);
// 	}
// 
// 	@Override
// 	public Vector3f getVort() {
// 		return vort;
// 	}
// 
// 	@Override
// 	public void setVort(Vector3f value) {
// 		vort.set(value);
// 	}
// }
// 
// Path: src/com/htssoft/sploosh/Vorton.java
// public abstract class Vorton {
// 	
// 	/**
// 	 * Get a reference to the current position.
// 	 * 
// 	 * For a {@link VortonSpace.BufferedVorton}, this is the back buffer position.
// 	 * */
// 	abstract public Vector3f getPosition();
// 	
// 	/**
// 	 * Get the value of the current position.
// 	 * */
// 	abstract public void getPosition(Vector3f store);
// 	
// 	/**
// 	 * Set the position. For a {@link VortonSpace.BufferedVorton}, this will
// 	 * update the front buffer. 
// 	 * */
// 	abstract public void setPosition(Vector3f value);
// 	
// 	/**
// 	 * Get the value of the current vorticity.
// 	 * */
// 	abstract public void getVort(Vector3f store);
// 	
// 	/**
// 	 * Get a reference to the current vorticity.
// 	 * 
// 	 * For a {@link VortonSpace.BufferedVorton}, this is the back buffer vorticity.
// 	 * */
// 	abstract public Vector3f getVort();
// 	
// 	/**
// 	 * Set the vorticity. For a {@link VortonSpace.BufferedVorton}, this will
// 	 * update the front buffer.
// 	 * */
// 	abstract public void setVort(Vector3f value);
// 	
// 	public String toString(){
// 		return String.format("P:%s,V:%s", getPosition().toString(), getVort().toString());
// 	}
// }


import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.htssoft.sploosh.SimpleVorton;
import com.htssoft.sploosh.Vorton;
import com.jme3.math.Vector3f;
	 * Print an pre-order traversal of the tree.
	 * */
	public void printTraversal(int depth){
		System.out.print("\n");
		OTree.printTab(depth);
		System.out.print(depth + " Bounds: [" + cellMin + " " + cellMax + "]");
		if (items != null){
			OTree.printTab(depth);
			System.out.print("I");
			for (Vorton v : items){
				System.out.print("[" + v.toString() + "], ");
			}
		}
		if (children != null){
			OTree.printTab(depth);
			for (OTreeNode node : children){
				if (node == null){
					continue;
				}
				node.printTraversal(depth+1);
			}
		}
	}
	
	/**
	 * Get all nodes in the tree by pre-order.
	 * */
	public void preOrderTraverse(List<OTreeNode> out){
		out.add(this);
		if (children == null){
// Path: src/com/htssoft/sploosh/SimpleVorton.java
// public class SimpleVorton extends Vorton {
// 	protected Vector3f position = new Vector3f();
// 	protected Vector3f vort = new Vector3f();
// 	
// 	public SimpleVorton(){};
// 	
// 	public SimpleVorton(Vorton other){
// 		this.position.set(other.getPosition());
// 		this.vort.set(other.getVort());
// 	}
// 	
// 	public void set(Vorton v){
// 		this.position.set(v.getPosition());
// 		this.vort.set(v.getVort());	
// 	}
// 	
// 	@Override
// 	public Vector3f getPosition() {
// 		return position;
// 	}
// 
// 	@Override
// 	public void getPosition(Vector3f store) {
// 		store.set(position);
// 	}
// 
// 	@Override
// 	public void setPosition(Vector3f value) {
// 		position.set(value);
// 	}
// 
// 	@Override
// 	public void getVort(Vector3f store) {
// 		store.set(vort);
// 	}
// 
// 	@Override
// 	public Vector3f getVort() {
// 		return vort;
// 	}
// 
// 	@Override
// 	public void setVort(Vector3f value) {
// 		vort.set(value);
// 	}
// }
// 
// Path: src/com/htssoft/sploosh/Vorton.java
// public abstract class Vorton {
// 	
// 	/**
// 	 * Get a reference to the current position.
// 	 * 
// 	 * For a {@link VortonSpace.BufferedVorton}, this is the back buffer position.
// 	 * */
// 	abstract public Vector3f getPosition();
// 	
// 	/**
// 	 * Get the value of the current position.
// 	 * */
// 	abstract public void getPosition(Vector3f store);
// 	
// 	/**
// 	 * Set the position. For a {@link VortonSpace.BufferedVorton}, this will
// 	 * update the front buffer. 
// 	 * */
// 	abstract public void setPosition(Vector3f value);
// 	
// 	/**
// 	 * Get the value of the current vorticity.
// 	 * */
// 	abstract public void getVort(Vector3f store);
// 	
// 	/**
// 	 * Get a reference to the current vorticity.
// 	 * 
// 	 * For a {@link VortonSpace.BufferedVorton}, this is the back buffer vorticity.
// 	 * */
// 	abstract public Vector3f getVort();
// 	
// 	/**
// 	 * Set the vorticity. For a {@link VortonSpace.BufferedVorton}, this will
// 	 * update the front buffer.
// 	 * */
// 	abstract public void setVort(Vector3f value);
// 	
// 	public String toString(){
// 		return String.format("P:%s,V:%s", getPosition().toString(), getVort().toString());
// 	}
// }


// Path: src/com/htssoft/sploosh/space/OTreeNode.java
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.htssoft.sploosh.SimpleVorton;
import com.htssoft.sploosh.Vorton;
import com.jme3.math.Vector3f;

	 * Print an pre-order traversal of the tree.
	 * */
	public void printTraversal(int depth){
		System.out.print("\n");
		OTree.printTab(depth);
		System.out.print(depth + " Bounds: [" + cellMin + " " + cellMax + "]");
		if (items != null){
			OTree.printTab(depth);
			System.out.print("I");
			for (Vorton v : items){
				System.out.print("[" + v.toString() + "], ");
			}
		}
		if (children != null){
			OTree.printTab(depth);
			for (OTreeNode node : children){
				if (node == null){
					continue;
				}
				node.printTraversal(depth+1);
			}
		}
	}
	
	/**
	 * Get all nodes in the tree by pre-order.
	 * */
	public void preOrderTraverse(List<OTreeNode> out){
		out.add(this);
		if (children == null){
			return;