diff options
| author | 2021-10-19 11:24:45 -0700 | |
|---|---|---|
| committer | 2021-10-26 05:29:31 -0700 | |
| commit | d2b0267be035d42df75f0bf2e9bd653d8b5619ff (patch) | |
| tree | 9ae1df6921431047cd292e4d2f89b458a598d93a /libs/input/Input.cpp | |
| parent | f367330f19ba02797ed82382ab10a5cd51e7db97 (diff) | |
MotionEvent: Avoid clipping tranformed orientation angle values
A recent refactor (ag/14556109) exposed an issue in the existing
orientation angle transformation logic where the output was clipped
incorrectly. There is no need to clip the ouput of atan2f because its
output is in the range [-pi, pi], which conforms to the MotionEvent's
orientation API.
Test: manual with stylus and test app
Bug: 202534592
Change-Id: I55df7470049922d0f579c2c1921dcacd0757ece1
Diffstat (limited to 'libs/input/Input.cpp')
| -rw-r--r-- | libs/input/Input.cpp | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/libs/input/Input.cpp b/libs/input/Input.cpp index 390ff965ec..b4d9ab623c 100644 --- a/libs/input/Input.cpp +++ b/libs/input/Input.cpp @@ -56,13 +56,8 @@ float transformAngle(const ui::Transform& transform, float angleRadians) { transformedPoint.y -= origin.y; // Derive the transformed vector's clockwise angle from vertical. - float result = atan2f(transformedPoint.x, -transformedPoint.y); - if (result < -M_PI_2) { - result += M_PI; - } else if (result > M_PI_2) { - result -= M_PI; - } - return result; + // The return value of atan2f is in range [-pi, pi] which conforms to the orientation API. + return atan2f(transformedPoint.x, -transformedPoint.y); } vec2 transformWithoutTranslation(const ui::Transform& transform, const vec2& xy) { |