MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mstruct_groupe_volume.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_groupe_volume.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:57 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #include "mstruct_groupe_volume.h"
23 #include "mg_geometrie.h"
25 {
26  m_nom="";
27 }
28 
29 GROUPE_VOLUME::GROUPE_VOLUME(std::string nom):m_nom(nom)
30 {
31 
32 }
33 
35 {
36 
37 }
38 
39 std::string GROUPE_VOLUME::get_nom(void)
40 {
41  return m_nom;
42 }
43 
45 {
46  return m_tpl_map_volume;
47 }
48 
49 int GROUPE_VOLUME::ajouter_donnee_volume(MG_VOLUME* volume, std::string donnee)
50 {
51  m_map_donnees_volume.insert(std::pair<long,std::string>(volume->get_id(),donnee));
52  return 0;
53 }
54 
56 {
57  return m_map_donnees_volume.count(volume->get_id());
58 }
59 
60 std::string GROUPE_VOLUME::get_premiere_donnee_volume(MG_VOLUME* volume, std::multimap< long int, std::string >::iterator &it)
61 {
62  std::pair<std::multimap<long,std::string>::iterator,std::multimap<long,std::string>::iterator> ret;
63  ret=m_map_donnees_volume.equal_range(volume->get_id());
64  it=ret.first;
65  if(it==ret.second) return "";
66  return (*it).second;
67 }
68 
69 std::string GROUPE_VOLUME::get_suivante_donnee_volume(MG_VOLUME* volume, std::multimap< long int, std::string >::iterator &it)
70 {
71  std::pair<std::multimap<long,std::string>::iterator,std::multimap<long,std::string>::iterator> ret;
72  ret=m_map_donnees_volume.equal_range(volume->get_id());
73  it++;
74  if(it==ret.second) return "";
75  return (*it).second;
76 }
77 
78 void GROUPE_VOLUME::exporter(std::ofstream& f)
79 {
80  f << "GROUPE_VOLUME " << m_nom << std::endl;
81  f << "NB_VOLUME " << m_tpl_map_volume.get_nb() << std::endl;
83  for(MG_VOLUME* mgvolume=m_tpl_map_volume.get_premier(it);mgvolume!=NULL;mgvolume=m_tpl_map_volume.get_suivant(it))
84  {
85  long id = mgvolume->get_id();
86  f << id
87  << " " << get_nb_donnee_volume(mgvolume);
88  std::multimap< long int, std::string >::iterator it;
89  for(std::string donnee = get_premiere_donnee_volume(mgvolume,it);donnee!="";donnee=get_suivante_donnee_volume(mgvolume,it))
90  {
91  f << " " << donnee;
92  }
93  f << std::endl;
94  }
95 }
96 
97 void GROUPE_VOLUME::importer(std::ifstream& f,MG_GEOMETRIE* mg_geometrie)
98 {
99  char ligne[10000];
100  f.getline(ligne,10000);
101  char nom[500];
102  sscanf(ligne,"%*s %s",nom);
103  m_nom=nom;
104  long nb_volume;
105  f.getline(ligne,10000);
106  sscanf(ligne,"%*s %li",&nb_volume);
107  for(long i=0;i<nb_volume;i++)
108  {
109 
110  f.getline(ligne,10000,' ');
111  long id_volume;
112  sscanf(ligne,"%li",&id_volume);
113  MG_VOLUME* volume = mg_geometrie->get_mg_volumeid(id_volume);
114  m_tpl_map_volume.ajouter(volume);
115  while(f.getline(ligne,10000,' '))
116  {
117  char chr_donnee[500];
118  sscanf(ligne,"%s",chr_donnee);
119  std::string donnee(chr_donnee);
120  ajouter_donnee_volume(volume,donnee);
121  }
122 
123  }
124 }
125 
TPL_MAP_ENTITE::get_premier
virtual X get_premier(ITERATEUR &it)
Definition: tpl_map_entite.h:112
mg_geometrie.h
GROUPE_VOLUME::get_suivante_donnee_volume
std::string get_suivante_donnee_volume(MG_VOLUME *volume, std::multimap< long, std::string >::iterator &it)
Definition: mstruct_groupe_volume.cpp:69
TPL_MAP_ENTITE< MG_VOLUME * >
GROUPE_VOLUME::m_nom
std::string m_nom
Definition: mstruct_groupe_volume.h:47
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
GROUPE_VOLUME::get_premiere_donnee_volume
std::string get_premiere_donnee_volume(MG_VOLUME *volume, std::multimap< long, std::string >::iterator &it)
Definition: mstruct_groupe_volume.cpp:60
MG_VOLUME
Definition: mg_volume.h:33
GROUPE_VOLUME::~GROUPE_VOLUME
~GROUPE_VOLUME(void)
Definition: mstruct_groupe_volume.cpp:34
GROUPE_VOLUME::get_nom
std::string get_nom(void)
Definition: mstruct_groupe_volume.cpp:39
GROUPE_VOLUME::get_tpl_map_volume
TPL_MAP_ENTITE< MG_VOLUME * > & get_tpl_map_volume(void)
Definition: mstruct_groupe_volume.cpp:44
mstruct_groupe_volume.h
GROUPE_VOLUME::m_tpl_map_volume
TPL_MAP_ENTITE< MG_VOLUME * > m_tpl_map_volume
Definition: mstruct_groupe_volume.h:48
f
double f(double x, long nb, double *xfonc, double *fonc, double eng, double eni, double lambda, double nor, double *fonc2)
Definition: fct_generateur_calibrage.cpp:96
MG_GEOMETRIE::get_mg_volumeid
MG_VOLUME * get_mg_volumeid(unsigned long num)
Definition: mg_geometrie.cpp:1658
TPL_MAP_ENTITE::get_nb
virtual int get_nb(void)
Definition: tpl_map_entite.h:83
GROUPE_VOLUME::ajouter_donnee_volume
int ajouter_donnee_volume(MG_VOLUME *volume, std::string donnee)
Definition: mstruct_groupe_volume.cpp:49
TPL_MAP_ENTITE::ajouter
virtual void ajouter(X x)
Definition: tpl_map_entite.h:55
GROUPE_VOLUME::exporter
void exporter(std::ofstream &f)
Definition: mstruct_groupe_volume.cpp:78
GROUPE_VOLUME::importer
void importer(std::ifstream &f, MG_GEOMETRIE *mg_geometrie)
Definition: mstruct_groupe_volume.cpp:97
GROUPE_VOLUME::get_nb_donnee_volume
long get_nb_donnee_volume(MG_VOLUME *volume)
Definition: mstruct_groupe_volume.cpp:55
GROUPE_VOLUME::m_map_donnees_volume
std::multimap< long, std::string > m_map_donnees_volume
Definition: mstruct_groupe_volume.h:49
MG_GEOMETRIE
Definition: mg_geometrie.h:84
GROUPE_VOLUME::GROUPE_VOLUME
GROUPE_VOLUME(void)
Definition: mstruct_groupe_volume.cpp:24
TPL_MAP_ENTITE::get_suivant
virtual X get_suivant(ITERATEUR &it)
Definition: tpl_map_entite.h:120