QGenericMatrix Class

template <int N, int M, typename T> class QGenericMatrix

The QGenericMatrix class is a template class that represents a NxM transformation matrix with N columns and M rows. More...

Header: #include <QGenericMatrix>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

Public Functions

QGenericMatrix(const T *values)
QGenericMatrix()
const T *constData() const
void copyDataTo(T *values) const
T *data()
const T *data() const
void fill(T value)
bool isIdentity() const
void setToIdentity()
QGenericMatrix<M, N, T> transposed() const
bool operator!=(const QGenericMatrix<N, M, T> &other = N) const
const T &operator()(int row, int column) const
T &operator()(int row, int column)
QGenericMatrix<N, M, T> &operator*=(T factor)
QGenericMatrix<N, M, T> &operator+=(const QGenericMatrix<N, M, T> &other = N)
QGenericMatrix<N, M, T> &operator-=(const QGenericMatrix<N, M, T> &other = N)
QGenericMatrix<N, M, T> &operator/=(T divisor)
bool operator==(const QGenericMatrix<N, M, T> &other = N) const
QMatrix2x2
QMatrix2x3
QMatrix2x4
QMatrix3x2
QMatrix3x3
QMatrix3x4
QMatrix4x2
QMatrix4x3
QGenericMatrix<M1, M2, TT> operator*(const QGenericMatrix<NN, M2, TT> &m1 = NN, const QGenericMatrix<M1, NN, TT> &m2 = M1)
QGenericMatrix<N, M, T> operator*(T factor, const QGenericMatrix<N, M, T> &matrix = N)
QGenericMatrix<N, M, T> operator*(const QGenericMatrix<N, M, T> &matrix = N, T factor)
QGenericMatrix<N, M, T> operator+(const QGenericMatrix<N, M, T> &m1 = N, const QGenericMatrix<N, M, T> &m2 = N)
QGenericMatrix<N, M, T> operator-(const QGenericMatrix<N, M, T> &m1 = N, const QGenericMatrix<N, M, T> &m2 = N)
QGenericMatrix<N, M, T> operator-(const QGenericMatrix<N, M, T> &matrix = N)
QGenericMatrix<N, M, T> operator/(const QGenericMatrix<N, M, T> &matrix = N, T divisor)
QDataStream &operator<<(QDataStream &stream, const QGenericMatrix<N, M, T> &matrix = N)
QDataStream &operator>>(QDataStream &stream, QGenericMatrix<N, M, T> &matrix = N)

Detailed Description

The QGenericMatrix template has three parameters:

NNumber of columns.
MNumber of rows.
TElement type that is visible to users of the class.

See also QMatrix4x4.

Member Function Documentation

QGenericMatrix::QGenericMatrix(const T *values)

Constructs a matrix from the given N * M floating-point values. The contents of the array values is assumed to be in row-major order.

See also copyDataTo().

QGenericMatrix::QGenericMatrix()

Constructs a NxM identity matrix.

const T *QGenericMatrix::constData() const

Returns a constant pointer to the raw data of this matrix.

See also data().

void QGenericMatrix::copyDataTo(T *values) const

Retrieves the N * M items in this matrix and copies them to values in row-major order.

T *QGenericMatrix::data()

Returns a pointer to the raw data of this matrix.

See also constData().

const T *QGenericMatrix::data() const

Returns a constant pointer to the raw data of this matrix.

See also constData().

void QGenericMatrix::fill(T value)

Fills all elements of this matrix with value.

bool QGenericMatrix::isIdentity() const

Returns true if this matrix is the identity; false otherwise.

See also setToIdentity().

void QGenericMatrix::setToIdentity()

Sets this matrix to the identity.

See also isIdentity().

QGenericMatrix<M, N, T> QGenericMatrix::transposed() const

Returns this matrix, transposed about its diagonal.

bool QGenericMatrix::operator!=(const QGenericMatrix<N, M, T> &other = N) const

Returns true if this matrix is not identical to other; false otherwise.

const T &QGenericMatrix::operator()(int row, int column) const

Returns a constant reference to the element at position (row, column) in this matrix.

T &QGenericMatrix::operator()(int row, int column)

Returns a reference to the element at position (row, column) in this matrix so that the element can be assigned to.

QGenericMatrix<N, M, T> &QGenericMatrix::operator*=(T factor)

Multiplies all elements of this matrix by factor.

QGenericMatrix<N, M, T> &QGenericMatrix::operator+=(const QGenericMatrix<N, M, T> &other = N)

Adds the contents of other to this matrix.

QGenericMatrix<N, M, T> &QGenericMatrix::operator-=(const QGenericMatrix<N, M, T> &other = N)

Subtracts the contents of other from this matrix.

QGenericMatrix<N, M, T> &QGenericMatrix::operator/=(T divisor)

Divides all elements of this matrix by divisor.

bool QGenericMatrix::operator==(const QGenericMatrix<N, M, T> &other = N) const

Returns true if this matrix is identical to other; false otherwise.

Related Non-Members

QMatrix2x2

The QMatrix2x2 type defines a convenient instantiation of the QGenericMatrix template for 2 columns, 2 rows, and float as the element type.

QMatrix2x3

The QMatrix2x3 type defines a convenient instantiation of the QGenericMatrix template for 2 columns, 3 rows, and float as the element type.

QMatrix2x4

The QMatrix2x4 type defines a convenient instantiation of the QGenericMatrix template for 2 columns, 4 rows, and float as the element type.

QMatrix3x2

The QMatrix3x2 type defines a convenient instantiation of the QGenericMatrix template for 3 columns, 2 rows, and float as the element type.

QMatrix3x3

The QMatrix3x3 type defines a convenient instantiation of the QGenericMatrix template for 3 columns, 3 rows, and float as the element type.

QMatrix3x4

The QMatrix3x4 type defines a convenient instantiation of the QGenericMatrix template for 3 columns, 4 rows, and float as the element type.

QMatrix4x2

The QMatrix4x2 type defines a convenient instantiation of the QGenericMatrix template for 4 columns, 2 rows, and float as the element type.

QMatrix4x3

The QMatrix4x3 type defines a convenient instantiation of the QGenericMatrix template for 4 columns, 3 rows, and float as the element type.

template <int NN, int M1, int M2, typename TT> QGenericMatrix<M1, M2, TT> operator*(const QGenericMatrix<NN, M2, TT> &m1 = NN, const QGenericMatrix<M1, NN, TT> &m2 = M1)

Returns the product of the NNxM2 matrix m1 and the M1xNN matrix m2 to produce a M1xM2 matrix result.

template <int N, int M, typename T> QGenericMatrix<N, M, T> operator*(T factor, const QGenericMatrix<N, M, T> &matrix = N)

Returns the result of multiplying all elements of matrix by factor.

template <int N, int M, typename T> QGenericMatrix<N, M, T> operator*(const QGenericMatrix<N, M, T> &matrix = N, T factor)

Returns the result of multiplying all elements of matrix by factor.

template <int N, int M, typename T> QGenericMatrix<N, M, T> operator+(const QGenericMatrix<N, M, T> &m1 = N, const QGenericMatrix<N, M, T> &m2 = N)

Returns the sum of m1 and m2.

template <int N, int M, typename T> QGenericMatrix<N, M, T> operator-(const QGenericMatrix<N, M, T> &m1 = N, const QGenericMatrix<N, M, T> &m2 = N)

Returns the difference of m1 and m2.

template <int N, int M, typename T> QGenericMatrix<N, M, T> operator-(const QGenericMatrix<N, M, T> &matrix = N)

This is an overloaded function.

Returns the negation of matrix.

template <int N, int M, typename T> QGenericMatrix<N, M, T> operator/(const QGenericMatrix<N, M, T> &matrix = N, T divisor)

Returns the result of dividing all elements of matrix by divisor.

template <int N, int M, typename T> QDataStream &operator<<(QDataStream &stream, const QGenericMatrix<N, M, T> &matrix = N)

Writes the given matrix to the given stream and returns a reference to the stream.

See also Serializing Qt Data Types.

template <int N, int M, typename T> QDataStream &operator>>(QDataStream &stream, QGenericMatrix<N, M, T> &matrix = N)

Reads a NxM matrix from the given stream into the given matrix and returns a reference to the stream.

See also Serializing Qt Data Types.