12#ifndef ARCANE_UTILS_REAL3X3PROXY_H
13#define ARCANE_UTILS_REAL3X3PROXY_H
17#include "arcane/utils/Real3x3.h"
18#include "arcane/utils/Real3Proxy.h"
36 : x(value.x,info), y(value.y,info), z(value.z,info), m_value(value), m_info(info) {}
39 : x(f.x), y(f.y), z(f.z), m_value(f.m_value), m_info(f.m_info) {}
41 { x=f.
x; y=f.
y; z=f.
z;
return m_value; }
42 const Real3x3& operator=(Real3x3 f)
43 { x=f.
x; y=f.y; z=f.z;
return m_value; }
46 { x = y = z = v;
return m_value; }
75 { x = ax; y = ay; z = az;
return (*
this); }
78 { x = f.
x; y = f.
y; z = f.
z;
return (*
this); }
96 std::istream& assign(std::istream& i);
98 std::ostream& print(std::ostream& o)
const;
100 std::ostream& printXyz(std::ostream& o)
const;
119 void operator*= (Real b) { x *= b; y *= b; z *= b; }
121 void operator/= (Real b) { x /= b; y /= b; z /= b; }
130 const Real3x3& getValue()
const
135 Real3x3& getValueMutable()
137 m_info.setReadOrWrite();
147 static bool _eq(Real a,Real b)
148 {
return TypeEqualT<Real>::isEqual(a,b); }
178 return a==b.getValue();
181operator==(
const Real3x3Proxy& a,
const Real3x3& b)
183 return a.getValue()==b;
186operator==(
const Real3x3Proxy& a,
const Real3x3Proxy& b)
188 return a.getValue()==b.getValue();
195operator!=(
const Real3x3& a,
const Real3x3Proxy& b)
197 return a!=b.getValue();
200operator!=(
const Real3x3Proxy& a,
const Real3x3& b)
202 return a.getValue()!=b;
205operator!=(
const Real3x3Proxy& a,
const Real3x3Proxy& b)
207 return a.getValue()!=b.getValue();
216 return Real3x3(vec.
x*sca,vec.
y*sca,vec.
z*sca);
225 return Real3x3(vec.
x*sca,vec.
y*sca,vec.
z*sca);
234 return Real3x3(vec.
x/sca,vec.
y/sca,vec.
z/sca);
RealProxy x
première composante du triplet
Real3Proxy & reset()
Réinitialise le triplet avec les constructeurs par défaut.
bool isNearlyZero() const
Compare le triplet avec le triplet nul.
Classe gérant un vecteur de réel de dimension 3.
Real3x3Proxy & subSame(Real3 b)
Soustrait b à chaque composante du triplet.
std::ostream & printXyz(std::ostream &o) const
Ecrit le triplet sur le flot o sous la forme (x,y,z)
Real3x3Proxy & addSame(Real3 b)
Ajoute b à chaque composante du triplet.
Real3x3Proxy & divSame(Real3 b)
Divise chaque composante du triplet par b.
Real3x3Proxy(const Real3x3Proxy &f)
Construit un triplet identique à f.
Real3Proxy z
premier élément du triplet
Real3x3Proxy & add(Real3x3 b)
Ajoute b au triplet.
Real3x3Proxy & mulSame(Real3 b)
Multiplie chaque composante du triplet par b.
Real3x3Proxy & reset()
Réinitialise le triplet avec les constructeurs par défaut.
Real3x3Proxy & sub(Real3x3 b)
Soustrait b au triplet.
Real3x3Proxy(Real3x3 &value, const MemoryAccessInfo &info)
Construit le triplet (ax,ay,az)
Real3x3 operator+(Real3x3 b) const
Créé un triplet qui vaut ce triplet ajouté à b.
Real3x3Proxy & assign(Real3x3 f)
Copie le triplet f.
Real3Proxy x
premier élément du triplet
Real3x3 copy() const
Retourne une copie du triplet.
Real3x3 operator-(Real3x3 b) const
Créé un triplet qui vaut b soustrait de ce triplet.
Real3Proxy y
premier élément du triplet
Real3x3 operator-() const
Créé un tenseur opposé au tenseur actuel.
bool isNearlyZero() const
Compare la matrice avec la matrice nulle.
Real3x3Proxy & assign(Real3 ax, Real3 ay, Real3 az)
Affecte à l'instance le triplet (ax,ay,az)
Classe gérant une matrice de réel de dimension 3x3.
Real3 z
premier élément du triplet
Real3 y
premier élément du triplet
Real3 x
premier élément du triplet
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.