From 265dfeb97b0a5da55c2dfa2ac96666c7e2a5164e Mon Sep 17 00:00:00 2001 From: skv Date: Wed, 16 Oct 2013 11:22:29 +0000 Subject: [PATCH] 0022338: implement check self-intersection option for boolean operations --- .../gui/GEOM/input/common_operation.doc | 14 +- doc/salome/gui/GEOM/input/cut_operation.doc | 12 +- doc/salome/gui/GEOM/input/fuse_operation.doc | 14 +- .../gui/GEOM/input/section_operation.doc | 8 +- .../GEOM/input/using_boolean_operations.doc | 23 ++-- idl/GEOM_Gen.idl | 20 ++- idl/GEOM_Superv.idl | 6 +- .../GEOMImpl_IAdvancedOperations.cxx | 3 +- src/BooleanGUI/BooleanGUI_Dialog.cxx | 20 ++- src/BooleanGUI/BooleanGUI_Dialog.h | 4 +- src/GEOMImpl/GEOMImpl_BooleanDriver.cxx | 122 +++++++++--------- src/GEOMImpl/GEOMImpl_IBoolean.hxx | 11 +- src/GEOMImpl/GEOMImpl_IBooleanOperations.cxx | 65 ++++++++-- src/GEOMImpl/GEOMImpl_IBooleanOperations.hxx | 17 ++- src/GEOM_I/GEOM_IBooleanOperations_i.cc | 28 ++-- src/GEOM_I/GEOM_IBooleanOperations_i.hh | 12 +- src/GEOM_I_Superv/GEOM_Superv_i.cc | 20 ++- src/GEOM_I_Superv/GEOM_Superv_i.hh | 6 +- src/GEOM_SWIG/geomBuilder.py | 72 ++++++++--- 19 files changed, 309 insertions(+), 168 deletions(-) diff --git a/doc/salome/gui/GEOM/input/common_operation.doc b/doc/salome/gui/GEOM/input/common_operation.doc index e24645f31..c9bca9897 100644 --- a/doc/salome/gui/GEOM/input/common_operation.doc +++ b/doc/salome/gui/GEOM/input/common_operation.doc @@ -8,23 +8,23 @@ This operation cuts the common part of a list of shapes and transforms it into a The \b Result will be a \b GEOM_Object. -TUI Command: geompy.MakeCommonList(theShapesList)\n -Arguments: Name + a list of shapes.\n +TUI Command: geompy.MakeCommonList(theShapesList, checkSelfInte)\n +Arguments: Name + a list of shapes + an optional flag for self-intersection check.\n Advanced option: \ref restore_presentation_parameters_page "Set presentation parameters and sub-shapes from arguments". \image html bool2.png "Common dialog" - + For a particular case with two shapes for the Common operation there is the following TUI command: -TUI Command: geompy.MakeCommon(s1, s2)\n -Arguments: Name + 2 shapes. +TUI Command: geompy.MakeCommon(s1, s2, checkSelfInte)\n +Arguments: Name + 2 shapes + an optional flag for self-intersection check. Example: \image html fusesn1.png "The initial shapes" -\image html commonsn.png "The resulting object" +\image html commonsn.png "The resulting object" Our TUI Scripts provide you with useful examples of the use of \ref tui_common "Boolean Operations". @@ -32,7 +32,7 @@ Our TUI Scripts provide you with useful examples of the use of More details For a detailed description of the Boolean operations please refer to -this document. +this document. It provides a general review of the Partition and Boolean operations algorithms, describes the usage methodology and highlights major limitations of these operations. diff --git a/doc/salome/gui/GEOM/input/cut_operation.doc b/doc/salome/gui/GEOM/input/cut_operation.doc index d00c587eb..745a49c09 100644 --- a/doc/salome/gui/GEOM/input/cut_operation.doc +++ b/doc/salome/gui/GEOM/input/cut_operation.doc @@ -8,8 +8,8 @@ This operation cuts a shape with a list of other shapes. The \b Result will be a \b GEOM_Object. -TUI Command: geompy.MakeCutList(theMainShape, theShapesList)\n -Arguments: Name + a main shape + a list of other shapes.\n +TUI Command: geompy.MakeCutList(theMainShape, theShapesList, checkSelfInte)\n +Arguments: Name + a main shape + a list of other shapes + an optional flag for self-intersection check.\n Advanced option: \ref restore_presentation_parameters_page "Set presentation parameters and sub-shapes from arguments". @@ -17,8 +17,8 @@ The \b Result will be a \b GEOM_Object. For a particular case with two shapes (object and tool) for the Cut operation there is the following TUI command: -TUI Command: geompy.MakeCut(s1, s2)\n -Arguments: Name + the object + the tool. +TUI Command: geompy.MakeCut(s1, s2, checkSelfInte)\n +Arguments: Name + the object + the tool + an optional flag for self-intersection check. Example: @@ -26,13 +26,13 @@ For a particular case with two shapes (object and tool) for the Cut operation th \image html cutsn.png "The resulting object" -Our TUI Scripts provide you with useful examples of the use of +Our TUI Scripts provide you with useful examples of the use of \ref tui_cut "Boolean Operations". More details For a detailed description of the Boolean operations please refer to -this document. +this document. It provides a general review of the Partition and Boolean operations algorithms, describes the usage methodology and highlights major limitations of these operations. diff --git a/doc/salome/gui/GEOM/input/fuse_operation.doc b/doc/salome/gui/GEOM/input/fuse_operation.doc index b45e580a8..a185601e9 100644 --- a/doc/salome/gui/GEOM/input/fuse_operation.doc +++ b/doc/salome/gui/GEOM/input/fuse_operation.doc @@ -3,14 +3,14 @@ \page fuse_operation_page Fuse To produce a \b Fuse operation in the Main Menu select -Operations - > Boolean - > Fuse. +Operations - > Boolean - > Fuse. This operation creates one shape from a list of shapes. The \b Result will be a \b GEOM_Object. -TUI Command: geompy.MakeFuseList(theShapesList)\n -Arguments: Name + a list of shapes.\n +TUI Command: geompy.MakeFuseList(theShapesList, checkSelfInte)\n +Arguments: Name + a list of shapes + an optional flag for self-intersection check.\n Advanced option: \ref restore_presentation_parameters_page "Set presentation parameters and sub-shapes from arguments". @@ -18,8 +18,8 @@ The \b Result will be a \b GEOM_Object. For a particular case with two shapes to be fused there is the following TUI command: -TUI Command: geompy.MakeFuse(s1, s2)\n -Arguments: Name + 2 shapes. +TUI Command: geompy.MakeFuse(s1, s2, checkSelfInte)\n +Arguments: Name + 2 shapes + an optional flag for self-intersection check. Example: @@ -27,13 +27,13 @@ For a particular case with two shapes to be fused there is the following TUI com \image html fusesn2.png "The resulting fuse" -Our TUI Scripts provide you with useful examples of the use of +Our TUI Scripts provide you with useful examples of the use of \ref tui_fuse "Boolean Operations". More details