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. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to