#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;
RECT_FILLED,
RECT_OUTLINE,
BEZIER,
- GROUP,
+ PATH,
NUMBER_OF_OBJECT_TYPES
} ObjectType;
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
/** 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
-
- std::vector<std::pair<unsigned, unsigned> > groups;
+ /** Used by PATH only **/
+ std::vector<Path> paths;
};
class View;