PDA

View Full Version : Regarding getting yaw, pitch, roll separately frm 'vizconnect.getEuler('trac') functn


rajnishv
07-16-2016, 03:47 AM
Hi Jeff,
I need each of the euler values separately from
vizconnect.getTracker('HeadTracker').getEuler():
I have managed to get the euler values of the head tracker by the code thrugh vizconnect.
Code:
#------------------------------Vizrad Code Start---------------------------------#

def restrictRollFromHeadTracker():
headTracker=vizconnect.getTracker('dtrackheadtrack er')
eulrHeadTracker=headTracker.getEuler()
print 'the position and euler are',eulrHeadTracker
vizact.ontimer(0,restrictRollFromHeadTracker)
#------------------------------Vizrad Code End---------------------------------#

But i need each of the values 'separately' such as..yaw,pitch and roll and want to store into 3 separate variables and then want to apply on the tracker node with some different values.

I am not able to found the code or command to deal with it.

Waiting for ur reply.
Thanx & Regards!!!

Mr.Rajnish Vishwakarma
Software Developer
at
Xenium Digital Pvt. Ltd,Mumbai
(Customer of world viz)

Jeff
07-16-2016, 03:58 AM
The getEuler() command return a list with yaw, pitch, and roll. You can get the individual values directly:

yaw,pitch,roll = vizconnect.getTracker('HeadTracker').getEuler()

Or first save the list and then get the individual values:

ori = vizconnect.getTracker('HeadTracker').getEuler()
yaw = ori[0]
pitch = ori[1]
roll = ori[2]

rajnishv
07-16-2016, 04:00 AM
Sorry Jeff,
To disturb you.
Thanx for the reply.
I got it when i got an error that getEuler returs a list and i managed it to store it.
Thank you for ur reply

rajnishv
07-16-2016, 04:19 AM
Jeff,
One more query ,i want to re-apply the same yaw ,pitch to the head tracker but i have to restrict the roll value of the head tracker so that roll doesn't work using the code,but i m not able to get it:

#----------Start----------------
def restrictRollFromTracker():
headTracker=vizconnect.getTracker('headtracker')
eulrHeadTracker=headTracker.getEuler()
yaww=eulrHeadTracker[0]
pitchh=eulrHeadTracker[1]
headTracker.getNode3d().setEuler([yaww,pitchh,0],viz.ABS_PARENT )

vizact.ontimer(0,restrictRollFromTracker)


But i m not able to retrict the roll value of the tracker again.Pls help.
#-----End---------------



Waiting for ur reply.
Thanx & Regards!!!

Mr.Rajnish Vishwakarma
Software Developer
at
Xenium Digital Pvt. Ltd,Mumbai
(Customer of world viz)

Jeff
07-16-2016, 04:49 AM
In this case you don't need to get the yaw, pitch, and roll values. Just get a handle to the tracker link and use the link.setEuler (http://docs.worldviz.com/vizard/index.htm#commands/link/setEuler.htm) operator:

trackerLink = vizconnect.getTracker('headtracker').getLink()
#Keep the incoming yaw and pitch, but zero the roll
trackerLink.setEuler([None,None,0])