MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_cg_modele.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_modele.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:54 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifndef _MG_CG_MODELE_
23 #define _MG_CG_MODELE_
24 
25 
26 #include <map>
27 #include <vector>
28 #include <set>
29 #include <iostream>
30 
32 #include "mg_definition.h"
33 
34 class MG_GESTIONNAIRE;
35 class MG_GEOMETRIE;
36 class MG_CG_OPERATEUR;
37 class MG_CG_FORME;
38 class MG_CG_ASSEMBLAGE;
39 class MG_CG_GROUPE_FORME;
40 
41 class MG_CG_MODELE : public MG_CONSTRUCTION_GEOMETRIQUE
42 {
43 public:
44  MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire,std::string nom_mgcg_modele,MG_GEOMETRIE* mg_geometrie);
45  MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire,std::string nom_mgcg_modele,MG_GEOMETRIE* mg_geometrie,unsigned long num);
46  virtual ~MG_CG_MODELE(void);
47 
48  typedef void FONCTION_AFFICHAGE(char *);
49  void active_affichagage(FONCTION_AFFICHAGE *fonction_affichage);
50  void affiche(char *message);
51 
52  virtual void change_mg_gestionnaire(MG_GESTIONNAIRE* mg_gestionnaire);
53  virtual MG_GESTIONNAIRE* get_mg_gestionnaire(void);
54 
55  virtual void change_mg_geometrie(MG_GEOMETRIE* mg_geometrie);
56  virtual MG_GEOMETRIE* get_mg_geometrie(void);
57 
58  virtual void change_nom_mgcg_modele(std::string nom_mgcg_modele);
59  virtual std::string get_nom_mgcg_modele(void);
60 
61  virtual long get_nb_mgcg_operateur(void);
62  virtual int ajouter_mgcg_operateur(MG_CG_OPERATEUR* mgcg_operateur);
63  virtual int ajouter_mgcg_operateur_avant(MG_CG_OPERATEUR* mgcg_operateur,MG_CONSTRUCTION_GEOMETRIQUE* objet_avant);
64  virtual int supprimer_mgcg_operateurid(long id);
65  virtual void supprimer_tout_mgcg_operateur(void);
66  virtual MG_CG_OPERATEUR* get_premier_mgcg_operateur(std::map<long,MG_CG_OPERATEUR*>::iterator &it);
67  virtual MG_CG_OPERATEUR* get_suivant_mgcg_operateur(std::map<long,MG_CG_OPERATEUR*>::iterator &it);
68  virtual MG_CG_OPERATEUR* get_mgcg_operateurid(long id);
69 
70  virtual long get_nb_mgcg_forme(void);
71  virtual int ajouter_mgcg_forme(MG_CG_FORME* mgcg_forme);
72  virtual int ajouter_mgcg_forme_avant(MG_CG_FORME* mgcg_forme,MG_CONSTRUCTION_GEOMETRIQUE* objet_avant);
73  virtual int remplacer_mgcg_forme(MG_CG_FORME* mgcg_forme_nouvelle,MG_CG_FORME* mgcg_forme_ancienne);
74  virtual int supprimer_mgcg_formeid(long id,bool avec_mg_element=true);
75  virtual void supprimer_tout_mgcg_forme(bool avec_mg_element=true);
76  virtual MG_CG_FORME* get_premiere_mgcg_forme(std::map<long,MG_CG_FORME*>::iterator &it);
77  virtual MG_CG_FORME* get_suivante_mgcg_forme(std::map<long,MG_CG_FORME*>::iterator &it);
78  virtual MG_CG_FORME* get_mgcg_formeid(long id);
79 
80  virtual long get_nb_mgcg_assemblage(void);
81  virtual int ajouter_mgcg_assemblage(MG_CG_ASSEMBLAGE* mgcg_assemblage);
82  virtual int supprimer_mgcg_assemglageid(long id);
83  virtual void supprimer_tout_mgcg_assemblage(void);
84  virtual MG_CG_ASSEMBLAGE* get_premier_mgcg_assemblage(std::map<long,MG_CG_ASSEMBLAGE*>::iterator &it);
85  virtual MG_CG_ASSEMBLAGE* get_suivant_mgcg_assemblage(std::map<long,MG_CG_ASSEMBLAGE*>::iterator &it);
86  virtual MG_CG_ASSEMBLAGE* get_mgcg_assemblageid(long id);
87 
88  virtual long get_nb_objet_sequence_construction(void);
89  virtual void ajouter_objet_sequence_construction(MG_CONSTRUCTION_GEOMETRIQUE* objet);
90  virtual int ajouter_objet_sequence_construction_avant(MG_CONSTRUCTION_GEOMETRIQUE* objet,MG_CONSTRUCTION_GEOMETRIQUE* objet_avant);
91  virtual MG_CONSTRUCTION_GEOMETRIQUE* get_premier_objet_sequence_construction(std::vector<MG_CONSTRUCTION_GEOMETRIQUE*>::iterator &it);
92  virtual MG_CONSTRUCTION_GEOMETRIQUE* get_suivant_objet_sequence_construction(std::vector<MG_CONSTRUCTION_GEOMETRIQUE*>::iterator &it);
93  virtual int retirer_objet_sequence_construction(MG_CONSTRUCTION_GEOMETRIQUE* objet);
95 
96  virtual long get_nb_mgcg_groupe_forme(void);
97  virtual int ajouter_mgcg_groupe_forme(MG_CG_GROUPE_FORME* mgcg_groupe_forme);
98  virtual int supprimer_mgcg_groupe_forme(MG_CG_GROUPE_FORME* mgcg_groupe_forme);
99  MG_CG_GROUPE_FORME* get_premier_mgcg_groupe_forme(std::map<long,MG_CG_GROUPE_FORME*>::iterator &it);
100  MG_CG_GROUPE_FORME* get_suivant_mgcg_groupe_forme(std::map<long,MG_CG_GROUPE_FORME*>::iterator &it);
102  MG_CG_GROUPE_FORME* get_mgcg_groupe_forme(std::string nom);
103 
104  virtual void enregistrer(std::ostream& o,double version);
105  virtual void get_fichier_dependant(std::vector<std::string> &liste_fichier);
106 
107  virtual int get_type_mg_construction_geometrique(void);
108  virtual void supprimer_mg_element_mgcg_forme(MG_CG_FORME* mgcg_forme);
109  virtual void mise_a_jout_lien_mg_element_mgcg_forme(MG_CG_FORME* mgcg_forme);
110  virtual void mise_a_jour_geometrie(void);
111  virtual void change_fusionner_entite_similaire(bool val);
112  virtual bool get_fusionner_entite_similaire(void);
113  virtual void change_precision(double val);
114  virtual double get_precision(void);
115  virtual void change_importer_triangulation(bool val);
116  virtual bool get_importer_triangulation(void);
117  virtual void change_epsilon_triangulation(double val);
118  virtual double get_epsilon_triangulation(void);
119 
121 
122 
123 protected:
127  std::string m_nom_mgcg_modele;
128  std::map<long,MG_CG_FORME*> m_map_mgcg_forme;
129  std::map<long,MG_CG_OPERATEUR*> m_map_mgcg_operateur;
130  std::map<long,MG_CG_ASSEMBLAGE*> m_map_mgcg_assemblage;
131  std::vector<MG_CONSTRUCTION_GEOMETRIQUE*> m_vector_objet_sequence_construction;
132  std::map<long,long> m_map_nb_repetition;
133  std::map<long,MG_CG_GROUPE_FORME*> m_map_groupe_forme;
137 };
138 
139 
140 #endif
virtual int ajouter_mgcg_assemblage(MG_CG_ASSEMBLAGE *mgcg_assemblage)
MG_CG_GROUPE_FORME * get_mgcg_groupe_forme(std::string nom)
virtual MG_CG_ASSEMBLAGE * get_suivant_mgcg_assemblage(std::map< long, MG_CG_ASSEMBLAGE * >::iterator &it)
virtual int remplacer_mgcg_forme(MG_CG_FORME *mgcg_forme_nouvelle, MG_CG_FORME *mgcg_forme_ancienne)
MG_GESTIONNAIRE * m_mg_gestionnaire
Definition: mg_cg_modele.h:124
virtual int ajouter_mgcg_forme_avant(MG_CG_FORME *mgcg_forme, MG_CONSTRUCTION_GEOMETRIQUE *objet_avant)
virtual MG_CG_OPERATEUR * get_mgcg_operateurid(long id)
virtual int retirer_objet_sequence_construction(MG_CONSTRUCTION_GEOMETRIQUE *objet)
virtual bool get_importer_triangulation(void)
std::map< long, MG_CG_OPERATEUR * > m_map_mgcg_operateur
Definition: mg_cg_modele.h:129
virtual void retirer_tout_objet_sequence_construction(void)
virtual void change_nom_mgcg_modele(std::string nom_mgcg_modele)
std::string m_nom_mgcg_modele
Definition: mg_cg_modele.h:127
std::map< long, long > m_map_nb_repetition
Definition: mg_cg_modele.h:132
virtual void enregistrer(std::ostream &o, double version)
virtual ~MG_CG_MODELE(void)
virtual MG_CG_FORME * get_premiere_mgcg_forme(std::map< long, MG_CG_FORME * >::iterator &it)
virtual MG_CG_ASSEMBLAGE * get_premier_mgcg_assemblage(std::map< long, MG_CG_ASSEMBLAGE * >::iterator &it)
MG_CG_MODELE(MG_GESTIONNAIRE *mg_gestionnaire, std::string nom_mgcg_modele, MG_GEOMETRIE *mg_geometrie)
virtual void supprimer_tout_mgcg_operateur(void)
virtual int supprimer_mgcg_assemglageid(long id)
int m_fusionner_entite_similaire
Definition: mg_cg_modele.h:134
virtual void get_fichier_dependant(std::vector< std::string > &liste_fichier)
virtual MG_GESTIONNAIRE * get_mg_gestionnaire(void)
virtual MG_CONSTRUCTION_GEOMETRIQUE * get_premier_objet_sequence_construction(std::vector< MG_CONSTRUCTION_GEOMETRIQUE * >::iterator &it)
virtual int ajouter_mgcg_operateur(MG_CG_OPERATEUR *mgcg_operateur)
virtual MG_CG_OPERATEUR * get_suivant_mgcg_operateur(std::map< long, MG_CG_OPERATEUR * >::iterator &it)
virtual void supprimer_tout_mgcg_forme(bool avec_mg_element=true)
double m_epsilon_triangulation
Definition: mg_cg_modele.h:136
virtual void change_mg_gestionnaire(MG_GESTIONNAIRE *mg_gestionnaire)
void FONCTION_AFFICHAGE(char *)
Definition: mg_cg_modele.h:48
virtual void change_epsilon_triangulation(double val)
virtual void change_mg_geometrie(MG_GEOMETRIE *mg_geometrie)
virtual void change_precision(double val)
std::map< long, MG_CG_ASSEMBLAGE * > m_map_mgcg_assemblage
Definition: mg_cg_modele.h:130
void active_affichagage(FONCTION_AFFICHAGE *fonction_affichage)
virtual int ajouter_mgcg_forme(MG_CG_FORME *mgcg_forme)
MG_CG_GROUPE_FORME * get_mgcg_groupe_formeid(long id)
virtual double get_precision(void)
virtual void mise_a_jour_geometrie(void)
virtual MG_CG_OPERATEUR * get_premier_mgcg_operateur(std::map< long, MG_CG_OPERATEUR * >::iterator &it)
virtual long get_nb_mgcg_operateur(void)
virtual void supprimer_mg_element_mgcg_forme(MG_CG_FORME *mgcg_forme)
virtual bool get_fusionner_entite_similaire(void)
virtual void supprimer_tout_mgcg_assemblage(void)
std::map< long, MG_CG_FORME * > m_map_mgcg_forme
Definition: mg_cg_modele.h:128
MG_CG_GROUPE_FORME * get_suivant_mgcg_groupe_forme(std::map< long, MG_CG_GROUPE_FORME * >::iterator &it)
virtual long get_nb_mgcg_assemblage(void)
virtual void ajouter_objet_sequence_construction(MG_CONSTRUCTION_GEOMETRIQUE *objet)
virtual MG_GEOMETRIE * get_mg_geometrie(void)
FONCTION_AFFICHAGE * m_fonction_affichage
Definition: mg_cg_modele.h:126
virtual void change_fusionner_entite_similaire(bool val)
virtual int supprimer_mgcg_groupe_forme(MG_CG_GROUPE_FORME *mgcg_groupe_forme)
virtual MG_CG_FORME * get_suivante_mgcg_forme(std::map< long, MG_CG_FORME * >::iterator &it)
virtual int get_type_mg_construction_geometrique(void)
std::map< long, MG_CG_GROUPE_FORME * > m_map_groupe_forme
Definition: mg_cg_modele.h:133
virtual long get_nb_mgcg_forme(void)
virtual void change_importer_triangulation(bool val)
virtual long get_nb_mgcg_groupe_forme(void)
void affiche(char *message)
MG_GEOMETRIE * m_mg_geometrie
Definition: mg_cg_modele.h:125
virtual MG_CG_FORME * get_mgcg_formeid(long id)
virtual MG_CG_ASSEMBLAGE * get_mgcg_assemblageid(long id)
virtual void mise_a_jout_lien_mg_element_mgcg_forme(MG_CG_FORME *mgcg_forme)
virtual int ajouter_objet_sequence_construction_avant(MG_CONSTRUCTION_GEOMETRIQUE *objet, MG_CONSTRUCTION_GEOMETRIQUE *objet_avant)
virtual std::string get_nom_mgcg_modele(void)
virtual long get_nb_objet_sequence_construction(void)
virtual int ajouter_mgcg_groupe_forme(MG_CG_GROUPE_FORME *mgcg_groupe_forme)
MG_CG_GROUPE_FORME * get_premier_mgcg_groupe_forme(std::map< long, MG_CG_GROUPE_FORME * >::iterator &it)
virtual double get_epsilon_triangulation(void)
virtual MG_CONSTRUCTION_GEOMETRIQUE * get_suivant_objet_sequence_construction(std::vector< MG_CONSTRUCTION_GEOMETRIQUE * >::iterator &it)
std::vector< MG_CONSTRUCTION_GEOMETRIQUE * > m_vector_objet_sequence_construction
Definition: mg_cg_modele.h:131
MG_IDENTIFICATEUR * get_mg_identificateur(long id)
virtual int supprimer_mgcg_formeid(long id, bool avec_mg_element=true)
int m_importer_triangulation
Definition: mg_cg_modele.h:135
virtual int ajouter_mgcg_operateur_avant(MG_CG_OPERATEUR *mgcg_operateur, MG_CONSTRUCTION_GEOMETRIQUE *objet_avant)
virtual int supprimer_mgcg_operateurid(long id)