/** ******************************************************************************* * @file parserSVG/Base.h * @brief basic Element parsing (Header) * @author Edouard DUPIN * @date 20/03/2012 * @par Project * parserSVG * * @par Copyright * Copyright 2011 Edouard DUPIN, all right reserved * * This software is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY. * * Licence summary : * You can modify and redistribute the sources code and binaries. * You can send me the bug-fix * * Term of the licence in in the file licence.txt. * ******************************************************************************* */ #ifndef __SVG_BASE_H__ #define __SVG_BASE_H__ #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(TiXmlNode * node, 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(TiXmlNode *node); void ParsePosition(const TiXmlNode *node, etk::Vector2D &pos, etk::Vector2D &size); float ParseLength(const char *dataInput); void ParsePaintAttr(const TiXmlNode *node); draw::Color ParseColor(const char *inputData); }; }; #endif