www.pudn.com > ZFXMath-latest.zip > MatrixMxN.h


/// \file 
/// 
/// @brief TMatrixMxN 
/// 
/// TMatrixMxN : M:N Dimensions TMatrixMxN Structure 
// /////////////////////////////////////////////////////////////////////////// 
// Autor:         Patrick Ullmann 
// Erstellt:      05.04.04 
// Änderungen:    05.04.04 (Patrick)  Datei erstellt 
// /////////////////////////////////////////////////////////////////////////// 
// Beschreibung:  Struktur für eine Matrix mit frei belegbaren Spalten  
//                und Zeilenanzahl (Inline-File) 
 
#ifndef _ZFXMATH_INCLUDE_MATRIXMXN_H_ 
#define _ZFXMATH_INCLUDE_MATRIXMXN_H_ 
 
// I N C L U D E S /////////////////////////////////////////////////////////// 
// Noch keine 
 
// S T R U K T U R E N /////////////////////////////////////////////////////// 
namespace ZFXMath 
{ 
	// M = Zeilen 
	// N = Spalten 
	template  class TMatrixMxN 
	{ 
	public: 
		// Konstruktoren 
		TMatrixMxN    (void); 
		TMatrixMxN    (const T& value); 
		TMatrixMxN    (TMatrixMxN const &other); 
		TMatrixMxN    (const T (&value)[M*N]); 
 
		// Destruktor 
		~TMatrixMxN   (void); 
 
		// Funktionen 
		void                zero         (void); 
		void                identity     (void); 
		TMatrixMxN transpose    (void) const; 
		void                negate       (void); 
 
		// Zuweisungsoperatoren 
		TMatrixMxN const& operator=    (TMatrixMxN const &other); 
		TMatrixMxN const& operator=    (const T& value); 
		TMatrixMxN const& operator=    (const T (&value)[M*N]); 
 
		// Vergleichsoperatoren 
		bool                       operator==   (TMatrixMxN const &other); 
		bool                       operator==   (const T& value); 
		bool                       operator==   (const T (&value)[M*N]); 
 
		bool                       operator!=   (TMatrixMxN const &other); 
		bool                       operator!=   (const T& value); 
		bool                       operator!=   (const T (&value)[M*N]); 
 
		// Additionsoperatoren 
		TMatrixMxN        operator+    (TMatrixMxN const &other) const; 
		TMatrixMxN        operator+    (const T& value) const; 
		TMatrixMxN        operator+    (const T (&value)[M*N]) const; 
 
		TMatrixMxN const& operator+=   (TMatrixMxN const &other); 
		TMatrixMxN const& operator+=   (const T& value); 
		TMatrixMxN const& operator+=   (const T (&value)[M*N]); 
 
		// Subtraktionsoperatoren 
		TMatrixMxN        operator-    (void) const; 
		TMatrixMxN        operator-    (TMatrixMxN const &other) const; 
		TMatrixMxN        operator-    (const T& value) const; 
		TMatrixMxN        operator-    (const T (&value)[M*N]) const; 
 
		TMatrixMxN const& operator-=   (TMatrixMxN const &other); 
		TMatrixMxN const& operator-=   (const T& value); 
		TMatrixMxN const& operator-=   (const T (&value)[M*N]); 
 
		// Multiplikationsoperatoren 
		TMatrixMxN        operator*    (TMatrixMxN const &other) const; 
		TMatrixMxN        operator*    (const T& value) const; 
		TMatrixMxN        operator*    (const T (&value)[M*N]) const; 
 
		TMatrixMxN const& operator*=   (TMatrixMxN const &other); 
		TMatrixMxN const& operator*=   (const T& value); 
		TMatrixMxN const& operator*=   (const T (&value)[M*N]); 
 
		// Divisionsoperatoren 
		/*      TMatrixMxN        operator/    (void) const; 
		TMatrixMxN        operator/    (TMatrixMxN const &other) const; 
		TMatrixMxN        operator/    (const T& value) const; 
		TMatrixMxN        operator/    (const T (&value)[M*N]) const; 
 
		TMatrixMxN const& operator/=   (TMatrixMxN const &other); 
		TMatrixMxN const& operator/=   (const T& value); 
		TMatrixMxN const& operator/=   (const T (&value)[M*N]); 
		*/ 
	public: 
		T    matrix[N][M]; 
	}; 
} // namespace ZFXMath 
 
 
#include "MatrixMxN.inl" 
 
#endif // _ZFXMATH_INCLUDE_MATRIXMXN_H_