@@ -0,0 +1,992 @@
+package net.imagej.ops.views;%0A%0Aimport net.imagej.ops.OpService;%0Aimport net.imagej.ops.view.ViewOps.Offset;%0Aimport net.imagej.ops.view.ViewOps.View;%0Aimport net.imglib2.Interval;%0Aimport net.imglib2.RandomAccessible;%0Aimport net.imglib2.view.IntervalView;%0A%0Aimport org.scijava.ItemIO;%0Aimport org.scijava.plugin.Parameter;%0A%0Apublic class OffsetInterval%3CT%3E extends%0A%09%09AbstractView%3CRandomAccessible%3CT%3E, IntervalView%3CT%3E%3E implements%0A%09%09Offset%3CRandomAccessible%3CT%3E, IntervalView%3CT%3E%3E %7B%0A%0A%09@Parameter(type = ItemIO.INPUT)%0A%09private Interval interval;%0A%0A%09@Parameter%0A%09private OpService ops;%0A%0A%09@Override%0A%09public IntervalView%3CT%3E compute(RandomAccessible%3CT%3E input) %7B%0A%09%09final int n = input.numDimensions();%0A%09%09final long%5B%5D offset = new long%5Bn%5D;%0A%09%09final long%5B%5D min = new long%5Bn%5D;%0A%09%09final long%5B%5D max = new long%5Bn%5D;%0A%09%09interval.min(offset);%0A%09%09interval.max(max);%0A%09%09for (int d = 0; d %3C n; ++d)%0A%09%09%09max%5Bd%5D -= offset%5Bd%5D;%0A%0A%09%09return (IntervalView%3CT%3E) ops.run(View.class,%0A%09%09%09%09ops.run(Offset.class, input, offset), min, max);%0A%09%7D%0A%0A%7D%0A

Add implementation of offset with interval as input.