diff --git a/src/main/java/cz/it4i/qcmp/io/BufferInputData.java b/src/main/java/cz/it4i/qcmp/io/BufferInputData.java index 3b263a20697aabeb2b80af99bd30952eaa41ed1f..094123e2c13b95159ead08793f62e521a7b13352 100644 --- a/src/main/java/cz/it4i/qcmp/io/BufferInputData.java +++ b/src/main/java/cz/it4i/qcmp/io/BufferInputData.java @@ -1,6 +1,6 @@ package cz.it4i.qcmp.io; -import cz.it4i.qcmp.data.V3i; +import cz.it4i.qcmp.data.HyperStackDimensions; /** * Input data backed by the buffer object. @@ -17,19 +17,16 @@ public class BufferInputData extends InputData { /** * Create input data backed by buffer object. * - * @param imageBuffers Image buffer references. - * @param imageDimensions Image dimensions. - * @param pixelType Image pixel type. - * @param cacheHint Name of the image used in caching. + * @param imageBuffers Image buffer references. + * @param datasetDimensions Dataset dimensions. + * @param cacheHint Name of the image used in caching. */ public BufferInputData(final Object[] imageBuffers, - final V3i imageDimensions, - final PixelType pixelType, + final HyperStackDimensions datasetDimensions, final String cacheHint) { + super(datasetDimensions); this.imageBuffers = imageBuffers; setDataLoaderType(DataLoaderType.ImageJBufferLoader); - setDimension(imageDimensions); - setPixelType(pixelType); this.cacheHint = cacheHint; } diff --git a/src/main/java/cz/it4i/qcmp/io/CallbackInputData.java b/src/main/java/cz/it4i/qcmp/io/CallbackInputData.java index ef046c29022f0cd371344c1cd9f01ddd370e1e16..cfe9c021eb7eedafd14538e5e336d3d0708c51ab 100644 --- a/src/main/java/cz/it4i/qcmp/io/CallbackInputData.java +++ b/src/main/java/cz/it4i/qcmp/io/CallbackInputData.java @@ -1,6 +1,6 @@ package cz.it4i.qcmp.io; -import cz.it4i.qcmp.data.V3i; +import cz.it4i.qcmp.data.HyperStackDimensions; public class CallbackInputData extends InputData { @@ -22,14 +22,21 @@ public class CallbackInputData extends InputData { int getValueAt(final int x, final int y, final int z); } + /** + * Create very generic loader, which load data by executing callbacks with parameters. + * + * @param pixelLoadCallback Object with callbacks. + * @param datasetDimensions Dataset dimensions. + * @param cacheHint Qcmp cache file name. + */ public CallbackInputData(final LoadCallback pixelLoadCallback, - final V3i dimensions, + final HyperStackDimensions datasetDimensions, final String cacheHint) { + super(datasetDimensions); this.pixelLoadCallback = pixelLoadCallback; this.cacheHint = cacheHint; setDataLoaderType(DataLoaderType.CallbackLoader); setPixelType(PixelType.Gray16); - setDimension(dimensions); } @Override @@ -37,6 +44,11 @@ public class CallbackInputData extends InputData { return cacheHint; } + /** + * Get the pixel value callback object. + * + * @return Callback object. + */ public final LoadCallback getPixelLoadCallback() { return pixelLoadCallback; } diff --git a/src/main/java/cz/it4i/qcmp/io/FileInputData.java b/src/main/java/cz/it4i/qcmp/io/FileInputData.java index fccce4c13c494939461ebcb49207daa73c227d53..1d1186a49c7f638410e3e054ab9102192a85efb4 100644 --- a/src/main/java/cz/it4i/qcmp/io/FileInputData.java +++ b/src/main/java/cz/it4i/qcmp/io/FileInputData.java @@ -1,8 +1,7 @@ package cz.it4i.qcmp.io; -/** - * Input data backed by the file. - */ +import cz.it4i.qcmp.data.HyperStackDimensions; + public class FileInputData extends InputData { /** @@ -13,16 +12,19 @@ public class FileInputData extends InputData { /** * Create input data backed by data file. * - * @param filePath + * @param filePath Path to the file. + * @param datasetDimensions Dataset dimensions. */ - public FileInputData(final String filePath) { + public FileInputData(final String filePath, + final HyperStackDimensions datasetDimensions) { + super(datasetDimensions); this.filePath = filePath; } /** * Get path to the data file. * - * @return + * @return Path to data file. */ @Override public String getFilePath() { diff --git a/src/main/java/cz/it4i/qcmp/io/FlatBufferInputData.java b/src/main/java/cz/it4i/qcmp/io/FlatBufferInputData.java index 3cad98b4a9c8680da0d14429184c4fb8bd44eb23..490e694e4099a150a8f0469d45e5f8ee8e1ba8d1 100644 --- a/src/main/java/cz/it4i/qcmp/io/FlatBufferInputData.java +++ b/src/main/java/cz/it4i/qcmp/io/FlatBufferInputData.java @@ -1,6 +1,6 @@ package cz.it4i.qcmp.io; -import cz.it4i.qcmp.data.V3i; +import cz.it4i.qcmp.data.HyperStackDimensions; /** * Input data backed by the single buffer object. @@ -20,19 +20,16 @@ public class FlatBufferInputData extends InputData { /** * Create input data backed by buffer object. * - * @param imageBuffer Image buffer reference. - * @param imageDimensions Image dimensions. - * @param pixelType Image pixel type. - * @param cacheHint Name of the image used in caching. + * @param imageBuffer Image buffer reference. + * @param datasetDimensions Dataset dimensions. + * @param cacheHint Name of the image used in caching. */ public FlatBufferInputData(final Object imageBuffer, - final V3i imageDimensions, - final PixelType pixelType, + final HyperStackDimensions datasetDimensions, final String cacheHint) { + super(datasetDimensions); this.imageBuffer = imageBuffer; setDataLoaderType(DataLoaderType.FlatBufferLoader); - setDimension(imageDimensions); - setPixelType(pixelType); this.cacheHint = cacheHint; } diff --git a/src/main/java/cz/it4i/qcmp/io/InputData.java b/src/main/java/cz/it4i/qcmp/io/InputData.java index 0cda8309055e301d3aa15236a757a811d9227c5e..1441b18480aa59d39f3bed866c4db5b545609f06 100644 --- a/src/main/java/cz/it4i/qcmp/io/InputData.java +++ b/src/main/java/cz/it4i/qcmp/io/InputData.java @@ -1,7 +1,7 @@ package cz.it4i.qcmp.io; +import cz.it4i.qcmp.data.HyperStackDimensions; import cz.it4i.qcmp.data.Range; -import cz.it4i.qcmp.data.V3i; /** * Information about the input file. @@ -15,6 +15,7 @@ public abstract class InputData { CallbackLoader } + // NOTE(Moravec): Supporting this will need a lot of work. If only we had C++ templates. public enum PixelType { Gray16, AnythingElse @@ -32,9 +33,9 @@ public abstract class InputData { private PixelType pixelType = PixelType.Gray16; /** - * Image dimension. + * Dataset dimensions. */ - private V3i dimension; + private HyperStackDimensions dimension; /** * Index of the plane to compress. @@ -46,6 +47,15 @@ public abstract class InputData { */ Range<Integer> planeRange = null; + /** + * Create InputData object with dataset dimensions. + * + * @param datasetDimensions Dataset dimensions. + */ + public InputData(final HyperStackDimensions datasetDimensions) { + this.dimension = datasetDimensions; + } + public boolean isPlaneIndexSet() { return (planeIndex != null); @@ -55,12 +65,11 @@ public abstract class InputData { return (planeRange != null); } - public void setDimension(final V3i dimension) { + public void setDimension(final HyperStackDimensions dimension) { this.dimension = dimension; } - - public V3i getDimensions() { + public HyperStackDimensions getDimensions() { return dimension; } @@ -96,11 +105,10 @@ public abstract class InputData { this.pixelType = pixelType; } - /** - * Override in FileInputData!!! + * This is mostly used by loaders which are backed by file. * - * @return null! + * @return Basic non-overloaded versions always returns null. */ public String getFilePath() { return null;