diff --git a/src/main/java/bdv/viewer/render/AccumulateProjector.java b/src/main/java/bdv/viewer/render/AccumulateProjector.java index 740036805c654c4ab1e9b2ecd359e121b0d252b0..91be77098862c3dec46629db2bb75981534b836b 100644 --- a/src/main/java/bdv/viewer/render/AccumulateProjector.java +++ b/src/main/java/bdv/viewer/render/AccumulateProjector.java @@ -48,12 +48,12 @@ public abstract class AccumulateProjector< A, B > implements VolatileProjector * Projectors that render the source images to accumulate. * For every rendering pass, ({@link VolatileProjector#map(boolean)}) is run on each source projector that is not yet {@link VolatileProjector#isValid() valid}. */ - private final ArrayList< VolatileProjector > sourceProjectors; + private final List< VolatileProjector > sourceProjectors; /** * The source images to accumulate */ - private final ArrayList< IterableInterval< ? extends A > > sources; + private final List< IterableInterval< ? extends A > > sources; /** * The target interval. Pixels of the target interval should be set by @@ -84,8 +84,8 @@ public abstract class AccumulateProjector< A, B > implements VolatileProjector private volatile boolean valid = false; public AccumulateProjector( - final ArrayList< VolatileProjector > sourceProjectors, - final ArrayList< ? extends RandomAccessible< ? extends A > > sources, + final List< VolatileProjector > sourceProjectors, + final List< ? extends RandomAccessible< ? extends A > > sources, final RandomAccessibleInterval< B > target, final int numThreads, final ExecutorService executorService ) diff --git a/src/main/java/bdv/viewer/render/AccumulateProjectorARGB.java b/src/main/java/bdv/viewer/render/AccumulateProjectorARGB.java index 7c22a70c0794c28999bee444a398c11aae09a37c..c92260f53354d218e78dc68740ac5e268ce22dfc 100644 --- a/src/main/java/bdv/viewer/render/AccumulateProjectorARGB.java +++ b/src/main/java/bdv/viewer/render/AccumulateProjectorARGB.java @@ -49,9 +49,9 @@ public class AccumulateProjectorARGB implements VolatileProjector { @Override public VolatileProjector createProjector( - final ArrayList< VolatileProjector > sourceProjectors, - final ArrayList< SourceAndConverter< ? > > sources, - final ArrayList< ? extends RandomAccessible< ? extends ARGBType > > sourceScreenImages, + final List< VolatileProjector > sourceProjectors, + final List< SourceAndConverter< ? > > sources, + final List< ? extends RandomAccessible< ? extends ARGBType > > sourceScreenImages, final RandomAccessibleInterval< ARGBType > targetScreenImage, final int numThreads, final ExecutorService executorService ) @@ -69,8 +69,8 @@ public class AccumulateProjectorARGB implements VolatileProjector public static class AccumulateProjectorARGBGeneric extends AccumulateProjector< ARGBType, ARGBType > { public AccumulateProjectorARGBGeneric( - final ArrayList< VolatileProjector > sourceProjectors, - final ArrayList< ? extends RandomAccessible< ? extends ARGBType > > sources, + final List< VolatileProjector > sourceProjectors, + final List< ? extends RandomAccessible< ? extends ARGBType > > sources, final RandomAccessibleInterval< ARGBType > target, final int numThreads, final ExecutorService executorService ) @@ -110,12 +110,12 @@ public class AccumulateProjectorARGB implements VolatileProjector * Projectors that render the source images to accumulate. * For every rendering pass, ({@link VolatileProjector#map(boolean)}) is run on each source projector that is not yet {@link VolatileProjector#isValid() valid}. */ - private final ArrayList< VolatileProjector > sourceProjectors; + private final List< VolatileProjector > sourceProjectors; /** * The source images to accumulate */ - private final ArrayList< ? extends RandomAccessible< ? extends ARGBType > > sources; + private final List< ? extends RandomAccessible< ? extends ARGBType > > sources; private final int[][] sourceData; @@ -144,8 +144,8 @@ public class AccumulateProjectorARGB implements VolatileProjector private volatile boolean valid = false; public AccumulateProjectorARGB( - final ArrayList< VolatileProjector > sourceProjectors, - final ArrayList< ? extends RandomAccessible< ? extends ARGBType > > sources, + final List< VolatileProjector > sourceProjectors, + final List< ? extends RandomAccessible< ? extends ARGBType > > sources, final RandomAccessibleInterval< ARGBType > target, final int numThreads, final ExecutorService executorService ) diff --git a/src/main/java/bdv/viewer/render/AccumulateProjectorFactory.java b/src/main/java/bdv/viewer/render/AccumulateProjectorFactory.java index 4343f596c2b6c0cf240b69cc15c61344a6439d47..8a141730781be7eca6c1decbed8fa39c48fbb94d 100644 --- a/src/main/java/bdv/viewer/render/AccumulateProjectorFactory.java +++ b/src/main/java/bdv/viewer/render/AccumulateProjectorFactory.java @@ -30,6 +30,7 @@ package bdv.viewer.render; import bdv.viewer.SourceAndConverter; import java.util.ArrayList; +import java.util.List; import java.util.concurrent.ExecutorService; import bdv.viewer.Source; @@ -54,9 +55,9 @@ public interface AccumulateProjectorFactory< A > * {@link ExecutorService} to use for rendering. may be null. */ default VolatileProjector createProjector( - final ArrayList< VolatileProjector > sourceProjectors, - final ArrayList< SourceAndConverter< ? > > sources, - final ArrayList< ? extends RandomAccessible< ? extends A > > sourceScreenImages, + final List< VolatileProjector > sourceProjectors, + final List< SourceAndConverter< ? > > sources, + final List< ? extends RandomAccessible< ? extends A > > sourceScreenImages, final RandomAccessibleInterval< A > targetScreenImage, final int numThreads, final ExecutorService executorService ) @@ -64,11 +65,17 @@ public interface AccumulateProjectorFactory< A > final ArrayList< Source< ? > > spimSources = new ArrayList<>(); for ( SourceAndConverter< ? > source : sources ) spimSources.add( source.getSpimSource() ); - return createAccumulateProjector( sourceProjectors, spimSources, sourceScreenImages, targetScreenImage, numThreads, executorService ); + final ArrayList< VolatileProjector > sp = sourceProjectors instanceof ArrayList + ? ( ArrayList ) sourceProjectors + : new ArrayList<>( sourceProjectors ); + final ArrayList< ? extends RandomAccessible< ? extends A > > si = sourceScreenImages instanceof ArrayList + ? ( ArrayList ) sourceScreenImages + : new ArrayList<>( sourceScreenImages ); + return createAccumulateProjector( sp, spimSources, si, targetScreenImage, numThreads, executorService ); } /** - * @deprecated Use {@link #createProjector(ArrayList, ArrayList, ArrayList, RandomAccessibleInterval, int, ExecutorService)} instead. + * @deprecated Use {@link #createProjector(List, List, List, RandomAccessibleInterval, int, ExecutorService)} instead. * * @param sourceProjectors * projectors that will be used to render {@code sources}.