From a1e0ef4836f59a9fd5a2b44ecb94c27227e159c6 Mon Sep 17 00:00:00 2001 From: Keisuke Kuroyanagi Date: Fri, 7 Mar 2014 13:03:34 +0900 Subject: [PATCH] Fix: point to line segment distance can be NaN. Change-Id: I7db6bfea925a0eda82bfb1f7b5e1110b193dabdb --- native/jni/src/suggest/core/layout/proximity_info_utils.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/native/jni/src/suggest/core/layout/proximity_info_utils.h b/native/jni/src/suggest/core/layout/proximity_info_utils.h index 6d2c11b09..f55ee23aa 100644 --- a/native/jni/src/suggest/core/layout/proximity_info_utils.h +++ b/native/jni/src/suggest/core/layout/proximity_info_utils.h @@ -100,6 +100,10 @@ class ProximityInfoUtils { const float dotProduct = ray1x * ray2x + ray1y * ray2y; const float lineLengthSqr = GeometryUtils::SQUARE_FLOAT(ray2x) + GeometryUtils::SQUARE_FLOAT(ray2y); + if (lineLengthSqr <= 0.0f) { + // Return point to the point distance. + return getSquaredDistanceFloat(x, y, x1, y1); + } const float projectionLengthSqr = dotProduct / lineLengthSqr; float projectionX;