geometry/Area.h
Go to the documentation of this file.
1 #pragma once
2 
6 
7 namespace lanelet {
8 namespace geometry {
15 template <typename AreaT>
16 IfAr<AreaT, bool> inside(const AreaT& area, const BasicPoint2d& point);
17 
25 template <typename AreaT>
26 IfAr<AreaT, BoundingBox2d> boundingBox2d(const AreaT& area);
27 
33 template <typename AreaT>
34 IfAr<AreaT, BoundingBox3d> boundingBox3d(const AreaT& area);
35 
37 template <typename Area1T, typename Area2T>
38 IfAr<Area1T, bool> intersects2d(const Area1T& area, const Area2T& otherArea);
39 
42 template <typename AreaT>
43 IfAr<AreaT, bool> overlaps2d(const AreaT& area, const AreaT& otherArea);
44 
47 template <typename AreaT>
48 IfAr<AreaT, bool> overlaps3d(const AreaT& area, const AreaT& otherArea, double heightTolerance);
49 
52 template <typename AreaT, typename LaneletT>
53 IfAr<AreaT, IfLL<LaneletT, bool>> overlaps2d(const AreaT& area, const LaneletT& lanelet);
54 
57 template <typename AreaT, typename LaneletT>
58 IfAr<AreaT, IfLL<LaneletT, bool>> overlaps3d(const AreaT& area, const LaneletT& lanelet, double heightTolerance);
59 
61 inline bool leftOf(const ConstLanelet& right, const ConstArea& left);
62 
64 inline bool rightOf(const ConstLanelet& left, const ConstArea& area);
65 
67 inline bool follows(const ConstLanelet& prev, const ConstArea& next);
68 
70 inline bool follows(const ConstArea& prev, const ConstLanelet& next);
71 
73 inline bool adjacent(const ConstArea& area1, const ConstArea& area2);
74 
82 
90 
98 
106 
114 
123 
132 
140 
148 } // namespace geometry
149 } // namespace lanelet
150 
151 #include "impl/Area.h"
IfAr< Area1T, bool > intersects2d(const Area1T &area, const Area2T &otherArea)
test whether two areas intersect in 2d.
IfAr< AreaT, bool > inside(const AreaT &area, const BasicPoint2d &point)
Checks whether a point is within or at the border of a area.
bool rightOf(const ConstLanelet &left, const ConstArea &area)
Test whether area is right of lanelet.
bool follows(const ConstLanelet &prev, const ConstArea &next)
Test whether area follows lanelet.
Optional< ConstLineString3d > determineCommonLineFollowing(const ConstArea &ar, const ConstLanelet &ll)
Optional< ConstLineString3d > determineCommonLineFollowingOrPreceding(const ConstArea &ar, const ConstLanelet &ll)
IfAr< AreaT, bool > overlaps2d(const AreaT &area, const AreaT &otherArea)
boost::optional< T > Optional
Definition: Optional.h:7
IfAr< AreaT, bool > overlaps3d(const AreaT &area, const AreaT &otherArea, double heightTolerance)
Optional< ConstLineString3d > determineCommonLineSideways(const ConstLanelet &ll, const ConstArea &ar)
Optional< ConstLineString3d > determineCommonLineRight(const ConstLanelet &left, const ConstArea &right)
IfAr< AreaT, BoundingBox2d > boundingBox2d(const AreaT &area)
calculates an up-right 2d bounding box
Optional< ConstLineString3d > determineCommonLinePreceding(const ConstLanelet &ll, const ConstArea &ar)
An immutable lanelet.
Optional< ConstLineString3d > determineCommonLine(const ConstArea &ar, const ConstLanelet &ll)
Eigen::Matrix< double, 2, 1, Eigen::DontAlign > BasicPoint2d
a simple 2d-point
A const (i.e. immutable) Area.
Optional< ConstLineString3d > determineCommonLineLeft(const ConstLanelet &right, const ConstArea &left)
bool adjacent(const ConstArea &area1, const ConstArea &area2)
Test if two areas are adjacent.
std::enable_if_t< traits::isAreaT< T >(), RetT > IfAr
bool leftOf(const ConstLanelet &right, const ConstArea &left)
Test whether area is left of lanelet.
IfAr< AreaT, BoundingBox3d > boundingBox3d(const AreaT &area)
calculates 3d bounding box


lanelet2_core
Author(s): Fabian Poggenhans
autogenerated on Tue Jun 6 2023 02:23:32