29 #include <gp_Trsf.hxx>
30 #include <BRep_Builder.hxx>
32 #include <BRepOffsetAPI_MakeOffsetShape.hxx>
33 #include <BRepBuilderAPI_MakeSolid.hxx>
35 #include <BRepTools.hxx>
36 #include <TopAbs_ShapeEnum.hxx>
49 long id_mgcg_forme_sortie):
MG_CG_OP_TRANSF_DECALLAGE(mgcg_modele,semantique,etat,num,mgcg_forme_entree,id_mgcg_forme_sortie)
65 std::cout <<
"*** ERREUR : OCC_CG_OP_TRANSF_ECHELLE::construire_forme -> MG_CG_MODELE NULL ***" << std::endl;
68 TopTools_ListOfShape list_of_shape;
70 BRep_Builder brep_builder;
71 TopoDS_Compound Compound_forme_entree;
72 brep_builder.MakeCompound(Compound_forme_entree);
73 TopTools_ListOfShape::Iterator it_shape;
74 for(it_shape.Init(list_of_shape);it_shape.More();it_shape.Next())
76 brep_builder.Add(Compound_forme_entree,it_shape.Value());
78 BRepOffsetAPI_MakeOffsetShape make_offset;
81 make_offset=BRepOffsetAPI_MakeOffsetShape(Compound_forme_entree,
m_decallage,precision);
89 if(!make_offset.IsDone())
91 std::cout <<
"*** ERREUR : OCC_CG_OP_TRANSF_DECALLAGE::construire_forme -> ECHEC de BRepOffsetAPI_MakeOffsetShape ***" << std::endl;
94 TopoDS_Shape shape_resultat = make_offset.Shape();
95 if(shape_resultat.IsNull())
return FAIL;
96 if(shape_resultat.ShapeType()!=TopAbs_ShapeEnum::TopAbs_SHELL)
return FAIL;
97 TopoDS_Solid solid=BRepBuilderAPI_MakeSolid(TopoDS::Shell(shape_resultat));
98 BRepTools::Write(solid,(
char*)
"resultat.brep");
104 fusionner_entite_similaire,
106 importer_triangulation,
107 epsilon_triangulation);
112 change_etat(MG_CG_OPERATEUR::ETAT_OPERATEUR::CONSTRUIT);
120 std::cout <<
"*** ERREUR : OCC_CG_OP_TRANSF_DECALLAGE::construire_forme -> MG_CG_MODELE NULL ***" << std::endl;