summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2021-11-19 00:22:31 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2021-11-19 15:42:03 +0100
commitbc0ab08634f59e1a1814e575fe6ad5e50bf1aee1 (patch)
tree8691eec1adefd9e4def8245898e8a3e5c5542037 /include
parent168ae4c00a86b7534dedd303f9ef008e19822b99 (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.hxx16
-rw-r--r--include/svx/svdtrans.hxx13
-rw-r--r--include/tools/degree.hxx7
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: */