예제 #1
0
 internal DimensionDescription(int length, DimensionAssignment assignment, IndexGenerator indexGenerator)
 {
     this.length = length;
     Assignment = assignment;
     this.indexGenerator = indexGenerator;
 }
예제 #2
0
 internal DimensionDescription(int max, DimensionAssignment assignment, IndexGenerator indexGenerator)
 {
     Max = max;
     Assignment = assignment;
     this.indexGenerator = indexGenerator;
 }
예제 #3
0
 private static DimensionDescription CreateIncrementDescriptionSerpentine(int max, DimensionAssignment assignment, int breadth, Order startSubOrder)
 {
     var generator = new SequenceIndexGenerator(max, 0, breadth, startSubOrder);
     return new DimensionDescription(max, assignment, generator);
 }
예제 #4
0
 private static DimensionDescription CreateIncrementDescriptionCircular(int max, DimensionAssignment assignment)
 {
     var generator = new CircularIndexGenerator(max, 0);
     return new DimensionDescription(max, assignment, generator);
 }
예제 #5
0
 public static DimensionDescription CreateIncrementDescription(int max, DimensionAssignment assignment, TraverseMode mode, int breadth, Order startSubOrder)
 {
     switch (mode)
     {
         case TraverseMode.Serpentine:
             return CreateIncrementDescriptionSerpentine(max, assignment, breadth, startSubOrder);
         case TraverseMode.Circular:
             return CreateIncrementDescriptionCircular(max, assignment);
         default:
             throw new ArgumentException();
     }
 }
예제 #6
0
 public static DimensionDescription CreateIncrementDescription(int max, DimensionAssignment assignment, TraverseMode mode)
 {
     return CreateIncrementDescription(max, assignment, mode, 1, default(Order));
 }
예제 #7
0
 private static DimensionDescription CreateIncrementDescriptionSerpentine(int max, DimensionAssignment assignment)
 {
     var generator = new SequenceIndexGenerator(max, 0);
     return new DimensionDescription(max, assignment, generator);
 }