From 13640ce9c3240f07b328b2f0070e25243d776292 Mon Sep 17 00:00:00 2001
From: Mauco03 <marco.gaibotti@skywarder.eu>
Date: Mon, 17 Feb 2025 08:27:05 +0100
Subject: [PATCH] [handle-value-conversion] Converted parachutes to cell array

---
 .../src/stochParameters/initParameter.m          | 16 ++++++++--------
 .../src/stochParameters/updateData.m             | 16 ++++++++--------
 simulator/mainSimulator.m                        |  2 +-
 simulator/src/stdPlots.m                         |  6 +++---
 utils/rocketpyData/exportRocketpy.m              | 16 ++++++++--------
 5 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/sensitivityAnalysis/src/stochParameters/initParameter.m b/sensitivityAnalysis/src/stochParameters/initParameter.m
index f0066753..621446fb 100644
--- a/sensitivityAnalysis/src/stochParameters/initParameter.m
+++ b/sensitivityAnalysis/src/stochParameters/initParameter.m
@@ -55,28 +55,28 @@ for i = 1:length(parameters)
             parameters(i).value = rocket.inertia(3, :);
             parameters(i).udm = 'kg*m^4';
         case 'drogueSurface'
-            parameters(i).value = rocket.parachutes(1, 1).surface;
+            parameters(i).value = rocket.parachutes{1, 1}.surface;
             parameters(i).udm = 'm2';
         case 'drogueMass'
-            parameters(i).value = rocket.parachutes(1, 1).mass;
+            parameters(i).value = rocket.parachutes{1, 1}.mass;
             parameters(i).udm = 'kg';
         case 'drogueCl'
-            parameters(i).value = rocket.parachutes(1, 1).cl;
+            parameters(i).value = rocket.parachutes{1, 1}.cl;
             parameters(i).udm = '-';
         case 'drogueCd'
-            parameters(i).value = rocket.parachutes(1, 1).cd;
+            parameters(i).value = rocket.parachutes{1, 1}.cd;
             parameters(i).udm = '-';
         case 'mainSurface'
-            parameters(i).value = rocket.parachutes(2, 1).surface;
+            parameters(i).value = rocket.parachutes{2, 1}.surface;
             parameters(i).udm = 'm2';
         case 'mainMass'
-            parameters(i).value = rocket.parachutes(2, 1).mass;
+            parameters(i).value = rocket.parachutes{2, 1}.mass;
             parameters(i).udm = 'kg';
         case 'mainCl'
-            parameters(i).value = rocket.parachutes(2, 1).cl;
+            parameters(i).value = rocket.parachutes{2, 1}.cl;
             parameters(i).udm = '-';
         case 'mainCd'
-            parameters(i).value = rocket.parachutes(2, 1).cd;
+            parameters(i).value = rocket.parachutes{2, 1}.cd;
             parameters(i).udm = '-';
             % rocket geometry --- available with the stability run only
         case 'rocketDiameter'
diff --git a/sensitivityAnalysis/src/stochParameters/updateData.m b/sensitivityAnalysis/src/stochParameters/updateData.m
index 363be07e..6c1c26c8 100644
--- a/sensitivityAnalysis/src/stochParameters/updateData.m
+++ b/sensitivityAnalysis/src/stochParameters/updateData.m
@@ -62,21 +62,21 @@ for i = 1:length(parameters)
         case 'Izz'
             rocket.inertia(3, :) = value;
         case 'drogueSurface'
-            rocket.parachutes(1, 1).surface = value;
+            rocket.parachutes{1, 1}.surface = value;
         case 'drogueMass'
-            rocket.parachutes(1, 1).mass = value;
+            rocket.parachutes{1, 1}.mass = value;
         case 'drogueCl'
-            rocket.parachutes(1, 1).cl = value;
+            rocket.parachutes{1, 1}.cl = value;
         case 'drogueCd'
-            rocket.parachutes(1, 1).cd = value;
+            rocket.parachutes{1, 1}.cd = value;
         case 'mainSurface'
-            rocket.parachutes(2, 1).surface = value;
+            rocket.parachutes{2, 1}.surface = value;
         case 'mainMass'
-            rocket.parachutes(2, 1).mass = value;
+            rocket.parachutes{2, 1}.mass = value;
         case 'mainCl'
-            rocket.parachutes(2, 1).cl = value;
+            rocket.parachutes{2, 1}.cl = value;
         case 'mainCd'
-            rocket.parachutes(2, 1).cd = value;
+            rocket.parachutes{2, 1}.cd = value;
             % rocket geometry --- available with the stability run only
         case 'rocketDiameter'
             rocket.diameter = value;
diff --git a/simulator/mainSimulator.m b/simulator/mainSimulator.m
index 5a14012e..b9ec8978 100644
--- a/simulator/mainSimulator.m
+++ b/simulator/mainSimulator.m
@@ -51,7 +51,7 @@ if isempty(settings), settings = Settings('ode', 'simulator'); end
 Settings.read(settings, options, 'simulator');
 
 %% CHECKS
-if settings.simulator.ballistic && rocket.parachutes(end, 1).finalAltitude ~= 0
+if settings.simulator.ballistic && rocket.parachutes{end, 1}.finalAltitude ~= 0
     error('The landing will be not achived, check the final altitude of the last parachute in config.m')
 end
 if settings.simulator.ballistic && settings.simulator.parafoil
diff --git a/simulator/src/stdPlots.m b/simulator/src/stdPlots.m
index df42c8de..6ef6d686 100644
--- a/simulator/src/stdPlots.m
+++ b/simulator/src/stdPlots.m
@@ -182,7 +182,7 @@ if ~settings.simulator.ballistic
             plots(iPlot) = plot3(xM, yM, zM, 'o',...
                'MarkerSize', 10, 'MarkerFaceColor', colorMarker(:, iMarker) , 'MarkerEdgeColor', 'none');
             
-            labels(iPlot) = strcat("Stage: ", num2str(j), " ", rocket.parachutes(i,j).name  ," opening");
+            labels(iPlot) = strcat("Stage: ", num2str(j), " ", rocket.parachutes{i,j}.name  ," opening");
             iPlot = iPlot + 1;  
             iMarker = iMarker + 1;  
         end
@@ -301,7 +301,7 @@ if ~settings.simulator.ballistic
             subplot(3, 1, 3);
             plots(iPlot) = plot(tDescent, vzDescent);
 
-            legends(iPlot) = strcat( "Stage ", num2str(j), ": ", rocket.parachutes(i, j).name , " trajectory" );
+            legends(iPlot) = strcat( "Stage ", num2str(j), ": ", rocket.parachutes{i, j}.name , " trajectory" );
             iPlot = iPlot + 1;
         end
     end
@@ -470,7 +470,7 @@ if ~settings.simulator.ballistic
             subplot(1, 3, 3); 
             plots(iPlot) = plot(yDescent, zDescent); 
             
-            legends(iPlot) = strcat( "Stage ", num2str(j), ": ", rocket.parachutes(i, j).name , " trajectory" ); 
+            legends(iPlot) = strcat( "Stage ", num2str(j), ": ", rocket.parachutes{i, j}.name , " trajectory" ); 
             iPlot = iPlot + 1; 
         end
      end 
diff --git a/utils/rocketpyData/exportRocketpy.m b/utils/rocketpyData/exportRocketpy.m
index c7dc066a..9c56cb15 100644
--- a/utils/rocketpyData/exportRocketpy.m
+++ b/utils/rocketpyData/exportRocketpy.m
@@ -146,16 +146,16 @@ fins_position = rocket.lengthCenter - rocket.rear.finsAxialDistance - root_chord
 boat_position = rocket.lengthCenter;
 
 %% parachutes
-booster_drogue_cd_s = rocket.parachutes(1, 1).surface * rocket.parachutes(1, 1).cd;
-booster_drogue_opening_delay = rocket.parachutes(1,1).openingTime;
+booster_drogue_cd_s = rocket.parachutes{1, 1}.surface * rocket.parachutes{1, 1}.cd;
+booster_drogue_opening_delay = rocket.parachutes{1,1}.openingTime;
 
-booster_main_cd_s = rocket.parachutes(2, 1).surface * rocket.parachutes(2, 1).cd;
-booster_main_opening_delay = rocket.parachutes(2,1).openingTime;
-booster_main_opening_altitude = rocket.parachutes(1, 1).finalAltitude + environment.z0;
+booster_main_cd_s = rocket.parachutes{2, 1}.surface * rocket.parachutes{2, 1}.cd;
+booster_main_opening_delay = rocket.parachutes{2,1}.openingTime;
+booster_main_opening_altitude = rocket.parachutes{1, 1}.finalAltitude + environment.z0;
 
-payload_drogue_cd_s = rocket.parachutes(1, 2).surface * rocket.parachutes(1, 2).cd;
-payload_drogue_opening_delay = rocket.parachutes(1, 2).openingTime;
-parafoil_opening_altitude = rocket.parachutes(1, 2).finalAltitude + environment.z0;
+payload_drogue_cd_s = rocket.parachutes{1, 2}.surface * rocket.parachutes{1, 2}.cd;
+payload_drogue_opening_delay = rocket.parachutes{1, 2}.openingTime;
+parafoil_opening_altitude = rocket.parachutes{1, 2}.finalAltitude + environment.z0;
 
 %% launchpad and environment details
 latitude = environment.lat0;
-- 
GitLab