MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_cg_forme_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 //####// mg_cg_forme_volume.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:53 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #include "mg_cg_forme_volume.h"
23 #include "mg_cg_modele.h"
24 #include "mg_cg_operateur.h"
25 #include "mg_volume.h"
26 #include "ot_geometrie.h"
27 #include "mg_cg_info.h"
28 MG_CG_FORME_VOLUME::MG_CG_FORME_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance): MG_CG_FORME(mgcg_modele,provenance)
29 {
30 
31 }
32 
33 MG_CG_FORME_VOLUME::MG_CG_FORME_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance, int etat, long unsigned int num): MG_CG_FORME(mgcg_modele,provenance,etat,num)
34 {
35 
36 }
37 
38 MG_CG_FORME_VOLUME::MG_CG_FORME_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance, MG_VOLUME* mg_volume): MG_CG_FORME(mgcg_modele,provenance), m_mg_volume(mg_volume)
39 {
40 
41 }
42 
43 MG_CG_FORME_VOLUME::MG_CG_FORME_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance, int etat, long unsigned int num, MG_VOLUME* mg_volume): MG_CG_FORME(mgcg_modele,provenance,etat,num),m_mg_volume(mg_volume)
44 {
45 
46 }
47 
49 {
51 }
52 
54 {
55 
56 }
57 
59 {
60  return MG_CG_FORME::TYPE_FORME::VOLUME;
61 }
62 
64 {
65  return MG_CG_FORME_VOLUME::TYPE_FORME_VOLUME::GENEREE;
66 }
67 
69 {
70  return m_mg_volume;
71 }
72 
74 {
75  m_mg_volume=mg_volume;
76 }
77 
79  TPL_MAP_ENTITE< MG_ELEMENT_COTOPOLOGIQUE* >* map_mg_element_cotopologique,
80  TPL_MAP_ENTITE< MG_ELEMENT_GEOMETRIQUE* >* map_mg_element_geometrique)
81 {
82  if(m_etat==MG_CG_FORME::ETAT_FORME::CONSTRUITE)
83  {
84  map_mg_element_topologique->ajouter(m_mg_volume);
85  OT_GEOMETRIE::get_map_mg_element_sous_jacent(m_mg_volume,map_mg_element_topologique,map_mg_element_cotopologique,map_mg_element_geometrique);
86  }
87 }
88 
90 {
91  return m_mg_volume->get_boite_3D();
92 }
93 
95 {
100 }
101 
102 int MG_CG_FORME_VOLUME::construire(bool fusionner_entite_similaire,
103  double precision,
104  bool importer_triangulation,
105  double epsilon_triangulation)
106 {
107  std::cout << "*** ATTENTION ! MG_CG_FORME_VOLUME::construire : MG_CG_FORME construite par MG_CG_OPERATEUR* m_mgcg_operateur_parent ***" << std::endl;
108  return FAIL;
109 }
110 
111 
112 void MG_CG_FORME_VOLUME::enregistrer(std::ostream& o, double version)
113 {
114  o << "%" << get_id()
115  << "=MG_CG_FORME_VOLUME("
116  << "$"<< m_mgcg_modele->get_id()
117  << "," << m_provenance
118  << "," << m_etat;
119  if(m_etat==MG_CG_FORME::ETAT_FORME::CONSTRUITE)
120  o << ",$"<< m_mg_volume->get_id();
121  else
122  o << ",$-1";
123  if (get_mgcg_operateur_parent()!=NULL) o << ",$" << get_mgcg_operateur_parent()->get_id(); else o << ",-1";
124  o << "," << get_nb_mgcg_operateur_dependant()
125  << ",(";
126  std::map<long,MG_CG_OPERATEUR*>::iterator it_op;
127  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))
128  {
129  o << "$" << mgcg_op->get_id();
130  if(it_op!=--m_map_mgcg_operateur_dependant.end()) o << ",";
131  }
132  o << "));" << std::endl;
133  enregistrer_infos(o,version);
134 }
135 
ot_geometrie.h
TPL_MAP_ENTITE< MG_ELEMENT_TOPOLOGIQUE * >
FAIL
const int FAIL
Definition: mg_definition.h:39
mg_cg_forme_volume.h
MG_CG_FORME_VOLUME::change_mg_volume
virtual void change_mg_volume(MG_VOLUME *mg_volume)
Definition: mg_cg_forme_volume.cpp:73
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
MG_CG_MODELE::get_epsilon_triangulation
virtual double get_epsilon_triangulation(void)
Definition: mg_cg_modele.cpp:1119
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::m_provenance
int m_provenance
Definition: mg_cg_forme.h:90
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::construire
virtual int construire(void)
Definition: mg_cg_forme_volume.cpp:94
mg_cg_operateur.h
MG_CG_FORME_VOLUME::~MG_CG_FORME_VOLUME
virtual ~MG_CG_FORME_VOLUME()
Definition: mg_cg_forme_volume.cpp:53
MG_CG_FORME
Definition: mg_cg_forme.h:41
MG_CG_OPERATEUR
Definition: mg_cg_operateur.h:34
MG_CG_MODELE::get_precision
virtual double get_precision(void)
Definition: mg_cg_modele.cpp:1099
MG_CG_FORME::m_mgcg_modele
MG_CG_MODELE * m_mgcg_modele
Definition: mg_cg_forme.h:87
MG_CG_MODELE
Definition: mg_cg_modele.h:41
MG_CG_FORME_VOLUME::get_mg_volume
virtual MG_VOLUME * get_mg_volume(void)
Definition: mg_cg_forme_volume.cpp:68
MG_VOLUME::get_boite_3D
virtual BOITE_3D get_boite_3D(void)
Definition: mg_volume.cpp:109
MG_CG_FORME_VOLUME::get_mg_element
virtual void get_mg_element(TPL_MAP_ENTITE< MG_ELEMENT_TOPOLOGIQUE * > *map_mg_element_topologique, TPL_MAP_ENTITE< MG_ELEMENT_COTOPOLOGIQUE * > *map_mg_element_cotopologique, TPL_MAP_ENTITE< MG_ELEMENT_GEOMETRIQUE * > *map_mg_element_geometrique)
Definition: mg_cg_forme_volume.cpp:78
MG_CG_FORME_VOLUME::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: mg_cg_forme_volume.cpp:112
MG_CG_FORME_VOLUME::get_boite_3D
virtual BOITE_3D get_boite_3D(void)
Definition: mg_cg_forme_volume.cpp:89
mg_cg_modele.h
MG_CG_FORME::get_mgcg_operateur_parent
virtual MG_CG_OPERATEUR * get_mgcg_operateur_parent(void)
Definition: mg_cg_forme.cpp:86
TPL_MAP_ENTITE::ajouter
virtual void ajouter(X x)
Definition: tpl_map_entite.h:55
BOITE_3D
Definition: ot_boite_3d.h:27
MG_CG_MODELE::get_fusionner_entite_similaire
virtual bool get_fusionner_entite_similaire(void)
Definition: mg_cg_modele.cpp:1089
mg_cg_info.h
MG_CG_MODELE::get_importer_triangulation
virtual bool get_importer_triangulation(void)
Definition: mg_cg_modele.cpp:1109
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_VOLUME::get_type_forme_volume
virtual int get_type_forme_volume(void)
Definition: mg_cg_forme_volume.cpp:63
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::MG_CG_FORME_VOLUME
MG_CG_FORME_VOLUME(MG_CG_MODELE *mgcg_modele, int provenance)
Definition: mg_cg_forme_volume.cpp:28
OT_GEOMETRIE::get_map_mg_element_sous_jacent
static void get_map_mg_element_sous_jacent(MG_SOMMET *sommet, TPL_MAP_ENTITE< MG_ELEMENT_TOPOLOGIQUE * > *map_mg_element_topologique, TPL_MAP_ENTITE< MG_ELEMENT_COTOPOLOGIQUE * > *map_mg_element_cotopologique, TPL_MAP_ENTITE< MG_ELEMENT_GEOMETRIQUE * > *map_mg_element_geometrique)
Definition: ot_geometrie.cpp:641
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::get_type_forme
virtual int get_type_forme(void)
Definition: mg_cg_forme_volume.cpp:58
mg_volume.h