Log in

View Full Version : <node3d>.color() [and others] and the node parameter


fordprefect
02-17-2015, 07:30 AM
Today I stumbled over a problem of the quasi-polymorphism approach of <node3d>.color() command, also found in specular(), ambient(), emissive() and others.

These are generous in that they accept the three RGB color values as separate parameters or as a tuple. But watch out, this is paid for by abandoning the keyword argument feature for the node parameter.
So while this works
node.color(1,0,0, node='left')
using an RGB tuple does not work
node.color([1,0,0], node='left')
and requires omission of the keyword to work properly:
node.color([1,0,0], 'left')
While this is weakly documented in Vizard help (http://docs.worldviz.com/vizard/commands/node3d/color.htm), the method signature or doc string does not really hint you to that.

:( Furthermore, the documentation does not tell you about the mode parameter of color() and it's possible values.

I don't have a pretty neat solution to this issue, but maybe there exist a Python guru out there who has. So far my post is mainly to raise awareness.
BTW, similar things apply to setPosition(), setEuler() and several other positional and orientation commands.