Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1e0ef48 authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi
Browse files

Fix: point to line segment distance can be NaN.

Change-Id: I7db6bfea925a0eda82bfb1f7b5e1110b193dabdb
parent 33392248
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -100,6 +100,10 @@ class ProximityInfoUtils {
        const float dotProduct = ray1x * ray2x + ray1y * ray2y;
        const float dotProduct = ray1x * ray2x + ray1y * ray2y;
        const float lineLengthSqr = GeometryUtils::SQUARE_FLOAT(ray2x)
        const float lineLengthSqr = GeometryUtils::SQUARE_FLOAT(ray2x)
                + GeometryUtils::SQUARE_FLOAT(ray2y);
                + 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;
        const float projectionLengthSqr = dotProduct / lineLengthSqr;


        float projectionX;
        float projectionX;