/******************************************************************************/ #include"vektorit.h" #define EPSILON 0.00001 class cMatrix { private: cVec R[KOKO]; static cVec luvaton; public: void diagonaali(double a=1.0) { R[0]=cVec(a,0.0,0.0,0.0); R[1]=cVec(0.0,a,0.0,0.0); R[2]=cVec(0.0,0.0,a,0.0); R[3]=cVec(0.0,0.0,0.0,1.0); } cMatrix(double a=1.0) { diagonaali(a); } cVec &operator[](int i); const cVec &operator[](int i) const; cMatrix &operator=(const cMatrix &M); cMatrix operator=(const double i); cMatrix &operator*=(const cMatrix &M); cVec ref(const int i) const; cVec operator*(const cVec &y) const; int tee_muunnos(const int xstep, const double dx, const double dy, double factor); int ei_litussa(void); const cMatrix &vaanto(const double a, int b); const cMatrix &siirto(const double a,const double b,const double c); const cMatrix &kierto(double angle, int axel); const cMatrix &skaalaus(const double a,const double b,const double c); }; cMatrix operator*(const cMatrix &,const cMatrix &); double kulma_radiaaneiksi(double);