mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-19 13:40:49 +03:00
0029441: Modeling Algorithms - Incorrect intersection curves between faces
ApproxInt/ApproxInt_SvSurfaces.hxx : adding field myUseSolver in order to manage calculations of characteristics of intersection points. ApproxInt/ApproxInt_MultiLine.gxx : implementation of using myUseSolver for treatment points of MultiLine. ApproxInt/ApproxInt_ImpPrmSvSurfaces.gxx : implementation of using myUseSolver for case intersection of implicit and parametric surfaces. Test cases added
This commit is contained in:
48
tests/lowalgos/intss/bug29441_1
Normal file
48
tests/lowalgos/intss/bug29441_1
Normal file
@@ -0,0 +1,48 @@
|
||||
puts "============"
|
||||
puts "0029441: Modeling Algorithms - Incorrect intersection curves between faces"
|
||||
puts "============"
|
||||
puts ""
|
||||
|
||||
binrestore [locate_data_file bug28984_faces.bin] f
|
||||
|
||||
set OK 1
|
||||
explode f
|
||||
bopcurves f_1 f_2 -2d
|
||||
|
||||
if {[isdraw c2d1_1]} {
|
||||
puts "check extremity of 1-st pcurve x ~ 1.012680192, |dx| ~ 0, |dy| >> |dx|"
|
||||
2dcvalue c2d1_1 1 x y dx dy
|
||||
set ex [expr abs([dval (x-1.012680192)])]
|
||||
set edxdy [expr abs([dval dx/dy])]
|
||||
if {$ex > 1.e-8 || $edxdy > 1.e-10} {
|
||||
puts "Extremities of 1-st pcurve are wrong"
|
||||
set OK 0
|
||||
} else {
|
||||
puts "Extremities of 1-st pcurve are valid"
|
||||
}
|
||||
} else {
|
||||
set OK 0
|
||||
puts "Error: 1-st pcurve is not exist"
|
||||
}
|
||||
|
||||
if { $OK > 0 } {
|
||||
if {[isdraw c2d1_2]} {
|
||||
puts "check extremity of 2-nd pcurve x ~ 1.0117170137, |dx| ~ 0, |dy| >> |dx|"
|
||||
2dcvalue c2d1_2 1 x y dx dy
|
||||
set ex [expr abs([dval (x-1.0117170137)])]
|
||||
set edxdy [expr abs([dval dx/dy])]
|
||||
if {$ex > 1.e-8 || $edxdy > 1.e-10} {
|
||||
puts "Extremities of 2-nd pcurve are wrong"
|
||||
set OK 0
|
||||
} else {
|
||||
puts "Extremities of 2-nd pcurve are valid"
|
||||
}
|
||||
} else {
|
||||
set OK 0
|
||||
puts "Error: 2-nd pcurve is not exist"
|
||||
}
|
||||
}
|
||||
|
||||
if { $OK < 1 } {
|
||||
puts "Error: bad pcurves"
|
||||
}
|
51
tests/lowalgos/intss/bug29441_2
Normal file
51
tests/lowalgos/intss/bug29441_2
Normal file
@@ -0,0 +1,51 @@
|
||||
puts "============"
|
||||
puts "0029441: Modeling Algorithms - Incorrect intersection curves between faces"
|
||||
puts "============"
|
||||
puts ""
|
||||
|
||||
binrestore [locate_data_file bug28892_tools.bin] b
|
||||
|
||||
set OK 1
|
||||
explode b so
|
||||
explode b_8 f; copy b_8_1 f1
|
||||
explode b_13 f; copy b_13_5 f2
|
||||
don f1 f2
|
||||
bopcurves f1 f2 -2d
|
||||
|
||||
if {[isdraw c2d1_1]} {
|
||||
puts "check extremity of 1-st pcurve x ~ 5.2714710662, |dx| ~ 0, |dy| >> |dx|"
|
||||
2dcvalue c2d1_1 1 x y dx dy
|
||||
set ex [expr abs([dval (x-5.2714710662)])]
|
||||
set edxdy [expr abs([dval dx/dy])]
|
||||
if {$ex > 1.e-8 || $edxdy > 1.e-10} {
|
||||
puts "Extremities of 1-st pcurve are wrong"
|
||||
set OK 0
|
||||
} else {
|
||||
puts "Extremities of 1-st pcurve are valid"
|
||||
}
|
||||
} else {
|
||||
set OK 0
|
||||
puts "Error: 1-st pcurve is not exist"
|
||||
}
|
||||
|
||||
if { $OK > 0 } {
|
||||
if {[isdraw c2d1_2]} {
|
||||
puts "check extremity of 2-nd pcurve x ~ 5.2705066089, |dx| ~ 0, |dy| >> |dx|"
|
||||
2dcvalue c2d1_2 1 x y dx dy
|
||||
set ex [expr abs([dval (x-5.2705066089)])]
|
||||
set edxdy [expr abs([dval dx/dy])]
|
||||
if {$ex > 1.e-8 || $edxdy > 1.e-10} {
|
||||
puts "Extremities of 2-nd pcurve are wrong"
|
||||
set OK 0
|
||||
} else {
|
||||
puts "Extremities of 2-nd pcurve are valid"
|
||||
}
|
||||
} else {
|
||||
set OK 0
|
||||
puts "Error: 2-nd pcurve is not exist"
|
||||
}
|
||||
}
|
||||
|
||||
if { $OK < 1 } {
|
||||
puts "Error: bad pcurves"
|
||||
}
|
Reference in New Issue
Block a user