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

glVector.cpp

Go to the documentation of this file.
00001 #include "glVector.h"
00002 
00003 glVector::glVector()
00004 {
00005     data[0] = data[1] = data[2] = 0;
00006 }
00007 
00008 glVector::glVector(float x, float y, float z)
00009 {
00010     data[0] = x;
00011     data[1] = y;
00012     data[2] = z;
00013 }
00014 
00015 glVector::glVector(float new_data[3])
00016 {
00017     for(int i=0; i<3; i++)
00018         data[i] = new_data[i];
00019 }
00020 
00021 glVector::glVector(glVector v1, glVector v2)
00022 {
00023     this->data[0] = v1.data[0] - v2.data[0];
00024     this->data[1] = v1.data[1] - v2.data[1];
00025     this->data[2] = v1.data[2] - v2.data[2];
00026 }
00027 
00028 glVector glVector::operator%(glVector &v_2)
00029 {
00030     return glVector(data[1] * v_2.data[2] - data[2] * v_2.data[1],
00031                     data[2] * v_2.data[0] - data[0] * v_2.data[2],
00032                     data[0] * v_2.data[1] - data[1] * v_2.data[0]);
00033 }
00034 
00035 glVector glVector::operator-(glVector v2)
00036 {
00037     return glVector(data[0] - v2.data[0], data[1] - v2.data[1], data[2] - v2.data[2]);
00038 }
00039 
00040 glVector glVector::operator+(glVector v2)
00041 {
00042     return glVector(data[0] + v2.data[0], data[1] + v2.data[1], data[2] + v2.data[2]);
00043 }
00044 
00045 glVector glVector::operator+=(glVector v2)
00046 {
00047     return glVector(data[0] += v2.data[0], data[1] += v2.data[1], data[2] += v2.data[2]);
00048 }
00049 
00050 glVector glVector::operator=(glVector v2)
00051 {
00052     data[0] = v2.data[0];
00053     data[1] = v2.data[1];
00054     data[2] = v2.data[2];
00055 }
00056 
00057 glVector glVector::SetVector(glVector new_vec)
00058 {
00059     data[0] = new_vec.data[0];
00060     data[1] = new_vec.data[1];
00061     data[2] = new_vec.data[2];
00062     return *this;
00063 }
00064 
00065 glVector glVector::operator*(float multiplier)
00066 {
00067     return glVector(data[0] * multiplier, data[1] * multiplier, data[2] * multiplier);
00068 }
00069 
00070 glVector glVector::operator/(float multiplier)
00071 {
00072     return glVector(data[0] / multiplier, data[1] / multiplier, data[2] / multiplier);
00073 }
00074 
00075 glVector glVector::operator!()
00076 {
00077     if(length() != 0)
00078         return (*this) * float(1.0 / length());
00079     return glVector(0,0,0);
00080 }
00081 
00082 float glVector::length()
00083 {
00084     return sqrt(data[0] * data[0] + data[1] * data[1] + data[2] * data[2]);
00085 }
00086 
00087 float glVector::operator*(glVector v2)
00088 {
00089     return (data[0] * v2.data[0] + data[1] * v2.data[1] + data[2] * v2.data[2]);
00090 }
00091 
00092 glVector glVector::ProjectOnto(glVector v2)
00093 {
00094     return !(v2) * (((*this)*v2)/v2.length());
00095 }

Generated on Thu Apr 21 18:06:30 2005 for Basic Rendering Engine by  doxygen 1.4.1