MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
occ_fonction_v2017.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 //####// occ_fonction_v2017.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:54 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifdef ALL_OCC
23 #ifndef OCC_Fonction_v2017
24 #define OCC_Fonction_v2017
25 
26 
27 #include "occ_fonction_v2015.h"
28 
29 #include <Standard_Handle.hxx>
30 #include <TDocStd_Document.hxx>
31 #include <XCAFApp_Application.hxx>
32 #include <XCAFDoc_ShapeTool.hxx>
33 #include <XCAFDoc_DocumentTool.hxx>
34 #include <TDataStd_Name.hxx>
35 #include <TDataStd_Integer.hxx>
36 #include <TDataStd_AsciiString.hxx>
37 
38 
39 #include <PCDM_RetrievalDriver.hxx>
40 #include <PCDM_StorageDriver.hxx>
41 #include <XmlXCAFDrivers_DocumentRetrievalDriver.hxx>
42 #include <XmlXCAFDrivers_DocumentStorageDriver.hxx>
43 
44 
45 #include <TopTools_DataMapOfShapeInteger.hxx>
46 #include <TopTools_DataMapOfShapeShape.hxx>
47 #include <ShapeExtend_Explorer.hxx>
48 #include <TopTools_DataMapOfIntegerShape.hxx>
49 #include <TopTools_MapOfShape.hxx>
50 
51 #include <Precision.hxx>
52 #include <Bnd_Box.hxx>
53 #include <BRepBndLib.hxx>
54 #include <GeomAPI_ProjectPointOnCurve.hxx>
55 #include <GeomAPI_ProjectPointOnSurf.hxx>
56 #include <BRepClass_FaceClassifier.hxx>
57 #include <Geom_Curve.hxx>
58 #include <ShapeAnalysis.hxx>
59 #include <TopExp.hxx>
60 #include <BRepTools.hxx>
61 #include <BRepTools_WireExplorer.hxx>
62 #include <BRepMesh_IncrementalMesh.hxx>
63 
64 #include <TopoDS_Shape.hxx>
65 #include <TopoDS_Compound.hxx>
66 #include <TopoDS_CompSolid.hxx>
67 #include <TopoDS_Solid.hxx>
68 #include <TopoDS_Shell.hxx>
69 #include <TopoDS_Face.hxx>
70 #include <TopoDS_Wire.hxx>
71 #include <TopoDS_Edge.hxx>
72 #include <TopoDS_Vertex.hxx>
73 #include <TopoDS.hxx>
74 
75 #include "mg_geometrie.h"
76 #include "mg_point.h"
77 #include "mg_courbe.h"
78 #include "mg_surface.h"
79 #include "mg_sommet.h"
80 #include "mg_cosommet.h"
81 #include "mg_arete.h"
82 #include "mg_coarete.h"
83 #include "mg_boucle.h"
84 #include "mg_coface.h"
85 #include "mg_face.h"
86 #include "mg_coquille.h"
87 #include "mg_volume.h"
88 #include "mg_poutre.h"
89 #include "mg_coque.h"
90 
91 #include "occ_sommet.h"
92 #include "occ_arete.h"
93 #include "occ_boucle.h"
94 #include "occ_face.h"
95 #include "occ_coquille.h"
96 #include "occ_volume.h"
97 #include "occ_coque.h"
98 
99 #include "occ_point.h"
100 #include "occ_courbe.h"
101 #include "occ_surface.h"
102 
103 
105 {
106 public:
107  OCC_FONCTION_V2017(void);
108  virtual ~OCC_FONCTION_V2017(void);
109  virtual std::string get_version(void);
110 
111  virtual int importer_fichier_STEP(char* file,
112  std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*> *map_nouveau_mg_element_topologique,
113  std::map<MG_ELEMENT_COTOPOLOGIQUE*,MG_ELEMENT_COTOPOLOGIQUE*> *map_nouveau_mg_element_cotopologique,
114  std::map<MG_ELEMENT_GEOMETRIQUE*,MG_ELEMENT_GEOMETRIQUE*> *map_nouveau_mg_element_geometrique,
115  MG_GEOMETRIE* mg_geometrie=NULL,
116  bool fusionner_entite_similaire=false,
117  double precision=1e-6);
118 
119  virtual int exporter_fichier_STEP(char* file,
120  MG_GEOMETRIE* mg_geometrie);
121 
122  virtual int importer_fichier_brep(char* file,
123  std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*> *map_nouveau_mg_element_topologique,
124  std::map<MG_ELEMENT_COTOPOLOGIQUE*,MG_ELEMENT_COTOPOLOGIQUE*> *map_nouveau_mg_element_cotopologique,
125  std::map<MG_ELEMENT_GEOMETRIQUE*,MG_ELEMENT_GEOMETRIQUE*> *map_nouveau_mg_element_geometrique,
126  MG_GEOMETRIE* mg_geometrie=NULL,
127  bool fusionner_entite_similaire=false,
128  double precision=1e-6);
129 
130  virtual int exporter_fichier_brep(char* file,
131  MG_GEOMETRIE* mg_geometrie);
132 
133  virtual int enregistrer_fichier_OCAF(char* file,
134  MG_GEOMETRIE* mg_geometrie);
135 
136  virtual int ouvrir_fichier_OCAF(char* file);
137 
138  void importer_TopoDS_Shape(TopoDS_Shape topods_shape,
139  std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*> *map_nouveau_mg_element_topologique,
140  std::map<MG_ELEMENT_COTOPOLOGIQUE*,MG_ELEMENT_COTOPOLOGIQUE*> *map_nouveau_mg_element_cotopologique,
141  std::map<MG_ELEMENT_GEOMETRIQUE*,MG_ELEMENT_GEOMETRIQUE*> *map_nouveau_mg_element_geometrique,
142  MG_GEOMETRIE* mg_geometrie=NULL,
143  bool fusionner_entite_similaire=false,
144  double precision=1e-6);
145 
146  void importer_TopoDS_Compound(TopoDS_Compound topods_compound,
147  std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*> *map_nouveau_mg_element_topologique,
148  std::map<MG_ELEMENT_COTOPOLOGIQUE*,MG_ELEMENT_COTOPOLOGIQUE*> *map_nouveau_mg_element_cotopologique,
149  std::map<MG_ELEMENT_GEOMETRIQUE*,MG_ELEMENT_GEOMETRIQUE*> *map_nouveau_mg_element_geometrique,
150  MG_GEOMETRIE* mg_geometrie=NULL,
151  bool fusionner_entite_similaire=false,
152  double precision=1e-6);
153 
154  void importer_TopoDS_CompSolid(TopoDS_CompSolid topods_compsolid,
155  std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*> *map_nouveau_mg_element_topologique,
156  std::map<MG_ELEMENT_COTOPOLOGIQUE*,MG_ELEMENT_COTOPOLOGIQUE*> *map_nouveau_mg_element_cotopologique,
157  std::map<MG_ELEMENT_GEOMETRIQUE*,MG_ELEMENT_GEOMETRIQUE*> *map_nouveau_mg_element_geometrique,
158  MG_GEOMETRIE* mg_geometrie=NULL,
159  bool fusionner_entite_similaire=false,
160  double precision=1e-6);
161 
162  MG_VOLUME* importer_TopoDS_Solid(TopoDS_Solid topods_solid,
163  std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*> *map_nouveau_mg_element_topologique,
164  std::map<MG_ELEMENT_COTOPOLOGIQUE*,MG_ELEMENT_COTOPOLOGIQUE*> *map_nouveau_mg_element_cotopologique,
165  std::map<MG_ELEMENT_GEOMETRIQUE*,MG_ELEMENT_GEOMETRIQUE*> *map_nouveau_mg_element_geometrique,
166  MG_GEOMETRIE* mg_geometrie=NULL,
167  bool fusionner_entite_similaire=false,
168  double precision=1e-6);
169 
170  MG_COQUILLE* importer_TopoDS_Shell(TopoDS_Shell topods_shell,
171  std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*> *map_nouveau_mg_element_topologique,
172  std::map<MG_ELEMENT_COTOPOLOGIQUE*,MG_ELEMENT_COTOPOLOGIQUE*> *map_nouveau_mg_element_cotopologique,
173  std::map<MG_ELEMENT_GEOMETRIQUE*,MG_ELEMENT_GEOMETRIQUE*> *map_nouveau_mg_element_geometrique,
174  MG_ELEMENT_TOPOLOGIQUE* mg_ele_topo_superieur=NULL,
175  MG_GEOMETRIE* mg_geometrie=NULL,
176  bool fusionner_entite_similaire=false,
177  double precision=1e-6);
178 
179  MG_FACE* importer_TopoDS_Face(TopoDS_Face topods_face,
180  std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*> *map_nouveau_mg_element_topologique,
181  std::map<MG_ELEMENT_COTOPOLOGIQUE*,MG_ELEMENT_COTOPOLOGIQUE*> *map_nouveau_mg_element_cotopologique,
182  std::map<MG_ELEMENT_GEOMETRIQUE*,MG_ELEMENT_GEOMETRIQUE*> *map_nouveau_mg_element_geometrique,
183  MG_COQUILLE* mg_coquille=NULL,
184  MG_GEOMETRIE* mg_geometrie=NULL,
185  bool fusionner_entite_similaire=false,
186  double precision=1e-6);
187 
188  MG_BOUCLE* importer_TopoDS_Wire(TopoDS_Wire topods_wire,
189  std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*> *map_nouveau_mg_element_topologique,
190  std::map<MG_ELEMENT_COTOPOLOGIQUE*,MG_ELEMENT_COTOPOLOGIQUE*> *map_nouveau_mg_element_cotopologique,
191  std::map<MG_ELEMENT_GEOMETRIQUE*,MG_ELEMENT_GEOMETRIQUE*> *map_nouveau_mg_element_geometrique,
192  MG_ELEMENT_TOPOLOGIQUE* mg_ele_topo_superieur=NULL,
193  MG_GEOMETRIE* mg_geometrie=NULL,
194  bool fusionner_entite_similaire=false,
195  double precision=1e-6);
196 
197  MG_ARETE* importer_TopoDS_Edge(TopoDS_Edge topods_edge,
198  TopoDS_Wire *topods_wire,
199  std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*> *map_nouveau_mg_element_topologique,
200  std::map<MG_ELEMENT_COTOPOLOGIQUE*,MG_ELEMENT_COTOPOLOGIQUE*> *map_nouveau_mg_element_cotopologique,
201  std::map<MG_ELEMENT_GEOMETRIQUE*,MG_ELEMENT_GEOMETRIQUE*> *map_nouveau_mg_element_geometrique,
202  MG_BOUCLE* mg_boucle=NULL,
203  MG_GEOMETRIE* mg_geometrie=NULL,
204  bool fusionner_entite_similaire=false,
205  double precision=1e-6);
206 
207  MG_SOMMET* importer_TopoDS_Vertex(TopoDS_Vertex topods_vertex,
208  std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*> *map_nouveau_mg_element_topologique,
209  std::map<MG_ELEMENT_COTOPOLOGIQUE*,MG_ELEMENT_COTOPOLOGIQUE*> *map_nouveau_mg_element_cotopologique,
210  std::map<MG_ELEMENT_GEOMETRIQUE*,MG_ELEMENT_GEOMETRIQUE*> *map_nouveau_mg_element_geometrique,
211  MG_ARETE* mg_arete=NULL,
212  int index_sommet=1,
213  MG_GEOMETRIE* mg_geometrie=NULL,
214  bool fusionner_entite_similaire=false,
215  double precision=1e-6);
216 
217  int ajouter_OCC_SOMMET(class OCC_SOMMET* occ_sommet);
218  int supprimer_OCC_SOMMET(OCC_SOMMET* occ_sommet);
219  int ajouter_TopoDS_Vertex_id(TopoDS_Vertex vertex,long id);
220  TopoDS_Vertex get_TopoDS_Vertex_id(long id);
221  OCC_SOMMET* un_equivalent_est_present(TopoDS_Vertex vertex,bool recherche_avancee=false);
222 
223  int ajouter_OCC_ARETE(class OCC_ARETE* occ_arete);
224  int supprimer_OCC_ARETE(OCC_ARETE* occ_arete);
225  int ajouter_TopoDS_Edge_id(TopoDS_Edge edge,long id);
226  TopoDS_Edge get_TopoDS_Edge_id(long id);
227  OCC_ARETE* un_equivalent_est_present(TopoDS_Edge edge,bool recherche_avancee=false);
228 
229  int ajouter_OCC_BOUCLE(class OCC_BOUCLE* occ_boucle);
230  int supprimer_OCC_BOUCLE(OCC_BOUCLE* occ_boucle);
231  int ajouter_TopoDS_Wire_id(TopoDS_Wire wire,long id);
232  TopoDS_Wire get_TopoDS_Wire_id(long id);
233  OCC_BOUCLE* un_equivalent_est_present(TopoDS_Wire wire,bool recherche_avancee=false);
234 
235  int ajouter_OCC_FACE(class OCC_FACE* occ_face);
236  int supprimer_OCC_FACE(OCC_FACE* occ_face);
237  int ajouter_TopoDS_Face_id(TopoDS_Face face,long id);
238  TopoDS_Face get_TopoDS_Face_id(long id);
239  OCC_FACE* un_equivalent_est_present(TopoDS_Face face,bool recherche_avancee=false);
240 
241  int ajouter_OCC_COQUILLE(class OCC_COQUILLE* occ_coquille);
242  int supprimer_OCC_COQUILLE(OCC_COQUILLE* occ_coquille);
243  int ajouter_TopoDS_Shell_id(TopoDS_Shell shell,long id);
244  TopoDS_Shell get_TopoDS_Shell_id(long id);
245  OCC_COQUILLE* un_equivalent_est_present(TopoDS_Shell shell,bool recherche_avancee=false);
246 
247  int ajouter_OCC_COQUE(class OCC_COQUE* occ_coque);
248  int supprimer_OCC_COQUE(OCC_COQUE* occ_coque);
249 
250 
251 
252  int ajouter_OCC_VOLUME(class OCC_VOLUME* occ_volume);
253  int supprimer_OCC_VOLUME(OCC_VOLUME* occ_volume);
254  int ajouter_TopoDS_Solid_id(TopoDS_Solid solid,long id);
255  TopoDS_Solid get_TopoDS_Solid_id(long id);
256  OCC_VOLUME* un_equivalent_est_present(TopoDS_Solid solid,bool recherche_avancee=false);
257 
258  virtual const TopoDS_Shape& GetShape(const int id_shape);
259  MG_ELEMENT_TOPOLOGIQUE* get_MG_ELEMENT_TOPOLOGIQUE(TopoDS_Shape topods_shape);
260  MG_ELEMENT_COTOPOLOGIQUE* get_MG_ELEMENT_COTOPOLOGIQUE(TopoDS_Shape topods_shape);
261 
262  int decompose_TopoDS_Compound(TopoDS_Compound topods_compound,
263  TopTools_DataMapOfShapeShape &map_TopoDS_Solid,
264  TopTools_DataMapOfShapeShape &map_TopoDS_Shell,
265  TopTools_DataMapOfShapeShape &map_TopoDS_Face,
266  TopTools_DataMapOfShapeShape &map_TopoDS_Wire,
267  TopTools_DataMapOfShapeShape &map_TopoDS_Edge,
268  TopTools_DataMapOfShapeShape &map_TopoDS_Vertex);
269 protected:
271 
272  void identifier_TopoDS_Solid(OCC_VOLUME* occ_volume,std::map<long,MG_IDENTIFICATEUR*> &map_element_identifie,XCAFDoc_ShapeTool &shape_tool,TDF_Label &top_label_shape,bool top_shape=false);
273  void identifier_TopoDS_Shell(OCC_COQUILLE* occ_coquille,std::map<long,MG_IDENTIFICATEUR*> &map_element_identifie,XCAFDoc_ShapeTool &shape_tool,TDF_Label &top_label_shape,bool top_shape=false);
274  void identifier_TopoDS_Face(OCC_FACE* occ_face,std::map<long,MG_IDENTIFICATEUR*> &map_element_identifie,XCAFDoc_ShapeTool &shape_tool,TDF_Label &top_label_shape,bool top_shape=false);
275  void identifier_TopoDS_Wire(OCC_BOUCLE* occ_boucle,std::map<long,MG_IDENTIFICATEUR*> &map_element_identifie,XCAFDoc_ShapeTool &shape_tool,TDF_Label &top_label_shape,bool top_shape=false);
276  void identifier_TopoDS_Edge(OCC_ARETE* occ_arete,std::map<long,MG_IDENTIFICATEUR*> &map_element_identifie,XCAFDoc_ShapeTool &shape_tool,TDF_Label &top_label_shape,bool top_shape=false);
277  void identifier_TopoDS_Vertex(OCC_SOMMET* occ_sommet,std::map<long,MG_IDENTIFICATEUR*> &map_element_identifie,XCAFDoc_ShapeTool &shape_tool,TDF_Label &top_label_shape,bool top_shape=false);
278 
279  OCC_SOMMET* un_equivalent_est_present_recherche_avancee(TopoDS_Vertex vertex,NCollection_DataMap<TopoDS_Shape,MG_ELEMENT_TOPOLOGIQUE*,TopTools_ShapeMapHasher> &MapOfShape_MG_ELEMENT_TOPOLOGIQUE);
280  OCC_ARETE* un_equivalent_est_present_recherche_avancee(TopoDS_Edge edge,NCollection_DataMap<TopoDS_Shape,MG_ELEMENT_TOPOLOGIQUE*,TopTools_ShapeMapHasher> &MapOfShape_MG_ELEMENT_TOPOLOGIQUE);
281  OCC_FACE* un_equivalent_est_present_recherche_avancee(TopoDS_Face face,NCollection_DataMap<TopoDS_Shape,MG_ELEMENT_TOPOLOGIQUE*,TopTools_ShapeMapHasher> &MapOfShape_MG_ELEMENT_TOPOLOGIQUE);
282 
283  void identifier_TopoDS_Edge_Degenerated(TopoDS_Shape topods_shape,XCAFDoc_ShapeTool &shape_tool,TDF_Label &top_label_shape);
284 
285  std::map<long,TopoDS_Shape> m_map_id_TopoDS_Shape;
286  NCollection_DataMap<TopoDS_Shape,MG_ELEMENT_TOPOLOGIQUE*,TopTools_ShapeMapHasher> m_MapOfShape_MG_ELEMENT_TOPOLOGIQUE;
287  NCollection_DataMap<TopoDS_Shape,MG_ELEMENT_COTOPOLOGIQUE*,TopTools_ShapeMapHasher> m_MapOfShape_MG_ELEMENT_COTOPOLOGIQUE;
288 };
289 #endif
290 #endif
virtual int enregistrer_fichier_OCAF(char *file, MG_GEOMETRIE *mg_geometrie)
void identifier_TopoDS_Face(OCC_FACE *occ_face, std::map< long, MG_IDENTIFICATEUR * > &map_element_identifie, XCAFDoc_ShapeTool &shape_tool, TDF_Label &top_label_shape, bool top_shape=false)
virtual const TopoDS_Shape & GetShape(const int id_shape)
TopoDS_Solid get_TopoDS_Solid_id(long id)
TopoDS_Vertex get_TopoDS_Vertex_id(long id)
MG_SOMMET * importer_TopoDS_Vertex(TopoDS_Vertex topods_vertex, std::map< MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * > *map_nouveau_mg_element_topologique, std::map< MG_ELEMENT_COTOPOLOGIQUE *, MG_ELEMENT_COTOPOLOGIQUE * > *map_nouveau_mg_element_cotopologique, std::map< MG_ELEMENT_GEOMETRIQUE *, MG_ELEMENT_GEOMETRIQUE * > *map_nouveau_mg_element_geometrique, MG_ARETE *mg_arete=NULL, int index_sommet=1, MG_GEOMETRIE *mg_geometrie=NULL, bool fusionner_entite_similaire=false, double precision=1e-6)
virtual int importer_fichier_brep(char *file, std::map< MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * > *map_nouveau_mg_element_topologique, std::map< MG_ELEMENT_COTOPOLOGIQUE *, MG_ELEMENT_COTOPOLOGIQUE * > *map_nouveau_mg_element_cotopologique, std::map< MG_ELEMENT_GEOMETRIQUE *, MG_ELEMENT_GEOMETRIQUE * > *map_nouveau_mg_element_geometrique, MG_GEOMETRIE *mg_geometrie=NULL, bool fusionner_entite_similaire=false, double precision=1e-6)
int ajouter_TopoDS_Edge_id(TopoDS_Edge edge, long id)
OCC_SOMMET * un_equivalent_est_present_recherche_avancee(TopoDS_Vertex vertex, NCollection_DataMap< TopoDS_Shape, MG_ELEMENT_TOPOLOGIQUE *, TopTools_ShapeMapHasher > &MapOfShape_MG_ELEMENT_TOPOLOGIQUE)
int supprimer_OCC_ARETE(OCC_ARETE *occ_arete)
TopoDS_Wire get_TopoDS_Wire_id(long id)
int ajouter_OCC_SOMMET(class OCC_SOMMET *occ_sommet)
OCC_SOMMET * un_equivalent_est_present(TopoDS_Vertex vertex, bool recherche_avancee=false)
TopoDS_Edge get_TopoDS_Edge_id(long id)
int ajouter_TopoDS_Vertex_id(TopoDS_Vertex vertex, long id)
virtual int exporter_fichier_STEP(char *file, MG_GEOMETRIE *mg_geometrie)
NCollection_DataMap< TopoDS_Shape, MG_ELEMENT_COTOPOLOGIQUE *, TopTools_ShapeMapHasher > m_MapOfShape_MG_ELEMENT_COTOPOLOGIQUE
int ajouter_OCC_COQUILLE(class OCC_COQUILLE *occ_coquille)
void identifier_TopoDS_Edge_Degenerated(TopoDS_Shape topods_shape, XCAFDoc_ShapeTool &shape_tool, TDF_Label &top_label_shape)
int ajouter_TopoDS_Face_id(TopoDS_Face face, long id)
int ajouter_TopoDS_Solid_id(TopoDS_Solid solid, long id)
int supprimer_OCC_COQUILLE(OCC_COQUILLE *occ_coquille)
void importer_TopoDS_Compound(TopoDS_Compound topods_compound, std::map< MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * > *map_nouveau_mg_element_topologique, std::map< MG_ELEMENT_COTOPOLOGIQUE *, MG_ELEMENT_COTOPOLOGIQUE * > *map_nouveau_mg_element_cotopologique, std::map< MG_ELEMENT_GEOMETRIQUE *, MG_ELEMENT_GEOMETRIQUE * > *map_nouveau_mg_element_geometrique, MG_GEOMETRIE *mg_geometrie=NULL, bool fusionner_entite_similaire=false, double precision=1e-6)
TopoDS_Shell get_TopoDS_Shell_id(long id)
virtual int exporter_fichier_brep(char *file, MG_GEOMETRIE *mg_geometrie)
int ajouter_OCC_BOUCLE(class OCC_BOUCLE *occ_boucle)
NCollection_DataMap< TopoDS_Shape, MG_ELEMENT_TOPOLOGIQUE *, TopTools_ShapeMapHasher > m_MapOfShape_MG_ELEMENT_TOPOLOGIQUE
int ajouter_OCC_FACE(class OCC_FACE *occ_face)
int ajouter_OCC_COQUE(class OCC_COQUE *occ_coque)
MG_COQUILLE * importer_TopoDS_Shell(TopoDS_Shell topods_shell, std::map< MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * > *map_nouveau_mg_element_topologique, std::map< MG_ELEMENT_COTOPOLOGIQUE *, MG_ELEMENT_COTOPOLOGIQUE * > *map_nouveau_mg_element_cotopologique, std::map< MG_ELEMENT_GEOMETRIQUE *, MG_ELEMENT_GEOMETRIQUE * > *map_nouveau_mg_element_geometrique, MG_ELEMENT_TOPOLOGIQUE *mg_ele_topo_superieur=NULL, MG_GEOMETRIE *mg_geometrie=NULL, bool fusionner_entite_similaire=false, double precision=1e-6)
virtual int ouvrir_fichier_OCAF(char *file)
int supprimer_OCC_SOMMET(OCC_SOMMET *occ_sommet)
int ajouter_TopoDS_Shell_id(TopoDS_Shell shell, long id)
virtual int importer_fichier_STEP(char *file, std::map< MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * > *map_nouveau_mg_element_topologique, std::map< MG_ELEMENT_COTOPOLOGIQUE *, MG_ELEMENT_COTOPOLOGIQUE * > *map_nouveau_mg_element_cotopologique, std::map< MG_ELEMENT_GEOMETRIQUE *, MG_ELEMENT_GEOMETRIQUE * > *map_nouveau_mg_element_geometrique, MG_GEOMETRIE *mg_geometrie=NULL, bool fusionner_entite_similaire=false, double precision=1e-6)
int ajouter_OCC_VOLUME(class OCC_VOLUME *occ_volume)
int supprimer_OCC_BOUCLE(OCC_BOUCLE *occ_boucle)
int ajouter_OCC_ARETE(class OCC_ARETE *occ_arete)
MG_ELEMENT_TOPOLOGIQUE * get_MG_ELEMENT_TOPOLOGIQUE(TopoDS_Shape topods_shape)
void identifier_TopoDS_Shell(OCC_COQUILLE *occ_coquille, std::map< long, MG_IDENTIFICATEUR * > &map_element_identifie, XCAFDoc_ShapeTool &shape_tool, TDF_Label &top_label_shape, bool top_shape=false)
void importer_TopoDS_Shape(TopoDS_Shape topods_shape, std::map< MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * > *map_nouveau_mg_element_topologique, std::map< MG_ELEMENT_COTOPOLOGIQUE *, MG_ELEMENT_COTOPOLOGIQUE * > *map_nouveau_mg_element_cotopologique, std::map< MG_ELEMENT_GEOMETRIQUE *, MG_ELEMENT_GEOMETRIQUE * > *map_nouveau_mg_element_geometrique, MG_GEOMETRIE *mg_geometrie=NULL, bool fusionner_entite_similaire=false, double precision=1e-6)
void identifier_TopoDS_Vertex(OCC_SOMMET *occ_sommet, std::map< long, MG_IDENTIFICATEUR * > &map_element_identifie, XCAFDoc_ShapeTool &shape_tool, TDF_Label &top_label_shape, bool top_shape=false)
void identifier_TopoDS_Edge(OCC_ARETE *occ_arete, std::map< long, MG_IDENTIFICATEUR * > &map_element_identifie, XCAFDoc_ShapeTool &shape_tool, TDF_Label &top_label_shape, bool top_shape=false)
int supprimer_OCC_COQUE(OCC_COQUE *occ_coque)
std::map< long, TopoDS_Shape > m_map_id_TopoDS_Shape
void identifier_TopoDS_Wire(OCC_BOUCLE *occ_boucle, std::map< long, MG_IDENTIFICATEUR * > &map_element_identifie, XCAFDoc_ShapeTool &shape_tool, TDF_Label &top_label_shape, bool top_shape=false)
int decompose_TopoDS_Compound(TopoDS_Compound topods_compound, TopTools_DataMapOfShapeShape &map_TopoDS_Solid, TopTools_DataMapOfShapeShape &map_TopoDS_Shell, TopTools_DataMapOfShapeShape &map_TopoDS_Face, TopTools_DataMapOfShapeShape &map_TopoDS_Wire, TopTools_DataMapOfShapeShape &map_TopoDS_Edge, TopTools_DataMapOfShapeShape &map_TopoDS_Vertex)
void identifier_TopoDS_Solid(OCC_VOLUME *occ_volume, std::map< long, MG_IDENTIFICATEUR * > &map_element_identifie, XCAFDoc_ShapeTool &shape_tool, TDF_Label &top_label_shape, bool top_shape=false)
int supprimer_OCC_FACE(OCC_FACE *occ_face)
MG_ARETE * importer_TopoDS_Edge(TopoDS_Edge topods_edge, TopoDS_Wire *topods_wire, std::map< MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * > *map_nouveau_mg_element_topologique, std::map< MG_ELEMENT_COTOPOLOGIQUE *, MG_ELEMENT_COTOPOLOGIQUE * > *map_nouveau_mg_element_cotopologique, std::map< MG_ELEMENT_GEOMETRIQUE *, MG_ELEMENT_GEOMETRIQUE * > *map_nouveau_mg_element_geometrique, MG_BOUCLE *mg_boucle=NULL, MG_GEOMETRIE *mg_geometrie=NULL, bool fusionner_entite_similaire=false, double precision=1e-6)
MG_BOUCLE * importer_TopoDS_Wire(TopoDS_Wire topods_wire, std::map< MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * > *map_nouveau_mg_element_topologique, std::map< MG_ELEMENT_COTOPOLOGIQUE *, MG_ELEMENT_COTOPOLOGIQUE * > *map_nouveau_mg_element_cotopologique, std::map< MG_ELEMENT_GEOMETRIQUE *, MG_ELEMENT_GEOMETRIQUE * > *map_nouveau_mg_element_geometrique, MG_ELEMENT_TOPOLOGIQUE *mg_ele_topo_superieur=NULL, MG_GEOMETRIE *mg_geometrie=NULL, bool fusionner_entite_similaire=false, double precision=1e-6)
MG_ELEMENT_COTOPOLOGIQUE * get_MG_ELEMENT_COTOPOLOGIQUE(TopoDS_Shape topods_shape)
virtual std::string get_version(void)
void importer_TopoDS_CompSolid(TopoDS_CompSolid topods_compsolid, std::map< MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * > *map_nouveau_mg_element_topologique, std::map< MG_ELEMENT_COTOPOLOGIQUE *, MG_ELEMENT_COTOPOLOGIQUE * > *map_nouveau_mg_element_cotopologique, std::map< MG_ELEMENT_GEOMETRIQUE *, MG_ELEMENT_GEOMETRIQUE * > *map_nouveau_mg_element_geometrique, MG_GEOMETRIE *mg_geometrie=NULL, bool fusionner_entite_similaire=false, double precision=1e-6)
TopoDS_Face get_TopoDS_Face_id(long id)
MG_FACE * importer_TopoDS_Face(TopoDS_Face topods_face, std::map< MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * > *map_nouveau_mg_element_topologique, std::map< MG_ELEMENT_COTOPOLOGIQUE *, MG_ELEMENT_COTOPOLOGIQUE * > *map_nouveau_mg_element_cotopologique, std::map< MG_ELEMENT_GEOMETRIQUE *, MG_ELEMENT_GEOMETRIQUE * > *map_nouveau_mg_element_geometrique, MG_COQUILLE *mg_coquille=NULL, MG_GEOMETRIE *mg_geometrie=NULL, bool fusionner_entite_similaire=false, double precision=1e-6)
int supprimer_OCC_VOLUME(OCC_VOLUME *occ_volume)
int ajouter_TopoDS_Wire_id(TopoDS_Wire wire, long id)
MG_VOLUME * importer_TopoDS_Solid(TopoDS_Solid topods_solid, std::map< MG_ELEMENT_TOPOLOGIQUE *, MG_ELEMENT_TOPOLOGIQUE * > *map_nouveau_mg_element_topologique, std::map< MG_ELEMENT_COTOPOLOGIQUE *, MG_ELEMENT_COTOPOLOGIQUE * > *map_nouveau_mg_element_cotopologique, std::map< MG_ELEMENT_GEOMETRIQUE *, MG_ELEMENT_GEOMETRIQUE * > *map_nouveau_mg_element_geometrique, MG_GEOMETRIE *mg_geometrie=NULL, bool fusionner_entite_similaire=false, double precision=1e-6)
virtual ~OCC_FONCTION_V2017(void)
double precision
Definition: occ_fonction.h:64