#pragma once class Vertex { public: Vertex(); Vertex(const float x, const float y, const float z); Vertex(const float x, const float y, const float z, const float w); Vertex(const Vertex& other); // 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); float GetW() const; void SetW(const float w); void Dehomogenize(); // Assignment operator Vertex& operator= (const Vertex& rhs); bool operator== (const Vertex& rhs) const; const Vertex operator+ (const Vertex& rhs) const; private: float _x; float _y; float _z; float _w; void Copy(const Vertex& other); };