[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34959] trunk/blender/source/blender/nodes /intern: Bugfix #26128
Daniel Salazar - 3Developer.com
zanqdo at gmail.com
Fri Feb 18 22:36:29 CET 2011
This raises following error in scons
http://www.pasteall.org/19291
Daniel Salazar
2011/2/18 Ton Roosendaal <ton at blender.org>:
> Revision: 34959
> http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34959
> Author: ton
> Date: 2011-02-18 12:34:31 +0000 (Fri, 18 Feb 2011)
> Log Message:
> -----------
> Bugfix #26128
>
> Compositor/texture nodes: math node now allows to use pow() for
> negative raising too, but only when that value is near-integer.
> For other negative cases result is zero.
> Patch provided by Aurel W
>
> Modified Paths:
> --------------
> trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_math.c
> trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_math.c
>
> Modified: trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_math.c
> ===================================================================
> --- trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_math.c 2011-02-18 10:35:37 UTC (rev 34958)
> +++ trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_math.c 2011-02-18 12:34:31 UTC (rev 34959)
> @@ -94,11 +94,18 @@
> break;
> case 10: /* Power */
> {
> - /* Don't want any imaginary numbers... */
> - if( in[0] >= 0 )
> + /* Only raise negative numbers by full integers */
> + if( in[0] >= 0 ) {
> out[0]= pow(in[0], in2[0]);
> - else
> - out[0]= 0.0;
> + } else {
> + float y_mod_1 = fmod(in2[0], 1);
> + /* if input value is not nearly an integer, fall back to zero, nicer than straight rounding */
> + if (y_mod_1 > 0.999 || y_mod_1 < 0.001) {
> + out[0]= pow(in[0], round(in2[0]));
> + } else {
> + out[0] = 0.0;
> + }
> + }
> }
> break;
> case 11: /* Logarithm */
>
> Modified: trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_math.c
> ===================================================================
> --- trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_math.c 2011-02-18 10:35:37 UTC (rev 34958)
> +++ trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_math.c 2011-02-18 12:34:31 UTC (rev 34959)
> @@ -106,11 +106,17 @@
> break;
> case 10: /* Power */
> {
> - /* Don't want any imaginary numbers... */
> - if( in0 >= 0 )
> - *out= pow(in0, in1);
> - else
> - *out= 0.0;
> + /* Only raise negative numbers by full integers */
> + if( in0 >= 0 ) {
> + out[0]= pow(in0, in1);
> + } else {
> + float y_mod_1 = fmod(in1, 1);
> + if (y_mod_1 > 0.999 || y_mod_1 < 0.001) {
> + *out = pow(in0, round(in1));
> + } else {
> + *out = 0.0;
> + }
> + }
> }
> break;
> case 11: /* Logarithm */
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>
More information about the Bf-committers
mailing list