/
srv
/
osrm
/
osrm-backend
/
include
/
extractor
/
/srv/osrm/osrm-backend/include/extractor
mkdir
upload
Name
Size
Mode
Actions
intersection/
-
0755
rm
class_data.hpp
981
0644
edit
dl
rm
compressed_edge_container.hpp
3336
0644
edit
dl
rm
compressed_node_based_graph_edge.hpp
418
0644
edit
dl
rm
conditional_turn_penalty.hpp
589
0644
edit
dl
rm
datasources.hpp
1207
0644
edit
dl
rm
edge_based_edge.hpp
3467
0644
edit
dl
rm
edge_based_graph_factory.hpp
7787
0644
edit
dl
rm
edge_based_node.hpp
383
0644
edit
dl
rm
edge_based_node_segment.hpp
2050
0644
edit
dl
rm
extraction_containers.hpp
3679
0644
edit
dl
rm
extraction_helper_functions.hpp
4827
0644
edit
dl
rm
extraction_node.hpp
459
0644
edit
dl
rm
extraction_relation.hpp
5949
0644
edit
dl
rm
extraction_segment.hpp
715
0644
edit
dl
rm
extraction_turn.hpp
4983
0644
edit
dl
rm
extraction_way.hpp
4268
0644
edit
dl
rm
extractor.hpp
5267
0644
edit
dl
rm
extractor_callbacks.hpp
3249
0644
edit
dl
rm
extractor_config.hpp
3040
0644
edit
dl
rm
files.hpp
24372
0644
edit
dl
rm
graph_compressor.hpp
1271
0644
edit
dl
rm
internal_extractor_edge.hpp
2642
0644
edit
dl
rm
intersection_bearings_container.hpp
4487
0644
edit
dl
rm
location_dependent_data.hpp
1797
0644
edit
dl
rm
maneuver_override.hpp
5456
0644
edit
dl
rm
maneuver_override_relation_parser.hpp
1785
0644
edit
dl
rm
name_table.hpp
3596
0644
edit
dl
rm
nbg_to_ebg.hpp
450
0644
edit
dl
rm
nodes_of_way.hpp
1411
0644
edit
dl
rm
node_based_edge.hpp
8024
0644
edit
dl
rm
node_based_graph_factory.hpp
5155
0644
edit
dl
rm
node_data_container.hpp
4558
0644
edit
dl
rm
node_restriction_map.hpp
2292
0644
edit
dl
rm
packed_osm_ids.hpp
520
0644
edit
dl
rm
profile_properties.hpp
5029
0644
edit
dl
rm
query_node.hpp
1411
0644
edit
dl
rm
raster_source.hpp
5002
0644
edit
dl
rm
restriction.hpp
1750
0644
edit
dl
rm
restriction_graph.hpp
4500
0644
edit
dl
rm
restriction_parser.hpp
1768
0644
edit
dl
rm
road_classification.hpp
8390
0644
edit
dl
rm
scripting_environment.hpp
2426
0644
edit
dl
rm
scripting_environment_lua.hpp
4253
0644
edit
dl
rm
segment_data_container.hpp
8032
0644
edit
dl
rm
serialization.hpp
8834
0644
edit
dl
rm
suffix_table.hpp
1407
0644
edit
dl
rm
traffic_lights.hpp
514
0644
edit
dl
rm
traffic_signals.hpp
656
0644
edit
dl
rm
travel_mode.hpp
3666
0644
edit
dl
rm
turn_lane_types.hpp
3754
0644
edit
dl
rm
turn_path.hpp
7483
0644
edit
dl
rm
turn_path_compressor.hpp
2220
0644
edit
dl
rm
turn_path_filter.hpp
669
0644
edit
dl
rm
way_restriction_map.hpp
3114
0644
edit
dl
rm
Edit:
/srv/osrm/osrm-backend/include/extractor/extractor.hpp
(5267B)
/* Copyright (c) 2017, Project OSRM contributors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef EXTRACTOR_HPP #define EXTRACTOR_HPP #include "extractor/edge_based_edge.hpp" #include "extractor/edge_based_graph_factory.hpp" #include "extractor/extractor_config.hpp" #include "extractor/graph_compressor.hpp" #include "extractor/maneuver_override.hpp" #include "extractor/packed_osm_ids.hpp" #include "guidance/guidance_processing.hpp" #include "guidance/turn_data_container.hpp" #include "util/guidance/bearing_class.hpp" #include "util/guidance/entry_class.hpp" #include "util/guidance/turn_lanes.hpp" #include "restriction_graph.hpp" #include "traffic_signals.hpp" #include "util/typedefs.hpp" namespace osrm::extractor { class ScriptingEnvironment; struct ProfileProperties; class Extractor { public: Extractor(ExtractorConfig extractor_config) : config(std::move(extractor_config)) {} int run(ScriptingEnvironment &scripting_environment); private: struct ParsedOSMData { LaneDescriptionMap turn_lane_map; std::vector<TurnRestriction> turn_restrictions; std::vector<UnresolvedManeuverOverride> unresolved_maneuver_overrides; TrafficSignals traffic_signals; std::unordered_set<NodeID> barriers; std::vector<util::Coordinate> osm_coordinates; extractor::PackedOSMIDs osm_node_ids; std::vector<NodeBasedEdge> edge_list; std::vector<NodeBasedEdgeAnnotation> annotation_data; }; private: ExtractorConfig config; ParsedOSMData ParseOSMData(ScriptingEnvironment &scripting_environment, const unsigned number_of_threads); EdgeID BuildEdgeExpandedGraph( // input data const util::NodeBasedDynamicGraph &node_based_graph, const std::vector<util::Coordinate> &coordinates, const CompressedEdgeContainer &compressed_edge_container, const std::unordered_set<NodeID> &barrier_nodes, const TrafficSignals &traffic_signals, const RestrictionGraph &restriction_graph, const std::unordered_set<EdgeID> &segregated_edges, const NameTable &name_table, const std::vector<UnresolvedManeuverOverride> &maneuver_overrides, const LaneDescriptionMap &turn_lane_map, // for calculating turn penalties ScriptingEnvironment &scripting_environment, // output data EdgeBasedNodeDataContainer &edge_based_nodes_container, std::vector<EdgeBasedNodeSegment> &edge_based_node_segments, std::vector<EdgeWeight> &edge_based_node_weights, std::vector<EdgeDuration> &edge_based_node_durations, std::vector<EdgeDistance> &edge_based_node_distances, util::DeallocatingVector<EdgeBasedEdge> &edge_based_edge_list, std::uint32_t &connectivity_checksum); void FindComponents(unsigned max_edge_id, const util::DeallocatingVector<EdgeBasedEdge> &input_edge_list, const std::vector<EdgeBasedNodeSegment> &input_node_segments, EdgeBasedNodeDataContainer &nodes_container) const; void BuildRTree(std::vector<EdgeBasedNodeSegment> edge_based_node_segments, const std::vector<util::Coordinate> &coordinates); void ProcessGuidanceTurns(const util::NodeBasedDynamicGraph &node_based_graph, const EdgeBasedNodeDataContainer &edge_based_node_container, const std::vector<util::Coordinate> &node_coordinates, const CompressedEdgeContainer &compressed_edge_container, const std::unordered_set<NodeID> &barrier_nodes, const RestrictionGraph &restriction_graph, const NameTable &name_table, LaneDescriptionMap lane_description_map, ScriptingEnvironment &scripting_environment); }; } // namespace osrm::extractor #endif /* EXTRACTOR_HPP */
Save
cmd:
run