From 424eae3659dc2c51ab92b240251c546e0187c117 Mon Sep 17 00:00:00 2001
From: Nicola Vigano <nicola.vigano@esrf.fr>
Date: Thu, 6 Sep 2018 18:39:38 +0200
Subject: [PATCH] gtCalculateGrain: use sample shifts in grain center
 calculation for topotomo

Signed-off-by: Nicola Vigano <nicola.vigano@esrf.fr>
---
 4_grains/gtCalculateGrain.m   | 12 ++++++++++--
 4_grains/gtCalculateGrain_p.m | 10 ++++++++--
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/4_grains/gtCalculateGrain.m b/4_grains/gtCalculateGrain.m
index b3a292c2..f62ec78c 100644
--- a/4_grains/gtCalculateGrain.m
+++ b/4_grains/gtCalculateGrain.m
@@ -421,8 +421,16 @@ for det_ind = app.det_ind
         shifts_sam = 0;
     end
 
-    gcsam_v = gcsam(ones(1, size(rot_l2s, 3)), :) + shifts_sam;
-    gclab_v_t = gtGeoSam2Lab(gcsam_v, rot_s2l, labgeo, samgeo, false)';
+    gcsam_v = gcsam(ones(1, size(rot_s2l, 3)), :) + shifts_sam;
+    if (is_dct)
+        gclab_v_t = gtGeoSam2Lab(gcsam_v, rot_s2l, labgeo, samgeo, false)';
+    elseif (is_topotomo)
+        rot_s2l_tr =  gtGeoDiffractometerTensor(diff, 'sam2lab', false, ...
+            'angles_sam_tilt', tilts, 'angles_rotation', om, 'angles_basetilt', ph);
+
+        gclab_v_t = gtGeoSam2Lab(gcsam_v, rot_s2l_tr, labgeo, samgeo, false)';
+        gclab_v_t(:, 3:4:end)
+    end
 
     % Lorentz factor for the given projections (note that eq. 4.1 from page 36
     % in Henning's book is not correct)
diff --git a/4_grains/gtCalculateGrain_p.m b/4_grains/gtCalculateGrain_p.m
index a171c40b..7ac43ef9 100644
--- a/4_grains/gtCalculateGrain_p.m
+++ b/4_grains/gtCalculateGrain_p.m
@@ -493,11 +493,17 @@ for det_ind = app.det_ind
         shifts_sam = 0;
     end
 
-
     gcsam_v = permute(gcsam, [1 3 2]);
     gcsam_v = gcsam_v(ones(1, size(rot_l2s, 3)/num_grains), :, :);
     gcsam_v = reshape(gcsam_v, [], 3) + shifts_sam;
-    gclab_v_t = gtGeoSam2Lab(gcsam_v, rot_s2l, labgeo, samgeo, false)';
+    if (is_dct)
+        gclab_v_t = gtGeoSam2Lab(gcsam_v, rot_s2l, labgeo, samgeo, false)';
+    elseif (is_topotomo)
+        rot_s2l_tr =  gtGeoDiffractometerTensor(diff, 'sam2lab', false, ...
+            'angles_sam_tilt', tilts, 'angles_rotation', om, 'angles_basetilt', ph);
+
+        gclab_v_t = gtGeoSam2Lab(gcsam_v, rot_s2l_tr, labgeo, samgeo, false)';
+    end
 
     % Lorentz factor for the given projections (note that eq. 4.1 from page 36
     % in Henning's book is not correct)
-- 
GitLab