示例#1
0
  @Override
  public void map() {
    for (int d = 2; d < position.length; ++d) min[d] = max[d] = position[d];

    min[0] = target.min(0);
    min[1] = target.min(1);
    max[0] = target.max(0);
    max[1] = target.max(1);
    final FinalInterval sourceInterval = new FinalInterval(min, max);

    final Cursor<B> targetCursor = target.cursor();
    final RandomAccess<A> sourceRandomAccess = source.randomAccess(sourceInterval);
    sourceRandomAccess.setPosition(position);
    while (targetCursor.hasNext()) {
      final B b = targetCursor.next();
      sourceRandomAccess.setPosition(targetCursor.getLongPosition(0), 0);
      if (numDimensions > 1) sourceRandomAccess.setPosition(targetCursor.getLongPosition(1), 1);
      converter.convert(sourceRandomAccess.get(), b);
    }
  }