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

Vec2.cpp

Go to the documentation of this file.
00001 
00007 #include "Vector.h"
00008 
00009 /********************************************************************
00010  * Constructor
00011  */
00012 Vec2::Vec2() {
00013         x = y = 0.0f;
00014 }
00015 
00016 /********************************************************************
00017  * Constructor (float xyz)
00018  */
00019 Vec2::Vec2(const float xy) {
00020         x = y = xy;
00021 }
00022 
00023 /********************************************************************
00024  * Constructor (float x, float y, float z)
00025  */
00026 Vec2::Vec2(const float xx, const float yy) {
00027         x = xx;
00028         y = yy;
00029 }
00030 
00031 /********************************************************************
00032  * Destructor
00033  */
00034 Vec2::~Vec2() {
00035 
00036 }
00037 
00038 /********************************************************************
00039  * Length (Magnitude)
00040  */
00041 float Vec2::length() {
00042         return sqrtf(x*x + y*y);
00043 }
00044 
00045 /********************************************************************
00046  * Normalize
00047  */
00048 Vec2 Vec2::normalize() {
00049         float len = length();
00050         if (len > 0)
00051                 return *this / len;
00052         return *this;
00053 }
00054 
00055 /********************************************************************
00056  * Operator +
00057  */
00058 Vec2 Vec2::operator + (const Vec2 &v) {
00059         return Vec2(x+v.x, y+v.y);
00060 }
00061 
00062 /********************************************************************
00063  * Operator -
00064  */
00065 Vec2 Vec2::operator - (const Vec2 &v) {
00066         return Vec2(x-v.x, y-v.y);
00067 }
00068 
00069 /********************************************************************
00070  * Operator -
00071  */
00072 Vec2 Vec2::operator - () {
00073         return Vec2(-x, -y);
00074 }
00075 
00076 /********************************************************************
00077  * Operator *
00078  */
00079 Vec2 Vec2::operator * (const float s) {
00080         return Vec2(x*s, y*s);
00081 }
00082 
00083 /********************************************************************
00084  * Operator *
00085  */
00086 Vec2 Vec2::operator * (const Vec2 &v) {
00087         return Vec2(x*v.x, y*v.y);
00088 }
00089 
00090 /********************************************************************
00091  * Cross product (operator ^)
00092  */
00101 /********************************************************************
00102  * Operator /
00103  */
00104 Vec2 Vec2::operator / (const float s) {
00105         return Vec2(x/s, y/s);
00106 }
00107 
00108 /********************************************************************
00109  * Operator /
00110  */
00111 Vec2 Vec2::operator / (const Vec2 &v) {
00112         return Vec2(x/v.x, y/v.y);
00113 }
00114 
00115 /********************************************************************
00116  * Operator =
00117  */
00118 void Vec2::operator = (const Vec2 &v) {
00119         x = v.x;
00120         y = v.y;
00121 }
00122 
00123 /********************************************************************
00124  * Operator +=
00125  */
00126 void Vec2::operator += (const Vec2 &v) {
00127         x += v.x;
00128         y += v.y;
00129 }
00130 
00131 /********************************************************************
00132  * Operator -=
00133  */
00134 void Vec2::operator -= (const Vec2 &v) {
00135         x -= v.x;
00136         y -= v.y;
00137 }
00138 
00139 /********************************************************************
00140  * Operator *=
00141  */
00142 void Vec2::operator *= (const float s) {
00143         x *= s;
00144         y *= s;
00145 }
00146 
00147 /********************************************************************
00148  * Operator *=
00149  */
00150 void Vec2::operator *= (const Vec2 &v) {
00151         x *= v.x;
00152         y *= v.y;
00153 }
00154 
00155 /********************************************************************
00156  * Operator /=
00157  */
00158 void Vec2::operator /= (const float s) {
00159         x /= s;
00160         y /= s;
00161 }
00162 
00163 /********************************************************************
00164  * Operator /=
00165  */
00166 void Vec2::operator /= (const Vec2 &v) {
00167         x /= v.x;
00168         y /= v.y;
00169 }
00170 
00171 /********************************************************************
00172  * Operator >
00173  */
00174 bool Vec2::operator > (Vec2 &v) {
00175         return length() > v.length();
00176 }
00177 
00178 /********************************************************************
00179  * Operator ==
00180  */
00181 bool Vec2::operator == (const Vec2 &v) {
00182         return (x == v.x) && (y == v.y);
00183 }
00184 
00185 /********************************************************************
00186  * Operator !=
00187  */
00188 bool Vec2::operator != (const Vec2 &v) {
00189         return (x != v.x) || (y != v.y);
00190 }

Generated on Sun Jun 5 15:47:05 2005 for Defacto by  doxygen 1.4.3