… | |
… | |
9 | #include <GL/gl.h> |
9 | #include <GL/gl.h> |
10 | |
10 | |
11 | typedef int soffs; // 32 bit |
11 | typedef int soffs; // 32 bit |
12 | typedef unsigned int uoffs; |
12 | typedef unsigned int uoffs; |
13 | #define OFFS_BITS 31 |
13 | #define OFFS_BITS 31 |
14 | #define SOFFS_MIN (soffs)-(1 << (OFFS_BITS - 1)) |
14 | #define SOFFS_MIN (soffs)-(1 << (OFFS_BITS - 2)) |
15 | #define SOFFS_MAX (soffs)+(1 << (OFFS_BITS - 1)) |
15 | #define SOFFS_MAX (soffs)+(1 << (OFFS_BITS - 2)) |
16 | #define MAXEXTENT ((1UL << OFFS_BITS) - 1) |
16 | #define MAXEXTENT (1UL << (OFFS_BITS - 1)) |
17 | |
17 | |
18 | #define GLFLOAT_MAX 1e30 |
18 | #define GLFLOAT_MAX 1e30 |
19 | #define GLFLOAT_MIN -1e30 |
19 | #define GLFLOAT_MIN -1e30 |
20 | |
20 | |
21 | struct sector { |
21 | struct sector { |
… | |
… | |
46 | r.y = p.y + (dst.y - src.y); |
46 | r.y = p.y + (dst.y - src.y); |
47 | r.z = p.z + (dst.z - src.z); |
47 | r.z = p.z + (dst.z - src.z); |
48 | |
48 | |
49 | return r; |
49 | return r; |
50 | } |
50 | } |
|
|
51 | |
|
|
52 | void renormalize (sector &s, point &p); |
51 | |
53 | |
52 | struct colour { |
54 | struct colour { |
53 | GLfloat r, g, b, a; |
55 | GLfloat r, g, b, a; |
54 | colour (GLfloat r = 1., GLfloat g = 1., GLfloat b = 1., GLfloat a = 1.) : r(r), g(g), b(b), a(a) { }; |
56 | colour (GLfloat r = 1., GLfloat g = 1., GLfloat b = 1., GLfloat a = 1.) : r(r), g(g), b(b), a(a) { }; |
55 | }; |
57 | }; |
… | |
… | |
114 | |
116 | |
115 | box() { }; |
117 | box() { }; |
116 | |
118 | |
117 | void reset () |
119 | void reset () |
118 | { |
120 | { |
119 | a = sector (SOFFS_MIN, SOFFS_MIN, SOFFS_MIN); |
|
|
120 | b = sector (SOFFS_MAX, SOFFS_MAX, SOFFS_MAX); |
121 | a = sector (SOFFS_MAX, SOFFS_MAX, SOFFS_MAX); |
|
|
122 | b = sector (SOFFS_MIN, SOFFS_MIN, SOFFS_MIN); |
121 | } |
123 | } |
122 | |
124 | |
123 | void add (const box &o); |
125 | void add (const box &o); |
124 | void add (const sector &p); |
126 | void add (const sector &p); |
125 | void add (const point &p); |
127 | void add (const point &p); |