Merge remote-tracking branch 'upstream/edge' into add/universal-panel-adapter
[clinton/Smoothieware.git] / src / libs / Vector3.h
CommitLineData
b00bb4b5
MM
1#ifndef _VECTOR3_H
2#define _VECTOR3_H
3
4class Vector3
5{
6public:
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
26private:
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 */