git.ucc.asn.au
/
ipdf
/
code.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
No more pointer arithmetic in GL/use geom shaders
[ipdf/code.git]
/
src
/
ipdf.h
diff --git
a/src/ipdf.h
b/src/ipdf.h
index
4041bca
..
79d25a8
100644
(file)
--- a/
src/ipdf.h
+++ b/
src/ipdf.h
@@
-2,33
+2,51
@@
#define _IPDF_H
#include "common.h"
#define _IPDF_H
#include "common.h"
+#include "real.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)
namespace IPDF
{
namespace IPDF
{
- typedef float Real;
-
- inline float RealToFloat(Real r) {return r;}
+
inline Real Random(Real max=1, Real min=0)
{
inline Real Random(Real max=1, Real min=0)
{
- return min + (max-min) * (
(Real)(rand() % (int)1e6) / 1e6
);
+ return min + (max-min) * (
Real(rand() % (int)1e6) / Real(1e6)
);
}
typedef unsigned ObjectID;
typedef enum {RECT_FILLED, RECT_OUTLINE} ObjectType;
}
typedef unsigned ObjectID;
typedef enum {RECT_FILLED, RECT_OUTLINE} ObjectType;
+ enum DocChunkTypes
+ {
+ CT_NUMOBJS,
+ CT_OBJTYPES,
+ CT_OBJBOUNDS
+ };
+
struct Rect
{
Real x; Real y; Real w; Real h;
Rect() = default; // Needed so we can fread/fwrite this struct
Rect(Real _x, Real _y, Real _w, Real _h) : x(_x), y(_y), w(_w), h(_h) {}
struct Rect
{
Real x; Real y; Real w; Real h;
Rect() = default; // Needed so we can fread/fwrite this struct
Rect(Real _x, Real _y, Real _w, Real _h) : x(_x), y(_y), w(_w), h(_h) {}
- std::string Str()
+ std::string Str()
const
{
std::stringstream s;
{
std::stringstream s;
- s << "{" << x << ", " << y << ", " << w << ", " << h << "}";
+ // float conversion needed because it is fucking impossible to get ostreams working with template classes
+ s << "{" << Float(x) << ", " << Float(y) << ", " << Float(w) << ", " << Float(h) << "}";
return s.str();
}
};
return s.str();
}
};
+ 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 Objects
{
std::vector<ObjectType> types;
struct Objects
{
std::vector<ObjectType> types;
UCC
git Repository :: git.ucc.asn.au