… | |
… | |
19 | |
19 | |
20 | p.x = modff (p.x, &i); s.x += (int)i; |
20 | p.x = modff (p.x, &i); s.x += (int)i; |
21 | p.y = modff (p.y, &i); s.y += (int)i; |
21 | p.y = modff (p.y, &i); s.y += (int)i; |
22 | p.z = modff (p.z, &i); s.z += (int)i; |
22 | p.z = modff (p.z, &i); s.z += (int)i; |
23 | } |
23 | } |
|
|
24 | |
|
|
25 | ///////////////////////////////////////////////////////////////////////////// |
24 | |
26 | |
25 | const vec3 normalize (const vec3 &v) |
27 | const vec3 normalize (const vec3 &v) |
26 | { |
28 | { |
27 | GLfloat s = abs (v); |
29 | GLfloat s = abs (v); |
28 | |
30 | |
… | |
… | |
39 | a.y * b.z - a.z * b.y, |
41 | a.y * b.z - a.z * b.y, |
40 | a.z * b.x - a.x * b.z, |
42 | a.z * b.x - a.x * b.z, |
41 | a.x * b.y - a.y * b.x |
43 | a.x * b.y - a.y * b.x |
42 | ); |
44 | ); |
43 | } |
45 | } |
|
|
46 | |
|
|
47 | ///////////////////////////////////////////////////////////////////////////// |
44 | |
48 | |
45 | void gl_matrix::diagonal (GLfloat v) |
49 | void gl_matrix::diagonal (GLfloat v) |
46 | { |
50 | { |
47 | for (int i = 4; i--; ) |
51 | for (int i = 4; i--; ) |
48 | for (int j = 4; j--; ) |
52 | for (int j = 4; j--; ) |
… | |
… | |
197 | m(3,3) = 1; |
201 | m(3,3) = 1; |
198 | |
202 | |
199 | (*this) = (*this) * m; |
203 | (*this) = (*this) * m; |
200 | } |
204 | } |
201 | |
205 | |
|
|
206 | ///////////////////////////////////////////////////////////////////////////// |
|
|
207 | |
|
|
208 | plane::plane (GLfloat a, GLfloat b, GLfloat c, GLfloat d) |
|
|
209 | : n (vec3 (a,b,c)), d(d) |
|
|
210 | { |
|
|
211 | GLfloat s = 1. / abs (n); |
|
|
212 | |
|
|
213 | n = n * s; |
|
|
214 | d = d * s; |
|
|
215 | } |
|
|
216 | |
|
|
217 | ///////////////////////////////////////////////////////////////////////////// |
|
|
218 | |
202 | void box::add (const box &o) |
219 | void box::add (const box &o) |
203 | { |
220 | { |
204 | a.x = min (a.x, o.a.x); |
221 | a.x = min (a.x, o.a.x); |
205 | a.y = min (a.y, o.a.y); |
222 | a.y = min (a.y, o.a.y); |
206 | a.z = min (a.z, o.a.z); |
223 | a.z = min (a.z, o.a.z); |
… | |
… | |
227 | b.x = max (b.x, (soffs)ceilf (p.x)); |
244 | b.x = max (b.x, (soffs)ceilf (p.x)); |
228 | b.y = max (b.y, (soffs)ceilf (p.y)); |
245 | b.y = max (b.y, (soffs)ceilf (p.y)); |
229 | b.z = max (b.z, (soffs)ceilf (p.z)); |
246 | b.z = max (b.z, (soffs)ceilf (p.z)); |
230 | } |
247 | } |
231 | |
248 | |
|
|
249 | ///////////////////////////////////////////////////////////////////////////// |
|
|
250 | |
232 | struct timer timer; |
251 | struct timer timer; |
233 | static double base; |
252 | static double base; |
234 | double timer::now = 0.; |
253 | double timer::now = 0.; |
235 | double timer::diff; |
254 | double timer::diff; |
236 | |
255 | |