status.getConfiguration().getRocket(),
new Pair<Double, Double>(oldAlt, status.getRocketPosition().z)));
status.getConfiguration().getRocket(),
new Pair<Double, Double>(oldAlt, status.getRocketPosition().z)));
// Add appropriate events
if (!status.isLiftoff()) {
// Avoid sinking into ground before liftoff
// Add appropriate events
if (!status.isLiftoff()) {
// Avoid sinking into ground before liftoff
- if (status.getRocketPosition().z < 0) {
- status.setRocketPosition(Coordinate.NUL);
- status.setRocketVelocity(Coordinate.NUL);
+ if (relativePosition.z < 0) {
+ status.setRocketPosition(origin);
+ status.setRocketVelocity(originVelocity);
addEvent(new FlightEvent(FlightEvent.Type.APOGEE, status.getSimulationTime(),
status.getConfiguration().getRocket()));
}
addEvent(new FlightEvent(FlightEvent.Type.APOGEE, status.getSimulationTime(),
status.getConfiguration().getRocket()));
}