7faaccfd |
1 | puts "================" |
2 | puts "OCC23051" |
3 | puts "================" |
4 | puts "" |
5 | ###################################################################################### |
6 | # Bug in BRepExtrema_DistShapeShape (through BRepExtrema_DistanceSS0 |
7 | ###################################################################################### |
8 | |
9 | set BugNumber OCC23051 |
10 | |
11 | # create edges and find minimal distance |
12 | plane p 0 0 0 0 0 1 |
13 | mkface f p -10 10 -10 10 |
14 | vertex v 0 0 1 |
9753e6de |
15 | distmini r f v |
7faaccfd |
16 | |
17 | # get start and end vertices -- these should be solutions on f and v |
9753e6de |
18 | set sol [explode r v] |
7faaccfd |
19 | |
20 | set status1 0 |
21 | # check distances in correct order |
9753e6de |
22 | distmini d1 [lindex $sol 0] f |
23 | distmini d2 [lindex $sol 1] v |
24 | set d1 [dval d1_val] |
25 | set d2 [dval d2_val] |
7faaccfd |
26 | |
9753e6de |
27 | puts "Distances from solutions to relevant objects: $d1, $d2" |
7faaccfd |
28 | if { $d1 > 1e-7 || $d2 > 1e-7 } { |
29 | puts "Error: distances are non-zero!" |
30 | set status1 1 |
31 | } |
32 | |
33 | set status2 0 |
34 | # check distances in swapped order |
9753e6de |
35 | distmini d1 [lindex $sol 0] v |
36 | distmini d2 [lindex $sol 1] f |
37 | set d1 [dval d1_val] |
38 | set d2 [dval d2_val] |
7faaccfd |
39 | |
9753e6de |
40 | puts "Distances from solutions to swapped objects: $d1, $d2" |
7faaccfd |
41 | if { $d1 < 0.1 || $d2 < 0.1 } { |
42 | puts "Error: swapped distances are zero, i.e. solutions are swapped!" |
43 | set status2 1 |
44 | } |
45 | |
46 | # Resume |
47 | puts "" |
48 | if { ${status1} != 0 && ${status2} != 0 } { |
49 | puts "Faulty ${BugNumber}" |
50 | } else { |
51 | puts "OK ${BugNumber}" |
52 | } |
53 | |
54 | |