Revision: 36468
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36468
Author:   lukastoenne
Date:     2011-05-03 18:39:32 +0000 (Tue, 03 May 2011)
Log Message:
-----------
Temporary switch to a cleaned version for trunk merge. All actual new nodes and 
tree types have been removed as well as experimental features.

Modified Paths:
--------------
    branches/particles-2010/source/blender/blenkernel/BKE_node.h
    branches/particles-2010/source/blender/blenkernel/intern/DerivedMesh.c
    branches/particles-2010/source/blender/blenkernel/intern/node.c
    branches/particles-2010/source/blender/blenloader/intern/readfile.c
    branches/particles-2010/source/blender/editors/space_node/drawnode.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/editors/space_node/node_header.c
    branches/particles-2010/source/blender/makesdna/DNA_node_types.h
    branches/particles-2010/source/blender/makesdna/DNA_object_types.h
    branches/particles-2010/source/blender/makesrna/intern/rna_nodetree.c
    branches/particles-2010/source/blender/makesrna/intern/rna_nodetree_types.h
    branches/particles-2010/source/blender/makesrna/intern/rna_object.c
    branches/particles-2010/source/blender/nodes/CMakeLists.txt
    branches/particles-2010/source/blender/nodes/intern/node_exec.c
    branches/particles-2010/source/blender/nodes/intern/node_exec.h
    branches/particles-2010/source/blender/nodes/intern/node_socket.c
    branches/particles-2010/source/blender/nodes/intern/node_socket.h

Removed Paths:
-------------
    branches/particles-2010/source/blender/nodes/MOD_node.h
    branches/particles-2010/source/blender/nodes/PAR_node.h
    branches/particles-2010/source/blender/nodes/intern/MOD_exec.c
    branches/particles-2010/source/blender/nodes/intern/MOD_exec.h
    branches/particles-2010/source/blender/nodes/intern/MOD_nodes/
    branches/particles-2010/source/blender/nodes/intern/MOD_nodetree.c
    branches/particles-2010/source/blender/nodes/intern/MOD_util.c
    branches/particles-2010/source/blender/nodes/intern/MOD_util.h
    branches/particles-2010/source/blender/nodes/intern/PAR_nodetree.c

Modified: branches/particles-2010/source/blender/blenkernel/BKE_node.h
===================================================================
--- branches/particles-2010/source/blender/blenkernel/BKE_node.h        
2011-05-03 18:31:01 UTC (rev 36467)
+++ branches/particles-2010/source/blender/blenkernel/BKE_node.h        
2011-05-03 18:39:32 UTC (rev 36468)
@@ -81,7 +81,14 @@
 
 /* ************** NODE TYPE DEFINITIONS ***** */
 
-/* Compact definition of a static node socket */
+/** Compact definition of a node socket.
+ * Can be used to quickly define a list of static sockets for a node,
+ * which are added to each new node of that type. 
+ *
+ * \deprecated New nodes should add default sockets in the initialization
+ * function instead. This struct is mostly kept for old nodes and should
+ * be removed some time.
+ */
 typedef struct bNodeSocketTemplate {
        int type, limit;
        char name[32];
@@ -96,9 +103,11 @@
 typedef void (*NodeSocketButtonFunction)(const struct bContext *C, struct 
uiBlock *block, 
                                                                                
 struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock,
                                                                                
 const char *name, int x, int y, int width);
-/* visitor function for socket converters */
-typedef void (*SocketConvWalkFunc)(void *userdata, int converter, const char 
*name);
+typedef void (*NodeSocketConverterWalkFunction)(void *userdata, int type, 
const char *name);
 
+/** Defines a socket type.
+ * Defines the appearance and behavior of a socket in the UI.
+ */
 typedef struct bNodeSocketType {
        int type;
        char ui_name[32];
@@ -110,18 +119,12 @@
        int value_structsize;
        
        NodeSocketButtonFunction buttonfunc;
-       
-       void (*foreach_converter)(void *userdata, int type, SocketConvWalkFunc 
cb);
-       
-       /* functions for sources of this type */
-       void *(*source_read)(struct bNodeDataSource *source, int key);
-       void (*source_write)(struct bNodeDataSource *source, int key, void 
*data);
-       /* get function pointers for readers of this type */
-       void (*make_reader_buffer)(struct bNodeDataReader *reader, int 
converter);
-       void (*make_reader_delegate)(struct bNodeDataReader *reader, int 
converter);
-       int (*reader_size)(struct bNodeDataReader *reader);
+       void (*foreach_converter)(void *userdata, int type, 
NodeSocketConverterWalkFunction cb);
 } bNodeSocketType;
 
+/** Template for creating a node.
+ * Stored required parameters to make a new node of a specific type.
+ */
 typedef struct bNodeTemplate {
        int type;
        
@@ -129,6 +132,10 @@
        struct bNodeTree *ngroup;
 } bNodeTemplate;
 
+/** Defines a node type.
+ * Initial attributes and constants for a node as well as callback functions
+ * implementing the node behavior.
+ */
 typedef struct bNodeType {
        void *next,*prev;
        short needs_free;               /* set for allocated types that need to 
be freed */
@@ -144,33 +151,41 @@
        
        char storagename[64];                   /* struct name for DNA */
        
-       /* this line is set on startup of blender */
-       /* basic drawing */
+       /// Main draw function for the node.
        void (*drawfunc)(const struct bContext *C, struct ARegion *ar, struct 
SpaceNode *snode, struct bNodeTree *ntree, struct bNode *node);
+       /// Updates the node geometry attributes according to internal state 
before actual drawing.
        void (*drawupdatefunc)(const struct bContext *C, struct bNodeTree 
*ntree, struct bNode *node);
-       /* node options ui */
+       /// Draw the option buttons on the node.
        void (*uifunc)(struct uiLayout *, struct bContext *C, struct PointerRNA 
*ptr);
-       /* detail buttons on panel */
+       /// Additional parameters in the side panel.
        void (*buttonfunc)(struct uiLayout *, struct bContext *C, struct 
PointerRNA *ptr);
+       /// Optional custom label function for the node header.
        const char *(*labelfunc)(struct bNode *);
+       /// Optional custom resize handle polling.
        int (*resize_area_func)(struct bNode *node, int x, int y);
        
-       /* called when the node is updated (e.g. linked) in the editor. */
+       /// Called when the node is updated in the editor.
        void (*updatefunc)(struct bNodeTree *ntree, struct bNode *node);
-       /* verify when internal ID data has changed */
+       /// Check and update if internal ID data has changed.
        void (*verifyfunc)(struct bNodeTree *ntree, struct bNode *node, struct 
ID *id);
        
+       /// Initialize a new node instance of this type after creation.
        void (*initfunc)(struct bNodeTree *ntree, struct bNode *node, struct 
bNodeTemplate *ntemp);
+       /// Free the custom storage data.
        void (*freestoragefunc)(struct bNode *node);
+       /// Make a copy of the custom storage data.
        void (*copystoragefunc)(struct bNode *node, struct bNode *target);
-       struct bNodeTemplate (*templatefunc)(struct bNode *);
        
+       /// Create a template from an existing node.
+       struct bNodeTemplate (*templatefunc)(struct bNode *);
+       /** If a node can be made from the template in the given node tree.
+        * \example Node groups can not be created inside their own node tree.
+        */
        int (*validfunc)(struct bNodeTree *ntree, struct bNodeTemplate *ntemp);
        
-       /* Tree functions: These are called on node trees associated to this 
node type.
-        * No actual instance of a node needs to exist!
-        */
+       /// Initialize a node tree associated to this node type.
        void (*inittreefunc)(struct bNodeTree *ntree);
+       /// Update a node tree associated to this node type.
        void (*updatetreefunc)(struct bNodeTree *ntree);
        
        /* group edit callbacks for operators */
@@ -338,7 +353,6 @@
 struct bNodeLink *nodeAddLink(struct bNodeTree *ntree, struct bNode *fromnode, 
struct bNodeSocket *fromsock, struct bNode *tonode, struct bNodeSocket *tosock);
 void                   nodeRemLink(struct bNodeTree *ntree, struct bNodeLink 
*link);
 void                   nodeRemSocketLinks(struct bNodeTree *ntree, struct 
bNodeSocket *sock);
-void                   nodeInitLinkConverter(struct bNodeLink *link);
 
 void                   nodeSpaceCoords(struct bNode *node, float *locx, float 
*locy);
 void                   nodeAttachNode(struct bNode *node, struct bNode 
*parent);
@@ -656,28 +670,6 @@
 char* ntreeTexOutputMenu(struct bNodeTree *ntree);
 
 
-/* ************** MODIFIER NODES *************** */
-
-/* input */
-#define MOD_NODE_MESH                          1000
-#define MOD_NODE_VERTEXGROUP           1001
-
-/* transform */
-#define MOD_NODE_TRANSFORM                     1100
-
-/* combine */
-#define MOD_NODE_JOIN                          1200
-#define MOD_NODE_MORPH                         1201
-
-/* API */
-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);

Modified: branches/particles-2010/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/particles-2010/source/blender/blenkernel/intern/DerivedMesh.c      
2011-05-03 18:31:01 UTC (rev 36467)
+++ branches/particles-2010/source/blender/blenkernel/intern/DerivedMesh.c      
2011-05-03 18:39:32 UTC (rev 36468)
@@ -1686,290 +1686,268 @@
 
        modifiers_clearErrors(ob);
        
-       if (ob->modifier_nodetree) {
-               if(useDeform) {
-                       if (deform_r)
-                               *deform_r = CDDM_from_mesh(me, ob);
-               }
-               
-               dm = ntreeModifierExecTree(ob->modifier_nodetree, scene, ob, 
inputVertexCos);
-               
-               if (dm) {
-                       numVerts = dm->getNumVerts(dm);
-                       deformedVerts = MEM_mallocN(sizeof(*deformedVerts) * 
numVerts, "dfmv");
-                       dm->getVertCos(dm, deformedVerts);
-               }
-               else {
-                       if(inputVertexCos)
-                               deformedVerts = inputVertexCos;
-                       else
-                               deformedVerts = mesh_getVertexCos(me, 
&numVerts);
-               }
+       if(!skipVirtualArmature) {
+               firstmd = modifiers_getVirtualModifierList(ob);
        }
        else {
-               if(!skipVirtualArmature) {
-                       firstmd = modifiers_getVirtualModifierList(ob);
-               }
-               else {
-                       /* game engine exception */
-                       firstmd = ob->modifiers.first;
-                       if(firstmd && firstmd->type == eModifierType_Armature)
-                               firstmd = firstmd->next;
-               }
-
-               md = firstmd;
+               /* game engine exception */
+               firstmd = ob->modifiers.first;
+               if(firstmd && firstmd->type == eModifierType_Armature)
+                       firstmd = firstmd->next;
+       }
+       
+       md = firstmd;
+       
+       if(useRenderParams) required_mode = eModifierMode_Render;
+       else required_mode = eModifierMode_Realtime;
+       
+       datamasks = modifiers_calcDataMasks(scene, ob, md, dataMask, 
required_mode);
+       curr = datamasks;
+       
+       if(deform_r) *deform_r = NULL;
+       *final_r = NULL;
+       
+       if(useDeform) {
+               if(inputVertexCos)
+                       deformedVerts = inputVertexCos;
                
-               if(useRenderParams) required_mode = eModifierMode_Render;
-               else required_mode = eModifierMode_Realtime;
-               
-               datamasks = modifiers_calcDataMasks(scene, ob, md, dataMask, 
required_mode);
-               curr = datamasks;
-               
-               if(deform_r) *deform_r = NULL;
-               *final_r = NULL;
-               
-               if(useDeform) {
-                       if(inputVertexCos)
-                               deformedVerts = inputVertexCos;
+               /* Apply all leading deforming modifiers */
+               for(;md; md = md->next, curr = curr->next) {
+                       ModifierTypeInfo *mti = modifierType_getInfo(md->type);
                        
-                       /* Apply all leading deforming modifiers */
-                       for(;md; md = md->next, curr = curr->next) {
-                               ModifierTypeInfo *mti = 
modifierType_getInfo(md->type);
+                       md->scene= scene;
+                       
+                       if(!modifier_isEnabled(scene, md, required_mode)) 
continue;
+                       if(useDeform < 0 && mti->dependsOnTime && 
mti->dependsOnTime(md)) continue;
+                       
+                       if(mti->type == eModifierTypeType_OnlyDeform) {
+                               if(!deformedVerts)
+                                       deformedVerts = mesh_getVertexCos(me, 
&numVerts);
                                
-                               md->scene= scene;
-                               
-                               if(!modifier_isEnabled(scene, md, 
required_mode)) continue;
-                               if(useDeform < 0 && mti->dependsOnTime && 
mti->dependsOnTime(md)) continue;
-                               
-                               if(mti->type == eModifierTypeType_OnlyDeform) {
-                                       if(!deformedVerts)
-                                               deformedVerts = 
mesh_getVertexCos(me, &numVerts);
-                                       
-                                       mti->deformVerts(md, ob, NULL, 
deformedVerts, numVerts, useRenderParams, useDeform);
-                               } else {
-                                       break;
-                               }
-                               
-                               /* grab modifiers until index i */
-                               if((index >= 0) && (modifiers_indexInObject(ob, 
md) >= index))
-                                       break;
+                               mti->deformVerts(md, ob, NULL, deformedVerts, 
numVerts, useRenderParams, useDeform);
+                       } else {
+                               break;
                        }
                        
-                       /* Result of all leading deforming modifiers is cached 
for
+                       /* grab modifiers until index i */
+                       if((index >= 0) && (modifiers_indexInObject(ob, md) >= 
index))
+                               break;
+               }
+               
+               /* Result of all leading deforming modifiers is cached for
                         * places that wish to use the original mesh but with 
deformed
                         * coordinates (vpaint, etc.)
                         */
-                       if (deform_r) {

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to