mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
0029312: Using OBB to speed up Boolean Operations
1. Implementation of the user-defined option for usage of Oriented Bounding Boxes (OBB) in Boolean Operations for additional filtering (rejection) of selected for intersection pairs of sub-shapes. By default the usage of OBB is turned off. To enable/disable its usage the method SetUseOBB(flag) should be used. This method is available for all operations in Boolean Component. To enable/disable it in draw the command "buseobb 0/1" should be used. Note, that this will affect all subsequent operations. The OBB for the shapes are built by first necessity and stored into operation context (IntTools_Context). 2. Usage of the OBB in some test cases.
This commit is contained in:
@@ -55,6 +55,7 @@ public:
|
||||
using BOPAlgo_Options::ClearWarnings;
|
||||
using BOPAlgo_Options::GetReport;
|
||||
using BOPAlgo_Options::SetProgressIndicator;
|
||||
using BOPAlgo_Options::SetUseOBB;
|
||||
|
||||
protected:
|
||||
|
||||
|
@@ -311,6 +311,7 @@ void BRepAlgoAPI_BooleanOperation::Build()
|
||||
myDSFiller->SetFuzzyValue(myFuzzyValue);
|
||||
myDSFiller->SetNonDestructive(myNonDestructive);
|
||||
myDSFiller->SetGlue(myGlue);
|
||||
myDSFiller->SetUseOBB(myUseOBB);
|
||||
//
|
||||
SetAttributes();
|
||||
//
|
||||
|
@@ -145,6 +145,7 @@ void BRepAlgoAPI_BuilderAlgo::Build()
|
||||
myDSFiller->SetFuzzyValue(myFuzzyValue);
|
||||
myDSFiller->SetNonDestructive(myNonDestructive);
|
||||
myDSFiller->SetGlue(myGlue);
|
||||
myDSFiller->SetUseOBB(myUseOBB);
|
||||
//
|
||||
myDSFiller->Perform();
|
||||
//
|
||||
|
@@ -98,6 +98,7 @@ void BRepAlgoAPI_Splitter::Build()
|
||||
myDSFiller->SetFuzzyValue(myFuzzyValue);
|
||||
myDSFiller->SetNonDestructive(myNonDestructive);
|
||||
myDSFiller->SetGlue(myGlue);
|
||||
myDSFiller->SetUseOBB(myUseOBB);
|
||||
//
|
||||
myDSFiller->Perform();
|
||||
//
|
||||
|
Reference in New Issue
Block a user