ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur_auto/src/mailleur0d.cpp
Revision: 906
Committed: Mon Nov 13 22:30:18 2017 UTC (7 years, 9 months ago) by couturad
File size: 3237 byte(s)
Log Message:
Nouveau opencascade commit 1

File Contents

# Content
1 //------------------------------------------------------------
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
31 MAILLEUR0D::MAILLEUR0D(MG_MAILLAGE* mgmai,MG_GEOMETRIE *mggeo,MG_SOMMET* mgsom):MAILLEUR(false),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(MG_GROUPE_TOPOLOGIQUE* mggt)
45 {
46 if (mg_sommet!=NULL) maille(mg_sommet);
47 else
48 {
49 TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> lst;
50 if (mggt!=NULL)
51 {
52 std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*>::iterator it;
53 for(MG_ELEMENT_TOPOLOGIQUE* ele=mggt->get_premier(it);ele!=NULL;ele=mggt->get_suivant(it))
54 {
55 lst.ajouter(ele);
56 ele->get_topologie_sousjacente(&lst);
57 }
58 }
59 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 if (mggt!=NULL)
64 if (lst.existe(mgsom)==0) continue;
65 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 MG_NOEUD* mgnoeud=new MG_NOEUD(mgsom,coo[0],coo[1],coo[2],MAGIC::ORIGINE::MAILLEUR_AUTO);
76 mg_maillage->ajouter_mg_noeud(mgnoeud);
77 mgnoeud->get_lien_topologie()->get_lien_maillage()->ajouter(mgnoeud);
78 }
79
80
81 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
95
96 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 MG_NOEUD* mgnoeud=new MG_NOEUD(mgsom,coo[0],coo[1],coo[2],MAGIC::ORIGINE::MAILLEUR_AUTO);
108 mg_maillage->ajouter_mg_noeud(mgnoeud);
109 mgnoeud->get_lien_topologie()->get_lien_maillage()->ajouter(mgnoeud);
110 }
111
112
113
114
115