diff --git a/omero_figure/scripts/omero/figure_scripts/Figure_To_Pdf.py b/omero_figure/scripts/omero/figure_scripts/Figure_To_Pdf.py
index f8065b094..44567b25a 100644
--- a/omero_figure/scripts/omero/figure_scripts/Figure_To_Pdf.py
+++ b/omero_figure/scripts/omero/figure_scripts/Figure_To_Pdf.py
@@ -1265,9 +1265,13 @@ def draw_labels(self, panel, page):
else:
the_z = panel['theZ'] if panel['theZ'] else 0
if format == "pixel":
+ if offset is not None and 1 <= offset:
+ the_z -= offset
label_value = str(the_z + 1)
elif (format == "unit" and size_z
and the_z < size_z):
+ if offset is not None and 1 <= offset:
+ the_z -= offset
z_pos = "%.*f" % (precision,
(the_z * pixel_size_z))
label_value = (z_pos + " " + z_symbol)
diff --git a/omero_figure/templates/figure/index.html b/omero_figure/templates/figure/index.html
index 4cc25126b..d3acbb044 100644
--- a/omero_figure/templates/figure/index.html
+++ b/omero_figure/templates/figure/index.html
@@ -595,6 +595,16 @@
Dynamic properties
Time: [time.seconds; precision=2; offset=3] |
Time: -0.06 s |
+
+ Z index with units (first plane is Z: 0.00 µm), offset by 3 times the Z pixel size |
+ Z: [z.unit; offset=3] |
+ Z: -3.00 µm |
+
+
+ Z index (first plane is Z: 1) offset by 3 |
+ Z: [z.pixel; offset=3] |
+ Z: -2 |
+
Image ID |
Image ID: [image.id] |
diff --git a/src/js/models/panel_model.js b/src/js/models/panel_model.js
index 526b4f612..8f92c926c 100644
--- a/src/js/models/panel_model.js
+++ b/src/js/models/panel_model.js
@@ -298,8 +298,8 @@
text = "", h, m, s;
if (ref_idx) {
- var shift = this.get('deltaT')[parseInt(ref_idx)-1];
- deltaT = shift==null ? deltaT : deltaT-shift;
+ var shift = this.get('deltaT')[parseInt(ref_idx) - 1];
+ deltaT = shift==null ? deltaT : deltaT - shift;
}
var isNegative = (deltaT < 0);
deltaT = Math.abs(deltaT);
@@ -334,6 +334,7 @@
if (["0"+dec_str+" s", "0"+dec_str+" mins", "0:00"+dec_str, "0:00:00"+dec_str].indexOf(text) > -1) {
isNegative = false;
}
+
return (isNegative ? '-' : '') + text;
},
@@ -362,7 +363,7 @@
return text;
},
- get_view_label_text: function(property, format, dec_prec) {
+ get_view_label_text: function(property, format, ref_idx, dec_prec) {
if (format === "px") format = "pixel";
if (property === "w") property = "width";
@@ -399,10 +400,19 @@
}
else {
var theZ = this.get('theZ');
+ var deltaZ = theZ;
+
+ var shift;
+ if (ref_idx) {
+ shift = parseInt(ref_idx)
+ }
+ if(!isNaN(shift)){
+ deltaZ = theZ - shift;
+ }
if (format === "pixel") {
- text = "" + (theZ + 1);
+ text = "" + (deltaZ + 1);
} else if (format === "unit") {
- text = ""+ (theZ * z_size).toFixed(dec_prec) +" "+ z_symbol
+ text = ""+ (deltaZ * z_size).toFixed(dec_prec) +" "+ z_symbol
}
}
return text
diff --git a/src/js/views/panel_view.js b/src/js/views/panel_view.js
index 4c5dc056a..e2bf96bcd 100644
--- a/src/js/views/panel_view.js
+++ b/src/js/views/panel_view.js
@@ -227,7 +227,7 @@
} else if (['x', 'y', 'z', 'width', 'height', 'w', 'h', 'rotation', 'rot'].includes(prop_nf[0])){
format = prop_nf[1] ? prop_nf[1] : "pixel";
precision = param_dict["precision"] !== undefined ? param_dict["precision"] : 2; // decimal places default to 2
- label_value = self.model.get_view_label_text(prop_nf[0], format, precision);
+ label_value = self.model.get_view_label_text(prop_nf[0], format, param_dict["offset"], precision);
} else if (['channels', 'c'].includes(prop_nf[0])) {
label_value = self.model.get_channels_label_text();
} else if (['zoom'].includes(prop_nf[0])) {