0025890: Intersection algorithm produces curves overlaped
[occt.git] / tests / bugs / moddata_3 / bug25223
CommitLineData
6aa39ac3 1puts "================"
2puts "OCC25223"
3puts "================"
4puts ""
5#######################################################################
6# Wrong result done by projection algorithm
7#######################################################################
8
9restore [locate_data_file bug25223_surface] s
10restore [locate_data_file bug25223_curve] c
11
12project c2d c s
13
14# I.
15#Parameters : 2.50050886855066 2.71802559491834
16regexp {Parameters : ([-0-9.+eE]+) ([-0-9.+eE]+)} [dump c] full a1 a2
17set good_a1 2.50050886855066
18set good_a2 2.71802559491834
19set c_tol 1.e-13
20if { [expr abs(${a1} - ${good_a1}) ] > ${c_tol} } {
21 puts "Error: invalid a1 parameter"
22}
23if { [expr abs(${a2} - ${good_a2}) ] > ${c_tol} } {
24 puts "Error: invalid a2 parameter"
25}
26
27# II.
28set u1 2.6
29cvalue c $u1 x y z
30vertex v1 x y z
31point p1 x y z
32
33mkface f s
34set proj_fp [projponf f p1]
35#proj dist = 9.8455689542838467e-014
36
37regexp {proj dist = ([-0-9.+eE]+) uvproj = \(([-0-9.+eE]+) ([-0-9.+eE]+)\); pproj = \(([-0-9.+eE]+) ([-0-9.+eE]+) ([-0-9.+eE]+)\)} ${proj_fp} full dist uproj vproj proj1 proj2
38
39puts "dist=${dist}"
40puts "uproj=${uproj}"
41puts "vproj=${vproj}"
42puts "proj1=${proj1}"
43puts "proj2=${proj2}"
44
45set tolmax_f [tolmax f]
46regexp {max tol = ([-0-9.+eE]+)} ${tolmax_f} full CMP_TOL
47
48puts "CMP_TOL=${CMP_TOL}"
49
50set good_dist 9.8455689542838467e-14
51set good_uproj 0.66864242394263962
52set good_vproj 0.53857983853386682
53set good_proj1 336.79267755053786
54set good_proj2 -256.45869438720723
55
56if { [expr abs(${dist} - ${good_dist}) ] > ${CMP_TOL} } {
57 puts "Error: invalid dist"
58}
59if { [expr abs(${uproj} - ${good_uproj}) ] > ${CMP_TOL} } {
60 puts "Error: invalid uproj"
61}
62if { [expr abs(${vproj} - ${good_vproj}) ] > ${CMP_TOL} } {
63 puts "Error: invalid vproj"
64}
65if { [expr abs(${proj1} - ${good_proj1}) ] > ${CMP_TOL} } {
66 puts "Error: invalid proj1"
67}
68if { [expr abs(${proj2} - ${good_proj2}) ] > ${CMP_TOL} } {
69 puts "Error: invalid proj2"
70}
71
72# III.
732dcvalue c2d $u1 u v
74svalue s u v x y z
75vertex v2 x y z
76distmini d v1 v2
77#the distance value is : 3.99072821948773e-08
78
79regexp {([-0-9.+eE]+)$} [dump d_val] full dist
80regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [ maxtolerance d ] full toler
81set good_dist 3.99072821948773e-08
82if { [expr abs( ${dist} - ${good_dist} )] > ${toler} } {
83 puts "Error : the distanse is ${dist}. It is bad value"
84}
85
86smallview
87fit
88set only_screen_axo 1