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"
}
