Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/Beta/Math/Vector/Vector2D.cpp

Go to the documentation of this file.
00001 #ifndef __J2K__JVector2D_CPP__
00002 #define __J2K__JVector2D_CPP__
00003 
00004 #include <j2k/Fred/Math/Vector/Vector2D.hpp>
00005 
00006 JVector2D::JVector2D()
00007   : X( 0.0 ), Y( 0.0 ) { }
00008 
00009 JVector2D::JVector2D( const JVector2D& v )
00010   : X( v.X ), Y( v.Y ) { }
00011 
00012 JVector2D::JVector2D( const double x, const double y )
00013   : X( x ), Y( y ) { }
00014 
00015 JVector2D& JVector2D::operator=( const JVector2D& v ) {
00016   if ( this != &v ) {
00017     X = v.X;
00018     Y = v.Y;
00019   }
00020   return *this;
00021 }
00022 
00023 JVector2D operator+( const JVector2D& v1, const JVector2D& v2 ) {
00024   return JVector2D( v1.X + v2.X, v1.Y + v2.Y );
00025 }
00026 
00027 void JVector2D::operator+=( const JVector2D& v ) {
00028   X += v.X;
00029   Y += v.Y;
00030 }
00031 
00032 JVector2D operator-( const JVector2D& v1, const JVector2D& v2 ) {
00033   return JVector2D( v1.X - v2.X, v1.Y - v2.Y );
00034 }
00035 
00036 void JVector2D::operator-=( const JVector2D& v ) {
00037   X -= v.X;
00038   Y -= v.Y;
00039 }
00040 
00041 JVector2D operator*( const JVector2D& v1, const JVector2D& v2 ) {
00042   return JVector2D( v1.X * v2.X, v1.Y * v2.Y );
00043 }
00044 
00045 void JVector2D::operator*=( const JVector2D& v ) {
00046   X *= v.X;
00047   Y *= v.Y;
00048 }
00049 
00050 void JVector2D::operator*=( const double Factor ) {
00051   X *= Factor;
00052   Y *= Factor;
00053 }
00054 
00055 JVector2D operator/( const JVector2D& v1, const JVector2D& v2 ) {
00056   return JVector2D( v1.X / v2.X, v1.Y / v2.Y );
00057 }
00058 
00059 void JVector2D::operator/=( const JVector2D& v ) {
00060   X /= v.X;
00061   Y /= v.Y;
00062 }
00063 
00064 JVector2D operator/( const JVector2D& v1, const double Factor ) {
00065   return JVector2D( v1.X / Factor, v1.Y / Factor );
00066 }
00067 
00068 BOOL JVector2D::Compare( const JVector2D& v ) const {
00069   if ( this == &vecToTest )  return TRUE;
00070 
00071   // Compare the values of the objects
00072   if ( v.X != X ) return FALSE;
00073   if ( v.Y != Y ) return FALSE;
00074 
00075   return TRUE;
00076 }
00077 
00078 inline BOOL JVector2D::operator==( const JVector2D& v ) const {
00079   return Compare( v );
00080 }
00081 
00082 inline BOOL JVector2D::operator!=( const JVector2D& v ) const {
00083   return !Compare( v );
00084 }
00085 
00086 inline BOOL JVector2D::bAtOrg() const {
00087   if ( (X == 0.0)  &&  (Y == 0.0) )  return TRUE;
00088   return FALSE;
00089 }
00090 
00091 inline double Dot(const JVector2D& v1, const JVector2D& v2) {
00092   return (v1.X * v2.X) + (v1.Y * v2.Y);
00093 }
00094 
00095 inline double JVector2D::Magnitude() const {
00096   return sqrt( (X * X) + (Y * Y) );
00097 }
00098 
00099 inline void JVector2D::Normalize() {
00100   double Mag = sqrt( (X * X) + (Y * Y) );
00101   X /= Mag;
00102   Y /= Mag;
00103 }
00104 
00105 void JVector2D::ToRadians() {
00106   if (abs(X) > 360.0)
00107   X = mod(X, 360.0);
00108   if (abs(Y) > 360.0)
00109   Y = mod(Y, 360.0);
00110 
00111   X *= MATH_PI / 180.0;
00112   Y *= MATH_PI / 180.0;
00113 }
00114 
00115 JVector2D vecHalfBetween(const JVector2D& v1, const JVector2D& v2) {
00116   return JVector2D( 0.5 * (v1.X + v2.X), 0.5  * (v1.Y + v2.Y) );
00117 }
00118 
00119 inline double JVector2D::X() const {
00120   return X;
00121 }
00122 
00123 inline double JVector2D::X(const double x) {
00124   X = x;
00125   return X;
00126 }
00127 
00128 inline double JVector2D::Y() const {
00129   return Y;
00130 }
00131 
00132 inline double JVector2D::Y(const double y ) {
00133   Y = y;
00134   return Y;
00135 }
00136 
00137 inline void JVector2D::Negate() {
00138   X = -X;
00139   Y = -Y;
00140 }
00141 
00142 inline void JVector2D::Set( const double x, const double y ) {
00143   X = x;
00144   Y = y;
00145 }
00146 
00147 inline void JVector2D::Square() {
00148   X *= X;
00149   Y *= Y;
00150 }
00151 
00152 #endif

Generated on Sun Oct 14 18:46:16 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001