diff options
author | David Tardon <dtardon@redhat.com> | 2014-10-16 15:30:32 +0200 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2014-10-16 17:44:44 +0200 |
commit | 582ef22d3e8e30ffd58f092d37ffda30bd07bd9e (patch) | |
tree | 80c42b34da7e7ee05843b572f7311b3c230de9dd /include/svx/svdtrans.hxx | |
parent | ada4862afc3227b04c12960ded761db24f61257e (diff) |
fdo#84854 it seems long is not enough on 32 bit
Fraction used BigInt internally for computations, rational does nothing
like that.
Change-Id: I3e9b25074f979bc291208f7c6362c3c40eb77ff5
Diffstat (limited to 'include/svx/svdtrans.hxx')
-rw-r--r-- | include/svx/svdtrans.hxx | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/include/svx/svdtrans.hxx b/include/svx/svdtrans.hxx index 163e2f213126..9790327a9241 100644 --- a/include/svx/svdtrans.hxx +++ b/include/svx/svdtrans.hxx @@ -55,10 +55,10 @@ inline void MovePoly(Polygon& rPoly, const Size& S) { rPoly.Move(S.Width(), inline void MovePoly(tools::PolyPolygon& rPoly, const Size& S) { rPoly.Move(S.Width(),S.Height()); } void MoveXPoly(XPolygon& rPoly, const Size& S); -SVX_DLLPUBLIC void ResizeRect(Rectangle& rRect, const Point& rRef, const boost::rational<long>& xFact, const boost::rational<long>& yFact, bool bNoJustify = false); -inline void ResizePoint(Point& rPnt, const Point& rRef, boost::rational<long> xFact, boost::rational<long> yFact); -void ResizePoly(Polygon& rPoly, const Point& rRef, const boost::rational<long>& xFact, const boost::rational<long>& yFact); -void ResizeXPoly(XPolygon& rPoly, const Point& rRef, const boost::rational<long>& xFact, const boost::rational<long>& yFact); +SVX_DLLPUBLIC void ResizeRect(Rectangle& rRect, const Point& rRef, const boost::rational<sal_Int64>& xFact, const boost::rational<sal_Int64>& yFact, bool bNoJustify = false); +inline void ResizePoint(Point& rPnt, const Point& rRef, boost::rational<sal_Int64> xFact, boost::rational<sal_Int64> yFact); +void ResizePoly(Polygon& rPoly, const Point& rRef, const boost::rational<sal_Int64>& xFact, const boost::rational<sal_Int64>& yFact); +void ResizeXPoly(XPolygon& rPoly, const Point& rRef, const boost::rational<sal_Int64>& xFact, const boost::rational<sal_Int64>& yFact); inline void RotatePoint(Point& rPnt, const Point& rRef, double sn, double cs); SVX_DLLPUBLIC void RotatePoly(Polygon& rPoly, const Point& rRef, double sn, double cs); @@ -102,7 +102,7 @@ void CrookStretchPoly(XPolyPolygon& rPoly, const Point& rCenter, const Point& rR /* Inline */ /**************************************************************************************************/ -inline void ResizePoint(Point& rPnt, const Point& rRef, boost::rational<long> xFact, boost::rational<long> yFact) +inline void ResizePoint(Point& rPnt, const Point& rRef, boost::rational<sal_Int64> xFact, boost::rational<sal_Int64> yFact) { rPnt.X()=rRef.X()+ Round(((double)(rPnt.X()-rRef.X())*xFact.numerator())/xFact.denominator()); rPnt.Y()=rRef.Y()+ Round(((double)(rPnt.Y()-rRef.Y())*yFact.numerator())/yFact.denominator()); @@ -219,25 +219,25 @@ SVX_DLLPUBLIC void OrthoDistance4(const Point& rPt0, Point& rPt, bool bBigOrtho) // Rechnung und Zwischenergebnis sind BigInt. SVX_DLLPUBLIC long BigMulDiv(long nVal, long nMul, long nDiv); -// Fehlerbehaftetes Kuerzen einer boost::rational<long>. +// Fehlerbehaftetes Kuerzen einer boost::rational<sal_Int64>. // nDigits gibt an, wieviele signifikante Stellen in // Zaehler/Nenner mindestens erhalten bleiben sollen. -void Kuerzen(boost::rational<long>& rF, unsigned nDigits); +void Kuerzen(boost::rational<sal_Int64>& rF, unsigned nDigits); class FrPair { - boost::rational<long> aX; - boost::rational<long> aY; + boost::rational<sal_Int64> aX; + boost::rational<sal_Int64> aY; public: FrPair() : aX(0,1),aY(0,1) {} - FrPair(const boost::rational<long>& rBoth) : aX(rBoth),aY(rBoth) {} - FrPair(const boost::rational<long>& rX, const boost::rational<long>& rY) : aX(rX),aY(rY) {} + FrPair(const boost::rational<sal_Int64>& rBoth) : aX(rBoth),aY(rBoth) {} + FrPair(const boost::rational<sal_Int64>& rX, const boost::rational<sal_Int64>& rY) : aX(rX),aY(rY) {} FrPair(long nMul, long nDiv) : aX(nMul,nDiv),aY(nMul,nDiv) {} FrPair(long xMul, long xDiv, long yMul, long yDiv): aX(xMul,xDiv),aY(yMul,yDiv) {} - const boost::rational<long>& X() const { return aX; } - const boost::rational<long>& Y() const { return aY; } - boost::rational<long>& X() { return aX; } - boost::rational<long>& Y() { return aY; } + const boost::rational<sal_Int64>& X() const { return aX; } + const boost::rational<sal_Int64>& Y() const { return aY; } + boost::rational<sal_Int64>& X() { return aX; } + boost::rational<sal_Int64>& Y() { return aY; } }; // Fuer die Umrechnung von Masseinheiten @@ -263,7 +263,7 @@ inline bool IsInch(FieldUnit eU) { } class SVX_DLLPUBLIC SdrFormatter { - boost::rational<long> aScale; + boost::rational<sal_Int64> aScale; long nMul_; long nDiv_; short nKomma_; |