diff options
author | Vladimir Byko-Ianko <v.bykoianko@corp.mail.ru> | 2016-06-08 17:56:28 +0300 |
---|---|---|
committer | Vladimir Byko-Ianko <v.bykoianko@corp.mail.ru> | 2016-06-17 19:36:52 +0300 |
commit | b0a831d8ebb0c88b3bfaee345ce31a255d30ef30 (patch) | |
tree | 74d7fa0f86492bdece6f98c726036c0b45de7f4b /routing/pedestrian_model.cpp | |
parent | a35256f8e791dda8e5e343de8483efc75d83ef58 (diff) |
Code refactoring. Implementing some functionality to VehicleModel class and removing it form derived classes.
Diffstat (limited to 'routing/pedestrian_model.cpp')
-rw-r--r-- | routing/pedestrian_model.cpp | 35 |
1 files changed, 4 insertions, 31 deletions
diff --git a/routing/pedestrian_model.cpp b/routing/pedestrian_model.cpp index 9e30abd9ee..510568432f 100644 --- a/routing/pedestrian_model.cpp +++ b/routing/pedestrian_model.cpp @@ -633,39 +633,13 @@ void PedestrianModel::Init() SetAdditionalRoadTypes(classif(), arr, ARRAY_SIZE(arr)); } -VehicleModel::Restriction PedestrianModel::IsPedestrianAllowed(feature::TypesHolder const & types) const +IVehicleModel::RoadAvailability PedestrianModel::GetRoadAvailability(feature::TypesHolder const & types) const { if (types.Has(m_yesFootType)) - return Restriction::Yes; + return RoadAvailability::Available; if (types.Has(m_noFootType)) - return Restriction::No; - return Restriction::Unknown; -} - -double PedestrianModel::GetSpeed(FeatureType const & f) const -{ - feature::TypesHolder const types(f); - - Restriction const restriction = IsPedestrianAllowed(types); - if (restriction == Restriction::Yes) - return VehicleModel::GetMaxSpeed(); - if (restriction != Restriction::No && HasRoadType(types)) - return VehicleModel::GetMinTypeSpeed(types); - - return 0.0; -} - -bool PedestrianModel::IsRoad(FeatureType const & f) const -{ - if (f.GetFeatureType() != feature::GEOM_LINE) - return false; - - feature::TypesHolder const types(f); - - if (IsPedestrianAllowed(types) == Restriction::No) - return false; - - return VehicleModel::HasRoadType(types); + return RoadAvailability::NotAvailable; + return RoadAvailability::Unknown; } PedestrianModelFactory::PedestrianModelFactory() @@ -712,5 +686,4 @@ shared_ptr<IVehicleModel> PedestrianModelFactory::GetVehicleModelForCountry(stri LOG(LDEBUG, ("Pedestrian model wasn't found, default model is used instead:", country)); return PedestrianModelFactory::GetVehicleModel(); } - } // routing |