%% Funzione che calcola i segmenti della stella
function SegStar = CalcoloStar_Report(X_TuL,Z_TuL,Verso,Segmenti,SegStar,dim)

X1 = X_TuL(:,1);
Z1 = Z_TuL(:,1);
X2 = X_TuL(:,1);
Z2 = Z_TuL(:,1);
X1f = X_TuL(:,end);
Z1f = Z_TuL(:,end);
X2f = X_TuL(:,end);
Z2f = Z_TuL(:,end);
for J = 1:dim
   N1 = Segmenti(J,1); % Numero primo punto
   N1b = Segmenti(J,2); % Numero primo punto b
   C1 = isnan(Segmenti(J,2)); % cerco se la seconda colonna è un NaN
   N2 = Segmenti(J,3); % Numero secondo punto
   [~,chc] = size(Segmenti);
   if chc == 3 % non c'è la quarta colonna
       C2 = 1;
   else
        N2b = Segmenti(J,4); % Numero secondo punto b
        C2 = isnan(Segmenti(J,4)); % cerco se la quarta colonna è un NaN
   end
   if C1 == 0 % uso la media fra due nodi per il punto di inizio
      X1(N1,1) = (X_TuL(N1,1) + X_TuL(N1b,1))/2;
      X1f(N1,end) = (X_TuL(N1,end) + X_TuL(N1b,end))/2;       
      Z1(N1,1) = (Z_TuL(N1,1) + Z_TuL(N1b,1))/2;
      Z1f(N1,end) = (Z_TuL(N1,end) + Z_TuL(N1b,end))/2;
   end 
   if C2 == 0 % uso la media fra due nodi per il punto di arrivo
      X2(N2,1) = (X_TuL(N2,1) + X_TuL(N2b,1))/2;
      X2f(N2,end) = (X_TuL(N2,end) + X_TuL(N2b,end))/2;
      Z2(N2,1) = (Z_TuL(N2,1) + Z_TuL(N2b,1))/2;
      Z2f(N2,end) = (Z_TuL(N2,end) + Z_TuL(N2b,end))/2;
   end 
   if Verso(J,1) && Verso (J,2) == 1 % Calcolo Orario per entrambi i punti (standard)
      S_fin(J,1) = ((X1f(N1)- X2f(N2)).^2+(Z1f(N1)-Z2f(N2)).^2).^0.5;
      S_ini(J,1) = ((X1(N1)- X2(N2)).^2+(Z1(N1)-Z2(N2)).^2).^0.5;
      SegStar(J,1) = S_fin(J,1) - S_ini(J,1);
   end
end
end
