ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/mailleur.cpp
Revision: 1117
Committed: Wed Jun 28 19:51:15 2023 UTC (22 months, 2 weeks ago) by francois
File size: 3697 byte(s)
Log Message:
Mise a jour geodesique et fast marching + operation sur maillage entre les differents degres

File Contents

# User Rev Content
1 francois 283 //------------------------------------------------------------
2     //------------------------------------------------------------
3     // MAGiC
4     // Jean Christophe Cuilli�re et Vincent FRANCOIS
5     // D�partement de G�nie M�canique - UQTR
6     //------------------------------------------------------------
7     // Le projet MAGIC est un projet de recherche du d�partement
8     // de g�nie m�canique de l'Universit� du Qu�bec �
9     // Trois Rivi�res
10     // Les librairies ne peuvent �tre utilis�es sans l'accord
11     // des auteurs (contact : francois@uqtr.ca)
12     //------------------------------------------------------------
13     //------------------------------------------------------------
14     //
15     // mailleur.cpp
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 � 11H23
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24    
25     #include "gestionversion.h"
26     #include "mailleur.h"
27     #include "ot_cpu.h"
28    
29    
30    
31    
32    
33 francois 1117 MAILLEUR::MAILLEUR(bool save,OT_CPU* comp):MAGIC_AFFICHE(),compteur(comp),savedbg(save),pas(32),priorite_metrique(0.65)
34 francois 283 {
35 francois 632 ini_param();
36    
37 francois 283 }
38    
39 francois 1117 MAILLEUR::MAILLEUR(MAILLEUR &mdd):MAGIC_AFFICHE(mdd),compteur(mdd.compteur),savedbg(mdd.savedbg),pas(mdd.pas)
40 francois 425 {
41 francois 632 ini_param();
42 francois 425 }
43 francois 283
44 francois 425
45 francois 283 MAILLEUR::~MAILLEUR()
46     {
47     }
48    
49    
50     void MAILLEUR::refresh(void)
51     {
52     }
53    
54 francois 558 void MAILLEUR::change_priorite_metrique(double val)
55     {
56     priorite_metrique=val;
57     }
58 francois 283
59 francois 558
60    
61 francois 283 void MAILLEUR::ajouter_etape_cpu(std::string nom)
62     {
63     if (compteur!=NULL) compteur->ajouter_etape(nom);
64     }
65 francois 494
66    
67     void MAILLEUR::change_nom_fichierdbg(char *nom)
68     {
69     strcpy(nomfichierdbg,nom);
70 francois 532 }
71    
72 francois 632 void MAILLEUR::ini_param(void)
73     {
74     param.ajouter("Convergence_mailleur3d_frontal",200,OT_PARAMETRES::DOUBLE,"Nombre de front restant à partir duquel la destruction est obligatoire");
75     param.ajouter("Echantillon_face",20,OT_PARAMETRES::DOUBLE,"Nombre d'échantillon pour le calcul de la boite englobante des faces");
76 francois 1095 param.ajouter("Epsilon_face",1,OT_PARAMETRES::DOUBLE,"Distance entre la triangulation et la face pour les algos qui echantillonnent les faces (en mm)");
77     param.ajouter("Angle_dev_face",0.5,OT_PARAMETRES::DOUBLE,"Angle entre deux elements de la triangulation pour les algos qui echantillonnent les faces");
78 francois 645 param.ajouter("Verification_coin_face_mailleur2D",0,OT_PARAMETRES::DOUBLE,"0. Ne fais pas la vérification 1. Fait la vérification qu'un sommet de face partage au moins deux triangles");
79 francois 696 param.ajouter("Optimisation_2D","1",OT_PARAMETRES::STRING,"Nombre de bits = nombre de passe d'optimisation. Pour chaque bit 1=bouge de noeud 2=inverse diagonale 3=bouge de noeud inserse diagonale simultane 4=inverse diagonale bouge de noeud simulatane");
80 francois 883 param.ajouter("Quadratisation_jmin",1.,OT_PARAMETRES::DOUBLE,"Garantir des tetras quadratiques avec jaconien minimum positif : 1=oui 2=non");
81     param.ajouter("Quadratisation_pas",100.,OT_PARAMETRES::DOUBLE,"Nombre de pas pour recaler les noeuds et obtenir un jmin positif");
82     param.ajouter("Quadratisation_dis",0.1,OT_PARAMETRES::DOUBLE,"Valeur de la distortion du jacobien minimale à atteindre");
83 francois 915 param.ajouter("Quadratisation_nbpassemax",4.,OT_PARAMETRES::DOUBLE,"Nombre de passe maximale pour obtenir un jmin positif");
84 couturad 919 param.ajouter("Nb_iteration_max_mailleur2d",1e6,OT_PARAMETRES::DOUBLE,"Nombre d'iteration maximale pour le mailleur 2D");
85     param.ajouter("Nb_front_max_mailleur3d",1e7,OT_PARAMETRES::DOUBLE,"Nombre de front maximale pour le mailleur 3D");
86 francois 632 char fichier[500];
87     sprintf(fichier,"%s/.magic",getenv("HOME"));
88     param.lire(fichier);
89     param.enregistrer(fichier);
90    
91     }
92 francois 532
93     void MAILLEUR::change_pas_integration(int val)
94     {
95     pas=val;
96 francois 1095 }