diff --git a/esvg/Base.cpp b/esvg/Base.cpp index 30c6cd5..678e03e 100644 --- a/esvg/Base.cpp +++ b/esvg/Base.cpp @@ -97,7 +97,7 @@ void esvg::Base::parseTransform(const exml::Element& _element) { if (data.size() != 0) { double matrix[6]; if (sscanf(data.c_str(), "%lf %lf %lf %lf %lf %lf", &matrix[0], &matrix[1], &matrix[2], &matrix[3], &matrix[4], &matrix[5]) == 6) { - m_transformMatrix = mat2(matrix); + m_transformMatrix = mat2x3(matrix); // find a matrix : simply exit ... return; } else { @@ -108,10 +108,10 @@ void esvg::Base::parseTransform(const exml::Element& _element) { if (data.size() != 0) { float xxx, yyy; if (sscanf(data.c_str(), "%f %f", &xxx, &yyy) == 2) { - m_transformMatrix *= etk::mat2Translate(vec2(xxx, yyy)); + m_transformMatrix *= etk::mat2x3Translate(vec2(xxx, yyy)); ESVG_VERBOSE("Translate : " << xxx << ", " << yyy); } else if (sscanf(data.c_str(), "%f", &xxx) == 1) { - m_transformMatrix *= etk::mat2Translate(vec2(xxx, 0)); + m_transformMatrix *= etk::mat2x3Translate(vec2(xxx, 0)); ESVG_VERBOSE("Translate : " << xxx << ", " << 0); } else { ESVG_ERROR("Parsing translate() with wrong data ... '" << data << "'"); @@ -121,10 +121,10 @@ void esvg::Base::parseTransform(const exml::Element& _element) { if (data.size() != 0) { float xxx, yyy; if (sscanf(data.c_str(), "%f %f", &xxx, &yyy) == 2) { - m_transformMatrix *= etk::mat2Scale(vec2(xxx, yyy)); + m_transformMatrix *= etk::mat2x3Scale(vec2(xxx, yyy)); ESVG_VERBOSE("Scale : " << xxx << ", " << yyy); } else if (sscanf(data.c_str(), "%f", &xxx) == 1) { - m_transformMatrix *= etk::mat2Scale(xxx); + m_transformMatrix *= etk::mat2x3Scale(xxx); ESVG_VERBOSE("Scale : " << xxx << ", " << xxx); } else { ESVG_ERROR("Parsing scale() with wrong data ... '" << data << "'"); @@ -135,13 +135,13 @@ void esvg::Base::parseTransform(const exml::Element& _element) { float angle, xxx, yyy; if (sscanf(data.c_str(), "%f %f %f", &angle, &xxx, &yyy) == 3) { angle = angle / 180 * M_PI; - m_transformMatrix *= etk::mat2Translate(vec2(-xxx, -yyy)); - m_transformMatrix *= etk::mat2Rotate(angle); - m_transformMatrix *= etk::mat2Translate(vec2(xxx, yyy)); + m_transformMatrix *= etk::mat2x3Translate(vec2(-xxx, -yyy)); + m_transformMatrix *= etk::mat2x3Rotate(angle); + m_transformMatrix *= etk::mat2x3Translate(vec2(xxx, yyy)); } else if (sscanf(data.c_str(), "%f", &angle) == 1) { angle = angle / 180 * M_PI; ESVG_VERBOSE("rotate : " << angle << "rad, " << (angle/M_PI*180) << "°"); - m_transformMatrix *= etk::mat2Rotate(angle); + m_transformMatrix *= etk::mat2x3Rotate(angle); } else { ESVG_ERROR("Parsing rotate() with wrong data ... '" << data << "'"); } @@ -152,7 +152,7 @@ void esvg::Base::parseTransform(const exml::Element& _element) { if (sscanf(data.c_str(), "%f", &angle) == 1) { angle = angle / 180 * M_PI; ESVG_VERBOSE("skewX : " << angle << "rad, " << (angle/M_PI*180) << "°"); - m_transformMatrix *= etk::mat2Skew(vec2(angle, 0.0f)); + m_transformMatrix *= etk::mat2x3Skew(vec2(angle, 0.0f)); } else { ESVG_ERROR("Parsing skewX() with wrong data ... '" << data << "'"); } @@ -163,7 +163,7 @@ void esvg::Base::parseTransform(const exml::Element& _element) { if (sscanf(data.c_str(), "%f", &angle) == 1) { angle = angle / 180 * M_PI; ESVG_VERBOSE("skewY : " << angle << "rad, " << (angle/M_PI*180) << "°"); - m_transformMatrix *= etk::mat2Skew(vec2(0.0f, angle)); + m_transformMatrix *= etk::mat2x3Skew(vec2(0.0f, angle)); } else { ESVG_ERROR("Parsing skewY() with wrong data ... '" << data << "'"); } @@ -396,7 +396,7 @@ std::pair, std::string> esvg::Base::parseColor(const std::st return localColor; } -bool esvg::Base::parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) { +bool esvg::Base::parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) { // TODO : UNDERSTAND why nothing is done here ... // Parse basic elements (ID...): m_id = _element.attributes["id"]; @@ -413,7 +413,7 @@ const char * esvg::Base::spacingDist(int32_t _spacing) { return tmpValue + 20*4 - _spacing*4; } -void esvg::Base::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) { +void esvg::Base::draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) { ESVG_WARNING(spacingDist(_level) << "DRAW esvg::Base ... ==> No drawing availlable"); } @@ -432,7 +432,7 @@ void esvg::Base::setId(const std::string& _newId) { void esvg::Base::drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level) { } diff --git a/esvg/Base.hpp b/esvg/Base.hpp index 7d9c80c..e69ccfa 100644 --- a/esvg/Base.hpp +++ b/esvg/Base.hpp @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include @@ -52,7 +52,7 @@ namespace esvg { class Base { protected: PaintState m_paint; - mat2 m_transformMatrix; //!< specific render of the curent element + mat2x3 m_transformMatrix; //!< specific render of the curent element const char * spacingDist(int32_t _spacing); public: Base() {}; @@ -63,14 +63,14 @@ namespace esvg { * @param[in] _element standart XML node * @return true if no problem arrived */ - virtual bool parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax); + virtual bool parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax); /** * @brief Draw the form in the renderer * @param[in] _myRenderer Renderer engine * @param[in] _basicTrans Parant transformation of the environement * @param[in] _level Level of the tree */ - virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level=1); + virtual void draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level=1); /** * @brief Draw rhe shape with all points * @param[in] _out where the lines are added @@ -82,7 +82,7 @@ namespace esvg { virtual void drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level=1); virtual void display(int32_t _spacing) { }; diff --git a/esvg/Circle.cpp b/esvg/Circle.cpp index bf680f4..bd4cec8 100644 --- a/esvg/Circle.cpp +++ b/esvg/Circle.cpp @@ -17,7 +17,7 @@ esvg::Circle::~Circle() { } -bool esvg::Circle::parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) { +bool esvg::Circle::parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) { m_radius = 0.0; m_position.setValue(0,0); if (_element.exist() == false) { @@ -82,7 +82,7 @@ esvg::render::Path esvg::Circle::createPath() { return out; } -void esvg::Circle::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) { +void esvg::Circle::draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW esvg::Circle"); if (m_radius <= 0.0f) { ESVG_VERBOSE(spacingDist(_level+1) << "Too small radius" << m_radius); @@ -90,7 +90,7 @@ void esvg::Circle::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t } esvg::render::Path listElement = createPath(); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; @@ -146,11 +146,11 @@ void esvg::Circle::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t void esvg::Circle::drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW Shape esvg::Circle"); esvg::render::Path listElement = createPath(); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; listPoints = listElement.generateListPoints(_level, _recurtionMax, _threshold); diff --git a/esvg/Circle.hpp b/esvg/Circle.hpp index fbe14ff..b586b45 100644 --- a/esvg/Circle.hpp +++ b/esvg/Circle.hpp @@ -15,13 +15,13 @@ namespace esvg { public: Circle(PaintState _parentPaintState); ~Circle(); - bool parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) override; + bool parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) override; void display(int32_t _spacing) override; - void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) override; + void draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) override; void drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level=1) override; private: esvg::render::Path createPath(); diff --git a/esvg/Ellipse.cpp b/esvg/Ellipse.cpp index 41eaac6..a6a64c5 100644 --- a/esvg/Ellipse.cpp +++ b/esvg/Ellipse.cpp @@ -17,7 +17,7 @@ esvg::Ellipse::~Ellipse() { } -bool esvg::Ellipse::parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) { +bool esvg::Ellipse::parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) { if (_element.exist() == false) { return false; } @@ -86,7 +86,7 @@ esvg::render::Path esvg::Ellipse::createPath() { return out; } -void esvg::Ellipse::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) { +void esvg::Ellipse::draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW esvg::Ellipse"); if ( m_r.x()<=0.0f || m_r.y()<=0.0f) { @@ -95,7 +95,7 @@ void esvg::Ellipse::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t } esvg::render::Path listElement = createPath(); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; @@ -152,11 +152,11 @@ void esvg::Ellipse::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t void esvg::Ellipse::drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW Shape esvg::Ellipse"); esvg::render::Path listElement = createPath(); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; listPoints = listElement.generateListPoints(_level, _recurtionMax, _threshold); diff --git a/esvg/Ellipse.hpp b/esvg/Ellipse.hpp index 1de2e68..14550be 100644 --- a/esvg/Ellipse.hpp +++ b/esvg/Ellipse.hpp @@ -15,13 +15,13 @@ namespace esvg { public: Ellipse(PaintState _parentPaintState); ~Ellipse(); - bool parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) override; + bool parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) override; void display(int32_t _spacing) override; - void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) override; + void draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) override; void drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level=1) override; private: esvg::render::Path createPath(); diff --git a/esvg/Group.cpp b/esvg/Group.cpp index 00e7e61..4c903b4 100644 --- a/esvg/Group.cpp +++ b/esvg/Group.cpp @@ -26,7 +26,7 @@ esvg::Group::~Group() { } -bool esvg::Group::parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) { +bool esvg::Group::parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) { if (_element.exist() == false) { return false; } @@ -105,7 +105,7 @@ void esvg::Group::display(int32_t _spacing) { ESVG_DEBUG(spacingDist(_spacing) << "Group (STOP)"); } -void esvg::Group::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) { +void esvg::Group::draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW esvg::group"); for (auto &it : m_subElementList) { if (it != nullptr) { @@ -117,7 +117,7 @@ void esvg::Group::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _ void esvg::Group::drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW shape esvg::group"); for (auto &it : m_subElementList) { diff --git a/esvg/Group.hpp b/esvg/Group.hpp index 9c2c7f1..1be6fe1 100644 --- a/esvg/Group.hpp +++ b/esvg/Group.hpp @@ -15,13 +15,13 @@ namespace esvg { public: Group(PaintState _parentPaintState); ~Group(); - bool parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) override; + bool parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) override; void display(int32_t spacing) override; - void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) override; + void draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) override; void drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level=1) override; }; } diff --git a/esvg/Line.cpp b/esvg/Line.cpp index b837ab8..7de0c89 100644 --- a/esvg/Line.cpp +++ b/esvg/Line.cpp @@ -18,7 +18,7 @@ esvg::Line::~Line() { } -bool esvg::Line::parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) { +bool esvg::Line::parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) { // line must have a minimum size... m_paint.strokeWidth = 1; if (_element.exist() == false) { @@ -64,12 +64,12 @@ esvg::render::Path esvg::Line::createPath() { return out; } -void esvg::Line::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) { +void esvg::Line::draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW esvg::Line"); esvg::render::Path listElement = createPath(); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; @@ -119,11 +119,11 @@ void esvg::Line::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _l void esvg::Line::drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW Shape esvg::Line"); esvg::render::Path listElement = createPath(); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; listPoints = listElement.generateListPoints(_level, _recurtionMax, _threshold); diff --git a/esvg/Line.hpp b/esvg/Line.hpp index aaf561a..997b5f2 100644 --- a/esvg/Line.hpp +++ b/esvg/Line.hpp @@ -15,13 +15,13 @@ namespace esvg { public: Line(PaintState _parentPaintState); ~Line(); - bool parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) override; + bool parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) override; void display(int32_t _spacing) override; - void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) override; + void draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) override; void drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level=1) override; private: esvg::render::Path createPath(); diff --git a/esvg/LinearGradient.cpp b/esvg/LinearGradient.cpp index 33f4a0b..b3a9987 100644 --- a/esvg/LinearGradient.cpp +++ b/esvg/LinearGradient.cpp @@ -25,7 +25,7 @@ esvg::LinearGradient::~LinearGradient() { } -bool esvg::LinearGradient::parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) { +bool esvg::LinearGradient::parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) { // line must have a minimum size... //m_paint.strokeWidth = 1; if (_element.exist() == false) { @@ -135,7 +135,7 @@ void esvg::LinearGradient::display(int32_t _spacing) { } } -void esvg::LinearGradient::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) { +void esvg::LinearGradient::draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW esvg::LinearGradient"); } diff --git a/esvg/LinearGradient.hpp b/esvg/LinearGradient.hpp index b719ec3..f9347fb 100644 --- a/esvg/LinearGradient.hpp +++ b/esvg/LinearGradient.hpp @@ -24,9 +24,9 @@ namespace esvg { public: LinearGradient(PaintState _parentPaintState); ~LinearGradient(); - virtual bool parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax); + virtual bool parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax); virtual void display(int32_t _spacing); - virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level); + virtual void draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level); public: const esvg::Dimension& getPosition1(); const esvg::Dimension& getPosition2(); diff --git a/esvg/Path.cpp b/esvg/Path.cpp index 2a46cfc..ec09b5e 100644 --- a/esvg/Path.cpp +++ b/esvg/Path.cpp @@ -76,7 +76,7 @@ std::string cleanBadSpaces(const std::string& _input) { return out; } -bool esvg::Path::parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) { +bool esvg::Path::parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) { if (_element.exist() == false) { return false; } @@ -270,10 +270,10 @@ void esvg::Path::display(int32_t _spacing) { m_listElement.display(_spacing); } -void esvg::Path::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) { +void esvg::Path::draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW esvg::Path"); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; @@ -328,11 +328,11 @@ void esvg::Path::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _l void esvg::Path::drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW Shape esvg::Path"); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; diff --git a/esvg/Path.hpp b/esvg/Path.hpp index 224481b..e725c2f 100644 --- a/esvg/Path.hpp +++ b/esvg/Path.hpp @@ -15,13 +15,13 @@ namespace esvg { public: Path(PaintState _parentPaintState); ~Path(); - bool parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) override; + bool parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) override; void display(int32_t _spacing) override; - void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) override; + void draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) override; void drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level=1) override; }; } diff --git a/esvg/Polygon.cpp b/esvg/Polygon.cpp index b0ed1bc..0e271b3 100644 --- a/esvg/Polygon.cpp +++ b/esvg/Polygon.cpp @@ -17,7 +17,7 @@ esvg::Polygon::~Polygon() { } -bool esvg::Polygon::parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) { +bool esvg::Polygon::parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) { if (_element.exist() == false) { return false; } @@ -71,12 +71,12 @@ esvg::render::Path esvg::Polygon::createPath() { return out; } -void esvg::Polygon::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) { +void esvg::Polygon::draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW esvg::Polygon"); esvg::render::Path listElement = createPath(); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; @@ -133,11 +133,11 @@ void esvg::Polygon::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t void esvg::Polygon::drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW Shape esvg::Polygon"); esvg::render::Path listElement = createPath(); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; listPoints = listElement.generateListPoints(_level, _recurtionMax, _threshold); diff --git a/esvg/Polygon.hpp b/esvg/Polygon.hpp index 29aaf94..ef215e1 100644 --- a/esvg/Polygon.hpp +++ b/esvg/Polygon.hpp @@ -22,13 +22,13 @@ namespace esvg { public: Polygon(PaintState parentPaintState); ~Polygon(); - bool parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) override; + bool parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) override; void display(int32_t _spacing) override; - void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) override; + void draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) override; void drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level=1) override; private: esvg::render::Path createPath(); diff --git a/esvg/Polyline.cpp b/esvg/Polyline.cpp index 6073e60..50b93f8 100644 --- a/esvg/Polyline.cpp +++ b/esvg/Polyline.cpp @@ -17,7 +17,7 @@ esvg::Polyline::~Polyline() { } -bool esvg::Polyline::parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) { +bool esvg::Polyline::parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) { // line must have a minimum size... m_paint.strokeWidth = 1; if (_element.exist() == false) { @@ -68,12 +68,12 @@ esvg::render::Path esvg::Polyline::createPath() { return out; } -void esvg::Polyline::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) { +void esvg::Polyline::draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW esvg::Polyline"); esvg::render::Path listElement = createPath(); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; @@ -130,11 +130,11 @@ void esvg::Polyline::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_ void esvg::Polyline::drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW Shape esvg::Polyline"); esvg::render::Path listElement = createPath(); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; listPoints = listElement.generateListPoints(_level, _recurtionMax, _threshold); diff --git a/esvg/Polyline.hpp b/esvg/Polyline.hpp index 5d1c26f..956d148 100644 --- a/esvg/Polyline.hpp +++ b/esvg/Polyline.hpp @@ -15,13 +15,13 @@ namespace esvg { public: Polyline(PaintState _parentPaintState); ~Polyline(); - bool parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) override; + bool parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) override; void display(int32_t _spacing) override; - void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) override; + void draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) override; void drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level=1) override; private: esvg::render::Path createPath(); diff --git a/esvg/RadialGradient.cpp b/esvg/RadialGradient.cpp index f407cb3..49e5fa9 100644 --- a/esvg/RadialGradient.cpp +++ b/esvg/RadialGradient.cpp @@ -26,7 +26,7 @@ esvg::RadialGradient::~RadialGradient() { } -bool esvg::RadialGradient::parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) { +bool esvg::RadialGradient::parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) { // line must have a minimum size... //m_paint.strokeWidth = 1; if (_element.exist() == false) { @@ -140,7 +140,7 @@ void esvg::RadialGradient::display(int32_t _spacing) { } } -void esvg::RadialGradient::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) { +void esvg::RadialGradient::draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW esvg::RadialGradient"); } diff --git a/esvg/RadialGradient.hpp b/esvg/RadialGradient.hpp index 2906325..cd3f751 100644 --- a/esvg/RadialGradient.hpp +++ b/esvg/RadialGradient.hpp @@ -25,9 +25,9 @@ namespace esvg { public: RadialGradient(PaintState _parentPaintState); ~RadialGradient(); - virtual bool parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax); + virtual bool parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax); virtual void display(int32_t _spacing); - virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level); + virtual void draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level); public: const esvg::Dimension& getCenter(); const esvg::Dimension& getFocal(); diff --git a/esvg/Rectangle.cpp b/esvg/Rectangle.cpp index a1c5f86..b9bed10 100644 --- a/esvg/Rectangle.cpp +++ b/esvg/Rectangle.cpp @@ -19,7 +19,7 @@ esvg::Rectangle::~Rectangle() { } -bool esvg::Rectangle::parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) { +bool esvg::Rectangle::parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) { if (_element.exist() == false) { return false; } @@ -85,12 +85,12 @@ esvg::render::Path esvg::Rectangle::createPath() { return out; } -void esvg::Rectangle::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) { +void esvg::Rectangle::draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW esvg::Rectangle: fill=" << m_paint.fill.first << "/" << m_paint.fill.second << " stroke=" << m_paint.stroke.first << "/" << m_paint.stroke.second); esvg::render::Path listElement = createPath(); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; @@ -147,11 +147,11 @@ void esvg::Rectangle::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32 void esvg::Rectangle::drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW Shape esvg::Rectangle"); esvg::render::Path listElement = createPath(); - mat2 mtx = m_transformMatrix; + mat2x3 mtx = m_transformMatrix; mtx *= _basicTrans; esvg::render::PointList listPoints; listPoints = listElement.generateListPoints(_level, _recurtionMax, _threshold); diff --git a/esvg/Rectangle.hpp b/esvg/Rectangle.hpp index 00d8fcf..dffa586 100644 --- a/esvg/Rectangle.hpp +++ b/esvg/Rectangle.hpp @@ -16,13 +16,13 @@ namespace esvg { public: Rectangle(PaintState _parentPaintState); ~Rectangle(); - bool parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) override; + bool parseXML(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) override; void display(int32_t _spacing) override; - void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) override; + void draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) override; void drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level=1) override; private: esvg::render::Path createPath(); diff --git a/esvg/Renderer.cpp b/esvg/Renderer.cpp index c046f9f..795f210 100644 --- a/esvg/Renderer.cpp +++ b/esvg/Renderer.cpp @@ -122,7 +122,7 @@ void esvg::Renderer::print(const esvg::render::Weight& _weightFill, esvg::render::Point(tmpColor->m_pos2), false); /* - mat2 m_matrix; + mat2x3 m_matrix; std::pair m_viewPort; vec2 m_pos1; vec2 m_pos2; diff --git a/esvg/Text.cpp b/esvg/Text.cpp index cf6f674..68361a1 100644 --- a/esvg/Text.cpp +++ b/esvg/Text.cpp @@ -15,7 +15,7 @@ esvg::Text::~Text() { } -bool esvg::Text::parse(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax) { +bool esvg::Text::parse(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax) { _sizeMax.setValue(0,0); ESVG_ERROR("NOT IMPLEMENTED"); return false; diff --git a/esvg/Text.hpp b/esvg/Text.hpp index d695ecf..ba00400 100644 --- a/esvg/Text.hpp +++ b/esvg/Text.hpp @@ -12,7 +12,7 @@ namespace esvg { public: Text(PaintState _parentPaintState); ~Text(); - bool parse(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax); + bool parse(const exml::Element& _element, mat2x3& _parentTrans, vec2& _sizeMax); void display(int32_t _spacing) override; }; } diff --git a/esvg/esvg.cpp b/esvg/esvg.cpp index 95dac7b..915e993 100644 --- a/esvg/esvg.cpp +++ b/esvg/esvg.cpp @@ -49,7 +49,7 @@ void esvg::Document::displayDebug() { } -void esvg::Document::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) { +void esvg::Document::draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level) { for (int32_t iii=0; iiidraw(_myRenderer, _basicTrans); @@ -73,8 +73,8 @@ void esvg::Document::generateAnImage(const ivec2& _size, const std::string& _fil ememory::SharedPtr renderedElement = ememory::makeShared(sizeRender, this, _visualDebug); // create the first element matrix modification ... - mat2 basicTrans; - basicTrans *= etk::mat2Scale(vec2(sizeRender.x()/m_size.x(), sizeRender.y()/m_size.y())); + mat2x3 basicTrans; + basicTrans *= etk::mat2x3Scale(vec2(sizeRender.x()/m_size.x(), sizeRender.y()/m_size.y())); draw(*renderedElement, basicTrans); @@ -98,8 +98,8 @@ std::vector> esvg::Document::renderImageFloatRGBA(ivec2& _si ESVG_DEBUG("Generate size " << _size); ememory::SharedPtr renderedElement = ememory::makeShared(_size, this); // create the first element matrix modification ... - mat2 basicTrans; - basicTrans *= etk::mat2Scale(vec2(_size.x()/m_size.x(), _size.y()/m_size.y())); + mat2x3 basicTrans; + basicTrans *= etk::mat2x3Scale(vec2(_size.x()/m_size.x(), _size.y()/m_size.y())); draw(*renderedElement, basicTrans); // direct return the generated data ... @@ -379,8 +379,8 @@ std::vector> esvg::Document::getLines(vec2 _size) { } ESVG_DEBUG("lineification size " << _size); // create the first element matrix modification ... - mat2 basicTrans; - basicTrans *= etk::mat2Scale(vec2(_size.x()/m_size.x(), _size.y()/m_size.y())); + mat2x3 basicTrans; + basicTrans *= etk::mat2x3Scale(vec2(_size.x()/m_size.x(), _size.y()/m_size.y())); drawShapePoints(out, 10, 0.25f, basicTrans); return out; } @@ -389,7 +389,7 @@ std::vector> esvg::Document::getLines(vec2 _size) { void esvg::Document::drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level) { ESVG_VERBOSE(spacingDist(_level) << "DRAW shape esvg::Document"); for (auto &it : m_subElementList) { diff --git a/esvg/esvg.hpp b/esvg/esvg.hpp index dcca45c..235263e 100644 --- a/esvg/esvg.hpp +++ b/esvg/esvg.hpp @@ -88,7 +88,7 @@ namespace esvg { std::vector> renderImageU8RGB(ivec2& _size); std::vector> getLines(vec2 _size=vec2(256,256)); protected: - void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level=0) override; + void draw(esvg::Renderer& _myRenderer, mat2x3& _basicTrans, int32_t _level=0) override; public: vec2 getDefinedSize() { return m_size; @@ -98,7 +98,7 @@ namespace esvg { void drawShapePoints(std::vector>& _out, int32_t _recurtionMax, float _threshold, - mat2& _basicTrans, + mat2x3& _basicTrans, int32_t _level=1) override; }; } diff --git a/esvg/render/DynamicColor.cpp b/esvg/render/DynamicColor.cpp index b535ad7..407a89b 100644 --- a/esvg/render/DynamicColor.cpp +++ b/esvg/render/DynamicColor.cpp @@ -10,7 +10,7 @@ #include #include -esvg::render::DynamicColorSpecial::DynamicColorSpecial(const std::string& _link, const mat2& _mtx) : +esvg::render::DynamicColorSpecial::DynamicColorSpecial(const std::string& _link, const mat2x3& _mtx) : m_linear(true), m_colorName(_link), m_matrix(_mtx), @@ -439,7 +439,7 @@ void esvg::render::DynamicColorSpecial::generate(esvg::Document* _document) { } } -ememory::SharedPtr esvg::render::createColor(std::pair, std::string> _color, const mat2& _mtx) { +ememory::SharedPtr esvg::render::createColor(std::pair, std::string> _color, const mat2x3& _mtx) { // Check if need to create a color: if ( _color.first.a() == 0x00 && _color.second == "") { diff --git a/esvg/render/DynamicColor.hpp b/esvg/render/DynamicColor.hpp index 9a46385..0237b3c 100644 --- a/esvg/render/DynamicColor.hpp +++ b/esvg/render/DynamicColor.hpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include @@ -50,7 +50,7 @@ namespace esvg { esvg::spreadMethod m_spread; esvg::gradientUnits m_unit; std::string m_colorName; - mat2 m_matrix; + mat2x3 m_matrix; std::pair m_viewPort; vec2 m_pos1; // in radius ==> center vec2 m_pos2; // in radius ==> radius end position @@ -63,7 +63,7 @@ namespace esvg { bool m_centerIsFocal; std::vector>> m_data; public: - DynamicColorSpecial(const std::string& _link, const mat2& _mtx); + DynamicColorSpecial(const std::string& _link, const mat2x3& _mtx); virtual etk::Color getColor(const ivec2& _pos) const; private: etk::Color getColorLinear(const ivec2& _pos) const; @@ -73,7 +73,7 @@ namespace esvg { virtual void setViewPort(const std::pair& _viewPort); }; - ememory::SharedPtr createColor(std::pair, std::string> _color, const mat2& _mtx); + ememory::SharedPtr createColor(std::pair, std::string> _color, const mat2x3& _mtx); } } diff --git a/esvg/render/Path.cpp b/esvg/render/Path.cpp index 469bd2b..d5e20d8 100644 --- a/esvg/render/Path.cpp +++ b/esvg/render/Path.cpp @@ -371,7 +371,7 @@ esvg::render::PointList esvg::render::Path::generateListPoints(int32_t _level, i // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes // procedure describe here : http://www.w3.org/TR/SVG11/implnote.html#ArcConversionCenterToEndpoint // Compute delta' - mat2 matrixRotationCenter = etk::mat2Rotate(-rotationX); + mat2x3 matrixRotationCenter = etk::mat2x3Rotate(-rotationX); vec2 deltaPrim = matrixRotationCenter * (delta*0.5f); ddd = (deltaPrim.x()*deltaPrim.x())/(radius.x()*radius.x()) + (deltaPrim.y()*deltaPrim.y())/(radius.y()*radius.y()); @@ -406,7 +406,7 @@ esvg::render::PointList esvg::render::Path::generateListPoints(int32_t _level, i vec2 centerPrime(sss * radius.x() * deltaPrim.y() / radius.y(), sss * -radius.y() * deltaPrim.x() / radius.x()); // Compute center from center' - mat2 matrix = etk::mat2Rotate(rotationX); + mat2x3 matrix = etk::mat2x3Rotate(rotationX); vec2 center = (lastPosStore + pos)*0.5f + matrix*centerPrime; #ifdef DEBUG m_debugInformation.addSegment(center-vec2(3.0,3.0), center+vec2(3.0,3.0)); diff --git a/esvg/render/PointList.cpp b/esvg/render/PointList.cpp index d7d97b2..fa3c750 100644 --- a/esvg/render/PointList.cpp +++ b/esvg/render/PointList.cpp @@ -16,7 +16,7 @@ void esvg::render::PointList::addList(std::vector& _list) { // TODO : Add a checker of correct list ... } -void esvg::render::PointList::applyMatrix(const mat2& _transformationMatrix) { +void esvg::render::PointList::applyMatrix(const mat2x3& _transformationMatrix) { for (auto &it : m_data) { for (auto &val : it) { val.m_pos = _transformationMatrix * val.m_pos; diff --git a/esvg/render/PointList.hpp b/esvg/render/PointList.hpp index 34f9a7c..9a1348a 100644 --- a/esvg/render/PointList.hpp +++ b/esvg/render/PointList.hpp @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include @@ -20,7 +20,7 @@ namespace esvg { PointList(); void addList(std::vector& _list); void display(); - void applyMatrix(const mat2& _transformationMatrix); + void applyMatrix(const mat2x3& _transformationMatrix); std::pair getViewPort(); }; } diff --git a/esvg/render/Segment.cpp b/esvg/render/Segment.cpp index 96e8bbf..aa5b875 100644 --- a/esvg/render/Segment.cpp +++ b/esvg/render/Segment.cpp @@ -14,7 +14,7 @@ esvg::render::Segment::Segment(const vec2& _p0, const vec2& _p1) { direction = 0; } -void esvg::render::Segment::applyMatrix(const mat2& _transformationMatrix) { +void esvg::render::Segment::applyMatrix(const mat2x3& _transformationMatrix) { p0 = _transformationMatrix * p0; p1 = _transformationMatrix * p1; createDirection(); diff --git a/esvg/render/Segment.hpp b/esvg/render/Segment.hpp index 11ae41e..d616b3f 100644 --- a/esvg/render/Segment.hpp +++ b/esvg/render/Segment.hpp @@ -7,7 +7,7 @@ #include #include -#include +#include namespace esvg { namespace render { @@ -17,7 +17,7 @@ namespace esvg { vec2 p0; vec2 p1; int32_t direction; - void applyMatrix(const mat2& _transformationMatrix); + void applyMatrix(const mat2x3& _transformationMatrix); void createDirection(); }; } diff --git a/esvg/render/SegmentList.cpp b/esvg/render/SegmentList.cpp index 93c3279..67a26f0 100644 --- a/esvg/render/SegmentList.cpp +++ b/esvg/render/SegmentList.cpp @@ -6,7 +6,7 @@ #include #include -#include +#include esvg::render::SegmentList::SegmentList() { @@ -90,11 +90,11 @@ void esvg::render::SegmentList::createSegmentListStroke(const vec2& _point1, vec2 ppp1(_point1); vec2 ppp2(_point2); for (iii=baseAngle; iii getViewPort(); - void applyMatrix(const mat2& _transformationMatrix); + void applyMatrix(const mat2x3& _transformationMatrix); }; } }