1*6777b538SAndroid Build Coastguard Worker // Copyright 2024 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef BASE_NUMERICS_ANGLE_CONVERSIONS_H_ 6*6777b538SAndroid Build Coastguard Worker #define BASE_NUMERICS_ANGLE_CONVERSIONS_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <concepts> 9*6777b538SAndroid Build Coastguard Worker #include <numbers> 10*6777b538SAndroid Build Coastguard Worker 11*6777b538SAndroid Build Coastguard Worker namespace base { 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Worker template <typename T> 14*6777b538SAndroid Build Coastguard Worker requires std::floating_point<T> DegToRad(T deg)15*6777b538SAndroid Build Coastguard Workerconstexpr T DegToRad(T deg) { 16*6777b538SAndroid Build Coastguard Worker return deg * std::numbers::pi_v<T> / 180; 17*6777b538SAndroid Build Coastguard Worker } 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Worker template <typename T> 20*6777b538SAndroid Build Coastguard Worker requires std::floating_point<T> RadToDeg(T rad)21*6777b538SAndroid Build Coastguard Workerconstexpr T RadToDeg(T rad) { 22*6777b538SAndroid Build Coastguard Worker return rad * 180 / std::numbers::pi_v<T>; 23*6777b538SAndroid Build Coastguard Worker } 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Worker } // namespace base 26*6777b538SAndroid Build Coastguard Worker 27*6777b538SAndroid Build Coastguard Worker #endif // BASE_NUMERICS_ANGLE_CONVERSIONS_H_ 28