X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fdocument.h;h=eb8710effb95ba29c73c1eab48bdcb7eecfd71a9;hp=3ff607bda0b6350be3aa530d4ebf6c46e619efba;hb=888817a67a9d840be66b52811b01eb77f10ff3e6;hpb=d9c0c3792133f87cd224dc22be428be8ddc016d8 diff --git a/src/document.h b/src/document.h index 3ff607b..eb8710e 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 AddPath(unsigned start_index, unsigned end_index, const Colour & shading=Colour(0.6,0.6,0.6,1), const Colour & stroke=Colour(0,0,0,0)); unsigned AddBezier(const Bezier & bezier); unsigned Add(ObjectType type, const Rect & bounds, unsigned data_index = 0); unsigned AddBezierData(const Bezier & bezier); - + unsigned AddPathData(const Path & path); - - - - /** 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);