0030645: Modeling Algorithms - B-spline segmentation produces wrong parametrization
[occt.git] / tests / bugs / modalg_7 / bug30645_2
1 puts "========"
2 puts "0030645: Modeling Algorithms - B-spline segmentation produces wrong parametrization"
3 puts "========"
4 puts ""
5
6 bsplinecurve result 3 4 \
7 2.0 4  2.5 2  2.9 2  3.0 4 \
8 117.9 0.0 11.6 1 \
9 116.7 0.0 11 1 \
10 115.8 0.0 10.5 1 \
11 114.4 0.0 9.7 1 \
12 113.9 0.0 9.4 1 \
13 113.3 0.0 9.1 1 \
14 113.1 0.0 9.0 1 \
15 113.0 0.0 8.9 1
16
17
18 set tolerance 2.e-9
19 segment result 2.5 2.900000001 $tolerance
20
21 set crv [dump result]
22
23 regexp {Knots +:\n(.*)} $crv full knots
24 set is_different_knots 1
25 set knots_list {}
26 while { "$knots" != "\n" && $is_different_knots } {
27   regexp { +([0-9]+) +: +([-0-9.+eE]+) *([0-9]+)\n(.*)} $knots full index knot weight rest
28   foreach k $knots_list {
29     if { [expr abs($k - $knot)] < $tolerance } {
30       set is_different_knots 0
31     }
32   }
33
34   lappend knots_list $knot
35   set knots $rest
36 }
37
38 if { $is_different_knots } {
39   puts "OK: all knots are different"
40 } else {
41   puts "ERROR: segment has knots too close"
42 }