const GeoPoint& AATPoint::GetLocationRemaining() const { if (!IsPast()) return target_location; if (HasSampled()) return GetLocationMax(); return GetLocationMin(); }
bool OrderedTaskPoint::ScanActive(const OrderedTaskPoint &atp) { if (&atp == this) active_state = CURRENT_ACTIVE; else if (tp_previous && (GetPrevious()->GetActiveState() == CURRENT_ACTIVE || GetPrevious()->GetActiveState() == AFTER_ACTIVE)) active_state = AFTER_ACTIVE; else active_state = BEFORE_ACTIVE; SetPast(IsPast()); if (tp_next) // propagate to remainder of task return GetNext()->ScanActive(atp); return !IsPast(); }