From 98ad9d8b618d877de6f16cfcd56f250448ee328e Mon Sep 17 00:00:00 2001 From: FILLAU Jean-Maxime Date: Mon, 29 May 2017 16:13:15 +0200 Subject: [PATCH] Refactoring enum Approach in enum class. Suppress "engine::" Signed-off-by: FILLAU Jean-Maxime --- include/engine/approach.hpp | 8 +-- .../contiguous_internalmem_datafacade.hpp | 48 ++++++++--------- include/engine/datafacade/datafacade_base.hpp | 20 +++---- include/engine/geospatial_query.hpp | 54 +++++++++---------- include/nodejs/node_osrm_support.hpp | 6 +-- unit_tests/util/static_rtree.cpp | 22 ++++---- 6 files changed, 81 insertions(+), 77 deletions(-) diff --git a/include/engine/approach.hpp b/include/engine/approach.hpp index f41bee5fb..55ed5a50c 100644 --- a/include/engine/approach.hpp +++ b/include/engine/approach.hpp @@ -28,15 +28,17 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef OSRM_ENGINE_APPROACH_HPP #define OSRM_ENGINE_APPROACH_HPP +#include + namespace osrm { namespace engine { -enum Approach +enum class Approach : std::uint8_t { - CURB, - UNRESTRICTED + CURB = 0, + UNRESTRICTED = 1 }; } diff --git a/include/engine/datafacade/contiguous_internalmem_datafacade.hpp b/include/engine/datafacade/contiguous_internalmem_datafacade.hpp index 017b71b8b..9fb8b4329 100644 --- a/include/engine/datafacade/contiguous_internalmem_datafacade.hpp +++ b/include/engine/datafacade/contiguous_internalmem_datafacade.hpp @@ -652,7 +652,7 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade std::vector NearestPhantomNodesInRange(const util::Coordinate input_coordinate, const float max_distance, - const engine::Approach approach) const override final + const Approach approach) const override final { BOOST_ASSERT(m_geospatial_query.get()); @@ -665,7 +665,7 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade const float max_distance, const int bearing, const int bearing_range, - const engine::Approach approach) const override final + const Approach approach) const override final { BOOST_ASSERT(m_geospatial_query.get()); @@ -676,7 +676,7 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade std::vector NearestPhantomNodes(const util::Coordinate input_coordinate, const unsigned max_results, - const engine::Approach approach) const override final + const Approach approach) const override final { BOOST_ASSERT(m_geospatial_query.get()); @@ -687,7 +687,7 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade NearestPhantomNodes(const util::Coordinate input_coordinate, const unsigned max_results, const double max_distance, - const engine::Approach approach) const override final + const Approach approach) const override final { BOOST_ASSERT(m_geospatial_query.get()); @@ -700,7 +700,7 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade const unsigned max_results, const int bearing, const int bearing_range, - const engine::Approach approach) const override final + const Approach approach) const override final { BOOST_ASSERT(m_geospatial_query.get()); @@ -714,7 +714,7 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade const double max_distance, const int bearing, const int bearing_range, - const engine::Approach approach) const override final + const Approach approach) const override final { BOOST_ASSERT(m_geospatial_query.get()); @@ -722,9 +722,9 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade input_coordinate, max_results, max_distance, bearing, bearing_range, approach); } - std::pair NearestPhantomNodeWithAlternativeFromBigComponent( - const util::Coordinate input_coordinate, - const engine::Approach approach) const override final + std::pair + NearestPhantomNodeWithAlternativeFromBigComponent(const util::Coordinate input_coordinate, + const Approach approach) const override final { BOOST_ASSERT(m_geospatial_query.get()); @@ -732,10 +732,10 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade input_coordinate, approach); } - std::pair NearestPhantomNodeWithAlternativeFromBigComponent( - const util::Coordinate input_coordinate, - const double max_distance, - const engine::Approach approach) const override final + std::pair + NearestPhantomNodeWithAlternativeFromBigComponent(const util::Coordinate input_coordinate, + const double max_distance, + const Approach approach) const override final { BOOST_ASSERT(m_geospatial_query.get()); @@ -743,12 +743,12 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade input_coordinate, max_distance, approach); } - std::pair NearestPhantomNodeWithAlternativeFromBigComponent( - const util::Coordinate input_coordinate, - const double max_distance, - const int bearing, - const int bearing_range, - const engine::Approach approach) const override final + std::pair + NearestPhantomNodeWithAlternativeFromBigComponent(const util::Coordinate input_coordinate, + const double max_distance, + const int bearing, + const int bearing_range, + const Approach approach) const override final { BOOST_ASSERT(m_geospatial_query.get()); @@ -756,11 +756,11 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade input_coordinate, max_distance, bearing, bearing_range, approach); } - std::pair NearestPhantomNodeWithAlternativeFromBigComponent( - const util::Coordinate input_coordinate, - const int bearing, - const int bearing_range, - const engine::Approach approach) const override final + std::pair + NearestPhantomNodeWithAlternativeFromBigComponent(const util::Coordinate input_coordinate, + const int bearing, + const int bearing_range, + const Approach approach) const override final { BOOST_ASSERT(m_geospatial_query.get()); diff --git a/include/engine/datafacade/datafacade_base.hpp b/include/engine/datafacade/datafacade_base.hpp index 0d9a9e903..91fb88974 100644 --- a/include/engine/datafacade/datafacade_base.hpp +++ b/include/engine/datafacade/datafacade_base.hpp @@ -95,11 +95,11 @@ class BaseDataFacade const float max_distance, const int bearing, const int bearing_range, - const engine::Approach approach) const = 0; + const Approach approach) const = 0; virtual std::vector NearestPhantomNodesInRange(const util::Coordinate input_coordinate, const float max_distance, - const engine::Approach approach) const = 0; + const Approach approach) const = 0; virtual std::vector NearestPhantomNodes(const util::Coordinate input_coordinate, @@ -107,41 +107,41 @@ class BaseDataFacade const double max_distance, const int bearing, const int bearing_range, - const engine::Approach approach) const = 0; + const Approach approach) const = 0; virtual std::vector NearestPhantomNodes(const util::Coordinate input_coordinate, const unsigned max_results, const int bearing, const int bearing_range, - const engine::Approach approach) const = 0; + const Approach approach) const = 0; virtual std::vector NearestPhantomNodes(const util::Coordinate input_coordinate, const unsigned max_results, - const engine::Approach approach) const = 0; + const Approach approach) const = 0; virtual std::vector NearestPhantomNodes(const util::Coordinate input_coordinate, const unsigned max_results, const double max_distance, - const engine::Approach approach) const = 0; + const Approach approach) const = 0; virtual std::pair NearestPhantomNodeWithAlternativeFromBigComponent(const util::Coordinate input_coordinate, - const engine::Approach approach) const = 0; + const Approach approach) const = 0; virtual std::pair NearestPhantomNodeWithAlternativeFromBigComponent(const util::Coordinate input_coordinate, const double max_distance, - const engine::Approach approach) const = 0; + const Approach approach) const = 0; virtual std::pair NearestPhantomNodeWithAlternativeFromBigComponent(const util::Coordinate input_coordinate, const double max_distance, const int bearing, const int bearing_range, - const engine::Approach approach) const = 0; + const Approach approach) const = 0; virtual std::pair NearestPhantomNodeWithAlternativeFromBigComponent(const util::Coordinate input_coordinate, const int bearing, const int bearing_range, - const engine::Approach approach) const = 0; + const Approach approach) const = 0; virtual bool HasLaneData(const EdgeID id) const = 0; virtual util::guidance::LaneTupleIdPair GetLaneData(const EdgeID id) const = 0; diff --git a/include/engine/geospatial_query.hpp b/include/engine/geospatial_query.hpp index c807a1893..c4ad455c1 100644 --- a/include/engine/geospatial_query.hpp +++ b/include/engine/geospatial_query.hpp @@ -16,8 +16,6 @@ #include #include -#include - namespace osrm { namespace engine @@ -54,13 +52,13 @@ template class GeospatialQuery std::vector NearestPhantomNodesInRange(const util::Coordinate input_coordinate, const double max_distance, - const engine::Approach approach) const + const Approach approach) const { auto results = rtree.Nearest( input_coordinate, [this, approach, &input_coordinate](const CandidateSegment &segment) { return boolPairAnd(HasValidEdge(segment), - approach_usage(input_coordinate, segment, approach)); + CheckApproach(input_coordinate, segment, approach)); }, [this, max_distance, input_coordinate](const std::size_t, const CandidateSegment &segment) { @@ -77,7 +75,7 @@ template class GeospatialQuery const double max_distance, const int bearing, const int bearing_range, - const engine::Approach approach) const + const Approach approach) const { auto results = rtree.Nearest( input_coordinate, @@ -86,7 +84,7 @@ template class GeospatialQuery auto use_direction = boolPairAnd( CheckSegmentBearing(segment, bearing, bearing_range), HasValidEdge(segment)); use_direction = - boolPairAnd(use_direction, approach_usage(input_coordinate, segment, approach)); + boolPairAnd(use_direction, CheckApproach(input_coordinate, segment, approach)); return use_direction; }, [this, max_distance, input_coordinate](const std::size_t, @@ -104,7 +102,7 @@ template class GeospatialQuery const unsigned max_results, const int bearing, const int bearing_range, - const engine::Approach approach) const + const Approach approach) const { auto results = rtree.Nearest( input_coordinate, @@ -113,7 +111,7 @@ template class GeospatialQuery auto use_direction = boolPairAnd( CheckSegmentBearing(segment, bearing, bearing_range), HasValidEdge(segment)); return boolPairAnd(use_direction, - approach_usage(input_coordinate, segment, approach)); + CheckApproach(input_coordinate, segment, approach)); }, [max_results](const std::size_t num_results, const CandidateSegment &) { return num_results >= max_results; @@ -131,7 +129,7 @@ template class GeospatialQuery const double max_distance, const int bearing, const int bearing_range, - const engine::Approach approach) const + const Approach approach) const { auto results = rtree.Nearest( input_coordinate, @@ -140,7 +138,7 @@ template class GeospatialQuery auto use_direction = boolPairAnd( CheckSegmentBearing(segment, bearing, bearing_range), HasValidEdge(segment)); return boolPairAnd(use_direction, - approach_usage(input_coordinate, segment, approach)); + CheckApproach(input_coordinate, segment, approach)); }, [this, max_distance, max_results, input_coordinate](const std::size_t num_results, const CandidateSegment &segment) { @@ -156,13 +154,13 @@ template class GeospatialQuery std::vector NearestPhantomNodes(const util::Coordinate input_coordinate, const unsigned max_results, - const engine::Approach approach) const + const Approach approach) const { auto results = rtree.Nearest( input_coordinate, [this, approach, &input_coordinate](const CandidateSegment &segment) { return boolPairAnd(HasValidEdge(segment), - approach_usage(input_coordinate, segment, approach)); + CheckApproach(input_coordinate, segment, approach)); }, [max_results](const std::size_t num_results, const CandidateSegment &) { return num_results >= max_results; @@ -177,13 +175,13 @@ template class GeospatialQuery NearestPhantomNodes(const util::Coordinate input_coordinate, const unsigned max_results, const double max_distance, - const engine::Approach approach) const + const Approach approach) const { auto results = rtree.Nearest( input_coordinate, [this, approach, &input_coordinate](const CandidateSegment &segment) { return boolPairAnd(HasValidEdge(segment), - approach_usage(input_coordinate, segment, approach)); + CheckApproach(input_coordinate, segment, approach)); }, [this, max_distance, max_results, input_coordinate](const std::size_t num_results, const CandidateSegment &segment) { @@ -199,7 +197,7 @@ template class GeospatialQuery std::pair NearestPhantomNodeWithAlternativeFromBigComponent(const util::Coordinate input_coordinate, const double max_distance, - const engine::Approach approach) const + const Approach approach) const { bool has_small_component = false; bool has_big_component = false; @@ -212,8 +210,8 @@ template class GeospatialQuery auto use_directions = std::make_pair(use_segment, use_segment); const auto valid_edges = HasValidEdge(segment); use_directions = boolPairAnd(use_directions, valid_edges); - use_directions = boolPairAnd(use_directions, - approach_usage(input_coordinate, segment, approach)); + use_directions = + boolPairAnd(use_directions, CheckApproach(input_coordinate, segment, approach)); if (use_directions.first || use_directions.second) { @@ -243,7 +241,7 @@ template class GeospatialQuery // a second phantom node is return that is the nearest coordinate in a big component. std::pair NearestPhantomNodeWithAlternativeFromBigComponent(const util::Coordinate input_coordinate, - const engine::Approach approach) const + const Approach approach) const { bool has_small_component = false; bool has_big_component = false; @@ -257,8 +255,8 @@ template class GeospatialQuery const auto valid_edges = HasValidEdge(segment); use_directions = boolPairAnd(use_directions, valid_edges); - use_directions = boolPairAnd(use_directions, - approach_usage(input_coordinate, segment, approach)); + use_directions = + boolPairAnd(use_directions, CheckApproach(input_coordinate, segment, approach)); if (use_directions.first || use_directions.second) { @@ -288,7 +286,7 @@ template class GeospatialQuery NearestPhantomNodeWithAlternativeFromBigComponent(const util::Coordinate input_coordinate, const int bearing, const int bearing_range, - const engine::Approach approach) const + const Approach approach) const { bool has_small_component = false; bool has_big_component = false; @@ -312,7 +310,7 @@ template class GeospatialQuery boolPairAnd(CheckSegmentBearing(segment, bearing, bearing_range), HasValidEdge(segment)); use_directions = boolPairAnd( - use_directions, approach_usage(input_coordinate, segment, approach)); + use_directions, CheckApproach(input_coordinate, segment, approach)); if (use_directions.first || use_directions.second) { @@ -344,7 +342,7 @@ template class GeospatialQuery const double max_distance, const int bearing, const int bearing_range, - const engine::Approach approach) const + const Approach approach) const { bool has_small_component = false; bool has_big_component = false; @@ -368,7 +366,7 @@ template class GeospatialQuery boolPairAnd(CheckSegmentBearing(segment, bearing, bearing_range), HasValidEdge(segment)); use_directions = boolPairAnd( - use_directions, approach_usage(input_coordinate, segment, approach)); + use_directions, CheckApproach(input_coordinate, segment, approach)); if (use_directions.first || use_directions.second) { @@ -601,13 +599,13 @@ template class GeospatialQuery return datafacade.GetComponentID(data.forward_segment_id.id).is_tiny; } - std::pair approach_usage(const util::Coordinate &input_coordinate, - const CandidateSegment &segment, - const engine::Approach approach) const + std::pair CheckApproach(const util::Coordinate &input_coordinate, + const CandidateSegment &segment, + const Approach approach) const { bool isOnewaySegment = !(segment.data.forward_segment_id.enabled && segment.data.reverse_segment_id.enabled); - if (!isOnewaySegment && approach == CURB) + if (!isOnewaySegment && approach == Approach::CURB) { // Check the counter clockwise // diff --git a/include/nodejs/node_osrm_support.hpp b/include/nodejs/node_osrm_support.hpp index 759a38c75..d64b04d9c 100644 --- a/include/nodejs/node_osrm_support.hpp +++ b/include/nodejs/node_osrm_support.hpp @@ -306,7 +306,7 @@ inline bool argumentsToParameter(const Nan::FunctionCallbackInfo &arg if (!approaches->IsArray()) { - Nan::ThrowError("Approaches must be an array of arrays of numbers"); + Nan::ThrowError("Approaches must be an arrays of strings"); return false; } @@ -326,7 +326,7 @@ inline bool argumentsToParameter(const Nan::FunctionCallbackInfo &arg if (approach_raw->IsNull()) { - params->bearings.emplace_back(); + params->approaches.emplace_back(); } else if (approach_raw->IsString()) { @@ -343,7 +343,7 @@ inline bool argumentsToParameter(const Nan::FunctionCallbackInfo &arg } else { - Nan::ThrowError("'approach' param must be one of [curb, unrestricted]"); + Nan::ThrowError("'approaches' param must be one of [curb, unrestricted]"); return false; } } diff --git a/unit_tests/util/static_rtree.cpp b/unit_tests/util/static_rtree.cpp index 2b11a832b..4ba5c17cc 100644 --- a/unit_tests/util/static_rtree.cpp +++ b/unit_tests/util/static_rtree.cpp @@ -363,7 +363,8 @@ BOOST_AUTO_TEST_CASE(radius_regression_test) Coordinate input(FloatLongitude{5.2}, FloatLatitude{5.0}); { - auto results = query.NearestPhantomNodesInRange(input, 0.01, osrm::engine::UNRESTRICTED); + auto results = + query.NearestPhantomNodesInRange(input, 0.01, osrm::engine::Approach::UNRESTRICTED); BOOST_CHECK_EQUAL(results.size(), 0); } } @@ -390,19 +391,21 @@ BOOST_AUTO_TEST_CASE(bearing_tests) Coordinate input(FloatLongitude{5.1}, FloatLatitude{5.0}); { - auto results = query.NearestPhantomNodes(input, 5, osrm::engine::UNRESTRICTED); + auto results = query.NearestPhantomNodes(input, 5, osrm::engine::Approach::UNRESTRICTED); BOOST_CHECK_EQUAL(results.size(), 2); BOOST_CHECK_EQUAL(results.back().phantom_node.forward_segment_id.id, 0); BOOST_CHECK_EQUAL(results.back().phantom_node.reverse_segment_id.id, 1); } { - auto results = query.NearestPhantomNodes(input, 5, 270, 10, osrm::engine::UNRESTRICTED); + auto results = + query.NearestPhantomNodes(input, 5, 270, 10, osrm::engine::Approach::UNRESTRICTED); BOOST_CHECK_EQUAL(results.size(), 0); } { - auto results = query.NearestPhantomNodes(input, 5, 45, 10, osrm::engine::UNRESTRICTED); + auto results = + query.NearestPhantomNodes(input, 5, 45, 10, osrm::engine::Approach::UNRESTRICTED); BOOST_CHECK_EQUAL(results.size(), 2); BOOST_CHECK(results[0].phantom_node.forward_segment_id.enabled); @@ -415,19 +418,20 @@ BOOST_AUTO_TEST_CASE(bearing_tests) } { - auto results = query.NearestPhantomNodesInRange(input, 11000, osrm::engine::UNRESTRICTED); + auto results = + query.NearestPhantomNodesInRange(input, 11000, osrm::engine::Approach::UNRESTRICTED); BOOST_CHECK_EQUAL(results.size(), 2); } { - auto results = - query.NearestPhantomNodesInRange(input, 11000, 270, 10, osrm::engine::UNRESTRICTED); + auto results = query.NearestPhantomNodesInRange( + input, 11000, 270, 10, osrm::engine::Approach::UNRESTRICTED); BOOST_CHECK_EQUAL(results.size(), 0); } { - auto results = - query.NearestPhantomNodesInRange(input, 11000, 45, 10, osrm::engine::UNRESTRICTED); + auto results = query.NearestPhantomNodesInRange( + input, 11000, 45, 10, osrm::engine::Approach::UNRESTRICTED); BOOST_CHECK_EQUAL(results.size(), 2); BOOST_CHECK(results[0].phantom_node.forward_segment_id.enabled);