MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_cg_forme_volume_ellipsoide.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_ellipsoide.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"
28  double centre_x, double centre_y, double centre_z,
29  double direction_x, double direction_y, double direction_z,
30  double rayon_majeur, double rayon_mineur): MG_CG_FORME_VOLUME(mgcg_modele,MG_CG_FORME::PROVENANCE_FORME::PRIMITIVE)
31 {
32  m_centre[0]=centre_x;
33  m_centre[1]=centre_y;
34  m_centre[2]=centre_z;
35  m_direction[0]=direction_x;
36  m_direction[1]=direction_y;
37  m_direction[2]=direction_z;
38  m_rayon_majeur=rayon_majeur;
39  m_rayon_mineur=rayon_mineur;
40 }
41 
43  int etat,
44  long unsigned int num,
45  MG_VOLUME* mg_volume,
46  double centre_x, double centre_y, double centre_z,
47  double direction_x, double direction_y, double direction_z,
48  double rayon_majeur, double rayon_mineur): MG_CG_FORME_VOLUME(mgcg_modele,MG_CG_FORME::PROVENANCE_FORME::PRIMITIVE,etat,num,mg_volume)
49 {
50  m_centre[0]=centre_x;
51  m_centre[1]=centre_y;
52  m_centre[2]=centre_z;
53  m_direction[0]=direction_x;
54  m_direction[1]=direction_y;
55  m_direction[2]=direction_z;
56  m_rayon_majeur=rayon_majeur;
57  m_rayon_mineur=rayon_mineur;
58 }
59 
61 {
62  m_centre[0]=mdd.m_centre[0];
63  m_centre[1]=mdd.m_centre[1];
64  m_centre[2]=mdd.m_centre[2];
65  m_direction[0]=mdd.m_direction[0];
66  m_direction[1]=mdd.m_direction[1];
67  m_direction[2]=mdd.m_direction[2];
70 }
71 
73 {
74 
75 }
76 
78 {
80 }
81 
83 {
84  m_centre[0]=x;
85  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
86 }
87 
89 {
90  return m_centre[0];
91 }
92 
94 {
95  m_centre[1]=y;
96  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
97 }
98 
100 {
101  return m_centre[1];
102 }
103 
105 {
106  m_centre[2]=z;
107  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
108 }
109 
111 {
112  return m_centre[2];
113 }
114 
116 {
117  m_direction[0]=x;
118  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
119 }
120 
122 {
123  return m_direction[0];
124 }
125 
127 {
128  m_direction[1]=y;
129  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
130 }
131 
133 {
134  return m_direction[1];
135 }
136 
138 {
139  m_direction[2]=z;
140  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
141 }
142 
144 {
145  return m_direction[2];
146 }
147 
149 {
150  m_rayon_majeur=rayon_majeur;
151  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
152 }
153 
155 {
156  return m_rayon_majeur;
157 }
158 
160 {
161  m_rayon_mineur=rayon_mineur;
162  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
163 }
164 
166 {
167  return m_rayon_mineur;
168 }
169 
170 void MG_CG_FORME_VOLUME_ELLIPSOIDE::enregistrer(std::ostream& o, double version)
171 {
172  o << "%" << get_id()
173  << "=MG_CG_FORME_VOLUME_ELLIPSOIDE("
174  << "$"<< m_mgcg_modele->get_id()
175  << "," << m_etat;
176  if(m_etat==MG_CG_FORME::ETAT_FORME::CONSTRUITE)
177  o << ",$"<< m_mg_volume->get_id();
178  else
179  o << ",$-1";
180  o << "," << m_centre[0]
181  << "," << m_centre[1]
182  << "," << m_centre[2]
183  << "," << m_direction[0]
184  << "," << m_direction[1]
185  << "," << m_direction[2]
186  << "," << m_rayon_majeur
187  << "," << m_rayon_mineur;
188  o << "," << get_nb_mgcg_operateur_dependant()
189  << ",(";
190  std::map<long,MG_CG_OPERATEUR*>::iterator it_op;
191  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))
192  {
193  o << "$" << mgcg_op->get_id();
194  if(it_op!=--m_map_mgcg_operateur_dependant.end()) o << ",";
195  }
196  o << "));" << std::endl;
197  enregistrer_infos(o,version);
198 }
MG_CG_FORME_VOLUME_ELLIPSOIDE::change_direction_y
virtual void change_direction_y(double y)
Definition: mg_cg_forme_volume_ellipsoide.cpp:126
MG_CG_FORME_VOLUME_ELLIPSOIDE::get_rayon_mineur
virtual double get_rayon_mineur(void)
Definition: mg_cg_forme_volume_ellipsoide.cpp:165
MG_CG_FORME_VOLUME_ELLIPSOIDE::get_rayon_majeur
virtual double get_rayon_majeur(void)
Definition: mg_cg_forme_volume_ellipsoide.cpp:154
MG_CG_FORME_VOLUME_ELLIPSOIDE::get_direction_x
virtual double get_direction_x(void)
Definition: mg_cg_forme_volume_ellipsoide.cpp:121
MG_CG_FORME_VOLUME_ELLIPSOIDE::change_direction_x
virtual void change_direction_x(double x)
Definition: mg_cg_forme_volume_ellipsoide.cpp:115
MG_CG_FORME_VOLUME_ELLIPSOIDE::m_rayon_mineur
double m_rayon_mineur
Definition: mg_cg_forme_volume_ellipsoide.h:82
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
MG_CG_FORME_VOLUME_ELLIPSOIDE::MG_CG_FORME_VOLUME_ELLIPSOIDE
MG_CG_FORME_VOLUME_ELLIPSOIDE(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_majeur, double rayon_mineur)
Definition: mg_cg_forme_volume_ellipsoide.cpp:27
MG_CG_FORME_VOLUME_ELLIPSOIDE::get_type_forme_volume
virtual int get_type_forme_volume(void)
Definition: mg_cg_forme_volume_ellipsoide.cpp:77
MG_CG_FORME_VOLUME_ELLIPSOIDE::get_centre_z
virtual double get_centre_z(void)
Definition: mg_cg_forme_volume_ellipsoide.cpp:110
mg_cg_forme_volume_ellipsoide.h
MG_CG_FORME_VOLUME_ELLIPSOIDE::change_centre_x
virtual void change_centre_x(double x)
Definition: mg_cg_forme_volume_ellipsoide.cpp:82
MG_CG_FORME::change_etat
virtual void change_etat(int etat_forme)
Definition: mg_cg_forme.cpp:81
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_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_ELLIPSOIDE::change_centre_z
virtual void change_centre_z(double z)
Definition: mg_cg_forme_volume_ellipsoide.cpp:104
mg_cg_operateur.h
MG_CG_FORME_VOLUME_ELLIPSOIDE::~MG_CG_FORME_VOLUME_ELLIPSOIDE
virtual ~MG_CG_FORME_VOLUME_ELLIPSOIDE()
Definition: mg_cg_forme_volume_ellipsoide.cpp:72
MG_CG_FORME_VOLUME::ELLIPSOIDE
@ ELLIPSOIDE
Definition: mg_cg_forme_volume.h:39
MG_CG_FORME
Definition: mg_cg_forme.h:41
MG_CG_FORME_VOLUME_ELLIPSOIDE::get_centre_x
virtual double get_centre_x(void)
Definition: mg_cg_forme_volume_ellipsoide.cpp:88
MG_CG_FORME_VOLUME_ELLIPSOIDE::m_rayon_majeur
double m_rayon_majeur
Definition: mg_cg_forme_volume_ellipsoide.h:81
MG_CG_OPERATEUR
Definition: mg_cg_operateur.h:34
MG_CG_FORME_VOLUME_ELLIPSOIDE::change_centre_y
virtual void change_centre_y(double y)
Definition: mg_cg_forme_volume_ellipsoide.cpp:93
MG_CG_FORME_VOLUME_ELLIPSOIDE::m_direction
double m_direction[3]
Definition: mg_cg_forme_volume_ellipsoide.h:80
MG_CG_FORME_VOLUME_ELLIPSOIDE::change_direction_z
virtual void change_direction_z(double z)
Definition: mg_cg_forme_volume_ellipsoide.cpp:137
MG_CG_FORME_VOLUME_ELLIPSOIDE::get_direction_z
virtual double get_direction_z(void)
Definition: mg_cg_forme_volume_ellipsoide.cpp:143
MG_CG_FORME_VOLUME_ELLIPSOIDE::change_rayon_mineur
virtual void change_rayon_mineur(double rayon_mineur)
Definition: mg_cg_forme_volume_ellipsoide.cpp:159
MG_CG_FORME::m_mgcg_modele
MG_CG_MODELE * m_mgcg_modele
Definition: mg_cg_forme.h:87
MG_CG_FORME_VOLUME_ELLIPSOIDE::get_centre_y
virtual double get_centre_y(void)
Definition: mg_cg_forme_volume_ellipsoide.cpp:99
MG_CG_FORME::PROVENANCE_FORME
PROVENANCE_FORME
Definition: mg_cg_forme.h:45
MG_CG_MODELE
Definition: mg_cg_modele.h:41
mg_cg_modele.h
MG_CG_FORME_VOLUME_ELLIPSOIDE::change_rayon_majeur
virtual void change_rayon_majeur(double rayon_majeur)
Definition: mg_cg_forme_volume_ellipsoide.cpp:148
MG_CG_FORME_VOLUME_ELLIPSOIDE
Definition: mg_cg_forme_volume_ellipsoide.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_ELLIPSOIDE::get_direction_y
virtual double get_direction_y(void)
Definition: mg_cg_forme_volume_ellipsoide.cpp:132
MG_CG_FORME_VOLUME_ELLIPSOIDE::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: mg_cg_forme_volume_ellipsoide.cpp:170
MG_CG_FORME_VOLUME_ELLIPSOIDE::m_centre
double m_centre[3]
Definition: mg_cg_forme_volume_ellipsoide.h:79
MG_CG_FORME_VOLUME
Definition: mg_cg_forme_volume.h:36
MG_CG_FORME::m_etat
int m_etat
Definition: mg_cg_forme.h:91
mg_volume.h