MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_cg_forme_multiple.h
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_multiple.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:55 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifndef _MG_CG_FORME_MULTIPLE_
23 #define _MG_CG_FORME_MULTIPLE_
24 
25 
26 
27 #include <vector>
28 #include <map>
29 
30 #include "mg_cg_forme.h"
31 
32 class MG_GEOMETRIE;
33 class MG_CG_MODELE;
34 class MG_CG_FORME;
38 
40 {
41 public:
42 
43  MG_CG_FORME_MULTIPLE(MG_CG_MODELE* mgcg_modele,int provenance);
44  MG_CG_FORME_MULTIPLE(MG_CG_MODELE* mgcg_modele,int provenance,int etat,unsigned long num);
45  MG_CG_FORME_MULTIPLE(MG_CG_MODELE* mgcg_modele,int provenance,
46  std::vector<MG_ELEMENT_TOPOLOGIQUE*> &vector_mg_element_topologique,
47  std::vector<MG_ELEMENT_COTOPOLOGIQUE*> &vector_mg_element_cotopologique);
48  MG_CG_FORME_MULTIPLE(MG_CG_MODELE* mgcg_modele,int provenance,int etat,unsigned long num,
49  std::vector<MG_ELEMENT_TOPOLOGIQUE*> &vector_mg_element_topologique,
50  std::vector<MG_ELEMENT_COTOPOLOGIQUE*> &vector_mg_element_cotopologique);
51 
53  virtual ~MG_CG_FORME_MULTIPLE();
54 
55  virtual long get_nb_mg_element_topologique(void);
56  virtual int ajouter_mg_element_topologique(MG_ELEMENT_TOPOLOGIQUE* mg_element_topologique);
57  virtual MG_ELEMENT_TOPOLOGIQUE* get_premier_mg_element_topologique(std::map<long,MG_ELEMENT_TOPOLOGIQUE*>::iterator &it);
58  virtual MG_ELEMENT_TOPOLOGIQUE* get_suivant_mg_element_topologique(std::map<long,MG_ELEMENT_TOPOLOGIQUE*>::iterator &it);
59  virtual int retirer_mg_element_topologique(MG_ELEMENT_TOPOLOGIQUE* mg_element_topologique);
60  virtual void retirer_tout_mg_element_topologique(void);
61 
62  virtual long get_nb_mg_element_cotopologique(void);
63  virtual int ajouter_mg_element_cotopologique(MG_ELEMENT_COTOPOLOGIQUE* mg_element_cotopologique);
64  virtual MG_ELEMENT_COTOPOLOGIQUE* get_premier_mg_element_cotopologique(std::map<long,MG_ELEMENT_COTOPOLOGIQUE*>::iterator &it);
65  virtual MG_ELEMENT_COTOPOLOGIQUE* get_suivant_mg_element_cotopologique(std::map<long,MG_ELEMENT_COTOPOLOGIQUE*>::iterator &it);
66  virtual int retirer_mg_element_cotopologique(MG_ELEMENT_COTOPOLOGIQUE* mg_element_cotopologique);
67  virtual void retirer_tout_mg_element_cotopologique(void);
68 
69  virtual void get_mg_element(TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
70  TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
71  TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
72 
73  virtual BOITE_3D get_boite_3D(void);
74 
75  virtual int get_type_forme(void);
76  virtual void enregistrer(std::ostream& o,double version);
77  virtual int construire(void);
78  virtual int construire(bool fusionner_entite_similaire,
79  double precision,
80  bool importer_triangulation,
81  double epsilon_triangulation);
82 protected:
83  std::map<long,MG_ELEMENT_TOPOLOGIQUE*> m_map_mg_element_topologique;
84  std::map<long,MG_ELEMENT_COTOPOLOGIQUE*> m_map_mg_element_cotopologique;
85 };
86 
87 
88 #endif
mg_cg_forme.h
MG_CG_FORME_MULTIPLE::construire
virtual int construire(void)
Definition: mg_cg_forme_multiple.cpp:223
MG_CG_FORME_MULTIPLE::get_premier_mg_element_cotopologique
virtual MG_ELEMENT_COTOPOLOGIQUE * get_premier_mg_element_cotopologique(std::map< long, MG_ELEMENT_COTOPOLOGIQUE * >::iterator &it)
Definition: mg_cg_forme_multiple.cpp:174
TPL_MAP_ENTITE< MG_ELEMENT_TOPOLOGIQUE * >
MG_CG_FORME_MULTIPLE::get_boite_3D
virtual BOITE_3D get_boite_3D(void)
Definition: mg_cg_forme_multiple.cpp:209
MG_CG_FORME_MULTIPLE::get_premier_mg_element_topologique
virtual MG_ELEMENT_TOPOLOGIQUE * get_premier_mg_element_topologique(std::map< long, MG_ELEMENT_TOPOLOGIQUE * >::iterator &it)
Definition: mg_cg_forme_multiple.cpp:132
MG_CG_FORME_MULTIPLE::retirer_mg_element_cotopologique
virtual int retirer_mg_element_cotopologique(MG_ELEMENT_COTOPOLOGIQUE *mg_element_cotopologique)
Definition: mg_cg_forme_multiple.cpp:157
MG_CG_FORME_MULTIPLE::m_map_mg_element_topologique
std::map< long, MG_ELEMENT_TOPOLOGIQUE * > m_map_mg_element_topologique
Definition: mg_cg_forme_multiple.h:83
MG_CG_FORME_MULTIPLE::retirer_tout_mg_element_cotopologique
virtual void retirer_tout_mg_element_cotopologique(void)
Definition: mg_cg_forme_multiple.cpp:169
MG_CG_FORME_MULTIPLE::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_multiple.cpp:188
MG_ELEMENT_TOPOLOGIQUE
Definition: mg_element_topologique.h:51
MG_CG_FORME_MULTIPLE::ajouter_mg_element_topologique
virtual int ajouter_mg_element_topologique(MG_ELEMENT_TOPOLOGIQUE *mg_element_topologique)
Definition: mg_cg_forme_multiple.cpp:108
MG_CG_FORME_MULTIPLE::get_suivant_mg_element_cotopologique
virtual MG_ELEMENT_COTOPOLOGIQUE * get_suivant_mg_element_cotopologique(std::map< long, MG_ELEMENT_COTOPOLOGIQUE * >::iterator &it)
Definition: mg_cg_forme_multiple.cpp:181
MG_ELEMENT_GEOMETRIQUE
Definition: mg_element_geometrique.h:30
MG_CG_FORME_MULTIPLE::m_map_mg_element_cotopologique
std::map< long, MG_ELEMENT_COTOPOLOGIQUE * > m_map_mg_element_cotopologique
Definition: mg_cg_forme_multiple.h:84
MG_CG_FORME
Definition: mg_cg_forme.h:41
MG_CG_FORME_MULTIPLE::get_nb_mg_element_topologique
virtual long get_nb_mg_element_topologique(void)
Definition: mg_cg_forme_multiple.cpp:103
MG_CG_MODELE
Definition: mg_cg_modele.h:41
MG_CG_FORME_MULTIPLE::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: mg_cg_forme_multiple.cpp:240
MG_CG_FORME_MULTIPLE::~MG_CG_FORME_MULTIPLE
virtual ~MG_CG_FORME_MULTIPLE()
Definition: mg_cg_forme_multiple.cpp:93
MG_ELEMENT_COTOPOLOGIQUE
Definition: mg_element_cotopologique.h:30
MG_CG_FORME_MULTIPLE::ajouter_mg_element_cotopologique
virtual int ajouter_mg_element_cotopologique(MG_ELEMENT_COTOPOLOGIQUE *mg_element_cotopologique)
Definition: mg_cg_forme_multiple.cpp:150
MG_CG_FORME_MULTIPLE::get_suivant_mg_element_topologique
virtual MG_ELEMENT_TOPOLOGIQUE * get_suivant_mg_element_topologique(std::map< long, MG_ELEMENT_TOPOLOGIQUE * >::iterator &it)
Definition: mg_cg_forme_multiple.cpp:139
BOITE_3D
Definition: ot_boite_3d.h:27
MG_CG_FORME_MULTIPLE
Definition: mg_cg_forme_multiple.h:39
MG_CG_FORME_MULTIPLE::retirer_tout_mg_element_topologique
virtual void retirer_tout_mg_element_topologique(void)
Definition: mg_cg_forme_multiple.cpp:127
MG_CG_FORME_MULTIPLE::get_type_forme
virtual int get_type_forme(void)
Definition: mg_cg_forme_multiple.cpp:98
MG_CG_FORME_MULTIPLE::get_nb_mg_element_cotopologique
virtual long get_nb_mg_element_cotopologique(void)
Definition: mg_cg_forme_multiple.cpp:146
MG_CG_FORME_MULTIPLE::retirer_mg_element_topologique
virtual int retirer_mg_element_topologique(MG_ELEMENT_TOPOLOGIQUE *mg_element_topologique)
Definition: mg_cg_forme_multiple.cpp:115
MG_GEOMETRIE
Definition: mg_geometrie.h:84
MG_CG_FORME_MULTIPLE::MG_CG_FORME_MULTIPLE
MG_CG_FORME_MULTIPLE(MG_CG_MODELE *mgcg_modele, int provenance)
Definition: mg_cg_forme_multiple.cpp:29