43 template<
typename Valtype>
46 typedef Valtype value_type;
63 template<typename Valtype2>
64 explicit
Position2D( const Valtype2* pVal ) noexcept;
76 const Valtype& operator[](
size_t index ) const;
78 Valtype& operator[](
size_t index );
100 template<typename Valtype>
115 template<
typename Valtype>
constexpr
117 template<
typename Valtype>
constexpr
119 template<
typename Valtype>
constexpr
121 template<
typename Valtype>
123 template<
typename Valtype>
125 template<
typename Valtype>
127 template<
typename Valtype>
constexpr
129 template<
typename Valtype>
constexpr
131 template<
typename Valtype>
constexpr
133 template<
typename Valtype>
constexpr
135 template<
typename Valtype>
137 template<
typename Valtype>
139 template<
typename Valtype>
constexpr
141 template<
typename Valtype>
constexpr
143 template<
typename Valtype,
typename Valtype2>
constexpr
145 template<
typename Valtype,
typename Valtype2>
constexpr
147 template<
typename Valtype,
typename Valtype2>
149 template<
typename Valtype,
typename Valtype2>
151 template<
typename Valtype>
constexpr
153 template<
typename Valtype>
155 template<
typename Valtype>
constexpr
157 template<
typename Valtype,
typename Valtype2>
constexpr
159 template<
typename Valtype>
constexpr
161 template<
typename Valtype,
typename Valtype2>
163 template<
typename Valtype>
constexpr
165 template<
typename Valtype>
constexpr
169 template<
typename Valtype>
174template<
typename Valtype>
179template<
typename Valtype>
184template<
typename Valtype>
185template<
typename Valtype2>
187 :
x{Valtype{pVal[0]}},
191template<
typename Valtype>
198template<
typename Valtype>
203 throw std::out_of_range(
"invalid Position2D subscript" );
206template<
typename Valtype>
211 throw std::out_of_range(
"invalid Position2D subscript" );
214template<
typename Valtype>
220template<
typename Valtype>
227template<
typename Valtype>
230 return d*d <= epsilon_*epsilon_;
233template<
typename Valtype>
constexpr
239template<
typename Valtype>
245template<
typename Valtype>
constexpr
247 return { p1.x - p2.x,
251template<
typename Valtype>
constexpr
257template<
typename Valtype>
264template<
typename Valtype,
typename Valtype2>
constexpr
266 static_assert( !std::is_integral<Valtype>::value,
"Possible data loss on integral values, proper implementation provided for int only!" );
271template<
typename Valtype>
constexpr
273 return {
static_cast<int>(
static_cast<Valtype
>(p.x) * f),
274 static_cast<int>(
static_cast<Valtype
>(p.y) * f) };
277template<
typename Valtype,
typename Valtype2>
constexpr
279 static_assert( !std::is_integral<Valtype>::value,
"Possible data loss on integral values, proper implementation provided for int only!" );
283template<
typename Valtype>
constexpr
288template<
typename Valtype,
typename Valtype2>
295template<
typename Valtype>
297 p.x =
static_cast<int>(
static_cast<Valtype
>(p.x) * f);
298 p.y =
static_cast<int>(
static_cast<Valtype
>(p.y) * f);
302template<
typename Valtype,
typename Valtype2>
constexpr
304 static_assert( !std::is_integral<Valtype>::value,
"Possible data loss on integral values, proper implementation provided for int only!" );
309template<
typename Valtype>
constexpr
311 return {
static_cast<int>(
static_cast<Valtype
>(p.x) / f),
312 static_cast<int>(
static_cast<Valtype
>(p.y) / f) };
315template<
typename Valtype,
typename Valtype2>
constexpr
317 static_assert( !std::is_integral<Valtype>::value,
"Possible data loss on integral values, proper implementation provided for int only!" );
323template<
typename Valtype>
325 p.x =
static_cast<int>(
static_cast<Valtype
>(p.x) / f);
326 p.y =
static_cast<int>(
static_cast<Valtype
>(p.y) / f);
330template<
typename Valtype>
constexpr
332 return (p1.x == p2.x && p1.y == p2.y );
335template<
typename Valtype>
constexpr
constexpr bool operator!=(const Interval< Valtype > &i1, const Interval< Valtype > &i2) noexcept
Interval operator.
Definition Interval.h:701
constexpr bool operator==(const Interval< Valtype > &i1, const Interval< Valtype > &i2) noexcept
Interval operator.
Definition Interval.h:696
constexpr Interval< Valtype > & operator/=(Interval< Valtype > &i1, Valtype2 scalar) noexcept
Interval operator.
Definition Interval.h:650
constexpr Interval< Valtype > operator-(const Interval< Valtype > &i1, Valtype l) noexcept
Interval operator.
Definition Interval.h:613
The namespace provides classes and methods for spatial computations.
Definition Box.h:32
Position< Valtype2 > operator*(const Frame< Valtype1, ValtypeT1 > &frame, const Position< Valtype2 > &p) noexcept
Frame operator.
Definition Frame.h:1089
constexpr Position2D< Valtype > Origin2D
Origin of coordinate system.
Definition Position2D.h:101
Position< Valtype > & operator%=(const Position< Valtype > &, const Position< Valtype > &)=delete
Position operator.
Position< Valtype > & operator+=(Position< Valtype > &, const Position< Valtype > &)=delete
Position operator.
constexpr Position< Valtype > operator%(const Position< Valtype > &, const Position< Valtype > &)=delete
Position operator.
Position< Valtype > & operator-=(Position< Valtype > &, const Position< Valtype > &)=delete
Position operator.
Frame< Valtype2, ValtypeT2 > & operator*=(Frame< Valtype1, ValtypeT1 > &frame, const Frame< Valtype2, ValtypeT2 > &f) noexcept
right side multiplication of f to frame.
Definition Frame.h:1131
constexpr Valtype operator/(const Position< Valtype > &, const Position< Valtype > &)=delete
Position operator.
Implements a 2D - position in cartesian coordinates.
Definition Position2D.h:45
constexpr bool Equals(const Position2D &p, dim::Value< Dimension< 1, 0, 0 > > epsilon=0) const noexcept
Definition Position2D.h:228
constexpr Position2D() noexcept=default
Does not initialize the members.
Position2D & Init() noexcept
Definition Position2D.h:215
Valtype x
cartesian x coordinate
Definition Position2D.h:48
Valtype y
cartesian y coordinate
Definition Position2D.h:49
Position2D & Transport(const Vector2D< dim::Value< Dimension< 1, 0, 0 > > > &v) noexcept
Definition Position2D.h:221
Implements a 3D - position in cartesian coordinates.
Definition Position.h:46
Implements a 2D - vector in cartesian coordinates.
Definition Vector2D.h:46