Vector2D Class Reference

#include <Vector2D.h>

List of all members.

Public Member Functions

 Vector2D ()
 Vector2D (double x, double y)
void normalize ()
double distanceSqr (const Vector2D v) const
double cosAngle (const Vector2D &v) const
Vector2Doperator= (const Vector2D &v)
Vector2Doperator+= (const Vector2D &v)
Vector2Doperator-= (const Vector2D &v)
Vector2Doperator*= (const double s)
Vector2Doperator/= (const double s)
Vector2D operator+ (const Vector2D &v) const
Vector2D operator- (const Vector2D &v) const
Vector2D operator* (const double s) const
Vector2D operator/ (const double s) const
bool operator== (const Vector2D &v) const
bool operator!= (const Vector2D &v) const
void netPack (cCommBuffer *b)
void netUnpack (cCommBuffer *b)

Public Attributes

double x
double y

Friends

bool operator< (const Vector2D &a, const Vector2D &b)
std::ostream & operator<< (std::ostream &Stream, const Vector2D &v)


Constructor & Destructor Documentation

Vector2D::Vector2D (  ) 

00027 {
00028     x = 0.0;
00029     y = 0.0;
00030 }

Vector2D::Vector2D ( double  x,
double  y 
)

00033 {
00034     this->x = x;
00035     this->y = y;
00036 }


Member Function Documentation

void Vector2D::normalize (  ) 

Referenced by MovementGenerator::flock(), MovementGenerator::MovementGenerator(), and SimpleGameClient::updateNeighbors().

00039 {
00040     double temp;
00041     temp = sqrt(x * x + y * y);
00042     if(temp != 0.0) {
00043         x /= temp;
00044         y /= temp;
00045     }
00046 }

double Vector2D::distanceSqr ( const Vector2D  v  )  const

Referenced by Vast::distance_square(), MovementGenerator::flock(), ConnectivityProbe::handleMessage(), SimpleGameClient::handleTimerEvent(), randomRoaming::move(), and groupRoaming::move().

00049 {
00050     double dx, dy;
00051     dx = x - v.x;
00052     dy = y - v.y;
00053     return dx * dx + dy * dy;
00054 }

double Vector2D::cosAngle ( const Vector2D v  )  const

Referenced by MovementGenerator::flock().

00057 {
00058     return (x * v.x + y * v.y) / (sqrt(x * x + y * y) * sqrt(v.x * v.x + v.y * v.y));
00059 }

Vector2D & Vector2D::operator= ( const Vector2D v  ) 

00062 {
00063     x = v.x;
00064     y = v.y;
00065     return *this;
00066 }

Vector2D & Vector2D::operator+= ( const Vector2D v  ) 

00069 {
00070     x += v.x;
00071     y += v.y;
00072     return *this;
00073 }

Vector2D & Vector2D::operator-= ( const Vector2D v  ) 

00076 {
00077     x -= v.x;
00078     y -= v.y;
00079     return *this;
00080 }

Vector2D & Vector2D::operator*= ( const double  s  ) 

00083 {
00084     x *= s;
00085     y *= s;
00086     return *this;
00087 }

Vector2D & Vector2D::operator/= ( const double  s  ) 

00090 {
00091     x /= s;
00092     y /= s;
00093     return *this;
00094 }

Vector2D Vector2D::operator+ ( const Vector2D v  )  const

00097 {
00098     Vector2D temp;
00099     temp.x = x + v.x;
00100     temp.y = y + v.y;
00101     return temp;
00102 }

Vector2D Vector2D::operator- ( const Vector2D v  )  const

00105 {
00106     Vector2D temp;
00107     temp.x = x - v.x;
00108     temp.y = y - v.y;
00109     return temp;
00110 }

Vector2D Vector2D::operator* ( const double  s  )  const

00113 {
00114     Vector2D temp;
00115     temp.x = x * s;
00116     temp.y = y * s;
00117     return temp;
00118 }

Vector2D Vector2D::operator/ ( const double  s  )  const

00121 {
00122     Vector2D temp;
00123     temp.x = x / s;
00124     temp.y = y / s;
00125     return temp;
00126 }

bool Vector2D::operator== ( const Vector2D v  )  const

00129 {
00130     if(x == v.x && y == v.y)
00131         return true;
00132     else
00133         return false;
00134 }

bool Vector2D::operator!= ( const Vector2D v  )  const

00137 {
00138     if(x != v.x || y != v.y)
00139         return true;
00140     else
00141         return false;
00142 }

void Vector2D::netPack ( cCommBuffer *  b  ) 

Referenced by doPacking().

00198 {
00199     //cMessage::netPack(b);
00200     doPacking(b, this->x);
00201     doPacking(b, this->y);
00202 }

void Vector2D::netUnpack ( cCommBuffer *  b  ) 

Referenced by doUnpacking().

00205 {
00206     //cMessage::netUnpack(b);
00207     doUnpacking(b, this->x);
00208     doUnpacking(b, this->y);
00209 }


Friends And Related Function Documentation

bool operator< ( const Vector2D a,
const Vector2D b 
) [friend]

00145 {
00146     if(a.y == b.y)
00147         return a.x < b.x;
00148     else
00149         return a.y < b.y;
00150 }

std::ostream& operator<< ( std::ostream &  Stream,
const Vector2D v 
) [friend]

00153 {
00154     return Stream << std::fixed << "[" << v.x << ", " << v.y << "]";
00155 }


Member Data Documentation

double Vector2D::x

double Vector2D::y


The documentation for this class was generated from the following files:

Generated on Fri Sep 19 13:05:08 2008 for ITM OverSim by  doxygen 1.5.5