Added G32 to autocalibrate delta endstops
[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
681a62d7 10 float operator[](int) const;
b00bb4b5 11
681a62d7 12 Vector3 cross(const Vector3&) const;
b00bb4b5 13
681a62d7 14 float dot(const Vector3&) const;
b00bb4b5 15
681a62d7
JM
16 float magsq() const;
17 float mag() const;
b00bb4b5 18
681a62d7
JM
19 Vector3 add(const Vector3&) const;
20 Vector3 sub(const Vector3&) const;
b00bb4b5 21
681a62d7
JM
22 Vector3 mul(float) const;
23 Vector3 mul(const Vector3& v) const;
b00bb4b5 24
681a62d7 25 Vector3 unit(void) const;
b00bb4b5
MM
26
27private:
28 float elem[3];
29 static float nan;
30};
31
32// typedef float Vector3[3];
33
34// float* cross_product(Vector3 vec1, Vector3 vec2, Vector3 out);
35// float dot_product(Vector3 vec1, Vector3 vec2);
36// float magsq(Vector3 vec);
37// float* vecsub(Vector3 vec1, Vector3 vec2, Vector3 out)
38// float* scalar_mul(Vector3 vec, float scalar, Vector3 out)
39
40#endif /* _VECTOR3_H */