cui/source/dialogs/cuigrfflt.cxx | 8 - filter/source/svg/svgwriter.cxx | 22 ++--- include/basegfx/numeric/ftools.hxx | 34 ++------ include/svx/svdtrans.hxx | 12 +- include/tools/helpers.hxx | 8 - include/vcl/bitmap.hxx | 5 - sc/source/core/data/drwlayer.cxx | 8 - sd/source/ui/app/optsitem.cxx | 4 sd/source/ui/dlg/vectdlg.cxx | 6 - sd/source/ui/func/fuoaprms.cxx | 3 sd/source/ui/view/drviews8.cxx | 4 sfx2/source/doc/objcont.cxx | 4 slideshow/source/engine/shapes/drawinglayeranimation.cxx | 6 - svx/source/customshapes/EnhancedCustomShape2d.cxx | 4 svx/source/dialog/_contdlg.cxx | 4 svx/source/gallery2/galobj.cxx | 4 svx/source/svdraw/gradtrns.cxx | 24 ++--- svx/source/svdraw/sdrpagewindow.cxx | 7 + svx/source/svdraw/svdedtv1.cxx | 4 svx/source/svdraw/svdfmtf.cxx | 7 - svx/source/svdraw/svdhdl.cxx | 12 +- svx/source/svdraw/svdoashp.cxx | 18 ++-- svx/source/svdraw/svdobj.cxx | 6 - svx/source/svdraw/svdocapt.cxx | 6 - svx/source/svdraw/svdocirc.cxx | 11 +- svx/source/svdraw/svdoedge.cxx | 4 svx/source/svdraw/svdograf.cxx | 2 svx/source/svdraw/svdomeas.cxx | 16 +-- svx/source/svdraw/svdopath.cxx | 37 +++++--- svx/source/svdraw/svdorect.cxx | 2 svx/source/svdraw/svdotext.cxx | 10 +- svx/source/svdraw/svdotextdecomposition.cxx | 12 +- svx/source/svdraw/svdpdf.cxx | 12 +- svx/source/svdraw/svdpoev.cxx | 9 +- svx/source/svdraw/svdtrans.cxx | 24 ++--- svx/source/xoutdev/_xpoly.cxx | 7 - sw/source/core/graphic/ndgrf.cxx | 3 sw/source/core/layout/fly.cxx | 2 tools/CppunitTest_tools_test.mk | 1 tools/qa/cppunit/test_fround.cxx | 62 --------------- tools/source/generic/color.cxx | 7 - tools/source/generic/line.cxx | 7 + tools/source/generic/poly.cxx | 37 +++++--- vcl/osx/salframeview.mm | 3 vcl/skia/salbmp.cxx | 3 vcl/source/animate/AnimationRenderer.cxx | 8 - vcl/source/bitmap/BitmapEmbossGreyFilter.cxx | 4 vcl/source/bitmap/BitmapFastScaleFilter.cxx | 4 vcl/source/bitmap/BitmapInterpolateScaleFilter.cxx | 4 vcl/source/bitmap/BitmapScaleConvolutionFilter.cxx | 8 - vcl/source/bitmap/BitmapScaleSuperFilter.cxx | 4 vcl/source/bitmap/BitmapTools.cxx | 8 - vcl/source/bitmap/Vectorizer.cxx | 6 - vcl/source/bitmap/bitmap.cxx | 16 +-- vcl/source/filter/eps/eps.cxx | 4 vcl/source/filter/wmf/emfwr.cxx | 6 - vcl/source/filter/wmf/wmfwr.cxx | 4 vcl/source/gdi/gdimtf.cxx | 28 +++--- vcl/source/gdi/metaact.cxx | 30 +++---- vcl/source/gdi/pdfwriter_impl.cxx | 8 - vcl/source/gdi/pdfwriter_impl2.cxx | 8 - vcl/source/gdi/print.cxx | 10 +- vcl/source/gdi/regband.cxx | 7 + vcl/source/graphic/GraphicObject.cxx | 16 +-- vcl/source/helper/canvastools.cxx | 4 vcl/source/outdev/hatch.cxx | 19 ++-- vcl/source/outdev/rect.cxx | 16 +-- vcl/source/outdev/textline.cxx | 4 vcl/source/outdev/transparent.cxx | 2 vcl/source/window/window2.cxx | 6 - vcl/unx/gtk3/gtkinst.cxx | 3 xmloff/source/draw/shapeexport.cxx | 17 ++-- 72 files changed, 356 insertions(+), 389 deletions(-)
New commits: commit ea9904c89608d561f6bde3379408208bbb24fe35 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Tue Apr 16 23:10:45 2024 +0500 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Wed Apr 17 03:56:59 2024 +0200 Drop FRound, and use generalized basegfx::fround Change-Id: I7447e649dc3ef4e51242f69c7486a3e84e103d2e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166159 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/cui/source/dialogs/cuigrfflt.cxx b/cui/source/dialogs/cuigrfflt.cxx index c29bc4947e00..69896cd53c0d 100644 --- a/cui/source/dialogs/cuigrfflt.cxx +++ b/cui/source/dialogs/cuigrfflt.cxx @@ -192,8 +192,8 @@ Graphic GraphicFilterMosaic::GetFilteredGraphic( const Graphic& rGraphic, Graphic aRet; tools::Long nTileWidth = static_cast<tools::Long>(mxMtrWidth->get_value(FieldUnit::PIXEL)); tools::Long nTileHeight = static_cast<tools::Long>(mxMtrHeight->get_value(FieldUnit::PIXEL)); - const Size aSize( std::max( FRound( nTileWidth * fScaleX ), tools::Long(1) ), - std::max( FRound( nTileHeight * fScaleY ), tools::Long(1) ) ); + const Size aSize( std::max( basegfx::fround<tools::Long>( nTileWidth * fScaleX ), tools::Long(1) ), + std::max( basegfx::fround<tools::Long>( nTileHeight * fScaleY ), tools::Long(1) ) ); if( rGraphic.IsAnimated() ) { @@ -270,7 +270,7 @@ GraphicFilterSolarize::GraphicFilterSolarize(weld::Window* pParent, const Graphi , mxMtrThreshold(m_xBuilder->weld_metric_spin_button("value", FieldUnit::PERCENT)) , mxCbxInvert(m_xBuilder->weld_check_button("invert")) { - mxMtrThreshold->set_value(FRound(cGreyThreshold / 2.55), FieldUnit::PERCENT); + mxMtrThreshold->set_value(basegfx::fround(cGreyThreshold / 2.55), FieldUnit::PERCENT); mxMtrThreshold->connect_value_changed(LINK(this, GraphicFilterSolarize, EditModifyHdl)); mxCbxInvert->set_active(bInvert); @@ -290,7 +290,7 @@ IMPL_LINK_NOARG(GraphicFilterSolarize, EditModifyHdl, weld::MetricSpinButton&, v Graphic GraphicFilterSolarize::GetFilteredGraphic( const Graphic& rGraphic, double, double ) { Graphic aRet; - sal_uInt8 nGreyThreshold = static_cast<sal_uInt8>(FRound(mxMtrThreshold->get_value(FieldUnit::PERCENT) * 2.55)); + sal_uInt8 nGreyThreshold = basegfx::fround<sal_uInt8>(mxMtrThreshold->get_value(FieldUnit::PERCENT) * 2.55); if( rGraphic.IsAnimated() ) { diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx index adfdda948f76..5d6fa5a2c854 100644 --- a/filter/source/svg/svgwriter.cxx +++ b/filter/source/svg/svgwriter.cxx @@ -2187,7 +2187,7 @@ void SVGActionWriter::ImplWriteShape( const SVGShapeDescriptor& rShape ) for( size_t k = 0; k < rShape.maDashArray.size(); ++k ) { - const sal_Int32 nDash = ImplMap( FRound( rShape.maDashArray[ k ] ) ); + const sal_Int32 nDash = ImplMap(basegfx::fround(rShape.maDashArray[k])); if( k ) aDashArrayStr.append(","); @@ -2535,8 +2535,8 @@ void SVGActionWriter::ImplWriteMask(GDIMetaFile& rMtf, const Point& rDestPt, con if (fScaleX != 1.0 || fScaleY != 1.0) { rMtf.Scale(fScaleX, fScaleY); - aSrcPt.setX(FRound(aSrcPt.X() * fScaleX)); - aSrcPt.setY(FRound(aSrcPt.Y() * fScaleY)); + aSrcPt.setX(basegfx::fround<tools::Long>(aSrcPt.X() * fScaleX)); + aSrcPt.setY(basegfx::fround<tools::Long>(aSrcPt.Y() * fScaleY)); } nMoveX = rDestPt.X() - aSrcPt.X(); @@ -2736,7 +2736,7 @@ void SVGActionWriter::ImplWriteText( const Point& rPos, const OUString& rText, const double fFactor = static_cast<double>(nWidth) / aNormSize.Width(); for( i = 0; i < ( nLen - 1 ); i++ ) - aTmpArray.set(i, FRound(aTmpArray[i] * fFactor)); + aTmpArray.set(i, basegfx::fround(aTmpArray[i] * fFactor)); } else { @@ -2800,11 +2800,11 @@ void SVGActionWriter::ImplWriteText( const Point& rPos, const OUString& rText, return; tools::Polygon aPoly( 4 ); - const tools::Long nLineHeight = std::max<tools::Long>( FRound( aMetric.GetLineHeight() * 0.05 ), 1 ); + const tools::Long nLineHeight = std::max<tools::Long>( basegfx::fround<tools::Long>( aMetric.GetLineHeight() * 0.05 ), 1 ); if( rFont.GetStrikeout() ) { - const tools::Long nYLinePos = aBaseLinePos.Y() - FRound( aMetric.GetAscent() * 0.26 ); + const tools::Long nYLinePos = aBaseLinePos.Y() - basegfx::fround<tools::Long>( aMetric.GetAscent() * 0.26 ); aPoly[ 0 ].setX( aBaseLinePos.X() ); aPoly[ 0 ].setY( nYLinePos - ( nLineHeight >> 1 ) ); aPoly[ 1 ].setX( aBaseLinePos.X() + aNormSize.Width() - 1 ); aPoly[ 1 ].setY( aPoly[ 0 ].Y() ); @@ -3312,8 +3312,8 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf, // i.e. invisible line, because it makes it visible, // resulting an extra line behind the normal shape line if ( aNewLineColor.GetAlpha() > 0 ) - aNewLineColor.SetAlpha( 255 - sal::static_int_cast<sal_uInt8>( FRound( pA->GetTransparence() * 2.55 ) ) ); - aNewFillColor.SetAlpha( 255 - sal::static_int_cast<sal_uInt8>( FRound( pA->GetTransparence() * 2.55 ) ) ); + aNewLineColor.SetAlpha( 255 - basegfx::fround<sal_uInt8>( pA->GetTransparence() * 2.55 ) ); + aNewFillColor.SetAlpha( 255 - basegfx::fround<sal_uInt8>( pA->GetTransparence() * 2.55 ) ); maAttributeWriter.AddPaintAttr( aNewLineColor, aNewFillColor ); ImplWritePolyPolygon( rPolyPoly, false ); @@ -3479,7 +3479,7 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf, mapCurShape->maShapePolyPoly = aShapePolyPoly; mapCurShape->maShapeFillColor = aFill.getFillColor(); - mapCurShape->maShapeFillColor.SetAlpha( 255 - static_cast<sal_uInt8>(FRound( 255.0 * aFill.getTransparency() )) ); + mapCurShape->maShapeFillColor.SetAlpha( 255 - basegfx::fround<sal_uInt8>( 255.0 * aFill.getTransparency() ) ); if( bGradient ) { @@ -3569,8 +3569,8 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf, } mapCurShape->maShapeLineColor = mpVDev->GetLineColor(); - mapCurShape->maShapeLineColor.SetAlpha( 255 - static_cast<sal_uInt8>(FRound( aStroke.getTransparency() * 255.0 )) ); - mapCurShape->mnStrokeWidth = FRound( aStroke.getStrokeWidth() ); + mapCurShape->maShapeLineColor.SetAlpha( 255 - basegfx::fround<sal_uInt8>( aStroke.getTransparency() * 255.0 ) ); + mapCurShape->mnStrokeWidth = basegfx::fround(aStroke.getStrokeWidth()); aStroke.getDashArray( mapCurShape->maDashArray ); // added support for LineJoin diff --git a/include/basegfx/numeric/ftools.hxx b/include/basegfx/numeric/ftools.hxx index 62850c32670b..8404dc2babcd 100644 --- a/include/basegfx/numeric/ftools.hxx +++ b/include/basegfx/numeric/ftools.hxx @@ -35,41 +35,25 @@ namespace basegfx @return the nearest integer */ - inline sal_Int32 fround32( double fVal ) + template <class Int = sal_Int32> requires std::is_integral_v<Int> + inline Int fround(double fVal) { if (fVal >= 0.0) { - if (fVal >= std::numeric_limits<sal_Int32>::max() - .5) - return std::numeric_limits<sal_Int32>::max(); - return static_cast<sal_Int32>(fVal + .5); + if (fVal >= static_cast<double>(std::numeric_limits<Int>::max()) - 0.5) + return std::numeric_limits<Int>::max(); + return static_cast<Int>(fVal + .5); } - if (fVal <= std::numeric_limits<sal_Int32>::min() + .5) - return std::numeric_limits<sal_Int32>::min(); - return static_cast<sal_Int32>(fVal - .5); + if (fVal <= static_cast<double>(std::numeric_limits<Int>::min()) + 0.5) + return std::numeric_limits<Int>::min(); + return static_cast<Int>(fVal - .5); } /** Round double to nearest integer @return the nearest 64 bit integer */ - inline sal_Int64 fround64( double fVal ) - { - return fVal > 0.0 ? static_cast<sal_Int64>( fVal + .5 ) : -static_cast<sal_Int64>( -fVal + .5 ); - } - - /** Round double to nearest integer - - @return the nearest integer - */ - template <class Int = sal_Int32> - requires std::is_integral_v<Int> && std::is_signed_v<Int> - inline Int fround(double fVal) - { - if constexpr (sizeof(Int) == sizeof(sal_Int64)) - return fround64(fVal); - else - return fround32(fVal); - } + inline sal_Int64 fround64(double fVal) { return fround<sal_Int64>(fVal); } /** Prune a small epsilon range around zero. diff --git a/include/svx/svdtrans.hxx b/include/svx/svdtrans.hxx index ae225426afd6..2b32386e1004 100644 --- a/include/svx/svdtrans.hxx +++ b/include/svx/svdtrans.hxx @@ -94,27 +94,27 @@ inline void ResizePoint(Point& rPnt, const Point& rRef, const Fraction& xFract, { double nxFract = xFract.IsValid() ? static_cast<double>(xFract) : 1.0; double nyFract = yFract.IsValid() ? static_cast<double>(yFract) : 1.0; - rPnt.setX(rRef.X() + FRound( (rPnt.X() - rRef.X()) * nxFract )); - rPnt.setY(rRef.Y() + FRound( (rPnt.Y() - rRef.Y()) * nyFract )); + rPnt.setX(rRef.X() + basegfx::fround<tools::Long>((rPnt.X() - rRef.X()) * nxFract)); + rPnt.setY(rRef.Y() + basegfx::fround<tools::Long>((rPnt.Y() - rRef.Y()) * nyFract)); } inline void RotatePoint(Point& rPnt, const Point& rRef, double sn, double cs) { tools::Long dx=rPnt.X()-rRef.X(); tools::Long dy=rPnt.Y()-rRef.Y(); - rPnt.setX(FRound(rRef.X()+dx*cs+dy*sn)); - rPnt.setY(FRound(rRef.Y()+dy*cs-dx*sn)); + rPnt.setX(basegfx::fround<tools::Long>(rRef.X() + dx * cs + dy * sn)); + rPnt.setY(basegfx::fround<tools::Long>(rRef.Y() + dy * cs - dx * sn)); } inline void ShearPoint(Point& rPnt, const Point& rRef, double tn, bool bVShear) { if (!bVShear) { // Horizontal if (rPnt.Y()!=rRef.Y()) { // else not needed - rPnt.AdjustX(-FRound((rPnt.Y()-rRef.Y())*tn)); + rPnt.AdjustX(basegfx::fround<tools::Long>((rRef.Y() - rPnt.Y()) * tn)); } } else { // or else vertical if (rPnt.X()!=rRef.X()) { // else not needed - rPnt.AdjustY(-FRound((rPnt.X()-rRef.X())*tn)); + rPnt.AdjustY(basegfx::fround<tools::Long>((rRef.X() - rPnt.X()) * tn)); } } } diff --git a/include/tools/helpers.hxx b/include/tools/helpers.hxx index 1c224179ab58..6e499a6564a0 100644 --- a/include/tools/helpers.hxx +++ b/include/tools/helpers.hxx @@ -23,14 +23,6 @@ inline sal_uInt32 AlignedWidth4Bytes(sal_uInt32 nWidthBits) return (nWidthBits >> 5) << 2; } -inline tools::Long FRound( double fVal ) -{ - return fVal > 0.0 - ? fVal == double(std::numeric_limits<tools::Long>::max()) - ? std::numeric_limits<tools::Long>::max() : static_cast<tools::Long>( fVal + 0.5 ) - : static_cast<tools::Long>( fVal - 0.5 ); -} - //valid range: (-180,180] template <typename T> [[nodiscard]] inline typename std::enable_if<std::is_signed<T>::value, T>::type diff --git a/include/vcl/bitmap.hxx b/include/vcl/bitmap.hxx index 24cc1245e1f5..886c796e6c67 100644 --- a/include/vcl/bitmap.hxx +++ b/include/vcl/bitmap.hxx @@ -20,6 +20,9 @@ #ifndef INCLUDED_VCL_BITMAP_HXX #define INCLUDED_VCL_BITMAP_HXX +#include <sal/config.h> + +#include <basegfx/numeric/ftools.hxx> #include <tools/degree.hxx> #include <tools/helpers.hxx> #include <vcl/checksum.hxx> @@ -35,7 +38,7 @@ inline sal_uInt8 GAMMA(double _def_cVal, double _def_InvGamma) { - return FRound(std::clamp(pow(_def_cVal / 255.0, _def_InvGamma) * 255.0, 0.0, 255.0)); + return basegfx::fround<sal_uInt8>(pow(_def_cVal / 255.0, _def_InvGamma) * 255.0); } class Color; diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx index f6f5737dbc54..c34cad1f28d5 100644 --- a/sc/source/core/data/drwlayer.cxx +++ b/sc/source/core/data/drwlayer.cxx @@ -1020,10 +1020,10 @@ void ScDrawLayer::InitializeCellAnchoredObj(SdrObject* pObj, ScDrawObjData& rDat static_cast<SdrPathObj*>(pObj)->GetPathPoly().getB2DPolygon(0)); const basegfx::B2DPoint aB2DPoint0(aPoly.getB2DPoint(0)); const basegfx::B2DPoint aB2DPoint1(aPoly.getB2DPoint(1)); - const Point aPointLT(FRound(std::min(aB2DPoint0.getX(), aB2DPoint1.getX())), - FRound(std::min(aB2DPoint0.getY(), aB2DPoint1.getY()))); - const Point aPointRB(FRound(std::max(aB2DPoint0.getX(), aB2DPoint1.getX())), - FRound(std::max(aB2DPoint0.getY(), aB2DPoint1.getY()))); + const Point aPointLT(basegfx::fround<tools::Long>(std::min(aB2DPoint0.getX(), aB2DPoint1.getX())), + basegfx::fround<tools::Long>(std::min(aB2DPoint0.getY(), aB2DPoint1.getY()))); + const Point aPointRB(basegfx::fround<tools::Long>(std::max(aB2DPoint0.getX(), aB2DPoint1.getX())), + basegfx::fround<tools::Long>(std::max(aB2DPoint0.getY(), aB2DPoint1.getY()))); const tools::Rectangle aObjRect(aPointLT, aPointRB); GetCellAnchorFromPosition(aObjRect, rNoRotatedAnchor, *pDoc, nTab1, false /*bHiddenAsZero*/); diff --git a/sd/source/ui/app/optsitem.cxx b/sd/source/ui/app/optsitem.cxx index 1aee9d7d7afc..5f93655f1fb1 100644 --- a/sd/source/ui/app/optsitem.cxx +++ b/sd/source/ui/app/optsitem.cxx @@ -971,13 +971,13 @@ bool SdOptionsGrid::ReadData( const Any* pValues ) if( pValues[2].hasValue() ) { - const sal_uInt32 nDivX = FRound( *o3tl::doAccess<double>(pValues[ 2 ]) ); + const sal_uInt32 nDivX = basegfx::fround<sal_uInt32>(*o3tl::doAccess<double>(pValues[2])); SetFieldDivisionX( SvxOptionsGrid::GetFieldDrawX() / ( nDivX + 1 ) ); } if( pValues[3].hasValue() ) { - const sal_uInt32 nDivY = FRound( *o3tl::doAccess<double>(pValues[ 3 ]) ); + const sal_uInt32 nDivY = basegfx::fround<sal_uInt32>(*o3tl::doAccess<double>(pValues[3])); SetFieldDivisionY( SvxOptionsGrid::GetFieldDrawY() / ( nDivY + 1 ) ); } if( pValues[4].hasValue() ) SetUseGridSnap( *o3tl::doAccess<bool>(pValues[ 4 ]) ); diff --git a/sd/source/ui/dlg/vectdlg.cxx b/sd/source/ui/dlg/vectdlg.cxx index 3ef7aa9ac494..93e9c3ed6e73 100644 --- a/sd/source/ui/dlg/vectdlg.cxx +++ b/sd/source/ui/dlg/vectdlg.cxx @@ -225,9 +225,9 @@ void SdVectorizeDlg::AddTile( BitmapReadAccess const * pRAcc, GDIMetaFile& rMtf, } } - const Color aColor( static_cast<sal_uInt8>(FRound( nSumR * fMult )), - static_cast<sal_uInt8>(FRound( nSumG * fMult )), - static_cast<sal_uInt8>(FRound( nSumB * fMult )) ); + const Color aColor( basegfx::fround<sal_uInt8>( nSumR * fMult ), + basegfx::fround<sal_uInt8>( nSumG * fMult ), + basegfx::fround<sal_uInt8>( nSumB * fMult ) ); ::tools::Rectangle aRect( Point( nPosX, nPosY ), Size( nWidth + 1, nHeight + 1 ) ); const Size& rMaxSize = rMtf.GetPrefSize(); diff --git a/sd/source/ui/func/fuoaprms.cxx b/sd/source/ui/func/fuoaprms.cxx index fd01f9befd1d..b9bfbaf9c4fb 100644 --- a/sd/source/ui/func/fuoaprms.cxx +++ b/sd/source/ui/func/fuoaprms.cxx @@ -661,7 +661,8 @@ void FuObjectAnimationParameters::DoExecute( SfxRequest& rReq ) const ::basegfx::B2DPolygon& aPolygon(rPolyPolygon.getB2DPolygon(nNoOfPolygons - 1)); sal_uInt32 nPoints(aPolygon.count()); const ::basegfx::B2DPoint aNewB2DCenter(aPolygon.getB2DPoint(nPoints - 1)); - const Point aNewCenter(FRound(aNewB2DCenter.getX()), FRound(aNewB2DCenter.getY())); + const Point aNewCenter(basegfx::fround<::tools::Long>(aNewB2DCenter.getX()), + basegfx::fround<::tools::Long>(aNewB2DCenter.getY())); Size aDistance(aNewCenter.X() - aCurCenter.X(), aNewCenter.Y() - aCurCenter.Y()); pRunningObj->Move(aDistance); diff --git a/sd/source/ui/view/drviews8.cxx b/sd/source/ui/view/drviews8.cxx index 0f2907d424ba..15be1d1c95d0 100644 --- a/sd/source/ui/view/drviews8.cxx +++ b/sd/source/ui/view/drviews8.cxx @@ -74,13 +74,13 @@ void DrawViewShell::ScannerEvent() if( fGrfWH < fWinWH ) { - aBmpSize.setWidth( FRound( aPageSize.Height() * fGrfWH ) ); + aBmpSize.setWidth( basegfx::fround<::tools::Long>( aPageSize.Height() * fGrfWH ) ); aBmpSize.setHeight( aPageSize.Height() ); } else if( fGrfWH > 0.F ) { aBmpSize.setWidth( aPageSize.Width() ); - aBmpSize.setHeight( FRound( aPageSize.Width() / fGrfWH ) ); + aBmpSize.setHeight( basegfx::fround<::tools::Long>( aPageSize.Width() / fGrfWH ) ); } } diff --git a/sfx2/source/doc/objcont.cxx b/sfx2/source/doc/objcont.cxx index 8c3939b5f392..7c1f6b72014c 100644 --- a/sfx2/source/doc/objcont.cxx +++ b/sfx2/source/doc/objcont.cxx @@ -172,13 +172,13 @@ bool SfxObjectShell::CreatePreview_Impl( bool bFullContent, VirtualDevice* pDevi double fWH = static_cast< double >( aSizePix.Width() ) / aSizePix.Height(); if ( fWH <= 1.0 ) { - aSizePix.setWidth( FRound( nMaximumExtent * fWH ) ); + aSizePix.setWidth(basegfx::fround<tools::Long>(nMaximumExtent * fWH)); aSizePix.setHeight( nMaximumExtent ); } else { aSizePix.setWidth( nMaximumExtent ); - aSizePix.setHeight( FRound( nMaximumExtent / fWH ) ); + aSizePix.setHeight(basegfx::fround<tools::Long>(nMaximumExtent / fWH)); } } // do it 4x larger to be able to scale it down & get beautiful antialias diff --git a/slideshow/source/engine/shapes/drawinglayeranimation.cxx b/slideshow/source/engine/shapes/drawinglayeranimation.cxx index d0d3acb66369..ea765eea9649 100644 --- a/slideshow/source/engine/shapes/drawinglayeranimation.cxx +++ b/slideshow/source/engine/shapes/drawinglayeranimation.cxx @@ -422,7 +422,7 @@ void ActivityImpl::ImpForceScrollTextAnimNodes() const double fNumberSteps = (fRelativeDistance * fDistanceLogic) / GetStepWidthLogic(); - nLoopTime = FRound(fNumberSteps * mnFrequency); + nLoopTime = basegfx::fround<sal_uInt32>(fNumberSteps * mnFrequency); // init loop ScrollTextAnimNode aInitNode( @@ -451,7 +451,7 @@ void ActivityImpl::ImpForceScrollTextAnimNodes() const double fNumberSteps = (fRelativeDistance * fDistanceLogic) / GetStepWidthLogic(); - nLoopTime = FRound(fNumberSteps * mnFrequency); + nLoopTime = basegfx::fround<sal_uInt32>(fNumberSteps * mnFrequency); if(0 == mnRepeat) { @@ -501,7 +501,7 @@ void ActivityImpl::ImpForceScrollTextAnimNodes() const double fNumberSteps = (fRelativeDistance * fDistanceLogic) / GetStepWidthLogic(); - nLoopTime = FRound(fNumberSteps * mnFrequency); + nLoopTime = basegfx::fround<sal_uInt32>(fNumberSteps * mnFrequency); // exit loop ScrollTextAnimNode aExitNode( diff --git a/svx/source/customshapes/EnhancedCustomShape2d.cxx b/svx/source/customshapes/EnhancedCustomShape2d.cxx index ae194b8fcdea..082532d75f2d 100644 --- a/svx/source/customshapes/EnhancedCustomShape2d.cxx +++ b/svx/source/customshapes/EnhancedCustomShape2d.cxx @@ -1185,9 +1185,9 @@ bool EnhancedCustomShape2d::GetHandlePosition( const sal_uInt32 nIndex, Point& r double fY =-dx * sin( a ); rReturnPosition = Point( - FRound( fX + aReferencePoint.X() ), + basegfx::fround<tools::Long>( fX + aReferencePoint.X() ), basegfx::fTools::equalZero(m_fXScale) ? aReferencePoint.Y() : - FRound( ( fY * m_fYScale ) / m_fXScale + aReferencePoint.Y() ) ); + basegfx::fround<tools::Long>( ( fY * m_fYScale ) / m_fXScale + aReferencePoint.Y() ) ); } else { diff --git a/svx/source/dialog/_contdlg.cxx b/svx/source/dialog/_contdlg.cxx index da7077956917..117d6e7849c1 100644 --- a/svx/source/dialog/_contdlg.cxx +++ b/svx/source/dialog/_contdlg.cxx @@ -135,12 +135,12 @@ tools::PolyPolygon SvxContourDlg::CreateAutoContour( const Graphic& rGraphic, if( fWH <= 1.0 ) { aSizePix.setHeight(512); - aSizePix.setWidth( FRound( ( aSizePix.Height() ) * fWH ) ); + aSizePix.setWidth(basegfx::fround<tools::Long>(aSizePix.Height() * fWH)); } else { aSizePix.setWidth(512); - aSizePix.setHeight( FRound( ( aSizePix.Width() ) / fWH ) ); + aSizePix.setHeight(basegfx::fround<tools::Long>(aSizePix.Width() / fWH)); } } diff --git a/svx/source/gallery2/galobj.cxx b/svx/source/gallery2/galobj.cxx index f083ad85bb78..2c11af446b17 100644 --- a/svx/source/gallery2/galobj.cxx +++ b/svx/source/gallery2/galobj.cxx @@ -118,9 +118,9 @@ bool SgaObject::CreateThumb( const Graphic& rGraphic ) double fFactorPix = static_cast< double >( aBmpSize.Width() ) / aBmpSize.Height(); if( fFactorPix > fFactorLog ) - aBmpSize.setWidth( FRound( aBmpSize.Height() * fFactorLog ) ); + aBmpSize.setWidth( basegfx::fround<tools::Long>( aBmpSize.Height() * fFactorLog ) ); else - aBmpSize.setHeight( FRound( aBmpSize.Width() / fFactorLog ) ); + aBmpSize.setHeight( basegfx::fround<tools::Long>( aBmpSize.Width() / fFactorLog ) ); aBmpEx.Scale(aBmpSize, BmpScaleFlag::BestQuality); } diff --git a/svx/source/svdraw/gradtrns.cxx b/svx/source/svdraw/gradtrns.cxx index 82a4ea0a29d1..28b61f5e9208 100644 --- a/svx/source/svdraw/gradtrns.cxx +++ b/svx/source/svdraw/gradtrns.cxx @@ -239,7 +239,7 @@ void GradTransformer::VecToGrad(GradTransVector const & rV, GradTransGradient& r } // to int and set - Degree10 nNewAngle( FRound(fNewFullAngle)); + Degree10 nNewAngle(basegfx::fround<sal_Int16>(fNewFullAngle)); if(nNewAngle != rGOld.aGradient.GetAngle()) { @@ -256,7 +256,7 @@ void GradTransformer::VecToGrad(GradTransVector const & rV, GradTransGradient& r const double fFullLen(aFullVec.getLength()); const double fOldLen(aOldVec.getLength()); const double fNewBorder((fFullLen * 100.0) / fOldLen); - sal_Int32 nNewBorder(100 - FRound(fNewBorder)); + sal_Int32 nNewBorder(100 - basegfx::fround(fNewBorder)); // clip if(nNewBorder < 0) @@ -287,7 +287,7 @@ void GradTransformer::VecToGrad(GradTransVector const & rV, GradTransGradient& r const double fFullLen(aFullVec.getLength()); const double fOldLen(aOldVec.getLength()); const double fNewBorder((fFullLen * 100.0) / fOldLen); - sal_Int32 nNewBorder = 100 - FRound(fNewBorder); + sal_Int32 nNewBorder = 100 - basegfx::fround(fNewBorder); // clip if(nNewBorder < 0) @@ -323,7 +323,7 @@ void GradTransformer::VecToGrad(GradTransVector const & rV, GradTransGradient& r } // to int and set - const Degree10 nNewAngle(FRound(fNewFullAngle)); + const Degree10 nNewAngle(basegfx::fround<sal_Int16>(fNewFullAngle)); if(nNewAngle != rGOld.aGradient.GetAngle()) { @@ -340,8 +340,8 @@ void GradTransformer::VecToGrad(GradTransVector const & rV, GradTransGradient& r { const basegfx::B2DPoint aTopLeft(aRange.getMinX(), aRange.getMinY()); const basegfx::B2DPoint aOffset(aEndPos - aTopLeft); - sal_Int32 nNewXOffset(FRound((aOffset.getX() * 100.0) / aRange.getWidth())); - sal_Int32 nNewYOffset(FRound((aOffset.getY() * 100.0) / aRange.getHeight())); + sal_Int32 nNewXOffset(basegfx::fround(aOffset.getX() * 100.0 / aRange.getWidth())); + sal_Int32 nNewYOffset(basegfx::fround(aOffset.getY() * 100.0 / aRange.getHeight())); // clip if(nNewXOffset < 0) @@ -380,7 +380,7 @@ void GradTransformer::VecToGrad(GradTransVector const & rV, GradTransGradient& r const double fFullLen(aFullVec.getLength()); const double fOldLen(aOldVec.getLength()); const double fNewBorder((fFullLen * 100.0) / fOldLen); - sal_Int32 nNewBorder(100 - FRound(fNewBorder)); + sal_Int32 nNewBorder(100 - basegfx::fround(fNewBorder)); // clip if(nNewBorder < 0) @@ -418,7 +418,7 @@ void GradTransformer::VecToGrad(GradTransVector const & rV, GradTransGradient& r } // to int and set - const Degree10 nNewAngle(FRound(fNewFullAngle)); + const Degree10 nNewAngle(basegfx::fround<sal_Int16>(fNewFullAngle)); if(nNewAngle != rGOld.aGradient.GetAngle()) { @@ -435,8 +435,8 @@ void GradTransformer::VecToGrad(GradTransVector const & rV, GradTransGradient& r { const basegfx::B2DPoint aTopLeft(aRange.getMinX(), aRange.getMinY()); const basegfx::B2DPoint aOffset(aEndPos - aTopLeft); - sal_Int32 nNewXOffset(FRound((aOffset.getX() * 100.0) / aRange.getWidth())); - sal_Int32 nNewYOffset(FRound((aOffset.getY() * 100.0) / aRange.getHeight())); + sal_Int32 nNewXOffset(basegfx::fround(aOffset.getX() * 100.0 / aRange.getWidth())); + sal_Int32 nNewYOffset(basegfx::fround(aOffset.getY() * 100.0 / aRange.getHeight())); // clip if(nNewXOffset < 0) @@ -475,7 +475,7 @@ void GradTransformer::VecToGrad(GradTransVector const & rV, GradTransGradient& r const double fFullLen(aFullVec.getLength()); const double fOldLen(aOldVec.getLength()); const double fNewBorder((fFullLen * 100.0) / fOldLen); - sal_Int32 nNewBorder(100 - FRound(fNewBorder)); + sal_Int32 nNewBorder(100 - basegfx::fround(fNewBorder)); // clip if(nNewBorder < 0) @@ -513,7 +513,7 @@ void GradTransformer::VecToGrad(GradTransVector const & rV, GradTransGradient& r } // to int and set - const Degree10 nNewAngle(FRound(fNewFullAngle)); + const Degree10 nNewAngle(basegfx::fround<sal_Int16>(fNewFullAngle)); if(nNewAngle != rGOld.aGradient.GetAngle()) { diff --git a/svx/source/svdraw/sdrpagewindow.cxx b/svx/source/svdraw/sdrpagewindow.cxx index fa8e5f4d7f84..f45ab9276981 100644 --- a/svx/source/svdraw/sdrpagewindow.cxx +++ b/svx/source/svdraw/sdrpagewindow.cxx @@ -231,6 +231,7 @@ void SdrPageWindow::PrepareRedraw(const vcl::Region& rReg) // clip test #ifdef CLIPPER_TEST #include <svx/svdopath.hxx> +#include <basegfx/numeric/ftools.hxx> #include <basegfx/polygon/b2dpolygon.hxx> #include <tools/helpers.hxx> #include <basegfx/polygon/b2dpolygoncutandtouch.hxx> @@ -262,8 +263,10 @@ namespace { const basegfx::B2DPoint aBStart(aCandidate.getB2DPoint(a)); const basegfx::B2DPoint aBEnd(aCandidate.getB2DPoint((a + 1) % aCandidate.count())); - const Point aStart(FRound(aBStart.getX()), FRound(aBStart.getY())); - const Point aEnd(FRound(aBEnd.getX()), FRound(aBEnd.getY())); + const Point aStart(basegfx::fround<tools::Long>(aBStart.getX()), + basegfx::fround<tools::Long>(aBStart.getY())); + const Point aEnd(basegfx::fround<tools::Long>(aBEnd.getX()), + basegfx::fround<tools::Long>(aBEnd.getY())); rOutDev.DrawLine(aStart, aEnd); } } diff --git a/svx/source/svdraw/svdedtv1.cxx b/svx/source/svdraw/svdedtv1.cxx index 7729cb52d06c..db0e27d748b1 100644 --- a/svx/source/svdraw/svdedtv1.cxx +++ b/svx/source/svdraw/svdedtv1.cxx @@ -558,7 +558,7 @@ void SdrEditView::ImpCrookObj(SdrObject* pO, const Point& rRef, const Point& rRa aCtr1 -= aCtr0; if(bRotOk) - pO->Rotate(aCtr0, Degree100(FRound(basegfx::rad2deg<100>(nAngle))), nSin, nCos); + pO->Rotate(aCtr0, Degree100(basegfx::fround(basegfx::rad2deg<100>(nAngle))), nSin, nCos); pO->Move(Size(aCtr1.X(),aCtr1.Y())); } @@ -1674,7 +1674,7 @@ void SdrEditView::SetGeoAttrToMarked(const SfxItemSet& rAttr, bool addPageMargin double nNew = tan(toRadians(nNewShearAngle)); nNew-=nOld; nNew = basegfx::rad2deg<100>(atan(nNew)); - nShearAngle=Degree100(FRound(nNew)); + nShearAngle = Degree100(basegfx::fround(nNew)); } else { nShearAngle=nNewShearAngle-nOldShearAngle; } diff --git a/svx/source/svdraw/svdfmtf.cxx b/svx/source/svdraw/svdfmtf.cxx index 84bb470b5741..90d2c509f837 100644 --- a/svx/source/svdraw/svdfmtf.cxx +++ b/svx/source/svdraw/svdfmtf.cxx @@ -393,7 +393,7 @@ void ImpSdrGDIMetaFileImport::SetAttributes(SdrObject* pObj, bool bForceTextAttr if(bText && mbFntDirty) { vcl::Font aFnt(mpVD->GetFont()); - const sal_uInt32 nHeight(FRound(aFnt.GetFontSize().Height() * mfScaleY)); + const sal_uInt32 nHeight(basegfx::fround(aFnt.GetFontSize().Height() * mfScaleY)); mpTextAttr->Put( SvxFontItem( aFnt.GetFamilyType(), aFnt.GetFamilyName(), aFnt.GetStyleName(), aFnt.GetPitch(), aFnt.GetCharSet(), EE_CHAR_FONTINFO ) ); mpTextAttr->Put( SvxFontItem( aFnt.GetFamilyType(), aFnt.GetFamilyName(), aFnt.GetStyleName(), aFnt.GetPitch(), aFnt.GetCharSet(), EE_CHAR_FONTINFO_CJK ) ); @@ -1001,11 +1001,12 @@ void ImpSdrGDIMetaFileImport::ImportText( const Point& rPos, const OUString& rSt sal_Int32 nTextWidth = static_cast<sal_Int32>( mpVD->GetTextWidth( rStr ) * mfScaleX ); sal_Int32 nTextHeight = static_cast<sal_Int32>( mpVD->GetTextHeight() * mfScaleY ); - Point aPos( FRound(rPos.X() * mfScaleX + maOfs.X()), FRound(rPos.Y() * mfScaleY + maOfs.Y()) ); + Point aPos(basegfx::fround<tools::Long>(rPos.X() * mfScaleX + maOfs.X()), + basegfx::fround<tools::Long>(rPos.Y() * mfScaleY + maOfs.Y())); Size aSize( nTextWidth, nTextHeight ); if ( eAlg == ALIGN_BASELINE ) - aPos.AdjustY( -(FRound(aFontMetric.GetAscent() * mfScaleY)) ); + aPos.AdjustY(basegfx::fround<tools::Long>(aFontMetric.GetAscent() * -mfScaleY)); else if ( eAlg == ALIGN_BOTTOM ) aPos.AdjustY( -nTextHeight ); diff --git a/svx/source/svdraw/svdhdl.cxx b/svx/source/svdraw/svdhdl.cxx index d32d01edb4bc..993b2e26dd57 100644 --- a/svx/source/svdraw/svdhdl.cxx +++ b/svx/source/svdraw/svdhdl.cxx @@ -1420,16 +1420,20 @@ void SdrHdlGradient::FromIAOToItem(SdrObject* _pObj, bool bSetItemOnObject, bool // back transformation, set values on pIAOHandle GradTransformer::GradToVec(aGradTransGradient, aGradTransVector, _pObj); - SetPos(Point(FRound(aGradTransVector.maPositionA.getX()), FRound(aGradTransVector.maPositionA.getY()))); - Set2ndPos(Point(FRound(aGradTransVector.maPositionB.getX()), FRound(aGradTransVector.maPositionB.getY()))); + SetPos({ basegfx::fround<tools::Long>(aGradTransVector.maPositionA.getX()), + basegfx::fround<tools::Long>(aGradTransVector.maPositionA.getY()) }); + Set2ndPos({ basegfx::fround<tools::Long>(aGradTransVector.maPositionB.getX()), + basegfx::fround<tools::Long>(aGradTransVector.maPositionB.getY()) }); if(m_pColHdl1) { - m_pColHdl1->SetPos(Point(FRound(aGradTransVector.maPositionA.getX()), FRound(aGradTransVector.maPositionA.getY()))); + m_pColHdl1->SetPos({ basegfx::fround<tools::Long>(aGradTransVector.maPositionA.getX()), + basegfx::fround<tools::Long>(aGradTransVector.maPositionA.getY()) }); m_pColHdl1->SetColor(aGradTransVector.aCol1); } if(m_pColHdl2) { - m_pColHdl2->SetPos(Point(FRound(aGradTransVector.maPositionB.getX()), FRound(aGradTransVector.maPositionB.getY()))); + m_pColHdl2->SetPos({ basegfx::fround<tools::Long>(aGradTransVector.maPositionB.getX()), + basegfx::fround<tools::Long>(aGradTransVector.maPositionB.getY()) }); m_pColHdl2->SetColor(aGradTransVector.aCol2); } } diff --git a/svx/source/svdraw/svdoashp.cxx b/svx/source/svdraw/svdoashp.cxx index cbe19a8e8e2e..0f952aae08bd 100644 --- a/svx/source/svdraw/svdoashp.cxx +++ b/svx/source/svdraw/svdoashp.cxx @@ -3045,7 +3045,8 @@ void SdrObjCustomShape::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, } // scale - Size aSize(FRound(fabs(aScale.getX())), FRound(fabs(aScale.getY()))); + Size aSize(basegfx::fround<tools::Long>(fabs(aScale.getX())), + basegfx::fround<tools::Long>(fabs(aScale.getY()))); // fdo#47434 We need a valid rectangle here if( !aSize.Height() ) aSize.setHeight( 1 ); if( !aSize.Width() ) aSize.setWidth( 1 ); @@ -3065,7 +3066,7 @@ void SdrObjCustomShape::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, // #i123181# The fix for #121932# here was wrong, the trunk version does not correct the // mirrored shear values, neither at the object level, nor on the API or XML level. Taking // back the mirroring of the shear angle - aGeoStat.m_nShearAngle = Degree100(FRound(basegfx::rad2deg<100>(atan(fShearX)))); + aGeoStat.m_nShearAngle = Degree100(basegfx::fround(basegfx::rad2deg<100>(atan(fShearX)))); aGeoStat.RecalcTan(); Shear(Point(), aGeoStat.m_nShearAngle, aGeoStat.mfTanShearAngle, false); } @@ -3078,7 +3079,7 @@ void SdrObjCustomShape::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, // #i78696# // fRotate is mathematically correct, but aGeoStat.nRotationAngle is // mirrored -> mirror value here - aGeoStat.m_nRotationAngle = NormAngle36000(Degree100(FRound(-basegfx::rad2deg<100>(fRotate)))); + aGeoStat.m_nRotationAngle = NormAngle36000(Degree100(basegfx::fround(-basegfx::rad2deg<100>(fRotate)))); aGeoStat.RecalcSinCos(); Rotate(Point(), aGeoStat.m_nRotationAngle, aGeoStat.mfSinRotationAngle, aGeoStat.mfCosRotationAngle); } @@ -3086,7 +3087,8 @@ void SdrObjCustomShape::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, // translate? if(!aTranslate.equalZero()) { - Move(Size(FRound(aTranslate.getX()), FRound(aTranslate.getY()))); + Move(Size(basegfx::fround<tools::Long>(aTranslate.getX()), + basegfx::fround<tools::Long>(aTranslate.getY()))); } // Apply flipping from enhanced geometry at center of the shape. @@ -3107,11 +3109,11 @@ void SdrObjCustomShape::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, double fCenterX = aCenter.getX(); double fCenterY = aCenter.getY(); if (bIsMirroredX) // vertical axis - Mirror(Point(FRound(fCenterX),FRound(fCenterY)), - Point(FRound(fCenterX), FRound(fCenterY + 1000.0))); + Mirror(Point(basegfx::fround<tools::Long>(fCenterX), basegfx::fround<tools::Long>(fCenterY)), + Point(basegfx::fround<tools::Long>(fCenterX), basegfx::fround<tools::Long>(fCenterY + 1000.0))); if (bIsMirroredY) // horizontal axis - Mirror(Point(FRound(fCenterX),FRound(fCenterY)), - Point(FRound(fCenterX + 1000.0), FRound(fCenterY))); + Mirror(Point(basegfx::fround<tools::Long>(fCenterX), basegfx::fround<tools::Long>(fCenterY)), + Point(basegfx::fround<tools::Long>(fCenterX + 1000.0), basegfx::fround<tools::Long>(fCenterY))); } // taking fObjectRotation instead of aGeo.nAngle diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx index f169ba06056f..ccc79daed1dd 100644 --- a/svx/source/svdraw/svdobj.cxx +++ b/svx/source/svdraw/svdobj.cxx @@ -3003,8 +3003,10 @@ void SdrObject::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const ba } // build BaseRect - Point aPoint(FRound(aTranslate.getX()), FRound(aTranslate.getY())); - tools::Rectangle aBaseRect(aPoint, Size(FRound(aScale.getX()), FRound(aScale.getY()))); + Point aPoint(basegfx::fround<tools::Long>(aTranslate.getX()), + basegfx::fround<tools::Long>(aTranslate.getY())); + tools::Rectangle aBaseRect(aPoint, Size(basegfx::fround<tools::Long>(aScale.getX()), + basegfx::fround<tools::Long>(aScale.getY()))); // set BaseRect SetSnapRect(aBaseRect); diff --git a/svx/source/svdraw/svdocapt.cxx b/svx/source/svdraw/svdocapt.cxx index 98c86664c28a..d7dc7d926ba1 100644 --- a/svx/source/svdraw/svdocapt.cxx +++ b/svx/source/svdraw/svdocapt.cxx @@ -738,8 +738,10 @@ void SdrCaptionObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, cons } // build BaseRect - Point aPoint(FRound(aTranslate.getX()), FRound(aTranslate.getY())); - tools::Rectangle aBaseRect(aPoint, Size(FRound(aScale.getX()), FRound(aScale.getY()))); + Point aPoint(basegfx::fround<tools::Long>(aTranslate.getX()), + basegfx::fround<tools::Long>(aTranslate.getY())); + tools::Rectangle aBaseRect(aPoint, Size(basegfx::fround<tools::Long>(aScale.getX()), + basegfx::fround<tools::Long>(aScale.getY()))); // set BaseRect, but rescue TailPos over this call const Point aTailPoint = GetTailPos(); diff --git a/svx/source/svdraw/svdocirc.cxx b/svx/source/svdraw/svdocirc.cxx index becc496c76f1..ba656c32f353 100644 --- a/svx/source/svdraw/svdocirc.cxx +++ b/svx/source/svdraw/svdocirc.cxx @@ -57,7 +57,8 @@ static Point GetAnglePnt(const tools::Rectangle& rR, Degree100 nAngle) tools::Long nHgt=rR.Bottom()-rR.Top(); tools::Long nMaxRad=(std::max(nWdt,nHgt)+1) /2; double a = toRadians(nAngle); - Point aRetval(FRound(cos(a)*nMaxRad),-FRound(sin(a)*nMaxRad)); + Point aRetval(basegfx::fround<tools::Long>(cos(a) * nMaxRad), + basegfx::fround<tools::Long>(-sin(a) * nMaxRad)); if (nWdt==0) aRetval.setX(0 ); if (nHgt==0) aRetval.setY(0 ); if (nWdt!=nHgt) { @@ -888,13 +889,15 @@ void SdrCircObj::NbcMirror(const Point& rRef1, const Point& rRef2) tools::Long nMaxRad=(std::max(nWdt,nHgt)+1) /2; // starting point double a = toRadians(nStartAngle); - aTmpPt1=Point(FRound(cos(a)*nMaxRad),-FRound(sin(a)*nMaxRad)); + aTmpPt1 = Point(basegfx::fround<tools::Long>(cos(a) * nMaxRad), + basegfx::fround<tools::Long>(-sin(a) * nMaxRad)); if (nWdt==0) aTmpPt1.setX(0 ); if (nHgt==0) aTmpPt1.setY(0 ); aTmpPt1+=aCenter; // finishing point a = toRadians(nEndAngle); - aTmpPt2=Point(FRound(cos(a)*nMaxRad),-FRound(sin(a)*nMaxRad)); + aTmpPt2 = Point(basegfx::fround<tools::Long>(cos(a) * nMaxRad), + basegfx::fround<tools::Long>(-sin(a) * nMaxRad)); if (nWdt==0) aTmpPt2.setX(0 ); if (nHgt==0) aTmpPt2.setY(0 ); aTmpPt2+=aCenter; @@ -1013,7 +1016,7 @@ void SdrCircObj::TakeUnrotatedSnapRect(tools::Rectangle& rRect) const if (maGeo.m_nShearAngle==0_deg100) return; - tools::Long nDst = FRound((rRect.Bottom() - rRect.Top()) * maGeo.mfTanShearAngle); + tools::Long nDst = basegfx::fround<tools::Long>((rRect.Bottom() - rRect.Top()) * maGeo.mfTanShearAngle); if (maGeo.m_nShearAngle > 0_deg100) { Point aRef(rRect.TopLeft()); diff --git a/svx/source/svdraw/svdoedge.cxx b/svx/source/svdraw/svdoedge.cxx index 414bc53ddea4..4107b36149a9 100644 --- a/svx/source/svdraw/svdoedge.cxx +++ b/svx/source/svdraw/svdoedge.cxx @@ -1517,8 +1517,8 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, tools::Long nAngle1, co // corresponding bentConnector as calculated above. auto SegmentPoint = [&aXP1](const sal_uInt16& nEnd, const double& fFactor) { return Point( - aXP1[nEnd - 1].X() + FRound(fFactor * (aXP1[nEnd].X() - aXP1[nEnd - 1].X())), - aXP1[nEnd - 1].Y() + FRound(fFactor * (aXP1[nEnd].Y() - aXP1[nEnd - 1].Y()))); + aXP1[nEnd - 1].X() + basegfx::fround<tools::Long>(fFactor * (aXP1[nEnd].X() - aXP1[nEnd - 1].X())), + aXP1[nEnd - 1].Y() + basegfx::fround<tools::Long>(fFactor * (aXP1[nEnd].Y() - aXP1[nEnd - 1].Y()))); }; // We change the path going from end to start. Thus inserting points does not affect the index diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx index 0d03e5934fa7..bfe9b7d5eedb 100644 --- a/svx/source/svdraw/svdograf.cxx +++ b/svx/source/svdraw/svdograf.cxx @@ -1039,7 +1039,7 @@ void SdrGrafObj::ImpSetAttrToGrafInfo() aGrafInfo.SetChannelG( rSet.Get( SDRATTR_GRAFGREEN ).GetValue() ); aGrafInfo.SetChannelB( rSet.Get( SDRATTR_GRAFBLUE ).GetValue() ); aGrafInfo.SetGamma( rSet.Get( SDRATTR_GRAFGAMMA ).GetValue() * 0.01 ); - aGrafInfo.SetAlpha( 255 - static_cast<sal_uInt8>(FRound( std::min( nTrans, sal_uInt16(100) ) * 2.55 )) ); + aGrafInfo.SetAlpha(255 - basegfx::fround<sal_uInt8>(nTrans * 2.55)); aGrafInfo.SetInvert( rSet.Get( SDRATTR_GRAFINVERT ).GetValue() ); aGrafInfo.SetDrawMode( rSet.Get( SDRATTR_GRAFMODE ).GetValue() ); aGrafInfo.SetCrop( rCrop.GetLeft(), rCrop.GetTop(), rCrop.GetRight(), rCrop.GetBottom() ); diff --git a/svx/source/svdraw/svdomeas.cxx b/svx/source/svdraw/svdomeas.cxx index 5778cbe5622d..242bded04171 100644 --- a/svx/source/svdraw/svdomeas.cxx +++ b/svx/source/svdraw/svdomeas.cxx @@ -462,14 +462,14 @@ void SdrMeasureObj::ImpCalcGeometrics(const ImpMeasureRec& rRec, ImpMeasurePoly& tools::Long nOverhang=rRec.nHelplineOverhang; tools::Long nHelplineDist=rRec.nHelplineDist; - tools::Long dx= FRound(nLineDist*nHlpCos); - tools::Long dy=-FRound(nLineDist*nHlpSin); - tools::Long dxh1a= FRound((nHelplineDist-rRec.nHelpline1Len)*nHlpCos); - tools::Long dyh1a=-FRound((nHelplineDist-rRec.nHelpline1Len)*nHlpSin); - tools::Long dxh1b= FRound((nHelplineDist-rRec.nHelpline2Len)*nHlpCos); - tools::Long dyh1b=-FRound((nHelplineDist-rRec.nHelpline2Len)*nHlpSin); - tools::Long dxh2= FRound((nLineDist+nOverhang)*nHlpCos); - tools::Long dyh2=-FRound((nLineDist+nOverhang)*nHlpSin); + tools::Long dx = basegfx::fround<tools::Long>(nLineDist * nHlpCos); + tools::Long dy = basegfx::fround<tools::Long>(nLineDist * -nHlpSin); + tools::Long dxh1a = basegfx::fround<tools::Long>((nHelplineDist - rRec.nHelpline1Len) * nHlpCos); + tools::Long dyh1a = basegfx::fround<tools::Long>((nHelplineDist - rRec.nHelpline1Len) * -nHlpSin); + tools::Long dxh1b = basegfx::fround<tools::Long>((nHelplineDist - rRec.nHelpline2Len) * nHlpCos); + tools::Long dyh1b = basegfx::fround<tools::Long>((nHelplineDist - rRec.nHelpline2Len) * -nHlpSin); + tools::Long dxh2 = basegfx::fround<tools::Long>((nLineDist + nOverhang) * nHlpCos); + tools::Long dyh2 = basegfx::fround<tools::Long>((nLineDist + nOverhang) * -nHlpSin); // extension line 1 rPol.aHelpline1.aP1=Point(aP1.X()+dxh1a,aP1.Y()+dyh1a); diff --git a/svx/source/svdraw/svdopath.cxx b/svx/source/svdraw/svdopath.cxx index d76faf320439..322b7444960f 100644 --- a/svx/source/svdraw/svdopath.cxx +++ b/svx/source/svdraw/svdopath.cxx @@ -324,18 +324,18 @@ void ImpPathCreateUser::CalcCircle(const Point& rP1, const Point& rP2, const Poi if (bRet) { double cs = cos(toRadians(nTmpAngle)); double nR=static_cast<double>(GetLen(Point(dx,dy)))/cs/2; - nRad=std::abs(FRound(nR)); + nRad = std::abs(basegfx::fround<tools::Long>(nR)); } if (dAngle<18000_deg100) { nCircStAngle=NormAngle36000(nTangAngle-9000_deg100); nCircRelAngle=NormAngle36000(2_deg100*dAngle); - aCircCenter.AdjustX(FRound(nRad * cos(toRadians(nTangAngle + 9000_deg100)))); - aCircCenter.AdjustY(-(FRound(nRad * sin(toRadians(nTangAngle + 9000_deg100))))); + aCircCenter.AdjustX(basegfx::fround<tools::Long>(nRad * cos(toRadians(nTangAngle + 9000_deg100)))); + aCircCenter.AdjustY(basegfx::fround<tools::Long>(nRad * -sin(toRadians(nTangAngle + 9000_deg100)))); } else { nCircStAngle=NormAngle36000(nTangAngle+9000_deg100); nCircRelAngle=-NormAngle36000(36000_deg100-2_deg100*dAngle); - aCircCenter.AdjustX(FRound(nRad * cos(toRadians(nTangAngle - 9000_deg100)))); - aCircCenter.AdjustY(-(FRound(nRad * sin(toRadians(nTangAngle - 9000_deg100))))); + aCircCenter.AdjustX(basegfx::fround<tools::Long>(nRad * cos(toRadians(nTangAngle - 9000_deg100)))); + aCircCenter.AdjustY(basegfx::fround<tools::Long>(nRad * -sin(toRadians(nTangAngle - 9000_deg100)))); } bAngleSnap=pView!=nullptr && pView->IsAngleSnapEnabled(); if (bAngleSnap) { @@ -457,8 +457,8 @@ void ImpPathCreateUser::CalcRect(const Point& rP1, const Point& rP2, const Point double sn=sin(a); double cs=cos(a); double nGKathLen=nHypLen*sn; - y+=FRound(nGKathLen*sn); - x+=FRound(nGKathLen*cs); + y += basegfx::fround<tools::Long>(nGKathLen * sn); + x += basegfx::fround<tools::Long>(nGKathLen * cs); } aRectP2.AdjustX(x ); aRectP2.AdjustY(y ); @@ -1659,8 +1659,8 @@ static tools::Rectangle lcl_ImpGetBoundRect(const basegfx::B2DPolyPolygon& rPoly return tools::Rectangle(); return tools::Rectangle( - FRound(aRange.getMinX()), FRound(aRange.getMinY()), - FRound(aRange.getMaxX()), FRound(aRange.getMaxY())); + basegfx::fround<tools::Long>(aRange.getMinX()), basegfx::fround<tools::Long>(aRange.getMinY()), + basegfx::fround<tools::Long>(aRange.getMaxX()), basegfx::fround<tools::Long>(aRange.getMaxY())); } void SdrPathObj::ImpForceLineAngle() @@ -1671,10 +1671,13 @@ void SdrPathObj::ImpForceLineAngle() const basegfx::B2DPolygon aPoly(GetPathPoly().getB2DPolygon(0)); const basegfx::B2DPoint aB2DPoint0(aPoly.getB2DPoint(0)); const basegfx::B2DPoint aB2DPoint1(aPoly.getB2DPoint(1)); - const Point aPoint0(FRound(aB2DPoint0.getX()), FRound(aB2DPoint0.getY())); - const Point aPoint1(FRound(aB2DPoint1.getX()), FRound(aB2DPoint1.getY())); + const Point aPoint0(basegfx::fround<tools::Long>(aB2DPoint0.getX()), + basegfx::fround<tools::Long>(aB2DPoint0.getY())); + const Point aPoint1(basegfx::fround<tools::Long>(aB2DPoint1.getX()), + basegfx::fround<tools::Long>(aB2DPoint1.getY())); const basegfx::B2DPoint aB2DDelt(aB2DPoint1 - aB2DPoint0); - const Point aDelt(FRound(aB2DDelt.getX()), FRound(aB2DDelt.getY())); + const Point aDelt(basegfx::fround<tools::Long>(aB2DDelt.getX()), + basegfx::fround<tools::Long>(aB2DDelt.getY())); maGeo.m_nRotationAngle=GetAngle(aDelt); maGeo.m_nShearAngle=0_deg100; @@ -2414,7 +2417,8 @@ Point SdrPathObj::GetSnapPoint(sal_uInt32 nSnapPnt) const } const basegfx::B2DPoint aB2DPoint(GetPathPoly().getB2DPolygon(nPoly).getB2DPoint(nPnt)); - return Point(FRound(aB2DPoint.getX()), FRound(aB2DPoint.getY())); + return Point(basegfx::fround<tools::Long>(aB2DPoint.getX()), + basegfx::fround<tools::Long>(aB2DPoint.getY())); } bool SdrPathObj::IsPolyObj() const @@ -2443,7 +2447,8 @@ Point SdrPathObj::GetPoint(sal_uInt32 nHdlNum) const { const basegfx::B2DPolygon aPoly(GetPathPoly().getB2DPolygon(nPoly)); const basegfx::B2DPoint aPoint(aPoly.getB2DPoint(nPnt)); - aRetval = Point(FRound(aPoint.getX()), FRound(aPoint.getY())); + aRetval = Point(basegfx::fround<tools::Long>(aPoint.getX()), + basegfx::fround<tools::Long>(aPoint.getY())); } return aRetval; @@ -2953,7 +2958,7 @@ void SdrPathObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const b if(!basegfx::fTools::equalZero(fShearX)) { aTransform.shearX(tan(-atan(fShearX))); - maGeo.m_nShearAngle = Degree100(FRound(basegfx::rad2deg<100>(atan(fShearX)))); + maGeo.m_nShearAngle = Degree100(basegfx::fround(basegfx::rad2deg<100>(atan(fShearX)))); maGeo.RecalcTan(); } @@ -2967,7 +2972,7 @@ void SdrPathObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const b // #i78696# // fRotate is mathematically correct, but aGeoStat.nRotationAngle is // mirrored -> mirror value here - maGeo.m_nRotationAngle = NormAngle36000(Degree100(FRound(-basegfx::rad2deg<100>(fRotate)))); + maGeo.m_nRotationAngle = NormAngle36000(Degree100(basegfx::fround(-basegfx::rad2deg<100>(fRotate)))); maGeo.RecalcSinCos(); } diff --git a/svx/source/svdraw/svdorect.cxx b/svx/source/svdraw/svdorect.cxx index 7f805a2d2892..fc07af830bfb 100644 --- a/svx/source/svdraw/svdorect.cxx +++ b/svx/source/svdraw/svdorect.cxx @@ -181,7 +181,7 @@ void SdrRectObj::TakeUnrotatedSnapRect(tools::Rectangle& rRect) const if (maGeo.m_nShearAngle==0_deg100) return; - tools::Long nDst=FRound((getRectangle().Bottom()-getRectangle().Top()) * maGeo.mfTanShearAngle); + tools::Long nDst=basegfx::fround<tools::Long>((getRectangle().Bottom()-getRectangle().Top()) * maGeo.mfTanShearAngle); if (maGeo.m_nShearAngle>0_deg100) { Point aRef(rRect.TopLeft()); diff --git a/svx/source/svdraw/svdotext.cxx b/svx/source/svdraw/svdotext.cxx index e66e8ad01459..83e22a5ce60f 100644 --- a/svx/source/svdraw/svdotext.cxx +++ b/svx/source/svdraw/svdotext.cxx @@ -1626,7 +1626,8 @@ void SdrTextObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const b } // build and set BaseRect (use scale) - Size aSize(FRound(aScale.getX()), FRound(aScale.getY())); + Size aSize(basegfx::fround<tools::Long>(aScale.getX()), + basegfx::fround<tools::Long>(aScale.getY())); tools::Rectangle aBaseRect(Point(), aSize); SetSnapRect(aBaseRect); @@ -1644,7 +1645,7 @@ void SdrTextObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const b if(!basegfx::fTools::equalZero(fShearX)) { GeoStat aGeoStat; - aGeoStat.m_nShearAngle = Degree100(FRound(basegfx::rad2deg<100>(atan(fShearX)))); + aGeoStat.m_nShearAngle = Degree100(basegfx::fround(basegfx::rad2deg<100>(atan(fShearX)))); aGeoStat.RecalcTan(); Shear(Point(), aGeoStat.m_nShearAngle, aGeoStat.mfTanShearAngle, false); } @@ -1657,7 +1658,7 @@ void SdrTextObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const b // #i78696# // fRotate is matematically correct, but aGeoStat.nRotationAngle is // mirrored -> mirror value here - aGeoStat.m_nRotationAngle = NormAngle36000(Degree100(FRound(-basegfx::rad2deg<100>(fRotate)))); + aGeoStat.m_nRotationAngle = NormAngle36000(Degree100(basegfx::fround(-basegfx::rad2deg<100>(fRotate)))); aGeoStat.RecalcSinCos(); Rotate(Point(), aGeoStat.m_nRotationAngle, aGeoStat.mfSinRotationAngle, aGeoStat.mfCosRotationAngle); } @@ -1665,7 +1666,8 @@ void SdrTextObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const b // translate? if(!aTranslate.equalZero()) { - Move(Size(FRound(aTranslate.getX()), FRound(aTranslate.getY()))); + Move(Size(basegfx::fround<tools::Long>(aTranslate.getX()), + basegfx::fround<tools::Long>(aTranslate.getY()))); } } diff --git a/svx/source/svdraw/svdotextdecomposition.cxx b/svx/source/svdraw/svdotextdecomposition.cxx index a2582da5e885..fcc4bf0bd85e 100644 --- a/svx/source/svdraw/svdotextdecomposition.cxx +++ b/svx/source/svdraw/svdotextdecomposition.cxx @@ -910,8 +910,8 @@ void SdrTextObj::impDecomposeAutoFitTextPrimitive( setSuitableOutlinerBg(rOutliner); // add one to range sizes to get back to the old Rectangle and outliner measurements - const sal_uInt32 nAnchorTextWidth(FRound(aAnchorTextRange.getWidth() + 1)); - const sal_uInt32 nAnchorTextHeight(FRound(aAnchorTextRange.getHeight() + 1)); + const sal_uInt32 nAnchorTextWidth(basegfx::fround<sal_uInt32>(aAnchorTextRange.getWidth() + 1)); + const sal_uInt32 nAnchorTextHeight(basegfx::fround<sal_uInt32>(aAnchorTextRange.getHeight() + 1)); const OutlinerParaObject* pOutlinerParaObject = rSdrAutofitTextPrimitive.getSdrText()->GetOutlinerParaObject(); OSL_ENSURE(pOutlinerParaObject, "impDecomposeBlockTextPrimitive used with no OutlinerParaObject (!)"); const bool bVerticalWriting(pOutlinerParaObject->IsEffectivelyVertical()); @@ -1101,8 +1101,8 @@ void SdrTextObj::impDecomposeBlockTextPrimitive( setSuitableOutlinerBg(rOutliner); // add one to range sizes to get back to the old Rectangle and outliner measurements - const sal_uInt32 nAnchorTextWidth(FRound(aAnchorTextRange.getWidth() + 1)); - const sal_uInt32 nAnchorTextHeight(FRound(aAnchorTextRange.getHeight() + 1)); + const sal_uInt32 nAnchorTextWidth(basegfx::fround<sal_uInt32>(aAnchorTextRange.getWidth() + 1)); + const sal_uInt32 nAnchorTextHeight(basegfx::fround<sal_uInt32>(aAnchorTextRange.getHeight() + 1)); const bool bVerticalWriting(rSdrBlockTextPrimitive.getOutlinerParaObject().IsEffectivelyVertical()); const bool bTopToBottom(rSdrBlockTextPrimitive.getOutlinerParaObject().IsTopToBottom()); const Size aAnchorTextSize(Size(nAnchorTextWidth, nAnchorTextHeight)); @@ -1717,8 +1717,8 @@ void SdrTextObj::impDecomposeChainedTextPrimitive( rOutliner.SetMaxAutoPaperSize(Size(1000000,1000000)); // add one to range sizes to get back to the old Rectangle and outliner measurements - const sal_uInt32 nAnchorTextWidth(FRound(aAnchorTextRange.getWidth() + 1)); - const sal_uInt32 nAnchorTextHeight(FRound(aAnchorTextRange.getHeight() + 1)); + const sal_uInt32 nAnchorTextWidth(basegfx::fround<sal_uInt32>(aAnchorTextRange.getWidth() + 1)); + const sal_uInt32 nAnchorTextHeight(basegfx::fround<sal_uInt32>(aAnchorTextRange.getHeight() + 1)); // Text const OutlinerParaObject* pOutlinerParaObject = rSdrChainedTextPrimitive.getSdrText()->GetOutlinerParaObject(); diff --git a/svx/source/svdraw/svdpdf.cxx b/svx/source/svdraw/svdpdf.cxx index 102d7f8bf495..cf2c4ac28f1a 100644 --- a/svx/source/svdraw/svdpdf.cxx +++ b/svx/source/svdraw/svdpdf.cxx @@ -341,7 +341,8 @@ void ImpSdrPdfImport::SetAttributes(SdrObject* pObj, bool bForceTextAttr) if (bText && mbFntDirty) { vcl::Font aFnt(mpVD->GetFont()); - const sal_uInt32 nHeight(FRound(aFnt.GetFontSize().Height() * mfScaleY)); + const sal_uInt32 nHeight( + basegfx::fround<sal_uInt32>(aFnt.GetFontSize().Height() * mfScaleY)); mpTextAttr->Put(SvxFontItem(aFnt.GetFamilyType(), aFnt.GetFamilyName(), aFnt.GetStyleName(), aFnt.GetPitch(), aFnt.GetCharSet(), EE_CHAR_FONTINFO)); @@ -781,12 +782,13 @@ void ImpSdrPdfImport::InsertTextObject(const Point& rPos, const Size& rSize, con // sal_Int32 nTextWidth = static_cast<sal_Int32>(mpVD->GetTextWidth(rStr) * mfScaleX); sal_Int32 nTextHeight = static_cast<sal_Int32>(mpVD->GetTextHeight() * mfScaleY); - Point aPosition(FRound(rPos.X() * mfScaleX + maOfs.X()), - FRound(rPos.Y() * mfScaleY + maOfs.Y())); - Size aSize(FRound(rSize.Width() * mfScaleX), FRound(rSize.Height() * mfScaleY)); + Point aPosition(basegfx::fround<tools::Long>(rPos.X() * mfScaleX + maOfs.X()), + basegfx::fround<tools::Long>(rPos.Y() * mfScaleY + maOfs.Y())); + Size aSize(basegfx::fround<tools::Long>(rSize.Width() * mfScaleX), + basegfx::fround<tools::Long>(rSize.Height() * mfScaleY)); if (eAlignment == ALIGN_BASELINE) - aPosition.AdjustY(-FRound(aFontMetric.GetAscent() * mfScaleY)); + aPosition.AdjustY(basegfx::fround<tools::Long>(aFontMetric.GetAscent() * -mfScaleY)); else if (eAlignment == ALIGN_BOTTOM) aPosition.AdjustY(-nTextHeight); diff --git a/svx/source/svdraw/svdpoev.cxx b/svx/source/svdraw/svdpoev.cxx index 1cfca1ab94b8..8cd55cdbd019 100644 --- a/svx/source/svdraw/svdpoev.cxx +++ b/svx/source/svdraw/svdpoev.cxx @@ -553,19 +553,22 @@ void SdrPolyEditView::ImpTransformMarkedPoints(PPolyTrFunc pTrFunc, const void* bool bC2(false); const basegfx::B2DPoint aB2DPos(aNewXP.getB2DPoint(nPointNum)); - aPos = Point(FRound(aB2DPos.getX()), FRound(aB2DPos.getY())); + aPos = Point(basegfx::fround<tools::Long>(aB2DPos.getX()), + basegfx::fround<tools::Long>(aB2DPos.getY())); if(aNewXP.isPrevControlPointUsed(nPointNum)) { const basegfx::B2DPoint aB2DC1(aNewXP.getPrevControlPoint(nPointNum)); - aC1 = Point(FRound(aB2DC1.getX()), FRound(aB2DC1.getY())); + aC1 = Point(basegfx::fround<tools::Long>(aB2DC1.getX()), + basegfx::fround<tools::Long>(aB2DC1.getY())); bC1 = true; } if(aNewXP.isNextControlPointUsed(nPointNum)) { const basegfx::B2DPoint aB2DC2(aNewXP.getNextControlPoint(nPointNum)); - aC2 = Point(FRound(aB2DC2.getX()), FRound(aB2DC2.getY())); + aC2 = Point(basegfx::fround<tools::Long>(aB2DC2.getX()), + basegfx::fround<tools::Long>(aB2DC2.getY())); bC2 = true; } diff --git a/svx/source/svdraw/svdtrans.cxx b/svx/source/svdraw/svdtrans.cxx index 23c7495ad7d7..9c5fb73060d7 100644 --- a/svx/source/svdraw/svdtrans.cxx +++ b/svx/source/svdraw/svdtrans.cxx @@ -46,8 +46,8 @@ void ResizeRect(tools::Rectangle& rRect, const Point& rRef, const Fraction& rxFa tools::Long nWdt = rRect.Right() - rRect.Left(); if (nWdt == 0) rRect.AdjustRight( 1 ); } - rRect.SetLeft( rRef.X() + FRound( (rRect.Left() - rRef.X()) * double(aXFact) ) ); - rRect.SetRight( rRef.X() + FRound( (rRect.Right() - rRef.X()) * double(aXFact) ) ); + rRect.SetLeft( rRef.X() + basegfx::fround<tools::Long>( (rRect.Left() - rRef.X()) * double(aXFact) ) ); + rRect.SetRight( rRef.X() + basegfx::fround<tools::Long>( (rRect.Right() - rRef.X()) * double(aXFact) ) ); if (!aYFact.IsValid()) { SAL_WARN( "svx.svdraw", "invalid fraction yFract, using Fraction(1,1)" ); @@ -55,8 +55,8 @@ void ResizeRect(tools::Rectangle& rRect, const Point& rRef, const Fraction& rxFa tools::Long nHgt = rRect.Bottom() - rRect.Top(); if (nHgt == 0) rRect.AdjustBottom( 1 ); } - rRect.SetTop( rRef.Y() + FRound( (rRect.Top() - rRef.Y()) * double(aYFact) ) ); - rRect.SetBottom( rRef.Y() + FRound( (rRect.Bottom() - rRef.Y()) * double(aYFact) ) ); + rRect.SetTop( rRef.Y() + basegfx::fround<tools::Long>( (rRect.Top() - rRef.Y()) * double(aYFact) ) ); + rRect.SetBottom( rRef.Y() + basegfx::fround<tools::Long>( (rRect.Bottom() - rRef.Y()) * double(aYFact) ) ); rRect.Normalize(); } @@ -178,7 +178,7 @@ double CrookRotateXPoint(Point& rPnt, Point* pC1, Point* pC2, const Point& rCent // move into the direction of the center, as a basic position for the rotation pC1->AdjustY( -y0 ); // resize, account for the distance from the center - pC1->setY(FRound(static_cast<double>(pC1->Y()) /rRad.X()*(cx-pC1->X())) ); + pC1->setY(basegfx::fround<tools::Long>(static_cast<double>(pC1->Y()) /rRad.X()*(cx-pC1->X())) ); pC1->AdjustY(cy ); } else { // move into the direction of the center, as a basic position for the rotation @@ -186,7 +186,7 @@ double CrookRotateXPoint(Point& rPnt, Point* pC1, Point* pC2, const Point& rCent // resize, account for the distance from the center tools::Long nPntRad=cy-pC1->Y(); double nFact=static_cast<double>(nPntRad)/static_cast<double>(rRad.Y()); - pC1->setX(FRound(static_cast<double>(pC1->X())*nFact) ); + pC1->setX(basegfx::fround<tools::Long>(static_cast<double>(pC1->X()) * nFact)); pC1->AdjustX(cx ); } RotatePoint(*pC1,rCenter,sn,cs); @@ -196,7 +196,7 @@ double CrookRotateXPoint(Point& rPnt, Point* pC1, Point* pC2, const Point& rCent // move into the direction of the center, as a basic position for the rotation pC2->AdjustY( -y0 ); // resize, account for the distance from the center - pC2->setY(FRound(static_cast<double>(pC2->Y()) /rRad.X()*(rCenter.X()-pC2->X())) ); + pC2->setY(basegfx::fround<tools::Long>(static_cast<double>(pC2->Y()) /rRad.X()*(rCenter.X()-pC2->X())) ); pC2->AdjustY(cy ); } else { // move into the direction of the center, as a basic position for the rotation @@ -204,7 +204,7 @@ double CrookRotateXPoint(Point& rPnt, Point* pC1, Point* pC2, const Point& rCent // resize, account for the distance from the center tools::Long nPntRad=rCenter.Y()-pC2->Y(); double nFact=static_cast<double>(nPntRad)/static_cast<double>(rRad.Y()); - pC2->setX(FRound(static_cast<double>(pC2->X())*nFact) ); + pC2->setX(basegfx::fround<tools::Long>(static_cast<double>(pC2->X()) * nFact)); pC2->AdjustX(cx ); } RotatePoint(*pC2,rCenter,sn,cs); @@ -283,7 +283,7 @@ double CrookStretchXPoint(Point& rPnt, Point* pC1, Point* pC2, const Point& rCen tools::Long dy=rPnt.Y()-y0; double a=static_cast<double>(y0-nTop)/nHgt; a*=dy; - rPnt.setY(y0+FRound(a) ); + rPnt.setY(y0 + basegfx::fround<tools::Long>(a)); } return 0.0; } @@ -393,7 +393,7 @@ Degree100 GetAngle(const Point& rPnt) if (rPnt.Y()>0) a=-9000_deg100; else a=9000_deg100; } else { - a = Degree100(FRound(basegfx::rad2deg<100>(atan2(static_cast<double>(-rPnt.Y()), static_cast<double>(rPnt.X()))))); + a = Degree100(basegfx::fround(basegfx::rad2deg<100>(atan2(-static_cast<double>(rPnt.Y()), static_cast<double>(rPnt.X()))))); } return a; } @@ -423,7 +423,7 @@ tools::Long GetLen(const Point& rPnt) x*=x; y*=y; x+=y; - x=FRound(sqrt(static_cast<double>(x))); + x = basegfx::fround<tools::Long>(sqrt(x)); return x; } else { double nx=x; @@ -435,7 +435,7 @@ tools::Long GetLen(const Point& rPnt) if (nx>0x7FFFFFFF) { return 0x7FFFFFFF; // we can't go any further, for fear of an overrun! } else { - return FRound(nx); + return basegfx::fround<tools::Long>(nx); } } } diff --git a/svx/source/xoutdev/_xpoly.cxx b/svx/source/xoutdev/_xpoly.cxx index e9f0f1ebad15..d93e56412b7b 100644 --- a/svx/source/xoutdev/_xpoly.cxx +++ b/svx/source/xoutdev/_xpoly.cxx @@ -407,9 +407,10 @@ tools::Rectangle XPolygon::GetBoundRect() const // correct and never was. const basegfx::B2DRange aPolygonRange(basegfx::utils::getRange(getB2DPolygon())); - aRetval = tools::Rectangle( - FRound(aPolygonRange.getMinX()), FRound(aPolygonRange.getMinY()), - FRound(aPolygonRange.getMaxX()), FRound(aPolygonRange.getMaxY())); + aRetval = tools::Rectangle(basegfx::fround<tools::Long>(aPolygonRange.getMinX()), + basegfx::fround<tools::Long>(aPolygonRange.getMinY()), + basegfx::fround<tools::Long>(aPolygonRange.getMaxX()), + basegfx::fround<tools::Long>(aPolygonRange.getMaxY())); } return aRetval; diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx index 8db55a3887e7..9d447df9ba6d 100644 --- a/sw/source/core/graphic/ndgrf.cxx +++ b/sw/source/core/graphic/ndgrf.cxx @@ -788,8 +788,7 @@ GraphicAttr& SwGrfNode::GetGraphicAttr( GraphicAttr& rGA, rGA.SetInvert( rSet.GetInvertGrf().GetValue() ); const sal_uInt16 nTrans = rSet.GetTransparencyGrf().GetValue(); - rGA.SetAlpha( 255 - static_cast<sal_uInt8>(FRound( - std::min( nTrans, sal_uInt16(100) ) * 2.55 )) ); + rGA.SetAlpha(255 - basegfx::fround<sal_uInt8>(nTrans * 2.55)); return rGA; } diff --git a/sw/source/core/layout/fly.cxx b/sw/source/core/layout/fly.cxx index db50a42de053..f91283fccb87 100644 --- a/sw/source/core/layout/fly.cxx +++ b/sw/source/core/layout/fly.cxx @@ -3016,7 +3016,7 @@ bool SwFlyFrame::GetContour( tools::PolyPolygon& rContour, else aNewPoint = OutputDevice::LogicToLogic( rPoly[ i ], aGrfMap, aDispMap ); - rPoly[ i ] = Point( FRound( aNewPoint.getX() * fScaleX ), FRound( aNewPoint.getY() * fScaleY ) ); + rPoly[ i ] = Point( basegfx::fround<tools::Long>( aNewPoint.getX() * fScaleX ), basegfx::fround<tools::Long>( aNewPoint.getY() * fScaleY ) ); } } } diff --git a/tools/CppunitTest_tools_test.mk b/tools/CppunitTest_tools_test.mk index 1063b778ab0a..c2087bcde594 100644 --- a/tools/CppunitTest_tools_test.mk +++ b/tools/CppunitTest_tools_test.mk @@ -29,7 +29,6 @@ $(eval $(call gb_CppunitTest_add_exception_objects,tools_test, \ tools/qa/cppunit/test_color \ tools/qa/cppunit/test_rectangle \ tools/qa/cppunit/test_100mm2twips \ - tools/qa/cppunit/test_fround \ tools/qa/cppunit/test_xmlwalker \ tools/qa/cppunit/test_xmlwriter \ tools/qa/cppunit/test_GenericTypeSerializer \ diff --git a/tools/qa/cppunit/test_fround.cxx b/tools/qa/cppunit/test_fround.cxx deleted file mode 100644 index 4014ff3cb46b..000000000000 --- a/tools/qa/cppunit/test_fround.cxx +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include <sal/types.h> -#include <cppunit/TestFixture.h> -#include <cppunit/extensions/HelperMacros.h> - -#include <tools/helpers.hxx> - -namespace tools -{ -class FRoundTest : public CppUnit::TestFixture -{ -public: - void testPositiveFRound() - { - sal_Int64 nExpected = 2; - sal_Int64 nActual = FRound(1.6); - CPPUNIT_ASSERT_EQUAL(nExpected, nActual); - - nExpected = 1; - nActual = FRound(1.4); - CPPUNIT_ASSERT_EQUAL(nExpected, nActual); - } - - void testNegativeFRound() - { - sal_Int64 nExpected = -2; - sal_Int64 nActual = FRound(-1.6); - CPPUNIT_ASSERT_EQUAL(nExpected, nActual); - - nExpected = -1; - nActual = FRound(-1.4); - CPPUNIT_ASSERT_EQUAL(nExpected, nActual); - } - - CPPUNIT_TEST_SUITE(FRoundTest); - CPPUNIT_TEST(testPositiveFRound); - CPPUNIT_TEST(testNegativeFRound); - CPPUNIT_TEST_SUITE_END(); -}; - -CPPUNIT_TEST_SUITE_REGISTRATION(FRoundTest); -} // namespace tools - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/tools/source/generic/color.cxx b/tools/source/generic/color.cxx index 421045b588a9..208a6caee883 100644 --- a/tools/source/generic/color.cxx +++ b/tools/source/generic/color.cxx @@ -29,6 +29,7 @@ #include <tools/long.hxx> #include <o3tl/string_view.hxx> #include <basegfx/color/bcolortools.hxx> +#include <basegfx/numeric/ftools.hxx> void Color::IncreaseLuminance(sal_uInt8 cLumInc) { @@ -51,9 +52,9 @@ void Color::DecreaseContrast(sal_uInt8 nContDec) const double fM = (128.0 - 0.4985 * nContDec) / 128.0; const double fOff = 128.0 - fM * 128.0; - R = sal_uInt8(std::clamp(FRound(R * fM + fOff), tools::Long(0), tools::Long(255))); - G = sal_uInt8(std::clamp(FRound(G * fM + fOff), tools::Long(0), tools::Long(255))); - B = sal_uInt8(std::clamp(FRound(B * fM + fOff), tools::Long(0), tools::Long(255))); + R = basegfx::fround<sal_uInt8>(R * fM + fOff); + G = basegfx::fround<sal_uInt8>(G * fM + fOff); + B = basegfx::fround<sal_uInt8>(B * fM + fOff); } } diff --git a/tools/source/generic/line.cxx b/tools/source/generic/line.cxx index ee9ad979793c..328ae3e35e66 100644 --- a/tools/source/generic/line.cxx +++ b/tools/source/generic/line.cxx @@ -17,6 +17,9 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <sal/config.h> + +#include <basegfx/numeric/ftools.hxx> #include <tools/line.hxx> #include <tools/helpers.hxx> @@ -37,8 +40,8 @@ bool Line::Intersection( const Line& rLine, Point& rIntersection ) const if( Intersection( rLine, fX, fY ) ) { - rIntersection.setX( FRound( fX ) ); - rIntersection.setY( FRound( fY ) ); + rIntersection.setX(basegfx::fround<tools::Long>(fX)); + rIntersection.setY(basegfx::fround<tools::Long>(fY)); bRet = true; } else diff --git a/tools/source/generic/poly.cxx b/tools/source/generic/poly.cxx index 89405eea410a..81419f7e70c3 100644 --- a/tools/source/generic/poly.cxx +++ b/tools/source/generic/poly.cxx @@ -203,8 +203,8 @@ ImplPolygon::ImplPolygon( const Point& rCenter, tools::Long nRadX, tools::Long n for( i=0, nAngle = 0.0; i < nPoints4; i++, nAngle += nAngleStep ) { - tools::Long nX = FRound( nRadX * cos( nAngle ) ); - tools::Long nY = FRound( -nRadY * sin( nAngle ) ); + tools::Long nX = basegfx::fround<tools::Long>(nRadX * cos(nAngle)); + tools::Long nY = basegfx::fround<tools::Long>(nRadY * -sin(nAngle)); Point* pPt = &(mxPointAry[i]); pPt->setX( nX + rCenter.X() ); @@ -291,7 +291,8 @@ ImplPolygon::ImplPolygon(const tools::Rectangle& rBound, const Point& rStart, co if (PolyStyle::Pie == eStyle) { - const Point aCenter2(FRound(fCenterX), FRound(fCenterY)); + const Point aCenter2(basegfx::fround<tools::Long>(fCenterX), + basegfx::fround<tools::Long>(fCenterY)); nStart = 1; nEnd = nPoints + 1; @@ -310,8 +311,8 @@ ImplPolygon::ImplPolygon(const tools::Rectangle& rBound, const Point& rStart, co { Point& rPt = mxPointAry[nStart]; - rPt.setX( FRound( fCenterX + fRadX * cos( fStart ) ) ); - rPt.setY( FRound( fCenterY - fRadY * sin( fStart ) ) ); + rPt.setX(basegfx::fround<tools::Long>(fCenterX + fRadX * cos(fStart))); + rPt.setY(basegfx::fround<tools::Long>(fCenterY - fRadY * sin(fStart))); } if( PolyStyle::Chord == eStyle ) @@ -355,8 +356,8 @@ ImplPolygon::ImplPolygon( const Point& rBezPt1, const Point& rCtrlPt1, double fK12 = fK_1 * fK1_2; double fK21 = fK_2 * fK1_1; - rPt.setX( FRound( fK1_3 * fX0 + fK12 * fX1 + fK21 * fX2 + fK_3 * fX3 ) ); - rPt.setY( FRound( fK1_3 * fY0 + fK12 * fY1 + fK21 * fY2 + fK_3 * fY3 ) ); + rPt.setX(basegfx::fround<tools::Long>(fK1_3 * fX0 + fK12 * fX1 + fK21 * fX2 + fK_3 * fX3)); + rPt.setY(basegfx::fround<tools::Long>(fK1_3 * fY0 + fK12 * fY1 + fK21 * fY2 + fK_3 * fY3)); } } @@ -399,7 +400,9 @@ ImplPolygon::ImplPolygon(const basegfx::B2DPolygon& rPolygon) for(sal_uInt32 a(0); a < nLoopCount; a++) { // add current point (always) and remember StartPointIndex for evtl. later corrections - const Point aStartPoint(FRound(aBezier.getStartPoint().getX()), FRound(aBezier.getStartPoint().getY())); + const Point aStartPoint( + basegfx::fround<tools::Long>(aBezier.getStartPoint().getX()), + basegfx::fround<tools::Long>(aBezier.getStartPoint().getY())); const sal_uInt32 nStartPointIndex(nArrayInsert); mxPointAry[nStartPointIndex] = aStartPoint; mxFlagAry[nStartPointIndex] = PolyFlags::Normal; @@ -414,11 +417,13 @@ ImplPolygon::ImplPolygon(const basegfx::B2DPolygon& rPolygon) if(aBezier.isBezier()) { // if one is used, add always two control points due to the old schema - mxPointAry[nArrayInsert] = Point(FRound(aBezier.getControlPointA().getX()), FRound(aBezier.getControlPointA().getY())); + mxPointAry[nArrayInsert] = Point(basegfx::fround<tools::Long>(aBezier.getControlPointA().getX()), + basegfx::fround<tools::Long>(aBezier.getControlPointA().getY())); mxFlagAry[nArrayInsert] = PolyFlags::Control; nArrayInsert++; - mxPointAry[nArrayInsert] = Point(FRound(aBezier.getControlPointB().getX()), FRound(aBezier.getControlPointB().getY())); + mxPointAry[nArrayInsert] = Point(basegfx::fround<tools::Long>(aBezier.getControlPointB().getX()), + basegfx::fround<tools::Long>(aBezier.getControlPointB().getY())); mxFlagAry[nArrayInsert] = PolyFlags::Control; nArrayInsert++; } @@ -453,7 +458,8 @@ ImplPolygon::ImplPolygon(const basegfx::B2DPolygon& rPolygon) { // add last point as closing point const basegfx::B2DPoint aClosingPoint(rPolygon.getB2DPoint(nB2DLocalCount - 1)); - const Point aEnd(FRound(aClosingPoint.getX()), FRound(aClosingPoint.getY())); + const Point aEnd(basegfx::fround<tools::Long>(aClosingPoint.getX()), + basegfx::fround<tools::Long>(aClosingPoint.getY())); mxPointAry[nArrayInsert] = aEnd; mxFlagAry[nArrayInsert] = PolyFlags::Normal; nArrayInsert++; @@ -486,7 +492,8 @@ ImplPolygon::ImplPolygon(const basegfx::B2DPolygon& rPolygon) for(sal_uInt32 a(0); a < nB2DLocalCount; a++) { basegfx::B2DPoint aB2DPoint(rPolygon.getB2DPoint(a)); - Point aPoint(FRound(aB2DPoint.getX()), FRound(aB2DPoint.getY())); + Point aPoint(basegfx::fround<tools::Long>(aB2DPoint.getX()), + basegfx::fround<tools::Long>(aB2DPoint.getY())); mxPointAry[nIndex++] = aPoint; } @@ -1180,7 +1187,7 @@ static void ImplAdaptiveSubdivide( std::vector<Point>& rPoints, // requested resolution reached. // Add end points to output iterator. // order is preserved, since this is so to say depth first traversal. - rPoints.push_back(Point(FRound(P1x), FRound(P1y))); + rPoints.push_back(Point(basegfx::fround<tools::Long>(P1x), basegfx::fround<tools::Long>(P1y))); } } @@ -1432,8 +1439,8 @@ void Polygon::Rotate( const Point& rCenter, double fSin, double fCos ) const tools::Long nX = rPt.X() - nCenterX; const tools::Long nY = rPt.Y() - nCenterY; - rPt.setX( FRound(fCos * nX + fSin * nY + nCenterX) ); - rPt.setY( FRound(-(fSin * nX - fCos * nY - nCenterY)) ); + rPt.setX(basegfx::fround<tools::Long>(fCos * nX + fSin * nY + nCenterX)); + rPt.setY(basegfx::fround<tools::Long>(-(fSin * nX - fCos * nY - nCenterY))); } } diff --git a/vcl/osx/salframeview.mm b/vcl/osx/salframeview.mm index dba377899838..eb8ed68add34 100644 --- a/vcl/osx/salframeview.mm +++ b/vcl/osx/salframeview.mm @@ -21,6 +21,7 @@ #include <memory> +#include <basegfx/numeric/ftools.hxx> #include <sal/macros.h> #include <tools/helpers.hxx> #include <tools/long.hxx> @@ -1012,7 +1013,7 @@ static void updateWinDataInLiveResize(bool bInLiveResize) // adapt NSEvent-sensitivity to application expectations // TODO: rather make CommandWheelMode::ZOOM handlers smarter const float fDeltaZ = mfMagnifyDeltaSum * fMagnifyFactor; - int nDeltaZ = FRound( fDeltaZ ); + int nDeltaZ = basegfx::fround<int>( fDeltaZ ); if( !nDeltaZ ) { // handle new series immediately diff --git a/vcl/skia/salbmp.cxx b/vcl/skia/salbmp.cxx index 0b8bec9dbbef..15a29b89e522 100644 --- a/vcl/skia/salbmp.cxx +++ b/vcl/skia/salbmp.cxx @@ -424,7 +424,8 @@ bool SkiaSalBitmap::Scale(const double& rScaleX, const double& rScaleY, BmpScale #ifdef DBG_UTIL assert(mWriteAccessCount == 0); #endif - Size newSize(FRound(mSize.Width() * rScaleX), FRound(mSize.Height() * rScaleY)); + Size newSize(basegfx::fround<tools::Long>(mSize.Width() * rScaleX), + basegfx::fround<tools::Long>(mSize.Height() * rScaleY)); if (mSize == newSize) return true; diff --git a/vcl/source/animate/AnimationRenderer.cxx b/vcl/source/animate/AnimationRenderer.cxx index 29f386e0d388..5755c549d3e5 100644 --- a/vcl/source/animate/AnimationRenderer.cxx +++ b/vcl/source/animate/AnimationRenderer.cxx @@ -121,11 +121,11 @@ void AnimationRenderer::getPosSize( const AnimationFrame& rAnimationFrame, Point else fFactY = 1.0; - rPosPix.setX( FRound( rAnimationFrame.maPositionPixel.X() * fFactX ) ); - rPosPix.setY( FRound( rAnimationFrame.maPositionPixel.Y() * fFactY ) ); + rPosPix.setX(basegfx::fround<tools::Long>(rAnimationFrame.maPositionPixel.X() * fFactX)); + rPosPix.setY(basegfx::fround<tools::Long>(rAnimationFrame.maPositionPixel.Y() * fFactY)); - aPt2.setX( FRound( aPt2.X() * fFactX ) ); - aPt2.setY( FRound( aPt2.Y() * fFactY ) ); + aPt2.setX(basegfx::fround<tools::Long>(aPt2.X() * fFactX)); + aPt2.setY(basegfx::fround<tools::Long>(aPt2.Y() * fFactY)); rSizePix.setWidth( aPt2.X() - rPosPix.X() + 1 ); rSizePix.setHeight( aPt2.Y() - rPosPix.Y() + 1 ); diff --git a/vcl/source/bitmap/BitmapEmbossGreyFilter.cxx b/vcl/source/bitmap/BitmapEmbossGreyFilter.cxx index 6fa5dd5c12b3..37c60e1b341a 100644 --- a/vcl/source/bitmap/BitmapEmbossGreyFilter.cxx +++ b/vcl/source/bitmap/BitmapEmbossGreyFilter.cxx @@ -47,7 +47,7 @@ BitmapEx BitmapEmbossGreyFilter::execute(BitmapEx const& rBitmapEx) const const double nLz = sin(fElev) * 255.0; const double nNz = 6 * 255.0 / 4; const double nNzLz = nNz * nLz; - const sal_uInt8 cLz = FRound(std::clamp(nLz, 0.0, 255.0)); + const sal_uInt8 cLz = basegfx::fround<sal_uInt8>(nLz); // fill mapping tables pHMap[0] = 0; @@ -97,7 +97,7 @@ BitmapEx BitmapEmbossGreyFilter::execute(BitmapEx const& rBitmapEx) const else { const double fGrey = nDotL / std::hypot(nNx, nNy, nNz); - aGrey.SetIndex(FRound(std::clamp(fGrey, 0.0, 255.0))); + aGrey.SetIndex(basegfx::fround<sal_uInt8>(fGrey)); } pWriteAcc->SetPixelOnData(pScanline, nX, aGrey); diff --git a/vcl/source/bitmap/BitmapFastScaleFilter.cxx b/vcl/source/bitmap/BitmapFastScaleFilter.cxx index 431211369f98..584942457f74 100644 --- a/vcl/source/bitmap/BitmapFastScaleFilter.cxx +++ b/vcl/source/bitmap/BitmapFastScaleFilter.cxx @@ -32,8 +32,8 @@ BitmapEx BitmapFastScaleFilter::execute(BitmapEx const& rBitmapEx) const Bitmap aBitmap(rBitmapEx.GetBitmap()); const Size aSizePix(aBitmap.GetSizePixel()); - const sal_Int32 nNewWidth = FRound(aSizePix.Width() * mfScaleX); - const sal_Int32 nNewHeight = FRound(aSizePix.Height() * mfScaleY); + const sal_Int32 nNewWidth = basegfx::fround(aSizePix.Width() * mfScaleX); + const sal_Int32 nNewHeight = basegfx::fround(aSizePix.Height() * mfScaleY); bool bRet = false; SAL_INFO("vcl.gdi", "New width: " << nNewWidth << " New height: " << nNewHeight); diff --git a/vcl/source/bitmap/BitmapInterpolateScaleFilter.cxx b/vcl/source/bitmap/BitmapInterpolateScaleFilter.cxx index c0c866b53d67..f4547677f23e 100644 --- a/vcl/source/bitmap/BitmapInterpolateScaleFilter.cxx +++ b/vcl/source/bitmap/BitmapInterpolateScaleFilter.cxx @@ -31,8 +31,8 @@ BitmapEx BitmapInterpolateScaleFilter::execute(BitmapEx const& rBitmapEx) const Bitmap aBitmap(rBitmapEx.GetBitmap()); const Size aSizePix(aBitmap.GetSizePixel()); - const sal_Int32 nNewWidth = FRound(aSizePix.Width() * mfScaleX); - const sal_Int32 nNewHeight = FRound(aSizePix.Height() * mfScaleY); + const sal_Int32 nNewWidth = basegfx::fround(aSizePix.Width() * mfScaleX); + const sal_Int32 nNewHeight = basegfx::fround(aSizePix.Height() * mfScaleY); bool bRet = false; if ((nNewWidth > 1) && (nNewHeight > 1)) diff --git a/vcl/source/bitmap/BitmapScaleConvolutionFilter.cxx b/vcl/source/bitmap/BitmapScaleConvolutionFilter.cxx index 27df45f7bab1..56b2f3969a9e 100644 --- a/vcl/source/bitmap/BitmapScaleConvolutionFilter.cxx +++ b/vcl/source/bitmap/BitmapScaleConvolutionFilter.cxx @@ -90,7 +90,7 @@ bool ImplScaleConvolutionHor(Bitmap& rSource, Bitmap& rTarget, const double& rSc // Do horizontal filtering OSL_ENSURE(rScaleX > 0.0, "Error in scaling: Mirror given in non-mirror-capable method (!)"); const sal_Int32 nWidth(rSource.GetSizePixel().Width()); - const sal_Int32 nNewWidth(FRound(nWidth * rScaleX)); + const sal_Int32 nNewWidth(basegfx::fround(nWidth * rScaleX)); if(nWidth == nNewWidth) { @@ -180,7 +180,7 @@ bool ImplScaleConvolutionVer(Bitmap& rSource, Bitmap& rTarget, const double& rSc // Do vertical filtering OSL_ENSURE(rScaleY > 0.0, "Error in scaling: Mirror given in non-mirror-capable method (!)"); const sal_Int32 nHeight(rSource.GetSizePixel().Height()); - const sal_Int32 nNewHeight(FRound(nHeight * rScaleY)); + const sal_Int32 nNewHeight(basegfx::fround(nHeight * rScaleY)); if(nHeight == nNewHeight) { @@ -263,8 +263,8 @@ bool ImplScaleConvolution(Bitmap& rBitmap, const double& rScaleX, const double& const double fScaleY(bMirrorVer ? -rScaleY : rScaleY); const sal_Int32 nWidth(rBitmap.GetSizePixel().Width()); const sal_Int32 nHeight(rBitmap.GetSizePixel().Height()); - const sal_Int32 nNewWidth(FRound(nWidth * fScaleX)); - const sal_Int32 nNewHeight(FRound(nHeight * fScaleY)); + const sal_Int32 nNewWidth(basegfx::fround(nWidth * fScaleX)); + const sal_Int32 nNewHeight(basegfx::fround(nHeight * fScaleY)); const bool bScaleHor(nWidth != nNewWidth); const bool bScaleVer(nHeight != nNewHeight); const bool bMirror(bMirrorHor || bMirrorVer); diff --git a/vcl/source/bitmap/BitmapScaleSuperFilter.cxx b/vcl/source/bitmap/BitmapScaleSuperFilter.cxx index 3c844c690e7e..1b13fb817d1b 100644 --- a/vcl/source/bitmap/BitmapScaleSuperFilter.cxx +++ b/vcl/source/bitmap/BitmapScaleSuperFilter.cxx @@ -870,8 +870,8 @@ BitmapEx BitmapScaleSuperFilter::execute(BitmapEx const& rBitmap) const double fScaleX = std::fabs(mrScaleX); double fScaleY = std::fabs(mrScaleY); - const sal_Int32 nDstW = FRound(aSizePix.Width() * fScaleX); - const sal_Int32 nDstH = FRound(aSizePix.Height() * fScaleY); + const sal_Int32 nDstW = basegfx::fround(aSizePix.Width() * fScaleX); + const sal_Int32 nDstH = basegfx::fround(aSizePix.Height() * fScaleY); constexpr double fScaleThresh = 0.6; diff --git a/vcl/source/bitmap/BitmapTools.cxx b/vcl/source/bitmap/BitmapTools.cxx index 4045a107c814..204e61b57073 100644 --- a/vcl/source/bitmap/BitmapTools.cxx +++ b/vcl/source/bitmap/BitmapTools.cxx @@ -1396,13 +1396,13 @@ Bitmap GetDownsampledBitmap(Size const& rDstSizeTwip, Point const& rSrcPt, Size if (fBmpWH < fMaxWH) { - aNewBmpSize.setWidth(FRound(fMaxPixelY * fBmpWH)); - aNewBmpSize.setHeight(FRound(fMaxPixelY)); + aNewBmpSize.setWidth(basegfx::fround<tools::Long>(fMaxPixelY * fBmpWH)); + aNewBmpSize.setHeight(basegfx::fround<tools::Long>(fMaxPixelY)); } else if (fBmpWH > 0.0) { - aNewBmpSize.setWidth(FRound(fMaxPixelX)); - aNewBmpSize.setHeight(FRound(fMaxPixelX / fBmpWH)); + aNewBmpSize.setWidth(basegfx::fround<tools::Long>(fMaxPixelX)); + aNewBmpSize.setHeight(basegfx::fround<tools::Long>(fMaxPixelX / fBmpWH)); } if( aNewBmpSize.Width() && aNewBmpSize.Height() ) diff --git a/vcl/source/bitmap/Vectorizer.cxx b/vcl/source/bitmap/Vectorizer.cxx index f385fa36cacb..d54046215122 100644 --- a/vcl/source/bitmap/Vectorizer.cxx +++ b/vcl/source/bitmap/Vectorizer.cxx @@ -687,7 +687,7 @@ bool Vectorizer::vectorize(BitmapEx const& rBitmap, GDIMetaFile& rMetafile) fPercentStep_2 = 45.0 / n; fPercent += 10.0; - updateProgress(FRound(fPercent)); + updateProgress(basegfx::fround<tools::Long>(fPercent)); for( sal_uInt16 i = 0; i < n; i++ ) { @@ -697,7 +697,7 @@ bool Vectorizer::vectorize(BitmapEx const& rBitmap, GDIMetaFile& rMetafile) ImplExpand( oMap, pRAcc.get(), aFindColor ); fPercent += fPercentStep_2; - updateProgress(FRound(fPercent)); + updateProgress(basegfx::fround<tools::Long>(fPercent)); if( oMap ) { @@ -721,7 +721,7 @@ bool Vectorizer::vectorize(BitmapEx const& rBitmap, GDIMetaFile& rMetafile) } fPercent += fPercentStep_2; - updateProgress(FRound(fPercent)); + updateProgress(basegfx::fround<tools::Long>(fPercent)); } if (rMetafile.GetActionSize()) diff --git a/vcl/source/bitmap/bitmap.cxx b/vcl/source/bitmap/bitmap.cxx index 914e49295524..38a3a90c09dc 100644 --- a/vcl/source/bitmap/bitmap.cxx +++ b/vcl/source/bitmap/bitmap.cxx @@ -340,8 +340,8 @@ void Bitmap::ReassignWithSize(const Bitmap& rBitmap) if ((aOldSizePix != aNewSizePix) && aOldSizePix.Width() && aOldSizePix.Height()) { - aNewPrefSize.setWidth(FRound(maPrefSize.Width() * aNewSizePix.Width() / aOldSizePix.Width())); - aNewPrefSize.setHeight(FRound(maPrefSize.Height() * aNewSizePix.Height() / aOldSizePix.Height())); + aNewPrefSize.setWidth(maPrefSize.Width() * aNewSizePix.Width() / aOldSizePix.Width()); + aNewPrefSize.setHeight(maPrefSize.Height() * aNewSizePix.Height() / aOldSizePix.Height()); } else { @@ -1505,18 +1505,18 @@ bool Bitmap::Adjust( short nLuminancePercent, short nContrastPercent, { if(!msoBrightness) { - cMapR[ nX ] = FRound( std::clamp( nX * fM + fROff, 0.0, 255.0 ) ); - cMapG[ nX ] = FRound( std::clamp( nX * fM + fGOff, 0.0, 255.0 ) ); - cMapB[ nX ] = FRound( std::clamp( nX * fM + fBOff, 0.0, 255.0 ) ); + cMapR[nX] = basegfx::fround<sal_uInt8>(nX * fM + fROff); + cMapG[nX] = basegfx::fround<sal_uInt8>(nX * fM + fGOff); + cMapB[nX] = basegfx::fround<sal_uInt8>(nX * fM + fBOff); } else { // LO simply uses (in a somewhat optimized form) "newcolor = (oldcolor-128)*contrast+brightness+128" // as the formula, i.e. contrast first, brightness afterwards. MSOffice, for whatever weird reason, // use neither first, but apparently it applies half of brightness before contrast and half afterwards. - cMapR[ nX ] = FRound( std::clamp( (nX+fROff/2-128) * fM + 128 + fROff/2, 0.0, 255.0 ) ); - cMapG[ nX ] = FRound( std::clamp( (nX+fGOff/2-128) * fM + 128 + fGOff/2, 0.0, 255.0 ) ); - cMapB[ nX ] = FRound( std::clamp( (nX+fBOff/2-128) * fM + 128 + fBOff/2, 0.0, 255.0 ) ); + cMapR[nX] = basegfx::fround<sal_uInt8>((nX + fROff / 2 - 128) * fM + 128 + fROff / 2); + cMapG[nX] = basegfx::fround<sal_uInt8>((nX + fGOff / 2 - 128) * fM + 128 + fGOff / 2); + cMapB[nX] = basegfx::fround<sal_uInt8>((nX + fBOff / 2 - 128) * fM + 128 + fBOff / 2); } if( bGamma ) { diff --git a/vcl/source/filter/eps/eps.cxx b/vcl/source/filter/eps/eps.cxx index cc29c7f429a0..046907a80927 100644 --- a/vcl/source/filter/eps/eps.cxx +++ b/vcl/source/filter/eps/eps.cxx @@ -1176,8 +1176,8 @@ void PSWriter::ImplWriteActions( const GDIMetaFile& rMtf, VirtualDevice& rVDev ) if( fScaleX != 1.0 || fScaleY != 1.0 ) { aTmpMtf.Scale( fScaleX, fScaleY ); - aSrcPt.setX( FRound( aSrcPt.X() * fScaleX ) ); - aSrcPt.setY( FRound( aSrcPt.Y() * fScaleY ) ); + aSrcPt.setX(basegfx::fround<tools::Long>(aSrcPt.X() * fScaleX)); + aSrcPt.setY(basegfx::fround<tools::Long>(aSrcPt.Y() * fScaleY)); } nMoveX = aDestPt.X() - aSrcPt.X(); diff --git a/vcl/source/filter/wmf/emfwr.cxx b/vcl/source/filter/wmf/emfwr.cxx index 0277affb829f..cecdb98d8407 100644 --- a/vcl/source/filter/wmf/emfwr.cxx +++ b/vcl/source/filter/wmf/emfwr.cxx @@ -900,7 +900,7 @@ void EMFWriter::ImplWriteTextRecord( const Point& rPos, const OUString& rText, K const double fFactor = static_cast<double>(nWidth) / nNormWidth; for( i = 0; i < ( nLen - 1 ); i++ ) - aOwnArray.set(i, FRound(aOwnArray[i] * fFactor)); + aOwnArray.set(i, basegfx::fround(aOwnArray[i] * fFactor)); } } @@ -1219,8 +1219,8 @@ void EMFWriter::ImplWrite( const GDIMetaFile& rMtf ) if( fScaleX != 1.0 || fScaleY != 1.0 ) { aTmpMtf.Scale( fScaleX, fScaleY ); - aSrcPt.setX( FRound( aSrcPt.X() * fScaleX ) ); - aSrcPt.setY( FRound( aSrcPt.Y() * fScaleY ) ); + aSrcPt.setX(basegfx::fround<tools::Long>(aSrcPt.X() * fScaleX)); + aSrcPt.setY(basegfx::fround<tools::Long>(aSrcPt.Y() * fScaleY)); } nMoveX = aDestPt.X() - aSrcPt.X(); diff --git a/vcl/source/filter/wmf/wmfwr.cxx b/vcl/source/filter/wmf/wmfwr.cxx index 3e3267c8e647..ecd4ce5f7fb2 100644 --- a/vcl/source/filter/wmf/wmfwr.cxx +++ b/vcl/source/filter/wmf/wmfwr.cxx @@ -1571,8 +1571,8 @@ void WMFWriter::WriteRecords( const GDIMetaFile & rMTF ) if( fScaleX != 1.0 || fScaleY != 1.0 ) { aTmpMtf.Scale( fScaleX, fScaleY ); - aSrcPt.setX( FRound( aSrcPt.X() * fScaleX ) ); - aSrcPt.setY( FRound( aSrcPt.Y() * fScaleY ) ); + aSrcPt.setX(basegfx::fround<tools::Long>(aSrcPt.X() * fScaleX)); + aSrcPt.setY(basegfx::fround<tools::Long>(aSrcPt.Y() * fScaleY)); } nMoveX = aDestPt.X() - aSrcPt.X(); diff --git a/vcl/source/gdi/gdimtf.cxx b/vcl/source/gdi/gdimtf.cxx index fb4ff37dfa9d..3979d3882b7c 100644 --- a/vcl/source/gdi/gdimtf.cxx +++ b/vcl/source/gdi/gdimtf.cxx @@ -749,8 +749,8 @@ void GDIMetaFile::Scale( double fScaleX, double fScaleY ) { ScaleActions(fScaleX, fScaleY); - m_aPrefSize.setWidth( FRound( m_aPrefSize.Width() * fScaleX ) ); - m_aPrefSize.setHeight( FRound( m_aPrefSize.Height() * fScaleY ) ); + m_aPrefSize.setWidth(basegfx::fround<tools::Long>(m_aPrefSize.Width() * fScaleX)); + m_aPrefSize.setHeight(basegfx::fround<tools::Long>(m_aPrefSize.Height() * fScaleY)); } void GDIMetaFile::Scale( const Fraction& rScaleX, const Fraction& rScaleY ) @@ -795,8 +795,8 @@ Point GDIMetaFile::ImplGetRotatedPoint( const Point& rPt, const Point& rRotatePt const tools::Long nX = rPt.X() - rRotatePt.X(); const tools::Long nY = rPt.Y() - rRotatePt.Y(); - return Point( FRound( fCos * nX + fSin * nY ) + rRotatePt.X() + rOffset.Width(), - -FRound( fSin * nX - fCos * nY ) + rRotatePt.Y() + rOffset.Height() ); + return { basegfx::fround<tools::Long>(fCos * nX + fSin * nY) + rRotatePt.X() + rOffset.Width(), + basegfx::fround<tools::Long>(fCos * nY - fSin * nX) + rRotatePt.Y() + rOffset.Height() }; } tools::Polygon GDIMetaFile::ImplGetRotatedPolygon( const tools::Polygon& rPoly, const Point& rRotatePt, @@ -2108,15 +2108,15 @@ void GDIMetaFile::Adjust( short nLuminancePercent, short nContrastPercent, { if(!msoBrightness) { - aColParam.pMapR[ nX ] = FRound(std::clamp( nX * fM + fROff, 0.0, 255.0 )); - aColParam.pMapG[ nX ] = FRound(std::clamp( nX * fM + fGOff, 0.0, 255.0 )); - aColParam.pMapB[ nX ] = FRound(std::clamp( nX * fM + fBOff, 0.0, 255.0 )); + aColParam.pMapR[nX] = basegfx::fround<sal_uInt8>(nX * fM + fROff); + aColParam.pMapG[nX] = basegfx::fround<sal_uInt8>(nX * fM + fGOff); + aColParam.pMapB[nX] = basegfx::fround<sal_uInt8>(nX * fM + fBOff); } else { - aColParam.pMapR[ nX ] = FRound(std::clamp( (nX+fROff/2-128) * fM + 128 + fROff/2, 0.0, 255.0 )); - aColParam.pMapG[ nX ] = FRound(std::clamp( (nX+fGOff/2-128) * fM + 128 + fGOff/2, 0.0, 255.0 )); - aColParam.pMapB[ nX ] = FRound(std::clamp( (nX+fBOff/2-128) * fM + 128 + fBOff/2, 0.0, 255.0 )); + aColParam.pMapR[nX] = basegfx::fround<sal_uInt8>((nX+fROff/2-128) * fM + 128 + fROff/2); + aColParam.pMapG[nX] = basegfx::fround<sal_uInt8>((nX+fGOff/2-128) * fM + 128 + fGOff/2); + aColParam.pMapB[nX] = basegfx::fround<sal_uInt8>((nX+fBOff/2-128) * fM + 128 + fBOff/2); } if( bGamma ) { @@ -2298,17 +2298,17 @@ bool GDIMetaFile::CreateThumbnail(BitmapEx& rBitmapEx, BmpConversion eColorConve if ( fWH <= 1.0 ) { - aSizePix.setWidth( FRound( nMaximumExtent * fWH ) ); + aSizePix.setWidth(basegfx::fround<tools::Long>(nMaximumExtent * fWH)); aSizePix.setHeight( nMaximumExtent ); } else { aSizePix.setWidth( nMaximumExtent ); - aSizePix.setHeight( FRound( nMaximumExtent / fWH ) ); + aSizePix.setHeight(basegfx::fround<tools::Long>(nMaximumExtent / fWH)); } - aDrawSize.setWidth( FRound( ( static_cast< double >( aDrawSize.Width() ) * aSizePix.Width() ) / aOldSizePix.Width() ) ); - aDrawSize.setHeight( FRound( ( static_cast< double >( aDrawSize.Height() ) * aSizePix.Height() ) / aOldSizePix.Height() ) ); + aDrawSize.setWidth( basegfx::fround<tools::Long>( ( static_cast< double >( aDrawSize.Width() ) * aSizePix.Width() ) / aOldSizePix.Width() ) ); + aDrawSize.setHeight( basegfx::fround<tools::Long>( ( static_cast< double >( aDrawSize.Height() ) * aSizePix.Height() ) / aOldSizePix.Height() ) ); } // draw image(s) into VDev and get resulting image diff --git a/vcl/source/gdi/metaact.cxx b/vcl/source/gdi/metaact.cxx index a7e7c01f2936..b6971d7c8bda 100644 --- a/vcl/source/gdi/metaact.cxx +++ b/vcl/source/gdi/metaact.cxx @@ -40,8 +40,8 @@ namespace void ImplScalePoint( Point& rPt, double fScaleX, double fScaleY ) { - rPt.setX( FRound( fScaleX * rPt.X() ) ); - rPt.setY( FRound( fScaleY * rPt.Y() ) ); + rPt.setX(basegfx::fround<tools::Long>(fScaleX * rPt.X())); + rPt.setY(basegfx::fround<tools::Long>(fScaleY * rPt.Y())); } void ImplScaleRect( tools::Rectangle& rRect, double fScaleX, double fScaleY ) @@ -68,10 +68,10 @@ void ImplScaleLineInfo( LineInfo& rLineInfo, double fScaleX, double fScaleY ) { const double fScale = ( fabs(fScaleX) + fabs(fScaleY) ) * 0.5; - rLineInfo.SetWidth( FRound( fScale * rLineInfo.GetWidth() ) ); - rLineInfo.SetDashLen( FRound( fScale * rLineInfo.GetDashLen() ) ); - rLineInfo.SetDotLen( FRound( fScale * rLineInfo.GetDotLen() ) ); - rLineInfo.SetDistance( FRound( fScale * rLineInfo.GetDistance() ) ); + rLineInfo.SetWidth(fScale * rLineInfo.GetWidth()); + rLineInfo.SetDashLen(fScale * rLineInfo.GetDashLen()); + rLineInfo.SetDotLen(fScale * rLineInfo.GetDotLen()); + rLineInfo.SetDistance(fScale * rLineInfo.GetDistance()); } } @@ -319,8 +319,8 @@ void MetaRoundRectAction::Move( tools::Long nHorzMove, tools::Long nVertMove ) void MetaRoundRectAction::Scale( double fScaleX, double fScaleY ) { ImplScaleRect( maRect, fScaleX, fScaleY ); - mnHorzRound = FRound( mnHorzRound * fabs(fScaleX) ); - mnVertRound = FRound( mnVertRound * fabs(fScaleY) ); + mnHorzRound = basegfx::fround<sal_uInt32>(mnHorzRound * fabs(fScaleX)); + mnVertRound = basegfx::fround<sal_uInt32>(mnVertRound * fabs(fScaleY)); } MetaEllipseAction::MetaEllipseAction() : @@ -701,7 +701,7 @@ void MetaTextArrayAction::Scale( double fScaleX, double fScaleY ) if ( !maDXAry.empty() && mnLen ) { for ( sal_uInt16 i = 0, nCount = mnLen; i < nCount; i++ ) - maDXAry.set(i, FRound(maDXAry[i] * fabs(fScaleX))); + maDXAry.set(i, basegfx::fround(maDXAry[i] * fabs(fScaleX))); } } @@ -774,7 +774,7 @@ void MetaStretchTextAction::Move( tools::Long nHorzMove, tools::Long nVertMove ) void MetaStretchTextAction::Scale( double fScaleX, double fScaleY ) { ImplScalePoint( maPt, fScaleX, fScaleY ); - mnWidth = static_cast<sal_uLong>(FRound( mnWidth * fabs(fScaleX) )); + mnWidth = basegfx::fround<sal_uInt32>(mnWidth * fabs(fScaleX)); } -e ... etc. - the rest is truncated