Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

vector.hh

Go to the documentation of this file.
00001 #ifndef _vector_hh_
00002 #define _vector_hh_
00003 
00004 #include "point.hh"
00005 #include <iostream>
00006 #include <string>
00007 
00008 namespace anoid {
00009     namespace simple {
00010 
00015         class Vector: public Point {
00016             private:
00017                 void init(const char *s);
00018             public:
00025                 Vector(double getx = 0, double gety = 0, double getz = 0);
00026 
00027                 Vector(std::string &s);
00028                 Vector(char *s);
00029 
00034                 double getNorm() const;
00035 
00040                 void setNorm(double newnorm);
00041 
00046                 void scale(const Vector& v);
00047 
00054                 friend Vector operator+(const Vector& a, const Vector& b);
00055 
00062                 friend Vector operator+=(Vector& a, const Vector& b);
00063 
00069                 Vector operator=(const Vector& a);
00070 
00077                 friend Vector operator-(const Vector& a, const Vector& b);
00078 
00085                 friend Vector operator*(const double c, const Vector& a);
00086 
00093                 friend Vector operator*(const Vector& a, const double c);
00102                 friend Vector operator*(const double *d, const Vector& a);
00111                 friend Vector operator*(const Vector& a, const double *d);
00112 
00119                 friend double operator*(const Vector& a, const Vector& b); // skalarprodukt
00120 
00127                 friend Vector operator%(const Vector& a, const Vector& b); // vektorprodukt
00128 
00135                 friend std::ostream& operator<<(std::ostream& s, const Vector& a);
00136         };
00137 
00139         const Vector O(0,0,0);
00140 
00142         const Vector I(1,1,1);
00143 
00144         const Vector i(1,0,0);
00145         const Vector j(0,1,0);
00146         const Vector k(0,0,1);
00147 
00148     };
00149 };
00150 
00159 double *matMult(double *A, const double* B);
00160 
00169 double *matAdd(double *A, const double* B);
00170 
00177 double *transpose(double *A);
00178 
00179 double *copyMatrix(double *A, double *B);
00180 
00188 double *tilde(double *A, const anoid::simple::Vector v);
00189 
00190 #endif

Anoid NG © Michael Westergaard, Martin Stig Stissing, Ronni Michael Laursen, and Kristian Bisgaard Lassen