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.
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.