# some output currently generated: # ['__class__', '__cmp__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'global_tex_coord', 'surface_normal', 'surface_view_vec', 'tex_coord', 'view_normal'] # Texture coordinate (0.061890885233879089, -0.45436245203018188, 0.88916003704071045) # Surface normal (-0.070243678987026215, -0.88472998142242432, -0.46078059077262878) # Surface view vector (0.030386274680495262, 0.43047207593917847, -0.90209227800369263) # View normal (-0.062225442379713058, -0.88793331384658813, -0.4557437002658844) import Blender import Blender.Node class MyNode(Blender.Node.node): def show(self, shi): print dir(shi) # print out to show what ShadeInput makes available print "Texture coordinate", shi.tex_coord print "Surface normal", shi.surface_normal print "Surface view vector", shi.surface_view_vec print "View normal", shi.view_normal # __call__ will be given one parameter, which is a # Blender.Node.ShadeInput. This can be used to get # interesting info to play with. def __call__(self, shi): self.show(shi) pass def __init__(self): print "init" # currently we still need to do this. 'node' is the name we need # that way the C-side knows what to call :) # So now the script is run only once, but then the node object # will be called in subsequent runs through the node tree node=MyNode()