ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/mailleur0d.cpp
Revision: 253
Committed: Tue Jul 13 19:40:46 2010 UTC (14 years, 10 months ago) by francois
File size: 3019 byte(s)
Log Message:
changement de hiearchie et utilisation de ccmake + mise a jour

File Contents

# User Rev Content
1 5 //------------------------------------------------------------
2     //------------------------------------------------------------
3     // MAGiC
4 picher 179 // Jean Christophe Cuilli�re et Vincent FRANCOIS
5     // D�partement de G�nie M�canique - UQTR
6 5 //------------------------------------------------------------
7 picher 179 // 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 5 // des auteurs (contact : francois@uqtr.ca)
12     //------------------------------------------------------------
13     //------------------------------------------------------------
14     //
15     // mailleur0d.cpp
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20 picher 179 // Version du 02/03/2006 � 11H23
21 5 //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24    
25     #include "gestionversion.h"
26     #include "mailleur0d.h"
27    
28    
29    
30 13
31 5 MAILLEUR0D::MAILLEUR0D(MG_MAILLAGE* mgmai,MG_GEOMETRIE *mggeo,MG_SOMMET* mgsom):MAILLEUR(),mg_maillage(mgmai),mg_geometrie(mggeo),mg_sommet(mgsom)
32     {
33     }
34    
35    
36    
37     MAILLEUR0D::~MAILLEUR0D()
38     {
39     }
40    
41    
42    
43    
44 francois 210 void MAILLEUR0D::maille(MG_GROUPE_TOPOLOGIQUE* mggt)
45 5 {
46     if (mg_sommet!=NULL) maille(mg_sommet);
47     else
48     {
49 francois 210 TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> lst;
50     if (mggt!=NULL)
51     {
52     int nb=mggt->get_nb();
53     for (int i=0;i<nb;i++)
54     {
55     lst.ajouter(mggt->get(i));
56     mggt->get(i)->get_topologie_sousjacente(&lst);
57     }
58     }
59 5 int nb_sommet=mg_geometrie->get_nb_mg_sommet();
60     for (int i=0;i<nb_sommet;i++)
61     {
62     MG_SOMMET* mgsom=mg_geometrie->get_mg_sommet(i);
63 francois 210 if (mggt!=NULL)
64     if (lst.existe(mgsom)==0) continue;
65 5 maille(mgsom);
66     }
67     }
68     }
69    
70    
71     void MAILLEUR0D::maille(MG_SOMMET* mgsom)
72     {
73     double coo[3];
74     mgsom->get_point()->evaluer(coo);
75 francois 35 MG_NOEUD* mgnoeud=new MG_NOEUD(mgsom,coo[0],coo[1],coo[2],MAILLEUR_AUTO);
76 5 mg_maillage->ajouter_mg_noeud(mgnoeud);
77     mgnoeud->get_lien_topologie()->get_lien_maillage()->ajouter(mgnoeud);
78     }
79    
80    
81 francois 35 void MAILLEUR0D::adapte(void)
82     {
83     if (mg_sommet!=NULL) adapte(mg_sommet);
84     else
85     {
86     int nb_sommet=mg_geometrie->get_nb_mg_sommet();
87     for (int i=0;i<nb_sommet;i++)
88     {
89     MG_SOMMET* mgsom=mg_geometrie->get_mg_sommet(i);
90     adapte(mgsom);
91     }
92     }
93     }
94 5
95    
96 francois 35 void MAILLEUR0D::adapte(MG_SOMMET* mgsom)
97     {
98     int nb_noeud=mgsom->get_lien_maillage()->get_nb();
99     for (int i=0;i<nb_noeud;i++)
100     {
101     MG_NOEUD* noeud=(MG_NOEUD*)mgsom->get_lien_maillage()->get(i);
102     MG_NOEUD* noeudtmp=mg_maillage->get_mg_noeudid(noeud->get_id());
103     if (noeudtmp!=NULL) return;
104     }
105     double coo[3];
106     mgsom->get_point()->evaluer(coo);
107 francois 120 MG_NOEUD* mgnoeud=new MG_NOEUD(mgsom,coo[0],coo[1],coo[2],MAILLEUR_AUTO);
108 francois 35 mg_maillage->ajouter_mg_noeud(mgnoeud);
109     mgnoeud->get_lien_topologie()->get_lien_maillage()->ajouter(mgnoeud);
110     }
111 5
112    
113    
114 francois 35
115