0031430: Offset surfaces on C1 surfaces (with multiplicity equal to degree) may still...
authorRoman Lygin <roman.lygin@cadexchanger.com>
Sat, 14 Mar 2020 10:49:17 +0000 (13:49 +0300)
committerbugmaster <bugmaster@opencascade.com>
Wed, 18 Mar 2020 16:38:12 +0000 (19:38 +0300)
In constructor of Geom_RectangularTrimmedSurface, skip check if an offset surface has insufficient continuity. The reason is that this surface has already passed the check once created. So, here we must not apply more strict check than that first time.

src/Geom/Geom_RectangularTrimmedSurface.cxx
tests/bugs/modalg_7/bug31430 [new file with mode: 0644]

index e7ff92f..69bb5b3 100644 (file)
@@ -118,7 +118,7 @@ const Standard_Boolean          VSense)
   {
     Handle(Geom_RectangularTrimmedSurface) S2 = 
            new Geom_RectangularTrimmedSurface( O->BasisSurface(),U1,U2, V1, V2, USense, VSense);
-    basisSurf = new Geom_OffsetSurface(S2, O->Offset());
+    basisSurf = new Geom_OffsetSurface(S2, O->Offset(), Standard_True);
   }  
 
   SetTrim( U1, U2, V1, V2, USense, VSense);
@@ -153,7 +153,7 @@ Geom_RectangularTrimmedSurface::Geom_RectangularTrimmedSurface (
   {
     Handle(Geom_RectangularTrimmedSurface) S2 = 
            new Geom_RectangularTrimmedSurface( O->BasisSurface(),Param1,Param2, UTrim, Sense);
-    basisSurf = new Geom_OffsetSurface(S2, O->Offset());
+    basisSurf = new Geom_OffsetSurface(S2, O->Offset(), Standard_True);
   }  
 
   SetTrim(Param1, Param2, UTrim, Sense);
diff --git a/tests/bugs/modalg_7/bug31430 b/tests/bugs/modalg_7/bug31430
new file mode 100644 (file)
index 0000000..0a1c7e2
--- /dev/null
@@ -0,0 +1,10 @@
+puts "========"
+puts "0031430: Modeling Data - Offset surfaces on C1 surfaces (with multiplicity equal to degree) may still throw ex-ception"
+puts "========"
+puts ""
+
+restore [locate_data_file bug31430.brep] s
+fixshape r s
+
+checkshape r
+checknbshapes r -vertex 6 -edge 8 -wire 6 -face 4 -shell 1 -solid 1