0025950: Bad performance of intersection algorithm.
[occt.git] / tests / lowalgos / intss / bug21494_2
1 puts "========"
2 puts "OCC21494: Intersection between cone and sphere fails"
3 puts "========"
4 puts ""
5
6 foreach a [directory res*] {unset $a}
7
8 set aGoodNbCurves 1
9
10 pcone c 15 0 10
11 psphere s 10
12 explode c f
13 explode s f
14 mksurface sc c_1
15 mksurface ss s_1
16
17 intersect res sc ss
18
19 if { ![info exist res_p_1] } {
20   puts "Error: Cone apex and Pole of sphere are excluded from the intersection result"
21 }
22
23 set che [whatis res]
24 set ind [string first "3d curve" $che]
25 if {${ind} >= 0} {
26   #Only variable "res" exists
27   renamevar res res_1
28 }
29
30 bclearobjects
31 bcleartools
32
33 set CurvesList {}
34
35 set ic 1
36 set AllowRepeat 1
37 while { $AllowRepeat != 0 } {
38   set che [whatis res_$ic]
39   set ind [string first "3d curve" $che]
40   if {${ind} < 0} {
41     set AllowRepeat 0
42   } else {
43     lappend CurvesList res_$ic
44     mkedge ee res_$ic
45     baddobjects ee
46     incr ic
47   }
48 }
49
50 set ic [expr $ic - 1]
51
52 if { $ic != $aGoodNbCurves } {
53   puts "Error: $aGoodNbCurves curves is expected but $ic ones are found"
54 } else {
55   CheckIntersectionResult sc ss $CurvesList 100 2.0e-7 2.0e-7
56   
57   if {$ic > 1} {
58     bfillds
59     bbuild result    
60   } elseif {$ic > 0} {
61     mkedge result res_1
62   }
63   
64   # Check gaps between intersection curves
65   checksection result -r 0
66   checkmaxtol result -min_tol 2.0e-7
67
68   checknbshapes result -edge 1 -vertex 1
69 }
70
71 smallview
72 don result*
73 fit
74
75 checkview -screenshot -2d -path ${imagedir}/${test_image}.png