]> OCCT Git - occt-copy.git/commit
0026980: Intersection part of Boolean algorithm spends much system time and system... CR26980_2_691
authornbv <nbv@opencascade.com>
Wed, 3 Feb 2016 10:22:16 +0000 (13:22 +0300)
committernbv <nbv@opencascade.com>
Tue, 9 Feb 2016 10:14:57 +0000 (13:14 +0300)
commit068904e027b29e87fb60284cdcf24d54df8d898c
treecfee61620a813fc146ee4f80f2a3a268f3bdfda0
parent3b5f0ca3722968991549cfce1caca4fa89bf97b1
0026980: Intersection part of Boolean algorithm spends much system time and system memory

Patch for CR26980_2 fix
Small correction of shape name

-----------------------------------------------------------
0026323: Tolerance computing unification

Computing is unified. ComputeFastTol3d() method was deleted.

If intersection result contains 3D- and corresponded two 2D-curves then tolerance will be computed with using BRepLib_CheckCurveOnSurface algorithm (check same-parameter).

If intersection result contains only 3D-curve (getting 2D-curve can be switched off by users) then tolerance will be computed with using GeomAPI_ProjectPointOnSurf algorithm (projects some point of 3D-curve on the surface and finds maximal distance).

Some workarounds have been deleted.

Some test case have been changed.

0026383: Incorrect tolerance computing in IntTools_FaceFace::ComputeTolerance()

Projection of points 3d curve on faces deleted from ComputeTolerance().
(cherry picked from commit 260f924fe38a8950dafc89351f0b2481d7858758)

0026565: Compsolid after cut becomes compound of solids

Changed the rules for the types of the arguments for different operations:
1. FUSE:   All arguments and tools should have the same dimension;
2. CUT:    The MAXIMAL dimension of the ARGUMENTS should be less
           or equal to the MINIMAL dimension of the TOOLS;
3. CUT21:  The MINIMAL dimension of ARGUMENTS should be grater
           or equal to the MAXIMAL dimension of the TOOLS;
4. COMMON: The arguments and tools could have any dimensions.

For the arguments of collection type (WIRE, SHELL, COMPSOLID)
the type will be passed into the result of the operation.

The documentation should be updated according to new behavior.

Documentation has been updated.

Implemented suggestions by MSV and some grammar changes.

Test cases for issue CR26565

Correction of test cases for issue CR26565

Correction of test cases for issue CR26565
(cherry picked from commit 9526aa6a8a2a5b41713211d2f6c2aa58c1344e24)

0026718: Big tolerance value of the edge in the result of General Fuse operation

class BOPTools_AlgoTools2D
method
  Standard_Integer BOPTools_AlgoTools2D::AttachExistingPCurve
  (const TopoDS_Edge& aE2, // old
   const TopoDS_Edge& aE1, // new
   const TopoDS_Face& aF,
   const Handle(IntTools_Context)& aCtx)

To prevent huge tolerance increasing check the distances between 2d and 3d
curves (through surface) before attaching 2d curve to the edge.

Test case for issue CR26718

Correction of test cases for issue CR26718
(cherry picked from commit 521e1c61912e7b034652be4a6ba85daaf82999af)

0026619: Tolerances of operands are modified using bop

The fix forces creation of new sub-shapes (vertex, edge) when the tolerance of some sub-shape of an argument is to be increased.

This new behavior is turned off by default. It can be turned on using two ways:
1) Setting 'locking' flag of the arguments.
2) Calling the method SetNonDestructive(Standard_True) of the class BOPAlgo_PaveFiller.
(cherry picked from commit fb42c34bd2bff56e9411ff4b5a993565c4d60baf)
115 files changed:
.gitignore
dox/user_guides/boolean_operations/boolean_operations.md
dox/user_guides/boolean_operations/images/boolean_image136.png [new file with mode: 0644]
dox/user_guides/boolean_operations/images/boolean_image137.png [new file with mode: 0644]
dox/user_guides/boolean_operations/images/boolean_image138.png [new file with mode: 0644]
samples/tcl/snowflake.tcl
src/BOPAlgo/BOPAlgo_BOP.cdl
src/BOPAlgo/BOPAlgo_BOP.cxx
src/BOPAlgo/BOPAlgo_Builder.cxx
src/BOPAlgo/BOPAlgo_Builder_2.cxx
src/BOPAlgo/BOPAlgo_CheckerSI.cdl
src/BOPAlgo/BOPAlgo_CheckerSI.cxx
src/BOPAlgo/BOPAlgo_PaveFiller.cdl
src/BOPAlgo/BOPAlgo_PaveFiller.cxx
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_WireSplitter_1.cxx
src/BOPAlgo/FILES
src/BOPDS/BOPDS_DS.cdl
src/BOPDS/BOPDS_DS.cxx
src/BOPTest/BOPTest_APICommands.cxx
src/BOPTools/BOPTools_AlgoTools.cdl
src/BOPTools/BOPTools_AlgoTools2D_1.cxx
src/BOPTools/BOPTools_AlgoTools_1.cxx
src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cdl
src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cxx
src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cdl
src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx
src/IntPatch/IntPatch_Intersection.cxx
src/IntPatch/IntPatch_PrmPrmIntersection.cxx
src/IntTools/IntTools_Context.cdl
src/IntTools/IntTools_Context.cxx
src/IntTools/IntTools_FaceFace.cxx
src/IntTools/IntTools_ShrunkRange.cxx
src/IntWalk/IntWalk.cdl
src/IntWalk/IntWalk_PWalking.cdl
src/IntWalk/IntWalk_PWalking.cxx
src/IntWalk/IntWalk_PWalking.lxx
src/QABugs/QABugs_19.cxx
tests/blend/simple/X4
tests/boolean/bopcut_2d/D5
tests/boolean/gdml_private/F8
tests/boolean/gdml_private/G7
tests/boolean/gdml_private/I6
tests/boolean/gdml_private/ZD3
tests/boolean/gdml_private/ZD6
tests/boolean/volumemaker/B3
tests/boolean/volumemaker/E4
tests/boolean/volumemaker/E5
tests/boolean/volumemaker/E6
tests/bugs/heal/bug26642
tests/bugs/modalg_1/bug11565_1
tests/bugs/modalg_1/bug11565_2
tests/bugs/modalg_1/bug12507
tests/bugs/modalg_2/bug21460
tests/bugs/modalg_2/bug22356
tests/bugs/modalg_2/bug22790
tests/bugs/modalg_2/bug23100
tests/bugs/modalg_2/bug23470
tests/bugs/modalg_2/bug23676
tests/bugs/modalg_2/bug472_1
tests/bugs/modalg_2/bug472_2
tests/bugs/modalg_2/bug472_3
tests/bugs/modalg_4/bug6538
tests/bugs/modalg_4/pro18892
tests/bugs/modalg_5/bug23884
tests/bugs/modalg_5/bug24092
tests/bugs/modalg_5/bug24187
tests/bugs/modalg_5/bug24585_1
tests/bugs/modalg_5/bug24746
tests/bugs/modalg_5/bug24811
tests/bugs/modalg_5/bug24825_cut
tests/bugs/modalg_5/bug24851
tests/bugs/modalg_5/bug25043
tests/bugs/modalg_5/bug25163
tests/bugs/modalg_5/bug25193
tests/bugs/modalg_5/bug25237
tests/bugs/modalg_5/bug25263
tests/bugs/modalg_5/bug25292_11
tests/bugs/modalg_5/bug25292_12
tests/bugs/modalg_5/bug25292_31
tests/bugs/modalg_5/bug25292_32
tests/bugs/modalg_5/bug25319_1
tests/bugs/modalg_5/bug25319_2
tests/bugs/modalg_5/bug25337_1
tests/bugs/modalg_5/bug25337_2
tests/bugs/modalg_5/bug25450_1
tests/bugs/modalg_5/bug25450_2
tests/bugs/modalg_5/bug25614_common
tests/bugs/modalg_5/bug25614_cut
tests/bugs/modalg_5/bug25614_cut21
tests/bugs/modalg_5/bug25625
tests/bugs/modalg_5/bug25721
tests/bugs/modalg_6/bug25937_2
tests/bugs/modalg_6/bug26224
tests/bugs/modalg_6/bug26565_1 [new file with mode: 0644]
tests/bugs/modalg_6/bug26565_2 [new file with mode: 0644]
tests/bugs/modalg_6/bug26565_3 [new file with mode: 0644]
tests/bugs/modalg_6/bug26565_4 [new file with mode: 0644]
tests/bugs/modalg_6/bug26565_5 [new file with mode: 0644]
tests/bugs/modalg_6/bug26565_6 [new file with mode: 0644]
tests/bugs/modalg_6/bug26565_7 [new file with mode: 0644]
tests/bugs/modalg_6/bug26565_8 [new file with mode: 0644]
tests/bugs/modalg_6/bug26582
tests/bugs/modalg_6/bug26718 [new file with mode: 0644]
tests/bugs/modalg_6/bug26980 [new file with mode: 0644]
tests/bugs/moddata_3/bug23738
tests/bugs/moddata_3/bug24108
tests/bugs/moddata_3/bug24108_2