[Libreoffice-commits] core.git: include/basegfx svx/source

2020-03-28 Thread Tomaž Vajngerl (via logerrit)
 include/basegfx/matrix/Matrix.hxx |  126 ++
 svx/source/svdraw/svdpdf.hxx  |  106 ---
 2 files changed, 128 insertions(+), 104 deletions(-)

New commits:
commit befd6880873cc3f63a0566b76246d2ae54f8a3c5
Author: Tomaž Vajngerl 
AuthorDate: Sat Mar 28 18:00:22 2020 +0100
Commit: Tomaž Vajngerl 
CommitDate: Sat Mar 28 19:15:03 2020 +0100

svdpdf: move Matrix to basegfx just to get it separated

Change-Id: I9d887dc7a2836b90151ef352b47a9b9ad3b6f12b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91280
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl 

diff --git a/include/basegfx/matrix/Matrix.hxx 
b/include/basegfx/matrix/Matrix.hxx
new file mode 100644
index ..b742d8cdf293
--- /dev/null
+++ b/include/basegfx/matrix/Matrix.hxx
@@ -0,0 +1,126 @@
+/* -*- 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 .
+ */
+
+#pragma once
+
+class Matrix
+{
+public:
+Matrix()
+: Matrix(1, 0, 0, 1, 0, 0)
+{
+}
+
+Matrix(const Matrix& other)
+: Matrix(other.ma, other.mb, other.mc, other.md, other.me, other.mf)
+{
+}
+
+Matrix(double da, double db, double dc, double dd, double de, double df)
+: ma(da)
+, mb(db)
+, mc(dc)
+, md(dd)
+, me(de)
+, mf(df)
+{
+}
+
+const Matrix& operator=(const Matrix& other)
+{
+ma = other.ma;
+mb = other.mb;
+mc = other.mc;
+md = other.md;
+me = other.me;
+mf = other.mf;
+return *this;
+}
+
+double a() const { return ma; }
+double b() const { return mb; }
+double c() const { return mc; }
+double d() const { return md; }
+double e() const { return me; }
+double f() const { return mf; }
+
+/// Multiply this * other.
+void Concatinate(const Matrix& other)
+{
+ma = ma * other.ma + mb * other.mc;
+mb = ma * other.mb + mb * other.md;
+mc = mc * other.ma + md * other.mc;
+md = mc * other.mb + md * other.md;
+me = me * other.ma + mf * other.mc + other.me;
+mf = me * other.mb + mf * other.md + other.mf;
+}
+
+/// Transform the point (x, y) by this Matrix.
+template  void Transform(T& x, T& y)
+{
+x = ma * x + mc * y + me;
+y = mb * x + md * y + mf;
+}
+
+/// Transform the rectangle (left, right, top, bottom) by this Matrix.
+template  void Transform(T& left, T& right, T& top, T& bottom)
+{
+T leftTopX = left;
+T leftTopY = top;
+Transform(leftTopX, leftTopY);
+
+T leftBottomX = left;
+T leftBottomY = bottom;
+Transform(leftBottomX, leftBottomY);
+
+T rightTopX = right;
+T rightTopY = top;
+Transform(rightTopX, rightTopY);
+
+T rightBottomX = right;
+T rightBottomY = bottom;
+Transform(rightBottomX, rightBottomY);
+
+left = std::min(leftTopX, leftBottomX);
+right = std::max(rightTopX, rightBottomX);
+
+if (top > bottom)
+top = std::max(leftTopY, rightTopY);
+else
+top = std::min(leftTopY, rightTopY);
+
+if (top > bottom)
+bottom = std::max(leftBottomY, rightBottomY);
+else
+bottom = std::min(leftBottomY, rightBottomY);
+}
+
+std::string toString() const
+{
+std::ostringstream oss;
+oss << '(' << ma << ", " << mb << ", " << mc << ", " << md << ", " << 
me << ", " << mf
+<< ')';
+return oss.str();
+}
+
+private:
+double ma, mb, mc, md, me, mf;
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/svdraw/svdpdf.hxx b/svx/source/svdraw/svdpdf.hxx
index 1648eeb3cdd1..46e63a7783ba 100644
--- a/svx/source/svdraw/svdpdf.hxx
+++ b/svx/source/svdraw/svdpdf.hxx
@@ -34,6 +34,8 @@
 #include 
 #include 
 
+#include 
+
 // Prevent workdir/UnpackedTarball/pdfium/public/fpdfview.h from including 
windows.h in a way that
 // it will define e.g. Yield as a macro:
 #include 
@@ -52,110 +54,6 @@ class 

[Libreoffice-commits] core.git: include/basegfx svx/source

2019-10-10 Thread Miklos Vajna (via logerrit)
 include/basegfx/vector/b2dvector.hxx |2 +-
 svx/source/svdraw/svdmrkv.cxx|2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

New commits:
commit 2256b477edf1bb8631f68fa90db074dc798d106e
Author: Miklos Vajna 
AuthorDate: Wed Oct 9 21:58:23 2019 +0200
Commit: Miklos Vajna 
CommitDate: Thu Oct 10 09:03:11 2019 +0200

basegfx: warn on unused B2DVector

This is similar to tools::Rectangle, doesn't do anything useful in its
destructor.

Change-Id: I761801a0cf6979e6611f4341b41445cb05d8925b
Reviewed-on: https://gerrit.libreoffice.org/80566
Tested-by: Jenkins
Reviewed-by: Miklos Vajna 

diff --git a/include/basegfx/vector/b2dvector.hxx 
b/include/basegfx/vector/b2dvector.hxx
index 6c452f89bd47..d091ec2cda27 100644
--- a/include/basegfx/vector/b2dvector.hxx
+++ b/include/basegfx/vector/b2dvector.hxx
@@ -37,7 +37,7 @@ namespace basegfx
 
 @see B2DTuple
 */
-class BASEGFX_DLLPUBLIC B2DVector : public ::basegfx::B2DTuple
+class SAL_WARN_UNUSED BASEGFX_DLLPUBLIC B2DVector : public 
::basegfx::B2DTuple
 {
 public:
 /** Create a 2D Vector
diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx
index ec1c96bdd65a..3d8d1be7b6c2 100644
--- a/svx/source/svdraw/svdmrkv.cxx
+++ b/svx/source/svdraw/svdmrkv.cxx
@@ -1987,7 +1987,6 @@ bool SdrMarkView::getPossibleGridOffsetForSdrObject(
 return false;
 }
 
-basegfx::B2DVector aOffset(0.0, 0.0);
 const sdr::contact::ViewObjectContact& 
rVOC(pObj->GetViewContact().GetViewObjectContact(
 const_cast(rObjectContact)));
 
@@ -2027,7 +2026,6 @@ bool SdrMarkView::getPossibleGridOffsetForPosition(
 return false;
 }
 
-basegfx::B2DVector aOffset(0.0, 0.0);
 rObjectContact.calculateGridOffsetForB2DRange(rOffset, 
basegfx::B2DRange(rPoint));
 
 return !rOffset.equalZero();
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits