From 640bf98521c7609ba352b4c2f380eddb18df92b2 Mon Sep 17 00:00:00 2001
From: Nicola Vigano <nicola.vigano@esrf.fr>
Date: Mon, 3 Sep 2018 11:12:04 +0200
Subject: [PATCH] Fixed a couple of bug with the latest changes in the grain
 structure

Signed-off-by: Nicola Vigano <nicola.vigano@esrf.fr>
---
 4_grains/gtCalculateGrain.m                            | 10 +++++++---
 4_grains/gtGrainAllblobsFilterOrder.m                  |  4 +++-
 zUtil_Deformation/Gt6DReconstructionAlgorithmFactory.m |  9 +--------
 zUtil_Deformation/gtDefShapeFunctionsFwdProj.m         |  4 ++--
 4 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/4_grains/gtCalculateGrain.m b/4_grains/gtCalculateGrain.m
index 834a1394..10d28f66 100644
--- a/4_grains/gtCalculateGrain.m
+++ b/4_grains/gtCalculateGrain.m
@@ -123,9 +123,13 @@ for det_ind = app.det_ind
     end
 
     if (is_topotomo && isempty(app.pl_ind))
-        warning('gtCalculateGrain:wrong_argument', ...
-            'When mode is "topotomo", "pl_ind" should also be pased');
-        continue
+        if (~isfield(acq, 'pl_ind') || isempty(acq.pl_ind))
+            warning('gtCalculateGrain:wrong_argument', ...
+                'When mode is "topotomo", "pl_ind" should also be pased');
+            continue
+        else
+            app.pl_ind = acq.pl_ind;
+        end
     end
 
     omstep = gtAcqGetOmegaStep(parameters, det_ind);
diff --git a/4_grains/gtGrainAllblobsFilterOrder.m b/4_grains/gtGrainAllblobsFilterOrder.m
index 34af0f68..90e070c5 100644
--- a/4_grains/gtGrainAllblobsFilterOrder.m
+++ b/4_grains/gtGrainAllblobsFilterOrder.m
@@ -20,7 +20,7 @@ function gr = gtGrainAllblobsFilterOrder(gr, refgr_omind, det_ind)
         for ii_f = 1:numel(fnames)
             fname = fnames{ii_f};
             switch(fname)
-                case 'srot'
+                case {'srot', 'rot_s2l', 'rot_l2s'}
                     srot = gr.allblobs(ii_d).(fname);
                     srot(:, :, refgr_omind_ind) = srot(:, :, gr_omind_ind);
                     gr.allblobs(ii_d).(fname) = srot;
@@ -32,6 +32,8 @@ function gr = gtGrainAllblobsFilterOrder(gr, refgr_omind, det_ind)
                         prop(refgr_omind_ind, :) = prop(gr_omind_ind, :);
                         gr.allblobs(ii_d).detector.(subfname) = prop;
                     end
+                case 'type'
+                    % Do nothing
                 otherwise
                     prop = gr.allblobs(ii_d).(fname);
                     prop(refgr_omind_ind, :) = prop(gr_omind_ind, :);
diff --git a/zUtil_Deformation/Gt6DReconstructionAlgorithmFactory.m b/zUtil_Deformation/Gt6DReconstructionAlgorithmFactory.m
index 89b95e99..1346e58b 100644
--- a/zUtil_Deformation/Gt6DReconstructionAlgorithmFactory.m
+++ b/zUtil_Deformation/Gt6DReconstructionAlgorithmFactory.m
@@ -459,9 +459,6 @@ classdef Gt6DReconstructionAlgorithmFactory < handle
             is_topotomo = strcmpi(self.parameters.acq(det_ind).type, 'topotomo');
 
             ref_gr = sampler.get_reference_grain();
-            if (is_topotomo)
-                ref_gr_topo = sampler.get_reference_grain_topotomo();
-            end
 
             [orients, orients_ss] = sampler.get_orientations(det_ind);
 
@@ -490,11 +487,7 @@ classdef Gt6DReconstructionAlgorithmFactory < handle
             fprintf(' - Dealing with blobs/scattering intensities:\n')
             if (self.use_predicted_scatter_ints)
                 fprintf('   * Computing families'' scattering intensities\n')
-                if (is_topotomo)
-                    [scatter_ints_avg, scatter_ints_ors] = self.get_scattering_intensities(ref_gr_topo, ors_allblobs, det_ind);
-                else
-                    [scatter_ints_avg, scatter_ints_ors] = self.get_scattering_intensities(ref_gr, ors_allblobs, det_ind);
-                end
+                [scatter_ints_avg, scatter_ints_ors] = self.get_scattering_intensities(ref_gr, ors_allblobs, det_ind);
             else
                 fprintf('   * Using blobs'' intensities\n')
                 scatter_ints_avg = [bl(:).intensity]';
diff --git a/zUtil_Deformation/gtDefShapeFunctionsFwdProj.m b/zUtil_Deformation/gtDefShapeFunctionsFwdProj.m
index 7ff0a219..e785e6ee 100644
--- a/zUtil_Deformation/gtDefShapeFunctionsFwdProj.m
+++ b/zUtil_Deformation/gtDefShapeFunctionsFwdProj.m
@@ -115,7 +115,7 @@ function shape_funcs = gtDefShapeFunctionsFwdProj(sampler, varargin)
     fedpars.ref_eta = ref_gr.allblobs(conf.det_ind).eta;
 
     % Only one lattice allowed for the moment!
-    num_ors = numel(sampler.lattice(conf.det_ind).gr);
+    num_ors = size(sampler.R_vectors, 1);
     shape_funcs = cell(num_ors, 1);
 
     fprintf('Computing %s shape functions: ', upper(conf.shape_function_type))
@@ -123,7 +123,7 @@ function shape_funcs = gtDefShapeFunctionsFwdProj(sampler, varargin)
     for ii_g = 1:num_ors
         num_chars = fprintf('%03d/%03d', ii_g, num_ors);
 
-        or = sampler.lattice(conf.det_ind).gr{ii_g};
+        or = sampler.lattice.gr{ii_g};
 
         or_gv = gv;
         or_gv.d = gtMathsRodSum(gv.d, or.R_vector');
-- 
GitLab