7 #define C_RED Colour(1,0,0,1)
8 #define C_GREEN Colour(0,1,0,1)
9 #define C_BLUE Colour(0,0,1,1)
14 inline Real Random(Real max=1, Real min=0)
16 return min + (max-min) * (Real(rand() % (int)1e6) / Real(1e6));
19 typedef unsigned ObjectID;
21 * NOTE: Extra entry in the enum so we can use this as an array index
28 NUMBER_OF_OBJECT_TYPES
40 Real x; Real y; Real w; Real h;
41 Rect() = default; // Needed so we can fread/fwrite this struct
42 Rect(Real _x, Real _y, Real _w, Real _h) : x(_x), y(_y), w(_w), h(_h) {}
43 std::string Str() const
46 // float conversion needed because it is fucking impossible to get ostreams working with template classes
47 s << "{" << Float(x) << ", " << Float(y) << ", " << Float(w) << ", " << Float(h) << "}";
54 float r; float g; float b; float a;
56 Colour(float _r, float _g, float _b, float _a) : r(_r), g(_g), b(_b), a(_a) {}
61 std::vector<ObjectType> types;
62 std::vector<Rect> bounds;