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)) { }