1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0030174: ShapeUpgrade_UnifySameDomain does not unify cylindrical faces

Hotfix for issue 27271 (avoiding potential seam edges) is deleted.

Correction of test case
This commit is contained in:
jgv
2018-10-25 16:30:56 +03:00
committed by bugmaster
parent e28b8c6218
commit 9619ef4c94
26 changed files with 75 additions and 86 deletions

View File

@@ -88,43 +88,6 @@ struct SubSequenceOfEdges
TopoDS_Edge UnionEdges;
};
static Standard_Boolean IsLikeSeam(const TopoDS_Edge& anEdge,
const TopoDS_Face& aFace,
const Handle(Geom_Surface)& aBaseSurface)
{
if (!aBaseSurface->IsUPeriodic() && !aBaseSurface->IsVPeriodic())
return Standard_False;
BRepAdaptor_Curve2d BAcurve2d(anEdge, aFace);
gp_Pnt2d FirstPoint, LastPoint;
gp_Vec2d FirstDir, LastDir;
BAcurve2d.D1(BAcurve2d.FirstParameter(), FirstPoint, FirstDir);
BAcurve2d.D1(BAcurve2d.LastParameter(), LastPoint, LastDir);
Standard_Real Length = FirstDir.Magnitude();
if (Length <= gp::Resolution())
return Standard_False;
else
FirstDir /= Length;
Length = LastDir.Magnitude();
if (Length <= gp::Resolution())
return Standard_False;
else
LastDir /= Length;
Standard_Real Tol = 1.e-7;
if (aBaseSurface->IsUPeriodic() &&
(Abs(FirstDir.X()) < Tol) &&
(Abs(LastDir.X()) < Tol))
return Standard_True;
if (aBaseSurface->IsVPeriodic() &&
(Abs(FirstDir.Y()) < Tol) &&
(Abs(LastDir.Y()) < Tol))
return Standard_True;
return Standard_False;
}
//=======================================================================
//function : AddOrdinaryEdges
//purpose : auxilary
@@ -1395,10 +1358,6 @@ void ShapeUpgrade_UnifySameDomain::IntUnifyFaces(const TopoDS_Shape& theInpShape
//
if (IsSameDomain(aFace,anCheckedFace, myLinTol, myAngTol)) {
// hotfix for 27271: prevent merging along periodic direction.
if (IsLikeSeam(edge, anCheckedFace, aBaseSurface))
continue;
if (AddOrdinaryEdges(edges,anCheckedFace,dummy)) {
// sequence edges is modified
i = dummy;