View Single Post
  #2  
Old 07-25-2005, 12:15 PM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
Hi,

I've modified your script a little to do what I believe you want it to do. I've commented the parts of the code that modify the viewpoint. Let me know if this isn't exactly what you are looking for.
Code:
import viz
viz.go()

viz.mouse(viz.OFF)

viz.add('tut_ground.wrl')
Wheelbarrow = viz.add('wheelbarrow.ive')

#Get handle to main viewpoint
view = viz.get(viz.MAIN_VIEWPOINT)

Wheelbarrow.translate(0,0,6)

MOVE_SPEED = 10
TURN_SPEED = 360

def mytimer(num1):
	#Move wheelbarrow using arrow keys
	if viz.iskeydown(viz.KEY_UP):
		Wheelbarrow.translate(0,0,MOVE_SPEED*viz.elapsed(),viz.RELATIVE_LOCAL)
	elif viz.iskeydown(viz.KEY_DOWN):
		Wheelbarrow.translate(0,0,-MOVE_SPEED*viz.elapsed(),viz.RELATIVE_LOCAL)
	if viz.iskeydown(viz.KEY_RIGHT):
		Wheelbarrow.rotate(0,1,0,TURN_SPEED*viz.elapsed(),viz.RELATIVE_LOCAL)
	elif viz.iskeydown(viz.KEY_LEFT):
		Wheelbarrow.rotate(0,1,0,-TURN_SPEED*viz.elapsed(),viz.RELATIVE_LOCAL)

	#Create transform from wheelbarrow
	xform = viz.Transform(Wheelbarrow.get(viz.MATRIX))
	#Move position up 1 meter and back 5 meters
	xform.preTrans(0,1,-5)
	#Apply position of transform to viewpoint
	view.translate(xform.getTrans())
	#Have viewpoint look at wheelbarrow
	view.lookat(Wheelbarrow.get(viz.POSITION))
	
viz.callback(viz.TIMER_EVENT,mytimer)
viz.starttimer(1,0,viz.PERPETUAL)
Reply With Quote