ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/mailleur2d_optimisation.h
Revision: 966
Committed: Thu Sep 6 16:46:34 2018 UTC (6 years, 8 months ago) by couturad
Content type: text/plain
Original Path: magic/lib/mailleur_auto/src/mailleur2d_optimisation.h
File size: 3632 byte(s)
Log Message:
Ajout de l'histogramme a MAGIC_PLOT
Ajout d'une sortie OK ou FAIL (int) au MAILLEUR afin de gerer certaines exceptions
Ajout d'une phase RSA a la fin du generateur DCR

File Contents

# User Rev Content
1 francois 447 //------------------------------------------------------------
2     //------------------------------------------------------------
3     // MAGiC
4     // Jean Christophe Cuilli�e et Vincent FRANCOIS
5     // D�artement de G�ie M�anique - UQTR
6     //------------------------------------------------------------
7     // Le projet MAGIC est un projet de recherche du d�artement
8     // de g�ie m�anique de l'Universit�du Qu�ec �
9     // Trois Rivi�es
10     // Les librairies ne peuvent �re utilis�s sans l'accord
11     // des auteurs (contact : francois@uqtr.ca)
12     //------------------------------------------------------------
13     //------------------------------------------------------------
14     //
15     // mailleur3d_optimisation.h
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 �11H23
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24     #ifndef mailleur2d_optimisationH
25     #define mailleur2d_optimisationH
26    
27    
28    
29     #ifdef WINDOWS_VERSION
30     #ifdef BUILT_DLL_MAILLEUR
31     #define DLLPORTMAIL __declspec(dllexport)
32     #else
33     #define DLLPORTMAIL __declspec(dllimport)
34     #endif
35     #else
36     #define DLLPORTMAIL
37     #endif
38    
39    
40    
41     #include "mailleur.h"
42 couturad 966 #include "mg_definition.h"
43 francois 447 #include <map>
44    
45    
46     class MG_MAILLAGE;
47     class MG_FACE;
48     class M3D_TRIANGLE;
49     class MG_NOEUD;
50     class OT_DECALAGE_PARAMETRE;
51 francois 448 class MG_VOLUME;
52 francois 573 class MG_COQUE;
53 francois 696 class MG_SEGMENT;
54     class MG_TRIANGLE;
55 francois 447
56    
57     class DLLPORTMAIL MAILLEUR2D_OPTIMISATION: public MAILLEUR
58     {
59     public:
60     typedef std::multimap<double,class M3D_TRIANGLE*,std::less<double> > ORDRE_TRIANGLE;
61 francois 696 typedef std::map<unsigned long,ORDRE_TRIANGLE::iterator,std::less<unsigned long> > ORDRE_TRIANGLE_PARID;
62    
63 francois 447 MAILLEUR2D_OPTIMISATION(MG_MAILLAGE* mgmai,int niv);
64     virtual ~MAILLEUR2D_OPTIMISATION();
65 francois 551 virtual void change_niveau_optimisation(int num);
66     virtual int get_niveau_optimisation(void);
67 francois 447
68    
69 couturad 966 virtual int maille(MG_GROUPE_TOPOLOGIQUE *mggt=NULL) {return OK;}; // si on utilise cette methode les triangles doivent être des M3D_TRIANGLE
70 francois 551 virtual void optimise(MG_FACE* mgface); // si on utilise cette methode les triangles doivent être des M3D_TRIANGLE
71     virtual void optimise(MG_VOLUME* mgvolume); // methode toujours valable
72 francois 573 virtual void optimise(MG_COQUE* mgcoque);// methode toujours valable
73 francois 696 protected:
74     virtual void ajouter_ordre_tri(M3D_TRIANGLE* tri,int num=1);
75     virtual void supprimer_ordre_tri(M3D_TRIANGLE* tri);
76 francois 447 OT_DECALAGE_PARAMETRE *decalage;
77 francois 551 virtual void optimise_avec_calcul_uv(MG_FACE* mgface);
78     virtual int bouge_point(MG_FACE* mgface,MG_NOEUD* mg_noeud,double& crit,double &u,double& v,double& x,double& y, double& z);
79 francois 696 virtual int inverse_diagonale(MG_FACE* face,int num,M3D_TRIANGLE* tri,M3D_TRIANGLE** autretri,double &crit,MG_NOEUD** tabnoeudres);
80 sattarpa 644 virtual void reinit(void);
81 francois 447 MG_MAILLAGE* mg_maillage;
82 francois 696
83     virtual MG_SEGMENT* cree_segment(class MG_FACE* mgface,MG_NOEUD* noeud1,MG_NOEUD* noeud2,int origine);
84     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);
85     virtual M3D_TRIANGLE* insere_triangle(class MG_FACE* mgface,MG_NOEUD* noeud1,MG_NOEUD* noeud2,MG_NOEUD* noeud3,int origine);
86     void operateur_inverse_diagonale(int phase,MG_FACE* mgface,M3D_TRIANGLE** tri);
87     void operateur_bouge_de_point(int phase,MG_FACE* mgface,M3D_TRIANGLE* tri);
88    
89 francois 447 int niveau_optimisation;
90 francois 696 ORDRE_TRIANGLE lst_tri[2];
91     ORDRE_TRIANGLE_PARID lst_triid[2];
92 francois 447 double periode_u;
93     double periode_v;
94     };
95    
96    
97    
98    
99 couturad 966 #endif