ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/mailleur3d_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/mailleur3d_optimisation.h
File size: 3338 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     //####// mailleur3d_optimisation.h
15     //####//
16     //####//------------------------------------------------------------
17     //####//------------------------------------------------------------
18     //####// COPYRIGHT 2000-2024
19     //####// jeu 13 jun 2024 11:58:55 EDT
20     //####//------------------------------------------------------------
21     //####//------------------------------------------------------------
22 francois 287
23     #ifndef mailleur3d_optimisationH
24     #define mailleur3d_optimisationH
25    
26    
27    
28    
29    
30    
31 francois 1158 #include <map>
32 francois 287 #include <vector>
33     #include "mg_maillage.h"
34     #include "mg_geometrie.h"
35     #include "mg_volume.h"
36     #include "tpl_octree.h"
37 francois 445 #include "mailleur.h"
38 francois 287
39    
40    
41    
42    
43 francois 1158 class MAILLEUR3D_OPTIMISATION: public MAILLEUR
44 francois 287 {
45     public:
46     typedef std::multimap<double,class M3D_TETRA*,std::less<double> > ORDRE_TETRA;
47     typedef std::map<unsigned long,ORDRE_TETRA::iterator,std::less<unsigned long> > ORDRE_TETRA_PARID;
48    
49     MAILLEUR3D_OPTIMISATION(MG_MAILLAGE* mgmai,int niv);
50     virtual ~MAILLEUR3D_OPTIMISATION();
51 francois 551 virtual void change_niveau_optimisation(int num);
52     virtual int get_niveau_optimisation(void);
53 francois 287
54 francois 445
55 francois 551 virtual void optimise(MG_VOLUME* mgvol);
56 couturad 966 virtual int maille(MG_GROUPE_TOPOLOGIQUE* mggt) {return OK;} ;
57 francois 287
58 francois 288 protected:
59 francois 551 virtual void optimise(MG_VOLUME* mgvol,int& nbmauvais);
60 ghazal 1152 virtual int bouge_point(MG_VOLUME* mgvol,class MG_NOEUD* noeud,double& crit,double& x,double& y, double& z);
61    
62    
63 francois 551 virtual void remaille_coquille(MG_NOEUD* noeud1,MG_NOEUD* noeud2, double& crit, class COQUILLE& coque);
64     virtual void ajouter_ordre_tetra(M3D_TETRA* tet,int num=1);
65     virtual void supprimer_ordre_tetra(M3D_TETRA* tet);
66     virtual double get_volume(MG_TETRA* tet);
67     virtual double get_volume(double *xyz1,double *xyz2,double *xyz3,double *xyz4);
68 francois 287
69     ORDRE_TETRA lst_tetra[2];
70     ORDRE_TETRA_PARID lst_tetraid[2];
71     int niveau_optimisation;
72    
73 francois 551 virtual class MG_TRIANGLE* insere_triangle(class MG_VOLUME* mgvol,MG_NOEUD* noeud1,MG_NOEUD* noeud2,MG_NOEUD* noeud3,int origine);
74     virtual MG_TRIANGLE* cree_triangle(class MG_VOLUME* mgvol,MG_NOEUD* noeud1,MG_NOEUD* noeud2,MG_NOEUD* noeud3,MG_SEGMENT* segment1,MG_SEGMENT* segment2,MG_SEGMENT* segment3,int origine);
75     virtual MG_SEGMENT* cree_segment(class MG_VOLUME* mgvol,MG_NOEUD* noeud1,MG_NOEUD* noeud2,int origine);
76 francois 287
77    
78     MG_MAILLAGE* mg_maillage;
79 francois 551 virtual void o3d_data(void);
80     virtual void o3d_data2(void);
81 francois 287 int tab_solution[7][1430][8];
82     int tab_face[7][120][3];
83     };
84    
85    
86    
87    
88     class COQUILLE
89     {
90     public:
91     COQUILLE():volume(0) {};
92     ~COQUILLE() {};
93    
94     int taille;
95     MG_TETRA* tet[10];
96     MG_NOEUD* new_tetra[64];
97     double volume;
98     };
99    
100    
101    
102    
103    
104    
105    
106    
107    
108    
109    
110    
111     #endif