MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_noeud.cpp
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
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 //####// mg_noeud.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:53 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 
24 #include "gestionversion.h"
25 #include "mg_noeud.h"
26 #include "ot_boite_2d.h"
27 #include "mg_maillage.h"
28 
29 
30 
31 
32 MG_NOEUD::MG_NOEUD(unsigned long num,MG_ELEMENT_TOPOLOGIQUE* topo,double xx,double yy,double zz,int origine):MG_ELEMENT_MAILLAGE(num,topo,origine)
33 {
34  xyz[0]=xx;
35  xyz[1]=yy;
36  xyz[2]=zz;
37  if (topo==NULL) return;
39 }
40 
41 MG_NOEUD::MG_NOEUD(MG_ELEMENT_TOPOLOGIQUE* topo,double xx,double yy,double zz,int origine):MG_ELEMENT_MAILLAGE(topo,origine)
42 {
43  xyz[0]=xx;
44  xyz[1]=yy;
45  xyz[2]=zz;
46  if (topo==NULL) return;
48 }
49 
51 {
52  xyz[0]=mdd.xyz[0];
53  xyz[1]=mdd.xyz[1];
54  xyz[2]=mdd.xyz[2];
55  if (mdd.get_lien_topologie()==NULL) return;
57 }
58 
60 {
61  MG_NOEUD* noeud=new MG_NOEUD(this->get_id()+decalage,liaison_topologique,xyz[0],xyz[1],xyz[2],MAGIC::ORIGINE::DUPLIQUER);
62  mgmai->ajouter_mg_noeud(noeud);
63  return noeud;
64 }
65 
67 {
68  if (liaison_topologique==NULL) return;
70 }
71 
73 {
75 }
76 
77 double MG_NOEUD::get_x(void)
78 {
79  return xyz[0];
80 }
81 
82 double MG_NOEUD::get_y(void)
83 {
84  return xyz[1];
85 }
86 
87 double MG_NOEUD::get_z(void)
88 {
89  return xyz[2];
90 }
91 
92 double* MG_NOEUD::get_coord(void)
93 {
94  return xyz;
95 }
96 
97 
98 void MG_NOEUD::change_u(double uu)
99 {
100  u=uu;
101 }
102 
103 void MG_NOEUD::change_v(double vv)
104 {
105  v=vv;
106 }
107 
108 double MG_NOEUD::get_u(void)
109 {
110  return u;
111 }
112 
113 double MG_NOEUD::get_v(void)
114 {
115  return v;
116 }
117 
118 void MG_NOEUD::change_x(double xx)
119 {
120  xyz[0]=xx;
121 }
122 
123 void MG_NOEUD::change_y(double yy)
124 {
125  xyz[1]=yy;
126 }
127 
128 void MG_NOEUD::change_z(double zz)
129 {
130  xyz[2]=zz;
131 }
132 
133 void MG_NOEUD::change_coord(double *coo)
134 {
135  xyz[0]=coo[0];
136  xyz[1]=coo[1];
137  xyz[2]=coo[2];
138 }
139 
140 
142 {
143  return &segment;
144 }
145 
146 
148 {
149  return &petit_segment;
150 }
151 
152 
154 {
155  return ▵
156 }
157 
158 
160 {
161  return &petit_triangle;
162 }
163 
165 {
166  return &quadrangle;
167 }
168 
169 
171 {
172  return &petit_quadrangle;
173 }
174 
176 {
177  return &tetra;
178 }
179 
180 
182 {
183  return &petit_tetra;
184 }
185 
187 {
188  return &hexa;
189 }
190 
191 
193 {
194  return &petit_hexa;
195 }
196 
198 {
199  return &penta;
200 }
201 
202 
204 {
205  return &petit_penta;
206 }
207 
209 {
210  return &pyramide;
211 }
212 
213 
215 {
216  return &petit_pyramide;
217 }
218 
220 {
221  return 0;
222 }
223 
224 
225 
226 
227 BOITE_2D MG_NOEUD::get_boite_2D(double periodeu,double periodev)
228 {
229  BOITE_2D boite(u,v,u,v);
230  return boite;
231 
232 }
233 
235 {
236  BOITE_3D boite(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
237  return boite;
238 
239 }
240 
241 void MG_NOEUD::enregistrer(std::ostream& o,double version)
242 {
243  if (get_lien_topologie()!=NULL) o << "%" << get_id() << "=NOEUD($"<< get_lien_topologie()->get_id() << "," << xyz[0] << "," << xyz[1] << "," << xyz[2] << "," << origine_creation << ");" << std::endl;
244  else o << "%" << get_id() << "=NOEUD(NULL," << xyz[0] << "," << xyz[1] << "," << xyz[2] << "," << origine_creation <<");" << std::endl;
245 
246 }
247 
248 bool MG_NOEUD::operator==(const MG_NOEUD& mdd) const
249 {
250 if (xyz[0]==mdd.xyz[0])
251  if (xyz[1]==mdd.xyz[1])
252  if (xyz[2]==mdd.xyz[2])
253  return true;
254 return false;
255 }
MG_NOEUD::get_boite_3D
virtual class BOITE_3D get_boite_3D(void)
Definition: mg_noeud.cpp:234
MG_NOEUD::MG_NOEUD
MG_NOEUD(unsigned long num, MG_ELEMENT_TOPOLOGIQUE *topo, double xx, double yy, double zz, int origine)
Definition: mg_noeud.cpp:32
MG_NOEUD::petit_triangle
TPL_LISTE_ENTITE< class MG_TRIANGLE * > petit_triangle
Definition: mg_noeud.h:113
gestionversion.h
MG_NOEUD::penta
TPL_LISTE_ENTITE< class MG_PENTA * > penta
Definition: mg_noeud.h:124
MG_NOEUD::v
double v
Definition: mg_noeud.h:107
MG_ELEMENT_MAILLAGE::origine_creation
int origine_creation
Definition: mg_element_maillage.h:72
MG_NOEUD::get_lien_petit_triangle
TPL_LISTE_ENTITE< class MG_TRIANGLE * > * get_lien_petit_triangle(void)
Definition: mg_noeud.cpp:159
MG_NOEUD::get_lien_quadrangle
TPL_LISTE_ENTITE< class MG_QUADRANGLE * > * get_lien_quadrangle(void)
Definition: mg_noeud.cpp:164
MG_NOEUD::get_z
virtual double get_z(void)
Definition: mg_noeud.cpp:87
MG_NOEUD::get_lien_triangle
TPL_LISTE_ENTITE< class MG_TRIANGLE * > * get_lien_triangle(void)
Definition: mg_noeud.cpp:153
MG_NOEUD::tetra
TPL_LISTE_ENTITE< class MG_TETRA * > tetra
Definition: mg_noeud.h:118
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
ot_boite_2d.h
MG_NOEUD::dupliquer
virtual MG_NOEUD * dupliquer(class MG_MAILLAGE *mgmai, long decalage)
Definition: mg_noeud.cpp:59
MG_ELEMENT_MAILLAGE
Definition: mg_element_maillage.h:38
TPL_SET::supprimer
void supprimer(X x)
Definition: tpl_set.h:62
MG_ELEMENT_TOPOLOGIQUE::get_dimension
virtual int get_dimension(void)=0
mg_noeud.h
MG_NOEUD::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: mg_noeud.cpp:241
MG_NOEUD::change_z
virtual void change_z(double zz)
Definition: mg_noeud.cpp:128
MG_NOEUD::quadrangle
TPL_LISTE_ENTITE< class MG_QUADRANGLE * > quadrangle
Definition: mg_noeud.h:115
MG_NOEUD::get_lien_hexa
TPL_LISTE_ENTITE< class MG_HEXA * > * get_lien_hexa(void)
Definition: mg_noeud.cpp:186
MG_ELEMENT_TOPOLOGIQUE::get_lien_maillage
virtual TPL_SET< MG_ELEMENT_MAILLAGE * > * get_lien_maillage(void)
Definition: mg_element_topologique.cpp:62
MG_ELEMENT_TOPOLOGIQUE
Definition: mg_element_topologique.h:51
MG_NOEUD::change_y
virtual void change_y(double yy)
Definition: mg_noeud.cpp:123
MAGIC::TYPE_ENTITE::IDMG_NOEUD
@ IDMG_NOEUD
Definition: mg_definition.h:69
MG_NOEUD::get_type_entite
virtual int get_type_entite()
Definition: mg_noeud.cpp:72
MG_NOEUD::get_lien_petit_quadrangle
TPL_LISTE_ENTITE< class MG_QUADRANGLE * > * get_lien_petit_quadrangle(void)
Definition: mg_noeud.cpp:170
MG_NOEUD::get_u
virtual double get_u(void)
Definition: mg_noeud.cpp:108
MG_NOEUD::get_lien_petit_pyramide
TPL_LISTE_ENTITE< class MG_PYRAMIDE * > * get_lien_petit_pyramide(void)
Definition: mg_noeud.cpp:214
MG_NOEUD::get_lien_penta
TPL_LISTE_ENTITE< class MG_PENTA * > * get_lien_penta(void)
Definition: mg_noeud.cpp:197
MG_NOEUD::u
double u
Definition: mg_noeud.h:106
TPL_SET::ajouter
void ajouter(X x)
Definition: tpl_set.h:55
MG_NOEUD::get_lien_pyramide
TPL_LISTE_ENTITE< class MG_PYRAMIDE * > * get_lien_pyramide(void)
Definition: mg_noeud.cpp:208
MG_NOEUD::change_x
virtual void change_x(double xx)
Definition: mg_noeud.cpp:118
MG_NOEUD::get_lien_segment
TPL_LISTE_ENTITE< class MG_SEGMENT * > * get_lien_segment(void)
Definition: mg_noeud.cpp:141
MG_NOEUD
Definition: mg_noeud.h:41
MG_NOEUD::petit_pyramide
TPL_LISTE_ENTITE< class MG_PYRAMIDE * > petit_pyramide
Definition: mg_noeud.h:128
MG_NOEUD::petit_quadrangle
TPL_LISTE_ENTITE< class MG_QUADRANGLE * > petit_quadrangle
Definition: mg_noeud.h:116
MG_NOEUD::petit_penta
TPL_LISTE_ENTITE< class MG_PENTA * > petit_penta
Definition: mg_noeud.h:125
MG_ELEMENT_MAILLAGE::liaison_topologique
MG_ELEMENT_TOPOLOGIQUE * liaison_topologique
Definition: mg_element_maillage.h:69
MG_NOEUD::get_coord
virtual double * get_coord(void)
Definition: mg_noeud.cpp:92
MG_NOEUD::get_dimension
virtual int get_dimension(void)
Definition: mg_noeud.cpp:219
MG_NOEUD::petit_segment
TPL_LISTE_ENTITE< class MG_SEGMENT * > petit_segment
Definition: mg_noeud.h:110
MAGIC::ORIGINE::DUPLIQUER
@ DUPLIQUER
Definition: mg_definition.h:79
MG_NOEUD::get_lien_tetra
TPL_LISTE_ENTITE< class MG_TETRA * > * get_lien_tetra(void)
Definition: mg_noeud.cpp:175
MG_NOEUD::change_u
virtual void change_u(double uu)
Definition: mg_noeud.cpp:98
MG_NOEUD::get_v
virtual double get_v(void)
Definition: mg_noeud.cpp:113
MG_NOEUD::get_boite_2D
virtual class BOITE_2D get_boite_2D(double periodeu, double periodev)
Definition: mg_noeud.cpp:227
MG_NOEUD::hexa
TPL_LISTE_ENTITE< class MG_HEXA * > hexa
Definition: mg_noeud.h:121
MG_NOEUD::triangle
TPL_LISTE_ENTITE< class MG_TRIANGLE * > triangle
Definition: mg_noeud.h:112
MG_NOEUD::get_x
virtual double get_x(void)
Definition: mg_noeud.cpp:77
BOITE_2D
Definition: ot_boite_2d.h:28
MG_NOEUD::operator==
bool operator==(const MG_NOEUD &mdd) const
Definition: mg_noeud.cpp:248
BOITE_3D
Definition: ot_boite_3d.h:27
mg_maillage.h
MG_NOEUD::xyz
double xyz[3]
Definition: mg_noeud.h:104
MG_NOEUD::get_lien_petit_segment
TPL_LISTE_ENTITE< class MG_SEGMENT * > * get_lien_petit_segment(void)
Definition: mg_noeud.cpp:147
MG_ELEMENT_MAILLAGE::get_lien_topologie
MG_ELEMENT_TOPOLOGIQUE * get_lien_topologie(void)
Definition: mg_element_maillage.cpp:51
MG_NOEUD::change_v
virtual void change_v(double vv)
Definition: mg_noeud.cpp:103
MG_NOEUD::petit_hexa
TPL_LISTE_ENTITE< class MG_HEXA * > petit_hexa
Definition: mg_noeud.h:122
MG_NOEUD::get_lien_petit_tetra
TPL_LISTE_ENTITE< class MG_TETRA * > * get_lien_petit_tetra(void)
Definition: mg_noeud.cpp:181
MG_NOEUD::get_lien_petit_hexa
TPL_LISTE_ENTITE< class MG_HEXA * > * get_lien_petit_hexa(void)
Definition: mg_noeud.cpp:192
MG_NOEUD::get_lien_petit_penta
TPL_LISTE_ENTITE< class MG_PENTA * > * get_lien_petit_penta(void)
Definition: mg_noeud.cpp:203
MG_NOEUD::~MG_NOEUD
virtual ~MG_NOEUD()
Definition: mg_noeud.cpp:66
MG_NOEUD::change_coord
virtual void change_coord(double *coo)
Definition: mg_noeud.cpp:133
MG_MAILLAGE
Definition: mg_maillage.h:62
TPL_LISTE_ENTITE< class MG_SEGMENT * >
MG_NOEUD::segment
TPL_LISTE_ENTITE< class MG_SEGMENT * > segment
Definition: mg_noeud.h:109
MG_NOEUD::petit_tetra
TPL_LISTE_ENTITE< class MG_TETRA * > petit_tetra
Definition: mg_noeud.h:119
MG_NOEUD::pyramide
TPL_LISTE_ENTITE< class MG_PYRAMIDE * > pyramide
Definition: mg_noeud.h:127
MG_NOEUD::get_y
virtual double get_y(void)
Definition: mg_noeud.cpp:82
MG_MAILLAGE::ajouter_mg_noeud
MG_NOEUD * ajouter_mg_noeud(MG_ELEMENT_TOPOLOGIQUE *topo, double xx, double yy, double zz, int origine, unsigned long num=0)
Definition: mg_maillage.cpp:421