From 671da2f403c15f31e0206335ada13974c02ce49f Mon Sep 17 00:00:00 2001
From: Mauco03 <marco.gaibotti@skywarder.eu>
Date: Wed, 26 Mar 2025 21:51:46 +0100
Subject: [PATCH] [handle-value-conversion] Fixed a bug where updating inertia
 would trigger override

---
 classes/@Rocket/Rocket.m | 6 +++---
 classes/@Rocket/update.m | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/classes/@Rocket/Rocket.m b/classes/@Rocket/Rocket.m
index 5d91e4b..a06283b 100644
--- a/classes/@Rocket/Rocket.m
+++ b/classes/@Rocket/Rocket.m
@@ -175,7 +175,7 @@ classdef Rocket < Config
         obj = update(obj);
     end
 
-    methods
+    methods % Getters
         function obj = set.parafoil(obj, value), obj = obj.updateBay('PARAFOIL', value); end
         function obj = set.recovery(obj, value), obj = obj.updateBay('RECOVERY', value); end
         function obj = set.electronics(obj, value), obj = obj.updateBay('ELECTRONICS', value); end
@@ -186,8 +186,8 @@ classdef Rocket < Config
             end
         end
         function obj = set.motor(obj, value)
-            obj = obj.updateBay('MOTOR', value);
             obj.time = value.time;
+            obj = obj.updateBay('MOTOR', value);
             obj.cutoffTime = value.cutoffTime;
             if ~isempty(obj.airbrakes)
                 obj.AIRBRAKES.minTime = obj.motor.cutoffTime; 
@@ -212,7 +212,7 @@ classdef Rocket < Config
         function obj = set.xcgNoMotor(obj, value), obj = obj.updateOverridable('XCG_NO_MOTOR', value); end
     end
 
-    methods
+    methods % Getters
         function value = get.parafoil(obj), value = obj.PARAFOIL; end
         function value = get.recovery(obj), value = obj.RECOVERY; end
         function value = get.electronics(obj), value = obj.ELECTRONICS; end
diff --git a/classes/@Rocket/update.m b/classes/@Rocket/update.m
index 2685b08..ab547d2 100644
--- a/classes/@Rocket/update.m
+++ b/classes/@Rocket/update.m
@@ -31,17 +31,17 @@ if ~override('INERTIA')
     baysInertia = obj.inertiaNoMotor(2:3, :) + ...
                 (obj.xcg - obj.xcgNoMotor).^2 .* obj.massNoMotor;
     
-    obj.inertia = [obj.motor.inertia(1, :) + obj.inertiaNoMotor(1, :);
+    obj.INERTIA = [obj.motor.inertia(1, :) + obj.inertiaNoMotor(1, :);
         motorInertia + baysInertia];
     
-    obj.inertiaDot = diff(obj.inertia, 1, 2)./diff(obj.motor.time);
+    obj.inertiaDot = diff(obj.INERTIA, 1, 2)./diff(obj.motor.time);
     obj.inertiaDot(:, end + 1) = obj.inertiaDot(:, end);
 end
 
 %% Cutoff
 cutoffXcg = interp1(obj.time, obj.xcg, obj.cutoffTime, "linear", 'extrap');
 obj.cutoffMass = interp1(obj.time, obj.mass, obj.cutoffTime, "linear", 'extrap');
-obj.cutoffInertia = interp1(obj.time, obj.inertia', obj.cutoffTime, "linear", 'extrap')';
+obj.cutoffInertia = interp1(obj.time, obj.INERTIA', obj.cutoffTime, "linear", 'extrap')';
 
 %% Stages
 % TODO! generalize for n stages, variable input
-- 
GitLab