0025950: Bad performance of intersection algorithm.
[occt.git] / tests / lowalgos / intss / begin
index 1c0cb8d..af6e07d 100644 (file)
@@ -47,4 +47,28 @@ proc CheckIntersectionResult {theSurf1 theSurf2 theListOfCurves theNbPoints theT
     xdistcs aCurve s1 U1 U2 $theNbPoints $theTolerS1
     xdistcs aCurve s2 U1 U2 $theNbPoints $theTolerS2
   }
-}
\ No newline at end of file
+}
+
+# Check whether given list contain overlapped curves 
+help CheckOverlapIntCurves { theListOfCurves }
+proc CheckOverlapIntCurves { theListOfCurves {theTolerance 1.0e-7} } {
+  set NbEdges [expr [llength $theListOfCurves] - 1 ]
+  for { set i1 0 } { $i1 < $NbEdges } { incr i1 } {
+    for { set i2 [expr $i1 + 1] } { $i2 <= $NbEdges } { incr i2 } {
+      upvar #0 [ lindex $theListOfCurves $i1 ] aCurve1
+      upvar #0 [ lindex $theListOfCurves $i2 ] aCurve2
+
+      mkedge e1 aCurve1
+      mkedge e2 aCurve2
+      
+      set coe [ checkoverlapedges e1 e2 $theTolerance ]
+
+      if { [regexp "Edges is not overlaped" $coe] != 1 } {
+        set cIdx1 [ expr $i1 + 1 ]
+        set cIdx2 [ expr $i2 + 1 ]
+        
+        puts "Error: Curves $cIdx1 and $cIdx2 are overlapped"
+      }
+    }
+  }
+}