diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2021-11-19 00:22:31 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2021-11-19 15:42:03 +0100 |
commit | bc0ab08634f59e1a1814e575fe6ad5e50bf1aee1 (patch) | |
tree | 8691eec1adefd9e4def8245898e8a3e5c5542037 /include | |
parent | 168ae4c00a86b7534dedd303f9ef008e19822b99 (diff) |
Drop F_PI1800/F_PI18000, and unify deg2rad/rad2deg conversions
Change-Id: Ib89b00c3dc8cd440e8a88906eea133becd1cef64
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125509
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
Diffstat (limited to 'include')
-rw-r--r-- | include/basegfx/numeric/ftools.hxx | 16 | ||||
-rw-r--r-- | include/svx/svdtrans.hxx | 13 | ||||
-rw-r--r-- | include/tools/degree.hxx | 7 |
3 files changed, 9 insertions, 27 deletions
diff --git a/include/basegfx/numeric/ftools.hxx b/include/basegfx/numeric/ftools.hxx index 63e7a0d460ce..14deaa059020 100644 --- a/include/basegfx/numeric/ftools.hxx +++ b/include/basegfx/numeric/ftools.hxx @@ -27,14 +27,6 @@ #include <algorithm> -#ifndef F_PI1800 -#define F_PI1800 (M_PI/1800.0) -#endif -#ifndef F_PI18000 -#define F_PI18000 (M_PI/18000.0) -#endif - - // fTools defines namespace basegfx @@ -83,20 +75,20 @@ namespace basegfx /** Convert value from degrees to radians */ - constexpr double deg2rad( double v ) + template <int DegMultiple = 1> constexpr double deg2rad( double v ) { // divide first, to get exact values for v being a multiple of // 90 degrees - return v / 90.0 * M_PI_2; + return v / (90.0 * DegMultiple) * M_PI_2; } /** Convert value radians to degrees */ - constexpr double rad2deg( double v ) + template <int DegMultiple = 1> constexpr double rad2deg( double v ) { // divide first, to get exact values for v being a multiple of // pi/2 - return v / M_PI_2 * 90.0; + return v / M_PI_2 * (90.0 * DegMultiple); } /** Snap v to nearest multiple of fStep, from negative and diff --git a/include/svx/svdtrans.hxx b/include/svx/svdtrans.hxx index abc19bf617cd..67741e77728b 100644 --- a/include/svx/svdtrans.hxx +++ b/include/svx/svdtrans.hxx @@ -29,19 +29,6 @@ #include <tools/mapunit.hxx> #include <tools/poly.hxx> -// The DrawingEngine's angles are specified in 1/100th degrees -// We need to convert these angles to radians, in order to be able -// to process them with trigonometric functions. -// This is done, using the constant F_PI18000. -// -// Example usage: -// nAngle ... is an angle in 1/100 Deg -// -// Which is converted, by this: -// double nSin=sin(nAngle*F_PI18000); -// -// To convert it back, we use division. - // That maximum shear angle constexpr Degree100 SDRMAXSHEAR(8900); diff --git a/include/tools/degree.hxx b/include/tools/degree.hxx index 47dc7a8d98a7..74a27a2c2d35 100644 --- a/include/tools/degree.hxx +++ b/include/tools/degree.hxx @@ -8,6 +8,9 @@ */ #pragma once +#include <sal/config.h> + +#include <basegfx/numeric/ftools.hxx> #include <sal/types.h> #include <o3tl/strong_int.hxx> #include <cstdlib> @@ -35,11 +38,11 @@ constexpr Degree100 operator""_deg100(unsigned long long n) { return Degree100{ /** conversion functions */ inline Degree100 toDegree100(Degree10 x) { return Degree100(x.get() * 10); } -inline double toRadians(Degree10 x) { return x.get() * (M_PI / 1800.0); } +inline double toRadians(Degree10 x) { return basegfx::deg2rad<10>(x.get()); } inline double toDegrees(Degree10 x) { return x.get() / 10.0; } inline Degree10 toDegree10(Degree100 x) { return Degree10((x.get() + 5) / 10); } -inline double toRadians(Degree100 x) { return x.get() * (M_PI / 18000.0); } +inline double toRadians(Degree100 x) { return basegfx::deg2rad<100>(x.get()); } inline double toDegrees(Degree100 x) { return x.get() / 100.0; } /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ |