MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_cg_forme_volume_cone.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_cone.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_volume.h"
25 #include "mg_cg_operateur.h"
26 #include "mg_cg_info.h"
28  double extremite_x,
29  double extremite_y,
30  double extremite_z,
31  double direction_x,
32  double direction_y,
33  double direction_z,
34  double rayon,
35  double longueur): MG_CG_FORME_VOLUME(mgcg_modele,MG_CG_FORME::PROVENANCE_FORME::PRIMITIVE)
36 {
37  m_extremite[0]=extremite_x;
38  m_extremite[1]=extremite_y;
39  m_extremite[2]=extremite_z;
40  m_direction[0]=direction_x;
41  m_direction[1]=direction_y;
42  m_direction[2]=direction_z;
43  m_rayon=rayon;
44  m_longueur=longueur;
45 }
46 
48  int etat,
49  long unsigned int num,
50  MG_VOLUME* mg_volume,
51  double extremite_x,
52  double extremite_y,
53  double extremite_z,
54  double direction_x,
55  double direction_y,
56  double direction_z,
57  double rayon,
58  double longueur): MG_CG_FORME_VOLUME(mgcg_modele,MG_CG_FORME::PROVENANCE_FORME::PRIMITIVE,etat,num,mg_volume)
59 {
60  m_extremite[0]=extremite_x;
61  m_extremite[1]=extremite_y;
62  m_extremite[2]=extremite_z;
63  m_direction[0]=direction_x;
64  m_direction[1]=direction_y;
65  m_direction[2]=direction_z;
66  m_rayon=rayon;
67  m_longueur=longueur;
68 }
69 
71 {
72  m_extremite[0]=mdd.m_extremite[0];
73  m_extremite[1]=mdd.m_extremite[1];
74  m_extremite[2]=mdd.m_extremite[2];
75  m_direction[0]=mdd.m_direction[0];
76  m_direction[1]=mdd.m_direction[1];
77  m_direction[2]=mdd.m_direction[2];
78  m_rayon=mdd.m_rayon;
80 }
81 
83 {
84 
85 }
86 
88 {
89  return MG_CG_FORME_VOLUME::TYPE_FORME_VOLUME::CONE;
90 }
91 
93 {
94  m_extremite[0]=x;
95  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
96 }
97 
99 {
100  return m_extremite[0];
101 }
102 
104 {
105  m_extremite[1]=y;
106  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
107 }
108 
110 {
111  return m_extremite[1];
112 }
113 
115 {
116  m_extremite[2]=z;
117  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
118 }
119 
121 {
122  return m_extremite[2];
123 }
124 
126 {
127  m_direction[0]=x;
128  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
129 }
130 
132 {
133  return m_direction[0];
134 }
135 
137 {
138  m_direction[1]=y;
139  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
140 }
141 
143 {
144  return m_direction[1];
145 }
146 
148 {
149  m_direction[2]=z;
150  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
151 }
152 
154 {
155  return m_direction[2];
156 }
157 
159 {
160  m_rayon=rayon;
161  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
162 }
163 
165 {
166  return m_rayon;
167 }
168 
170 {
171  m_longueur=longueur;
172  change_etat(MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION);
173 }
174 
176 {
177  return m_longueur;
178 }
179 
180 void MG_CG_FORME_VOLUME_CONE::enregistrer(std::ostream& o, double version)
181 {
182  o << "%" << get_id()
183  << "=MG_CG_FORME_VOLUME_CONE("
184  << "$"<< m_mgcg_modele->get_id()
185  << "," << m_etat;
186  if(m_etat==MG_CG_FORME::ETAT_FORME::CONSTRUITE)
187  o << ",$"<< m_mg_volume->get_id();
188  else
189  o << ",$-1";
190  o << "," << m_extremite[0]
191  << "," << m_extremite[1]
192  << "," << m_extremite[2]
193  << "," << m_direction[0]
194  << "," << m_direction[1]
195  << "," << m_direction[2]
196  << "," << m_rayon
197  << "," << m_longueur;
198  o << "," << get_nb_mgcg_operateur_dependant()
199  << ",(";
200  std::map<long,MG_CG_OPERATEUR*>::iterator it_op;
201  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))
202  {
203  o << "$" << mgcg_op->get_id();
204  if(it_op!=--m_map_mgcg_operateur_dependant.end()) o << ",";
205  }
206  o << "));" << std::endl;
207  enregistrer_infos(o,version);
208 }
209 
210 
211 
212 
MG_CG_FORME_VOLUME_CONE::get_extremite_y
virtual double get_extremite_y(void)
Definition: mg_cg_forme_volume_cone.cpp:109
MG_CG_FORME_VOLUME_CONE::get_extremite_z
virtual double get_extremite_z(void)
Definition: mg_cg_forme_volume_cone.cpp:120
MG_CG_FORME_VOLUME_CONE::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: mg_cg_forme_volume_cone.cpp:180
MG_CG_FORME_VOLUME_CONE::m_longueur
double m_longueur
Definition: mg_cg_forme_volume_cone.h:73
MG_CG_FORME_VOLUME_CONE::m_rayon
double m_rayon
Definition: mg_cg_forme_volume_cone.h:72
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
MG_CG_FORME_VOLUME_CONE::change_extremite_y
virtual void change_extremite_y(double y)
Definition: mg_cg_forme_volume_cone.cpp:103
MG_CG_FORME_VOLUME_CONE
Definition: mg_cg_forme_volume_cone.h:35
mg_cg_forme_volume_cone.h
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_CG_FORME_VOLUME_CONE::m_extremite
double m_extremite[3]
Definition: mg_cg_forme_volume_cone.h:70
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_CONE::~MG_CG_FORME_VOLUME_CONE
virtual ~MG_CG_FORME_VOLUME_CONE()
Definition: mg_cg_forme_volume_cone.cpp:82
mg_cg_operateur.h
MG_CG_FORME_VOLUME_CONE::change_rayon
virtual void change_rayon(double rayon)
Definition: mg_cg_forme_volume_cone.cpp:158
MG_CG_FORME_VOLUME_CONE::MG_CG_FORME_VOLUME_CONE
MG_CG_FORME_VOLUME_CONE(MG_CG_MODELE *mgcg_modele, double extremite_x, double extremite_y, double extremite_z, double direction_x, double direction_y, double direction_z, double rayon, double longueur)
Definition: mg_cg_forme_volume_cone.cpp:27
MG_CG_FORME_VOLUME_CONE::get_direction_y
virtual double get_direction_y(void)
Definition: mg_cg_forme_volume_cone.cpp:142
MG_CG_FORME
Definition: mg_cg_forme.h:41
MG_CG_OPERATEUR
Definition: mg_cg_operateur.h:34
MG_CG_FORME_VOLUME_CONE::change_extremite_z
virtual void change_extremite_z(double z)
Definition: mg_cg_forme_volume_cone.cpp:114
MG_CG_FORME_VOLUME_CONE::m_direction
double m_direction[3]
Definition: mg_cg_forme_volume_cone.h:71
MG_CG_FORME_VOLUME_CONE::get_extremite_x
virtual double get_extremite_x(void)
Definition: mg_cg_forme_volume_cone.cpp:98
MG_CG_FORME_VOLUME_CONE::change_longueur
virtual void change_longueur(double longueur)
Definition: mg_cg_forme_volume_cone.cpp:169
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_MODELE
Definition: mg_cg_modele.h:41
MG_CG_FORME_VOLUME_CONE::get_rayon
virtual double get_rayon(void)
Definition: mg_cg_forme_volume_cone.cpp:164
MG_CG_FORME_VOLUME_CONE::get_type_forme_volume
virtual int get_type_forme_volume(void)
Definition: mg_cg_forme_volume_cone.cpp:87
MG_CG_FORME_VOLUME_CONE::get_direction_z
virtual double get_direction_z(void)
Definition: mg_cg_forme_volume_cone.cpp:153
mg_cg_modele.h
mg_cg_info.h
MG_CG_FORME_VOLUME_CONE::change_direction_z
virtual void change_direction_z(double z)
Definition: mg_cg_forme_volume_cone.cpp:147
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_CONE::change_extremite_x
virtual void change_extremite_x(double x)
Definition: mg_cg_forme_volume_cone.cpp:92
MG_CG_FORME_VOLUME::m_mg_volume
MG_VOLUME * m_mg_volume
Definition: mg_cg_forme_volume.h:65
MG_CG_FORME_VOLUME_CONE::get_direction_x
virtual double get_direction_x(void)
Definition: mg_cg_forme_volume_cone.cpp:131
MG_CG_FORME_VOLUME_CONE::change_direction_y
virtual void change_direction_y(double y)
Definition: mg_cg_forme_volume_cone.cpp:136
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_CG_FORME_VOLUME_CONE::get_longueur
virtual double get_longueur(void)
Definition: mg_cg_forme_volume_cone.cpp:175
mg_volume.h
MG_CG_FORME_VOLUME_CONE::change_direction_x
virtual void change_direction_x(double x)
Definition: mg_cg_forme_volume_cone.cpp:125