View Single Post
  #1  
Old 12-06-2016, 07:59 AM
chris2307 chris2307 is offline
Member
 
Join Date: Nov 2013
Posts: 36
Getting an object location

I'm feeling a little frustrated right now. I am trying to get the 3D position of an object within an exported OSGB scene. I know the name of my object; I've called it target. I can even find this object using the following snippet of code:

Code:
for nodeName in WholeEnviroment.getNodeNames():
	if(nodeName == 'Target'):
		node = WholeEnviroment.getChild(nodeName)
		print node
However, when I attempt to extract the 3D information for this, I get either the following two results:

Code:
print node.getPosition()
Return value: [0, 0, -0]

Code:
print node.getPosition(viz.ABS_GLOBAL)
Return value: [0.0, 2.7850825786590576, -8.960569381713867]


Neither are correct. The correct position of this object is [-11.54891, 2.32127, -16.42012].

I am able to use viz.pick to select the object and I get the correct position which is great. However, viz.pick() seems to return the lowest level of an object (the material name in this instance).

Why am I unable to get a sensible value from simply specifying the node name? I'm either missing something very obvious or it's just another annoying quirk of Vizard.

This is how the structure of this node looks like in Vizard inspector: http://prntscr.com/dg30pa

Last edited by chris2307; 12-06-2016 at 08:03 AM.
Reply With Quote