#ifndef VECTOR3D_H_ #define VECTOR3D_H_ #include #include "Matrix.hpp" template class V3D { public: V3D(const Matrix<1, 3> &other); V3D(const Matrix<3, 1> &other); V3D(const V3D &other); V3D(Type x = 0, Type y = 0, Type z = 0); template V3D(const V3D &other); template operator OtherType() const; std::array ToArray() const; V3D operator+(Type other) const; V3D operator+(const V3D &other) const; V3D operator-(Type other) const; V3D operator-(const V3D &other) const; V3D operator*(Type scalar) const; V3D operator/(Type scalar) const; void operator=(const V3D &other); V3D &operator+=(Type other); V3D &operator+=(const V3D &other); V3D &operator-=(Type other); V3D &operator-=(const V3D &other); V3D &operator/=(Type scalar); V3D &operator*=(Type scalar); bool operator==(const V3D &other); float magnitude(); Type x; Type y; Type z; }; #include "Vector3D.cpp" #endif // VECTOR3D_H_