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:
@@ -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;
|
||||
|
Reference in New Issue
Block a user