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_