X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fdocument.h;h=3ff607bda0b6350be3aa530d4ebf6c46e619efba;hb=4119777e3dd950ac5f25ba5925e308882036adf3;hp=76e3b7f68be899a222eac4ffd9bce9ff8a77f171;hpb=f8aaf1972bd67344c23d5bbd2552daf6065f448d;p=ipdf%2Fcode.git diff --git a/src/document.h b/src/document.h index 76e3b7f..3ff607b 100644 --- a/src/document.h +++ b/src/document.h @@ -27,7 +27,7 @@ namespace IPDF class Document { public: - Document(const std::string & filename = "", const std::string & font_filename = "DejaVuSansMono.ttf") : m_objects(), m_count(0), m_font_data(NULL), m_font() + Document(const std::string & filename = "", const std::string & font_filename = "fonts/DejaVuSansMono.ttf") : m_objects(), m_count(0), m_font_data(NULL), m_font() { Load(filename); if (font_filename != "") @@ -50,7 +50,9 @@ namespace IPDF bool operator==(const Document & equ) const; bool operator!=(const Document & equ) const {return !(this->operator==(equ));} - void Add(ObjectType type, const Rect & bounds, unsigned data_index = 0); + unsigned AddGroup(unsigned start_index, unsigned end_index); + unsigned AddBezier(const Bezier & bezier); + unsigned Add(ObjectType type, const Rect & bounds, unsigned data_index = 0); unsigned AddBezierData(const Bezier & bezier); @@ -63,11 +65,12 @@ namespace IPDF /** Load an SVG text file and add to the document **/ void LoadSVG(const std::string & filename, const Rect & bounds = Rect(0,0,1,1)); + void ParseSVG(const std::string & svg, const Rect & bounds = Rect(0,0,1,1)); /** Parse an SVG node or SVG-group node, adding children to the document **/ void ParseSVGNode(pugi::xml_node & root, SVGMatrix & transform); /** Parse an SVG path with string **/ - void ParseSVGPathData(const std::string & d, const SVGMatrix & transform); + std::pair ParseSVGPathData(const std::string & d, const SVGMatrix & transform); /** Modify an SVG transformation matrix **/ static void ParseSVGTransform(const std::string & s, SVGMatrix & transform);