summaryrefslogtreecommitdiff
path: root/libs/input/Input.cpp
diff options
context:
space:
mode:
author Prabir Pradhan <prabirmsp@google.com> 2021-10-19 11:24:45 -0700
committer Prabir Pradhan <prabirmsp@google.com> 2021-10-26 05:29:31 -0700
commitd2b0267be035d42df75f0bf2e9bd653d8b5619ff (patch)
tree9ae1df6921431047cd292e4d2f89b458a598d93a /libs/input/Input.cpp
parentf367330f19ba02797ed82382ab10a5cd51e7db97 (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.cpp9
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) {