#ifndef OSRM_UTIL_EXCLUDE_FLAG_HPP #define OSRM_UTIL_EXCLUDE_FLAG_HPP #include "extractor/node_data_container.hpp" #include "extractor/profile_properties.hpp" namespace osrm { namespace util { inline std::vector> excludeFlagsToNodeFilter(const NodeID number_of_nodes, const extractor::EdgeBasedNodeDataContainer &node_data, const extractor::ProfileProperties &properties) { std::vector> filters; for (auto mask : properties.excludable_classes) { if (mask != extractor::INAVLID_CLASS_DATA) { std::vector allowed_nodes(number_of_nodes); for (const auto node : util::irange(0, number_of_nodes)) { allowed_nodes[node] = (node_data.GetClassData(node) & mask) == 0; } filters.push_back(std::move(allowed_nodes)); } } return filters; } } } #endif