MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
step_import.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 //####// step_import.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:54 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifdef BREP_STEP
23 #ifndef step_importH
24 #define step_importH
25 
26 
27 
28 #include <vector>
29 #include "tpl_relation_entite.h"
30 #include "st_gestionnaire.h"
31 
32 
33 
34 
35 
36 
37 
39 {
40 public:
41  STEP_IMPORT();
42  virtual ~STEP_IMPORT();
43 
44  class MG_GEOMETRIE* importer(class MG_GESTIONNAIRE& gest,char *path);
45 
46 private:
47  void relation(class ST_ADVANCED_FACE* ent1,class MG_FACE* ent2) {
49  r.a=ent1;
50  r.b=ent2;
51  lst_face.insert(lst_face.end(),r);
52  };
53  void relation(class ST_SURFACE* ent1,class MG_SURFACE* ent2) {
55  r.a=ent1;
56  r.b=ent2;
57  lst_surface.insert(lst_surface.end(),r);
58  };
59  void relation(class ST_EDGE_CURVE* ent1,class MG_ARETE* ent2) {
61  r.a=ent1;
62  r.b=ent2;
63  lst_arete.insert(lst_arete.end(),r);
64  };
65  void relation(class ST_COURBE* ent1,class MG_COURBE* ent2) {
67  r.a=ent1;
68  r.b=ent2;
69  lst_courbe.insert(lst_courbe.end(),r);
70  };
71  void relation(class ST_VERTEX* ent1,class MG_SOMMET* ent2) {
73  r.a=ent1;
74  r.b=ent2;
75  lst_sommet.insert(lst_sommet.end(),r);
76  };
77 
79  {
80  std::vector<TPL_RELATION_ENTITE<ST_ADVANCED_FACE,MG_FACE> >::iterator i;
81  for (i=lst_face.begin();i!=lst_face.end();i++)
82  if ((*i).a==face) return (*i).b;
83  return NULL;
84  };
85 
87  {
88  std::vector<TPL_RELATION_ENTITE<ST_ADVANCED_FACE,MG_FACE> >::iterator i;
89  for (i=lst_face.begin();i!=lst_face.end();i++)
90  if ((*i).b==face) return (*i).a;
91  return NULL;
92  };
93 
94  // surface
96  {
97  std::vector<TPL_RELATION_ENTITE<ST_SURFACE,MG_SURFACE> >::iterator i;
98  for (i=lst_surface.begin();i!=lst_surface.end();i++)
99  if ((*i).a==surface) return (*i).b;
100  return NULL;
101  };
102 
104  {
105  std::vector<TPL_RELATION_ENTITE<ST_SURFACE,MG_SURFACE> >::iterator i;
106  for (i=lst_surface.begin();i!=lst_surface.end();i++)
107  if ((*i).b==surface) return (*i).a;
108  return NULL;
109  };
110 
111  //arete
113  {
114  std::vector<TPL_RELATION_ENTITE<ST_EDGE_CURVE,MG_ARETE> >::iterator i;
115  for (i=lst_arete.begin();i!=lst_arete.end();i++)
116  if ((*i).a==arete) return (*i).b;
117  return NULL;
118  };
119 
121  {
122  std::vector<TPL_RELATION_ENTITE<ST_EDGE_CURVE,MG_ARETE> >::iterator i;
123  for (i=lst_arete.begin();i!=lst_arete.end();i++)
124  if ((*i).b==arete) return (*i).a;
125  return NULL;
126  };
127 
128  // courbe
130  {
131  std::vector<TPL_RELATION_ENTITE<ST_COURBE,MG_COURBE> >::iterator i;
132  for (i=lst_courbe.begin();i!=lst_courbe.end();i++)
133  if ((*i).a==courbe) return (*i).b;
134  return NULL;
135  };
136 
138  {
139  std::vector<TPL_RELATION_ENTITE<ST_COURBE,MG_COURBE> >::iterator i;
140  for (i=lst_courbe.begin();i!=lst_courbe.end();i++)
141  if ((*i).b==courbe) return (*i).a;
142  return NULL;
143  };
144 
145  //sommet
146 
148  {
149  std::vector<TPL_RELATION_ENTITE<ST_VERTEX,MG_SOMMET> >::iterator i;
150  for (i=lst_sommet.begin();i!=lst_sommet.end();i++)
151  if ((*i).a==sommet) return (*i).b;
152  return NULL;
153  };
154 
156  {
157  std::vector<TPL_RELATION_ENTITE<ST_VERTEX,MG_SOMMET> >::iterator i;
158  for (i=lst_sommet.begin();i!=lst_sommet.end();i++)
159  if ((*i).b==sommet) return (*i).a;
160  return NULL;
161  };
162 
163  std::vector<TPL_RELATION_ENTITE<ST_ADVANCED_FACE,MG_FACE> > lst_face;
164  std::vector<TPL_RELATION_ENTITE<ST_SURFACE,MG_SURFACE> > lst_surface;
165  std::vector<TPL_RELATION_ENTITE<ST_EDGE_CURVE,MG_ARETE> > lst_arete;
166  std::vector<TPL_RELATION_ENTITE<ST_COURBE,MG_COURBE> > lst_courbe;
167  std::vector<TPL_RELATION_ENTITE<ST_VERTEX,MG_SOMMET> > lst_sommet;
168 
169 
170 } ;
171 
172 
173 
174 
175 
176 
177 #endif
178 #endif
179 
180 
STEP_IMPORT::lst_surface
std::vector< TPL_RELATION_ENTITE< ST_SURFACE, MG_SURFACE > > lst_surface
Definition: step_import.h:164
STEP_IMPORT::trouver
MG_ARETE * trouver(ST_EDGE_CURVE *arete)
Definition: step_import.h:112
STEP_IMPORT::lst_arete
std::vector< TPL_RELATION_ENTITE< ST_EDGE_CURVE, MG_ARETE > > lst_arete
Definition: step_import.h:165
MG_SURFACE
Definition: mg_surface.h:31
STEP_IMPORT
Definition: step_import.h:38
ST_VERTEX
Definition: stvertex.h:33
st_gestionnaire.h
STEP_IMPORT::importer
class MG_GEOMETRIE * importer(class MG_GESTIONNAIRE &gest, char *path)
Definition: step_import.cpp:72
STEP_IMPORT::trouver
MG_FACE * trouver(ST_ADVANCED_FACE *face)
Definition: step_import.h:78
TPL_RELATION_ENTITE
Definition: tpl_relation_entite.h:31
STEP_IMPORT::lst_face
std::vector< TPL_RELATION_ENTITE< ST_ADVANCED_FACE, MG_FACE > > lst_face
Definition: step_import.h:161
STEP_IMPORT::relation
void relation(class ST_EDGE_CURVE *ent1, class MG_ARETE *ent2)
Definition: step_import.h:59
ST_ADVANCED_FACE
Definition: stadface.h:34
TPL_RELATION_ENTITE::b
B * b
Definition: tpl_relation_entite.h:35
STEP_IMPORT::relation
void relation(class ST_VERTEX *ent1, class MG_SOMMET *ent2)
Definition: step_import.h:71
STEP_IMPORT::trouver
ST_ADVANCED_FACE * trouver(MG_FACE *face)
Definition: step_import.h:86
MG_GESTIONNAIRE
Definition: mg_gestionnaire.h:57
MG_COURBE
Definition: mg_courbe.h:30
STEP_IMPORT::lst_courbe
std::vector< TPL_RELATION_ENTITE< ST_COURBE, MG_COURBE > > lst_courbe
Definition: step_import.h:166
tpl_relation_entite.h
ST_EDGE_CURVE
Definition: stedgecurve.h:34
STEP_IMPORT::lst_sommet
std::vector< TPL_RELATION_ENTITE< ST_VERTEX, MG_SOMMET > > lst_sommet
Definition: step_import.h:167
STEP_IMPORT::trouver
MG_COURBE * trouver(ST_COURBE *courbe)
Definition: step_import.h:129
STEP_IMPORT::trouver
ST_EDGE_CURVE * trouver(MG_ARETE *arete)
Definition: step_import.h:120
STEP_IMPORT::trouver
ST_VERTEX * trouver(MG_SOMMET *sommet)
Definition: step_import.h:155
ST_SURFACE
Definition: st_surface.h:29
STEP_IMPORT::relation
void relation(class ST_COURBE *ent1, class MG_COURBE *ent2)
Definition: step_import.h:65
TPL_RELATION_ENTITE::a
A * a
Definition: tpl_relation_entite.h:34
STEP_IMPORT::trouver
ST_COURBE * trouver(MG_COURBE *courbe)
Definition: step_import.h:137
STEP_IMPORT::trouver
ST_SURFACE * trouver(MG_SURFACE *surface)
Definition: step_import.h:103
STEP_IMPORT::trouver
MG_SOMMET * trouver(ST_VERTEX *sommet)
Definition: step_import.h:147
STEP_IMPORT::STEP_IMPORT
STEP_IMPORT()
Definition: step_import.cpp:62
MG_GEOMETRIE
Definition: mg_geometrie.h:84
STEP_IMPORT::relation
void relation(class ST_SURFACE *ent1, class MG_SURFACE *ent2)
Definition: step_import.h:53
STEP_IMPORT::~STEP_IMPORT
virtual ~STEP_IMPORT()
Definition: step_import.cpp:67
MG_ARETE
Definition: mg_arete.h:36
MG_FACE
Definition: mg_face.h:34
MG_SOMMET
Definition: mg_sommet.h:35
MG_GEOMETRIE::gest
MG_GESTIONNAIRE * gest
Definition: mg_geometrie.h:349
STEP_IMPORT::trouver
MG_SURFACE * trouver(ST_SURFACE *surface)
Definition: step_import.h:95
STEP_IMPORT::relation
void relation(class ST_ADVANCED_FACE *ent1, class MG_FACE *ent2)
Definition: step_import.h:47
ST_COURBE
Definition: st_courbe.h:33