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