//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
static void performBoolean(const GeomAlgoAPI_Tools::BOPType theBooleanType,
GeomMakeShapePtr& theBooleanAlgo,
const ListOfShape& theObjects,
static void performBoolean(const GeomAlgoAPI_Tools::BOPType theBooleanType,
GeomMakeShapePtr& theBooleanAlgo,
const ListOfShape& theObjects,
{
if (theBooleanType == GeomAlgoAPI_Tools::BOOL_PARTITION)
theBooleanAlgo.reset(new GeomAlgoAPI_Partition(theObjects, theTools));
{
if (theBooleanType == GeomAlgoAPI_Tools::BOOL_PARTITION)
theBooleanAlgo.reset(new GeomAlgoAPI_Partition(theObjects, theTools));
ListOfShape anObjects = theObjects;
ListOfShape aTools;
aTools.splice(aTools.begin(), anObjects, anObjects.begin());
ListOfShape anObjects = theObjects;
ListOfShape aTools;
aTools.splice(aTools.begin(), anObjects, anObjects.begin());
- theBooleanAlgo.reset(new GeomAlgoAPI_Boolean(anObjects, aTools, theBooleanType));
+ theBooleanAlgo.reset(new GeomAlgoAPI_Boolean(anObjects, aTools, theBooleanType, theFuzzy));
- theBooleanAlgo.reset(new GeomAlgoAPI_Boolean(theObjects, theTools, theBooleanType));
+ theBooleanAlgo.reset(new GeomAlgoAPI_Boolean(theObjects, theTools, theBooleanType, theFuzzy));
const GeomShapePtr& theObject,
const ListOfShape& theTools,
const ListOfShape& thePlanes,
const GeomShapePtr& theObject,
const ListOfShape& theTools,
const ListOfShape& thePlanes,
ListOfShape& theResultShapesList,
GeomShapePtr theResultCompound)
{
ListOfShape& theResultShapesList,
GeomShapePtr theResultCompound)
{
aToolsWithPlanes.insert(aToolsWithPlanes.end(), aPlanesCopy.begin(), aPlanesCopy.end());
if (theBooleanType == GeomAlgoAPI_Tools::BOOL_PARTITION)
aToolsWithPlanes.insert(aToolsWithPlanes.end(), aPlanesCopy.begin(), aPlanesCopy.end());
if (theBooleanType == GeomAlgoAPI_Tools::BOOL_PARTITION)
ListOfShape aUsedTools = theTools;
aUsedTools.insert(aUsedTools.end(), thePlanes.begin(), thePlanes.end());
ListOfShape aUsedTools = theTools;
aUsedTools.insert(aUsedTools.end(), thePlanes.begin(), thePlanes.end());
aRBA.resultBody = aResultBody;
aRBA.baseShape = theObject;
aRBA.makeShape = aMakeShapeList;
aRBA.resultBody = aResultBody;
aRBA.baseShape = theObject;
aRBA.makeShape = aMakeShapeList;
const GeomShapePtr& theCompsolid,
const ListOfShape& theTools,
const ListOfShape& thePlanes,
const GeomShapePtr& theCompsolid,
const ListOfShape& theTools,
const ListOfShape& thePlanes,
ListOfShape& theResultShapesList,
GeomShapePtr theResultCompound)
{
ListOfShape& theResultShapesList,
GeomShapePtr theResultCompound)
{
aToolsWithPlanes.insert(aToolsWithPlanes.end(), aPlanesCopy.begin(), aPlanesCopy.end());
std::shared_ptr<GeomAlgoAPI_MakeShape> aBoolAlgo;
aToolsWithPlanes.insert(aToolsWithPlanes.end(), aPlanesCopy.begin(), aPlanesCopy.end());
std::shared_ptr<GeomAlgoAPI_MakeShape> aBoolAlgo;
- performBoolean(theBooleanType, aBoolAlgo, aUsedInOperationSolids, aToolsWithPlanes);
+ performBoolean(theBooleanType, aBoolAlgo, aUsedInOperationSolids, aToolsWithPlanes, theFuzzy);
ListOfShape aShapesToAdd = aNotUsedSolids;
aShapesToAdd.push_back(aBoolAlgo->shape());
std::shared_ptr<GeomAlgoAPI_PaveFiller> aFillerAlgo(
ListOfShape aShapesToAdd = aNotUsedSolids;
aShapesToAdd.push_back(aBoolAlgo->shape());
std::shared_ptr<GeomAlgoAPI_PaveFiller> aFillerAlgo(
ListOfShape aUsedTools = theTools;
aUsedTools.insert(aUsedTools.end(), thePlanes.begin(), thePlanes.end());
ListOfShape aUsedTools = theTools;
aUsedTools.insert(aUsedTools.end(), thePlanes.begin(), thePlanes.end());
aRBA.resultBody = aResultBody;
aRBA.baseShape = theCompsolid;
aRBA.makeShape = aMakeShapeList;
aRBA.resultBody = aResultBody;
aRBA.baseShape = theCompsolid;
aRBA.makeShape = aMakeShapeList;
GeomAPI_ShapeHierarchy& theCompoundHierarchy,
const GeomShapePtr& theCompound,
const ListOfShape& theTools,
GeomAPI_ShapeHierarchy& theCompoundHierarchy,
const GeomShapePtr& theCompound,
const ListOfShape& theTools,
ListOfShape& theResultShapesList,
GeomShapePtr theResultCompound)
{
ListOfShape& theResultShapesList,
GeomShapePtr theResultCompound)
{
std::shared_ptr<GeomAlgoAPI_MakeShapeList> aMakeShapeList(new GeomAlgoAPI_MakeShapeList());
std::shared_ptr<GeomAlgoAPI_MakeShape> aBoolAlgo;
std::shared_ptr<GeomAlgoAPI_MakeShapeList> aMakeShapeList(new GeomAlgoAPI_MakeShapeList());
std::shared_ptr<GeomAlgoAPI_MakeShape> aBoolAlgo;
- performBoolean(theBooleanType, aBoolAlgo, aUsedInOperationShapes, theTools);
+ performBoolean(theBooleanType, aBoolAlgo, aUsedInOperationShapes, theTools, theFuzzy);
aRBA.resultBody = aResultBody;
aRBA.baseShape = theCompound;
aRBA.makeShape = aMakeShapeList;
aRBA.resultBody = aResultBody;
aRBA.baseShape = theCompound;
aRBA.makeShape = aMakeShapeList;