/// <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> /// An empty voxel octree. /// </summary> public OctreeVoxelMesh() : base() { this._childs = new IVoxelMesh[2, 2, 2]; this._format = OctreeVoxelMeshFormat.Empty; this._builder = new OctreeNodeBuilder(); }
/// <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); }