[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35373] trunk/blender/source/blender/nodes /intern: Applied patch by Alexander Kuznetsov for bug 26373: math node ' round' mode was not working correctly for negative numbers.

Lukas Toenne lukas.toenne at googlemail.com
Sun Mar 6 14:11:58 CET 2011


Revision: 35373
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35373
Author:   lukastoenne
Date:     2011-03-06 13:11:57 +0000 (Sun, 06 Mar 2011)
Log Message:
-----------
Applied patch by Alexander Kuznetsov for bug 26373: math node 'round' mode was not working correctly for negative numbers.

Modified Paths:
--------------
    trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_math.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_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-03-06 12:13:32 UTC (rev 35372)
+++ trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_math.c	2011-03-06 13:11:57 UTC (rev 35373)
@@ -140,7 +140,7 @@
 		break;
 	case 14: /* Round */
 		{
-				out[0]= (int)(in[0] + 0.5f);
+				out[0]= (out[0]<0)?(int)(in[0] - 0.5f):(int)(in[0] + 0.5f);
 		}
 		break;
 	case 15: /* Less Than */

Modified: trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_math.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_math.c	2011-03-06 12:13:32 UTC (rev 35372)
+++ trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_math.c	2011-03-06 13:11:57 UTC (rev 35373)
@@ -174,9 +174,9 @@
 	case 14: /* Round */
 		{
 			if(in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */
-				out[0]->vec[0]= (int)(in[0]->vec[0] + 0.5f);
+				out[0]->vec[0]= (in[0]->vec[0]<0)?(int)(in[0]->vec[0] - 0.5f):(int)(in[0]->vec[0] + 0.5f);
 			else
-				out[0]->vec[0]= (int)(in[1]->vec[0] + 0.5f);
+				out[0]->vec[0]= (in[1]->vec[0]<0)?(int)(in[1]->vec[0] - 0.5f):(int)(in[1]->vec[0] + 0.5f);
 		}
 		break;
 	case 15: /* Less Than */

Modified: trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_math.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_math.c	2011-03-06 12:13:32 UTC (rev 35372)
+++ trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_math.c	2011-03-06 13:11:57 UTC (rev 35373)
@@ -151,7 +151,7 @@
 		break;
 	case 14: /* Round */
 		{
-			*out= (int)(in0 + 0.5f);
+			*out= (in0<0)?(int)(in0 - 0.5f):(int)(in0 + 0.5f);
 		}
 		break; 
 		




More information about the Bf-blender-cvs mailing list