simplify code by using new phantom node ctor

This commit is contained in:
Dennis Luxen 2015-02-13 14:26:19 +01:00
parent 86d3556c6d
commit e5f12347bd

View File

@ -656,8 +656,9 @@ class StaticRTree
unsigned number_of_elements_from_big_cc = 0; unsigned number_of_elements_from_big_cc = 0;
unsigned number_of_elements_from_tiny_cc = 0; unsigned number_of_elements_from_tiny_cc = 0;
#ifdef NDEBUG
unsigned pruned_elements = 0; unsigned pruned_elements = 0;
#endif
std::pair<double, double> projected_coordinate = { std::pair<double, double> projected_coordinate = {
mercator::lat2y(input_coordinate.lat / COORDINATE_PRECISION), mercator::lat2y(input_coordinate.lat / COORDINATE_PRECISION),
input_coordinate.lon / COORDINATE_PRECISION}; input_coordinate.lon / COORDINATE_PRECISION};
@ -701,10 +702,12 @@ class StaticRTree
pruning_bound.insert(current_perpendicular_distance); pruning_bound.insert(current_perpendicular_distance);
traversal_queue.emplace(current_perpendicular_distance, current_edge); traversal_queue.emplace(current_perpendicular_distance, current_edge);
} }
#ifdef NDEBUG
else else
{ {
++pruned_elements; ++pruned_elements;
} }
#endif
} }
} }
else else
@ -749,14 +752,8 @@ class StaticRTree
projected_coordinate, foot_point_coordinate_on_segment, current_ratio); projected_coordinate, foot_point_coordinate_on_segment, current_ratio);
// store phantom node in result vector // store phantom node in result vector
result_phantom_node_vector.emplace_back( result_phantom_node_vector.emplace_back(current_segment,
current_segment.forward_edge_based_node_id, foot_point_coordinate_on_segment);
current_segment.reverse_edge_based_node_id, current_segment.name_id,
current_segment.forward_weight, current_segment.reverse_weight,
current_segment.forward_offset, current_segment.reverse_offset,
current_segment.packed_geometry_id, current_segment.component_id,
foot_point_coordinate_on_segment, current_segment.fwd_segment_position,
current_segment.forward_travel_mode, current_segment.backward_travel_mode);
// Hack to fix rounding errors and wandering via nodes. // Hack to fix rounding errors and wandering via nodes.
FixUpRoundingIssue(input_coordinate, result_phantom_node_vector.back()); FixUpRoundingIssue(input_coordinate, result_phantom_node_vector.back());
@ -784,17 +781,18 @@ class StaticRTree
traversal_queue = std::priority_queue<IncrementalQueryCandidate>{}; traversal_queue = std::priority_queue<IncrementalQueryCandidate>{};
} }
} }
// SimpleLogger().Write() << "result_phantom_node_vector.size(): " << #ifdef NDEBUG
// result_phantom_node_vector.size(); // SimpleLogger().Write() << "result_phantom_node_vector.size(): " <<
// SimpleLogger().Write() << "max_number_of_phantom_nodes: " << max_number_of_phantom_nodes; // result_phantom_node_vector.size();
// SimpleLogger().Write() << "number_of_elements_from_big_cc: " << // SimpleLogger().Write() << "max_number_of_phantom_nodes: " << max_number_of_phantom_nodes;
// number_of_elements_from_big_cc; // SimpleLogger().Write() << "number_of_elements_from_big_cc: " <<
// SimpleLogger().Write() << "number_of_elements_from_tiny_cc: " << // number_of_elements_from_big_cc;
// number_of_elements_from_tiny_cc; // SimpleLogger().Write() << "number_of_elements_from_tiny_cc: " <<
// SimpleLogger().Write() << "inspected_elements: " << inspected_elements; // number_of_elements_from_tiny_cc;
// SimpleLogger().Write() << "max_checked_elements: " << max_checked_elements; // SimpleLogger().Write() << "inspected_elements: " << inspected_elements;
// SimpleLogger().Write() << "pruned_elements: " << pruned_elements; // SimpleLogger().Write() << "max_checked_elements: " << max_checked_elements;
// SimpleLogger().Write() << "pruned_elements: " << pruned_elements;
#endif
return !result_phantom_node_vector.empty(); return !result_phantom_node_vector.empty();
} }
@ -915,13 +913,9 @@ class StaticRTree
!osrm::epsilon_compare(current_perpendicular_distance, current_min_dist)) !osrm::epsilon_compare(current_perpendicular_distance, current_min_dist))
{ {
// store phantom node in result vector // store phantom node in result vector
result_phantom_node_vector.emplace_back( result_phantom_node_vector.emplace_back(current_segment,
current_segment.forward_edge_based_node_id, foot_point_coordinate_on_segment,
current_segment.reverse_edge_based_node_id, current_segment.name_id, current_perpendicular_distance);
current_segment.forward_weight, current_segment.reverse_weight,
current_segment.forward_offset, current_segment.reverse_offset,
current_segment.packed_geometry_id, foot_point_coordinate_on_segment,
current_segment.fwd_segment_position, current_perpendicular_distance);
// Hack to fix rounding errors and wandering via nodes. // Hack to fix rounding errors and wandering via nodes.
FixUpRoundingIssue(input_coordinate, result_phantom_node_vector.back()); FixUpRoundingIssue(input_coordinate, result_phantom_node_vector.back());