12#ifndef ARCANE_UTILS_VECTOR2_H
13#define ARCANE_UTILS_VECTOR2_H
50 constexpr ARCCORE_HOST_DEVICE
54 constexpr ARCCORE_HOST_DEVICE
Vector2(
const T& ax,
const T& ay)
61 constexpr ARCCORE_HOST_DEVICE
explicit Vector2(
const T& v)
68 constexpr Vector2(
const std::array<T, 2>& v)
75 constexpr Vector2(std::initializer_list<T> v)
89 friend constexpr ARCCORE_HOST_DEVICE
bool
105 friend constexpr ARCCORE_HOST_DEVICE
bool
108 return v1.x == v2.x && v1.y == v2.y;
111 friend constexpr ARCCORE_HOST_DEVICE
bool
112 operator!=(
const Vector2<T>& v1,
const Vector2<T>& v2)
126 constexpr ARCCORE_HOST_DEVICE
void operator+=(
const ThatClass& b)
138 constexpr ARCCORE_HOST_DEVICE
void operator-=(
const ThatClass& b)
156 friend constexpr ARCCORE_HOST_DEVICE ThatClass
operator+(
const ThatClass& a,
const ThatClass& b)
158 return ThatClass(a.x + b.x, a.y + b.y);
161 friend constexpr ARCCORE_HOST_DEVICE ThatClass
operator+(
const ThatClass& a,
const T& b)
163 return ThatClass(a.x + b, a.y + b);
166 friend constexpr ARCCORE_HOST_DEVICE ThatClass
operator+(
const T& a,
const ThatClass& b)
168 return ThatClass(a + b.x, a + b.y);
171 friend constexpr ARCCORE_HOST_DEVICE ThatClass
operator-(
const ThatClass& a,
const ThatClass& b)
173 return ThatClass(a.x - b.x, a.y - b.y);
176 friend constexpr ARCCORE_HOST_DEVICE ThatClass
operator-(
const ThatClass& a,
const T& b)
178 return ThatClass(a.x - b, a.y - b);
181 constexpr ARCCORE_HOST_DEVICE ThatClass
operator-()
const {
return ThatClass(-x, -y); }
184 friend constexpr ARCCORE_HOST_DEVICE ThatClass
operator*(
const T& a,
const ThatClass& b)
186 return ThatClass(b.x * a, b.y * a);
189 friend constexpr ARCCORE_HOST_DEVICE ThatClass
operator*(
const ThatClass& a,
const T& b)
191 return ThatClass(a.x * b, a.y * b);
194 friend constexpr ARCCORE_HOST_DEVICE ThatClass
operator/(
const ThatClass& a,
const T& b)
196 return ThatClass(a.x / b, a.y / b);
201 void _print(std::ostream& o)
const
203 o <<
'{' << x <<
',' << y <<
'}';
205 constexpr void _setFromList(std::initializer_list<T> v)
208 auto ptr = v.begin();
Déclarations des types utilisés dans Arcane.
Classe gérant un vecteur de dimension 2 de type T.
friend constexpr __host__ __device__ ThatClass operator/(const ThatClass &a, const T &b)
Divise chaque composante de a par b.
constexpr __host__ __device__ ThatClass operator-() const
Retourne l'opposé de l'instance.
friend constexpr __host__ __device__ ThatClass operator*(const T &a, const ThatClass &b)
Multiplie chaque composante de b par a.
constexpr Vector2 & operator=(std::initializer_list< T > v)
Positionne l'instance avec la liste v.
constexpr Vector2(std::initializer_list< T > v)
Construit l'instance avec la liste v.
constexpr __host__ __device__ Vector2(const T &ax, const T &ay)
Construit le triplet (ax,ay,az)
friend constexpr __host__ __device__ ThatClass operator-(const ThatClass &a, const ThatClass &b)
Soustrait chaque composante de a par chaque composante de b.
constexpr __host__ __device__ void operator+=(const T &b)
Ajoute b à l'instance.
constexpr Vector2(const std::array< T, 2 > &v)
Construit l'instance avec le tableau v.
friend constexpr __host__ __device__ ThatClass operator+(const T &a, const ThatClass &b)
Retourne b en ajoutant a à chaque composante.
constexpr __host__ __device__ void operator-=(const ThatClass &b)
Soustrait b à l'instance.
friend std::ostream & operator<<(std::ostream &o, const Vector2< T > &t)
Ecrit t sur le flot o.
constexpr __host__ __device__ void operator+=(const ThatClass &b)
Ajoute b à l'instance.
constexpr __host__ __device__ void operator*=(const T &b)
Multiple chaque composante de l'instance par b.
friend constexpr __host__ __device__ ThatClass operator*(const ThatClass &a, const T &b)
Multiplie chaque composante de a par b.
constexpr __host__ __device__ Vector2(const T &v)
Construit l'instance avec le triplet (v,v,v).
constexpr __host__ __device__ void operator-=(const T &b)
Soustrait b à l'instance.
constexpr __host__ __device__ Vector2()=default
Construit le vecteur nul.
friend constexpr __host__ __device__ ThatClass operator+(const ThatClass &a, const T &b)
Retourne a en ajoutant b à chaque composante.
constexpr __host__ __device__ void operator/=(const T &b)
Divise chaque composante de l'instance par b.
friend constexpr __host__ __device__ ThatClass operator-(const ThatClass &a, const T &b)
Soustrait chaque composante de a par b.
friend constexpr __host__ __device__ ThatClass operator+(const ThatClass &a, const ThatClass &b)
Somme composante par composante de a et b.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-