X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fipdf.h;h=20e47c026675ba138574d3097de5c5327c3cd66e;hp=cd6ef6f9ea7a32441701d6962c040e5784136dbf;hb=b716ae547424e4e4bbda86781a151c31e3a64e67;hpb=f59f24dff392428d7219ba2d6be5e1e81c344ee0 diff --git a/src/ipdf.h b/src/ipdf.h index cd6ef6f..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,6 +26,7 @@ namespace IPDF RECT_FILLED, RECT_OUTLINE, BEZIER, + PATH, NUMBER_OF_OBJECT_TYPES } ObjectType; @@ -38,25 +36,8 @@ namespace IPDF CT_OBJTYPES, 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 ObjectData - { - Colour colour; - + CT_OBJBEZIERS, + CT_OBJPATHS }; struct Objects @@ -64,12 +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; + + void Clear() + { + types.clear(); + bounds.clear(); + data_indices.clear(); + beziers.clear(); + paths.clear(); + } }; class View;