Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillian Padovani Germano <wpgermano@gmail.com>2008-03-16 20:24:29 +0300
committerWillian Padovani Germano <wpgermano@gmail.com>2008-03-16 20:24:29 +0300
commitdae503187c9c77a6f51bc4cb7bad81e78590b692 (patch)
treead923d077ed0b54b167a54e4e9d438f348047a8d /source/blender/python/api2_2x/Node.h
parent6a2e538d98a3d28929160ebd7a2247e242e623c3 (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.h21
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);