Exemplo n.º 1
0
        public static IEnumerable <Index3D> OscillateRange(
            Index3D startIndex, Index3D dimensions, OscillationOrder3D order = OscillationOrder3D.XYZ)
        {
            Contracts.Requires.That(dimensions.IsAllPositiveOrZero());

            switch (order)
            {
            case OscillationOrder3D.XYZ: return(OscillateRangeXYZ(startIndex, dimensions));

            case OscillationOrder3D.XZY: return(OscillateRangeXZY(startIndex, dimensions));

            case OscillationOrder3D.YXZ: return(OscillateRangeYXZ(startIndex, dimensions));

            case OscillationOrder3D.YZX: return(OscillateRangeYZX(startIndex, dimensions));

            case OscillationOrder3D.ZXY: return(OscillateRangeZXY(startIndex, dimensions));

            case OscillationOrder3D.ZYX: return(OscillateRangeZYX(startIndex, dimensions));

            default: throw InvalidEnumArgument.CreateException(nameof(order), order);
            }
        }
 public ChunkKeyCollection(IStageBounds bounds, OscillationOrder3D order)
     : this(bounds, (start, dimensions) => Index.OscillateRange(start, dimensions, order))
 {
 }