109 return {basicBegin(), basicEnd()};
113 size_t numSegments() const noexcept {
return size() < 2 ? 0 : size(); }
144 return {basicBegin(), basicEnd()};
148 size_t numSegments() const noexcept {
return size() < 2 ? 0 : size(); }
178 return {basicBegin(), basicEnd()};
206 BasicPolygon2d::allocator_type alloc;
345 template <
typename T>
357 template <
typename T>
369 template <
typename T>
371 return isCategory<T, traits::PolygonTag>();
393 std::transform(primitive.begin(), primitive.end(), p2d.begin(), utils::to2D<BasicPoint3d>);
397 template <
typename PolygonT>
414 template <
typename PolygonT>
427 template <
typename T,
typename RetT>
428 using IfPoly = std::enable_if_t<traits::isPolygonT<T>(), RetT>;
Polygon with access to primitive points.
const ConstPolygon2d & convert(const T &t) const
Polygon3d(const LineString3d &other)
Conversion from LineString3d. Does not ensure validity of the polygon!
Implementation template class that is common to all non-const types.
BasicPoints3d BasicLineString3d
Implementation template class that is common to all LineStrings.
BasicPolygon2d basicPolygon() const
create a simple 2d polygon from this (just a vector)
A (basic) 2d polygon with holes insideThis class is thought for geometry calculations, it has no properties of a normal lanelet primitive.
An mutable clockwise oriented, open (ie start point != end point) polygon in 2d.
An immutable clockwise oriented, open (ie start point != end point) polygon in 2d.
Eigen::Vector3d BasicPoint3d
a simple 3d-point
std::ostream & operator<<(std::ostream &stream, const Attribute &obj)
traits::BasicPointT< Point3d > BasicPointType
Polygon2d(const LineString2d &other)
Conversion from LineString2d. Does not ensure validity of the polygon!
BasicPolygon3d toBasicPolygon3d(BasicPolygon3d &&t)
const ConstPointType & back() const noexcept
returns the last point (if it exist)
const ConstPointType & front() const noexcept
returns the first point (if it exist)
ConstPolygon3d(const ConstLineString3d &other)
BasicIterator end() const noexcept
BasicPoint2d Iterator to past-the-end.
const ConstPolygon3d & convert(const T &t) const
BasicPolygon2d toBasicPolygon2d(BasicPolygon2d &&t)
BasicPointType front() const noexcept
Get first BasicPoint2d.
Primitive 2d polygon with basic points.
size_t numSegments() const noexcept
Returns the number of (geometrically valid) segments.
A normal 3d linestring with immutable data.
BasicPolygon3d(const BasicLineString3d &other)
BasicPointType back() const noexcept
Get last BasicPoint2d.
Identifies RegulatoryElementPrimitives.
const BasicPointType & operator[](size_t idx) const noexcept
access BasicPoint3d at specific position
Identifies LineStringPrimitives.
A normal 3d linestring with mutable data.
ConstHybridPolygon3d(const ConstPolygon3d &poly)
Conversion from ConstPolygon3d.
BasicIterator begin() const noexcept
BasicPoint3d Iterator to begin.
Polygon with access to primitive points.
A (basic) 2d polygon with holes insideThis class is thought for geometry calculations, it has no properties of a normal lanelet primitive.
BasicPoints2d BasicLineString2d
size_t numSegments() const noexcept
Returns the number of (geometrically valid) segments.
const ConstPointType & operator[](size_t idx) const noexcept
returns the point at this position
auto transform(Container &&c, Func f)
BasicPolygon2d to2D< BasicPolygon3d >(const BasicPolygon3d &primitive)
A mutable clockwise oriented, open (ie start point != end point) polygon in 3d.
ConstPolygon2d(const ConstLineString2d &other)
Conversion from/to ConstLineString2d.
Eigen::Matrix< double, 2, 1, Eigen::DontAlign > BasicPoint2d
a simple 2d-point
An immutable clockwise oriented, open (ie start point != end point) polygon in 3d.
BasicPolygon3d basicPolygon() const
create a simple 3d polygon from this (just a vector)
std::vector< BasicPolygon3d > BasicPolygons3d
BasicPolygon3d basicPolygon() const
create a simple 3d polygon from this (just a vector)
const BasicPointType & front() const noexcept
Get first BasicPoint3d.
BasicIterator end() const noexcept
BasicPoint3d Iterator to past-the-end.
BasicIterator begin() const noexcept
BasicPoint2d Iterator to begin.
BasicPolygon2d(const BasicLineString2d &other)
BasicPolygon3d toBasicPolygon3d< BasicPolygon3d >(const BasicPolygon3d &t)
std::enable_if_t< traits::isPolygonT< T >(), RetT > IfPoly
BasicPolygon2d basicPolygon() const
create a simple 2d polygon from this (just a vector)
BasicPointType operator[](size_t idx) const noexcept
access element at specific position
BoundingBox2d to2D(const BoundingBox3d &primitive)
constexpr bool isPolygonT()
const BasicPointType & back() const noexcept
Get last BasicPoint3d.
BoundingBox3d to3D(const BoundingBox2d &primitive)
BasicPolygon2d toBasicPolygon2d< BasicPolygon2d >(const BasicPolygon2d &t)
ConstHybridPolygon2d(const ConstPolygon2d &poly)
Conversion from ConstPolygon2d.
Primitive 3d polygon with basic points.
BasicPolygon2d toBasicPolygon2d< BasicPolygon3d >(const BasicPolygon3d &t)
A normal 2d linestring with immutable data.
A normal 2d linestring with mutable data.
ConstLineStringImpl(Id id=InvalId, Points3d points=Points3d(), const AttributeMap &attributes=AttributeMap())
Constructs a LineString or similar from an Id and a list of points.
std::vector< BasicPolygon2d > BasicPolygons2d