ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur_auto/src/mailleur0d.cpp
Revision: 1158
Committed: Thu Jun 13 22:18:49 2024 UTC (10 months, 4 weeks ago) by francois
File size: 3386 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     //####// mailleur0d.cpp
15     //####//
16     //####//------------------------------------------------------------
17     //####//------------------------------------------------------------
18     //####// COPYRIGHT 2000-2024
19     //####// jeu 13 jun 2024 11:58:55 EDT
20     //####//------------------------------------------------------------
21     //####//------------------------------------------------------------
22 francois 283
23    
24     #include "gestionversion.h"
25     #include "mailleur0d.h"
26    
27    
28    
29    
30 francois 494 MAILLEUR0D::MAILLEUR0D(MG_MAILLAGE* mgmai,MG_GEOMETRIE *mggeo,MG_SOMMET* mgsom):MAILLEUR(false),mg_maillage(mgmai),mg_geometrie(mggeo),mg_sommet(mgsom)
31 francois 283 {
32     }
33    
34    
35    
36     MAILLEUR0D::~MAILLEUR0D()
37     {
38     }
39    
40    
41    
42    
43 couturad 966 int MAILLEUR0D::maille(MG_GROUPE_TOPOLOGIQUE* mggt)
44 francois 283 {
45 couturad 966 if (mg_sommet!=NULL)
46     {
47     if(maille(mg_sommet)==FAIL) return FAIL;
48     }
49 francois 283 else
50     {
51     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> lst;
52     if (mggt!=NULL)
53     {
54 couturad 906 std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*>::iterator it;
55     for(MG_ELEMENT_TOPOLOGIQUE* ele=mggt->get_premier(it);ele!=NULL;ele=mggt->get_suivant(it))
56     {
57     lst.ajouter(ele);
58     ele->get_topologie_sousjacente(&lst);
59     }
60 francois 283 }
61     int nb_sommet=mg_geometrie->get_nb_mg_sommet();
62     for (int i=0;i<nb_sommet;i++)
63     {
64     MG_SOMMET* mgsom=mg_geometrie->get_mg_sommet(i);
65     if (mggt!=NULL)
66     if (lst.existe(mgsom)==0) continue;
67 couturad 967 if(maille(mgsom)==FAIL) return FAIL;
68 francois 283 }
69     }
70 couturad 966 return OK;
71 francois 283 }
72    
73    
74 couturad 966 int MAILLEUR0D::maille(MG_SOMMET* mgsom)
75 francois 283 {
76     double coo[3];
77     mgsom->get_point()->evaluer(coo);
78 francois 791 MG_NOEUD* mgnoeud=new MG_NOEUD(mgsom,coo[0],coo[1],coo[2],MAGIC::ORIGINE::MAILLEUR_AUTO);
79 francois 283 mg_maillage->ajouter_mg_noeud(mgnoeud);
80     mgnoeud->get_lien_topologie()->get_lien_maillage()->ajouter(mgnoeud);
81 couturad 966 return OK;
82 francois 283 }
83    
84    
85     void MAILLEUR0D::adapte(void)
86     {
87     if (mg_sommet!=NULL) adapte(mg_sommet);
88     else
89     {
90     int nb_sommet=mg_geometrie->get_nb_mg_sommet();
91     for (int i=0;i<nb_sommet;i++)
92     {
93     MG_SOMMET* mgsom=mg_geometrie->get_mg_sommet(i);
94     adapte(mgsom);
95     }
96     }
97     }
98    
99    
100     void MAILLEUR0D::adapte(MG_SOMMET* mgsom)
101     {
102     int nb_noeud=mgsom->get_lien_maillage()->get_nb();
103     for (int i=0;i<nb_noeud;i++)
104     {
105     MG_NOEUD* noeud=(MG_NOEUD*)mgsom->get_lien_maillage()->get(i);
106     MG_NOEUD* noeudtmp=mg_maillage->get_mg_noeudid(noeud->get_id());
107     if (noeudtmp!=NULL) return;
108     }
109     double coo[3];
110     mgsom->get_point()->evaluer(coo);
111 francois 791 MG_NOEUD* mgnoeud=new MG_NOEUD(mgsom,coo[0],coo[1],coo[2],MAGIC::ORIGINE::MAILLEUR_AUTO);
112 francois 283 mg_maillage->ajouter_mg_noeud(mgnoeud);
113     mgnoeud->get_lien_topologie()->get_lien_maillage()->ajouter(mgnoeud);
114     }
115    
116    
117    
118    
119