0025002: Wrong result done by Boolean Operation algorithm

class IntTools_FaceFace
method
  static Standard_Boolean DecompositionOfWLine(const Handle(IntPatch_WLine)& theWLine,
                                      const Handle(GeomAdaptor_HSurface)&            theSurface1,
                                      const Handle(GeomAdaptor_HSurface)&            theSurface2,
                                      const TopoDS_Face&                             theFace1,
                                      const TopoDS_Face&                             theFace2,
                                      const IntTools_LineConstructor&                theLConstructor,
                                      const Standard_Boolean                         theAvoidLConstructor,
                                      IntPatch_SequenceOfLine&                       theNewLines,
                                      Standard_Real&                                 theReachedTol3d,
                                      const Handle(IntTools_Context)& aContext)

Correct treatment of WLines with only one point before or after the boundary point.

Test case for issue CR25002
This commit is contained in:
emv
2014-06-26 13:03:35 +04:00
committed by apn
parent 75c5def578
commit b1574471ff
2 changed files with 82 additions and 33 deletions
+37
View File
@@ -0,0 +1,37 @@
puts "============"
puts "OCC25002"
puts "============"
puts ""
#######################################################################
# Wrong result done by Boolean Operation algorithm
#######################################################################
restore [locate_data_file bug25002_pl1.brep] b1
restore [locate_data_file bug25002_selected_holes.brep] b2
bop b1 b2
bopcut r
bopsection result
regexp {nb alone Vertices : +([-0-9.+eE]+)} [checksection result] full nb_alone_Vertices
if { ${nb_alone_Vertices} == 0 } {
puts "OK: Good result done by Boolean Operation algorithm"
} else {
puts "Error: Wrong result done by Boolean Operation algorithm"
}
set length 67.3503
set nb_v_good 1128
set nb_e_good 1128
set nb_w_good 0
set nb_f_good 0
set nb_sh_good 0
set nb_sol_good 0
set nb_compsol_good 0
set nb_compound_good 1
set nb_shape_good 2257
set 2dviewer 1