[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34744] branches/particles-2010/source/ blender: More cleanup: removed all except the basic 3 socket types (value, vector, rgba) used by compo/mat/tex trees.
Lukas Toenne
lukas.toenne at googlemail.com
Wed Feb 9 16:38:52 CET 2011
Revision: 34744
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34744
Author: lukastoenne
Date: 2011-02-09 15:38:50 +0000 (Wed, 09 Feb 2011)
Log Message:
-----------
More cleanup: removed all except the basic 3 socket types (value, vector, rgba) used by compo/mat/tex trees. New node tree types will use a separate type system.
Added basic files and bNodeTreeType struct for particle node trees.
Fixed increased user count in new_node_tree operator.
Modified Paths:
--------------
branches/particles-2010/source/blender/blenkernel/BKE_node.h
branches/particles-2010/source/blender/blenkernel/intern/node.c
branches/particles-2010/source/blender/editors/space_node/drawnode.c
branches/particles-2010/source/blender/editors/space_node/node_buttons.c
branches/particles-2010/source/blender/editors/space_node/node_draw.c
branches/particles-2010/source/blender/editors/space_node/node_edit.c
branches/particles-2010/source/blender/makesdna/DNA_node_types.h
branches/particles-2010/source/blender/makesrna/intern/rna_nodetree.c
branches/particles-2010/source/blender/nodes/CMakeLists.txt
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_blur.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_brightness.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_colorMatte.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_composite.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_crop.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_curves.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_dilate.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_directionalblur.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_displace.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_distanceMatte.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_filter.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_flip.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_glare.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_huecorrect.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_idMask.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_image.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_invert.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_lensdist.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_levels.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_math.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_normal.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_premulkey.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_rgb.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_scale.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_texture.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_translate.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_value.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_viewer.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c
branches/particles-2010/source/blender/nodes/intern/CMP_nodetree.c
branches/particles-2010/source/blender/nodes/intern/MOD_nodes/MOD_mesh.c
branches/particles-2010/source/blender/nodes/intern/MOD_nodes/MOD_transform.c
branches/particles-2010/source/blender/nodes/intern/MOD_nodetree.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_camera.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_curves.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_geom.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_invert.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_mapping.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_material.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_math.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_normal.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_output.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_rgb.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_sepcombRGB.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_texture.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_value.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c
branches/particles-2010/source/blender/nodes/intern/SHD_nodetree.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_at.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_bricks.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_checker.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_compose.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_coord.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_curves.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_decompose.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_distance.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_image.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_invert.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_math.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_mixRgb.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_output.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_proc.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_rotate.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_scale.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_texture.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_translate.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodes/TEX_viewer.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodetree.c
branches/particles-2010/source/blender/nodes/intern/node_util.c
branches/particles-2010/source/blender/nodes/intern/node_util.h
Modified: branches/particles-2010/source/blender/blenkernel/BKE_node.h
===================================================================
--- branches/particles-2010/source/blender/blenkernel/BKE_node.h 2011-02-09 15:38:49 UTC (rev 34743)
+++ branches/particles-2010/source/blender/blenkernel/BKE_node.h 2011-02-09 15:38:50 UTC (rev 34744)
@@ -66,17 +66,12 @@
struct uiLayout;
struct Object;
struct DerivedMesh;
+struct ParticleSystem;
-struct SimContext;
-struct SimDataContext;
-struct SimExecData;
-struct SimNodeStack;
-struct SimSocketStack;
-
/* ************** NODE TYPE DEFINITIONS ***** */
/* Compact definition of a static node socket */
-typedef struct bNodeSocketDefinition {
+typedef struct bNodeSocketTemplate {
int type, limit;
char name[32];
float val1, val2, val3, val4; /* default alloc value for inputs */
@@ -84,7 +79,7 @@
/* after this line is used internal only */
struct bNodeSocket *sock; /* used to hold verified socket */
-} bNodeSocketDefinition;
+} bNodeSocketTemplate;
/* Symbols for sockets */
typedef enum NodeSocketSymbol {
@@ -94,19 +89,6 @@
/* Type definition for sockets */
typedef struct bNodeSocketType {
- int type;
- const char *identifier;
- const char *ui_name;
- const char *ui_description;
- NodeSocketSymbol symbol;
- int color[4];
-
- int data_size;
-
- void (*data_set_default)(void *data);
-
- void (*uifunc_input)(struct uiLayout *, struct bContext *C, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock);
- void (*uifunc_output)(struct uiLayout *, struct bContext *C, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock);
} bNodeSocketType;
typedef struct bNodeType {
@@ -116,7 +98,7 @@
float width, minwidth, maxwidth;
short nclass, flag;
- bNodeSocketDefinition *inputs, *outputs;
+ bNodeSocketTemplate *inputs, *outputs;
char storagename[64]; /* struct name for DNA */
@@ -144,16 +126,6 @@
/* called when the node is updated (e.g. linked) in the editor. */
void (*updatefunc)(struct bNodeTree *ntree, struct bNode *node);
- /* called when adaptable socket has been changed and types should be resolved */
- void (*adaptSocketTypes)(struct bNodeTree *ntree, struct bNode *node);
- /* list of types the node can adapt (if no custom function is used) */
- int *adapt_types;
-
- /* simulation nodes */
- char *(*generate_source)(struct SimNodeStack *node);
- void (*initexec)(struct SimNodeStack *node);
- void (*freeexec)(struct SimNodeStack *node);
- int (*enqueue)(struct SimExecData *execdata, struct SimNodeStack *node, struct SimDataContext *self, int exec);
} bNodeType;
/* node->exec, now in use for composites (#define for break is same as ready yes) */
@@ -200,8 +172,6 @@
char id_name[24]; /* id name for RNA identification */
ListBase node_types; /* type definitions */
- bNodeSocketType *sock_types; /* socket types */
- int num_sock_types;
/* callbacks */
void (*freeCache)(struct bNodeTree *ntree);
@@ -222,7 +192,6 @@
/* ************** GENERIC API, TREES *************** */
bNodeTreeType *ntreeGetType(int type);
-bNodeSocketType* ntreeGetSocketType(int treetype, int socktype);
struct bNodeTree *ntreeAddTree(const char *name, int type, const short is_group);
void ntreeInitTypes(struct bNodeTree *ntree);
@@ -332,7 +301,7 @@
/* Init a new node type struct with default values and callbacks */
void node_type_base(struct bNodeType *ntype, int type, const char *name, short nclass, short flag,
- struct bNodeSocketDefinition *inputs, struct bNodeSocketDefinition *outputs);
+ struct bNodeSocketTemplate *inputs, struct bNodeSocketTemplate *outputs);
void node_type_size(struct bNodeType *ntype, int width, int minwidth, int maxwidth);
void node_type_init(struct bNodeType *ntype, void (*initfunc)(struct bNode *));
void node_type_storage(struct bNodeType *ntype,
@@ -586,13 +555,16 @@
struct DerivedMesh *ntreeModifierExecTree(struct bNodeTree *ntree, struct Scene *scene, struct Object *ob, float (*inputVertexCos)[3]);
-/**/
+/* ************** PARTICLE NODES *************** */
+void ntreeParticleExecTree(struct bNodeTree *ntree, struct Scene *scene, struct Object *ob, struct ParticleSystem *psys);
+
+
+/*************************************************/
+
void init_nodesystem(void);
void free_nodesystem(void);
-/**/
-
void clear_scene_in_nodes(struct Main *bmain, struct Scene *sce);
#endif
Modified: branches/particles-2010/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/particles-2010/source/blender/blenkernel/intern/node.c 2011-02-09 15:38:49 UTC (rev 34743)
+++ branches/particles-2010/source/blender/blenkernel/intern/node.c 2011-02-09 15:38:50 UTC (rev 34744)
@@ -70,6 +70,7 @@
#include "SHD_node.h"
#include "TEX_node.h"
#include "MOD_node.h"
+#include "PAR_node.h"
bNodeTreeType *ntreeGetType(int type)
@@ -81,6 +82,7 @@
types[NTREE_COMPOSIT] = &ntreeType_Composite;
types[NTREE_TEXTURE] = &ntreeType_Texture;
types[NTREE_MODIFIER] = &ntreeType_Modifier;
+ types[NTREE_PARTICLE] = &ntreeType_Particle;
types_init = 0;
}
@@ -92,11 +94,6 @@
}
}
-bNodeSocketType *ntreeGetSocketType(int treetype, int socktype)
-{
- return &ntreeGetType(treetype)->sock_types[socktype];
-}
-
static bNodeType *node_get_type(bNodeTree *ntree, int type, ID *id)
{
bNodeType *ntype = ntreeGetType(ntree->type)->node_types.first;
@@ -144,26 +141,16 @@
ntree->init |= NTREE_TYPE_INIT;
}
-static bNodeSocket *make_socket(bNodeTree *ntree, int in_out, const char *name, int type)
+static bNodeSocket *make_socket(bNodeTree *UNUSED(ntree), int in_out, const char *name, int type)
{
bNodeSocket *sock= MEM_callocN(sizeof(bNodeSocket), "sock");
- bNodeSocketType *sti= ntreeGetSocketType(ntree->type, type);
BLI_strncpy(sock->name, name, NODE_MAXSTR);
sock->limit = (in_out==SOCK_IN ? 1 : 0xFFF);
sock->type= type;
sock->intern = 1;
- if (type == SOCK_ANY)
- sock->flag |= SOCK_ADAPT_TYPE;
- sock->flag |= SOCK_ADAPT_CONTEXT;
sock->storage = NULL;
- if (sti->data_size > 0) {
- sock->inputdata = MEM_callocN((size_t)sti->data_size, "Node socket input data");
- if (sti->data_set_default)
- sti->data_set_default(sock->inputdata);
- }
-
return sock;
}
@@ -1109,7 +1096,7 @@
/* ************** Add stuff ********** */
void nodeAddSocketsFromType(bNodeTree *ntree, bNode *node, bNodeType *ntype)
{
- bNodeSocketDefinition *sockdef;
+ bNodeSocketTemplate *sockdef;
bNodeSocket *sock;
float default_value[4];
@@ -1211,7 +1198,6 @@
node->flag= NODE_SELECT|ntype->flag;
node->width= ntype->width;
node->miniwidth= 42.0f; /* small value only, allows print of first chars */
- node->restype = SOCK_ANY;
if(type==NODE_GROUP)
node->id= (ID *)ngroup;
@@ -2293,7 +2279,7 @@
/* ************* node definition init ********** */
void node_type_base(bNodeType *ntype, int type, const char *name, short nclass, short flag,
- struct bNodeSocketDefinition *inputs, struct bNodeSocketDefinition *outputs)
+ struct bNodeSocketTemplate *inputs, struct bNodeSocketTemplate *outputs)
{
memset(ntype, 0, sizeof(bNodeType));
Modified: branches/particles-2010/source/blender/editors/space_node/drawnode.c
===================================================================
--- branches/particles-2010/source/blender/editors/space_node/drawnode.c 2011-02-09 15:38:49 UTC (rev 34743)
+++ branches/particles-2010/source/blender/editors/space_node/drawnode.c 2011-02-09 15:38:50 UTC (rev 34744)
@@ -281,53 +281,6 @@
uiItemR(layout, ptr, "operation", 0, "", ICON_NULL);
}
-/* socket button functions */
-
-/* NOTE: this is a block-menu, needs 0 events, otherwise the menu closes */
-static uiBlock *socket_vector_menu(bContext *C, ARegion *ar, void *socket_v)
-{
- bNodeSocket *sock= socket_v;
- uiBlock *block;
-
- SpaceNode *snode= CTX_wm_space_node(C);
- bNodeTree *ntree = snode->nodetree;
- PointerRNA ptr;
- uiLayout *layout;
-
- RNA_pointer_create(&ntree->id, &RNA_NodeSocket, sock, &ptr);
-
- block= uiBeginBlock(C, ar, "socket menu", UI_EMBOSS);
- uiBlockSetFlag(block, UI_BLOCK_KEEP_OPEN);
-
- layout= uiLayoutColumn(uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, sock->locx, sock->locy-8, 140, 20, U.uistyles.first), 0);
-
- uiItemR(layout, &ptr, "default_value", UI_ITEM_R_EXPAND, "", ICON_NULL);
-
- return block;
-}
-
-static void socket_default_input(uiLayout *layout, bContext *UNUSED(C), bNodeTree *ntree, bNode *UNUSED(node), bNodeSocket *sock)
-{
- uiLayout *row, *col;
- PointerRNA ptr;
- RNA_pointer_create(&ntree->id, &RNA_NodeSocket, sock, &ptr);
-
- row = uiLayoutRow(layout, 1);
- uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_LEFT);
- uiItemL(row, sock->name, 0);
- col = uiLayoutColumn(row, 0);
- uiItemR(col, &ptr, "default_value", 0, "", 0);
-}
-
-static void socket_menu_input(uiLayout *layout, bContext *UNUSED(C), bNodeTree *UNUSED(ntree), bNode *UNUSED(node), bNodeSocket *sock)
-{
- uiBlock *block= uiLayoutGetBlock(layout);
-
- uiDefBlockBut(block, socket_vector_menu, sock, sock->name,
- (short)sock->locx+NODE_DYS, (short)sock->locy-9, 140, 17,
- "");
-}
-
/* ****************** BUTTON CALLBACKS FOR SHADER NODES ***************** */
static void node_browse_text_cb(bContext *C, void *ntree_v, void *node_v)
@@ -515,11 +468,6 @@
}
}
-static void node_shader_init_socktype(bNodeSocketType *UNUSED(socktype))
-{
-
-}
-
/* ****************** BUTTON CALLBACKS FOR COMPOSITE NODES ***************** */
static void node_composit_buts_image(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -1227,11 +1175,6 @@
}
}
-static void node_composit_init_socktype(bNodeSocketType *UNUSED(socktype))
-{
-
-}
-
/* ****************** BUTTON CALLBACKS FOR TEXTURE NODES ***************** */
static void node_texture_buts_bricks(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
@@ -1360,36 +1303,8 @@
}
}
-static void node_texture_init_socktype(bNodeSocketType *UNUSED(socktype))
-{
-
-}
-
/* ****************** BUTTON CALLBACKS FOR MODIFIER NODES ***************** */
-static void node_modifier_init_socktype(bNodeSocketType *socktype)
-{
- /* clear */
- socktype->uifunc_input = NULL;
- socktype->uifunc_output = NULL;
-
- switch (socktype->type) {
- case SOCK_FLOAT:
- case SOCK_INT:
- case SOCK_BOOL:
- case SOCK_RGBA:
- case SOCK_STRING:
- socktype->uifunc_input = socket_default_input;
- break;
-
- case SOCK_VECTOR:
- case SOCK_QUAT:
- case SOCK_MATRIX:
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list