private IEnumerable<bool> computeTrajectoryIncrement(Vessel vessel, DescentProfile profile)
{
if (aerodynamicModel_ == null || !aerodynamicModel_.isValidFor(vessel, vessel.mainBody))
aerodynamicModel_ = AerodynamicModelFactory.GetModel(vessel, vessel.mainBody);
else
aerodynamicModel_.IncrementalUpdate();
var state = vessel.LandedOrSplashed ? null : new VesselState(vessel);
for (int patchIdx = 0; patchIdx < Settings.fetch.MaxPatchCount; ++patchIdx)
{
if (state == null)
break;
if (incrementTime_.ElapsedMilliseconds > MaxIncrementTime)
yield return false;
if (null != vessel_.patchedConicSolver)
{
var maneuverNodes = vessel_.patchedConicSolver.maneuverNodes;
foreach (var node in maneuverNodes)
{
if (node.UT == state.time)
{
state.velocity += node.GetBurnVector(createOrbitFromState(state));
break;
}
}
foreach (var result in AddPatch(state, profile))
yield return false;
}
state = AddPatch_outState;
}
}