/srv/osrm/osrm-backend/include/util
Edit: /srv/osrm/osrm-backend/include/util/exclude_flag.hpp (975B)
#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::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;
}
} // namespace osrm::util
#endif