puts "========"
puts "OCC28528"
puts "========"
puts ""
#######################################################################
# Make the CellsBuilder algorithm to work with multi-dimensional arguments
#######################################################################

puts "Arguments: solid and a face"

box b 10 10 10
plane p 5 5 5 1 0 0
mkface f p -10 10 -10 10

bclearobjects
bcleartools
baddobjects b f
bfillds
bcbuild r

puts "Results"

puts "All split shapes"
bcaddall result
checknbshapes result -solid 2 -m "Number of SOLIDs in the result containing all splits"
checknbshapes result -face 12 -m "Number of FACEs in the result containing all splits"
checkprops result -v 1000 -s 1200

puts "Cut solid from face"
bcremoveall
bcadd result f 1 b 0
checknbshapes result -face 1 -m "Number of FACEs in the result of CUT(f, b) operation"

puts "Cut face from solid"
bcremoveall
bcadd result b 1 f 0
checknbshapes result -solid 2 -m "Number of SOLIDs in the result of CUT(b, f) operation"

puts "Common between face and solid"
bcremoveall
bcadd result b 1 f 1
checknbshapes result -face 1 -m "Number of FACEs in the result of COMMON(b, f) operation"

puts "Fuse operation between face and solid"
bcremoveall
bcadd result b 1 -m 1 -u
bcadd result f 1 b 0
checknbshapes result -solid 1 -m "Number of SOLIDs in the result of FUSE(b, f) operation"
checknbshapes result -face 11 -m "Number of FACEs in the result of FUSE(b, f) operation"
