00001 #ifndef VERTEX_H
00002 #define VERTEX_H
00003
00004 #include "include/IvVector3.h"
00005
00006 namespace model {
00022 class Vertex {
00023
00024 private:
00025 IvVector3* m_vCoordinates;
00026 IvVector3* m_vNormal;
00027 int m_index;
00028
00029 public:
00035 Vertex() {};
00036
00037 Vertex(IvVector3* vCoordinates);
00038
00039 Vertex(float fX, float fY, float fZ);
00040
00046 ~Vertex() {};
00047
00048 Vertex(const Vertex& other);
00049
00050 Vertex& operator=(const Vertex& other);
00051
00052 IvVector3* getCoordinates();
00053 void setCoordinates(IvVector3* vCoordinates);
00054 void setCoordinates(float fX, float fY, float fZ);
00055 void updateCoordinates(float fX, float fY, float fZ);
00056
00057 IvVector3* getNormal();
00058 void setNormal(IvVector3* vNormal);
00059 void setNormal(float fX, float fY, float fZ);
00060
00061 void setIndex(int index);
00062 int getIndex();
00063
00064 void translate(IvVector3* vTargetPos);
00065 void rotate(float fAngleX, float fAngleY, float fAngleZ);
00066
00067
00068 bool operator==( const Vertex& other ) const;
00069 bool operator!=( const Vertex& other ) const;
00070 };
00071
00077 }
00078
00079 #endif //VERTEX_H