| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_ORIENTATION_UTIL_H_ |
| #define SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_ORIENTATION_UTIL_H_ |
| |
| #include "services/device/public/cpp/generic_sensor/sensor_reading.h" |
| |
| namespace device { |
| |
| // Sets |out_reading|'s |orientation_quat| member to a quaternion corresponding |
| // to the set of intrinsic Tait-Bryan Euler angles passed in the parameters. |
| // |
| // Returns false if |alpha|, |beta|, or |gamma| are outside the ranges expected |
| // by the Device Orientation API specification. |
| // |
| // Note: The timestamp should be set by the caller. |
| bool ComputeQuaternionFromEulerAngles(double alpha, |
| double beta, |
| double gamma, |
| SensorReading* out_reading); |
| |
| } // namespace device |
| |
| #endif // SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_ORIENTATION_UTIL_H_ |