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; 
                

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to