From: jfa Date: Fri, 21 Apr 2023 09:40:49 +0000 (+0100) Subject: OCCT integration request 33328 X-Git-Tag: SALOME_9_13_V7_8_0~15 X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=d1c95bea0213158f5e0067ef1aad5602e98affb2;p=occt.git OCCT integration request 33328 --- diff --git a/src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx b/src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx index e17fefa111..6c80bf964d 100644 --- a/src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx +++ b/src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx @@ -1228,6 +1228,13 @@ static Standard_Boolean getCylinder(Handle(Geom_Surface)& theInSurface, 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(); @@ -1247,6 +1254,13 @@ static Standard_Boolean getCylinder(Handle(Geom_Surface)& theInSurface, 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();