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

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