// constructors
 public Octree(CubeBounds bounds)
 {
     this.Bounds           = bounds;
     this.root             = new OctreeNode <T>(bounds, 0);
     this.MaxValuesPerNode = 8;
 }
 // constructors
 public OctreeNode(CubeBounds bounds, int index, OctreeNode <T> parent = null)
 {
     this.Bounds = bounds;
     this.Index  = index;
     this.parent = parent;
 }