From 71797c62f1b97d16c9cd172d2bab69348944c9f0 Mon Sep 17 00:00:00 2001 From: emv Date: Thu, 6 Jun 2013 12:16:38 +0400 Subject: [PATCH] 0024016: Test case bugs moddata_2 bug324 works not correct after integration of the fix for the issue 0023985. Do not perform the check for the height of the cylinder (see issue 0023985) for infinite cylinders. --- src/IntPatch/IntPatch_ImpImpIntersection_2.gxx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/IntPatch/IntPatch_ImpImpIntersection_2.gxx b/src/IntPatch/IntPatch_ImpImpIntersection_2.gxx index ecf851f5dc..3984ca50d7 100755 --- a/src/IntPatch/IntPatch_ImpImpIntersection_2.gxx +++ b/src/IntPatch/IntPatch_ImpImpIntersection_2.gxx @@ -101,7 +101,12 @@ void IntPatch_ImpImpIntersection::Perform(const Handle(Adaptor3d_HSurface)& S1, case GeomAbs_Cylinder: { quad2.SetValue(S2->Cylinder()); - Standard_Real H = S1->LastVParameter() - S1->FirstVParameter(); + Standard_Real VMin, VMax, H; + // + VMin = S1->FirstVParameter(); + VMax = S1->LastVParameter(); + H = (Precision::IsNegativeInfinite(VMin) || + Precision::IsPositiveInfinite(VMax)) ? 0 : (VMax - VMin); if (!IntPCy(quad1,quad2,Tolang,TolTang,Standard_False,empt,slin,H)) { return; } @@ -158,7 +163,12 @@ void IntPatch_ImpImpIntersection::Perform(const Handle(Adaptor3d_HSurface)& S1, case GeomAbs_Plane: { quad2.SetValue(S2->Plane()); - Standard_Real H = S1->LastVParameter() - S1->FirstVParameter(); + Standard_Real VMin, VMax, H; + // + VMin = S1->FirstVParameter(); + VMax = S1->LastVParameter(); + H = (Precision::IsNegativeInfinite(VMin) || + Precision::IsPositiveInfinite(VMax)) ? 0 : (VMax - VMin); if (!IntPCy(quad1,quad2,Tolang,TolTang,Standard_True,empt,slin,H)) { return; }