ad_physics
Dimension2D.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>
24 #include "ad/physics/Distance.hpp"
28 namespace ad {
32 namespace physics {
33 
38 {
42  typedef std::shared_ptr<Dimension2D> Ptr;
43 
47  typedef std::shared_ptr<Dimension2D const> ConstPtr;
48 
52  Dimension2D() = default;
53 
57  ~Dimension2D() = default;
58 
62  Dimension2D(const Dimension2D &other) = default;
63 
67  Dimension2D(Dimension2D &&other) = default;
68 
76  Dimension2D &operator=(const Dimension2D &other) = default;
77 
85  Dimension2D &operator=(Dimension2D &&other) = default;
86 
94  bool operator==(const Dimension2D &other) const
95  {
96  return (length == other.length) && (width == other.width);
97  }
98 
106  bool operator!=(const Dimension2D &other) const
107  {
108  return !operator==(other);
109  }
110 
115 
120 };
121 
122 } // namespace physics
123 } // namespace ad
124 
128 #ifndef GEN_GUARD_AD_PHYSICS_DIMENSION2D
129 #define GEN_GUARD_AD_PHYSICS_DIMENSION2D
130 
133 namespace ad {
137 namespace physics {
138 
148 inline std::ostream &operator<<(std::ostream &os, Dimension2D const &_value)
149 {
150  os << "Dimension2D(";
151  os << "length:";
152  os << _value.length;
153  os << ",";
154  os << "width:";
155  os << _value.width;
156  os << ")";
157  return os;
158 }
159 
160 } // namespace physics
161 } // namespace ad
162 
163 namespace std {
167 inline std::string to_string(::ad::physics::Dimension2D const &value)
168 {
169  stringstream sstream;
170  sstream << value;
171  return sstream.str();
172 }
173 } // namespace std
174 #endif // GEN_GUARD_AD_PHYSICS_DIMENSION2D
ad
namespace ad
Definition: Acceleration.hpp:30
ad::physics::Distance
DataType Distance.
Definition: Distance.hpp:67
ad::physics::Dimension2D::length
::ad::physics::Distance length
Definition: Dimension2D.hpp:114
ad::physics::Dimension2D::ConstPtr
std::shared_ptr< Dimension2D const > ConstPtr
Smart pointer on constant Dimension2D.
Definition: Dimension2D.hpp:47
ad::physics::Dimension2D::operator=
Dimension2D & operator=(const Dimension2D &other)=default
standard assignment operator
Distance.hpp
ad::physics::Dimension2D::~Dimension2D
~Dimension2D()=default
standard destructor
ad::physics::Dimension2D::Dimension2D
Dimension2D()=default
standard constructor
ad::physics::Dimension2D::operator!=
bool operator!=(const Dimension2D &other) const
standard comparison operator
Definition: Dimension2D.hpp:106
ad::physics::Dimension2D::operator==
bool operator==(const Dimension2D &other) const
standard comparison operator
Definition: Dimension2D.hpp:94
std::to_string
std::string to_string(::ad::physics::Acceleration const &value)
overload of the std::to_string for Acceleration
Definition: Acceleration.hpp:559
ad::physics::Dimension2D::Ptr
std::shared_ptr< Dimension2D > Ptr
Smart pointer on Dimension2D.
Definition: Dimension2D.hpp:42
ad::physics::operator<<
std::ostream & operator<<(std::ostream &os, Acceleration const &_value)
standard ostream operator
Definition: Acceleration.hpp:547
ad::physics::Dimension2D
DataType Dimension2D.
Definition: Dimension2D.hpp:37
ad::physics::Dimension2D::width
::ad::physics::Distance width
Definition: Dimension2D.hpp:119