occt: master b1d15f53

Author Committer Branch Timestamp Parent
emv bugmaster master 2014-11-28 09:23:58 master 49e1a5c7
Changeset 0025477: Boolean Operations with additional tolerance - Fuzzy Boolean operations

Implementation of Fuzzy Boolean operations. Such operations allow to perform Boolean operations on the shapes
with near-coincidence between the entities of these shapes, i.e. between shapes in which some entities from one shape
are intended to be coincide with some entities from the other, but the coincidence is not precise.

API for Boolean operations has been improved to have a possibility to add new options.

Modified entities:
1. New option of setting additional tolerance have been added to the following classes:
class BOPAlgo_ArgumentAnalyzer
class BOPAlgo_BOP
class BOPAlgo_Builder
class BOPAlgo_MakerVolume
class BOPAlgo_PaveFiller
class BOPDS_DS
class BRepAlgoAPI_BooleanOperation
class BRepAlgoAPI_Check
class BRepAlgoAPI_Common
class BRepAlgoAPI_Cut
class BRepAlgoAPI_Fuse
class BRepAlgoAPI_Section

2. Following draw commands have been modified to support new functionality:
BOP commands:
bop b1 b2 [tol]
bcommon r b1 b2 [tol]
bcut r b1 b2 [tol]
bfuse r b1 b2 [tol]
bsection r s1 s2 [-n2d/-n2d1/-n2d2] [-na] [tol]
mkvolume r b1 b2 ... [-c] [-ni] [-s] [tol]
bfillds [-s -t] [tol]

Check commands:
bopcheck Shape [level of check: 0 - 9] [-t -s] [-tol tol]
bopargcheck [-F/O/C/T/S/U] [/R|F|T|V|E|I|P|C|S]] [#BF] [-tol tol]

3. Two new classes have been added to API to provide the root interface for algorithms
class BRepAlgoAPI_Algo
class BRepAlgoAPI_BuilderAlgo

Fix to eliminate the warning.

Test-cases for issue #25477
mod - src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cdl Diff File
mod - src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.lxx Diff File
mod - src/BOPAlgo/BOPAlgo_BOP.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder.cdl Diff File
mod - src/BOPAlgo/BOPAlgo_Builder.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_CheckerSI.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_MakerVolume.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_MakerVolume.lxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller.cdl Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller.cxx Diff File
mod - src/BOPCol/BOPCol.cdl Diff File
add - src/BOPCol/BOPCol_DataMapOfShapeReal.hxx Diff File
mod - src/BOPCol/FILES Diff File
mod - src/BOPDS/BOPDS_DS.cdl Diff File
mod - src/BOPDS/BOPDS_DS.cxx Diff File
mod - src/BOPDS/BOPDS_DS.lxx Diff File
mod - src/BOPTest/BOPTest_BOPCommands.cxx Diff File
mod - src/BOPTest/BOPTest_CheckCommands.cxx Diff File
mod - src/BOPTest/BOPTest_PartitionCommands.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools_1.cxx Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI.cdl Diff File
add - src/BRepAlgoAPI/BRepAlgoAPI_Algo.cdl Diff File
add - src/BRepAlgoAPI/BRepAlgoAPI_Algo.cxx Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cdl Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cxx Diff File
add - src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cdl Diff File
add - src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Check.cdl Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Common.cdl Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Common.cxx Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Cut.cdl Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Cut.cxx Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cdl Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cxx Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Section.cdl Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Section.cxx Diff File
mod - src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.cdl Diff File
add - tests/bugs/modalg_5/bug25477_1 Diff File
add - tests/bugs/modalg_5/bug25477_2 Diff File