#INTERFACE CAF
# NamedShape
#
# Testing attribute: TNaming_NamedShape
#
# Testing command:   SelectGeometry (EDGE)
#

puts "caf002-D1"
set QA_DUP 0

set ter _*
foreach OS [directory [concat aBox1$ter]] {
	unset $OS
}

# Create a box
set aSetX1 10
set aSetY1 20
set aSetZ1 30
set aSetDX1 100
set aSetDY1 200
set aSetDZ1 300

box aBox1 ${aSetX1} ${aSetY1} ${aSetZ1} ${aSetDX1} ${aSetDY1} ${aSetDZ1}

# Create a label
set aLabel 0:2
Label D ${aLabel}

# Set a shape to the label
ImportShape D ${aLabel} aBox1

# Close/Open transaction
NewCommand D

# Select all the sub-shapes of type <aType>
# aType = EDGE
set aType e
explode ${aBox1} ${aType}

set i 0
set iSubLabel 1000
foreach S [directory [concat $aBox1$ter]] {
	incr i
	incr iSubLabel
	puts "SubShape=$S"

	#Memorize a bounding box of the selected sub-shape
	bounding -s ${S} -save X1_Box1 Y1_Box1 Z1_Box1 X2_Box1 Y2_Box1 Z2_Box1

	# Select a sub-shape
	set LABEL [Label D 0:$iSubLabel]
	SelectGeometry D ${LABEL} ${S} ${aBox1}

	# Solve selected sub-shape
	SolveSelection D ${LABEL}

	# Get selected (and solved) sub-shape
	GetShape D ${LABEL} aSubShape
	
	# Get bounding box
	bounding -s aSubShape -save X1_Box2 Y1_Box2 Z1_Box2 X2_Box2 Y2_Box2 Z2_Box2
	
	if {[dval X1_Box1] != [dval X1_Box2] || [dval Y1_Box1] != [dval Y1_Box2] || [dval Z1_Box1] != [dval Z1_Box2] || [dval X2_Box1] != [dval X2_Box2] || [dval Y2_Box1] != [dval Y2_Box2] || [dval Z2_Box1] != [dval Z2_Box2]} {
		puts "SelectGeometry command (${i}): Error"
	}
}

puts "SelectGeometry command: OK"
