Sheesh mate, slight overreaction. There's no need to bite his head off, I think it's pretty clear that it was an honest mistake. In any case a simple "Hi, I think you forgot to credit me here. Could you add it please?" would do just fine, and make a few more friends than this.
<br><br>cheers,<br><br>Matt<br><br><br><div><span class="gmail_quote">On 7/11/07, <b class="gmail_sendername">GSR</b> &lt;<a href="mailto:gsr.b3d@infernal-iceberg.com">gsr.b3d@infernal-iceberg.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br><a href="mailto:bob_holcomb@hotmail.com">bob_holcomb@hotmail.com</a> (2007-07-10 at 0427.43 +0200):<br>&gt; Revision: 11203<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&amp;root=bf-blender&amp;revision=11203">
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&amp;root=bf-blender&amp;revision=11203</a><br>&gt; Author:&nbsp;&nbsp; scourage<br>&gt; Date:&nbsp;&nbsp;&nbsp;&nbsp; 2007-07-10 04:27:37 +0200 (Tue, 10 Jul 2007)<br>&gt;<br>&gt; Log Message:
<br>&gt; -----------<br>&gt; Added normalize compositing node.<br><br>&quot;Thanks&quot; for _not_ giving credit or patch url at all.<br><br>At first I thought it was another case of &quot;oops, coded it and later<br>noticed there was a similar patch/bugfix, so closed that and went with
<br>my version, sorry&quot;. But then decided to check what differences<br>existed, to learn anything interesting, and realized the code is<br>mostly the same.<br><br>So fix it (svn allows changing logs, but no idea if enabled, other
<br>issues are simpler, just change files) or revert the commit, as there<br>is base for an authorship misappropiation issue.<br><br>&gt; Modified Paths:<br>&gt; --------------<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; trunk/blender/source/blender/blenkernel/BKE_node.h
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; trunk/blender/source/blender/blenkernel/intern/node.c<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; trunk/blender/source/blender/nodes/CMP_node.h<br>&gt;<br>&gt; Added Paths:<br>&gt; -----------<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c
<br>&gt;<br>&gt; Modified: trunk/blender/source/blender/blenkernel/BKE_node.h<br>&gt; ===================================================================<br>&gt; --- trunk/blender/source/blender/blenkernel/BKE_node.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2007-07-10 02:06:10 UTC (rev 11202)
<br>&gt; +++ trunk/blender/source/blender/blenkernel/BKE_node.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2007-07-10 02:27:37 UTC (rev 11203)<br>&gt; @@ -298,6 +298,7 @@<br>&gt;&nbsp;&nbsp;#define CMP_NODE_BRIGHTCONTRAST 249<br>&gt;&nbsp;&nbsp;#define CMP_NODE_GAMMA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 250
<br>&gt;&nbsp;&nbsp;#define CMP_NODE_INVERT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;251<br>&gt; +#define CMP_NODE_NORMALIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;252<br><br>You reviewed the patch as the ID provided was one to avoid collisions<br>in local version.<br><br>&gt;&nbsp;&nbsp;/* channel toggles */
<br>&gt;&nbsp;&nbsp;#define CMP_CHAN_RGB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>&gt;<br>&gt; Modified: trunk/blender/source/blender/blenkernel/intern/node.c<br>&gt; ===================================================================<br>&gt; --- trunk/blender/source/blender/blenkernel/intern/node.c&nbsp;&nbsp;&nbsp;&nbsp; 2007-07-10 02:06:10 UTC (rev 11202)
<br>&gt; +++ trunk/blender/source/blender/blenkernel/intern/node.c&nbsp;&nbsp;&nbsp;&nbsp; 2007-07-10 02:27:37 UTC (rev 11203)<br>&gt; @@ -2331,6 +2331,7 @@<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nodeRegisterType(ntypelist, &amp;cmp_node_normal);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nodeRegisterType(ntypelist, &amp;cmp_node_curve_vec);
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nodeRegisterType(ntypelist, &amp;cmp_node_map_value);<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; nodeRegisterType(ntypeList, &amp;cmp_node_normalize);<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nodeRegisterType(ntypelist, &amp;cmp_node_filter);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nodeRegisterType(ntypelist, &amp;cmp_node_blur);
<br>&gt;<br>&gt; Modified: trunk/blender/source/blender/nodes/CMP_node.h<br>&gt; ===================================================================<br>&gt; --- trunk/blender/source/blender/nodes/CMP_node.h&nbsp;&nbsp;&nbsp;&nbsp; 2007-07-10 02:06:10 UTC (rev 11202)
<br>&gt; +++ trunk/blender/source/blender/nodes/CMP_node.h&nbsp;&nbsp;&nbsp;&nbsp; 2007-07-10 02:27:37 UTC (rev 11203)<br>&gt; @@ -62,6 +62,7 @@<br>&gt;&nbsp;&nbsp;extern bNodeType cmp_node_normal;<br>&gt;&nbsp;&nbsp;extern bNodeType cmp_node_curve_vec;<br>&gt;&nbsp;&nbsp;extern bNodeType cmp_node_map_value;
<br>&gt; +extern bNodeType cmp_node_normalize;<br><br>Another adaptation.<br><br>&gt;&nbsp;&nbsp;extern bNodeType cmp_node_filter;<br>&gt;&nbsp;&nbsp;extern bNodeType cmp_node_blur;<br>&gt;<br>&gt; Added: trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c
<br>&gt; ===================================================================<br>&gt; --- trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (rev 0)<br>&gt; +++ trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2007-07-10 02:27:37 UTC (rev 11203)
<br>&gt; @@ -0,0 +1,113 @@<br>&gt; +/**<br>&gt; + * $Id: CMP_normalize.c,v 1.0 2007/03/24 06:57:29 scourage Exp $<br>&gt; + *<br>&gt; + * ***** BEGIN GPL LICENSE BLOCK *****<br>&gt; + *<br>&gt; + * This program is free software; you can redistribute it and/or
<br>&gt; + * modify it under the terms of the GNU General Public License<br>&gt; + * as published by the Free Software Foundation; either version 2<br>&gt; + * of the License, or (at your option) any later version.<br>&gt; + *
<br>&gt; + * This program is distributed in the hope that it will be useful,<br>&gt; + * but WITHOUT ANY WARRANTY; without even the implied warranty of<br>&gt; + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&nbsp;&nbsp;See the
<br>&gt; + * GNU General Public License for more details.<br>&gt; + *<br>&gt; + * You should have received a copy of the GNU General Public License<br>&gt; + * along with this program; if not, write to the Free Software Foundation,
<br>&gt; + * Inc., 59 Temple Place - Suite 330, Boston, MA&nbsp;&nbsp;02111-1307, USA.<br>&gt; + *<br>&gt; + * The Original Code is Copyright (C) 2006 Blender Foundation.<br>&gt; + * All rights reserved.<br>&gt; + *<br>&gt; + * The Original Code is: all of this file.
<br>&gt; + *<br>&gt; + * Contributor(s): none yet.<br>&gt; + *<br>&gt; + * ***** END GPL LICENSE BLOCK *****<br>&gt; + */<br><br>But forgot to review the legal block or just replace with one you know<br>to be good and then fill the fields as required. What if patch sneaked
<br>something weird there?<br><br>&gt; +<br>&gt; +#include &quot;../CMP_util.h&quot;<br>&gt; +<br>&gt; +<br><br>Lines below a mostly a 100% copy of the patch, so hard to go with the<br>&quot;oops, this is another version&quot;.
<br><br>&gt; +/* **************** NORMALIZE single channel, useful for Z buffer ******************** */<br>&gt; +static bNodeSocketType cmp_node_normalize_in[]= {<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; SOCK_VALUE, 1, &quot;Value&quot;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
1.0f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; -1, 0, &quot;&quot;&nbsp;&nbsp; }<br>&gt; +};<br>&gt; +static bNodeSocketType cmp_node_normalize_out[]= {<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; SOCK_VALUE, 0, &quot;Value&quot;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.0f, 0.0f
, 0.0f, 1.0f, 0.0f, 1.0f},<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; -1, 0, &quot;&quot;&nbsp;&nbsp; }<br>&gt; +};<br>&gt; +<br>&gt; +static void do_normalize(bNode *node, float *out, float *src, float *min, float *mult)<br>&gt; +{<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; float res;
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; res = (src[0] - min[0]) * mult[0];<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; if (res &gt; 1.0f) {<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out[0] = 1.0f;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; else if (res &lt; 0.0f) {<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out[0] = 0.0f;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; }
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; else {<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out[0] = res;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; +}<br>&gt; +<br>&gt; +#define BLENDER_ZMAX 10000.0f<br>&gt; +<br>&gt; +static void node_composit_exec_normalize(void *data, bNode *node, bNodeStack **in, bNodeStack **out)
<br>&gt; +{<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* stack order in: valbuf */<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* stack order out: valbuf */<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; if(out[0]-&gt;hasoutput==0) return;<br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* input no image? then only value operation */<br>
&gt; +&nbsp;&nbsp;&nbsp;&nbsp; if(in[0]-&gt;data==NULL) {<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QUATCOPY(out[0]-&gt;vec, in[0]-&gt;vec);<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; else {<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float min = 1.0f+BLENDER_ZMAX;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float max = -
1.0f-BLENDER_ZMAX;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float mult = 1.0f;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float *val;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* make output size of input image */<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CompBuf *cbuf= in[0]-&gt;data;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int tot= cbuf-&gt;x*cbuf-&gt;y;
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CompBuf *stackbuf= alloc_compbuf(cbuf-&gt;x, cbuf-&gt;y, CB_VAL, 1); /* allocs */<br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (val = cbuf-&gt;rect; tot; tot--, val++) {<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((*val &gt; max) &amp;&amp; (*val &lt; BLENDER_ZMAX)) {
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max = *val;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (*val &lt; min) {<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; min = *val;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mult = 1.0f/(max-min);<br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;min %f max %f\n&quot;, min, max);<br><br>Debug line. I doubt users will like that printed per pass (it could be<br>useful as out sockets or as extra statistic nodes, tho).
<br><br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; composit3_pixel_processor(node, stackbuf, in[0]-&gt;data, in[0]-&gt;vec, NULL, &amp;min, NULL, &amp;mult, do_normalize, CB_VAL, CB_VAL, CB_VAL);<br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out[0]-&gt;data= stackbuf;
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; +}<br>&gt; +<br>&gt; +bNodeType cmp_node_normalize= {<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* *next, *prev*/&nbsp;&nbsp; NULL, NULL,<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* type code&nbsp;&nbsp; */&nbsp;&nbsp; CMP_NODE_NORMALIZE,<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp; &quot;Normalize&quot;,
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* width+range */&nbsp;&nbsp; 100, 60, 150,<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* class+opts&nbsp;&nbsp;*/&nbsp;&nbsp; NODE_CLASS_OP_VECTOR, NODE_OPTIONS,<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* input sock&nbsp;&nbsp;*/&nbsp;&nbsp; cmp_node_normalize_in,<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* output sock */&nbsp;&nbsp; cmp_node_normalize_out,
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* storage&nbsp;&nbsp;&nbsp;&nbsp; */&nbsp;&nbsp; &quot;TexMapping&quot;,<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* execfunc&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp; node_composit_exec_normalize,<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* butfunc&nbsp;&nbsp;&nbsp;&nbsp; */&nbsp;&nbsp; NULL,<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* initfunc&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp; NULL,<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* freestoragefunc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ NULL,
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* copystoragefunc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ NULL,<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp; /* id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL<br>&gt; +};<br><br>Some fields added here, probably it failed to compile with new changes<br>to node system, so indeed the review was half-half.
<br><br>GSR<br><br>_______________________________________________<br>Bf-committers mailing list<br><a href="mailto:Bf-committers@blender.org">Bf-committers@blender.org</a><br><a href="http://lists.blender.org/mailman/listinfo/bf-committers">
http://lists.blender.org/mailman/listinfo/bf-committers</a><br></blockquote></div><br>