WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 04-27-2009, 12:35 AM
nasr nasr is offline
Member
 
Join Date: Apr 2009
Posts: 27
how to pick up the object, move and rotate using mouse

hello all,

im trying to develop an application using which i have to pick, drag, move and rotate the object using mouse...i have download the boxstacker and turbine demos for grabbing the objects...but they are executing when im launching the applications... could some one plz tell the code how this could be accomplished..


thankyou..
Reply With Quote
  #2  
Old 04-27-2009, 06:15 PM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,471
The following code creates a mousetracker object from the Viztracker module. The hand gets linked to this mousetracker. When you pick an object it gets linked to the hand.

Code:
import viz

viz.go()

import viztracker
tracker = viztracker.MousePos()

#Add the object that will do the grabbing and link it to the tracker
hand = viz.add('marker.wrl')
viz.link(tracker, hand)

#turn off mouse navigation
viz.mouse(viz.OFF)

#Add the object that the marker will grab
ball = viz.add( 'ball.wrl' )
ball.translate( 0.5, 1.5, 3 )

link = None
#Grab or let go of the ball

def toggleLink():
	global link
	if link:
		#If link exits, stop grabbing
		link.remove()
		link = None

	elif vizmat.Distance(hand.getPosition(), ball.getPosition()) < .5:
		link = viz.grab( hand, ball )

vizact.onpick(ball,toggleLink)
Reply With Quote
  #3  
Old 05-03-2009, 12:59 AM
nasr nasr is offline
Member
 
Join Date: Apr 2009
Posts: 27
thanks jeff for ur reply...i tried with ur code..the mouse pointer is linked with the marker, but why it isnot able to move the ball?
Quote:
Originally Posted by Jeff View Post
The following code creates a mousetracker object from the Viztracker module. The hand gets linked to this mousetracker. When you pick an object it gets linked to the hand.

Code:
import viz

viz.go()

import viztracker
tracker = viztracker.MousePos()

#Add the object that will do the grabbing and link it to the tracker
hand = viz.add('marker.wrl')
viz.link(tracker, hand)

#turn off mouse navigation
viz.mouse(viz.OFF)

#Add the object that the marker will grab
ball = viz.add( 'ball.wrl' )
ball.translate( 0.5, 1.5, 3 )

link = None
#Grab or let go of the ball

def toggleLink():
	global link
	if link:
		#If link exits, stop grabbing
		link.remove()
		link = None

	elif vizmat.Distance(hand.getPosition(), ball.getPosition()) < .5:
		link = viz.grab( hand, ball )

vizact.onpick(ball,toggleLink)
Reply With Quote
  #4  
Old 05-04-2009, 10:10 AM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,471
It works, you just have to line up the marker with the ball in the z coordinate. In order to do that you need to move the mouse wheel until the marker is right on top of the ball.
Reply With Quote
  #5  
Old 05-05-2009, 01:34 AM
nasr nasr is offline
Member
 
Join Date: Apr 2009
Posts: 27
its working....thankyou jefff..
Reply With Quote
  #6  
Old 05-05-2009, 04:11 AM
nasr nasr is offline
Member
 
Join Date: Apr 2009
Posts: 27
jeff....how rotation can be applied for the ball using the mouse.....i want to rotate the object...is it possible?
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


All times are GMT -7. The time now is 07:38 AM.


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