/// <inheritdoc />
        public TVoxel this[Index3D relativeIndex]
        {
            get
            {
                IVoxelProjectionContracts.Indexer(this, relativeIndex);

                return(this.voxels[this.ConvertToAbsoluteIndex(relativeIndex)]);
            }
        }
        /// <inheritdoc />
        public TVoxel GetVoxelAtStageIndex(Index3D stageIndex)
        {
            IVoxelProjectionContracts.GetVoxelAtStageIndex(this, stageIndex);

            return(this.GetVoxelAtAbsoluteIndex(stageIndex - this.stageIndexOrigin));
        }
        /// <inheritdoc />
        public TVoxel GetVoxelAtAbsoluteIndex(Index3D absoluteIndex)
        {
            IVoxelProjectionContracts.GetVoxelAtAbsoluteIndex(this, absoluteIndex);

            return(this.voxels[absoluteIndex]);
        }