Tester to compare custom Real to IEEE float
[ipdf/code.git] / src / ipdf.h
1 #ifndef _IPDF_H
2 #define _IPDF_H
3
4 #include "common.h"
5 #include "real.h"
6
7 namespace IPDF
8 {
9
10         inline Real Random(Real max=1, Real min=0)
11         {
12                 return min + (max-min) * ((Real)(rand() % (int)1e6) / 1e6);
13         }
14
15         typedef unsigned ObjectID;
16         typedef enum {RECT_FILLED, RECT_OUTLINE} ObjectType;
17
18         enum DocChunkTypes
19         {
20                 CT_OBJTYPES,
21                 CT_OBJBOUNDS
22         };
23
24         struct Rect
25         {
26                 Real x; Real y; Real w; Real h;
27                 Rect() = default; // Needed so we can fread/fwrite this struct
28                 Rect(Real _x, Real _y, Real _w, Real _h) : x(_x), y(_y), w(_w), h(_h) {}
29                 std::string Str() 
30                 {
31                         std::stringstream s;
32                         s << "{" << x << ", " << y << ", " << w << ", " << h << "}";
33                         return s.str();
34                 }
35         };
36
37         struct Objects
38         {
39                 std::vector<ObjectType> types;          
40                 std::vector<Rect> bounds;
41         };
42
43         class View;
44 }
45
46
47 #endif //_IPDF_H

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