PDA

View Full Version : Connect on the fly shapes


Albert Russel
02-08-2011, 07:49 AM
I would like to build complex shapes out of cubes and then make them behave as one solid body. The add command does not work for vizshapes:

AttributeError: 'VizPrimitive' object has no attribute 'split'

Is there another way to get the same result for vizshapes as in the carousel example?

Greetings, Albert


import vizshape

viz.go()
viz.move(0,0,-10)


cube1 = vizshape.addCube()
cube2 = vizshape.addCube()

cube1.add(cube2)

spinForever = vizact.spin(0,1,0, 90, viz.FOREVER)
cube1.addAction(spinForever)

Jeff
02-08-2011, 09:34 AM
You can set up parent/child relationships between vizshape objects:
import viz
import vizact
import vizshape

viz.go()

viz.move(0,0,-10)

cube1 = vizshape.addCube()
cube2 = vizshape.addCube()

cube2.parent(cube1)
cube2.setPosition([0,2,0])

spinForever = vizact.spin(0,1,0, 90, viz.FOREVER)
cube1.addAction(spinForever)

You could also make all your vizshape objects children of a group node and move the group node around:
import viz
import vizact
import vizshape

viz.go()

group = viz.addGroup()
group.setPosition([0,1.5,10])

positions = [[0,0,1],[0,0,-1],[-1,0,0],[1,0,0]]

for position in positions:
cube = vizshape.addCube(size=0.5)
cube.parent(group)
cube.setPosition(position)

spinForever = vizact.spin(0,1,0, 90, viz.FOREVER)
group.addAction(spinForever)