12#ifndef ARCANE_UTILS_REAL2PROXY_H
13#define ARCANE_UTILS_REAL2PROXY_H
17#include "arcane/utils/Real2.h"
18#include "arcane/utils/BuiltInProxy.h"
45 : x(value.x,info), y(value.y,info), m_value(value), m_info(info) {}
48 : x(f.x), y(f.y), m_value(f.m_value), m_info(f.m_info) {}
50 { x=f.
x; y=f.
y;
return m_value; }
51 const Real2& operator=(Real2 f)
52 { x=f.x; y=f.y;
return m_value; }
55 { x = y = v;
return m_value; }
56 operator Real2()
const
82 { x = ax; y = ay;
return (*
this); }
85 { x = f.
x; y = f.
y;
return (*
this); }
103 return math::isNearlyZero(x.getValue()) && math::isNearlyZero(y.getValue());
107 {
return x*x + y*y; }
110 {
return _sqrt(abs2()); }
177 if (!math::isZero(d))
199 {
return _eq(x,b.
x) && _eq(y,b.
y); }
207 {
return !operator==(b); }
211 Real2 getValue()
const
216 Real2& getValueMutable()
218 m_info.setReadOrWrite();
229 static bool _eq(Real a,Real b)
230 {
return math::isEqual(a,b); }
232 static Real _sqrt(Real a)
233 {
return math::sqrt(a); }
243 return Real2(vec.
x*sca,vec.
y*sca);
254 return Real2(vec.
x*sca,vec.
y*sca);
265 return Real2(vec.
x/sca,vec.
y/sca);
279 return v1.getValue() < v2.getValue();
Classe gérant un vecteur de réel de dimension 2.
Real abs2() const
Retourne la norme au carré du couple .
Real2 copy() const
Retourne une copie du couple.
void operator/=(Real b)
Divise chaque composante du couple par le réel b.
RealProxy x
première composante du couple
Real2Proxy & subSame(Real b)
Soustrait b à chaque composante du couple.
Real2 operator*(Real2 b) const
Créé un couple qui vaut ce couple dont chaque composant a été multipliée par la composante correspond...
Real2Proxy & mulSame(Real b)
Multiplie chaque composante du couple par b.
Real2Proxy & operator/=(Real2 b)
Divise chaque composante du couple par la composant correspondant de b.
Real2Proxy & sub(Real2 b)
Soustrait b au couple.
void operator*=(Real b)
Multiplie chaque composante du couple par le réel b.
Real2Proxy & div(Real2 b)
Divise chaque composante du couple par la composant correspondant de b.
Real2Proxy & assign(Real2 f)
Copie le couple f.
Real2 operator-() const
Créé un couple opposé au couple actuel.
ostream & print(ostream &o) const
Ecrit le couple sur le flot o lisible par un assign()
Real2Proxy & add(Real2 b)
Ajoute b au couple.
bool operator!=(Real2 b) const
Compare deux couples. Pour la notion d'égalité, voir operator==()
Real abs() const
Retourne la norme du couple .
Real2Proxy & normalize()
Normalise le couple.
Real2Proxy & operator-=(Real2 b)
Soustrait b au couple.
Real2 operator+(Real2 b) const
Créé un couple qui vaut ce couple ajouté à b.
Real2Proxy & operator*=(Real2 b)
Multiplie chaque composante du couple par la composant correspondant de b.
ostream & printXy(ostream &o) const
Ecrit le couple sur le flot o sous la forme (x,y)
Real2Proxy & divSame(Real b)
Divise chaque composante du couple par b.
bool operator==(Real2 b) const
Compare le couple à b.
Real2Proxy & reset()
Réinitialise le couple avec les constructeurs par défaut.
Real2Proxy & addSame(Real b)
Ajoute b à chaque composante du couple.
Real2 operator/(Real2 b) const
Créé un couple qui vaut ce couple dont chaque composant a été divisée par la composante correspondant...
Real2Proxy & mul(Real2 b)
Multiple chaque composante du couple par la composant correspondant de b.
bool isNearlyZero() const
Compare le couple avec le couple nul.
const Real2 & operator=(Real v)
Affecte à l'instance le couple (v,v).
RealProxy y
deuxième composante du couple
Real2Proxy & operator+=(Real2 b)
Ajoute b au couple.
Real2Proxy & assign(Real ax, Real ay)
Affecte à l'instance le couple (ax,ay,az)
istream & assign(istream &i)
Lit un couple sur le flot i Le couple est lu sous la forme de trois valeur de type #value_type.
Real2Proxy(Real2 &value, const MemoryAccessInfo &info)
Construit le couplet (ax,ay)
Real2 operator-(Real2 b) const
Créé un couple qui vaut b soustrait de ce couple.
Real2Proxy(const Real2Proxy &f)
Construit un couple identique à f.
Classe gérant un vecteur de réel de dimension 2.
Real2 operator*(Real sca, const Real2Proxy &vec)
Multiplication par un scalaire.
bool operator<(const Item &item1, const Item &item2)
Compare deux entités.
Real2 operator/(const Real2Proxy &vec, Real sca)
Division par un scalaire.
double Real
Type représentant un réel.
Real y
deuxième composante du couple
Real x
première composante du couple