MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mailleur2d_optimisation.h
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
2 //####//------------------------------------------------------------
3 //####// MAGiC
4 //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5 //####// Departement de Genie Mecanique - UQTR
6 //####//------------------------------------------------------------
7 //####// MAGIC est un projet de recherche de l equipe ERICCA
8 //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9 //####// http://www.uqtr.ca/ericca
10 //####// http://www.uqtr.ca/
11 //####//------------------------------------------------------------
12 //####//------------------------------------------------------------
13 //####//
14 //####// mailleur2d_optimisation.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:56 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 #ifndef mailleur2d_optimisationH
24 #define mailleur2d_optimisationH
25 
26 
27 
28 
29 
30 
31 
32 #include "mailleur.h"
33 #include "mg_definition.h"
34 #include <map>
35 
36 
37 class MG_MAILLAGE;
38 class MG_FACE;
39 class M3D_TRIANGLE;
40 class MG_NOEUD;
42 class MG_VOLUME;
43 class MG_COQUE;
44 class MG_SEGMENT;
45 class MG_TRIANGLE;
46 
47 
49 {
50 public:
51 typedef std::multimap<double,class M3D_TRIANGLE*,std::less<double> > ORDRE_TRIANGLE;
52 typedef std::map<unsigned long,ORDRE_TRIANGLE::iterator,std::less<unsigned long> > ORDRE_TRIANGLE_PARID;
53 
54 MAILLEUR2D_OPTIMISATION(MG_MAILLAGE* mgmai,int niv);
55 virtual ~MAILLEUR2D_OPTIMISATION();
56 virtual void change_niveau_optimisation(int num);
57 virtual int get_niveau_optimisation(void);
58 
59 
60 virtual int maille(MG_GROUPE_TOPOLOGIQUE *mggt=NULL) {return OK;}; // si on utilise cette methode les triangles doivent être des M3D_TRIANGLE
61 virtual void optimise(MG_FACE* mgface); // si on utilise cette methode les triangles doivent être des M3D_TRIANGLE
62 virtual void optimise(MG_VOLUME* mgvolume); // methode toujours valable
63 virtual void optimise(MG_COQUE* mgcoque);// methode toujours valable
64 protected:
65 virtual void ajouter_ordre_tri(M3D_TRIANGLE* tri,int num=1);
66 virtual void supprimer_ordre_tri(M3D_TRIANGLE* tri);
68 virtual void optimise_avec_calcul_uv(MG_FACE* mgface);
69 virtual int bouge_point(MG_FACE* mgface,MG_NOEUD* mg_noeud,double& crit,double &u,double& v,double& x,double& y, double& z);
70 virtual int inverse_diagonale(MG_FACE* face,int num,M3D_TRIANGLE* tri,M3D_TRIANGLE** autretri,double &crit,MG_NOEUD** tabnoeudres);
71 virtual void reinit(void);
73 
74 virtual MG_SEGMENT* cree_segment(class MG_FACE* mgface,MG_NOEUD* noeud1,MG_NOEUD* noeud2,int origine);
75 virtual M3D_TRIANGLE* cree_triangle(class MG_FACE* mgface,MG_NOEUD* noeud1,MG_NOEUD* noeud2,MG_NOEUD* noeud3,MG_SEGMENT* segment1,MG_SEGMENT* segment2,MG_SEGMENT* segment3,int origine);
76 virtual M3D_TRIANGLE* insere_triangle(class MG_FACE* mgface,MG_NOEUD* noeud1,MG_NOEUD* noeud2,MG_NOEUD* noeud3,int origine);
77 void operateur_inverse_diagonale(int phase,MG_FACE* mgface,M3D_TRIANGLE** tri);
78 void operateur_bouge_de_point(int phase,MG_FACE* mgface,M3D_TRIANGLE* tri);
79 
83 double periode_u;
84 double periode_v;
85 };
86 
87 
88 
89 
90 #endif
MG_SEGMENT
Definition: mg_segment.h:38
MAILLEUR2D_OPTIMISATION::optimise
virtual void optimise(MG_FACE *mgface)
Definition: mailleur2d_optimisation.cpp:183
MAILLEUR2D_OPTIMISATION
Definition: mailleur2d_optimisation.h:48
MAILLEUR2D_OPTIMISATION::ajouter_ordre_tri
virtual void ajouter_ordre_tri(M3D_TRIANGLE *tri, int num=1)
Definition: mailleur2d_optimisation.cpp:157
M3D_TRIANGLE
Definition: m3d_triangle.h:31
MAILLEUR2D_OPTIMISATION::ORDRE_TRIANGLE_PARID
std::map< unsigned long, ORDRE_TRIANGLE::iterator, std::less< unsigned long > > ORDRE_TRIANGLE_PARID
Definition: mailleur2d_optimisation.h:52
MAILLEUR2D_OPTIMISATION::ORDRE_TRIANGLE
std::multimap< double, class M3D_TRIANGLE *, std::less< double > > ORDRE_TRIANGLE
Definition: mailleur2d_optimisation.h:51
OK
const int OK
Definition: mg_definition.h:38
MG_TRIANGLE
Definition: mg_triangle.h:38
MG_VOLUME
Definition: mg_volume.h:33
MAILLEUR2D_OPTIMISATION::supprimer_ordre_tri
virtual void supprimer_ordre_tri(M3D_TRIANGLE *tri)
Definition: mailleur2d_optimisation.cpp:168
MAILLEUR2D_OPTIMISATION::cree_segment
virtual MG_SEGMENT * cree_segment(class MG_FACE *mgface, MG_NOEUD *noeud1, MG_NOEUD *noeud2, int origine)
Definition: mailleur2d_optimisation.cpp:577
MAILLEUR2D_OPTIMISATION::insere_triangle
virtual M3D_TRIANGLE * insere_triangle(class MG_FACE *mgface, MG_NOEUD *noeud1, MG_NOEUD *noeud2, MG_NOEUD *noeud3, int origine)
Definition: mailleur2d_optimisation.cpp:469
mailleur.h
MAILLEUR2D_OPTIMISATION::periode_u
double periode_u
Definition: mailleur2d_optimisation.h:83
MAILLEUR2D_OPTIMISATION::niveau_optimisation
int niveau_optimisation
Definition: mailleur2d_optimisation.h:80
MG_NOEUD
Definition: mg_noeud.h:41
MAILLEUR2D_OPTIMISATION::periode_v
double periode_v
Definition: mailleur2d_optimisation.h:84
MAILLEUR2D_OPTIMISATION::lst_triid
ORDRE_TRIANGLE_PARID lst_triid[2]
Definition: mailleur2d_optimisation.h:82
MAILLEUR2D_OPTIMISATION::decalage
OT_DECALAGE_PARAMETRE * decalage
Definition: mailleur2d_optimisation.h:67
MAILLEUR2D_OPTIMISATION::bouge_point
virtual int bouge_point(MG_FACE *mgface, MG_NOEUD *mg_noeud, double &crit, double &u, double &v, double &x, double &y, double &z)
Definition: mailleur2d_optimisation.cpp:340
MAILLEUR2D_OPTIMISATION::get_niveau_optimisation
virtual int get_niveau_optimisation(void)
Definition: mailleur2d_optimisation.cpp:43
MAILLEUR2D_OPTIMISATION::lst_tri
ORDRE_TRIANGLE lst_tri[2]
Definition: mailleur2d_optimisation.h:81
MAILLEUR2D_OPTIMISATION::operateur_bouge_de_point
void operateur_bouge_de_point(int phase, MG_FACE *mgface, M3D_TRIANGLE *tri)
Definition: mailleur2d_optimisation.cpp:486
MAILLEUR2D_OPTIMISATION::inverse_diagonale
virtual int inverse_diagonale(MG_FACE *face, int num, M3D_TRIANGLE *tri, M3D_TRIANGLE **autretri, double &crit, MG_NOEUD **tabnoeudres)
Definition: mailleur2d_optimisation.cpp:254
MAILLEUR2D_OPTIMISATION::~MAILLEUR2D_OPTIMISATION
virtual ~MAILLEUR2D_OPTIMISATION()
Definition: mailleur2d_optimisation.cpp:34
MAILLEUR2D_OPTIMISATION::mg_maillage
MG_MAILLAGE * mg_maillage
Definition: mailleur2d_optimisation.h:72
MG_GROUPE_TOPOLOGIQUE
Definition: mg_groupe_topologique.h:31
mg_definition.h
MAILLEUR2D_OPTIMISATION::operateur_inverse_diagonale
void operateur_inverse_diagonale(int phase, MG_FACE *mgface, M3D_TRIANGLE **tri)
Definition: mailleur2d_optimisation.cpp:535
MAILLEUR
Definition: mailleur.h:33
MAILLEUR2D_OPTIMISATION::maille
virtual int maille(MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
Definition: mailleur2d_optimisation.h:60
MG_MAILLAGE
Definition: mg_maillage.h:62
MAILLEUR2D_OPTIMISATION::optimise_avec_calcul_uv
virtual void optimise_avec_calcul_uv(MG_FACE *mgface)
Definition: mailleur2d_optimisation.cpp:122
MAILLEUR2D_OPTIMISATION::change_niveau_optimisation
virtual void change_niveau_optimisation(int num)
Definition: mailleur2d_optimisation.cpp:38
MG_FACE
Definition: mg_face.h:34
MG_COQUE
Definition: mg_coque.h:33
MAILLEUR2D_OPTIMISATION::cree_triangle
virtual M3D_TRIANGLE * cree_triangle(class MG_FACE *mgface, MG_NOEUD *noeud1, MG_NOEUD *noeud2, MG_NOEUD *noeud3, MG_SEGMENT *segment1, MG_SEGMENT *segment2, MG_SEGMENT *segment3, int origine)
Definition: mailleur2d_optimisation.cpp:568
OT_DECALAGE_PARAMETRE
Definition: ot_decalage_parametre.h:28
MAILLEUR2D_OPTIMISATION::MAILLEUR2D_OPTIMISATION
MAILLEUR2D_OPTIMISATION(MG_MAILLAGE *mgmai, int niv)
Definition: mailleur2d_optimisation.cpp:30
MAILLEUR2D_OPTIMISATION::reinit
virtual void reinit(void)
Definition: mailleur2d_optimisation.cpp:148