From: jfa Date: Fri, 10 Feb 2023 14:38:14 +0000 (+0000) Subject: [bos #33060] EDF 26527 - remove extra-edges doesn't work X-Git-Tag: V9_11_0a1~8 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=63e04ef7a7d83e52fc010bf95f88a9ce1d8aeebc;p=modules%2Fgeom.git [bos #33060] EDF 26527 - remove extra-edges doesn't work --- diff --git a/src/BlockFix/BlockFix_UnionFaces.cxx b/src/BlockFix/BlockFix_UnionFaces.cxx index 15ed9da9b..294deb224 100644 --- a/src/BlockFix/BlockFix_UnionFaces.cxx +++ b/src/BlockFix/BlockFix_UnionFaces.cxx @@ -91,6 +91,7 @@ #include #include +#include #include #include #include @@ -814,6 +815,13 @@ bool getCylinder (Handle(Geom_Surface)& theInSurface, gp_Cylinder& theOutCylinde Handle(Geom_SurfaceOfRevolution) aRS = Handle(Geom_SurfaceOfRevolution)::DownCast(theInSurface); Handle(Geom_Curve) aBasis = aRS->BasisCurve(); + + while (aBasis->IsKind(STANDARD_TYPE(Geom_TrimmedCurve))) { + Handle(Geom_TrimmedCurve) aTc = + Handle(Geom_TrimmedCurve)::DownCast(aBasis); + aBasis = aTc->BasisCurve(); + } + if (aBasis->IsKind(STANDARD_TYPE(Geom_Line))) { Handle(Geom_Line) aBasisLine = Handle(Geom_Line)::DownCast(aBasis); gp_Dir aDir = aRS->Direction(); @@ -833,6 +841,13 @@ bool getCylinder (Handle(Geom_Surface)& theInSurface, gp_Cylinder& theOutCylinde Handle(Geom_SurfaceOfLinearExtrusion) aLES = Handle(Geom_SurfaceOfLinearExtrusion)::DownCast(theInSurface); Handle(Geom_Curve) aBasis = aLES->BasisCurve(); + + while (aBasis->IsKind(STANDARD_TYPE(Geom_TrimmedCurve))) { + Handle(Geom_TrimmedCurve) aTc = + Handle(Geom_TrimmedCurve)::DownCast(aBasis); + aBasis = aTc->BasisCurve(); + } + if (aBasis->IsKind(STANDARD_TYPE(Geom_Circle))) { Handle(Geom_Circle) aBasisCircle = Handle(Geom_Circle)::DownCast(aBasis); gp_Dir aDir = aLES->Direction();