MAGiC
V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_groupe_topologique.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_groupe_topologique.cpp
15
//####//
16
//####//------------------------------------------------------------
17
//####//------------------------------------------------------------
18
//####// COPYRIGHT 2000-2024
19
//####// jeu 13 jun 2024 11:58:54 EDT
20
//####//------------------------------------------------------------
21
//####//------------------------------------------------------------
22
23
24
#include "
gestionversion.h
"
25
#include "
mg_groupe_topologique.h
"
26
#include "
mg_element_topologique.h
"
27
28
29
MG_GROUPE_TOPOLOGIQUE::MG_GROUPE_TOPOLOGIQUE
(
unsigned
long
num):
MG_IDENTIFICATEUR
(num)
30
{
31
}
32
MG_GROUPE_TOPOLOGIQUE::MG_GROUPE_TOPOLOGIQUE
(
void
):
MG_IDENTIFICATEUR
()
33
{
34
}
35
MG_GROUPE_TOPOLOGIQUE::MG_GROUPE_TOPOLOGIQUE
(
MG_GROUPE_TOPOLOGIQUE
& mdd):
MG_IDENTIFICATEUR
(mdd)
36
{
37
}
38
MG_GROUPE_TOPOLOGIQUE::~MG_GROUPE_TOPOLOGIQUE
()
39
{
40
}
41
42
void
MG_GROUPE_TOPOLOGIQUE::enregistrer
(std::ostream& o,
double
version)
43
{
44
o <<
"%"
<<
get_id
() <<
"=GROUPE_TOPOLOGIQUE("
<<
get_nb
();
45
if
(
get_nb
()!=0)
46
o <<
",("
;
47
else
48
o <<
");"
<< std::endl;
49
int
i=0;
50
std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*>::iterator it;
51
for
(
MG_ELEMENT_TOPOLOGIQUE
* ele=
get_premier
(it);ele!=NULL;ele=
get_suivant
(it))
52
{
53
o <<
"$"
<< ele->get_id();
54
if
(i!=
get_nb
()-1) o <<
","
;
55
else
o <<
"));"
<< std::endl;
56
i++;
57
}
58
}
59
60
61
int
MG_GROUPE_TOPOLOGIQUE::ajouter
(
class
MG_ELEMENT_TOPOLOGIQUE
* ele)
62
{
63
std::pair<std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*>::iterator,
bool
> p=
map_mg_element_topologique
.insert(std::pair<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*>(ele,ele));
64
if
(!p.second)
65
return
FAIL
;
66
return
OK
;
67
}
68
int
MG_GROUPE_TOPOLOGIQUE::est_dans_laliste
(
MG_ELEMENT_TOPOLOGIQUE
* ele)
69
{
70
std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*>::iterator it=
map_mg_element_topologique
.find(ele);
71
if
(it!=
map_mg_element_topologique
.end())
return
1;
72
else
return
0;
73
}
74
75
int
MG_GROUPE_TOPOLOGIQUE::supprimer
(
class
MG_ELEMENT_TOPOLOGIQUE
* ele)
76
{
77
std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*>::iterator it=
map_mg_element_topologique
.find(ele);
78
if
(it!=
map_mg_element_topologique
.end())
79
{
80
map_mg_element_topologique
.erase(it);
81
return
OK
;
82
}
83
else
return
FAIL
;
84
85
}
86
87
void
MG_GROUPE_TOPOLOGIQUE::supprimer_tout
(
void
)
88
{
89
map_mg_element_topologique
.clear();
90
}
91
92
int
MG_GROUPE_TOPOLOGIQUE::get_nb
(
void
)
93
{
94
return
map_mg_element_topologique
.size();
95
}
96
97
98
MG_ELEMENT_TOPOLOGIQUE
*
MG_GROUPE_TOPOLOGIQUE::get_premier
(std::map< MG_ELEMENT_TOPOLOGIQUE*, MG_ELEMENT_TOPOLOGIQUE* >::iterator& it)
99
{
100
it=
map_mg_element_topologique
.begin();
101
if
(it==
map_mg_element_topologique
.end())
102
return
NULL;
103
return
it->second;
104
}
105
106
MG_ELEMENT_TOPOLOGIQUE
*
MG_GROUPE_TOPOLOGIQUE::get_suivant
(std::map< MG_ELEMENT_TOPOLOGIQUE*, MG_ELEMENT_TOPOLOGIQUE* >::iterator& it)
107
{
108
it++;
109
if
(it==
map_mg_element_topologique
.end())
110
return
NULL;
111
return
it->second;
112
}
113
114
115
116
117
gestionversion.h
MG_GROUPE_TOPOLOGIQUE::get_nb
virtual int get_nb(void)
Definition:
mg_groupe_topologique.cpp:92
MG_GROUPE_TOPOLOGIQUE::~MG_GROUPE_TOPOLOGIQUE
virtual ~MG_GROUPE_TOPOLOGIQUE()
Definition:
mg_groupe_topologique.cpp:38
MG_GROUPE_TOPOLOGIQUE::get_suivant
virtual MG_ELEMENT_TOPOLOGIQUE * get_suivant(std::map< class MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * >::iterator &it)
Definition:
mg_groupe_topologique.cpp:106
FAIL
const int FAIL
Definition:
mg_definition.h:39
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition:
mg_identificateur.cpp:53
MG_GROUPE_TOPOLOGIQUE::MG_GROUPE_TOPOLOGIQUE
MG_GROUPE_TOPOLOGIQUE(void)
Definition:
mg_groupe_topologique.cpp:32
OK
const int OK
Definition:
mg_definition.h:38
MG_GROUPE_TOPOLOGIQUE::est_dans_laliste
virtual int est_dans_laliste(MG_ELEMENT_TOPOLOGIQUE *ele)
Definition:
mg_groupe_topologique.cpp:68
MG_ELEMENT_TOPOLOGIQUE
Definition:
mg_element_topologique.h:51
MG_GROUPE_TOPOLOGIQUE::supprimer_tout
virtual void supprimer_tout(void)
Definition:
mg_groupe_topologique.cpp:87
MG_GROUPE_TOPOLOGIQUE::map_mg_element_topologique
std::map< class MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * > map_mg_element_topologique
Definition:
mg_groupe_topologique.h:49
MG_GROUPE_TOPOLOGIQUE::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition:
mg_groupe_topologique.cpp:42
mg_groupe_topologique.h
MG_GROUPE_TOPOLOGIQUE
Definition:
mg_groupe_topologique.h:31
mg_element_topologique.h
MG_GROUPE_TOPOLOGIQUE::ajouter
virtual int ajouter(class MG_ELEMENT_TOPOLOGIQUE *ele)
Definition:
mg_groupe_topologique.cpp:61
MG_GROUPE_TOPOLOGIQUE::get_premier
virtual MG_ELEMENT_TOPOLOGIQUE * get_premier(std::map< class MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * >::iterator &it)
Definition:
mg_groupe_topologique.cpp:98
MG_GROUPE_TOPOLOGIQUE::supprimer
virtual int supprimer(class MG_ELEMENT_TOPOLOGIQUE *ele)
Definition:
mg_groupe_topologique.cpp:75
MG_IDENTIFICATEUR
Definition:
mg_identificateur.h:34
home
francois
tmp
lib
mtu
src
mg_groupe_topologique.cpp
Généré le Mercredi 11 Juin 2025 23:00:08 pour MAGiC par
1.8.17