[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18823] trunk/blender/source/blender: Patch #18015, adds "Value to Normal" node
Robin Allen
roblovski at gmail.com
Fri Feb 6 02:21:41 CET 2009
Revision: 18823
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18823
Author: kakbarnf
Date: 2009-02-06 02:21:38 +0100 (Fri, 06 Feb 2009)
Log Message:
-----------
Patch #18015, adds "Value to Normal" node
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_node.h
trunk/blender/source/blender/blenkernel/intern/node.c
trunk/blender/source/blender/nodes/TEX_node.h
Added Paths:
-----------
trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c
Modified: trunk/blender/source/blender/blenkernel/BKE_node.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_node.h 2009-02-06 00:55:38 UTC (rev 18822)
+++ trunk/blender/source/blender/blenkernel/BKE_node.h 2009-02-06 01:21:38 UTC (rev 18823)
@@ -405,6 +405,7 @@
#define TEX_NODE_DISTANCE 118
#define TEX_NODE_COMPOSE 119
#define TEX_NODE_DECOMPOSE 120
+#define TEX_NODE_VALTONOR 121
/* 201-299 reserved. Use like this: TEX_NODE_PROC + TEX_CLOUDS, etc */
#define TEX_NODE_PROC 200
Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c 2009-02-06 00:55:38 UTC (rev 18822)
+++ trunk/blender/source/blender/blenkernel/intern/node.c 2009-02-06 01:21:38 UTC (rev 18823)
@@ -2882,6 +2882,7 @@
nodeRegisterType(ntypelist, &tex_node_mix_rgb);
nodeRegisterType(ntypelist, &tex_node_valtorgb);
nodeRegisterType(ntypelist, &tex_node_rgbtobw);
+ nodeRegisterType(ntypelist, &tex_node_valtonor);
nodeRegisterType(ntypelist, &tex_node_curve_rgb);
nodeRegisterType(ntypelist, &tex_node_curve_time);
nodeRegisterType(ntypelist, &tex_node_invert);
Modified: trunk/blender/source/blender/nodes/TEX_node.h
===================================================================
--- trunk/blender/source/blender/nodes/TEX_node.h 2009-02-06 00:55:38 UTC (rev 18822)
+++ trunk/blender/source/blender/nodes/TEX_node.h 2009-02-06 01:21:38 UTC (rev 18823)
@@ -1,75 +1,76 @@
-/**
- * $Id: CMP_node.h 12429 2007-10-29 14:37:19Z bebraw $
- *
- * ***** 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2005 Blender Foundation.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#ifndef TEX_NODE_H
-#define TEX_NODE_H
-
-#include "BKE_node.h"
-
-
-/* ****************** types array for all texture nodes ****************** */
-
-extern bNodeType tex_node_math;
-extern bNodeType tex_node_mix_rgb;
-extern bNodeType tex_node_valtorgb;
-extern bNodeType tex_node_rgbtobw;
-extern bNodeType tex_node_output;
-extern bNodeType tex_node_viewer;
-extern bNodeType tex_node_checker;
-extern bNodeType tex_node_texture;
-extern bNodeType tex_node_bricks;
-extern bNodeType tex_node_image;
-extern bNodeType tex_node_curve_rgb;
-extern bNodeType tex_node_curve_time;
-extern bNodeType tex_node_invert;
-extern bNodeType tex_node_hue_sat;
-extern bNodeType tex_node_coord;
-extern bNodeType tex_node_distance;
-
-extern bNodeType tex_node_rotate;
-extern bNodeType tex_node_translate;
-
-extern bNodeType tex_node_compose;
-extern bNodeType tex_node_decompose;
-
-extern bNodeType tex_node_proc_voronoi;
-extern bNodeType tex_node_proc_blend;
-extern bNodeType tex_node_proc_magic;
-extern bNodeType tex_node_proc_marble;
-extern bNodeType tex_node_proc_clouds;
-extern bNodeType tex_node_proc_wood;
-extern bNodeType tex_node_proc_musgrave;
-extern bNodeType tex_node_proc_noise;
-extern bNodeType tex_node_proc_stucci;
-extern bNodeType tex_node_proc_distnoise;
-
-#endif
+/**
+ * $Id: CMP_node.h 12429 2007-10-29 14:37:19Z bebraw $
+ *
+ * ***** 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. The Blender
+ * Foundation also sells licenses for use in proprietary software under
+ * the Blender License. See http://www.blender.org/BL/ for information
+ * about this.
+ *
+ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2005 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef TEX_NODE_H
+#define TEX_NODE_H
+
+#include "BKE_node.h"
+
+
+/* ****************** types array for all texture nodes ****************** */
+
+extern bNodeType tex_node_math;
+extern bNodeType tex_node_mix_rgb;
+extern bNodeType tex_node_valtorgb;
+extern bNodeType tex_node_valtonor;
+extern bNodeType tex_node_rgbtobw;
+extern bNodeType tex_node_output;
+extern bNodeType tex_node_viewer;
+extern bNodeType tex_node_checker;
+extern bNodeType tex_node_texture;
+extern bNodeType tex_node_bricks;
+extern bNodeType tex_node_image;
+extern bNodeType tex_node_curve_rgb;
+extern bNodeType tex_node_curve_time;
+extern bNodeType tex_node_invert;
+extern bNodeType tex_node_hue_sat;
+extern bNodeType tex_node_coord;
+extern bNodeType tex_node_distance;
+
+extern bNodeType tex_node_rotate;
+extern bNodeType tex_node_translate;
+
+extern bNodeType tex_node_compose;
+extern bNodeType tex_node_decompose;
+
+extern bNodeType tex_node_proc_voronoi;
+extern bNodeType tex_node_proc_blend;
+extern bNodeType tex_node_proc_magic;
+extern bNodeType tex_node_proc_marble;
+extern bNodeType tex_node_proc_clouds;
+extern bNodeType tex_node_proc_wood;
+extern bNodeType tex_node_proc_musgrave;
+extern bNodeType tex_node_proc_noise;
+extern bNodeType tex_node_proc_stucci;
+extern bNodeType tex_node_proc_distnoise;
+
+#endif
Added: trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c (rev 0)
+++ trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c 2009-02-06 01:21:38 UTC (rev 18823)
@@ -0,0 +1,92 @@
+/**
+ *
+ * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2005 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Jucas.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include "../TEX_util.h"
+
+static bNodeSocketType inputs[]= {
+ { SOCK_VALUE, 1, "Val", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f },
+ { SOCK_VALUE, 1, "Nabla", 0.025f, 0.0f, 0.0f, 0.0f, 0.001f, 0.1f },
+ { -1, 0, "" }
+};
+
+static bNodeSocketType outputs[]= {
+ { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f },
+ { -1, 0, "" }
+};
+
+static void normalfn(float *out, float *coord, bNode *node, bNodeStack **in, short thread)
+{
+ float new_coord[3];
+
+ float nabla = tex_input_value(in[1], coord, thread);
+ float val;
+ float nor[2];
+
+ val = tex_input_value(in[0], coord, thread);
+
+ new_coord[0] = coord[0] + nabla;
+ new_coord[1] = coord[1];
+ new_coord[2] = coord[2];
+ nor[0] = tex_input_value(in[0], new_coord, thread);
+
+ new_coord[0] = coord[0];
+ new_coord[1] = coord[1] + nabla;
+ nor[1] = tex_input_value(in[0], new_coord, thread);
+
+ new_coord[1] = coord[1];
+ new_coord[2] = coord[2] + nabla;
+ nor[2] = tex_input_value(in[0], new_coord, thread);
+
+ out[0] = val-nor[0];
+ out[1] = val-nor[1];
+ out[2] = val-nor[2];
+}
+static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out)
+{
+ tex_output(node, in, out[0], &normalfn);
+
+ tex_do_preview(node, out[0], data);
+}
+
+bNodeType tex_node_valtonor = {
+ /* *next,*prev */ NULL, NULL,
+ /* type code */ TEX_NODE_VALTONOR,
+ /* name */ "Value to Normal",
+ /* width+range */ 90, 80, 100,
+ /* class+opts */ NODE_CLASS_CONVERTOR, NODE_OPTIONS,
+ /* input sock */ inputs,
+ /* output sock */ outputs,
+ /* storage */ "",
+ /* execfunc */ exec,
+ /* butfunc */ NULL,
+ /* initfunc */ NULL,
+ /* freestoragefunc */ NULL,
+ /* copystoragefunc */ NULL,
+ /* id */ NULL
+};
+
More information about the Bf-blender-cvs
mailing list