Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

Vertex.cpp

Go to the documentation of this file.
00001 #include "include/IvMatrix33.h"
00002 #include "include/IvMath.h"
00003 #include "Vertex.h"
00004 
00005 using namespace model;
00006 
00016 Vertex::Vertex(IvVector3* vCoordinates) {
00017         setCoordinates(vCoordinates);
00018         m_index = 0;
00019 }
00020 
00036 Vertex::Vertex(float fX, float fY, float fZ) {
00037         setCoordinates(fX,fY,fZ);
00038         m_index = 0;
00039 }
00040 
00050 Vertex::Vertex(const Vertex& other) : 
00051 m_vCoordinates( other.m_vCoordinates ),
00052 m_vNormal( other.m_vNormal )
00053 {
00054         m_index = 0;
00055 }
00056 
00066 Vertex& Vertex::operator=(const Vertex& other)
00067 {
00068         // if same object
00069         if ( this == &other )
00070                 return *this;
00071 
00072         m_vCoordinates = other.m_vCoordinates;
00073         m_vNormal = other.m_vNormal;
00074 
00075         return *this;
00076 }  
00077 
00092 void Vertex::setCoordinates(float fX, float fY, float fZ) {
00093         m_vCoordinates = new IvVector3(fX,fY,fZ);
00094 }
00095 
00104 void Vertex::setCoordinates(IvVector3* vCoordinates) {
00105         m_vCoordinates = vCoordinates;
00106 }
00107 
00122 void Vertex::updateCoordinates(float fX, float fY, float fZ) {
00123         m_vCoordinates->x = fX;
00124         m_vCoordinates->y = fY;
00125         m_vCoordinates->z = fZ;
00126 }
00127 
00136 IvVector3* Vertex::getCoordinates() {
00137         return m_vCoordinates;
00138 }
00139 
00148 IvVector3* Vertex::getNormal() {
00149         return m_vNormal;
00150 }
00151 
00160 void Vertex::setNormal(IvVector3* vNormal) {
00161         m_vNormal = vNormal;
00162 }
00163 
00178 void Vertex::setNormal(float fX, float fY, float fZ) {
00179         m_vNormal = new IvVector3(fX,fY,fZ);
00180 }
00181 
00190 void Vertex::translate(IvVector3* vTargetpos) {
00191         m_vCoordinates=&(*m_vCoordinates + *vTargetpos);
00192 }
00193 
00208 void Vertex::rotate(float fAngleX, float fAngleY, float fAngleZ) {
00209         IvMatrix33 euler = IvMatrix33();
00210         euler.Rotation(fAngleZ, fAngleY, fAngleX);
00211         m_vNormal = &(*m_vNormal * euler);
00212 }
00213 
00225 bool Vertex::operator==( const Vertex& other ) const
00226 {
00227         if(other.m_vCoordinates == m_vCoordinates && other.m_vNormal == m_vNormal) {
00228                 return true;
00229         }
00230         return false;  
00231 }   
00232 
00244 bool Vertex::operator!=( const Vertex& other ) const
00245 {
00246         if(other.m_vCoordinates == m_vCoordinates && other.m_vNormal == m_vNormal) {
00247                 return false;
00248         }
00249         return true;
00250 }  
00251 
00260 void Vertex::setIndex(int index) {
00261         m_index = index;
00262 }
00263 
00272 int Vertex::getIndex() {
00273         return m_index;
00274 }

Generated on Tue Apr 17 09:39:12 2007 for PCG Library by  doxygen 1.3.9.1