View Single Post
  #2  
Old 03-09-2016, 07:15 AM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,471
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)
Reply With Quote