# =================== OCAF ======================
# Naming
#
# Testing purpose: Naming selection mechanism 
#                  (name = FILTERBYNEIGHBOURGS)
#                  Check type migration
# ===============================================
# Test case: F8 (testing using SelectShape & SolveSelection)
# 1. Create 3 boxes $B1, $B2, $B3
# 2. $FS1 = Fuse ($B1, $B2)
# 3. $FS2 = Fuse ($B1, $B3)
# 4. Make  selections of the face 'fuse2_23'
# 5. Modify B2
# 6. Recompute
# ===============================================

pload FULL
set doc d16
NewDocument $doc MDTV-Standard
AddDriver $doc Box Fuse Attach

#1. create 3 boxes
set B1 [AddBox $doc 100 200 350]
set B2 [AddBox $doc 330 330 90]
set B3 [AddBox $doc 60 450 150]
ComputeFun $doc $B1:1
ComputeFun $doc $B2:1
ComputeFun $doc $B3:1

#2. B1 = fuse (B1, B2)
set FS1 [AddFuse $doc $B1 $B2]
ComputeFun $doc $FS1

#3. B1 = fuse (B1, B3)
set FS2 [AddFuse $doc $B1 $B3]
ComputeFun $doc $FS2
GetShape $doc $FS2:2 fuse2
explode fuse2 f


#4. select fuse2_23 (using SelectShape)
set Sel1 0:2:23
SelectShape $doc $Sel1 fuse2_23 fuse2
GetShape $doc $Sel1 f23before
#f23before is face
set info1 [whatis f23before]


#5. Modify
BoxDZ $doc $B2 120

#6. recompute
ComputeFun $doc $B2:1
ComputeFun $doc $FS1
ComputeFun $doc $FS2
SolveSelection $doc $Sel1
GetShape $doc $Sel1 f23after
#f23after is face
set info2 [whatis f23after]

if { [regexp "shape" $info1] != 1 } {
    puts "Error : There is not word shape in f23after"
}
if { [regexp "FACE" $info1] != 1 } {
    puts "Error : There is not word FACE in f23after"
}
if { [regexp "REVERSED" $info1] != 1 } {
    puts "Error : There is not word REVERSED in f23after"
}
if { [regexp "Modified" $info1] != 1 } {
    puts "Error : There is not word Modified in f23after"
}
if { [regexp "Orientable" $info1] != 1 } {
    puts "Error : There is not word Orientable in f23after"
}

if { [regexp "shape" $info2] != 1 } {
    puts "Error : There is not word shape in f23before"
}
if { [regexp "FACE" $info2] != 1 } {
    puts "Error : There is not word FACE in f23before"
}
if { [regexp "REVERSED" $info2] != 1 } {
    puts "Error : There is not word REVERSED in f23before"
}
if { [regexp "Modified" $info2] != 1 } {
    puts "Error : There is not word Modified in f23before"
}
if { [regexp "Orientable" $info2] != 1 } {
    puts "Error : There is not word Orientable in f23before"
}



