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()