X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fipdf.h;h=20e47c026675ba138574d3097de5c5327c3cd66e;hb=f73ce73b9cec7f1e2c265b3cbcc7bca9c4011d11;hp=ff31533e5b452297f8f83b27698ca5c9415b8ae2;hpb=53579b1a949fa3e4e193f8dfba2064edbb123f57;p=ipdf%2Fcode.git diff --git a/src/ipdf.h b/src/ipdf.h index ff31533..20e47c0 100644 --- a/src/ipdf.h +++ b/src/ipdf.h @@ -6,17 +6,14 @@ #include "bezier.h" #include "rect.h" -#define C_RED Colour(1,0,0,1) -#define C_GREEN Colour(0,1,0,1) -#define C_BLUE Colour(0,0,1,1) -#define C_BLACK Colour(0,0,0,1); +#include "path.h" namespace IPDF { inline Real Random(Real max=1, Real min=0) { - return min + (max-min) * (Real(rand() % (int)1e6) / Real(1e6)); + return min + (max-min) * (Real(rand() % (int)100) / Real(100)); } typedef unsigned ObjectID; @@ -29,7 +26,7 @@ namespace IPDF RECT_FILLED, RECT_OUTLINE, BEZIER, - GROUP, + PATH, NUMBER_OF_OBJECT_TYPES } ObjectType; @@ -40,23 +37,7 @@ namespace IPDF CT_OBJBOUNDS, CT_OBJINDICES, CT_OBJBEZIERS, - CT_OBJGROUPS - }; - - - - - - struct Colour - { - float r; float g; float b; float a; - Colour() = default; - Colour(float _r, float _g, float _b, float _a) : r(_r), g(_g), b(_b), a(_a) {} - }; - - struct Group - { - Colour shading; + CT_OBJPATHS }; struct Objects @@ -64,14 +45,21 @@ namespace IPDF /** Used by all objects **/ std::vector types; // types of objects std::vector bounds; // rectangle bounds of objects - - /** Used by BEZIER to identify data position in relevant vector **/ + /** Used by BEZIER and GROUP to identify data position in relevant vector **/ std::vector data_indices; - /** Used by BEZIER only **/ std::vector beziers; // bezier curves - look up by data_indices + /** Used by PATH only **/ + std::vector paths; - std::vector > groups; + void Clear() + { + types.clear(); + bounds.clear(); + data_indices.clear(); + beziers.clear(); + paths.clear(); + } }; class View;