From bc414e02773aacc6e642a3f079f6d994818aec93 Mon Sep 17 00:00:00 2001
From: giuliaghirardini <giuliaghirardini2001@gmail.com>
Date: Sat, 20 Jul 2024 10:42:06 +0200
Subject: [PATCH] [refactoring-missions][2021_Lynx_Roccaraso_September]
 Modified Rocket methods for updating stages mass to be compatible with
 parafoil-less rockets and modified check geometry method to be compatible
 with Karman ogive

---
 classes/Rocket.m | 36 ++++++++++++++++++++++++++++++++----
 1 file changed, 32 insertions(+), 4 deletions(-)

diff --git a/classes/Rocket.m b/classes/Rocket.m
index c9cc13e..947edb2 100644
--- a/classes/Rocket.m
+++ b/classes/Rocket.m
@@ -156,10 +156,10 @@ classdef Rocket < Component
         end
 
         function updateStagesMass(obj)
-            stage1 = obj.cutoffMass - (obj.payload.mass + obj.parachutes(1,2).mass + obj.parachutes(2,2).mass);
+            stage1 = obj.cutoffMass - sum([obj.parachutes(:,1).mass]);
             % Everything at cut off without payload, payload drogue and
             % payload airfoil
-            stage2 = obj.payload.mass + obj.parachutes(1,2).mass + obj.parachutes(2,2).mass;
+            stage2 = sum([obj.parachutes(:,1).mass]);
             % only payload: payload, payload drogue and payload airfoil
             obj.stagesMass = [stage1 stage2];
         end
@@ -365,8 +365,35 @@ classdef Rocket < Component
                 obj.coefficients.geometry.xcg(1);
                 obj.coefficients.geometry.xcg(end);
                 ], 3);
-
-            geometryRocket = round([
+            
+            if (obj.payload.noseCMod & obj.payload.nosePMod) == 0 % KARMAN ogive case, no modified p and c coefficients
+                geometryRocket = round([
+                    obj.diameter;
+                    obj.payload.noseLength;
+                    obj.lengthCenter;
+                    obj.rear.finsRootChord;
+                    obj.rear.finsFreeChord;
+                    obj.rear.finsHeight;
+                    obj.rear.finsDeltaXFreeChord;
+                    obj.rear.nPanel;
+                    obj.rear.boatLength;
+                    obj.rear.boatFinalDiameter;
+                    ], 3);
+    
+                geometryTest = round([
+                    obj.coefficients.geometry.diameter;
+                    obj.coefficients.geometry.lNose;
+                    obj.coefficients.geometry.lCenter;
+                    obj.coefficients.geometry.chord1;
+                    obj.coefficients.geometry.chord2;
+                    obj.coefficients.geometry.height;
+                    obj.coefficients.geometry.deltaXLE;
+                    obj.coefficients.geometry.nPanel;
+                    obj.coefficients.geometry.boatL;
+                    obj.coefficients.geometry.boatD;
+                    ], 3);
+            else % MHAAK ogive case, modified p and c coefficients 
+                geometryRocket = round([
                 obj.diameter;
                 obj.payload.noseLength;
                 obj.lengthCenter;
@@ -395,6 +422,7 @@ classdef Rocket < Component
                 obj.coefficients.geometry.boatL;
                 obj.coefficients.geometry.boatD;
                 ], 3);
+            end
 
             checks = [
                 xCgRocket == xCgTest;
-- 
GitLab