pass flags into process_segment (#6658)

* pass flags into process_segment

---------

Co-authored-by: Michael Bell <michael@mjjbell.com>
This commit is contained in:
Matthew Wigginton Bhagat-Conway
2024-04-06 04:27:42 -04:00
committed by GitHub
parent 8ef366e061
commit 7ebd21f39e
5 changed files with 69 additions and 4 deletions
+6 -1
View File
@@ -706,7 +706,12 @@ void ExtractionContainers::PrepareEdges(ScriptingEnvironment &scripting_environm
const auto accurate_distance =
util::coordinate_calculation::greatCircleDistance(source_coord, target_coord);
ExtractionSegment segment(source_coord, target_coord, distance, weight, duration);
ExtractionSegment segment(source_coord,
target_coord,
distance,
weight,
duration,
edge_iterator->result.flags);
scripting_environment.ProcessSegment(segment);
auto &edge = edge_iterator->result;
+33 -1
View File
@@ -471,6 +471,36 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
[](ExtractionRelationContainer &cont, const ExtractionRelation::OsmIDTyped &rel_id)
-> const ExtractionRelation & { return cont.GetRelationData(rel_id); });
context.state.new_usertype<NodeBasedEdgeClassification>(
"NodeBasedEdgeClassification",
"forward",
// can't just do &NodeBasedEdgeClassification::forward with bitfields
sol::property([](NodeBasedEdgeClassification &c) -> bool { return c.forward; }),
"backward",
sol::property([](NodeBasedEdgeClassification &c) -> bool { return c.backward; }),
"is_split",
sol::property([](NodeBasedEdgeClassification &c) -> bool { return c.is_split; }),
"roundabout",
sol::property([](NodeBasedEdgeClassification &c) -> bool { return c.roundabout; }),
"circular",
sol::property([](NodeBasedEdgeClassification &c) -> bool { return c.circular; }),
"startpoint",
sol::property([](NodeBasedEdgeClassification &c) -> bool { return c.startpoint; }),
"restricted",
sol::property([](NodeBasedEdgeClassification &c) -> bool { return c.restricted; }),
"road_classification",
sol::property([](NodeBasedEdgeClassification &c) -> RoadClassification {
return c.road_classification;
}),
"highway_turn_classification",
sol::property([](NodeBasedEdgeClassification &c) -> uint8_t {
return c.highway_turn_classification;
}),
"access_turn_classification",
sol::property([](NodeBasedEdgeClassification &c) -> uint8_t {
return c.access_turn_classification;
}));
context.state.new_usertype<ExtractionSegment>("ExtractionSegment",
"source",
&ExtractionSegment::source,
@@ -481,7 +511,9 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
"weight",
&ExtractionSegment::weight,
"duration",
&ExtractionSegment::duration);
&ExtractionSegment::duration,
"flags",
&ExtractionSegment::flags);
// Keep in mind .location is available only if .pbf is preprocessed to set the location with the
// ref using osmium command "osmium add-locations-to-ways"