In the following example, each model is added to a sub-panel on the main vizinfo panel. Each time one of the sub-panels is selected, a model is added to the world:
Code:
import viz
import vizinfo
import vizact
import vizdlg
import random
viz.go()
piazza = viz.addChild('piazza.osgb',scene=1)
avatarPanel = vizinfo.InfoPanel('Add an avatar',align=viz.ALIGN_LEFT_BOTTOM,fontSize=22,icon=False)
avatarFiles = ['vcc_male.cfg','vcc_female.cfg','vcc_male2.cfg']
avatars = []
avatarPosition = [[-4.5,0,9],[-2.2,0,7.3],[-4.3,0,12],[-3,0,16.7],[4,0,21.8],[2.3,0,19.8],[4.1,0,14.7],[4.3,0,11.9],[4.5,0,9],[2.2,0,7.3]]
def avatarPicked(avatar,filename):
pos = avatarPosition.pop()
euler = [random.randint(180,360),0,0]
avatarClone = avatar.clone(pos=pos,euler=euler)
if len(avatarPosition) ==0 :
avatarPanel.visible(viz.OFF)
print 'All the avatars have been added'
for i,filename in enumerate(avatarFiles):
avatar = viz.addAvatar(filename, scale=[45]*3, euler=[i*90,0,0])
avatar.addAction(vizact.spin(0,1,0,45))
avatar.enable(viz.DEPTH_TEST, op=viz.OP_ROOT)
avatar.state(1)
avatars.append(avatar)
subPanel = vizdlg.Panel(layout = vizdlg.LAYOUT_VERT_CENTER, border= False)
subPanel.setMinSize([100,0])
subPanel.addItem(avatar)
avatarPanel.addItem(subPanel,align=viz.ALIGN_CENTER)
vizact.onbuttonup(subPanel, avatarPicked, avatar, filename)