puts "========"
puts "OCC27090"
puts "========"
puts ""
#######################################################
# Point is classified IN solid but actually it is OUT
#######################################################

smallview

# planar face 
plane pln_f1 0 -875 -1.4432899320127035e-014 0 1 1.1102230246251565e-016
erase pln_f1
mkface f1 pln_f1 -1000000 1000000 -1000000 1000000

# planar face 
plane pln_f2 1084.71007164 -980 -2128.6796868400002 1.110223024625157e-016 -1 1.1102230246251563e-016
erase pln_f2
mkface f2 pln_f2 -1000000 1000000 -1000000 1000000

# planar face 
plane pln_f3 -308.43155740558768 -800 -2407.1041518310276 0.80901699437494767 9.2444637330587307e-033 -0.5877852522924728
erase pln_f3
mkface f3 pln_f3 -1000000 1000000 -1000000 1000000

# planar face 
plane pln_f4 -381.4805392043022 -800 -2409.117597419774 -0.15639998811787861 -1.5422229525403152e-032 -0.98769380058635958
erase pln_f4
mkface f4 pln_f4 -1000000 1000000 -1000000 1000000

# cylindrical face 
cylinder cyl_f5 0 0 -1.0103029524088925e-013 0 1 1.1102230246251565e-016 2440
erase cyl_f5
mkface f5 cyl_f5 0 6.2831853071795862 -1000000 1000000

# planar face 
plane pln_f6 -309.45754782652125 -800 -2369.8806246344966 0.98769380058635958 -4.4408920985006262e-016 -0.15639998811787881
erase pln_f6
mkface f6 pln_f6 -1000000 1000000 -1000000 1000000

# planar face 
plane pln_f7 -330.11602392243287 -800 -2299.7847255135234 -0.58778525229247269 -1.6653345369377348e-016 -0.80901699437494767
erase pln_f7
mkface f7 pln_f7 -1000000 1000000 -1000000 1000000

# cylindrical face 
cylinder cyl_f8 0 0 -2.0206059048177849e-013 0 -1 1.1102230246251565e-016 2340
erase cyl_f8
mkface f8 cyl_f8 0 6.2831853071795862 -1000000 1000000

# make volume operation 
mkvolume v f1 f2 f3 f4 f5 f6 f7 f8

donly v

explode v

if {[llength [explode v_6]] > 1} {
   # We expect that v_6 is invalid solid containing 2 shells,
   # and use the first shell to create a new valid solid.

   shape solid so
   add v_6_1 solid
   point p -131.81074615766306 -874.99999999999977 -2443.8619433375443

   donly solid p

   set output [bclassify solid p]

   regexp {The point is ([^ ]*)} $output dummy state
   if {$state != "OUT"} {
     puts "Error: point is classified as $state, but must be OUT"
   } else {
     puts "Info: point is classified OUT, it is OK"
   }
} else {
  puts "Info: test is not actual for the current version"
}

fit
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
