Fixed bug that prevents adding stages to a rocket
This commit is contained in:
parent
f535b8caf0
commit
b9a0800ca5
@ -1,3 +1,7 @@
|
|||||||
|
2010-09-05 Sampo Niskanen
|
||||||
|
|
||||||
|
* [BUG] Fixed bug that prevents adding stages to a rocket
|
||||||
|
|
||||||
2010-09-04 Sampo Niskanen
|
2010-09-04 Sampo Niskanen
|
||||||
|
|
||||||
* Added launch rod velocity to FlightData
|
* Added launch rod velocity to FlightData
|
||||||
|
|||||||
@ -3,19 +3,13 @@ package net.sf.openrocket.aerodynamics;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import net.sf.openrocket.rocketcomponent.Configuration;
|
import net.sf.openrocket.rocketcomponent.Configuration;
|
||||||
import net.sf.openrocket.rocketcomponent.Rocket;
|
|
||||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||||
import net.sf.openrocket.util.Coordinate;
|
import net.sf.openrocket.util.Coordinate;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A class that is the base of all aerodynamical calculations.
|
* An abstract aerodynamic calculator implementation, that offers basic implementation
|
||||||
* <p>
|
* of some methods and methods for cache validation and purging.
|
||||||
* A rocket must be assigned to this class before any operations are allowed.
|
|
||||||
* This can be done using the constructor or using the
|
|
||||||
* {@link #setRocket(Rocket)} method. The default is a
|
|
||||||
* <code>null</code> configuration, in which case the calculation
|
|
||||||
* methods throw {@link NullPointerException}.
|
|
||||||
*
|
*
|
||||||
* @author Sampo Niskanen <sampo.niskanen@iki.fi>
|
* @author Sampo Niskanen <sampo.niskanen@iki.fi>
|
||||||
*/
|
*/
|
||||||
@ -33,7 +27,7 @@ public abstract class AbstractAerodynamicCalculator implements AerodynamicCalcul
|
|||||||
|
|
||||||
/** The aerodynamic modification ID of the latest rocket */
|
/** The aerodynamic modification ID of the latest rocket */
|
||||||
private int rocketAeroModID = -1;
|
private int rocketAeroModID = -1;
|
||||||
|
private int stageCount = -1;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -89,8 +83,10 @@ public abstract class AbstractAerodynamicCalculator implements AerodynamicCalcul
|
|||||||
* @param configuration the configuration of the current call
|
* @param configuration the configuration of the current call
|
||||||
*/
|
*/
|
||||||
protected final void checkCache(Configuration configuration) {
|
protected final void checkCache(Configuration configuration) {
|
||||||
if (rocketAeroModID != configuration.getRocket().getAerodynamicModID()) {
|
if (rocketAeroModID != configuration.getRocket().getAerodynamicModID() ||
|
||||||
|
stageCount != configuration.getStageCount()) {
|
||||||
rocketAeroModID = configuration.getRocket().getAerodynamicModID();
|
rocketAeroModID = configuration.getRocket().getAerodynamicModID();
|
||||||
|
stageCount = configuration.getStageCount();
|
||||||
voidAerodynamicCache();
|
voidAerodynamicCache();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import net.sf.openrocket.rocketcomponent.Configuration;
|
|||||||
public abstract class AbstractMassCalculator implements MassCalculator {
|
public abstract class AbstractMassCalculator implements MassCalculator {
|
||||||
|
|
||||||
private int rocketMassModID = -1;
|
private int rocketMassModID = -1;
|
||||||
|
private int stageCount = -1;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -24,8 +25,10 @@ public abstract class AbstractMassCalculator implements MassCalculator {
|
|||||||
* @param configuration the configuration of the current call
|
* @param configuration the configuration of the current call
|
||||||
*/
|
*/
|
||||||
protected final void checkCache(Configuration configuration) {
|
protected final void checkCache(Configuration configuration) {
|
||||||
if (rocketMassModID != configuration.getRocket().getMassModID()) {
|
if (rocketMassModID != configuration.getRocket().getMassModID() ||
|
||||||
|
stageCount != configuration.getStageCount()) {
|
||||||
rocketMassModID = configuration.getRocket().getMassModID();
|
rocketMassModID = configuration.getRocket().getMassModID();
|
||||||
|
stageCount = configuration.getStageCount();
|
||||||
voidMassCache();
|
voidMassCache();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -47,7 +47,6 @@ public class Configuration implements Cloneable, ChangeSource, ComponentChangeLi
|
|||||||
|
|
||||||
|
|
||||||
private int modID = 0;
|
private int modID = 0;
|
||||||
private int modIDadd = 0;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -189,7 +188,6 @@ public class Configuration implements Cloneable, ChangeSource, ComponentChangeLi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes the listener connection to the rocket and listeners of this object.
|
* Removes the listener connection to the rocket and listeners of this object.
|
||||||
* This configuration may not be used after a call to this method!
|
* This configuration may not be used after a call to this method!
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user