[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43265] trunk/blender/source/blender:

Peter Larabell xgl.asyliax at gmail.com
Tue Jan 10 20:08:08 CET 2012


Revision: 43265
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43265
Author:   xglasyliax
Date:     2012-01-10 19:08:08 +0000 (Tue, 10 Jan 2012)
Log Message:
-----------


Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_node.h
    trunk/blender/source/blender/blenkernel/intern/node.c
    trunk/blender/source/blender/editors/space_node/drawnode.c
    trunk/blender/source/blender/makesrna/RNA_access.h
    trunk/blender/source/blender/makesrna/intern/rna_nodetree.c
    trunk/blender/source/blender/makesrna/intern/rna_nodetree_types.h
    trunk/blender/source/blender/nodes/CMakeLists.txt
    trunk/blender/source/blender/nodes/NOD_composite.h

Added Paths:
-----------
    trunk/blender/source/blender/nodes/composite/nodes/node_composite_doubleEdgeMask.c

Modified: trunk/blender/source/blender/blenkernel/BKE_node.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_node.h	2012-01-10 19:01:27 UTC (rev 43264)
+++ trunk/blender/source/blender/blenkernel/BKE_node.h	2012-01-10 19:08:08 UTC (rev 43265)
@@ -642,6 +642,7 @@
 #define CMP_NODE_STABILIZE2D	263
 #define CMP_NODE_TRANSFORM	264
 #define CMP_NODE_MOVIEDISTORTION	265
+#define CMP_NODE_DOUBLEEDGEMASK    266
 
 #define CMP_NODE_GLARE		301
 #define CMP_NODE_TONEMAP	302

Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c	2012-01-10 19:01:27 UTC (rev 43264)
+++ trunk/blender/source/blender/blenkernel/intern/node.c	2012-01-10 19:08:08 UTC (rev 43265)
@@ -1839,6 +1839,7 @@
 	register_node_type_cmp_vecblur(ttype);
 	register_node_type_cmp_dilateerode(ttype);
 	register_node_type_cmp_defocus(ttype);
+	register_node_type_cmp_doubleedgemask(ttype);
 	
 	register_node_type_cmp_valtorgb(ttype);
 	register_node_type_cmp_rgbtobw(ttype);

Modified: trunk/blender/source/blender/editors/space_node/drawnode.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/drawnode.c	2012-01-10 19:01:27 UTC (rev 43264)
+++ trunk/blender/source/blender/editors/space_node/drawnode.c	2012-01-10 19:08:08 UTC (rev 43265)
@@ -1472,6 +1472,18 @@
 	uiItemR(col, ptr, "factor", 0, NULL, ICON_NONE);
 }
 
+static void node_composit_buts_double_edge_mask(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+	uiLayout *col;
+
+	col= uiLayoutColumn(layout, 0);
+
+	uiItemL(col, "Inner Edge:", ICON_NONE);
+	uiItemR(col, ptr, "inner_mode", 0, "", ICON_NONE);
+	uiItemL(col, "Buffer Edge:", ICON_NONE);
+	uiItemR(col, ptr, "edge_mode", 0, "", ICON_NONE);
+}
+
 static void node_composit_buts_map_value(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
 {
 	uiLayout *sub, *col;
@@ -1926,6 +1938,9 @@
 		case CMP_NODE_ID_MASK:
 			ntype->uifunc= node_composit_buts_id_mask;
 			break;
+		case CMP_NODE_DOUBLEEDGEMASK:
+			ntype->uifunc= node_composit_buts_double_edge_mask;
+			break;
 		case CMP_NODE_MATH:
 			ntype->uifunc= node_buts_math;
 			break;

Modified: trunk/blender/source/blender/makesrna/RNA_access.h
===================================================================
--- trunk/blender/source/blender/makesrna/RNA_access.h	2012-01-10 19:01:27 UTC (rev 43264)
+++ trunk/blender/source/blender/makesrna/RNA_access.h	2012-01-10 19:08:08 UTC (rev 43265)
@@ -136,6 +136,7 @@
 extern StructRNA RNA_CompositorNodeGlare;
 extern StructRNA RNA_CompositorNodeHueSat;
 extern StructRNA RNA_CompositorNodeIDMask;
+extern StructRNA RNA_CompositorNodeDoubleEdgeMask;
 extern StructRNA RNA_CompositorNodeImage;
 extern StructRNA RNA_CompositorNodeInvert;
 extern StructRNA RNA_CompositorNodeLensdist;

Modified: trunk/blender/source/blender/makesrna/intern/rna_nodetree.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_nodetree.c	2012-01-10 19:01:27 UTC (rev 43264)
+++ trunk/blender/source/blender/makesrna/intern/rna_nodetree.c	2012-01-10 19:08:08 UTC (rev 43265)
@@ -2125,6 +2125,35 @@
 	RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
 }
 
+static void def_cmp_double_edge_mask(StructRNA * srna)
+{
+	PropertyRNA *prop;
+
+	static EnumPropertyItem BufEdgeMode_items[] = {
+		{0, "BLEED_OUT",  0, "Bleed Out",     "Allow mask pixels to bleed along edges"},
+		{1, "KEEP_IN",  0, "Keep In",     "Restrict mask pixels from touching edges"},
+		{0, NULL, 0, NULL, NULL}
+	};
+
+	static EnumPropertyItem InnerEdgeMode_items[] = {
+		{0, "ALL", 0, "All", "All pixels on inner mask edge are considered during mask calculation"},
+		{1, "ADJACENT_ONLY", 0, "Adjacent Only", "Only inner mask pixels adjacent to outer mask pixels are considered during mask calculation"},
+		{0, NULL, 0, NULL, NULL}
+	};
+
+	prop = RNA_def_property(srna, "inner_mode", PROP_ENUM, PROP_NONE);
+	RNA_def_property_enum_sdna(prop, NULL, "custom2");
+	RNA_def_property_enum_items(prop, InnerEdgeMode_items);
+	RNA_def_property_ui_text(prop, "Inner Edge Mode", "");
+	RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+	prop = RNA_def_property(srna, "edge_mode", PROP_ENUM, PROP_NONE);
+	RNA_def_property_enum_sdna(prop, NULL, "custom1");
+	RNA_def_property_enum_items(prop, BufEdgeMode_items);
+	RNA_def_property_ui_text(prop, "Buffer Edge Mode", "");
+	RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+}
+
 static void def_cmp_map_uv(StructRNA *srna)
 {
 	PropertyRNA *prop;
@@ -3375,4 +3404,3 @@
 #undef NODE_DEFINE_SUBTYPES
 
 #endif
-

Modified: trunk/blender/source/blender/makesrna/intern/rna_nodetree_types.h
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_nodetree_types.h	2012-01-10 19:01:27 UTC (rev 43264)
+++ trunk/blender/source/blender/makesrna/intern/rna_nodetree_types.h	2012-01-10 19:08:08 UTC (rev 43265)
@@ -130,6 +130,7 @@
 DefNode( CompositorNode, CMP_NODE_SPLITVIEWER,    def_cmp_splitviewer,    "SPLITVIEWER",    SplitViewer,      "Split Viewer",      ""              )
 DefNode( CompositorNode, CMP_NODE_MAP_UV,         def_cmp_map_uv,         "MAP_UV",         MapUV,            "Map UV",            ""              )
 DefNode( CompositorNode, CMP_NODE_ID_MASK,        def_cmp_id_mask,        "ID_MASK",        IDMask,           "ID Mask",           ""              )
+DefNode( CompositorNode, CMP_NODE_DOUBLEEDGEMASK, def_cmp_double_edge_mask,"DOUBLEEDGEMASK", DoubleEdgeMask, "Double Edge Mask",   ""              )
 DefNode( CompositorNode, CMP_NODE_DEFOCUS,        def_cmp_defocus,        "DEFOCUS",        Defocus,          "Defocus",           ""              )
 DefNode( CompositorNode, CMP_NODE_DISPLACE,       0,                      "DISPLACE",       Displace,         "Displace",          ""              )
 DefNode( CompositorNode, CMP_NODE_COMBHSVA,       0,                      "COMBHSVA",       CombHSVA,         "Combine HSVA",      ""              )

Modified: trunk/blender/source/blender/nodes/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/nodes/CMakeLists.txt	2012-01-10 19:01:27 UTC (rev 43264)
+++ trunk/blender/source/blender/nodes/CMakeLists.txt	2012-01-10 19:08:08 UTC (rev 43265)
@@ -59,6 +59,7 @@
 	composite/nodes/node_composite_composite.c
 	composite/nodes/node_composite_crop.c
 	composite/nodes/node_composite_curves.c
+	composite/nodes/node_composite_doubleEdgeMask.c
 	composite/nodes/node_composite_defocus.c
 	composite/nodes/node_composite_diffMatte.c
 	composite/nodes/node_composite_dilate.c

Modified: trunk/blender/source/blender/nodes/NOD_composite.h
===================================================================
--- trunk/blender/source/blender/nodes/NOD_composite.h	2012-01-10 19:01:27 UTC (rev 43264)
+++ trunk/blender/source/blender/nodes/NOD_composite.h	2012-01-10 19:08:08 UTC (rev 43265)
@@ -80,6 +80,7 @@
 void register_node_type_cmp_vecblur(struct bNodeTreeType *ttype);
 void register_node_type_cmp_dilateerode(struct bNodeTreeType *ttype);
 void register_node_type_cmp_defocus(struct bNodeTreeType *ttype);
+void register_node_type_cmp_doubleedgemask(struct bNodeTreeType *ttype);
 
 void register_node_type_cmp_valtorgb(struct bNodeTreeType *ttype);
 void register_node_type_cmp_rgbtobw(struct bNodeTreeType *ttype);

Added: trunk/blender/source/blender/nodes/composite/nodes/node_composite_doubleEdgeMask.c
===================================================================
--- trunk/blender/source/blender/nodes/composite/nodes/node_composite_doubleEdgeMask.c	                        (rev 0)
+++ trunk/blender/source/blender/nodes/composite/nodes/node_composite_doubleEdgeMask.c	2012-01-10 19:08:08 UTC (rev 43265)
@@ -0,0 +1,1183 @@
+/*
+ * $Id: node_composite_doubleEdgeMask.c 35237 2012-01-01 03:06:22Z xgl.asyliax $
+ *
+ * ***** 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.
+ *
+ * The Original Code is Copyright (C) 2011 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Peter Larabell.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/nodes/composite/nodes/node_composite_doubleEdgeMask.c
+ *  \ingroup cmpnodes
+ */
+#include "node_composite_util.h"
+/* **************** DblEdgMatte  ******************** */
+
+
+static bNodeSocketTemplate cmp_node_doubleedgemask_in[]= {
+    { SOCK_FLOAT, 1, "Inner Mask", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f, PROP_NONE},  // inner mask socket definition
+    { SOCK_FLOAT, 1, "Outer Mask", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f, PROP_NONE},  // outer mask socket definition
+    { -1, 0, ""	}                                                                   // input socket array terminator
+};
+static bNodeSocketTemplate cmp_node_doubleedgemask_out[]= {
+    { SOCK_FLOAT, 0, "Mask"},          // output socket definition
+    { -1, 0, "" }                      // output socket array terminator
+};
+
+static void do_adjacentKeepBorders(unsigned int t, unsigned int rw, unsigned int *limask, unsigned int *lomask, unsigned int *lres, float *res, unsigned int *rsize){
+    int x;
+    unsigned int isz=0; // inner edge size
+    unsigned int osz=0; // outer edge size
+    unsigned int gsz=0; // gradient fill area size
+    /* Test the four corners */
+    /* upper left corner */
+    x=t-rw+1;
+    // test if inner mask is filled
+    if(limask[x]){

@@ Diff output truncated at 10240 characters. @@


More information about the Bf-blender-cvs mailing list