1#include <vanetza/asn1/security/PolygonalRegion.h>
2#include <vanetza/asn1/security/TwoDLocation.h>
3#include <vanetza/common/position_fix.hpp>
4#include <vanetza/security/v3/boost_geometry.hpp>
13TwoDLocationModel make_model(
const asn1::TwoDLocation& location)
15 return TwoDLocationModel(location.longitude * 1e-7, location.latitude * 1e-7);
20 return TwoDLocationModel(fix.longitude / units::degree, fix.latitude / units::degree);
24TwoDLocationIterator::TwoDLocationIterator(
const asn1::PolygonalRegion& region, std::size_t index) :
25 m_region(®ion), m_index(index)
46 return other.m_index - m_index;
51 return m_region == other.m_region && m_index == other.m_index;
56 assert(m_region !=
nullptr);
57 assert(m_region->list.array !=
nullptr);
58 assert(m_region->list.count >
static_cast<
decltype(m_region->list.count)>(m_index));
59 return make_model(*m_region->list.array[m_index]);
66 assert(m_region.list.array !=
nullptr);
81 return m_region.list.count;
Adapt ASN.1 PolygonalRegion to a Boost.Geometry ring.