Apply clang format
This commit is contained in:
parent
580c5e39ae
commit
c2fd64d3cc
@ -14,10 +14,7 @@ namespace extractor
|
|||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
|
|
||||||
inline const char * checkedString(const char * str)
|
inline const char *checkedString(const char *str) { return str ? str : ""; }
|
||||||
{
|
|
||||||
return str ? str : "";
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|
||||||
@ -25,10 +22,7 @@ struct ExtractionRelation
|
|||||||
{
|
{
|
||||||
using AttributesMap = std::unordered_map<std::string, std::string>;
|
using AttributesMap = std::unordered_map<std::string, std::string>;
|
||||||
|
|
||||||
ExtractionRelation()
|
ExtractionRelation() : is_restriction(false) {}
|
||||||
: is_restriction(false)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void clear()
|
void clear()
|
||||||
{
|
{
|
||||||
@ -36,15 +30,9 @@ struct ExtractionRelation
|
|||||||
values.clear();
|
values.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsRestriction() const
|
bool IsRestriction() const { return is_restriction; }
|
||||||
{
|
|
||||||
return is_restriction;
|
|
||||||
}
|
|
||||||
|
|
||||||
AttributesMap & GetMember(util::OsmIDTyped id)
|
AttributesMap &GetMember(util::OsmIDTyped id) { return values[id.Hash()]; }
|
||||||
{
|
|
||||||
return values[id.Hash()];
|
|
||||||
}
|
|
||||||
|
|
||||||
bool is_restriction;
|
bool is_restriction;
|
||||||
std::unordered_map<util::OsmIDTyped::HashType, AttributesMap> values;
|
std::unordered_map<util::OsmIDTyped::HashType, AttributesMap> values;
|
||||||
@ -53,18 +41,18 @@ struct ExtractionRelation
|
|||||||
// It contains data of all parsed relations for each node/way element
|
// It contains data of all parsed relations for each node/way element
|
||||||
class ExtractionRelationContainer
|
class ExtractionRelationContainer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
using AttributesMap = ExtractionRelation::AttributesMap;
|
using AttributesMap = ExtractionRelation::AttributesMap;
|
||||||
using RelationList = std::vector<AttributesMap>;
|
using RelationList = std::vector<AttributesMap>;
|
||||||
|
|
||||||
void AddRelation(const ExtractionRelation & rel)
|
void AddRelation(const ExtractionRelation &rel)
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(!rel.is_restriction);
|
BOOST_ASSERT(!rel.is_restriction);
|
||||||
for (auto it : rel.values)
|
for (auto it : rel.values)
|
||||||
data[it.first].push_back(it.second);
|
data[it.first].push_back(it.second);
|
||||||
}
|
}
|
||||||
|
|
||||||
const RelationList & Get(const util::OsmIDTyped & id) const
|
const RelationList &Get(const util::OsmIDTyped &id) const
|
||||||
{
|
{
|
||||||
const auto it = data.find(id.Hash());
|
const auto it = data.find(id.Hash());
|
||||||
if (it != data.end())
|
if (it != data.end())
|
||||||
@ -74,7 +62,7 @@ public:
|
|||||||
return empty;
|
return empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// TODO: need to store more common data
|
// TODO: need to store more common data
|
||||||
std::unordered_map<util::OsmIDTyped::HashType, RelationList> data;
|
std::unordered_map<util::OsmIDTyped::HashType, RelationList> data;
|
||||||
};
|
};
|
||||||
|
@ -90,7 +90,6 @@ class ExtractorCallbacks
|
|||||||
// warning: caller needs to take care of synchronization!
|
// warning: caller needs to take care of synchronization!
|
||||||
void ProcessWay(const osmium::Way ¤t_way, const ExtractionWay &result_way);
|
void ProcessWay(const osmium::Way ¤t_way, const ExtractionWay &result_way);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,14 +62,14 @@ class ScriptingEnvironment
|
|||||||
virtual void ProcessTurn(ExtractionTurn &turn) = 0;
|
virtual void ProcessTurn(ExtractionTurn &turn) = 0;
|
||||||
virtual void ProcessSegment(ExtractionSegment &segment) = 0;
|
virtual void ProcessSegment(ExtractionSegment &segment) = 0;
|
||||||
|
|
||||||
virtual void
|
virtual void ProcessElements(
|
||||||
ProcessElements(const osmium::memory::Buffer &buffer,
|
const osmium::memory::Buffer &buffer,
|
||||||
const RestrictionParser &restriction_parser,
|
const RestrictionParser &restriction_parser,
|
||||||
const ExtractionRelationContainer &relations,
|
const ExtractionRelationContainer &relations,
|
||||||
std::vector<std::pair<const osmium::Node &, ExtractionNode>> &resulting_nodes,
|
std::vector<std::pair<const osmium::Node &, ExtractionNode>> &resulting_nodes,
|
||||||
std::vector<std::pair<const osmium::Way &, ExtractionWay>> &resulting_ways,
|
std::vector<std::pair<const osmium::Way &, ExtractionWay>> &resulting_ways,
|
||||||
std::vector<std::pair<const osmium::Relation &, ExtractionRelation>> &resulting_relations,
|
std::vector<std::pair<const osmium::Relation &, ExtractionRelation>> &resulting_relations,
|
||||||
std::vector<InputConditionalTurnRestriction> &resulting_restrictions) = 0;
|
std::vector<InputConditionalTurnRestriction> &resulting_restrictions) = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#ifndef SCRIPTING_ENVIRONMENT_LUA_HPP
|
#ifndef SCRIPTING_ENVIRONMENT_LUA_HPP
|
||||||
#define SCRIPTING_ENVIRONMENT_LUA_HPP
|
#define SCRIPTING_ENVIRONMENT_LUA_HPP
|
||||||
|
|
||||||
|
#include "extractor/extraction_relation.hpp"
|
||||||
#include "extractor/raster_source.hpp"
|
#include "extractor/raster_source.hpp"
|
||||||
#include "extractor/scripting_environment.hpp"
|
#include "extractor/scripting_environment.hpp"
|
||||||
#include "extractor/extraction_relation.hpp"
|
|
||||||
|
|
||||||
#include <tbb/enumerable_thread_specific.h>
|
#include <tbb/enumerable_thread_specific.h>
|
||||||
|
|
||||||
@ -20,8 +20,12 @@ namespace extractor
|
|||||||
|
|
||||||
struct LuaScriptingContext final
|
struct LuaScriptingContext final
|
||||||
{
|
{
|
||||||
void ProcessNode(const osmium::Node &, ExtractionNode &result, const ExtractionRelationContainer::RelationList &relations);
|
void ProcessNode(const osmium::Node &,
|
||||||
void ProcessWay(const osmium::Way &, ExtractionWay &result, const ExtractionRelationContainer::RelationList &relations);
|
ExtractionNode &result,
|
||||||
|
const ExtractionRelationContainer::RelationList &relations);
|
||||||
|
void ProcessWay(const osmium::Way &,
|
||||||
|
ExtractionWay &result,
|
||||||
|
const ExtractionRelationContainer::RelationList &relations);
|
||||||
void ProcessRelation(const osmium::Relation &, ExtractionRelation &result);
|
void ProcessRelation(const osmium::Relation &, ExtractionRelation &result);
|
||||||
|
|
||||||
ProfileProperties properties;
|
ProfileProperties properties;
|
||||||
@ -69,14 +73,14 @@ class Sol2ScriptingEnvironment final : public ScriptingEnvironment
|
|||||||
void ProcessTurn(ExtractionTurn &turn) override;
|
void ProcessTurn(ExtractionTurn &turn) override;
|
||||||
void ProcessSegment(ExtractionSegment &segment) override;
|
void ProcessSegment(ExtractionSegment &segment) override;
|
||||||
|
|
||||||
void
|
void ProcessElements(
|
||||||
ProcessElements(const osmium::memory::Buffer &buffer,
|
const osmium::memory::Buffer &buffer,
|
||||||
const RestrictionParser &restriction_parser,
|
const RestrictionParser &restriction_parser,
|
||||||
const ExtractionRelationContainer &relations,
|
const ExtractionRelationContainer &relations,
|
||||||
std::vector<std::pair<const osmium::Node &, ExtractionNode>> &resulting_nodes,
|
std::vector<std::pair<const osmium::Node &, ExtractionNode>> &resulting_nodes,
|
||||||
std::vector<std::pair<const osmium::Way &, ExtractionWay>> &resulting_ways,
|
std::vector<std::pair<const osmium::Way &, ExtractionWay>> &resulting_ways,
|
||||||
std::vector<std::pair<const osmium::Relation &, ExtractionRelation>> &resulting_relations,
|
std::vector<std::pair<const osmium::Relation &, ExtractionRelation>> &resulting_relations,
|
||||||
std::vector<InputConditionalTurnRestriction> &resulting_restrictions) override;
|
std::vector<InputConditionalTurnRestriction> &resulting_restrictions) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
LuaScriptingContext &GetSol2Context();
|
LuaScriptingContext &GetSol2Context();
|
||||||
|
@ -10,26 +10,24 @@ namespace util
|
|||||||
|
|
||||||
class OsmIDTyped
|
class OsmIDTyped
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
using HashType = std::uint64_t;
|
using HashType = std::uint64_t;
|
||||||
|
|
||||||
OsmIDTyped(std::uint64_t id_, std::uint8_t type_)
|
OsmIDTyped(std::uint64_t id_, std::uint8_t type_) : id(id_), type(type_)
|
||||||
: id(id_)
|
|
||||||
, type(type_)
|
|
||||||
{
|
{
|
||||||
// check if type value not above type size bound
|
// check if type value not above type size bound
|
||||||
BOOST_ASSERT(id_ < (std::uint64_t(1) << 56));
|
BOOST_ASSERT(id_ < (std::uint64_t(1) << 56));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator == (const OsmIDTyped &other) { return (id == other.id && type == other.type); }
|
bool operator==(const OsmIDTyped &other) { return (id == other.id && type == other.type); }
|
||||||
bool operator != (const OsmIDTyped &other) { return (id != other.id || type != other.type); }
|
bool operator!=(const OsmIDTyped &other) { return (id != other.id || type != other.type); }
|
||||||
|
|
||||||
inline HashType Hash() const { return (std::uint64_t(id) | std::uint64_t(type) << 56); }
|
inline HashType Hash() const { return (std::uint64_t(id) | std::uint64_t(type) << 56); }
|
||||||
|
|
||||||
std::uint64_t GetID() const { return id; }
|
std::uint64_t GetID() const { return id; }
|
||||||
std::uint8_t GetType() const { return type; }
|
std::uint8_t GetType() const { return type; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::uint64_t id : 56;
|
std::uint64_t id : 56;
|
||||||
std::uint8_t type;
|
std::uint8_t type;
|
||||||
};
|
};
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
#include "extractor/edge_based_edge.hpp"
|
#include "extractor/edge_based_edge.hpp"
|
||||||
#include "extractor/extraction_containers.hpp"
|
#include "extractor/extraction_containers.hpp"
|
||||||
#include "extractor/extraction_node.hpp"
|
#include "extractor/extraction_node.hpp"
|
||||||
#include "extractor/extraction_way.hpp"
|
|
||||||
#include "extractor/extraction_relation.hpp"
|
#include "extractor/extraction_relation.hpp"
|
||||||
|
#include "extractor/extraction_way.hpp"
|
||||||
#include "extractor/extractor_callbacks.hpp"
|
#include "extractor/extractor_callbacks.hpp"
|
||||||
#include "extractor/files.hpp"
|
#include "extractor/files.hpp"
|
||||||
#include "extractor/raster_source.hpp"
|
#include "extractor/raster_source.hpp"
|
||||||
@ -290,9 +290,10 @@ Extractor::ParseOSMData(ScriptingEnvironment &scripting_environment,
|
|||||||
const osmium::io::File input_file(config.input_path.string());
|
const osmium::io::File input_file(config.input_path.string());
|
||||||
osmium::thread::Pool pool(number_of_threads);
|
osmium::thread::Pool pool(number_of_threads);
|
||||||
|
|
||||||
std::unique_ptr<osmium::io::Reader> reader(
|
std::unique_ptr<osmium::io::Reader> reader(new osmium::io::Reader(
|
||||||
new osmium::io::Reader(input_file, osmium::osm_entity_bits::relation,
|
input_file,
|
||||||
(config.use_metadata ? osmium::io::read_meta::yes : osmium::io::read_meta::no)));
|
osmium::osm_entity_bits::relation,
|
||||||
|
(config.use_metadata ? osmium::io::read_meta::yes : osmium::io::read_meta::no)));
|
||||||
|
|
||||||
osmium::io::Header header = reader->header();
|
osmium::io::Header header = reader->header();
|
||||||
|
|
||||||
@ -396,7 +397,7 @@ Extractor::ParseOSMData(ScriptingEnvironment &scripting_environment,
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
tbb::filter_t<std::shared_ptr<ParsedBuffer>, void> buffer_storage_relation(
|
tbb::filter_t<std::shared_ptr<ParsedBuffer>, void> buffer_storage_relation(
|
||||||
tbb::filter::serial_in_order, [&](const std::shared_ptr<ParsedBuffer> parsed_buffer) {
|
tbb::filter::serial_in_order, [&](const std::shared_ptr<ParsedBuffer> parsed_buffer) {
|
||||||
if (!parsed_buffer)
|
if (!parsed_buffer)
|
||||||
return;
|
return;
|
||||||
@ -429,8 +430,10 @@ Extractor::ParseOSMData(ScriptingEnvironment &scripting_environment,
|
|||||||
* processed there.
|
* processed there.
|
||||||
*/
|
*/
|
||||||
util::Log() << "Parse ways and nodes ...";
|
util::Log() << "Parse ways and nodes ...";
|
||||||
reader.reset(new osmium::io::Reader(input_file, osmium::osm_entity_bits::node | osmium::osm_entity_bits::way,
|
reader.reset(new osmium::io::Reader(
|
||||||
(config.use_metadata ? osmium::io::read_meta::yes : osmium::io::read_meta::no)));
|
input_file,
|
||||||
|
osmium::osm_entity_bits::node | osmium::osm_entity_bits::way,
|
||||||
|
(config.use_metadata ? osmium::io::read_meta::yes : osmium::io::read_meta::no)));
|
||||||
|
|
||||||
// Number of pipeline tokens that yielded the best speedup was about 1.5 * num_cores
|
// Number of pipeline tokens that yielded the best speedup was about 1.5 * num_cores
|
||||||
tbb::parallel_pipeline(tbb::task_scheduler_init::default_num_threads() * 1.5,
|
tbb::parallel_pipeline(tbb::task_scheduler_init::default_num_threads() * 1.5,
|
||||||
|
@ -290,24 +290,18 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
|
|||||||
|
|
||||||
struct RelationMemberWrap
|
struct RelationMemberWrap
|
||||||
{
|
{
|
||||||
explicit RelationMemberWrap(const osmium::RelationMember & member)
|
explicit RelationMemberWrap(const osmium::RelationMember &member) { init(member); }
|
||||||
{
|
|
||||||
init(member);
|
|
||||||
}
|
|
||||||
|
|
||||||
RelationMemberWrap()
|
RelationMemberWrap() : item_type(osmium::item_type::undefined) {}
|
||||||
: item_type(osmium::item_type::undefined)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void init(const osmium::RelationMember & member)
|
void init(const osmium::RelationMember &member)
|
||||||
{
|
{
|
||||||
role = member.role();
|
role = member.role();
|
||||||
item_type = member.type();
|
item_type = member.type();
|
||||||
id = member.ref();
|
id = member.ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* GetRole() const { return role.c_str(); }
|
const char *GetRole() const { return role.c_str(); }
|
||||||
osmium::item_type GetItemType() const { return item_type; }
|
osmium::item_type GetItemType() const { return item_type; }
|
||||||
osmium::object_id_type GetId() const { return id; }
|
osmium::object_id_type GetId() const { return id; }
|
||||||
|
|
||||||
@ -319,20 +313,13 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
|
|||||||
};
|
};
|
||||||
|
|
||||||
context.state.new_usertype<util::OsmIDTyped>(
|
context.state.new_usertype<util::OsmIDTyped>(
|
||||||
"OsmIDTypes",
|
"OsmIDTypes", "id", &util::OsmIDTyped::GetID, "type", &util::OsmIDTyped::GetType);
|
||||||
"id",
|
|
||||||
&util::OsmIDTyped::GetID,
|
|
||||||
"type",
|
|
||||||
&util::OsmIDTyped::GetType
|
|
||||||
);
|
|
||||||
|
|
||||||
context.state.new_usertype<RelationMemberWrap>(
|
context.state.new_usertype<RelationMemberWrap>("RelationMember",
|
||||||
"RelationMember",
|
"role",
|
||||||
"role",
|
&RelationMemberWrap::GetRole,
|
||||||
&RelationMemberWrap::GetRole,
|
"item_type",
|
||||||
"item_type",
|
&RelationMemberWrap::GetItemType);
|
||||||
&RelationMemberWrap::GetItemType
|
|
||||||
);
|
|
||||||
|
|
||||||
/** TODO: make better solution with members iteration.
|
/** TODO: make better solution with members iteration.
|
||||||
* For this moment, just make vector of RelationMember wrappers
|
* For this moment, just make vector of RelationMember wrappers
|
||||||
@ -344,14 +331,15 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
|
|||||||
&osmium::Relation::id,
|
&osmium::Relation::id,
|
||||||
"version",
|
"version",
|
||||||
&osmium::Relation::version,
|
&osmium::Relation::version,
|
||||||
"members", [](const osmium::Relation &rel)
|
"members",
|
||||||
{
|
[](const osmium::Relation &rel) {
|
||||||
std::vector<RelationMemberWrap> members(rel.members().size());
|
std::vector<RelationMemberWrap> members(
|
||||||
size_t i = 0;
|
rel.members().size());
|
||||||
for (const auto & m : rel.members())
|
size_t i = 0;
|
||||||
members[i++].init(m);
|
for (const auto &m : rel.members())
|
||||||
return sol::as_table(std::move(members));
|
members[i++].init(m);
|
||||||
});
|
return sol::as_table(std::move(members));
|
||||||
|
});
|
||||||
|
|
||||||
context.state.new_usertype<osmium::Node>("Node",
|
context.state.new_usertype<osmium::Node>("Node",
|
||||||
"location",
|
"location",
|
||||||
@ -445,34 +433,37 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
|
|||||||
|
|
||||||
struct ExtractionRelationData
|
struct ExtractionRelationData
|
||||||
{
|
{
|
||||||
explicit ExtractionRelationData(ExtractionRelation::AttributesMap & attrs_)
|
explicit ExtractionRelationData(ExtractionRelation::AttributesMap &attrs_) : attrs(attrs_)
|
||||||
: attrs(attrs_)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
ExtractionRelation::AttributesMap & attrs;
|
ExtractionRelation::AttributesMap &attrs;
|
||||||
};
|
};
|
||||||
|
|
||||||
context.state.new_usertype<ExtractionRelationData>(
|
context.state.new_usertype<ExtractionRelationData>(
|
||||||
"ExtractionRelationData",
|
"ExtractionRelationData",
|
||||||
"size",
|
"size",
|
||||||
[](const ExtractionRelationData & data) { return data.attrs.size(); },
|
[](const ExtractionRelationData &data) { return data.attrs.size(); },
|
||||||
sol::meta_function::new_index,
|
sol::meta_function::new_index,
|
||||||
[](ExtractionRelationData & data, const std::string & key, sol::stack_object object) { return data.attrs[key] = object.as<std::string>(); },
|
[](ExtractionRelationData &data, const std::string &key, sol::stack_object object) {
|
||||||
|
return data.attrs[key] = object.as<std::string>();
|
||||||
|
},
|
||||||
sol::meta_function::index,
|
sol::meta_function::index,
|
||||||
[](ExtractionRelationData & data, const std::string & key) { return data.attrs[key]; }
|
[](ExtractionRelationData &data, const std::string &key) { return data.attrs[key]; });
|
||||||
);
|
|
||||||
|
|
||||||
context.state.new_usertype<ExtractionRelation>(
|
context.state.new_usertype<ExtractionRelation>(
|
||||||
"ExtractionRelation",
|
"ExtractionRelation",
|
||||||
sol::meta_function::new_index,
|
sol::meta_function::new_index,
|
||||||
[](ExtractionRelation & rel, const RelationMemberWrap & member) { return ExtractionRelationData(rel.GetMember(member.ref())); },
|
[](ExtractionRelation &rel, const RelationMemberWrap &member) {
|
||||||
|
return ExtractionRelationData(rel.GetMember(member.ref()));
|
||||||
|
},
|
||||||
sol::meta_function::index,
|
sol::meta_function::index,
|
||||||
[](ExtractionRelation & rel, const RelationMemberWrap & member) { return ExtractionRelationData(rel.GetMember(member.ref())); },
|
[](ExtractionRelation &rel, const RelationMemberWrap &member) {
|
||||||
|
return ExtractionRelationData(rel.GetMember(member.ref()));
|
||||||
|
},
|
||||||
"restriction",
|
"restriction",
|
||||||
sol::property([](const ExtractionRelation & rel) { return rel.is_restriction; },
|
sol::property([](const ExtractionRelation &rel) { return rel.is_restriction; },
|
||||||
[](ExtractionRelation & rel, bool flag) { rel.is_restriction = flag; })
|
[](ExtractionRelation &rel, bool flag) { rel.is_restriction = flag; }));
|
||||||
);
|
|
||||||
|
|
||||||
context.state.new_usertype<ExtractionSegment>("ExtractionSegment",
|
context.state.new_usertype<ExtractionSegment>("ExtractionSegment",
|
||||||
"source",
|
"source",
|
||||||
@ -565,8 +556,7 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
|
|||||||
util::Log() << "Using profile api version " << context.api_version;
|
util::Log() << "Using profile api version " << context.api_version;
|
||||||
|
|
||||||
// version-dependent parts of the api
|
// version-dependent parts of the api
|
||||||
auto initV2Context = [&]()
|
auto initV2Context = [&]() {
|
||||||
{
|
|
||||||
// clear global not used in v2
|
// clear global not used in v2
|
||||||
context.state["properties"] = sol::nullopt;
|
context.state["properties"] = sol::nullopt;
|
||||||
|
|
||||||
@ -758,7 +748,7 @@ void Sol2ScriptingEnvironment::ProcessElements(
|
|||||||
(!static_cast<const osmium::Node &>(*entity).tags().empty() ||
|
(!static_cast<const osmium::Node &>(*entity).tags().empty() ||
|
||||||
local_context.properties.call_tagless_node_function))
|
local_context.properties.call_tagless_node_function))
|
||||||
{
|
{
|
||||||
const osmium::Node & node = static_cast<const osmium::Node &>(*entity);
|
const osmium::Node &node = static_cast<const osmium::Node &>(*entity);
|
||||||
const util::OsmIDTyped id(node.id(), std::uint8_t(node.type()));
|
const util::OsmIDTyped id(node.id(), std::uint8_t(node.type()));
|
||||||
local_context.ProcessNode(node, result_node, relations.Get(id));
|
local_context.ProcessNode(node, result_node, relations.Get(id));
|
||||||
}
|
}
|
||||||
@ -769,7 +759,7 @@ void Sol2ScriptingEnvironment::ProcessElements(
|
|||||||
result_way.clear();
|
result_way.clear();
|
||||||
if (local_context.has_way_function)
|
if (local_context.has_way_function)
|
||||||
{
|
{
|
||||||
const osmium::Way & way = static_cast<const osmium::Way &>(*entity);
|
const osmium::Way &way = static_cast<const osmium::Way &>(*entity);
|
||||||
const util::OsmIDTyped id(way.id(), std::uint8_t(way.type()));
|
const util::OsmIDTyped id(way.id(), std::uint8_t(way.type()));
|
||||||
local_context.ProcessWay(way, result_way, relations.Get(id));
|
local_context.ProcessWay(way, result_way, relations.Get(id));
|
||||||
}
|
}
|
||||||
@ -790,10 +780,13 @@ void Sol2ScriptingEnvironment::ProcessElements(
|
|||||||
result_relation.clear();
|
result_relation.clear();
|
||||||
if (local_context.has_relation_function)
|
if (local_context.has_relation_function)
|
||||||
{
|
{
|
||||||
local_context.ProcessRelation(static_cast<const osmium::Relation &>(*entity), result_relation);
|
local_context.ProcessRelation(static_cast<const osmium::Relation &>(*entity),
|
||||||
|
result_relation);
|
||||||
}
|
}
|
||||||
resulting_relations.push_back(std::pair<const osmium::Relation &, ExtractionRelation>(
|
resulting_relations.push_back(
|
||||||
static_cast<const osmium::Relation &>(*entity), std::move(result_relation)));
|
std::pair<const osmium::Relation &, ExtractionRelation>(
|
||||||
|
static_cast<const osmium::Relation &>(*entity),
|
||||||
|
std::move(result_relation)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1012,7 +1005,9 @@ void Sol2ScriptingEnvironment::ProcessSegment(ExtractionSegment &segment)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LuaScriptingContext::ProcessNode(const osmium::Node &node, ExtractionNode &result, const ExtractionRelationContainer::RelationList &relations)
|
void LuaScriptingContext::ProcessNode(const osmium::Node &node,
|
||||||
|
ExtractionNode &result,
|
||||||
|
const ExtractionRelationContainer::RelationList &relations)
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(state.lua_state() != nullptr);
|
BOOST_ASSERT(state.lua_state() != nullptr);
|
||||||
|
|
||||||
@ -1031,7 +1026,9 @@ void LuaScriptingContext::ProcessNode(const osmium::Node &node, ExtractionNode &
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LuaScriptingContext::ProcessWay(const osmium::Way &way, ExtractionWay &result, const ExtractionRelationContainer::RelationList &relations)
|
void LuaScriptingContext::ProcessWay(const osmium::Way &way,
|
||||||
|
ExtractionWay &result,
|
||||||
|
const ExtractionRelationContainer::RelationList &relations)
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(state.lua_state() != nullptr);
|
BOOST_ASSERT(state.lua_state() != nullptr);
|
||||||
|
|
||||||
@ -1050,7 +1047,8 @@ void LuaScriptingContext::ProcessWay(const osmium::Way &way, ExtractionWay &resu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LuaScriptingContext::ProcessRelation(const osmium::Relation &relation, ExtractionRelation &result)
|
void LuaScriptingContext::ProcessRelation(const osmium::Relation &relation,
|
||||||
|
ExtractionRelation &result)
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(state.lua_state() != nullptr);
|
BOOST_ASSERT(state.lua_state() != nullptr);
|
||||||
BOOST_ASSERT(api_version > 2);
|
BOOST_ASSERT(api_version > 2);
|
||||||
|
@ -34,13 +34,14 @@ class MockScriptingEnvironment : public extractor::ScriptingEnvironment
|
|||||||
void ProcessTurn(extractor::ExtractionTurn &) override final {}
|
void ProcessTurn(extractor::ExtractionTurn &) override final {}
|
||||||
void ProcessSegment(extractor::ExtractionSegment &) override final {}
|
void ProcessSegment(extractor::ExtractionSegment &) override final {}
|
||||||
|
|
||||||
void ProcessElements(const osmium::memory::Buffer &,
|
void ProcessElements(
|
||||||
const extractor::RestrictionParser &,
|
const osmium::memory::Buffer &,
|
||||||
const extractor::ExtractionRelationContainer &,
|
const extractor::RestrictionParser &,
|
||||||
std::vector<std::pair<const osmium::Node &, extractor::ExtractionNode>> &,
|
const extractor::ExtractionRelationContainer &,
|
||||||
std::vector<std::pair<const osmium::Way &, extractor::ExtractionWay>> &,
|
std::vector<std::pair<const osmium::Node &, extractor::ExtractionNode>> &,
|
||||||
std::vector<std::pair<const osmium::Relation &, extractor::ExtractionRelation>> &,
|
std::vector<std::pair<const osmium::Way &, extractor::ExtractionWay>> &,
|
||||||
std::vector<extractor::InputConditionalTurnRestriction> &) override final
|
std::vector<std::pair<const osmium::Relation &, extractor::ExtractionRelation>> &,
|
||||||
|
std::vector<extractor::InputConditionalTurnRestriction> &) override final
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user