#pragma once #include class Vector3D { public: Vector3D(); Vector3D(float x, float y, float z); Vector3D(const Vector3D& other); ~Vector3D(); // Accessors float GetX() const; void SetX(const float x); float GetY() const; void SetY(const float y); float GetZ() const; void SetZ(const float z); const void Normalize(); static float DotProduct(const Vector3D v1, const Vector3D v2); static float Length(const Vector3D v1, const Vector3D v2); static Vector3D CrossProduct(const Vector3D v1, const Vector3D v2); Vector3D& operator= (const Vector3D& rhs); const Vector3D operator+ (const Vector3D& rhs) const; const Vector3D operator/ (const int rhs) const; const Vector3D operator/ (const float rhs) const; private: float _x; float _y; float _z; void Copy(const Vector3D& other); };