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

Commit 78db19c2 authored by Tenghui Zhu's avatar Tenghui Zhu Committed by Gerrit Code Review
Browse files

Merge "Limit dotProduct value to 1.0f, so acosf would not return NaN."

parents fdb70dc4 b561f39d
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#include <math.h>
#include <utils/Log.h>
#include <utils/Trace.h>
#include <utils/MathUtils.h>

#include "AmbientShadow.h"
#include "Caches.h"
@@ -264,6 +265,8 @@ int ShadowTessellator::getExtraVertexNumber(const Vector2& vector1,
    // acos( )     --- [0, M_PI]
    // floor(...)  --- [0, EXTRA_VERTEX_PER_PI]
    float dotProduct = vector1.dot(vector2);
    // make sure that dotProduct value is in acsof input range [-1, 1]
    dotProduct = MathUtils::clamp(dotProduct, -1.0f, 1.0f);
    // TODO: Use look up table for the dotProduct to extraVerticesNumber
    // computation, if needed.
    float angle = acosf(dotProduct);