public OctreeChunckBuilder(OctreeChunckBuilder toCopy)
 {
   this._chunckFormat = toCopy._chunckFormat;
 }
 public OctreeChunckBuilder() {
   this._chunckFormat = OctreeVoxelMeshFormat.Tiny;
 }
 public OctreeChunckBuilder(OctreeVoxelMeshFormat format)
 {
   this._chunckFormat = format;
 }
 /// <summary>
 ///   An empty voxel octree.
 /// </summary>
 public OctreeVoxelMesh()
   : base()
 {
   this._childs = new IVoxelMesh[2, 2, 2];
   this._format = OctreeVoxelMeshFormat.Empty;
   this._builder = new OctreeNodeBuilder();
 }
 /// <summary>
 ///   A custom voxel octree.
 /// </summary>
 /// <param name="format"></param>
 public OctreeVoxelMesh(OctreeVoxelMeshFormat format)
   : base()
 {
   this._childs = new IVoxelMesh[2, 2, 2];
   this._format = format;
   this._builder = new OctreeNodeBuilder();
 }
    /// <summary>
    ///   Copy an existing octree.
    /// </summary>
    /// <param name="toCopy"></param>
    public OctreeVoxelMesh(OctreeVoxelMesh toCopy)
      : base()
    {
      this._childs = new IVoxelMesh[2, 2, 2];
      this._format = toCopy._format;
      this._builder = (IOctreeNodeBuilder) toCopy._builder.Copy();

      this.Copy(toCopy.Start, toCopy.End, VoxelLocation.Zero, toCopy);
    }
    /// <summary>
    ///   Copy an existing voxel mesh.
    /// </summary>
    /// <param name="toCopy"></param>
    public OctreeVoxelMesh(IVoxelMesh toCopy)
      : base()
    {
      this._childs = new IVoxelMesh[2, 2, 2];
      this._format = OctreeVoxelMeshFormat.GetFormat(toCopy.Width, toCopy.Height, toCopy.Depth);
      this._builder = new OctreeNodeBuilder();

      this.Copy(toCopy.Start, toCopy.End, VoxelLocation.Zero, toCopy);
    }
 /// <summary>
 ///   Copy an existing builder.
 /// </summary>
 /// <param name="toCopy"></param>
 public OctreeNodeBuilder(OctreeNodeBuilder toCopy)
 {
   this._format = toCopy._format;
   this._minFormat = toCopy._minFormat;
 }
 /// <summary>
 ///   A custom basic builder.
 /// </summary>
 /// <param name="minNodeSize"></param>
 public OctreeNodeBuilder(OctreeVoxelMeshFormat minFormat)
 {
   this._format = OctreeVoxelMeshFormat.Empty;
   this._minFormat = minFormat;
 }
 /// <summary>
 ///   A basic builder that stop to produce octrees for
 /// 8x8x8 (or less) box.
 /// </summary>
 public OctreeNodeBuilder()
 {
   this._format = OctreeVoxelMeshFormat.Empty;
   this._minFormat = OctreeVoxelMeshFormat.GetFormat(4,4,4);
 }