Commit | Line | Data |
---|---|---|
b00bb4b5 MM |
1 | #ifndef _VECTOR3_H |
2 | #define _VECTOR3_H | |
3 | ||
4 | class Vector3 | |
5 | { | |
6 | public: | |
7 | Vector3(); | |
8 | Vector3(float, float, float); | |
9 | ||
10 | float& operator[](int); | |
11 | ||
614b5947 | 12 | Vector3 cross(const Vector3); |
b00bb4b5 | 13 | |
614b5947 | 14 | float dot(const Vector3); |
b00bb4b5 MM |
15 | |
16 | float magsq(); | |
17 | float mag(); | |
18 | ||
614b5947 MM |
19 | Vector3 add(const Vector3); |
20 | Vector3 sub(const Vector3); | |
b00bb4b5 | 21 | |
614b5947 | 22 | Vector3 mul(float); |
b00bb4b5 | 23 | |
614b5947 | 24 | Vector3 unit(void); |
b00bb4b5 MM |
25 | |
26 | private: | |
27 | float elem[3]; | |
28 | static float nan; | |
29 | }; | |
30 | ||
31 | // typedef float Vector3[3]; | |
32 | ||
33 | // float* cross_product(Vector3 vec1, Vector3 vec2, Vector3 out); | |
34 | // float dot_product(Vector3 vec1, Vector3 vec2); | |
35 | // float magsq(Vector3 vec); | |
36 | // float* vecsub(Vector3 vec1, Vector3 vec2, Vector3 out) | |
37 | // float* scalar_mul(Vector3 vec, float scalar, Vector3 out) | |
38 | ||
39 | #endif /* _VECTOR3_H */ |