ad_map_access
Geometry.hpp
Go to the documentation of this file.
1 /*
2  * ----------------- BEGIN LICENSE BLOCK ---------------------------------
3  *
4  * Copyright (C) 2018-2020 Intel Corporation
5  *
6  * SPDX-License-Identifier: MIT
7  *
8  * ----------------- END LICENSE BLOCK -----------------------------------
9  */
10 
18 #pragma once
19 
20 #include <iostream>
21 #include <limits>
22 #include <memory>
23 #include <sstream>
26 #include "ad/physics/Distance.hpp"
30 namespace ad {
34 namespace map {
40 namespace point {
41 
45 struct Geometry
46 {
50  typedef std::shared_ptr<Geometry> Ptr;
51 
55  typedef std::shared_ptr<Geometry const> ConstPtr;
56 
60  Geometry() = default;
61 
65  ~Geometry() = default;
66 
70  Geometry(const Geometry &other) = default;
71 
75  Geometry(Geometry &&other) = default;
76 
84  Geometry &operator=(const Geometry &other) = default;
85 
93  Geometry &operator=(Geometry &&other) = default;
94 
102  bool operator==(const Geometry &other) const
103  {
104  return (isValid == other.isValid) && (isClosed == other.isClosed) && (ecefEdge == other.ecefEdge)
105  && (length == other.length) && (private_enuEdgeCache == other.private_enuEdgeCache);
106  }
107 
115  bool operator!=(const Geometry &other) const
116  {
117  return !operator==(other);
118  }
119 
120  bool isValid{false};
121  bool isClosed{false};
123  ::ad::physics::Distance length;
124 
131 };
132 
133 } // namespace point
134 } // namespace map
135 } // namespace ad
136 
140 #ifndef GEN_GUARD_AD_MAP_POINT_GEOMETRY
141 #define GEN_GUARD_AD_MAP_POINT_GEOMETRY
142 
145 namespace ad {
149 namespace map {
155 namespace point {
156 
166 inline std::ostream &operator<<(std::ostream &os, Geometry const &_value)
167 {
168  os << "Geometry(";
169  os << "isValid:";
170  os << _value.isValid;
171  os << ",";
172  os << "isClosed:";
173  os << _value.isClosed;
174  os << ",";
175  os << "ecefEdge:";
176  os << _value.ecefEdge;
177  os << ",";
178  os << "length:";
179  os << _value.length;
180  os << ",";
181  os << "private_enuEdgeCache:";
182  os << _value.private_enuEdgeCache;
183  os << ")";
184  return os;
185 }
186 
187 } // namespace point
188 } // namespace map
189 } // namespace ad
190 
191 namespace std {
195 inline std::string to_string(::ad::map::point::Geometry const &value)
196 {
197  stringstream sstream;
198  sstream << value;
199  return sstream.str();
200 }
201 } // namespace std
202 #endif // GEN_GUARD_AD_MAP_POINT_GEOMETRY
ad
namespace ad
Definition: GeometryStoreItem.hpp:28
ECEFEdge.hpp
ad::map::point::Geometry::operator!=
bool operator!=(const Geometry &other) const
standard comparison operator
Definition: Geometry.hpp:115
ad::map::point::operator<<
std::ostream & operator<<(std::ostream &os, Altitude const &_value)
standard ostream operator
Definition: Altitude.hpp:562
ad::map::point::ENUEdgeCache
DataType ENUEdgeCache.
Definition: ENUEdgeCache.hpp:44
ad::map::point::Geometry::Ptr
std::shared_ptr< Geometry > Ptr
Smart pointer on Geometry.
Definition: Geometry.hpp:50
ad::map::point::Geometry::private_enuEdgeCache
::ad::map::point::ENUEdgeCache private_enuEdgeCache
Definition: Geometry.hpp:130
std::to_string
std::string to_string(::ad::map::access::GeometryStoreItem const &value)
overload of the std::to_string for GeometryStoreItem
Definition: GeometryStoreItem.hpp:183
ENUEdgeCache.hpp
ad::map::point::Geometry::operator=
Geometry & operator=(const Geometry &other)=default
standard assignment operator
ad::map::point::Geometry::Geometry
Geometry()=default
standard constructor
ad::map::point::Geometry::~Geometry
~Geometry()=default
standard destructor
ad::map::point::Geometry
DataType Geometry.
Definition: Geometry.hpp:45
ad::map::point::ECEFEdge
std::vector<::ad::map::point::ECEFPoint > ECEFEdge
DataType ECEFEdge.
Definition: ECEFEdge.hpp:42
ad::map::point::Geometry::operator==
bool operator==(const Geometry &other) const
standard comparison operator
Definition: Geometry.hpp:102
ad::map::point::Geometry::ConstPtr
std::shared_ptr< Geometry const > ConstPtr
Smart pointer on constant Geometry.
Definition: Geometry.hpp:55