WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 04-27-2012, 03:08 AM
Ploep Ploep is offline
Member
 
Join Date: Apr 2012
Posts: 2
3D world editor

Hello,

Im creating a 3D world editor with Vizard. I want to add a model, place it and be able to replace the models. The user can navigate through the world with wasd and click a model and replace it. So far so good, but i'm experiencing some problems with the object placement.

This is the code for a model to follow the mouse-cursor:
Code:
		# draw model on mouse position
		if(self.isDrawing):
			line = viz.MainWindow.screenToWorld(viz.mouse.getPosition())
			x,y,z = line.endFromDistance(6)
			y = 0
			self.model.setPosition([x,y,z])
It works but it is still hard to navigate objects in the world. Is there a better way to let models follow the mouse and put them in the 3D world?

Thanks!
Reply With Quote
  #2  
Old 05-01-2012, 06:52 AM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,471
You could try using a viztracker.MouseTracker. Here's a simple example:
Code:
import viz
import viztracker
import vizact
viz.go()

gallery = viz.addChild('gallery.osgb')
ball = viz.addChild('soccerball.osgb')

#Move the object with mouse movements and mousewheel
mousetracker = viztracker.MouseTracker()
link = viz.link(mousetracker,ball)

#Disable the link and place the object with a mousepress
vizact.onmousedown(viz.MOUSEBUTTON_LEFT, link.disable)

viz.mouse(viz.OFF)
Reply With Quote
  #3  
Old 05-03-2012, 02:25 AM
Ploep Ploep is offline
Member
 
Join Date: Apr 2012
Posts: 2
Thanks for your reply. I implemented the mousetracker and it is working better. When the user clicks the mouse i put the model on x,y=0,z so that the model is placed on the ground. I tried to catch a mouse_move event and set the position of the model to the ground so that the user can't move the object in the air or through the ground.

Code:
	def onMouseMove(self,e):
		if(self.isDrawing):
			x,y,z = self.model.getPosition()
			self.model.setPosition([x,0,z])
But this wont have any effect. Is it possible to adjust the mousetracker so that the models stick to the ground plane?

EDIT: I try to get some collision with the mousetracker model but I dont know how, can someone give me some hints? Thanks

Last edited by Ploep; 05-03-2012 at 02:31 AM.
Reply With Quote
Reply

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
World Transformations c4am95 Vizard 4 11-09-2010 12:50 PM
why is time faster in my virtual world? billjarrold Vizard 1 11-24-2009 05:33 PM
button in the world guxmy01 Vizard 1 06-10-2008 04:37 PM
What are the options for making a movie of a Vizard world? Karla Vizard 1 05-13-2008 10:56 AM
General Questions about Vizard: World Viz dav Vizard 5 08-28-2006 03:44 PM


All times are GMT -7. The time now is 04:00 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC