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.

© 2021 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.