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); }
91 {
return x.isNearlyZero() &&
y.isNearlyZero() &&
z.isNearlyZero(); }
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
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.
double Real
Type représentant un réel.
Real2 operator/(const Real2Proxy &vec, Real sca)
Division par un scalaire.