ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libgender/util.C
Revision: 1.1
Committed: Sun Oct 3 02:38:33 2004 UTC (19 years, 8 months ago) by root
Content type: text/plain
Branch: MAIN
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 #include <cmath>
2    
3     #include "util.h"
4    
5     const vec3 normalize (const vec3 &v)
6     {
7     GLfloat s = 1. / sqrtf (v.x * v.x + v.y * v.y + v.z * v.z);
8    
9     return vec3 (v.x * s, v.y * s, v.z * s);
10     }
11    
12     const vec3 cross (const vec3 &a, const vec3 &b)
13     {
14     return vec3 (
15     a.y * b.z - a.z * b.y,
16     a.z * b.x - a.x * b.z,
17     a.x * b.y - a.y * b.x
18     );
19     }
20    
21     GLfloat dot (const vec3 &a, const vec3 &b)
22     {
23     return a.x * b.x + a.y * b.y + a.z * b.z;
24     }
25    
26     void box::add (const box &o)
27     {
28     a.x = min (a.x, o.a.x);
29     a.y = min (a.y, o.a.y);
30     a.z = min (a.z, o.a.z);
31     b.x = max (b.x, o.b.x);
32     b.y = max (b.y, o.b.y);
33     b.z = max (b.z, o.b.z);
34     }
35    
36     void box::add (const point &p)
37     {
38     a.x = min (a.x, p.x);
39     a.y = min (a.y, p.y);
40     a.z = min (a.z, p.z);
41     b.x = max (b.x, p.x);
42     b.y = max (b.y, p.y);
43     b.z = max (b.z, p.z);
44     }
45