X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fdocument.h;h=df818f2a69b5eb896c51fe3060b3e2f2042cfbf8;hp=3ff607bda0b6350be3aa530d4ebf6c46e619efba;hb=d83560835237d360f6d12776435e91676c8ab45f;hpb=813591a7d8a7364003233939f52b0031f3a40d20;ds=sidebyside diff --git a/src/document.h b/src/document.h index 3ff607b..df818f2 100644 --- a/src/document.h +++ b/src/document.h @@ -4,6 +4,8 @@ #include "ipdf.h" #include "quadtree.h" +#include + #include "../contrib/pugixml-1.4/src/pugixml.hpp" #include "stb_truetype.h" @@ -50,17 +52,13 @@ namespace IPDF bool operator==(const Document & equ) const; bool operator!=(const Document & equ) const {return !(this->operator==(equ));} - unsigned AddGroup(unsigned start_index, unsigned end_index); + unsigned AddGroup(unsigned start_index, unsigned end_index, const Colour & shading=Colour(0.1,0.1,0.1,1)); unsigned AddBezier(const Bezier & bezier); unsigned Add(ObjectType type, const Rect & bounds, unsigned data_index = 0); unsigned AddBezierData(const Bezier & bezier); - + unsigned AddGroupData(const Group & group); - - - - /** SVG Related functions **/ /** Load an SVG text file and add to the document **/ @@ -70,10 +68,13 @@ namespace IPDF /** 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 **/ - std::pair ParseSVGPathData(const std::string & d, const SVGMatrix & transform); + std::pair ParseSVGPathData(const std::string & d, const SVGMatrix & transform, bool & closed); /** Modify an SVG transformation matrix **/ static void ParseSVGTransform(const std::string & s, SVGMatrix & transform); + + /** Extract CSS values (shudder) from style **/ + static void ParseSVGStyleData(const std::string & style, std::map & results); /** Font related functions **/ void SetFont(const std::string & font_filename);