CompoundPolygon.h
Go to the documentation of this file.
1 #pragma once
4 
5 namespace lanelet {
6 
11 class CompoundPolygon2d : public CompoundLineStringImpl<ConstPoint2d> {
12  public:
17  using MutableType = void;
19 
21  explicit CompoundPolygon2d(const CompoundPolygons2d& other)
22  : CompoundPolygon2d(utils::concatenate(other, [](auto& cls) { return cls.lineStrings(); })) {}
24  : CompoundPolygon2d(utils::concatenate(other, [](auto& cls) { return cls.lineStrings(); })) {}
25 
26  CompoundPolygon2d() = default;
28  explicit operator CompoundLineString2d() const { return CompoundLineString2d(constData(), inverted()); }
30  size_t numSegments() const noexcept { return std::max(size_t(1), size()); }
31 
33  BasicPolygon2d basicPolygon() const { return {basicBegin(), basicEnd()}; }
34 };
35 
40 class CompoundPolygon3d : public CompoundLineStringImpl<ConstPoint3d> {
41  public:
46  using MutableType = void;
50  : CompoundPolygon3d(utils::concatenate(other, [](auto& cls) { return cls.lineStrings(); })) {}
51  explicit CompoundPolygon3d(const CompoundPolygons3d& other)
52  : CompoundPolygon3d(utils::concatenate(other, [](auto& cls) { return cls.lineStrings(); })) {}
53 
54  CompoundPolygon3d() = default;
56  explicit operator CompoundLineString3d() const { return CompoundLineString3d(constData(), inverted()); }
58  size_t numSegments() const noexcept { return std::max(size_t(1), size()); }
59 
62  return BasicPolygon3d{basicBegin(), basicEnd(), BasicPolygon3d::allocator_type()};
63  }
64 };
65 
71 class CompoundHybridPolygon2d : public CompoundLineStringImpl<BasicPoint2d> {
72  public:
78  using MutableType = void;
80 
82  : CompoundHybridPolygon2d(utils::concatenate(other, [](auto& cls) { return cls.lineStrings(); })) {}
84  : CompoundHybridPolygon2d(utils::concatenate(other, [](auto& cls) { return cls.lineStrings(); })) {}
85 
86  CompoundHybridPolygon2d() = default;
88  explicit operator CompoundHybridLineString2d() const { return CompoundHybridLineString2d(constData(), inverted()); }
90  size_t numSegments() const noexcept { return std::max(size_t(1), size()); }
92  BasicPolygon2d basicPolygon() const { return {basicBegin(), basicEnd()}; }
93 };
94 
100 class CompoundHybridPolygon3d : public CompoundLineStringImpl<BasicPoint3d> {
101  public:
107  using MutableType = void;
109 
111  : CompoundHybridPolygon3d(utils::concatenate(other, [](auto& cls) { return cls.lineStrings(); })) {}
113  : CompoundHybridPolygon3d(utils::concatenate(other, [](auto& cls) { return cls.lineStrings(); })) {}
114  CompoundHybridPolygon3d() = default;
116  explicit operator CompoundHybridLineString3d() const { return CompoundHybridLineString3d(constData(), inverted()); }
118  size_t numSegments() const noexcept { return std::max(size_t(1), size()); }
119  BasicLineString basicLineString() = delete;
120  BasicPolygon3d basicPolygon() const { return {basicBegin(), basicEnd()}; }
121 };
122 } // namespace lanelet
lanelet::CompoundHybridPolygons3d
std::vector< CompoundHybridPolygon3d > CompoundHybridPolygons3d
Definition: Forward.h:89
lanelet::CompoundPolygon3d::CompoundPolygon3d
CompoundPolygon3d()=default
lanelet::CompoundPolygon3d::basicPolygon
BasicPolygon3d basicPolygon() const
Definition: CompoundPolygon.h:61
lanelet::CompoundHybridPolygon2d::MutableType
void MutableType
Definition: CompoundPolygon.h:78
lanelet::CompoundHybridLineString2d
A hybrid compound linestring in 2d (returns BasicPoint2d)
Definition: CompoundLineString.h:306
lanelet::CompoundHybridPolygon2d::basicLineString
BasicLineString basicLineString()=delete
lanelet::CompoundHybridPolygon3d::basicPolygon
BasicPolygon3d basicPolygon() const
Definition: CompoundPolygon.h:120
lanelet::CompoundPolygon3d
Combines multiple linestrings to one polygon in 3d.
Definition: CompoundPolygon.h:40
lanelet
Definition: Attribute.h:13
lanelet::CompoundPolygon2d::numSegments
size_t numSegments() const noexcept
Returns the number of (geometrically valid) segments.
Definition: CompoundPolygon.h:30
lanelet::CompoundPolygon2d::MutableType
void MutableType
Definition: CompoundPolygon.h:17
lanelet::CompoundHybridPolygon3d::CompoundHybridPolygon3d
CompoundHybridPolygon3d()=default
lanelet::CompoundHybridPolygon3d::CompoundHybridPolygon3d
CompoundHybridPolygon3d(const CompoundHybridLineString3d &other)
Definition: CompoundPolygon.h:115
lanelet::CompoundHybridPolygon3d::CompoundHybridPolygon3d
CompoundHybridPolygon3d(const CompoundHybridLineStrings3d &other)
Definition: CompoundPolygon.h:110
lanelet::CompoundHybridPolygon2d::CompoundHybridPolygon2d
CompoundHybridPolygon2d()=default
lanelet::CompoundPolygons2d
std::vector< CompoundPolygon2d > CompoundPolygons2d
Definition: Forward.h:87
lanelet::CompoundPolygon3d::CompoundPolygon3d
CompoundPolygon3d(const CompoundLineStrings3d &other)
Definition: CompoundPolygon.h:49
lanelet::CompoundHybridPolygon2d::CompoundHybridPolygon2d
CompoundHybridPolygon2d(const CompoundHybridPolygons2d &other)
Definition: CompoundPolygon.h:81
lanelet::CompoundHybridPolygon2d::CompoundHybridPolygon2d
CompoundHybridPolygon2d(const CompoundHybridLineStrings2d &other)
Definition: CompoundPolygon.h:83
lanelet::CompoundLineStringImpl< ConstPoint2d >::inverted
bool inverted() const noexcept
returns whether this is an inverted CompoundLineString
Definition: CompoundLineString.h:122
lanelet::CompoundHybridPolygon2d::numSegments
size_t numSegments() const noexcept
Returns the number of (geometrically valid) segments.
Definition: CompoundPolygon.h:90
lanelet::traits::PolygonTag
Identifies LineStringPrimitives.
Definition: Traits.h:9
lanelet::CompoundLineString3d
A Compound linestring in 3d (returns Point3d)
Definition: CompoundLineString.h:285
lanelet::CompoundLineStringImpl< ConstPoint2d >::BasicLineString
internal::SelectBasicLineStringT< BasicPointType > BasicLineString
Definition: CompoundLineString.h:84
lanelet::CompoundLineStrings3d
std::vector< CompoundLineString3d > CompoundLineStrings3d
Definition: Forward.h:77
lanelet::CompoundLineStringImpl< ConstPoint2d >::basicEnd
BasicIterator basicEnd() const
returns a normal iterator for the internal point type at end
Definition: CompoundLineString.h:215
lanelet::CompoundHybridPolygon3d::CompoundHybridPolygon3d
CompoundHybridPolygon3d(const CompoundHybridPolygons3d &other)
Definition: CompoundPolygon.h:112
lanelet::CompoundPolygon3d::CompoundPolygon3d
CompoundPolygon3d(const CompoundLineString3d &other)
Definition: CompoundPolygon.h:55
lanelet::CompoundPolygon2d::CompoundPolygon2d
CompoundPolygon2d()=default
lanelet::CompoundPolygon3d::numSegments
size_t numSegments() const noexcept
Returns the number of (geometrically valid) segments.
Definition: CompoundPolygon.h:58
lanelet::CompoundLineStringImpl< ConstPoint2d >::constData
std::shared_ptr< const CompoundLineStringData > constData() const noexcept
returns the internal data on the linestrings managed by this object
Definition: CompoundLineString.h:233
lanelet::CompoundHybridPolygon3d::MutableType
void MutableType
Definition: CompoundPolygon.h:107
lanelet::CompoundLineStringImpl< ConstPoint2d >::basicBegin
BasicIterator basicBegin() const
returns a normal iterator to the internal point type at begin
Definition: CompoundLineString.h:209
lanelet::CompoundHybridLineString3d
A hybrid compound linestring in 3d (returns BasicPoint3d)
Definition: CompoundLineString.h:327
lanelet::BasicPolygon3d
Primitive 3d polygon with basic points.
Definition: primitives/Polygon.h:38
lanelet::CompoundHybridPolygon2d
Combines multiple linestrings to one polygon in 2d that returns BasicPoint2d.
Definition: CompoundPolygon.h:71
lanelet::CompoundLineStringImpl::CompoundLineStringImpl
CompoundLineStringImpl(const ConstLineStrings3d &ls=ConstLineStrings3d())
Construct from a vector of ConstLineString3d.
Definition: CompoundLineString.h:91
lanelet::CompoundPolygon2d
Combines multiple linestrings to one polygon in 2d.
Definition: CompoundPolygon.h:11
lanelet::CompoundHybridPolygons2d
std::vector< CompoundHybridPolygon2d > CompoundHybridPolygons2d
Definition: Forward.h:88
lanelet::CompoundPolygon2d::CompoundPolygon2d
CompoundPolygon2d(const CompoundLineString2d &other)
Definition: CompoundPolygon.h:27
lanelet::CompoundHybridPolygon3d::basicLineString
BasicLineString basicLineString()=delete
lanelet::CompoundPolygon2d::basicLineString
BasicLineString basicLineString()=delete
lanelet::CompoundPolygon3d::MutableType
void MutableType
Definition: CompoundPolygon.h:46
lanelet::CompoundHybridPolygon2d::basicPolygon
BasicPolygon2d basicPolygon() const
Definition: CompoundPolygon.h:92
lanelet::CompoundPolygon3d::basicLineString
BasicLineString basicLineString()=delete
lanelet::CompoundHybridPolygon2d::CompoundHybridPolygon2d
CompoundHybridPolygon2d(const CompoundHybridLineString2d &other)
Definition: CompoundPolygon.h:87
lanelet::CompoundPolygon2d::CompoundPolygon2d
CompoundPolygon2d(const CompoundLineStrings2d &other)
Definition: CompoundPolygon.h:23
lanelet::CompoundLineString2d
A Compound linestring in 2d (returns Point2d)
Definition: CompoundLineString.h:263
lanelet::CompoundPolygon2d::basicPolygon
BasicPolygon2d basicPolygon() const
Definition: CompoundPolygon.h:33
lanelet::CompoundLineStringImpl< ConstPoint2d >::size
size_t size() const noexcept
return the total number of unique points
Definition: CompoundLineString.h:130
lanelet::CompoundPolygons3d
std::vector< CompoundPolygon3d > CompoundPolygons3d
Definition: Forward.h:86
lanelet::utils::detail::concatenate
VectorT concatenate(ContainerT &&c)
Definition: Utilities.h:63
Polygon.h
lanelet::CompoundLineStringImpl
A collection of lineStrings that act as one line string.
Definition: CompoundLineString.h:69
CompoundLineString.h
lanelet::CompoundHybridPolygon3d::numSegments
size_t numSegments() const noexcept
Returns the number of (geometrically valid) segments.
Definition: CompoundPolygon.h:118
lanelet::CompoundPolygon3d::CompoundPolygon3d
CompoundPolygon3d(const CompoundPolygons3d &other)
Definition: CompoundPolygon.h:51
lanelet::CompoundHybridLineStrings3d
std::vector< CompoundHybridLineString3d > CompoundHybridLineStrings3d
Definition: Forward.h:79
lanelet::CompoundHybridLineStrings2d
std::vector< CompoundHybridLineString2d > CompoundHybridLineStrings2d
Definition: Forward.h:78
lanelet::CompoundPolygon2d::CompoundPolygon2d
CompoundPolygon2d(const CompoundPolygons2d &other)
Definition: CompoundPolygon.h:21
lanelet::BasicPolygon2d
Primitive 2d polygon with basic points.
Definition: primitives/Polygon.h:18
lanelet::CompoundHybridPolygon3d
Combines multiple linestrings to one polygon in 3d that returns BasicPoint3d.
Definition: CompoundPolygon.h:100
lanelet::CompoundLineStrings2d
std::vector< CompoundLineString2d > CompoundLineStrings2d
Definition: Forward.h:76


lanelet2_core
Author(s): Fabian Poggenhans
autogenerated on Thu Mar 6 2025 03:25:52