MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
occ_cg_forme_volume_boite.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 //####// occ_cg_forme_volume_boite.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:54 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifdef ALL_OCC
24 #include "mg_cg_modele.h"
25 #include "occ_fonction.h"
26 #include "occ_fonction_v2017.h"
27 
28 #include <TopoDS_Shape.hxx>
29 #include <BRepPrimAPI_MakeBox.hxx>
30 #include <gp_Pnt.hxx>
31 
33  double x1, double y1, double z1,
34  double x2, double y2, double z2): MG_CG_FORME_VOLUME_BOITE(mgcg_modele,x1, y1, z1, x2, y2, z2)
35 {
36 
37 }
38 
40  int etat,
41  long unsigned int num,
42  MG_VOLUME* mg_volume,
43  double x1, double y1, double z1,
44  double x2, double y2, double z2): MG_CG_FORME_VOLUME_BOITE(mgcg_modele,etat,num,mg_volume,x1, y1, z1, x2, y2, z2)
45 {
46 
47 }
48 
50 {
51 
52 }
53 
55 {
56 
57 }
58 
59 void OCC_CG_FORME_VOLUME_BOITE::enregistrer(std::ostream& o, double version)
60 {
62 }
63 
65 {
66  if(m_mgcg_modele==NULL)
67  {
68  std::cout << "*** ERREUR : OCC_CG_FORME_VOLUME_BOITE::construire_forme -> MG_CG_MODELE NULL ***" << std::endl;
69  return FAIL;
70  }
75 }
76 
77 int OCC_CG_FORME_VOLUME_BOITE::construire(bool fusionner_entite_similaire,
78  double precision,
79  bool importer_triangulation,
80  double epsilon_triangulation)
81 {
82  if(m_mgcg_modele==NULL)
83  {
84  std::cout << "*** ERREUR : OCC_CG_FORME_VOLUME_BOITE::construire_forme -> MG_CG_MODELE NULL ***" << std::endl;
85  return FAIL;
86  }
87  gp_Pnt gp_pnt1(m_coin1[0],m_coin1[1],m_coin1[2]);
88  gp_Pnt gp_pnt2(m_coin2[0],m_coin2[1],m_coin2[2]);
89  TopoDS_Shape topods_shape = BRepPrimAPI_MakeBox(gp_pnt1,gp_pnt2).Shape();
91  if(occ_fonction->get_version()=="OCCV2017")
92  {
93  OCC_FONCTION_V2017* occ_fonction_v2017 = (OCC_FONCTION_V2017*)occ_fonction;
94  m_mg_volume = occ_fonction_v2017->importer_TopoDS_Solid(TopoDS::Solid(topods_shape),
95  NULL,
96  NULL,
97  NULL,
99  fusionner_entite_similaire,
100  precision);
101  }
102  change_etat(MG_CG_FORME::ETAT_FORME::CONSTRUITE);
104  return OK;
105 }
106 
107 #endif
virtual void enregistrer(std::ostream &o, double version)
virtual void change_etat(int etat_forme)
Definition: mg_cg_forme.cpp:81
MG_CG_MODELE * m_mgcg_modele
Definition: mg_cg_forme.h:87
virtual bool get_importer_triangulation(void)
virtual double get_precision(void)
virtual bool get_fusionner_entite_similaire(void)
virtual MG_GEOMETRIE * get_mg_geometrie(void)
virtual void mise_a_jout_lien_mg_element_mgcg_forme(MG_CG_FORME *mgcg_forme)
virtual double get_epsilon_triangulation(void)
class OCC_FONCTION & get_occ_fonction(void)
virtual void enregistrer(std::ostream &o, double version)
OCC_CG_FORME_VOLUME_BOITE(MG_CG_MODELE *mgcg_modele, double x1, double y1, double z1, double x2, double y2, double z2)
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 std::string get_version(void)
const int OK
Definition: mg_definition.h:38
const int FAIL
Definition: mg_definition.h:39