MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_cg_forme_volume_tore.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_cg_forme_volume_tore.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:54 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
23 #include "mg_cg_modele.h"
24 #include "mg_cg_operateur.h"
25 #include "mg_volume.h"
26 #include "mg_cg_info.h"
27 
28  //==================================================================
30  double centre_x,
31  double centre_y,
32  double centre_z,
33  double direction_x,
34  double direction_y,
35  double direction_z,
36  double rayon_cercle,
37  double rayon_tore,
38  double angle_seg,
39  double angle_rotation
40  ): MG_CG_FORME_VOLUME(mgcg_modele,MG_CG_FORME::PROVENANCE_FORME::PRIMITIVE)
41 {
42  m_centre[0]=centre_x;
43  m_centre[1]=centre_y;
44  m_centre[2]=centre_z;
45  m_direction[0]=direction_x;
46  m_direction[1]=direction_y;
47  m_direction[2]=direction_z;
48  m_rayon_cercle=rayon_cercle;
49  m_rayon_tore=rayon_tore;
50  m_angle_seg=angle_seg;
51  m_angle_rotation=angle_rotation;
52 }
53 
55  int etat,
56  long unsigned int num,
57  MG_VOLUME* mg_volume,
58  double centre_x,
59  double centre_y,
60  double centre_z,
61  double direction_x,
62  double direction_y,
63  double direction_z,
64  double rayon_cercle,
65  double rayon_tore,
66  double angle_seg,
67  double angle_rotation
68  ): MG_CG_FORME_VOLUME(mgcg_modele,MG_CG_FORME::PROVENANCE_FORME::PRIMITIVE,etat,num,mg_volume)
69 {
70  m_centre[0]=centre_x;
71  m_centre[1]=centre_y;
72  m_centre[2]=centre_z;
73  m_direction[0]=direction_x;
74  m_direction[1]=direction_y;
75  m_direction[2]=direction_z;
76  m_rayon_cercle=rayon_cercle;
77  m_rayon_tore=rayon_tore;
78  m_angle_seg=angle_seg;
79  m_angle_rotation=angle_rotation;
80 
81 }
82 
84 {
85  m_centre[0]=mdd.m_centre[0];
86  m_centre[1]=mdd.m_centre[1];
87  m_centre[2]=mdd.m_centre[2];
88  m_direction[0]=mdd.m_direction[0];
89  m_direction[1]=mdd.m_direction[1];
90  m_direction[2]=mdd.m_direction[2];
95 }
96 
97  //==================================================================
98  /*
99  MG_CG_FORME_VOLUME_TORE::MG_CG_FORME_VOLUME_TORE(MG_CG_MODELE* mgcg_modele,
100  double centre_x,
101  double centre_y,
102  double centre_z,
103  double direction_x,
104  double direction_y,
105  double direction_z,
106  double rayon_cercle,
107  double rayon_tore,
108  double angle_begin,
109  double angle_end
110  ): MG_CG_FORME_VOLUME(mgcg_modele,MG_CG_FORME::PROVENANCE_FORME::PRIMITIVE)
111 {
112  m_centre[0]=centre_x;
113  m_centre[1]=centre_y;
114  m_centre[2]=centre_z;
115  m_direction[0]=direction_x;
116  m_direction[1]=direction_y;
117  m_direction[2]=direction_z;
118  m_rayon_cercle=rayon_cercle;
119  m_rayon_tore=rayon_tore;
120  m_angle_begin=angle_begin;
121  m_angle_end=angle_end;
122 }
123 
124 MG_CG_FORME_VOLUME_TORE::MG_CG_FORME_VOLUME_TORE(MG_CG_MODELE* mgcg_modele,
125  int etat,
126  long unsigned int num,
127  MG_VOLUME* mg_volume,
128  double centre_x,
129  double centre_y,
130  double centre_z,
131  double direction_x,
132  double direction_y,
133  double direction_z,
134  double rayon_cercle,
135  double rayon_tore,
136  double angle_begin,
137  double angle_end
138  ): MG_CG_FORME_VOLUME(mgcg_modele,MG_CG_FORME::PROVENANCE_FORME::PRIMITIVE,etat,num,mg_volume)
139 {
140  m_centre[0]=centre_x;
141  m_centre[1]=centre_y;
142  m_centre[2]=centre_z;
143  m_direction[0]=direction_x;
144  m_direction[1]=direction_y;
145  m_direction[2]=direction_z;
146  m_rayon_cercle=rayon_cercle;
147  m_rayon_tore=rayon_tore;
148  m_angle_begin=angle_begin;
149  m_angle_end=angle_end;
150 
151 }
152 
153 MG_CG_FORME_VOLUME_TORE::MG_CG_FORME_VOLUME_TORE(MG_CG_FORME_VOLUME_TORE& mdd): MG_CG_FORME_VOLUME(mdd)
154 {
155  m_centre[0]=mdd.m_centre[0];
156  m_centre[1]=mdd.m_centre[1];
157  m_centre[2]=mdd.m_centre[2];
158  m_direction[0]=mdd.m_direction[0];
159  m_direction[1]=mdd.m_direction[1];
160  m_direction[2]=mdd.m_direction[2];
161  m_rayon_cercle=mdd.m_rayon_cercle;
162  m_rayon_tore=mdd.m_rayon_tore;
163  m_angle_begin=mdd.m_angle_begin;
164  m_angle_end=mdd.m_angle_end;
165 }
166 */
167  //=========================================================================
168  //=======================================================================
169 
171 {
172 
173 }
174 
176 {
177  return MG_CG_FORME_VOLUME::TYPE_FORME_VOLUME::TORE;
178 }
179 
181 {
182  m_centre[0]=x;
183  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
184 }
185 
187 {
188  return m_centre[0];
189 }
190 
192 {
193  m_centre[1]=y;
194  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
195 }
196 
198 {
199  return m_centre[1];
200 }
201 
203 {
204  m_centre[2]=z;
205  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
206 }
207 
209 {
210  return m_centre[2];
211 }
212 
214 {
215  m_direction[0]=x;
216  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
217 }
218 
220 {
221  return m_direction[0];
222 }
223 
225 {
226  m_direction[1]=y;
227  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
228 }
229 
231 {
232  return m_direction[1];
233 }
234 
236 {
237  m_direction[2]=z;
238  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
239 }
240 
242 {
243  return m_direction[2];
244 }
245 
247 {
248  m_rayon_cercle=rayon_cercle;
249  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
250 }
251 
253 {
254  return m_rayon_cercle;
255 }
256 
258 {
259  m_rayon_tore=rayon_tore;
260  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
261 }
262 
264 {
265  return m_rayon_tore;
266 }
267 
268  //==================================================================
270 {
271  m_angle_seg=angle_seg;
272  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
273 }
274 
276 {
277  return m_angle_seg;
278 }
279 
280 
282 {
283  m_angle_rotation=angle_rotation;
284  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
285 }
286 
288 {
289  return m_angle_rotation;
290 }
291 
292  //==================================================================
293 /*
294  void MG_CG_FORME_VOLUME_TORE::change_angle_begin(double angle_begin)
295 {
296  m_angle_begin=angle_begin;
297  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
298 }
299 
300  double MG_CG_FORME_VOLUME_TORE::get_angle_begin(void)
301 {
302  return m_angle_begin;
303 }
304 
305  void MG_CG_FORME_VOLUME_TORE::change_angle_end(double angle_end)
306 {
307  m_angle_end=angle_end;
308  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
309 }
310 
311 double MG_CG_FORME_VOLUME_TORE::get_angle_end(void)
312 {
313  return m_angle_end;
314 }
315 */
316 
317 void MG_CG_FORME_VOLUME_TORE::enregistrer(std::ostream& o, double version)
318 {
319  o << "%" << get_id()
320  << "=MG_CG_FORME_VOLUME_TORE("
321  << "$"<< m_mgcg_modele->get_id()
322  << "," << m_etat;
323  if(m_etat==MG_CG_FORME::ETAT_FORME::CONSTRUITE)
324  o << ",$"<< m_mg_volume->get_id();
325  else
326  o << ",$-1";
327  o << "," << m_centre[0]
328  << "," << m_centre[1]
329  << "," << m_centre[2]
330  << "," << m_direction[0]
331  << "," << m_direction[1]
332  << "," << m_direction[2]
333  << "," << m_rayon_cercle
334  << "," << m_rayon_tore
335  << "," << m_angle_seg
336  << "," << m_angle_rotation;
337  o << "," << get_nb_mgcg_operateur_dependant()
338  << ",(";
339  std::map<long,MG_CG_OPERATEUR*>::iterator it_op;
340  for(MG_CG_OPERATEUR* mgcg_op = get_premier_mgcg_operateur_dependant(it_op);mgcg_op!=NULL;mgcg_op=get_suivant_mgcg_operateur_dependant(it_op))
341  {
342  o << "$" << mgcg_op->get_id();
343  if(it_op!=--m_map_mgcg_operateur_dependant.end()) o << ",";
344  }
345  o << "));" << std::endl;
346  enregistrer_infos(o,version);
347 }
348 
349 
350 
351 
352 
353 
MG_CG_FORME_VOLUME_TORE::get_direction_z
virtual double get_direction_z(void)
Definition: mg_cg_forme_volume_tore.cpp:241
MG_CG_FORME_VOLUME_TORE::m_centre
double m_centre[3]
Definition: mg_cg_forme_volume_tore.h:151
MG_CG_FORME_VOLUME_TORE::change_centre_y
virtual void change_centre_y(double y)
Definition: mg_cg_forme_volume_tore.cpp:191
MG_CG_FORME_VOLUME_TORE::get_direction_x
virtual double get_direction_x(void)
Definition: mg_cg_forme_volume_tore.cpp:219
MG_CG_FORME_VOLUME_TORE::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: mg_cg_forme_volume_tore.cpp:317
MG_CG_FORME_VOLUME_TORE::MG_CG_FORME_VOLUME_TORE
MG_CG_FORME_VOLUME_TORE(MG_CG_MODELE *mgcg_modele, double centre_x, double centre_y, double centre_z, double direction_x, double direction_y, double direction_z, double rayon_cercle, double rayon_tore, double angle_seg, double angle_rotation)
Definition: mg_cg_forme_volume_tore.cpp:29
MG_CG_FORME_VOLUME_TORE::change_centre_x
virtual void change_centre_x(double x)
Definition: mg_cg_forme_volume_tore.cpp:180
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
MG_CG_FORME_VOLUME_TORE::get_direction_y
virtual double get_direction_y(void)
Definition: mg_cg_forme_volume_tore.cpp:230
MG_CG_FORME_VOLUME_TORE::get_rayon_cercle
virtual double get_rayon_cercle(void)
Definition: mg_cg_forme_volume_tore.cpp:252
MG_CG_FORME_VOLUME_TORE::get_rayon_tore
virtual double get_rayon_tore(void)
Definition: mg_cg_forme_volume_tore.cpp:263
MG_CG_FORME::change_etat
virtual void change_etat(int etat_forme)
Definition: mg_cg_forme.cpp:81
mg_cg_forme_volume_tore.h
MG_CG_FORME_VOLUME_TORE::change_direction_y
virtual void change_direction_y(double y)
Definition: mg_cg_forme_volume_tore.cpp:224
MG_CG_FORME::get_premier_mgcg_operateur_dependant
virtual MG_CG_OPERATEUR * get_premier_mgcg_operateur_dependant(std::map< long, MG_CG_OPERATEUR * >::iterator &it)
Definition: mg_cg_forme.cpp:125
MG_CG_FORME_VOLUME_TORE::~MG_CG_FORME_VOLUME_TORE
virtual ~MG_CG_FORME_VOLUME_TORE()
Definition: mg_cg_forme_volume_tore.cpp:170
MG_VOLUME
Definition: mg_volume.h:33
MG_CG_FORME::m_map_mgcg_operateur_dependant
std::map< long, MG_CG_OPERATEUR * > m_map_mgcg_operateur_dependant
Definition: mg_cg_forme.h:89
MG_CG_FORME_VOLUME_TORE::m_angle_seg
double m_angle_seg
Definition: mg_cg_forme_volume_tore.h:159
mg_cg_operateur.h
MG_CG_FORME_VOLUME_TORE::change_direction_x
virtual void change_direction_x(double x)
Definition: mg_cg_forme_volume_tore.cpp:213
MG_CG_FORME_VOLUME_TORE::change_rayon_cercle
virtual void change_rayon_cercle(double rayon_cercle)
Definition: mg_cg_forme_volume_tore.cpp:246
MG_CG_FORME_VOLUME_TORE::m_rayon_tore
double m_rayon_tore
Definition: mg_cg_forme_volume_tore.h:154
MG_CG_FORME_VOLUME_TORE::get_angle_rotation
virtual double get_angle_rotation(void)
Definition: mg_cg_forme_volume_tore.cpp:287
MG_CG_FORME
Definition: mg_cg_forme.h:41
MG_CG_OPERATEUR
Definition: mg_cg_operateur.h:34
MG_CG_FORME_VOLUME_TORE::get_centre_x
virtual double get_centre_x(void)
Definition: mg_cg_forme_volume_tore.cpp:186
MG_CG_FORME_VOLUME_TORE::change_angle_seg
virtual void change_angle_seg(double angle_seg)
Definition: mg_cg_forme_volume_tore.cpp:269
MG_CG_FORME_VOLUME_TORE::m_rayon_cercle
double m_rayon_cercle
Definition: mg_cg_forme_volume_tore.h:153
MG_CG_FORME_VOLUME_TORE::change_centre_z
virtual void change_centre_z(double z)
Definition: mg_cg_forme_volume_tore.cpp:202
MG_CG_FORME::m_mgcg_modele
MG_CG_MODELE * m_mgcg_modele
Definition: mg_cg_forme.h:87
MG_CG_FORME::PROVENANCE_FORME
PROVENANCE_FORME
Definition: mg_cg_forme.h:45
MG_CG_FORME_VOLUME_TORE::get_type_forme_volume
virtual int get_type_forme_volume(void)
Definition: mg_cg_forme_volume_tore.cpp:175
MG_CG_MODELE
Definition: mg_cg_modele.h:41
MG_CG_FORME_VOLUME_TORE::get_centre_z
virtual double get_centre_z(void)
Definition: mg_cg_forme_volume_tore.cpp:208
MG_CG_FORME_VOLUME_TORE::change_angle_rotation
virtual void change_angle_rotation(double angle_rotation)
Definition: mg_cg_forme_volume_tore.cpp:281
MG_CG_FORME_VOLUME_TORE::m_angle_rotation
double m_angle_rotation
Definition: mg_cg_forme_volume_tore.h:160
MG_CG_FORME_VOLUME_TORE::change_rayon_tore
virtual void change_rayon_tore(double rayon_tore)
Definition: mg_cg_forme_volume_tore.cpp:257
mg_cg_modele.h
MG_CG_FORME_VOLUME_TORE
Definition: mg_cg_forme_volume_tore.h:36
mg_cg_info.h
MG_CG_FORME::get_nb_mgcg_operateur_dependant
virtual long get_nb_mgcg_operateur_dependant(void)
Definition: mg_cg_forme.cpp:96
MG_CG_FORME::get_suivant_mgcg_operateur_dependant
virtual MG_CG_OPERATEUR * get_suivant_mgcg_operateur_dependant(std::map< long, MG_CG_OPERATEUR * >::iterator &it)
Definition: mg_cg_forme.cpp:133
MG_CG_FORME_VOLUME::m_mg_volume
MG_VOLUME * m_mg_volume
Definition: mg_cg_forme_volume.h:65
MG_CG_FORME_VOLUME_TORE::get_centre_y
virtual double get_centre_y(void)
Definition: mg_cg_forme_volume_tore.cpp:197
MG_CG_FORME_VOLUME_TORE::get_angle_seg
virtual double get_angle_seg(void)
Definition: mg_cg_forme_volume_tore.cpp:275
MG_CG_FORME_VOLUME_TORE::change_direction_z
virtual void change_direction_z(double z)
Definition: mg_cg_forme_volume_tore.cpp:235
MG_CG_FORME_VOLUME
Definition: mg_cg_forme_volume.h:36
MG_CG_FORME_VOLUME_TORE::m_direction
double m_direction[3]
Definition: mg_cg_forme_volume_tore.h:152
MG_CG_FORME::m_etat
int m_etat
Definition: mg_cg_forme.h:91
mg_volume.h