ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/mailleur0d.cpp
Revision: 35
Committed: Thu Aug 16 21:24:14 2007 UTC (17 years, 9 months ago) by francois
Original Path: magic/lib/mailleur/mailleur/src/mailleur0d.cpp
File size: 2695 byte(s)
Log Message:
Mailleur 3D + divers bugs + origine des elements de maillages

File Contents

# User Rev Content
1 5 //------------------------------------------------------------
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     // mailleur0d.cpp
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 à 11H23
21     //------------------------------------------------------------
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     void MAILLEUR0D::maille(void)
45     {
46     if (mg_sommet!=NULL) maille(mg_sommet);
47     else
48     {
49     int nb_sommet=mg_geometrie->get_nb_mg_sommet();
50     for (int i=0;i<nb_sommet;i++)
51     {
52     MG_SOMMET* mgsom=mg_geometrie->get_mg_sommet(i);
53     maille(mgsom);
54     }
55     }
56     }
57    
58    
59     void MAILLEUR0D::maille(MG_SOMMET* mgsom)
60     {
61     double coo[3];
62     mgsom->get_point()->evaluer(coo);
63 francois 35 MG_NOEUD* mgnoeud=new MG_NOEUD(mgsom,coo[0],coo[1],coo[2],MAILLEUR_AUTO);
64 5 mg_maillage->ajouter_mg_noeud(mgnoeud);
65     mgnoeud->get_lien_topologie()->get_lien_maillage()->ajouter(mgnoeud);
66     }
67    
68    
69 francois 35 void MAILLEUR0D::adapte(void)
70     {
71     if (mg_sommet!=NULL) adapte(mg_sommet);
72     else
73     {
74     int nb_sommet=mg_geometrie->get_nb_mg_sommet();
75     for (int i=0;i<nb_sommet;i++)
76     {
77     MG_SOMMET* mgsom=mg_geometrie->get_mg_sommet(i);
78     adapte(mgsom);
79     }
80     }
81     }
82 5
83    
84 francois 35 void MAILLEUR0D::adapte(MG_SOMMET* mgsom)
85     {
86     int nb_noeud=mgsom->get_lien_maillage()->get_nb();
87     for (int i=0;i<nb_noeud;i++)
88     {
89     MG_NOEUD* noeud=(MG_NOEUD*)mgsom->get_lien_maillage()->get(i);
90     MG_NOEUD* noeudtmp=mg_maillage->get_mg_noeudid(noeud->get_id());
91     if (noeudtmp!=NULL) return;
92     }
93     double coo[3];
94     mgsom->get_point()->evaluer(coo);
95     MG_NOEUD* mgnoeud=new MG_NOEUD(mgsom,coo[0],coo[1],coo[2],MAILLEUR_AUTO);
96     mg_maillage->ajouter_mg_noeud(mgnoeud);
97     mgnoeud->get_lien_topologie()->get_lien_maillage()->ajouter(mgnoeud);
98     }
99 5
100    
101    
102 francois 35
103