ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/mailleur2d_optimisation.h
Revision: 1158
Committed: Thu Jun 13 22:18:49 2024 UTC (10 months, 4 weeks ago) by francois
Content type: text/plain
Original Path: magic/lib/mailleur_auto/src/mailleur2d_optimisation.h
File size: 3467 byte(s)
Log Message:
compatibilité Ubuntu 22.04
Suppression des refeences à Windows
Ajout d'une banière

File Contents

# User Rev Content
1 francois 1158 //####//------------------------------------------------------------
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 francois 447
23     #ifndef mailleur2d_optimisationH
24     #define mailleur2d_optimisationH
25    
26    
27    
28    
29    
30    
31 francois 1158
32 francois 447 #include "mailleur.h"
33 couturad 966 #include "mg_definition.h"
34 francois 447 #include <map>
35    
36    
37     class MG_MAILLAGE;
38     class MG_FACE;
39     class M3D_TRIANGLE;
40     class MG_NOEUD;
41     class OT_DECALAGE_PARAMETRE;
42 francois 448 class MG_VOLUME;
43 francois 573 class MG_COQUE;
44 francois 696 class MG_SEGMENT;
45     class MG_TRIANGLE;
46 francois 447
47    
48 francois 1158 class MAILLEUR2D_OPTIMISATION: public MAILLEUR
49 francois 447 {
50     public:
51     typedef std::multimap<double,class M3D_TRIANGLE*,std::less<double> > ORDRE_TRIANGLE;
52 francois 696 typedef std::map<unsigned long,ORDRE_TRIANGLE::iterator,std::less<unsigned long> > ORDRE_TRIANGLE_PARID;
53    
54 francois 447 MAILLEUR2D_OPTIMISATION(MG_MAILLAGE* mgmai,int niv);
55     virtual ~MAILLEUR2D_OPTIMISATION();
56 francois 551 virtual void change_niveau_optimisation(int num);
57     virtual int get_niveau_optimisation(void);
58 francois 447
59    
60 couturad 966 virtual int maille(MG_GROUPE_TOPOLOGIQUE *mggt=NULL) {return OK;}; // si on utilise cette methode les triangles doivent être des M3D_TRIANGLE
61 francois 551 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 francois 573 virtual void optimise(MG_COQUE* mgcoque);// methode toujours valable
64 francois 696 protected:
65     virtual void ajouter_ordre_tri(M3D_TRIANGLE* tri,int num=1);
66     virtual void supprimer_ordre_tri(M3D_TRIANGLE* tri);
67 francois 447 OT_DECALAGE_PARAMETRE *decalage;
68 francois 551 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 francois 696 virtual int inverse_diagonale(MG_FACE* face,int num,M3D_TRIANGLE* tri,M3D_TRIANGLE** autretri,double &crit,MG_NOEUD** tabnoeudres);
71 sattarpa 644 virtual void reinit(void);
72 francois 447 MG_MAILLAGE* mg_maillage;
73 francois 696
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    
80 francois 447 int niveau_optimisation;
81 francois 696 ORDRE_TRIANGLE lst_tri[2];
82     ORDRE_TRIANGLE_PARID lst_triid[2];
83 francois 447 double periode_u;
84     double periode_v;
85     };
86    
87    
88    
89    
90 couturad 966 #endif