SG_LOG(SG_AUTOPILOT, SG_INFO, "loaded initial waypoints:" << _route.size());
}
+ update_mirror();
weightOnWheels = fgGetNode("/gear/gear[0]/wow", true);
// check airbone flag agrees with presets
return w;
}
+struct NotGeneratedWayptPredicate : public std::unary_function<const Waypt*, bool>
+{
+ bool operator() (const Waypt* w) const
+ {
+ return (w->flag(WPT_GENERATED) == false);
+ }
+};
+
+
void FGRouteMgr::clearRoute()
{
- _route.clear();
+// erase all non-generated waypoints
+ WayptVec::iterator r =
+ std::remove_if(_route.begin(), _route.end(), NotGeneratedWayptPredicate());
+ _route.erase(r, _route.end());
+
_currentIndex = -1;
update_mirror();
bool FGRouteMgr::haveUserWaypoints() const
{
- for (int i = 0; i < numWaypts(); i++) {
- if (!_route[i]->flag(WPT_GENERATED)) {
- // have a non-generated waypoint, we're done
- return true;
- }
- }
-
- // all waypoints are generated
- return false;
+ return std::find_if(_route.begin(), _route.end(), NotGeneratedWayptPredicate()) != _route.end();
}
bool FGRouteMgr::activate()