From 99778e9b85bd4a16a9055587a273446068577100 Mon Sep 17 00:00:00 2001 From: Ian C Date: Tue, 2 May 2006 19:12:46 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r2, which included commits to RCS files with non-trunk default branches. --- matrix.h | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 matrix.h (limited to 'matrix.h') diff --git a/matrix.h b/matrix.h new file mode 100644 index 0000000..d1f5db2 --- /dev/null +++ b/matrix.h @@ -0,0 +1,81 @@ +// +// glgrav - OpenGL N-Body gravity simulator +// +// Copyright (C) 2003 Ian Cowburn (ianc@noddybox.demon.co.uk) +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// ------------------------------------------------------------------------- +// +// Matrix/vector handling +// +// $Id$ +// +#ifndef MATRIX_H + +#define MATRIX_H + +#include "global.h" + +template class Matrix + { + public: + Matrix() + { + int a,b; + + for(a=0;a<3;a++) + for(b=0;b<3;b++) + mat[a][b]=0; + } + + ~Matrix() + { + } + + void identity() + { + int a,b; + + for(a=0;a<3;a++) + for(b=0;b<3;b++) + mat[a][b]=(a==b) ? 1:0; + } + + void set(Ty x, Ty y, Ty z) + { + identity(); + mat[0][0]=x; + mat[1][1]=y; + mat[2][2]=z; + mat[3][3]=1; + } + + void get(Ty& x, Ty& y, Ty& z) + { + x=mat[0][0]; + y=mat[1][1]; + z=mat[2][2]; + } + + Matrix& operator*(Matrix& m); + + private: + Ty mat[4][4]; + }; + +#endif + +// END OF FILE // -- cgit v1.2.3