diff --git a/esvg/Base.cpp b/esvg/Base.cpp index 5d0b32f..4e6b7da 100644 --- a/esvg/Base.cpp +++ b/esvg/Base.cpp @@ -24,7 +24,7 @@ esvg::PaintState::PaintState() : lineCap(esvg::cap_butt), lineJoin(esvg::join_miter), miterLimit(4.0f), - viewPort(255,255), + viewPort(vec2(0.0f,0.0f), vec2(0.0f,0.0f)), opacity(1.0) { } @@ -33,7 +33,8 @@ void esvg::PaintState::clear() { fill = std::pair, std::string>(etk::color::black, ""); stroke = std::pair, std::string>(etk::color::none, ""); strokeWidth = 1.0; - viewPort.setValue(255,255); + viewPort.first.setValue(0.0f,0.0f); + viewPort.first.setValue(0.0f,0.0f); flagEvenOdd = false; lineJoin = esvg::join_miter; lineCap = esvg::cap_butt; @@ -190,7 +191,7 @@ float esvg::Base::parseLength(const std::string& _dataInput) { float font_size = 20.0f; switch (value.second) { case esvg::distance_pourcent: - return value.first / 100.0 * m_paint.viewPort.x(); + return value.first;// / 100.0 * m_paint.viewPort.x(); case esvg::distance_element: return value.first * font_size; case esvg::distance_ex: diff --git a/esvg/Base.h b/esvg/Base.h index 86acc45..425c8cf 100644 --- a/esvg/Base.h +++ b/esvg/Base.h @@ -47,7 +47,7 @@ namespace esvg { enum esvg::cap lineCap; enum esvg::join lineJoin; float miterLimit; - vec2 viewPort; + std::pair viewPort; //!< min pos, max pos float opacity; }; diff --git a/esvg/LinearGradient.cpp b/esvg/LinearGradient.cpp index 645ea9d..d91aec1 100644 --- a/esvg/LinearGradient.cpp +++ b/esvg/LinearGradient.cpp @@ -97,4 +97,17 @@ void esvg::LinearGradient::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, ESVG_VERBOSE(spacingDist(_level) << "DRAW esvg::LinearGradient"); } +const esvg::Dimension& esvg::LinearGradient::getPosition1() { + return m_pos1; +} + +const esvg::Dimension& esvg::LinearGradient::getPosition2() { + return m_pos2; +} + +const std::vector>>& esvg::LinearGradient::getColors() { + return m_data; +} + + diff --git a/esvg/LinearGradient.h b/esvg/LinearGradient.h index a73e6c7..92e5006 100644 --- a/esvg/LinearGradient.h +++ b/esvg/LinearGradient.h @@ -23,6 +23,10 @@ namespace esvg { virtual bool parseXML(const std::shared_ptr& _element, mat2& _parentTrans, vec2& _sizeMax); virtual void display(int32_t _spacing); virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level); + public: + const esvg::Dimension& getPosition1(); + const esvg::Dimension& getPosition2(); + const std::vector>>& getColors(); }; }; diff --git a/esvg/render/DynamicColor.cpp b/esvg/render/DynamicColor.cpp index 0a760ec..cea0766 100644 --- a/esvg/render/DynamicColor.cpp +++ b/esvg/render/DynamicColor.cpp @@ -40,6 +40,12 @@ void esvg::render::DynamicColorLinear::generate(esvg::Document* _document) { } ESVG_INFO("get for color linear:"); gradient->display(2); + + esvg::Dimension pos1 = gradient->getPosition1(); + esvg::Dimension pos2 = gradient->getPosition2(); + std::vector>> data = gradient->getColors(); + // ROTATE and many things ... + } diff --git a/test/testGradientLinear.cpp b/test/testGradientLinear.cpp index 2b4db9f..ea35abe 100644 --- a/test/testGradientLinear.cpp +++ b/test/testGradientLinear.cpp @@ -22,7 +22,7 @@ TEST(TestGradientLinear, horizontal) { " \n" " \n" " \n" - " \n" + " \n" "\n"); esvg::Document doc; doc.parse(data); @@ -40,7 +40,7 @@ TEST(TestGradientLinear, vertical) { " \n" " \n" " \n" - " \n" + " \n" "\n"); esvg::Document doc; doc.parse(data); diff --git a/test/testGradientRadial.cpp b/test/testGradientRadial.cpp index 96c48cb..0896d9d 100644 --- a/test/testGradientRadial.cpp +++ b/test/testGradientRadial.cpp @@ -22,7 +22,7 @@ TEST(TestGradientRadial, full) { " \n" " \n" " \n" - " \n" + " \n" "\n"); esvg::Document doc; doc.parse(data); @@ -40,7 +40,7 @@ TEST(TestGradientRadial, partial) { " \n" " \n" " \n" - " \n" + " \n" "\n"); esvg::Document doc; doc.parse(data);