summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.hpp')
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.hpp119
1 files changed, 0 insertions, 119 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.hpp
deleted file mode 100644
index 76c6e075148..00000000000
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.hpp
+++ /dev/null
@@ -1,119 +0,0 @@
-/*************************************************************************
-** Matrix.hpp **
-** **
-** This file is part of dvisvgm -- a fast DVI to SVG converter **
-** Copyright (C) 2005-2021 Martin Gieseking <martin.gieseking@uos.de> **
-** **
-** This program is free software; you can redistribute it and/or **
-** modify it under the terms of the GNU General Public License as **
-** published by the Free Software Foundation; either version 3 of **
-** the License, or (at your option) any later version. **
-** **
-** This program is distributed in the hope that it will be useful, but **
-** WITHOUT ANY WARRANTY; without even the implied warranty of **
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the **
-** GNU General Public License for more details. **
-** **
-** You should have received a copy of the GNU General Public License **
-** along with this program; if not, see <http://www.gnu.org/licenses/>. **
-*************************************************************************/
-
-#ifndef MATRIX_HPP
-#define MATRIX_HPP
-
-#include <initializer_list>
-#include <istream>
-#include <string>
-#include <vector>
-#include "MessageException.hpp"
-#include "Pair.hpp"
-
-
-struct ParserException : public MessageException {
- explicit ParserException (const std::string &msg) : MessageException(msg) {}
-};
-
-class Calculator;
-
-class Matrix {
- friend double det (const Matrix &m);
- friend double det (const Matrix &m, int row, int col);
-
- public:
- Matrix (const std::string &cmds, Calculator &calc);
- Matrix (double d=0);
- explicit Matrix (const double *v, unsigned size=9);
- explicit Matrix (const std::vector<double> &v, int start=0);
- Matrix (std::initializer_list<double> initlist);
- Matrix& set (double d);
- Matrix& set (const double *v, unsigned size);
- Matrix& set (const std::vector<double> &v, int start=0);
- Matrix& set (const std::string &cmds, Calculator &calc);
- double get (int row, int col) const {return _values[row][col];}
- Matrix& transpose ();
- Matrix& invert ();
- Matrix& rmultiply (const Matrix &tm);
- Matrix& lmultiply (const Matrix &tm);
- Matrix& translate (double tx, double ty);
- Matrix& translate (const DPair &p) {return translate(p.x(), p.y());}
- Matrix& scale (double sx, double sy);
- Matrix& scale (const DPair &p) {return scale(p.x(), p.y());}
- Matrix& rotate (double deg);
- Matrix& xskewByAngle (double deg);
- Matrix& yskewByAngle (double deg);
- Matrix& xskewByRatio (double xyratio);
- Matrix& yskewByRatio (double xyratio);
- Matrix& flip (bool h, double a);
- Matrix& operator *= (double c);
- DPair operator * (const DPair &p) const;
- bool operator == (const Matrix &m) const;
- bool operator != (const Matrix &m) const;
- bool isIdentity() const;
- bool isTranslation (double &tx, double &ty) const;
- std::string toSVG () const;
- std::ostream& write (std::ostream &os) const;
-
- static Matrix parse (std::istream &is, Calculator &c);
- static Matrix parse (const std::string &cmds, Calculator &c);
- static Matrix parseSVGTransform (const std::string &transform);
-
- private:
- double _values[3][3]; // row x col
-};
-
-
-struct TranslationMatrix : public Matrix {
- TranslationMatrix (double tx, double ty);
-};
-
-
-struct ScalingMatrix : public Matrix {
- ScalingMatrix (double sx, double sy);
-};
-
-
-struct RotationMatrix : public Matrix {
- explicit RotationMatrix (double deg);
-};
-
-
-struct XSkewingMatrix : public Matrix {
- explicit XSkewingMatrix (double deg);
-};
-
-
-struct YSkewingMatrix : public Matrix {
- explicit YSkewingMatrix (double deg);
-};
-
-
-inline std::ostream& operator << (std::ostream &os, const Matrix &m) {
- return m.write(os);
-}
-
-
-double det (const Matrix &m);
-double det (const Matrix &m, int row, int col);
-
-
-#endif