X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGeomAlgoAPI%2FGeomAlgoAPI_Intersection.cpp;h=46c3e51c1861f93984cf0e265a7fe490739c7477;hb=4c86b629d1bf8daa737f90b64e934c7bd22f6525;hp=ea80a97b4f50de6f4d3aa8dabbba2238a14ab305;hpb=97917d3698f5a2f7fc9596e7c755ff8f6751e373;p=modules%2Fshaper.git diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_Intersection.cpp b/src/GeomAlgoAPI/GeomAlgoAPI_Intersection.cpp index ea80a97b4..46c3e51c1 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_Intersection.cpp +++ b/src/GeomAlgoAPI/GeomAlgoAPI_Intersection.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2019 CEA/DEN, EDF R&D +// Copyright (C) 2014-2024 CEA, EDF // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -24,19 +24,22 @@ #include #include + //================================================================================================== -GeomAlgoAPI_Intersection::GeomAlgoAPI_Intersection(const ListOfShape& theObjects) +GeomAlgoAPI_Intersection::GeomAlgoAPI_Intersection(const ListOfShape& theObjects, const double theFuzzy) : myFiller(0) { - build(theObjects); + build(theObjects, theFuzzy); } +//================================================================================================== GeomAlgoAPI_Intersection::~GeomAlgoAPI_Intersection() { if (myFiller) delete (BOPAlgo_PaveFiller*)myFiller; } + //================================================================================================== -void GeomAlgoAPI_Intersection::build(const ListOfShape& theObjects) +void GeomAlgoAPI_Intersection::build(const ListOfShape& theObjects, const double theFuzzy) { if (theObjects.empty()) { return; @@ -64,6 +67,7 @@ void GeomAlgoAPI_Intersection::build(const ListOfShape& theObjects) aDSFiller->SetRunParallel(false); aDSFiller->SetNonDestructive(false); aDSFiller->SetGlue(BOPAlgo_GlueOff); + if (theFuzzy > 0) aDSFiller->SetFuzzyValue(theFuzzy); // optimization for the issue #2399 BOPAlgo_SectionAttribute theSecAttr(Standard_True, @@ -79,8 +83,10 @@ void GeomAlgoAPI_Intersection::build(const ListOfShape& theObjects) anOperation->SetArguments(anObjects); anOperation->SetRunParallel(false); anOperation->SetCheckInverted(true); + if (theFuzzy > 0) anOperation->SetFuzzyValue(theFuzzy); anOperation->PerformWithFiller(*aDSFiller); // it references a filler fields, so keep the filler + myFiller = 0; if(anOperation->HasErrors()) { return; }