dc376e9d4f4188578501932089a416442258feba
[clinton/Smoothieware.git] / src / libs / Vector3.h
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
12 Vector3 cross(const Vector3);
13
14 float dot(const Vector3);
15
16 float magsq();
17 float mag();
18
19 Vector3 add(const Vector3);
20 Vector3 sub(const Vector3);
21
22 Vector3 mul(float);
23
24 Vector3 unit(void);
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 */