0028786: Refactoring of the Warning/Error reporting system of Boolean Operations...
authoremv <emv@opencascade.com>
Mon, 29 May 2017 08:08:08 +0000 (11:08 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 6 Jul 2017 09:41:56 +0000 (12:41 +0300)
commit33ba8565025b3eaccde8709241809383e9f9ff59
treef0a64556bfd6a34b77d4b1ab749a9c7854c460ba
parentb09d86369becdb5cc5c8344270b8f5e89b74ed4a
0028786: Refactoring of the Warning/Error reporting system of Boolean Operations Algorithm

0. Basic tools for defining classes representing alerts (errors, warnings etc.) and collecting them during execution of algorithms are added in Message package.

1. Refactoring of the Error/Warning reporting system of the algorithms in Boolean Component.
   To dump the description of the Error/Warning status of the algorithm the DumpErrors/DumpWarnings method should be called.
   Also, the methods GerErrorMsg(int Error) and GetWarningMsg(int Warning) have been implemented to get the description for the given Error/Warning.
   All Error/Warning statuses are now listed in the enumeration ErrorStatusEnum/WarningStatusEnum of the algorithm.
   It is also possible to get the shapes for which the warning has been set by using the method GetWarningShapes().

2. The new class BOPAlgo_Options has been created to unify the options of the BOPAlgo_* and BRepAlgoAPI* algorithms.

3. The new checks across the algorithms have been added to detect and report errors and warnings.

4. Test cases
  boolean bopcut_complex B9 E1 E5 E8
  boolean bopfuse_complex B4 B5 C9 D1 D4 D5 D6 D7
have been rewritten to use Cells Builder algorithm instead of Boolean Operations algorithm, because latter always returns error "Unsupported Boolean operation" for these cases.

5. New chapter has been added in the user guide for Boolean Operations - Error / Warning reporting system.

6. Added comment to NCollection_List::Remove(Iterator&)
109 files changed:
adm/RESOURCES
dox/user_guides/boolean_operations/boolean_operations.md
src/BOPAlgo/BOPAlgo.msg [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Alerts.hxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Algo.cxx
src/BOPAlgo/BOPAlgo_Algo.hxx
src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx
src/BOPAlgo/BOPAlgo_BOP.cxx
src/BOPAlgo/BOPAlgo_BOP.hxx
src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Builder.cxx
src/BOPAlgo/BOPAlgo_Builder.hxx
src/BOPAlgo/BOPAlgo_BuilderFace.cxx
src/BOPAlgo/BOPAlgo_BuilderFace.hxx
src/BOPAlgo/BOPAlgo_BuilderShape.hxx
src/BOPAlgo/BOPAlgo_BuilderSolid.cxx
src/BOPAlgo/BOPAlgo_BuilderSolid.hxx
src/BOPAlgo/BOPAlgo_Builder_1.cxx
src/BOPAlgo/BOPAlgo_Builder_2.cxx
src/BOPAlgo/BOPAlgo_Builder_3.cxx
src/BOPAlgo/BOPAlgo_CellsBuilder.cxx
src/BOPAlgo/BOPAlgo_CellsBuilder.hxx
src/BOPAlgo/BOPAlgo_CheckerSI.cxx
src/BOPAlgo/BOPAlgo_CheckerSI.hxx
src/BOPAlgo/BOPAlgo_CheckerSI_1.cxx
src/BOPAlgo/BOPAlgo_MakerVolume.cxx
src/BOPAlgo/BOPAlgo_MakerVolume.hxx
src/BOPAlgo/BOPAlgo_Options.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Options.hxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller.cxx
src/BOPAlgo/BOPAlgo_PaveFiller.hxx
src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_9.cxx
src/BOPAlgo/BOPAlgo_Section.cxx
src/BOPAlgo/BOPAlgo_Section.hxx
src/BOPAlgo/BOPAlgo_ShellSplitter.cxx
src/BOPAlgo/BOPAlgo_ShellSplitter.hxx
src/BOPAlgo/BOPAlgo_Splitter.cxx
src/BOPAlgo/BOPAlgo_Splitter.hxx
src/BOPAlgo/BOPAlgo_Tools.cxx
src/BOPAlgo/BOPAlgo_WireSplitter.cxx
src/BOPAlgo/BOPAlgo_WireSplitter.hxx
src/BOPAlgo/FILES
src/BOPTest/BOPTest.cxx
src/BOPTest/BOPTest.hxx
src/BOPTest/BOPTest_APICommands.cxx
src/BOPTest/BOPTest_BOPCommands.cxx
src/BOPTest/BOPTest_CellsCommands.cxx
src/BOPTest/BOPTest_CheckCommands.cxx
src/BOPTest/BOPTest_DebugCommands.cxx
src/BOPTest/BOPTest_Objects.cxx
src/BOPTest/BOPTest_Objects.hxx
src/BOPTest/BOPTest_OptionCommands.cxx
src/BOPTest/BOPTest_PartitionCommands.cxx
src/BRepAlgoAPI/BRepAlgoAPI_Algo.cxx
src/BRepAlgoAPI/BRepAlgoAPI_Algo.hxx
src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cxx
src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.hxx
src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx
src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.hxx
src/BRepAlgoAPI/BRepAlgoAPI_Splitter.cxx
src/BRepAlgoAPI/BRepAlgoAPI_Splitter.hxx
src/BRepFeat/BRepFeat_Builder.cxx
src/BRepFeat/BRepFeat_MakeCylindricalHole.cxx
src/BRepFill/BRepFill_TrimShellCorner.cxx
src/BRepOffset/BRepOffset_MakeOffset.cxx
src/BRepOffset/BRepOffset_MakeOffset_1.cxx
src/BRepOffsetAPI/BRepOffsetAPI_DraftAngle.cxx
src/BRepTest/BRepTest_FeatureCommands.cxx
src/BRepTest/BRepTest_FilletCommands.cxx
src/Message/FILES
src/Message/Message_Alert.cxx [new file with mode: 0644]
src/Message/Message_Alert.hxx [new file with mode: 0644]
src/Message/Message_Algorithm.cxx
src/Message/Message_ListOfAlert.hxx [new file with mode: 0644]
src/Message/Message_Report.cxx [new file with mode: 0644]
src/Message/Message_Report.hxx [new file with mode: 0644]
src/NCollection/NCollection_List.hxx
src/QABugs/QABugs_19.cxx
src/TopoDS/FILES
src/TopoDS/TopoDS_AlertWithShape.cxx [new file with mode: 0644]
src/TopoDS/TopoDS_AlertWithShape.hxx [new file with mode: 0644]
tests/boolean/bopcut_complex/B9
tests/boolean/bopcut_complex/E1
tests/boolean/bopcut_complex/E5
tests/boolean/bopcut_complex/E8
tests/boolean/bopfuse_complex/B4
tests/boolean/bopfuse_complex/B5
tests/boolean/bopfuse_complex/C9
tests/boolean/bopfuse_complex/D1
tests/boolean/bopfuse_complex/D4
tests/boolean/bopfuse_complex/D5
tests/boolean/bopfuse_complex/D6
tests/boolean/bopfuse_complex/D7
tests/bugs/modalg_4/bug726_3
tests/bugs/modalg_6/bug27448_2
tests/bugs/modalg_7/bug28786_1 [new file with mode: 0644]
tests/bugs/modalg_7/bug28786_2 [new file with mode: 0644]
tests/bugs/modalg_7/bug28786_3 [new file with mode: 0644]
tests/bugs/modalg_7/bug28786_4 [new file with mode: 0644]
tests/bugs/modalg_7/bug28786_5 [new file with mode: 0644]