Totally FITH everything
[ipdf/code.git] / src / ipdf.h
index ff31533..20e47c0 100644 (file)
@@ -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<ObjectType> types; // types of objects
                std::vector<Rect> 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<unsigned> data_indices;
-
                /** Used by BEZIER only **/
                std::vector<Bezier> beziers; // bezier curves - look up by data_indices
+               /** Used by PATH only **/
+               std::vector<Path> paths;
                
-               std::vector<std::pair<unsigned, unsigned> > groups;
+               void Clear()
+               {
+                       types.clear();
+                       bounds.clear();
+                       data_indices.clear();
+                       beziers.clear();
+                       paths.clear();
+               }
        };
 
        class View;

UCC git Repository :: git.ucc.asn.au