1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-06-05 11:24:17 +03:00

0024851: Extra vertex is in the result of Boolean Fuse Operation

class IntTools_FaceFace
   - statc function:
void CorrectSurfaceBoundaries(const TopoDS_Face&  theFace,
                              const Standard_Real theTolerance,
                              Standard_Real&      theumin,
                              Standard_Real&      theumax,
                              Standard_Real&      thevmin,
                              Standard_Real&      thevmax)
The faces based on cylidrical surface has been added to the list of candidates to extend the boundaries

Test case for issue CR24851
This commit is contained in:
pkv 2014-04-17 16:22:10 +04:00 committed by apn
parent f18ccc8cd6
commit c002793be1
2 changed files with 37 additions and 9 deletions

View File

@ -519,7 +519,7 @@ static Standard_Boolean isTreatAnalityc(const TopoDS_Face& theF1,
//function : Perform //function : Perform
//purpose : intersect surfaces of the faces //purpose : intersect surfaces of the faces
//======================================================================= //=======================================================================
void IntTools_FaceFace::Perform(const TopoDS_Face& aF1, void IntTools_FaceFace::Perform(const TopoDS_Face& aF1,
const TopoDS_Face& aF2) const TopoDS_Face& aF2)
{ {
Standard_Boolean RestrictLine = Standard_False, hasCone = Standard_False; Standard_Boolean RestrictLine = Standard_False, hasCone = Standard_False;
@ -2616,7 +2616,7 @@ Handle(Geom2d_BSplineCurve) MakeBSpline2d(const Handle(IntPatch_WLine)& theWLine
//function : CorrectSurfaceBoundaries //function : CorrectSurfaceBoundaries
//purpose : //purpose :
//======================================================================= //=======================================================================
void CorrectSurfaceBoundaries(const TopoDS_Face& theFace, void CorrectSurfaceBoundaries(const TopoDS_Face& theFace,
const Standard_Real theTolerance, const Standard_Real theTolerance,
Standard_Real& theumin, Standard_Real& theumin,
Standard_Real& theumax, Standard_Real& theumax,
@ -2662,7 +2662,8 @@ Handle(Geom2d_BSplineCurve) MakeBSpline2d(const Handle(IntPatch_WLine)& theWLine
if((aType==GeomAbs_BezierSurface) || if((aType==GeomAbs_BezierSurface) ||
(aType==GeomAbs_BSplineSurface) || (aType==GeomAbs_BSplineSurface) ||
(aType==GeomAbs_SurfaceOfExtrusion) || (aType==GeomAbs_SurfaceOfExtrusion) ||
(aType==GeomAbs_SurfaceOfRevolution)) { (aType==GeomAbs_SurfaceOfRevolution) ||
(aType==GeomAbs_Cylinder)) {
enlarge=Standard_True; enlarge=Standard_True;
} }
// //

View File

@ -0,0 +1,27 @@
puts "============"
puts "OCC24851"
puts "============"
puts ""
######################################################
# Extra vertex is in the result of Boolean Fuse Operation
######################################################
restore [locate_data_file bug24851_q_b1_1.brep] b1
restore [locate_data_file bug24851_fz712.brep] b2
bop b1 b2
bopfuse result
set square 9.56837e-05
set nb_v_good 6
set nb_e_good 8
set nb_w_good 2
set nb_f_good 2
set nb_sh_good 2
set nb_sol_good 0
set nb_compsol_good 0
set nb_compound_good 1
set nb_shape_good 21
set 2dviewer 1