/** * @author Edouard DUPIN * * @copyright 2011, Edouard DUPIN, all right reserved * * @license BSD v3 (see license file) */ #ifndef __SVG_BASE_H__ #define __SVG_BASE_H__ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace svg { class Base { protected: PaintState m_paint; agg::trans_affine m_transformMatrix; //!< specific render of the curent element const char * SpacingDist(int32_t _spacing); public: Base(void) {}; Base(PaintState _parentPaintState); virtual ~Base(void) { }; virtual bool Parse(exml::Element * _element, agg::trans_affine& _parentTrans, etk::Vector2D& _sizeMax); //specific drawing for AAG librairy ... virtual void AggDraw(svg::Renderer& _myRenderer, agg::trans_affine& _basicTrans) { }; virtual void Display(int32_t _spacing) { }; void ParseTransform(exml::Element *_element); void ParsePosition(const exml::Element *_element, etk::Vector2D &_pos, etk::Vector2D &_size); float ParseLength(const etk::UString& _dataInput); void ParsePaintAttr(const exml::Element *_element); draw::Color ParseColor(const etk::UString& _inputData); }; }; #endif