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

matrix.cc

Go to the documentation of this file.
00001 #include "matrix.hh"
00002 
00003 namespace anoid {
00004     namespace simple {
00005 
00006         void Matrix::init(const char* s) {
00007             char *c = strdup(s);
00008             if (sscanf(c, "(%lf,%lf,%lf);(%lf,%lf,%lf);(%lf,%lf,%lf)", 
00009                         &_matrix[0][0], &_matrix[1][0], &_matrix[2][0],
00010                         &_matrix[0][1], &_matrix[1][1], &_matrix[2][1],
00011                         &_matrix[0][2], &_matrix[1][2], &_matrix[2][2]) != 9) {
00012                 zero();
00013             }   
00014             free(c);
00015         }
00016 
00017         void Matrix::zero(void) {
00018             _matrix[0][0] = 0;  _matrix[1][0] = 0;  _matrix[2][0] = 0;  _matrix[3][0] = 0;
00019             _matrix[0][1] = 0;  _matrix[1][1] = 0;  _matrix[2][1] = 0;  _matrix[3][1] = 0;
00020             _matrix[0][2] = 0;  _matrix[1][2] = 0;  _matrix[2][2] = 0;  _matrix[3][2] = 0;
00021             _matrix[0][3] = 0;  _matrix[1][3] = 0;  _matrix[2][3] = 0;  _matrix[3][3] = 1;
00022         }
00023 
00024         void Matrix::identity(void) {
00025             _matrix[0][0] = 1;  _matrix[1][0] = 0;  _matrix[2][0] = 0;  _matrix[3][0] = 0;
00026             _matrix[0][1] = 0;  _matrix[1][1] = 1;  _matrix[2][1] = 0;  _matrix[3][1] = 0;
00027             _matrix[0][2] = 0;  _matrix[1][2] = 0;  _matrix[2][2] = 1;  _matrix[3][2] = 0;
00028             _matrix[0][3] = 0;  _matrix[1][3] = 0;  _matrix[2][3] = 0;  _matrix[3][3] = 1;
00029         }
00030 
00031         Matrix::Matrix() {
00032             zero();
00033         }
00034 
00035         Matrix::Matrix(const Vector &v) {
00036             _matrix[0][0] = 0;      _matrix[1][0] = -v.getZ();  _matrix[2][0] = v.getY();   _matrix[3][0] = 0;
00037             _matrix[0][1] = v.getZ();   _matrix[1][1] = 0;      _matrix[2][1] = -v.getX();  _matrix[3][1] = 0;
00038             _matrix[0][2] = -v.getY();  _matrix[1][2] = v.getX();   _matrix[2][2] = 0;      _matrix[3][2] = 0;
00039             _matrix[0][3] = 0;      _matrix[1][3] = 0;      _matrix[2][3] = 0;      _matrix[3][3] = 1;
00040         }
00041 
00042         Matrix::Matrix(const Vector &a, const Vector &b, const Vector &c) {
00043 
00044         }
00045 
00046         /*  Matrix::Matrix() {
00047             zero();
00048             }
00049 
00050             Matrix::Matrix() {
00051             zero();
00052             }*/
00053 
00054 
00055     };
00056 };

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