 |
MAGiC
V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
|
Aller à la documentation de ce fichier.
23 #ifndef _OTMATHEMATIQUE_
24 #define _OTMATHEMATIQUE_
50 int get_premiere_valeur(std::map<long,double>::iterator &it,
double &valeur,
double &borne_min,
double &borne_max);
51 int get_suivante_valeur(std::map<long,double>::iterator &it,
double &valeur,
double &borne_min,
double &borne_max);
62 void exporter(std::ofstream& ofstrm);
118 virtual double get_x(
void)
const ;
119 virtual double get_y(
void)
const ;
120 virtual double get_z(
void)
const ;
126 operator const double* ()
const;
151 virtual void norme(
void);
153 virtual double diff(
void);
172 double operator() (
int iLigne,
int iCol)
const;
174 double valeur(
int iLigne,
int iCol)
const;
175 double &
valeur(
int iLigne,
int iCol);
213 #define ot_vecteur_4d
239 virtual double get_x(
void)
const ;
240 virtual double get_y(
void)
const ;
241 virtual double get_z(
void)
const ;
242 virtual double get_w(
void)
const ;
243 virtual double &
x(
void);
244 virtual double &
y(
void);
245 virtual double &
z(
void);
246 virtual double &
w(
void);
252 operator const double* ()
const;
280 #endif // ot_vecteur_4d
323 operator const double2* ()
const;
388 operator const double2* ()
const;
435 enum ETAT {
EXTERIEUR=0,
INTERIEUR=4,
STRICTINTERIEUR=3,
SUR_FACE=1,
SUR_ARETE=5,
FACE1=10,
FACE2=11,
FACE3=12,
FACE4=13,
ARETE1=20,
ARETE2=21,
ARETE3=22,
ARETE4=23,
ARETE5=24,
ARETE6=25,
SOMMET1=30,
SOMMET2=31,
SOMMET3=32,
SOMMET4=33};
437 static int egal(
double a,
double b,
double eps);
438 static int egal(
double *xyz1,
double *xyz2,
double eps);
439 static double qualite_triangle(
double* noeud1,
double* noeud2,
double* noeud3);
440 static double qualite_tetra(
double* noeud1,
double* noeud2,
double* noeud3,
double *noeud4);
441 static void doubleto2int(
double val,
int& val1,
int& val2);
442 static int estdansletetra(
double *xyz1,
double *xyz2,
double *xyz3,
double *xyz4,
double x,
double y,
double z);
443 static int estdansletriangle(
double *xyz1,
double *xyz2,
double *xyz3,
double x,
double y,
double z);
445 static void projetedansletriangle(
double *xyz1,
double *xyz2,
double *xyz3,
double x,
double y,
double z,
double &xx,
double &yy,
double &zz);
451 static double taille_tetra(
double* noeud1,
double* noeud2,
double* noeud3,
double *noeud4);
452 static double taille_triangle(
double* noeud1,
double* noeud2,
double* noeud3);
477 if (v1[0]!=v2[0])
return v1[0]<v2[0] ;
478 if (v1[1]!=v2[1])
return v1[1]<v2[1] ;
479 if (v1[2]!=v2[2])
return v1[2]<v2[2] ;
480 if (v1[3]!=v2[3])
return v1[3]<v2[3] ;
491 if (v1[0]!=v2[0])
return v1[0]<v2[0] ;
492 if (v1[1]!=v2[1])
return v1[1]<v2[1] ;
493 if (v1[2]!=v2[2])
return v1[2]<v2[2] ;
OT_VECTEUR_3D & operator-=(const OT_VECTEUR_3D &rkV)
OT_VECTEUR_3DD operator+(const OT_VECTEUR_3DD &rkV)
virtual double get_w(void) const
virtual double get_x(void) const
OT_VECTEUR_4D & operator/=(double fScalar)
bool operator>=(const OT_VECTEUR_3DD &mdd) const
std::ostream & operator<<(std::ostream &__os, const OT_MATRICE_3D &__mat)
OT_VECTEUR_4DD vecteur_norme_3d()
virtual void change_z(double z)
void ajouter_valeur(double x, double val)
virtual void change_x(double2 x)
bool operator<=(const OT_VECTEUR_4D &mdd) const
OT_VECTEUR_3D operator+(const OT_VECTEUR_3D &mdd1, const OT_VECTEUR_3D &mdd2)
friend std::ostream & operator<<(std::ostream &__os, const OT_VECTEUR_4D &__vec)
void change_vecteur3(OT_VECTEUR_3D v)
virtual void change_y(double2 y)
OT_VECTEUR_3DD vecteur_norme()
OT_QUATERNION & operator=(OT_QUATERNION &mdd)
OT_VECTEUR_4DD & operator=(const OT_VECTEUR_4DD &)
bool operator<(const OT_VECTEUR_3DD &mdd) const
friend std::ostream & operator<<(std::ostream &__os, const OT_VECTEUR_3D &__vec)
OT_VECTEUR_3DD operator-(const OT_VECTEUR_3DD &rkV)
friend std::ostream & operator<<(std::ostream &__os, const OT_VECTEUR_3DD &__vec)
OT_VECTEUR_3D operator&(const OT_VECTEUR_3D &mdd1, const OT_VECTEUR_3D &mdd2)
OT_VECTEUR_4DD & operator*=(double2 fScalar)
bool operator==(const OT_VECTEUR_3DD &mdd) const
long get_nb_colonne(void)
bool operator>(const OT_VECTEUR_3DD &mdd) const
double2 operator[](int i) const
double valeur(int iLigne, int iCol) const
OT_VECTEUR_3D operator/(const OT_VECTEUR_3D &mdd1, double a)
virtual double2 & x(void)
OT_VECTEUR_3D & operator/=(double fScalar)
bool operator>=(const OT_VECTEUR_4D &mdd) const
virtual double get_longueur2(void) const
OT_VECTEUR_3D & operator[](int i)
virtual void change_w(double2 w)
static int projeteestdansletriangle(double *xyz1, double *xyz2, double *xyz3, double x, double y, double z)
int compare_valeur(const OT_VECTEUR_3D &mdd) const
std::map< long, double, std::less< long > > m_map_colonne
OT_VECTEUR_3D unite(int i)
virtual void change_y(double y)
virtual double2 get_longueur2(void)
OT_VECTEUR_3D & operator+=(const OT_VECTEUR_3D &rkV)
bool operator==(const OT_VECTEUR_3D &mdd) const
virtual double2 get_w(void) const
static int compare_etat_triangle(int etat, int valeur)
static void calculeparamEFdansletriangle(double *xyz1, double *xyz2, double *xyz3, double x, double y, double z, double &xsi, double &eta)
bool operator!=(const OT_VECTEUR_4D &mdd) const
static int estdansletetra(double *xyz1, double *xyz2, double *xyz3, double *xyz4, double x, double y, double z)
virtual double2 get_longueur(void)
OT_VECTEUR_3D & get_vecteur1(void)
virtual double get_x(void) const
virtual double2 & w(void)
double2 operator[](int i) const
static void projetedansletriangle(double *xyz1, double *xyz2, double *xyz3, double x, double y, double z, double &xx, double &yy, double &zz)
OT_VECTEUR_3DD & operator*=(double2 fScalar)
bool operator>=(const OT_VECTEUR_3D &mdd) const
int get_valeur(double x, double &val)
virtual double2 & z(void)
double operator()(int iLigne, int iCol) const
OT_VECTEUR_4DD & operator/=(double2 fScalar)
virtual void change_z(double z)
OT_VECTEUR_4D operator-(const OT_VECTEUR_4D &rkV)
static int compare_etat_tetra(int etat, int valeur)
bool operator==(const OT_VECTEUR_4D &mdd) const
int compare_valeur(const OT_VECTEUR_4DD &mdd) const
void enregistrer_bin(std::ofstream &ofstr)
OT_VECTEUR_4DD operator^(const OT_VECTEUR_4DD &v2)
double operator[](int i) const
virtual double get_longueur(void) const
virtual void change_y(double y)
virtual double2 get_y(void) const
virtual double2 get_z(void) const
virtual double2 get_z(void) const
virtual double2 & y(void)
friend std::ostream & operator<<(std::ostream &__os, const OT_VECTEUR_4DD &__vec)
virtual double2 get_x(void) const
bool operator>=(const OT_VECTEUR_4DD &mdd) const
static int egal(double a, double b, double eps)
OT_VECTEUR_4D & operator*=(double fScalar)
friend OT_VECTEUR_3D operator&(const OT_VECTEUR_3D &mdd1, const OT_VECTEUR_3D &mdd2)
virtual double2 & y(void)
bool operator()(OT_VECTEUR_3DD v1, OT_VECTEUR_3DD v2)
virtual double * get_xyz(void)
bool operator<=(const OT_VECTEUR_3D &mdd) const
bool operator==(const OT_VECTEUR_4DD &mdd) const
OT_VECTEUR_3D & get_vecteur3(void)
friend OT_MATRICE_3D operator+(const OT_MATRICE_3D &mdd1, const OT_MATRICE_3D &mdd2)
bool operator<(const OT_VECTEUR_4D &mdd) const
void exporter(std::ofstream &ofstrm)
OT_VECTEUR_4D operator+(const OT_VECTEUR_4D &rkV)
OT_VECTEUR_4DD & operator-=(const OT_VECTEUR_4DD &rkV)
void change_vecteur2(OT_VECTEUR_3D v)
bool operator>(const OT_VECTEUR_3D &mdd) const
virtual double get_y(void) const
double operator*(const OT_VECTEUR_4D &a)
friend double operator*(const OT_VECTEUR_3D &mdd1, const OT_VECTEUR_3D &mdd2)
OT_VECTEUR_3D operator-(const OT_VECTEUR_3D &mdd1)
void ouvrir_txt(char *nom_fichier)
virtual double * get_xyzw(void)
virtual double2 get_x(void) const
virtual void change_x(double x)
bool operator<(const OT_VECTEUR_4DD &mdd) const
friend OT_VECTEUR_3D operator/(const OT_VECTEUR_3D &mdd1, double a)
OT_MATRICE_3D transpose() const
DOUBLEN< N > & operator=(DOUBLEN< N > &mdd)
OT_HISTOGRAMME & operator=(OT_HISTOGRAMME &mdd)
bool operator!=(const OT_VECTEUR_3DD &mdd) const
OT_VECTEUR_3DD & operator-=(const OT_VECTEUR_3DD &rkV)
static double qualite_tetra(double *noeud1, double *noeud2, double *noeud3, double *noeud4)
OT_VECTEUR_3DD & operator=(const OT_VECTEUR_3DD &)
virtual double get_y(void) const
friend OT_VECTEUR_3D operator-(const OT_VECTEUR_3D &mdd1)
virtual double get_z(void) const
int compare_valeur(const OT_VECTEUR_3DD &mdd) const
OT_VECTEUR_4DD operator-(const OT_VECTEUR_4DD &rkV)
double operator*(const OT_VECTEUR_3D &mdd1, const OT_VECTEUR_3D &mdd2)
static double taille_triangle(double *noeud1, double *noeud2, double *noeud3)
bool operator>(const OT_VECTEUR_4D &mdd) const
double get_valeur(int num)
virtual double2 * get_xyzw(void)
bool operator<(const OT_VECTEUR_3D &mdd) const
virtual void change_z(double2 z)
static void doubleto2int(double val, int &val1, int &val2)
bool operator>(const OT_VECTEUR_4DD &mdd) const
virtual double2 * get_xyz(void)
double2 operator*(const OT_VECTEUR_4DD &a)
OT_VECTEUR_4DD operator+(const OT_VECTEUR_4DD &rkV)
int get_premiere_valeur(std::map< long, double >::iterator &it, double &valeur)
OT_VECTEUR_4D & operator-=(const OT_VECTEUR_4D &rkV)
OT_VECTEUR_3D & operator*=(double fScalar)
void ouvrir_bin(std::ifstream &ifstr)
double2 operator*(const OT_VECTEUR_3DD &a)
virtual double2 get_y(void) const
OT_VECTEUR_3D & get_vecteur2(void)
void change_valeur(int num, double val)
static double qualite_triangle(double *noeud1, double *noeud2, double *noeud3)
virtual double get_z(void) const
virtual double diff(void)
static int estdansletriangle(double *xyz1, double *xyz2, double *xyz3, double x, double y, double z)
bool operator<=(const OT_VECTEUR_4DD &mdd) const
virtual double get_longueur(void) const
OT_VECTEUR_4DD & operator+=(const OT_VECTEUR_4DD &rkV)
virtual void change_z(double2 z)
friend OT_VECTEUR_3D operator*(const OT_MATRICE_3D &mdd1, const OT_VECTEUR_3D &mdd2)
OT_VECTEUR_3D gram_shmidt(const OT_VECTEUR_3D &vint)
double operator()(int i) const
virtual double get_longueur2(void) const
bool operator!=(const OT_VECTEUR_4DD &mdd) const
virtual void change_x(double2 x)
double operator[](int i) const
OT_MATRICE_3D inverse() const
OT_VECTEUR_3DD & operator/=(double2 fScalar)
OT_VECTEUR_3DD operator&(const OT_VECTEUR_3DD &v2)
virtual void change_w(double w)
bool operator()(OT_VECTEUR_4DD v1, OT_VECTEUR_4DD v2)
double get_largeur_colonne(void)
double operator()(int i) const
OT_VECTEUR_3DD & operator+=(const OT_VECTEUR_3DD &rkV)
void fixe_largeur_colonne(double largeur_colonne)
int get_suivante_valeur(std::map< long, double >::iterator &it, double &valeur)
bool operator!=(const OT_VECTEUR_3D &mdd) const
friend std::ostream & operator<<(std::ostream &__os, const OT_MATRICE_3D &__mat)
friend OT_VECTEUR_3D operator+(const OT_VECTEUR_3D &mdd1, const OT_VECTEUR_3D &mdd2)
virtual void change_y(double2 y)
virtual double2 & x(void)
OT_VECTEUR_4DD vecteur_norme()
double2 operator()(int i) const
void change_vecteur1(OT_VECTEUR_3D v)
virtual void change_x(double x)
double2 operator()(int i) const
virtual double2 & z(void)
static double taille_tetra(double *noeud1, double *noeud2, double *noeud3, double *noeud4)
OT_VECTEUR_4D & operator+=(const OT_VECTEUR_4D &rkV)
bool operator<=(const OT_VECTEUR_3DD &mdd) const
OT_VECTEUR_4D & operator=(double)