diff options
author | Willian Padovani Germano <wpgermano@gmail.com> | 2008-03-16 20:24:29 +0300 |
---|---|---|
committer | Willian Padovani Germano <wpgermano@gmail.com> | 2008-03-16 20:24:29 +0300 |
commit | dae503187c9c77a6f51bc4cb7bad81e78590b692 (patch) | |
tree | ad923d077ed0b54b167a54e4e9d438f348047a8d /source/blender/python/api2_2x/Node.h | |
parent | 6a2e538d98a3d28929160ebd7a2247e242e623c3 (diff) |
== PyNodes ==
Ongoing updates to the Blender.Node Python API:
- Changed Blender.Node.node to Blender.Node.Scripted to be more specific and conform to bpython API.
- Added a Blender.Node.Socket type to be used to define node sockets in a PyNode script. Also, socket type is inferred from the value(s) passed in, instead of also being defined by the script author.
- Added attr access to input and output sockets in the __call__ method. Ex: an input socket called 'color' can be accessed as self.input.color now.
These changes break existing pynode scripts, which shouldn't be a problem yet, of course, since we're still finishing this feature for 2.46. The wiki page and sample .blends have already been updated:
http://wiki.blender.org/index.php/BlenderDev/PyNodes
http://wiki.blender.org/index.php/BlenderDev/PyNodes/API
Diffstat (limited to 'source/blender/python/api2_2x/Node.h')
-rw-r--r-- | source/blender/python/api2_2x/Node.h | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/source/blender/python/api2_2x/Node.h b/source/blender/python/api2_2x/Node.h index e229e678fe9..49626599887 100644 --- a/source/blender/python/api2_2x/Node.h +++ b/source/blender/python/api2_2x/Node.h @@ -40,11 +40,19 @@ #include "RE_shader_ext.h" /* <- ShadeInput Shaderesult TexResult */ extern PyTypeObject Node_Type; +extern PyTypeObject NodeSocket_Type; +extern PyTypeObject NodeSocketLists_Type; extern PyTypeObject ShadeInput_Type; #define BPy_Node_Check(v) \ ((v)->ob_type == &Node_Type) +#define BPy_NodeSocket_Check(v) \ + ((v)->ob_type == &NodeSocket_Type) + +#define BPy_NodeSocketLists_Check(v) \ + ((v)->ob_type == &NodeSocketLists_Type) + #define BPy_ShadeInput_Check(v) \ ((v)->ob_type == &ShadeInput_Type) @@ -64,7 +72,7 @@ typedef struct { bNode *node; PyObject *input; PyObject *output; -} BPy_NodeSockets; +} BPy_NodeSocketLists; typedef struct BPy_Node { PyObject_HEAD @@ -74,10 +82,19 @@ typedef struct BPy_Node { ShadeInput *shi; } BPy_Node; +typedef struct BPy_NodeSocket { + PyObject_HEAD + char name[NODE_MAXSTR]; + float min; + float max; + float val[4]; + short type; /* VALUE, VECTOR or RGBA */ +} BPy_NodeSocket; + extern PyObject *Node_Init(void); extern void InitNode(BPy_Node *self, bNode *node); extern BPy_Node *Node_CreatePyObject(bNode *node); -extern BPy_NodeSockets *Node_CreateSockets(bNode *node); +extern BPy_NodeSocketLists *Node_CreateSocketLists(bNode *node); extern void Node_SetStack(BPy_Node *self, bNodeStack **stack, int type); extern void Node_SetShi(BPy_Node *self, ShadeInput *shi); extern int pytype_is_pynode(PyObject *pyob); |