Awesomeness! I love the eye idea. Damn viewer nodes! btw scons:
http://www.pasteall.org/20424

cheers!
Daniel Salazar
www.3developer.com



2011/3/31 Lukas Toenne <[email protected]>:
> Revision: 35927
>          
> http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35927
> Author:   lukastoenne
> Date:     2011-03-31 20:59:55 +0000 (Thu, 31 Mar 2011)
> Log Message:
> -----------
> First steps towards modifier nodes.
>
> Modifier node trees are created as true ID data blocks, i.e. they are created 
> and selected in the node editor space independently from any object selection 
> (similar to image editor). Any modifier node tree can then be linked to 
> objects in their modifier panel. When a node tree is linked to an object it 
> will replace the modifier stack to create the final derived mesh.
>
> Modifier nodes introduce a new socket type for meshes (using a 
> yellow-greenish color atm). These sockets denote the output of derived mesh 
> data by modifier nodes, just like stack-based modifiers have. The main 
> difference is that node modifiers can also have multiple inputs and/or 
> outputs, leading to a wide range of new possibilities. As a test case a 
> "join" node has been added, which takes two mesh inputs and merges them 
> together in a single output.
>
> Node outputs now also have a new button (with the eye icon), which is 
> supposed to replace viewer nodes (currently only used by modifier nodes). 
> Instead of creating a viewer node and linking it to an output, the view 
> button can be activated to show intermediate results. For the final result a 
> special output node is still the better choice, as it allows more fine-tuning 
> and doesn't have to change connections as often as the viewer.
>
> 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/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/editors/space_node/node_intern.h
>    branches/particles-2010/source/blender/editors/space_node/space_node.c
>    
> branches/particles-2010/source/blender/editors/transform/transform_generics.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/makesrna/intern/rna_nodetree_types.h
>    branches/particles-2010/source/blender/nodes/CMakeLists.txt
>    branches/particles-2010/source/blender/nodes/MOD_node.h
>    
> 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_common.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/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/MOD_util.c
>    branches/particles-2010/source/blender/nodes/intern/MOD_util.h
>    branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_camera.c
>    branches/particles-2010/source/blender/nodes/intern/SHD_nodes/SHD_common.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/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_common.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/node_common.c
>    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_util.h
>
> Added Paths:
> -----------
>    branches/particles-2010/release/scripts/ui/properties_modifier_node.py
>    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/MOD_common.c
>    branches/particles-2010/source/blender/nodes/intern/MOD_nodes/MOD_join.c
>    branches/particles-2010/source/blender/nodes/intern/node_socket.c
>    branches/particles-2010/source/blender/nodes/intern/node_socket.h
>
> Added: branches/particles-2010/release/scripts/ui/properties_modifier_node.py
> ===================================================================
> --- branches/particles-2010/release/scripts/ui/properties_modifier_node.py    
>                           (rev 0)
> +++ branches/particles-2010/release/scripts/ui/properties_modifier_node.py    
>   2011-03-31 20:59:55 UTC (rev 35927)
> @@ -0,0 +1,72 @@
> +# ##### BEGIN GPL LICENSE BLOCK #####
> +#
> +#  This program is free software; you can redistribute it and/or
> +#  modify it under the terms of the GNU General Public License
> +#  as published by the Free Software Foundation; either version 2
> +#  of the License, or (at your option) any later version.
> +#
> +#  This program is distributed in the hope that it will be useful,
> +#  but WITHOUT ANY WARRANTY; without even the implied warranty of
> +#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +#  GNU General Public License for more details.
> +#
> +#  You should have received a copy of the GNU General Public License
> +#  along with this program; if not, write to the Free Software Foundation,
> +#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
> +#
> +# ##### END GPL LICENSE BLOCK #####
> +
> +# <pep8 compliant>
> +import bpy
> +
> +
> +class DATA_PT_modifier_node(bpy.types.Panel):
> +    bl_space_type = 'NODE_EDITOR'
> +    bl_region_type = 'UI'
> +    #bl_context = "modifier"
> +    bl_label = "Properties"
> +
> +    @classmethod
> +    def poll(cls, context):
> +        return (context.active_node)
> +
> +    def draw(self, context):
> +        layout = self.layout
> +
> +        node = context.active_node
> +
> +        # match enum type to our functions, avoids a lookup table.
> +        getattr(self, node.type)(layout, node)
> +
> +    # the mt.type enum is (ab)used for a lookup on function names
> +    # ...to avoid lengthy if statements
> +    # so each type must have a function here.
> +
> +    def MESH(self, layout, node):
> +        col = layout.column()
> +        col.prop(node, "use_external")
> +        if (node.use_external):
> +            col.template_ID(node, "external_mesh")
> +
> +    def TRANSFORM(self, layout, node):
> +        col = layout.column()
> +        row = col.row(align=1)
> +        row.prop(node, "translate")
> +        row = col.row(align=1)
> +        row.prop(node, "rotate")
> +        row = col.row(align=1)
> +        row.prop(node, "scale")
> +
> +    def JOIN(self, layout, node):
> +        pass
> +
> +
> +def register():
> +    bpy.utils.register_module(__name__)
> +
> +
> +def unregister():
> +    bpy.utils.unregister_module(__name__)
> +
> +if __name__ == "__main__":
> +    register()
>
> Modified: branches/particles-2010/source/blender/blenkernel/BKE_node.h
> ===================================================================
> --- branches/particles-2010/source/blender/blenkernel/BKE_node.h        
> 2011-03-31 20:57:17 UTC (rev 35926)
> +++ branches/particles-2010/source/blender/blenkernel/BKE_node.h        
> 2011-03-31 20:59:55 UTC (rev 35927)
> @@ -87,12 +87,20 @@
>        struct bNodeSocket *sock;               /* used to hold verified 
> socket */
>  } bNodeSocketTemplate;
>
> -/* Symbols for sockets */
> -typedef enum NodeSocketSymbol {
> -       SOCK_CIRCLE,
> -       SOCK_SQUARE
> -} NodeSocketSymbol;
> +typedef struct bNodeSocketConverter {
> +       char ui_name[32];
> +} bNodeSocketConverter;
>
> +typedef struct bNodeSocketType {
> +       int type;
> +       char ui_name[32];
> +       char ui_description[128];
> +       int ui_icon;
> +       char ui_color[4];
> +
> +       int (*get_converters)(int type, struct bNodeSocketConverter **conv, 
> int *totconv);
> +} bNodeSocketType;
> +
>  typedef struct bNodeTemplate {
>        int type;
>
> @@ -102,6 +110,8 @@
>
>  typedef struct bNodeType {
>        void *next,*prev;
> +       short needs_free;               /* set for allocated types that need 
> to be freed */
> +
>        int type;
>        char name[32];
>        float width, minwidth, maxwidth;
> @@ -129,8 +139,8 @@
>        void (*verifyfunc)(struct bNodeTree *ntree, struct bNode *node, struct 
> ID *id);
>
>        void (*initfunc)(struct bNodeTree *ntree, struct bNode *node, struct 
> bNodeTemplate *ntemp);
> -       void (*freestoragefunc)(struct bNode *);
> -       void (*copystoragefunc)(struct bNode *, struct bNode *);
> +       void (*freestoragefunc)(struct bNode *node);
> +       void (*copystoragefunc)(struct bNode *node, struct bNode *target);
>        struct bNodeTemplate (*templatefunc)(struct bNode *);
>
>        int (*validfunc)(struct bNodeTree *ntree, struct bNodeTemplate *ntemp);
> @@ -194,6 +204,7 @@
>  #define NODE_CLASS_MATH_ROTATION       19
>  #define NODE_CLASS_PARTICLES           25
>  #define NODE_CLASS_TRANSFORM           30
> +#define NODE_CLASS_COMBINE                     31
>  #define NODE_CLASS_LAYOUT                      100
>
>  /* enum values for input/output */
> @@ -236,6 +247,7 @@
>
>  struct bNodeTreeType *ntreeGetType(int type);
>  struct bNodeType *ntreeGetNodeType(struct bNodeTree *ntree);
> +struct bNodeSocketType *ntreeGetSocketType(int type);
>
>  struct bNodeTree *ntreeAddTree(const char *name, int type, int nodetype);
>  void                   ntreeInitTypes(struct bNodeTree *ntree);
> @@ -256,7 +268,11 @@
>
>  void                   ntreeGetDependencyList(struct bNodeTree *ntree, 
> struct bNode ***deplist, int *totnodes);
>
> +/* XXX old trees handle output flags automatically based on special output 
> node types and last active selection.
> + * new tree types have a per-output socket flag to indicate the final output 
> to use explicitly.
> + */
>  void                   ntreeSetOutput(struct bNodeTree *ntree);
> +void                   ntreeSetViewerOutput(struct bNodeTree *ntree, struct 
> bNodeSocket *output);
>  void                   ntreeInitPreview(struct bNodeTree *, int xsize, int 
> ysize);
>  void                   ntreeClearPreview(struct bNodeTree *ntree);
>
> @@ -270,6 +286,11 @@
>
>  /* ************** GENERIC API, NODES *************** */
>
> +struct bNodeSocket *nodeAddSocket(struct bNodeTree *ntree, struct bNode 
> *node, int in_out, const char *name, int type);
> +struct bNodeSocket *nodeInsertSocket(struct bNodeTree *ntree, struct bNode 
> *node, int in_out, struct bNodeSocket *next_sock, const char *name, int type);
> +void nodeRemoveSocket(struct bNodeTree *ntree, struct bNode *node, struct 
> bNodeSocket *sock);
> +void nodeRemoveAllSockets(struct bNodeTree *ntree, struct bNode *node);
> +
>  void                   nodeAddToPreview(struct bNode *, float *, int, int, 
> int);
>
>  struct bNode   *nodeAddNode(struct bNodeTree *ntree, struct bNodeTemplate 
> *ntemp);
> @@ -285,7 +306,7 @@
>  void                   nodeAssignInputPanel(struct bNode *node, struct 
> bNodeSocket *socket, struct bNodeSocketPanel *panel);
>  void                   nodeAssignOutputPanel(struct bNode *node, struct 
> bNodeSocket *socket, struct bNodeSocketPanel *panel);
>
> -void                   nodeRegisterType(struct ListBase *typelist, const 
> struct bNodeType *ntype) ;
> +void                   nodeRegisterType(struct ListBase *typelist, struct 
> bNodeType *ntype) ;
>  void                   nodeMakeDynamicType(struct bNode *node);
>  int                            nodeDynamicUnlinkText(struct ID *txtid);
>
> @@ -336,8 +357,8 @@
>  void                   nodeEditClear(struct bNode *node);
>
>  /* 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 
> bNodeSocketTemplate *inputs, struct bNodeSocketTemplate *outputs);
> +void                   node_type_base(struct bNodeType *ntype, int type, 
> const char *name, short nclass, short flag);
> +void                   node_type_socket_templates(struct bNodeType *ntype, 
> 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 bNodeTree *ntree, struct bNode *node, struct bNodeTemplate 
> *ntemp));
>  void                   node_type_valid(struct bNodeType *ntype, int 
> (*validfunc)(struct bNodeTree *ntree, struct bNodeTemplate *ntemp));
> @@ -365,13 +386,6 @@
>                                                                   void 
> (*freeexecfunc)(struct bNode *node, void *nodedata),
>                                                                   void 
> (*newexecfunc)(void *data, int thread, struct bNode *, void *nodedata, struct 
> bNodeStack **, struct bNodeStack **));
>
> -/* ************** INTERNAL EDITOR FUNCTIONS *************** */
> -
> -struct bNodeSocket *node_add_socket(struct bNodeTree *ntree, ListBase *lb, 
> int in_out, const char *name, int type);
> -struct bNodeSocket *node_insert_socket(struct bNodeTree *ntree, ListBase 
> *lb, int in_out, struct bNodeSocket *next_sock, const char *name, int type);
> -void node_remove_socket(struct bNodeTree *ntree, ListBase *lb, struct 
> bNodeSocket *sock);
> -void node_remove_all_sockets(struct bNodeTree *ntree, struct bNode *node);
> -
>  /* ************** COMMON NODES *************** */
>
>  #define NODE_GROUP             2
> @@ -625,10 +639,11 @@
>  #define MOD_NODE_MESH                          1000
>
>  /* transform */
> -#define MOD_NODE_TRANSLATE                     1101
> -#define MOD_NODE_ROTATE                                1102
> -#define MOD_NODE_SCALE                         1103
> +#define MOD_NODE_TRANSFORM                     1100
>
> +/* combine */
> +#define MOD_NODE_JOIN                  1200
> +
>  /* API */
>  struct DerivedMesh *ntreeModifierExecTree(struct bNodeTree *ntree, struct 
> Scene *scene, struct Object *ob, float (*inputVertexCos)[3]);
>
>
> Modified: 
> branches/particles-2010/source/blender/blenkernel/intern/DerivedMesh.c
> ===================================================================
> --- branches/particles-2010/source/blender/blenkernel/intern/DerivedMesh.c    
>   2011-03-31 20:57:17 UTC (rev 35926)
> +++ branches/particles-2010/source/blender/blenkernel/intern/DerivedMesh.c    
>   2011-03-31 20:59:55 UTC (rev 35927)
> @@ -1694,12 +1694,19 @@
>                                *deform_r = CDDM_from_mesh(me, ob);
>                }
>
> -               if(inputVertexCos)
> -                       deformedVerts = inputVertexCos;
> -               else
> -                       deformedVerts = mesh_getVertexCos(me, &numVerts);
> +               dm = ntreeModifierExecTree(ob->modifier_nodetree, scene, ob, 
> inputVertexCos);
>
> -               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);
> +               }
>        }
>        else {
>                if(!skipVirtualArmature) {
>
> Modified: branches/particles-2010/source/blender/blenkernel/intern/node.c
> ===================================================================
> --- branches/particles-2010/source/blender/blenkernel/intern/node.c     
> 2011-03-31 20:57:17 UTC (rev 35926)
> +++ branches/particles-2010/source/blender/blenkernel/intern/node.c     
> 2011-03-31 20:59:55 UTC (rev 35927)
> @@ -72,6 +72,7 @@
>
>  #include "intern/node_common.h"
>  #include "intern/node_exec.h"
> +#include "intern/node_socket.h"
>
>  #include "CMP_node.h"
>  #include "SHD_node.h"
> @@ -116,6 +117,24 @@
>        return node_get_type(ntree, ntree->nodetype);
>  }
>
> +bNodeSocketType *ntreeGetSocketType(int type)
> +{
> +       static bNodeSocketType *types[NUM_SOCKET_TYPES]= {NULL};
> +       static int types_init = 1;
> +
>
> @@ Diff output truncated at 10240 characters. @@
> _______________________________________________
> Bf-blender-cvs mailing list
> [email protected]
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>
_______________________________________________
Bf-committers mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to