MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mstruct_analyse.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 //####// mstruct_analyse.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:57 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #include "mstruct_analyse.h"
23 #include "ot_boite_3d.h"
25 {
26  m_ves=NULL;
27  m_identifiant="";
28  m_boite_analyse=NULL;
30 }
31 
32 MSTRUCT_ANALYSE::MSTRUCT_ANALYSE(std::string identifiant, std::string nom_groupe_forme, BOITE_3D* boite_3d)
33 {
34  m_ves=NULL;
35  m_identifiant=identifiant;
36  if(boite_3d!=NULL) m_boite_analyse=new BOITE_3D(*boite_3d);
37  else m_boite_analyse=NULL;
38  m_nom_groupe_forme=nom_groupe_forme;
39 }
40 
41 MSTRUCT_ANALYSE::MSTRUCT_ANALYSE(MSTRUCT_VES* ves,std::string identifiant, std::string nom_groupe_forme, BOITE_3D* boite_3d)
42 {
43  m_ves=ves;
44  m_identifiant=identifiant;
45  if(boite_3d!=NULL) m_boite_analyse=new BOITE_3D(*boite_3d);
46  else m_boite_analyse=NULL;
47  m_nom_groupe_forme=nom_groupe_forme;
48 }
49 
51 {
52  m_ves=mdd.m_ves;
55  else m_boite_analyse=NULL;
57 }
58 
60 {
61  if(m_boite_analyse!=NULL) delete m_boite_analyse;
62 }
63 
65 {
66  return m_ves;
67 }
68 
69 void MSTRUCT_ANALYSE::change_identifiant(std::string identifiant)
70 {
71  m_identifiant=identifiant;
72 }
73 
75 {
76  return m_identifiant;
77 }
78 
80 {
81  delete m_boite_analyse;
82  m_boite_analyse=new BOITE_3D(boite_3d);
83 }
84 
86 {
87  return m_boite_analyse;
88 }
89 
90 void MSTRUCT_ANALYSE::change_nom_groupe_forme(std::string nom_groupe_forme)
91 {
92  m_nom_groupe_forme=nom_groupe_forme;
93 }
94 
96 {
97  return m_nom_groupe_forme;
98 }
99 
100 void MSTRUCT_ANALYSE::enregistrer(std::ofstream& ofstrm)
101 {
102  size_t len_identifiant = m_identifiant.size();
103  ofstrm.write((char*)&len_identifiant,sizeof(size_t));
104  ofstrm.write(m_identifiant.c_str(),m_identifiant.size());
105 
106  size_t len_nom_groupe_forme = m_nom_groupe_forme.size();
107  ofstrm.write((char*)&len_nom_groupe_forme,sizeof(size_t));
108  ofstrm.write(m_nom_groupe_forme.c_str(),m_nom_groupe_forme.size());
109 
110  bool avec_boite;
111  if(m_boite_analyse==NULL) avec_boite=false;
112  else avec_boite=true;
113  ofstrm.write((char*)&avec_boite,sizeof(bool));
114  if(avec_boite)
115  {
116  double xmin=m_boite_analyse->get_xmin();
117  ofstrm.write((char*)&xmin,sizeof(double));
118  double ymin=m_boite_analyse->get_ymin();
119  ofstrm.write((char*)&ymin,sizeof(double));
120  double zmin=m_boite_analyse->get_zmin();
121  ofstrm.write((char*)&zmin,sizeof(double));
122  double xmax=m_boite_analyse->get_xmax();
123  ofstrm.write((char*)&xmax,sizeof(double));
124  double ymax=m_boite_analyse->get_ymax();
125  ofstrm.write((char*)&ymax,sizeof(double));
126  double zmax=m_boite_analyse->get_zmax();
127  ofstrm.write((char*)&zmax,sizeof(double));
128  }
129 }
130 
131 void MSTRUCT_ANALYSE::ouvrir(std::ifstream& ifstrm)
132 {
133  size_t len_identifiant;
134  ifstrm.read((char*)&len_identifiant,sizeof(size_t));
135  char *temp_identifiant = new char[len_identifiant+1];
136  ifstrm.read(temp_identifiant,len_identifiant);
137  temp_identifiant[len_identifiant]='\0';
138  m_identifiant=temp_identifiant;
139  delete [] temp_identifiant;
140 
141  size_t len_nom_groupe_forme;
142  ifstrm.read((char*)&len_nom_groupe_forme,sizeof(size_t));
143  char *temp_nom_groupe_forme = new char[len_nom_groupe_forme+1];
144  ifstrm.read(temp_nom_groupe_forme,len_nom_groupe_forme);
145  temp_nom_groupe_forme[len_nom_groupe_forme]='\0';
146  m_nom_groupe_forme=temp_nom_groupe_forme;
147  delete [] temp_nom_groupe_forme;
148 
149  bool avec_boite;
150  ifstrm.read((char*)&avec_boite,sizeof(bool));
151 
152  if(avec_boite)
153  {
154  double xmin;
155  ifstrm.read((char*)&xmin,sizeof(double));
156  double ymin;
157  ifstrm.read((char*)&ymin,sizeof(double));
158  double zmin;
159  ifstrm.read((char*)&zmin,sizeof(double));
160  double xmax;
161  ifstrm.read((char*)&xmax,sizeof(double));
162  double ymax;
163  ifstrm.read((char*)&ymax,sizeof(double));
164  double zmax;
165  ifstrm.read((char*)&zmax,sizeof(double));
166  m_boite_analyse = new BOITE_3D(xmin,ymin,zmin,xmax,ymax,zmax);
167  }
168  else m_boite_analyse=NULL;
169 }
170 
172 {
173  char ligne[5000];
174  sprintf(ligne,"MSTRUCT_ANALYSE");
175  fonc(ligne);
176  sprintf(ligne,"-> Identifiant : %s", m_identifiant.c_str());
177  fonc(ligne);
178  if(m_boite_analyse!=NULL) sprintf(ligne,"-> Boite_3D : [%lf,%lf,%lf,%lf,%lf,%lf]", m_boite_analyse->get_xmin(),
184  else sprintf(ligne,"-> Boite_3D : NULL");
185  fonc(ligne);
186  if(m_nom_groupe_forme!="") sprintf(ligne,"-> MG_CG_GROUPE_FORME : %s",m_nom_groupe_forme.c_str());
187  else sprintf(ligne,"-> MG_CG_GROUPE_FORME : NULL");
188  fonc(ligne);
189 
190 }
BOITE_3D::get_xmin
double get_xmin(void)
Definition: ot_boite_3d.cpp:104
MSTRUCT_ANALYSE::enregistrer
virtual void enregistrer(std::ofstream &ofstrm)
Definition: mstruct_analyse.cpp:100
MSTRUCT_ANALYSE::m_boite_analyse
BOITE_3D * m_boite_analyse
Definition: mstruct_analyse.h:53
MSTRUCT_ANALYSE::get_boite_analyse
virtual BOITE_3D * get_boite_analyse(void)
Definition: mstruct_analyse.cpp:85
MSTRUCT_ANALYSE::m_nom_groupe_forme
std::string m_nom_groupe_forme
Definition: mstruct_analyse.h:54
BOITE_3D::get_zmax
double get_zmax(void)
Definition: ot_boite_3d.cpp:129
BOITE_3D::get_ymin
double get_ymin(void)
Definition: ot_boite_3d.cpp:114
MSTRUCT_ANALYSE::get_ves
MSTRUCT_VES * get_ves(void)
Definition: mstruct_analyse.cpp:64
MSTRUCT_ANALYSE::m_ves
MSTRUCT_VES * m_ves
Definition: mstruct_analyse.h:55
BOITE_3D::get_xmax
double get_xmax(void)
Definition: ot_boite_3d.cpp:109
MSTRUCT_ANALYSE
Definition: mstruct_analyse.h:30
MSTRUCT_ANALYSE::get_nom_groupe_forme
virtual std::string get_nom_groupe_forme(void)
Definition: mstruct_analyse.cpp:95
MSTRUCT_ANALYSE::change_identifiant
void change_identifiant(std::string identifiant)
Definition: mstruct_analyse.cpp:69
mstruct_analyse.h
MSTRUCT_VES
Definition: mstruct_ves.h:45
BOITE_3D::get_ymax
double get_ymax(void)
Definition: ot_boite_3d.cpp:119
BOITE_3D
Definition: ot_boite_3d.h:27
MSTRUCT_ANALYSE::get_identifiant
std::string get_identifiant(void)
Definition: mstruct_analyse.cpp:74
MSTRUCT_ANALYSE::affiche_contenu
virtual void affiche_contenu(fonction_affiche *fonc)
Definition: mstruct_analyse.cpp:171
ot_boite_3d.h
MSTRUCT_ANALYSE::change_boite_analyse
virtual void change_boite_analyse(BOITE_3D boite_3d)
Definition: mstruct_analyse.cpp:79
MSTRUCT_ANALYSE::change_nom_groupe_forme
virtual void change_nom_groupe_forme(std::string nom_groupe_forme)
Definition: mstruct_analyse.cpp:90
MSTRUCT_ANALYSE::m_identifiant
std::string m_identifiant
Definition: mstruct_analyse.h:52
BOITE_3D::get_zmin
double get_zmin(void)
Definition: ot_boite_3d.cpp:124
fonction_affiche
void fonction_affiche(char *)
Definition: fct_taille.h:28
MSTRUCT_ANALYSE::ouvrir
virtual void ouvrir(std::ifstream &ifstrm)
Definition: mstruct_analyse.cpp:131
MSTRUCT_ANALYSE::MSTRUCT_ANALYSE
MSTRUCT_ANALYSE(void)
Definition: mstruct_analyse.cpp:24
MSTRUCT_ANALYSE::~MSTRUCT_ANALYSE
~MSTRUCT_ANALYSE(void)
Definition: mstruct_analyse.cpp:59