Allow user to turn off CD override for subcomponents

This commit is contained in:
JoePfeiffer 2022-08-30 11:31:55 -06:00
parent d076c54c9a
commit 94bc305ccb
2 changed files with 8 additions and 27 deletions

View File

@ -82,11 +82,6 @@ public abstract class ComponentAssembly extends RocketComponent implements Axial
return 0; return 0;
} }
@Override
public boolean isSubcomponentsOverridden() {
return true;
}
/** /**
* Null method (ComponentAssembly has no mass of itself). * Null method (ComponentAssembly has no mass of itself).
*/ */
@ -167,16 +162,6 @@ public abstract class ComponentAssembly extends RocketComponent implements Axial
fireComponentChangeEvent(ComponentChangeEvent.NONFUNCTIONAL_CHANGE); fireComponentChangeEvent(ComponentChangeEvent.NONFUNCTIONAL_CHANGE);
} }
@Override
public void setSubcomponentsOverridden(boolean override) {
// No-op
}
@Override
public boolean isOverrideSubcomponentsEnabled() {
return false;
}
@Override @Override
protected void update() { protected void update() {
this.updateBounds(); this.updateBounds();

View File

@ -63,9 +63,9 @@ public class OverrideTest extends BaseTestCase {
assertNotNull(finset); assertNotNull(finset);
// We start by just checking the override flags // We start by just checking the override flags
// Initially no overrides except for sustainer (a componenent assembly) // Initially no overrides
assertFalse(sustainer.isCDOverridden()); assertFalse(sustainer.isCDOverridden());
assertTrue(sustainer.isSubcomponentsOverridden()); assertFalse(sustainer.isSubcomponentsOverridden());
assertFalse(sustainer.isCDOverriddenByAncestor()); assertFalse(sustainer.isCDOverriddenByAncestor());
assertFalse(bodytube.isCDOverridden()); assertFalse(bodytube.isCDOverridden());
@ -76,12 +76,8 @@ public class OverrideTest extends BaseTestCase {
assertFalse(finset.isSubcomponentsOverridden()); assertFalse(finset.isSubcomponentsOverridden());
assertFalse(finset.isCDOverriddenByAncestor()); assertFalse(finset.isCDOverriddenByAncestor());
// SubcomponentsOverridden can't be turned off for component assemblies // Override sustainer CD and subcomponents
sustainer.setSubcomponentsOverridden(false); sustainer.setSubcomponentsOverridden(true);
assertTrue(sustainer.isSubcomponentsOverridden());
// Override sustainer CD and others get overridden
sustainer.setCDOverridden(true); sustainer.setCDOverridden(true);
sustainer.setOverrideCD(0.5); sustainer.setOverrideCD(0.5);
@ -106,11 +102,11 @@ public class OverrideTest extends BaseTestCase {
AerodynamicForces forces = calc.getAerodynamicForces(configuration, conditions, warnings); AerodynamicForces forces = calc.getAerodynamicForces(configuration, conditions, warnings);
assertEquals(sustainer.getOverrideCD(), forces.getCD(), MathUtil.EPSILON); assertEquals(sustainer.getOverrideCD(), forces.getCD(), MathUtil.EPSILON);
// Turn off sustainer override; body tube and nose cone aren't overridden by ancestor but fin set is // Turn off sustainer subcomponents override; body tube and nose cone aren't overridden by ancestor but fin set is
sustainer.setCDOverridden(false); sustainer.setSubcomponentsOverridden(false);
// CD of rocket should be overridden CD of body tube plus calculated CD of nose cone // CD of rocket should be overridden CD of sustainer plus body tube plus calculated CD of nose cone
Map<RocketComponent, AerodynamicForces> forceMap = calc.getForceAnalysis(configuration, conditions, warnings); Map<RocketComponent, AerodynamicForces> forceMap = calc.getForceAnalysis(configuration, conditions, warnings);
assertEquals(bodytube.getOverrideCD() + forceMap.get(nosecone).getCD(), forceMap.get(rocket).getCD(), MathUtil.EPSILON); assertEquals(sustainer.getOverrideCD() + bodytube.getOverrideCD() + forceMap.get(nosecone).getCD(), forceMap.get(rocket).getCD(), MathUtil.EPSILON);
} }
} }