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;