[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42369] trunk/blender/source/blender/ editors/transform/transform_input.c: Fix #29483: edge slide gives nan when zoomed in close.
Brecht Van Lommel
brechtvanlommel at pandora.be
Sat Dec 3 14:16:41 CET 2011
Revision: 42369
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42369
Author: blendix
Date: 2011-12-03 13:16:32 +0000 (Sat, 03 Dec 2011)
Log Message:
-----------
Fix #29483: edge slide gives nan when zoomed in close. Cause was integer
overflow leading to negative value for sqrt().
Modified Paths:
--------------
trunk/blender/source/blender/editors/transform/transform_input.c
Modified: trunk/blender/source/blender/editors/transform/transform_input.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_input.c 2011-12-03 06:10:32 UTC (rev 42368)
+++ trunk/blender/source/blender/editors/transform/transform_input.c 2011-12-03 13:16:32 UTC (rev 42369)
@@ -189,16 +189,16 @@
static void InputCustomRatio(TransInfo *UNUSED(t), MouseInput *mi, const int mval[2], float output[3])
{
- float length;
- float distance;
+ double length;
+ double distance;
+ double dx, dy;
int *data = mi->data;
- int dx, dy;
if (data) {
dx = data[2] - data[0];
dy = data[3] - data[1];
- length = (float)sqrtf(dx*dx + dy*dy);
+ length = sqrt(dx*dx + dy*dy);
if (mi->precision) {
/* deal with Shift key by adding motion / 10 to motion before shift press */
@@ -216,7 +216,7 @@
distance = (length != 0.0f)? (mdx*dx + mdy*dy) / length: 0.0f;
}
- output[0] = (length != 0.0f)? distance / length: 0.0f;
+ output[0] = (float)((length != 0.0f)? distance / length: 0.0f);
}
}
More information about the Bf-blender-cvs
mailing list