LinearGradient.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #include <esvg/Base.hpp>
9 #include <esvg/gradientUnits.hpp>
10 #include <esvg/spreadMethod.hpp>
11 
12 namespace esvg {
13  class Document;
14  class LinearGradient : public esvg::Base {
15  private:
16  esvg::Dimension m_pos1;
17  esvg::Dimension m_pos2;
18  public:
19  enum gradientUnits m_unit;
20  enum spreadMethod m_spread;
21  private:
22  std::string m_href;
23  std::vector<std::pair<float, etk::Color<float,4>>> m_data;
24  public:
25  LinearGradient(PaintState _parentPaintState);
26  ~LinearGradient();
27  virtual bool parseXML(const exml::Element& _element, mat2& _parentTrans, vec2& _sizeMax);
28  virtual void display(int32_t _spacing);
29  virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level);
30  public:
31  const esvg::Dimension& getPosition1();
32  const esvg::Dimension& getPosition2();
33  const std::vector<std::pair<float, etk::Color<float,4>>>& getColors(esvg::Document* _document);
34  };
35 }
36 
Main esvg namespace.
Definition: Base.hpp:24
virtual void draw(esvg::Renderer &_myRenderer, mat2 &_basicTrans, int32_t _level)
Draw the form in the renderer.
Definition: LinearGradient.hpp:14
Definition: Base.hpp:52
virtual bool parseXML(const exml::Element &_element, mat2 &_parentTrans, vec2 &_sizeMax)
parse all the element needed in the basic node
Definition: Renderer.hpp:16
Definition: Base.hpp:36
in the dimention class we store the data as the more usefull unit (pixel) but one case need to be dyn...
Definition: Dimension.hpp:30
Definition: esvg.hpp:19