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 
virtual void change_direction_z(double z)
virtual double get_direction_z(void)
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)
virtual double get_direction_y(void)
virtual void change_extremite_y(double y)
virtual double get_direction_x(void)
virtual void change_longueur(double longueur)
virtual void change_rayon(double rayon)
virtual double get_extremite_x(void)
virtual void change_direction_y(double y)
virtual double get_extremite_z(void)
virtual void change_extremite_x(double x)
virtual double get_extremite_y(void)
virtual void change_direction_x(double x)
virtual int get_type_forme_volume(void)
virtual void change_extremite_z(double z)
virtual void enregistrer(std::ostream &o, double version)
virtual MG_CG_OPERATEUR * get_suivant_mgcg_operateur_dependant(std::map< long, MG_CG_OPERATEUR * >::iterator &it)
virtual MG_CG_OPERATEUR * get_premier_mgcg_operateur_dependant(std::map< long, MG_CG_OPERATEUR * >::iterator &it)
virtual void change_etat(int etat_forme)
Definition: mg_cg_forme.cpp:81
std::map< long, MG_CG_OPERATEUR * > m_map_mgcg_operateur_dependant
Definition: mg_cg_forme.h:89
virtual long get_nb_mgcg_operateur_dependant(void)
Definition: mg_cg_forme.cpp:96
MG_CG_MODELE * m_mgcg_modele
Definition: mg_cg_forme.h:87
unsigned long get_id()