diff options
author | BaiXiaochun <bai.xiaochun.mofan@protonmail.com> | 2021-06-30 18:12:08 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2021-07-03 21:57:29 +0200 |
commit | 3128fd02c069765a4428022e84a324e991c69521 (patch) | |
tree | 77ae23473888cc8f547e9de1831ee5f41c2f7573 /drawinglayer | |
parent | e732bbacbf33a3d0c08fb96a18072e5b1ca46691 (diff) |
Purge out when safe rtl::math ( isValidArcArg / sin / cos )
/** If a value is a valid argument for sin(), cos(), tan().
IEEE 754 specifies that absolute values up to 2^64 (=1.844e19) for the
radian must be supported by trigonometric functions. Unfortunately, at
least on x86 architectures, the FPU doesn't generate an error pattern for
values >2^64 but produces erroneous results instead and sets only the
"invalid operation" (IM) flag in the status word :-( Thus the application
has to handle it itself.
*/
chart2/source/tools/RelativePositionHelper.cxx
Function name: RelativePositionHelper::getCenterOfAnchoredObject
From here: suppose it's related to the orientation of the chart << 2^64
chart2/source/view/main/LabelPositionHelper.cxx
LabelPositionHelper::LabelPositionHelper
Suppose: setup label position.
There won't be angles grater than 360º.
chart2/source/view/main/PlottingPositionHelper.cxx
PolarPlottingPositionHelper::transformUnitCircleToScene
Suppose: maybe disc chart orientation?
Internal angle should be safe.
chart2/source/view/main/ShapeFactory.cxx
ShapeFactory::getSizeAfterRotation
Suppose: rotate shape
Internal angle should be safe.
drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
Constant 100% safe
sc/source/core/data/documen4.cxx
bool ScDocument::Solver
Suppose: the tangent is being used as numerical derivative (Regula falsi algorithm)
So no impossible angles
scaddins/source/analysis/bessel.cxx
Filtered it out as bad imput
Change-Id: Ib348cca6ce13263d087b6731f93f58d8a15cc725
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118193
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'drawinglayer')
-rw-r--r-- | drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx index 8837354fc706..f08d17f2f002 100644 --- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx @@ -17,11 +17,11 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <cmath> #include <memory> #include "vclmetafileprocessor2d.hxx" #include "vclpixelprocessor2d.hxx" #include <rtl/ustring.hxx> -#include <rtl/math.hxx> #include <tools/gen.hxx> #include <tools/stream.hxx> #include <tools/diagnose_ex.h> @@ -443,7 +443,8 @@ std::unique_ptr<SvtGraphicStroke> VclMetafileProcessor2D::impTryToCreateSvtGraph { eJoin = SvtGraphicStroke::joinMiter; // ATM 15 degrees is assumed - fMiterLength /= rtl::math::sin(basegfx::deg2rad(15.0)); + // TODO wait for P1383R0 and C++20's std::numbers::pi + fMiterLength /= std::sin(M_PI / 12); break; } case basegfx::B2DLineJoin::Round: |