1#include <vanetza/asn1/security_profile.hpp>
2#include VANETZA_ASN1_SECURITY_HEADER(PolygonalRegion.h)
3#include VANETZA_ASN1_SECURITY_HEADER(TwoDLocation.h)
4#include <vanetza/common/position_fix.hpp>
5#include <vanetza/security/v3/boost_geometry.hpp>
14TwoDLocationModel make_model(
const asn1::TwoDLocation& location)
16 return TwoDLocationModel(location.longitude * 1e-7, location.latitude * 1e-7);
21 return TwoDLocationModel(fix.longitude / units::degree, fix.latitude / units::degree);
25TwoDLocationIterator::TwoDLocationIterator(
const asn1::PolygonalRegion& region, std::size_t index) :
26 m_region(®ion), m_index(index)
47 return other.m_index - m_index;
52 return m_region == other.m_region && m_index == other.m_index;
57 assert(m_region !=
nullptr);
58 assert(m_region->list.array !=
nullptr);
59 assert(m_region->list.count >
static_cast<
decltype(m_region->list.count)>(m_index));
60 return make_model(*m_region->list.array[m_index]);
67 assert(m_region.list.array !=
nullptr);
82 return m_region.list.count;
Adapt ASN.1 PolygonalRegion to a Boost.Geometry ring.