0024958: Numerous ShapeFix_IntersectionTool code fixes
authorrazmyslovich <razmyslovich@volumegraphics.com>
Thu, 3 Jul 2014 13:13:17 +0000 (17:13 +0400)
committerapn <apn@opencascade.com>
Thu, 3 Jul 2014 13:14:36 +0000 (17:14 +0400)
Optimize periodic normalization.
not needed split edge, if one of parts is too small
Small corrections of test cases for issue CR24958_2

13 files changed:
src/Geom/Geom_BSplineSurface.cxx
src/ShapeFix/ShapeFix_IntersectionTool.cxx
tests/de/iges_1/L7 [changed mode: 0644->0755]
tests/de/iges_1/L8 [changed mode: 0644->0755]
tests/de/iges_1/P5
tests/de/iges_1/R8 [changed mode: 0644->0755]
tests/de/iges_2/A9 [changed mode: 0644->0755]
tests/de/iges_2/B6 [changed mode: 0644->0755]
tests/de/iges_2/G1 [changed mode: 0644->0755]
tests/de/iges_3/B2 [changed mode: 0644->0755]
tests/de/step_2/F4 [changed mode: 0644->0755]
tests/de/step_3/E6 [changed mode: 0644->0755]
tests/de/step_5/A1 [changed mode: 0644->0755]

index b619735..b50548a 100644 (file)
@@ -1331,12 +1331,14 @@ void Geom_BSplineSurface::PeriodicNormalization
     if(Period <= eps) 
       Standard_OutOfRange::Raise("Geom_BSplineSurface::PeriodicNormalization: Uparameter is too great number");
 
-    while (Uparameter > aMaxVal) {
-      Uparameter -= Period ;
-    }
-      
-    while (Uparameter < aMinVal) {
-      Uparameter +=  Period ;
+    Standard_Boolean isLess, isGreater;
+    isLess = aMinVal - Uparameter > 0;
+    isGreater = Uparameter - aMaxVal > 0;
+    if (isLess || isGreater) {
+      Standard_Real aDPar, aNbPer;
+      aDPar = (isLess) ? (aMaxVal - Uparameter) : (aMinVal - Uparameter);
+      modf(aDPar / Period, &aNbPer);
+      Uparameter += aNbPer * Period;
     }
   }
   if (vperiodic) {
@@ -1348,11 +1350,14 @@ void Geom_BSplineSurface::PeriodicNormalization
     if(Period <= eps) 
       Standard_OutOfRange::Raise("Geom_BSplineSurface::PeriodicNormalization: Vparameter is too great number");
 
-    while (Vparameter > aMaxVal) {
-      Vparameter -= Period ;
-    }
-    while (Vparameter < aMinVal) {
-      Vparameter +=  Period ;
+    Standard_Boolean isLess, isGreater;
+    isLess = aMinVal - Vparameter > 0;
+    isGreater = Vparameter - aMaxVal > 0;
+    if (isLess || isGreater) {
+      Standard_Real aDPar, aNbPer;
+      aDPar = (isLess) ? (aMaxVal - Vparameter) : (aMinVal - Vparameter);
+      modf(aDPar / Period, &aNbPer);
+      Vparameter += aNbPer * Period;
     }
   }
 }
index 57df2f5..7f366fd 100644 (file)
@@ -110,7 +110,7 @@ Standard_Boolean ShapeFix_IntersectionTool::SplitEdge(const TopoDS_Edge& edge,
   // check distanse between edge and new vertex
   gp_Pnt P1;
   TopLoc_Location L;
-  if(BRep_Tool::SameParameter(edge)) {
+  if(BRep_Tool::SameParameter(edge) && !BRep_Tool::Degenerated(edge)) {
     Standard_Real f,l;
     const Handle(Geom_Curve) c3d = BRep_Tool::Curve(edge,L,f,l);
     if(c3d.IsNull())
@@ -213,9 +213,11 @@ Standard_Boolean ShapeFix_IntersectionTool::CutEdge(const TopoDS_Edge &edge,
             iscutline = Standard_True;
           }
         }
+
+        return Standard_True;
       }
     }
-    return Standard_True;
+    return Standard_False;
   }
 
   // det-study on 03/12/01 checking the old and new ranges
@@ -427,6 +429,7 @@ Standard_Boolean ShapeFix_IntersectionTool::UnionVertexes(const Handle(ShapeExte
                                                           const Bnd_Box2d& B2) const
 {
   // union vertexes
+  Standard_Boolean res = Standard_False;
   ShapeBuild_Edge sbe;
   ShapeAnalysis_Edge sae;
   BRep_Builder B;
@@ -499,6 +502,7 @@ Standard_Boolean ShapeFix_IntersectionTool::UnionVertexes(const Handle(ShapeExte
         myContext->Replace(edge22,NewE);
         sewd->Set(NewE,num22);
       }
+      res = Standard_True;
     }
   }
   else if(d12<d21 && d12<d22) {
@@ -558,6 +562,7 @@ Standard_Boolean ShapeFix_IntersectionTool::UnionVertexes(const Handle(ShapeExte
         myContext->Replace(edge22,NewE);
         sewd->Set(NewE,num22);
       }
+      res = Standard_True;
     }
   }
   else if(d21<d22) {
@@ -616,6 +621,7 @@ Standard_Boolean ShapeFix_IntersectionTool::UnionVertexes(const Handle(ShapeExte
         myContext->Replace(edge22,NewE);
         sewd->Set(NewE,num22);
       }
+      res = Standard_True;
     }
   }
   else {
@@ -674,10 +680,11 @@ Standard_Boolean ShapeFix_IntersectionTool::UnionVertexes(const Handle(ShapeExte
         myContext->Replace(edge22,NewE);
         sewd->Set(NewE,num22);
       }
+      res = Standard_True;
     }
   }
 
-  return Standard_True;
+  return res;
 }
 
 
@@ -889,36 +896,26 @@ Standard_Boolean ShapeFix_IntersectionTool::FixSelfIntersectWire
             gp_Pnt PVL1 = BRep_Tool::Pnt(VL1);
             Standard_Real dist1 = pi1.Distance(PVF1);
             Standard_Real dist2 = pi1.Distance(PVL1);
-            if( dist1<dist2 && dist1<MaxTolVert ) {
-              tolV = Max( dist1*1.00001, BRep_Tool::Tolerance(VF1) );
-              B.UpdateVertex(VF1,tolV);
-              V = VF1;
-              //gp_Pnt Ptmp = BRep_Tool::Pnt(VF1);
-              //B.MakeVertex(V,Ptmp,tolV);
-              //myContext->Replace(VF1,V);
-              Standard_Real dista = Abs(a1-param1);
-              Standard_Real distb = Abs(b1-param1);
-              Standard_Boolean IsCutLine;
-              if(dista>distb)
-                CutEdge(edge1, a1, param1, face, IsCutLine);
-              else
-                CutEdge(edge1, b1, param1, face, IsCutLine);
-              NbCut++;
-              ModifE1 = Standard_True;
-            }
-            if( dist2<dist1 && dist2<MaxTolVert ) {
-              tolV = Max( dist2*1.00001, BRep_Tool::Tolerance(VL1) );
-              B.UpdateVertex(VL1,tolV);
-              V = VL1;
+            Standard_Real distmin = Min(dist1, dist2);
+            if( dist1 != dist2 && distmin < MaxTolVert ) {
+              if (dist1 < dist2) {
+                tolV = Max( dist1*1.00001, BRep_Tool::Tolerance(VF1) );
+                B.UpdateVertex(VF1,tolV);
+                V = VF1;
+              } else {
+                tolV = Max( dist2*1.00001, BRep_Tool::Tolerance(VL1) );
+                B.UpdateVertex(VL1,tolV);
+                V = VL1;
+              }
+              
               Standard_Real dista = Abs(a1-param1);
               Standard_Real distb = Abs(b1-param1);
               Standard_Boolean IsCutLine;
-              if(dista>distb)
-                CutEdge(edge1, a1, param1, face, IsCutLine);
-              else
-                CutEdge(edge1, b1, param1, face, IsCutLine);
-              NbCut++;
-              ModifE1 = Standard_True;
+              ModifE1 = CutEdge(edge1, (( dista > distb ) ? a1 : b1 ), param1, face, IsCutLine);
+              if (ModifE1)
+                NbCut++;
+              //not needed split edge, if one of parts is too small
+              ModifE1 = ModifE1 || distmin < Precision::Confusion();
             }
             // analysis for edge2
             Standard_Boolean ModifE2 = Standard_False;
@@ -928,33 +925,26 @@ Standard_Boolean ShapeFix_IntersectionTool::FixSelfIntersectWire
             gp_Pnt PVL2 = BRep_Tool::Pnt(VL2);
             dist1 = pi2.Distance(PVF2);
             dist2 = pi2.Distance(PVL2);
-            if( dist1<dist2 && dist1<MaxTolVert ) {
-              tolV = Max( dist1*1.00001, BRep_Tool::Tolerance(VF2) );
-              B.UpdateVertex(VF2,tolV);
-              V = VF2;
-              Standard_Real dista = Abs(a2-param2);
-              Standard_Real distb = Abs(b2-param2);
-              Standard_Boolean IsCutLine;
-              if(dista>distb)
-                CutEdge(edge2, a2, param2, face, IsCutLine);
-              else
-                CutEdge(edge2, b2, param2, face, IsCutLine);
-              NbCut++;
-              ModifE2 = Standard_True;
-            }
-            if( dist2<dist1 && dist2<MaxTolVert ) {
-              tolV = Max( dist2*1.00001, BRep_Tool::Tolerance(VL2) );
-              B.UpdateVertex(VL2,tolV);
-              V = VL2;
+            distmin = Min(dist1, dist2);
+            if( dist1 != dist2 && distmin < MaxTolVert ) {
+              if (dist1 < dist2) {
+                tolV = Max( dist1*1.00001, BRep_Tool::Tolerance(VF2) );
+                B.UpdateVertex(VF2,tolV);
+                V = VF2;
+              } else {
+                tolV = Max( dist2*1.00001, BRep_Tool::Tolerance(VL2) );
+                B.UpdateVertex(VL2,tolV);
+                V = VL2;
+              }
+
               Standard_Real dista = Abs(a2-param2);
               Standard_Real distb = Abs(b2-param2);
               Standard_Boolean IsCutLine;
-              if(dista>distb)
-                CutEdge(edge2, a2, param2, face, IsCutLine);
-              else
-                CutEdge(edge2, b2, param2, face, IsCutLine);
-              NbCut++;
-              ModifE2 = Standard_True;
+              ModifE2 = CutEdge(edge2, (( dista > distb ) ? a2 : b2 ), param2, face, IsCutLine);
+              if (ModifE2)
+                NbCut++;
+              //not needed split edge, if one of parts is too small
+              ModifE2 = ModifE2 || distmin < Precision::Confusion();
             }
             if( ModifE1 && !ModifE2 ) {
               if(SplitEdge1(sewd, face, num2, param2, V, tolV, boxes)) {
@@ -1087,8 +1077,8 @@ Standard_Boolean ShapeFix_IntersectionTool::FixSelfIntersectWire
               if(Abs(pend-p11)>Abs(pend-p12)) cut=p12;
               else cut=p11;
               Standard_Boolean IsCutLine;
-              CutEdge(edge1, pend, cut, face, IsCutLine);
-              NbCut++;
+              if (CutEdge(edge1, pend, cut, face, IsCutLine))
+                NbCut++;
               if(newtol>BRep_Tool::Tolerance(NewV)) {
                 B.UpdateVertex(NewV,newtol);
               }
@@ -1140,8 +1130,8 @@ Standard_Boolean ShapeFix_IntersectionTool::FixSelfIntersectWire
               if(Abs(pend-p21)>Abs(pend-p22)) cut=p22;
               else cut=p21;
               Standard_Boolean IsCutLine;
-              CutEdge(edge2, pend, cut, face, IsCutLine);
-              NbCut++;
+              if (CutEdge(edge2, pend, cut, face, IsCutLine))
+                NbCut++;
               if(newtol>BRep_Tool::Tolerance(NewV)) {
                 B.UpdateVertex(NewV,newtol);
               }
@@ -1952,11 +1942,11 @@ Standard_Boolean ShapeFix_IntersectionTool::FixIntersectingWires
     newface.Orientation(TopAbs_FORWARD);
     BRep_Builder B;
     Standard_Integer i=1;
-    for( ; i<=SeqWir.Length(); i++) { 
+    for(i=1  ; i<=SeqWir.Length(); i++) { 
       TopoDS_Wire wire = TopoDS::Wire(SeqWir.Value(i));
       B.Add(newface,wire);
     }
-    for( ; i<=SeqWir.Length(); i++) { 
+    for(i=1 ; i<=SeqNMShapes.Length(); i++) { 
       TopoDS_Shape aNMS = SeqNMShapes.Value(i);
       B.Add(newface,aNMS);
     }
old mode 100644 (file)
new mode 100755 (executable)
index 1453912..e24b5eb
@@ -8,10 +8,10 @@ set ref_data {
 DATA        : Faulties = 0  ( 0 )  Warnings = 0  ( 0 )  Summary  = 0  ( 0 )
 TPSTAT      : Faulties = 0  ( 0 )  Warnings = 20  ( 108 )  Summary  = 20  ( 108 )
 CHECKSHAPE  : Wires    = 0  ( 0 )  Faces    = 0  ( 0 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 113  ( 113 )   Summary  = 3114  ( 3112 )
-STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 113  ( 113 )   FreeWire = 4  ( 4 )   FreeEdge  = 175 ( 175 )   SharedEdge = 1357  ( 1357 )
-TOLERANCE   : MaxTol   =   0.4134968839  (   0.4134968924 )  AvgTol   =  0.006613958189  (  0.006657666307 )
-LABELS      : N0Labels = 278  ( 286 )  N1Labels = 4  ( 147 )  N2Labels = 0  ( 0 )   TotalLabels = 282  ( 433 )   NameLabels = 278  ( 286 )   ColorLabels = 268  ( 425 )   LayerLabels = 268  ( 425 )
+NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 115  ( 115 )   Summary  = 3126  ( 3122 )
+STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 115  ( 115 )   FreeWire = 4  ( 4 )   FreeEdge  = 175 ( 175 )   SharedEdge = 1361  ( 1361 )
+TOLERANCE   : MaxTol   =   0.4134968839  (   0.4134968924 )  AvgTol   =  0.006591901502  (  0.006635492146 )
+LABELS      : N0Labels = 278  ( 286 )  N1Labels = 6  ( 151 )  N2Labels = 0  ( 0 )   TotalLabels = 284  ( 437 )   NameLabels = 278  ( 286 )   ColorLabels = 270  ( 429 )   LayerLabels = 270  ( 429 )
 PROPS       : Centroid = 0  ( 0 )  Volume   = 0  ( 0 )  Area     = 0  ( 0 )
 NCOLORS     : NColors  = 1  ( 1 )
 COLORS      : Colors   = RED  ( RED )
old mode 100644 (file)
new mode 100755 (executable)
index 2437e43..06d010b
@@ -11,11 +11,11 @@ set filename PRO14319.igs
 
 set ref_data {
 DATA        : Faulties = 0  ( 0 )  Warnings = 0  ( 0 )  Summary  = 0  ( 0 )
-TPSTAT      : Faulties = 0  ( 0 )  Warnings = 6  ( 64 )  Summary  = 6  ( 64 )
-CHECKSHAPE  : Wires    = 21  ( 6 )  Faces    = 1  ( 1 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 61  ( 61 )   Summary  = 7773  ( 7802 )
-STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 61  ( 61 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 3864  ( 3865 )
-TOLERANCE   : MaxTol   =   0.3140268251  (   0.3140268243 )  AvgTol   =  0.001161767154  (  0.0004883627047 )
+TPSTAT      : Faulties = 0  ( 0 )  Warnings = 4  ( 64 )  Summary  = 4  ( 64 )
+CHECKSHAPE  : Wires    = 20  ( 6 )  Faces    = 1  ( 1 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
+NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 61  ( 61 )   Summary  = 7723  ( 7802 )
+STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 61  ( 61 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 3831  ( 3865 )
+TOLERANCE   : MaxTol   =   0.3140268251  (   0.3140268243 )  AvgTol   =  0.0009752510066  (  0.000488212708 )
 LABELS      : N0Labels = 61  ( 61 )  N1Labels = 0  ( 1050 )  N2Labels = 0  ( 0 )   TotalLabels = 61  ( 1111 )   NameLabels = 61  ( 61 )   ColorLabels = 61  ( 1111 )   LayerLabels = 0  ( 0 )
 PROPS       : Centroid = 0  ( 0 )  Volume   = 0  ( 0 )  Area     = 0  ( 0 )
 NCOLORS     : NColors  = 3  ( 3 )
index 393312d..75244ec 100755 (executable)
@@ -9,12 +9,12 @@ set filename brazo1.igs
 
 set ref_data {
 DATA        : Faulties = 0  ( 2 )  Warnings = 0  ( 0 )  Summary  = 0  ( 2 )
-TPSTAT      : Faulties = 0  ( 0 )  Warnings = 139  ( 454 )  Summary  = 139  ( 454 )
-CHECKSHAPE  : Wires    = 6  ( 8 )  Faces    = 6  ( 8 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 223  ( 223 )   Summary  = 4647  ( 4551 )
-STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 223  ( 223 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 2125  ( 2071 )
-TOLERANCE   : MaxTol   =    0.991254355  (    0.991254355 )  AvgTol   =   0.01133191355  (   0.01225911215 )
-LABELS      : N0Labels = 223  ( 223 )  N1Labels = 0  ( 256 )  N2Labels = 0  ( 0 )   TotalLabels = 223  ( 479 )   NameLabels = 223  ( 388 )   ColorLabels = 223  ( 479 )   LayerLabels = 223  ( 479 )
+TPSTAT      : Faulties = 0  ( 0 )  Warnings = 144  ( 455 )  Summary  = 144  ( 455 )
+CHECKSHAPE  : Wires    = 5  ( 7 )  Faces    = 6  ( 7 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
+NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 228  ( 228 )   Summary  = 4666  ( 4567 )
+STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 228  ( 228 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 2127  ( 2073 )
+TOLERANCE   : MaxTol   =    0.991254355  (    0.991254355 )  AvgTol   =    0.0113074551  (   0.01224298461 )
+LABELS      : N0Labels = 223  ( 223 )  N1Labels = 6  ( 301 )  N2Labels = 0  ( 0 )   TotalLabels = 229  ( 524 )   NameLabels = 223  ( 387 )   ColorLabels = 228  ( 524 )   LayerLabels = 228  ( 524 )
 PROPS       : Centroid = 0  ( 0 )  Volume   = 0  ( 0 )  Area     = 0  ( 0 )
 NCOLORS     : NColors  = 3  ( 3 )
 COLORS      : Colors   = BLUE1 MAGENTA1 YELLOW  ( BLUE1 MAGENTA1 YELLOW )
old mode 100644 (file)
new mode 100755 (executable)
index cd01ca8..c3c3de8
@@ -10,11 +10,11 @@ set filename BUC60743.igs
 set ref_data {
 DATA        : Faulties = 0  ( 2 )  Warnings = 0  ( 0 )  Summary  = 0  ( 2 )
 TPSTAT      : Faulties = 3  ( 59 )  Warnings = 2203  ( 4655 )  Summary  = 2206  ( 4714 )
-CHECKSHAPE  : Wires    = 8  ( 17 )  Faces    = 6  ( 11 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 3349  ( 2837 )   Summary  = 45817  ( 39081 )
-STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 3349  ( 3349 )   FreeWire = 6  ( 6 )   FreeEdge  = 67 ( 67 )   SharedEdge = 19532  ( 16688 )
-TOLERANCE   : MaxTol   =    4.854604894  (    5.769095076 )  AvgTol   =   0.01656950421  (   0.01735270218 )
-LABELS      : N0Labels = 11  ( 11 )  N1Labels = 2891  ( 6257 )  N2Labels = 0  ( 0 )   TotalLabels = 2902  ( 6268 )   NameLabels = 2900  ( 5879 )   ColorLabels = 2891  ( 6257 )   LayerLabels = 2411  ( 5261 )
+CHECKSHAPE  : Wires    = 8  ( 16 )  Faces    = 6  ( 11 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
+NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 3349  ( 2837 )   Summary  = 45818  ( 39080 )
+STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 3349  ( 3349 )   FreeWire = 6  ( 6 )   FreeEdge  = 67 ( 67 )   SharedEdge = 19533  ( 16687 )
+TOLERANCE   : MaxTol   =    4.854604894  (    5.769095076 )  AvgTol   =   0.01656873153  (   0.01730055221 )
+LABELS      : N0Labels = 11  ( 11 )  N1Labels = 2891  ( 6256 )  N2Labels = 0  ( 0 )   TotalLabels = 2902  ( 6267 )   NameLabels = 2900  ( 5879 )   ColorLabels = 2891  ( 6256 )   LayerLabels = 2411  ( 5261 )
 PROPS       : Centroid = 0  ( 0 )  Volume   = 0  ( 0 )  Area     = 0  ( 0 )
 NCOLORS     : NColors  = 4  ( 4 )
 COLORS      : Colors   = BLACK BLUE1 RED YELLOW  ( BLACK BLUE1 RED YELLOW )
old mode 100644 (file)
new mode 100755 (executable)
index fb85ee0..9421167
@@ -12,10 +12,10 @@ set filename Amino_172448-65210.igs
 set ref_data {
 DATA        : Faulties = 0  ( 0 )  Warnings = 0  ( 0 )  Summary  = 0  ( 0 )
 TPSTAT      : Faulties = 0  ( 0 )  Warnings = 56  ( 12 )  Summary  = 56  ( 12 )
-CHECKSHAPE  : Wires    = 0  ( 2 )  Faces    = 0  ( 2 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 2346  ( 1107 )   Summary  = 59781  ( 25971 )
+CHECKSHAPE  : Wires    = 0  ( 1 )  Faces    = 0  ( 1 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
+NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 2346  ( 1106 )   Summary  = 59781  ( 25969 )
 STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 2346  ( 2342 )   FreeWire = 2328  ( 2328 )   FreeEdge  = 14016 ( 14016 )   SharedEdge = 24556  ( 10687 )
-TOLERANCE   : MaxTol   =   0.9711309065  (   0.9711309063 )  AvgTol   =   0.01916076927  (   0.01948753951 )
+TOLERANCE   : MaxTol   =   0.9711309062  (   0.9711309063 )  AvgTol   =   0.01916076754  (   0.01948753951 )
 LABELS      : N0Labels = 250  ( 250 )  N1Labels = 2268  ( 3205 )  N2Labels = 0  ( 0 )   TotalLabels = 2518  ( 3455 )   NameLabels = 2518  ( 3453 )   ColorLabels = 2512  ( 3449 )   LayerLabels = 0  ( 0 )
 PROPS       : Centroid = 0  ( 0 )  Volume   = 0  ( 0 )  Area     = 0  ( 0 )
 NCOLORS     : NColors  = 4  ( 4 )
old mode 100644 (file)
new mode 100755 (executable)
index c592596..c41f7cd
@@ -1,16 +1,13 @@
 # !!!! This file is generated automatically, do not edit manually! See end script
-puts "TODO CR23096 ALL: STATSHAPE : Faulty" 
-
-
 set filename D44-11325-6a.igs
 
 set ref_data {
 DATA        : Faulties = 0  ( 0 )  Warnings = 0  ( 0 )  Summary  = 0  ( 0 )
-TPSTAT      : Faulties = 0  ( 0 )  Warnings = 89  ( 191 )  Summary  = 89  ( 191 )
+TPSTAT      : Faulties = 0  ( 0 )  Warnings = 88  ( 191 )  Summary  = 88  ( 191 )
 CHECKSHAPE  : Wires    = 2  ( 2 )  Faces    = 2  ( 2 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 570  ( 569 )   Summary  = 7841  ( 7830 )
-STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 570  ( 569 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 3350  ( 3346 )
-TOLERANCE   : MaxTol   =   0.7161069967  (   0.7585238415 )  AvgTol   =  0.006769962916  (  0.006912830833 )
+NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 569  ( 569 )   Summary  = 7842  ( 7836 )
+STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 569  ( 569 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 3353  ( 3350 )
+TOLERANCE   : MaxTol   =   0.7161069967  (   0.7585238415 )  AvgTol   =  0.006717667602  (  0.006937200018 )
 LABELS      : N0Labels = 568  ( 568 )  N1Labels = 2  ( 2 )  N2Labels = 0  ( 0 )   TotalLabels = 570  ( 570 )   NameLabels = 568  ( 568 )   ColorLabels = 569  ( 569 )   LayerLabels = 569  ( 569 )
 PROPS       : Centroid = 0  ( 0 )  Volume   = 0  ( 0 )  Area     = 0  ( 0 )
 NCOLORS     : NColors  = 1  ( 1 )
old mode 100644 (file)
new mode 100755 (executable)
index 0047196..8e96c58
@@ -14,11 +14,11 @@ set filename Henri.igs
 
 set ref_data {
 DATA        : Faulties = 0  ( 0 )  Warnings = 0  ( 0 )  Summary  = 0  ( 0 )
-TPSTAT      : Faulties = 0  ( 0 )  Warnings = 65  ( 41 )  Summary  = 65  ( 41 )
-CHECKSHAPE  : Wires    = 8  ( 6 )  Faces    = 8  ( 6 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 3592  ( 2318 )   Summary  = 112063  ( 71748 )
+TPSTAT      : Faulties = 0  ( 0 )  Warnings = 69  ( 41 )  Summary  = 69  ( 41 )
+CHECKSHAPE  : Wires    = 8  ( 2 )  Faces    = 8  ( 2 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
+NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 3592  ( 2312 )   Summary  = 112063  ( 71736 )
 STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 3592  ( 3592 )   FreeWire = 4024  ( 4024 )   FreeEdge  = 28849 ( 28849 )   SharedEdge = 44966  ( 28775 )
-TOLERANCE   : MaxTol   =   0.9133008153  (   0.9133008813 )  AvgTol   =  0.005629101951  (  0.005904201197 )
+TOLERANCE   : MaxTol   =   0.9133007093  (   0.9133008813 )  AvgTol   =  0.005629101888  (  0.005904201197 )
 LABELS      : N0Labels = 24  ( 24 )  N1Labels = 5153  ( 6559 )  N2Labels = 0  ( 0 )   TotalLabels = 5177  ( 6583 )   NameLabels = 5177  ( 6583 )   ColorLabels = 5153  ( 6559 )   LayerLabels = 0  ( 0 )
 PROPS       : Centroid = 0  ( 0 )  Volume   = 0  ( 0 )  Area     = 0  ( 0 )
 NCOLORS     : NColors  = 6  ( 6 )
old mode 100644 (file)
new mode 100755 (executable)
index 4840ca1..73b6925
@@ -1,6 +1,5 @@
 # !!!! This file is generated automatically, do not edit manually! See end script
 puts "TODO CR23096 ALL: CHECKSHAPE : Faulty" 
-puts "TODO CR23096 ALL: STATSHAPE : Faulty" 
 puts "TODO CR23096 ALL: TOLERANCE : Faulty" 
 puts "TODO CR23096 ALL: LABELS : Faulty" 
 
@@ -12,11 +11,11 @@ set filename 1stpunch-mcsrfs.igs
 
 set ref_data {
 DATA        : Faulties = 0  ( 0 )  Warnings = 0  ( 1 )  Summary  = 0  ( 1 )
-TPSTAT      : Faulties = 0  ( 0 )  Warnings = 885  ( 1951 )  Summary  = 885  ( 1951 )
-CHECKSHAPE  : Wires    = 7  ( 5 )  Faces    = 4  ( 3 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 1229  ( 1223 )   Summary  = 68993  ( 68973 )
-STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 1229  ( 1223 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 33281  ( 33277 )
-TOLERANCE   : MaxTol   = 0.002714431471  ( 0.001436622896 )  AvgTol   =  1.633540416e-006  (  9.67254763e-006 )
+TPSTAT      : Faulties = 0  ( 0 )  Warnings = 884  ( 1951 )  Summary  = 884  ( 1951 )
+CHECKSHAPE  : Wires    = 6  ( 5 )  Faces    = 3  ( 3 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
+NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 1223  ( 1223 )   Summary  = 68995  ( 68974 )
+STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 1223  ( 1223 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 33289  ( 33278 )
+TOLERANCE   : MaxTol   = 0.002714431471  ( 0.001436622896 )  AvgTol   =  1.636419273e-06  (  9.672557351e-06 )
 LABELS      : N0Labels = 1215  ( 1215 )  N1Labels = 0  ( 0 )  N2Labels = 0  ( 0 )   TotalLabels = 1215  ( 1215 )   NameLabels = 1215  ( 1215 )   ColorLabels = 0  ( 0 )   LayerLabels = 1207  ( 1215 )
 PROPS       : Centroid = 0  ( 0 )  Volume   = 0  ( 0 )  Area     = 0  ( 0 )
 NCOLORS     : NColors  = 0  ( 0 )
old mode 100644 (file)
new mode 100755 (executable)
index 9e772cb..f63ad91
@@ -15,10 +15,10 @@ set ref_data {
 DATA        : Faulties = 0  ( 0 )  Warnings = 0  ( 0 )  Summary  = 0  ( 0 )
 TPSTAT      : Faulties = 0  ( 0 )  Warnings = 4  ( 1 )  Summary  = 4  ( 1 )
 CHECKSHAPE  : Wires    = 1  ( 0 )  Faces    = 1  ( 0 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 2  ( 1 )  Face     = 56  ( 54 )   Summary  = 329  ( 314 )
-STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 2  ( 1 )  Face     = 56  ( 54 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 137  ( 130 )
-TOLERANCE   : MaxTol   =    43.63397625  ( 0.004765335881 )  AvgTol   =     1.059548993  (  0.0005744934329 )
-LABELS      : N0Labels = 1  ( 1 )  N1Labels = 52  ( 54 )  N2Labels = 0  ( 0 )   TotalLabels = 53  ( 55 )   NameLabels = 1  ( 1 )   ColorLabels = 0  ( 0 )   LayerLabels = 52  ( 54 )
+NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 1  ( 1 )  Face     = 55  ( 54 )   Summary  = 329  ( 314 )
+STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 1  ( 1 )  Face     = 55  ( 54 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 139  ( 130 )
+TOLERANCE   : MaxTol   =    43.63397635  ( 0.004765335881 )  AvgTol   =    0.9413185963  (  0.0005744934329 )
+LABELS      : N0Labels = 1  ( 1 )  N1Labels = 53  ( 54 )  N2Labels = 0  ( 0 )   TotalLabels = 54  ( 55 )   NameLabels = 1  ( 1 )   ColorLabels = 0  ( 0 )   LayerLabels = 53  ( 54 )
 PROPS       : Centroid = 0  ( 0 )  Volume   = 0  ( 0 )  Area     = 0  ( 0 )
 NCOLORS     : NColors  = 0  ( 0 )
 COLORS      : Colors   =   (  )
old mode 100644 (file)
new mode 100755 (executable)
index fe6f051..2e221c3
@@ -3,18 +3,19 @@ puts "TODO CR23096 ALL: TPSTAT : Faulty"
 puts "TODO CR23096 ALL: STATSHAPE : Faulty" 
 puts "TODO CR23096 ALL: TOLERANCE : Faulty" 
 
-puts "TODO DEBUG_CR24543 ALL: Error: ShapeFix_ComposeShell::MakeFacesOnPatch: can't dispatch wires"
+
+puts "TODO CR23096 Mandriva2010: Error : 3 differences with reference data found :" 
 
 set LinuxDiff 3
 set filename Z8M6SAT.stp
 
 set ref_data {
 DATA        : Faulties = 0  ( 0 )  Warnings = 0  ( 0 )  Summary  = 0  ( 0 )
-TPSTAT      : Faulties = 3  ( 0 )  Warnings = 965  ( 3166 )  Summary  = 968  ( 3166 )
-CHECKSHAPE  : Wires    = 49  ( 50 )  Faces    = 47  ( 49 )  Shells   = 0  ( 7 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 28  ( 28 )  Shell    = 775  ( 40 )  Face     = 3250  ( 3249 )   Summary  = 29514  ( 28718 )
-STATSHAPE   : Solid    = 28  ( 28 )  Shell    = 775  ( 40 )  Face     = 3250  ( 3249 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 12663  ( 12613 )
-TOLERANCE   : MaxTol   =    40.73070494  (    20.46526799 )  AvgTol   =   0.03482256518  (   0.03252524959 )
+TPSTAT      : Faulties = 9  ( 0 )  Warnings = 960  ( 3166 )  Summary  = 969  ( 3166 )
+CHECKSHAPE  : Wires    = 50  ( 50 )  Faces    = 47  ( 49 )  Shells   = 0  ( 7 )   Solids   = 0 ( 0 )
+NBSHAPES    : Solid    = 28  ( 28 )  Shell    = 775  ( 40 )  Face     = 3250  ( 3249 )   Summary  = 29553  ( 28754 )
+STATSHAPE   : Solid    = 28  ( 28 )  Shell    = 775  ( 40 )  Face     = 3250  ( 3249 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 12684  ( 12634 )
+TOLERANCE   : MaxTol   =    40.73070494  (    20.46526799 )  AvgTol   =   0.03132501361  (   0.03803587642 )
 LABELS      : N0Labels = 3  ( 3 )  N1Labels = 2  ( 2 )  N2Labels = 0  ( 0 )   TotalLabels = 5  ( 5 )   NameLabels = 5  ( 5 )   ColorLabels = 0  ( 0 )   LayerLabels = 0  ( 0 )
 PROPS       : Centroid = 0  ( 0 )  Volume   = 0  ( 0 )  Area     = 0  ( 0 )
 NCOLORS     : NColors  = 0  ( 0 )
old mode 100644 (file)
new mode 100755 (executable)
index d16d8a6..e357f21
@@ -8,9 +8,9 @@ set ref_data {
 DATA        : Faulties = 0  ( 0 )  Warnings = 0  ( 0 )  Summary  = 0  ( 0 )
 TPSTAT      : Faulties = 0  ( 0 )  Warnings = 114  ( 619 )  Summary  = 114  ( 619 )
 CHECKSHAPE  : Wires    = 16  ( 17 )  Faces    = 18  ( 19 )  Shells   = 1  ( 1 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 22  ( 22 )  Shell    = 24  ( 24 )  Face     = 1520  ( 1520 )   Summary  = 11217  ( 11206 )
-STATSHAPE   : Solid    = 22  ( 22 )  Shell    = 24  ( 24 )  Face     = 1520  ( 1520 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 4788  ( 4781 )
-TOLERANCE   : MaxTol   =     7.33063502  (    7.159520237 )  AvgTol   =   0.03499829069  (   0.03222638333 )
+NBSHAPES    : Solid    = 22  ( 22 )  Shell    = 24  ( 24 )  Face     = 1520  ( 1520 )   Summary  = 11223  ( 11206 )
+STATSHAPE   : Solid    = 22  ( 22 )  Shell    = 24  ( 24 )  Face     = 1520  ( 1520 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 4792  ( 4781 )
+TOLERANCE   : MaxTol   =    12.54913924  (    7.159520237 )  AvgTol   =   0.04169462776  (   0.03222638333 )
 LABELS      : N0Labels = 25  ( 25 )  N1Labels = 23  ( 23 )  N2Labels = 0  ( 0 )   TotalLabels = 48  ( 48 )   NameLabels = 48  ( 48 )   ColorLabels = 0  ( 0 )   LayerLabels = 0  ( 0 )
 PROPS       : Centroid = 0  ( 0 )  Volume   = 0  ( 0 )  Area     = 0  ( 0 )
 NCOLORS     : NColors  = 0  ( 0 )