libcamera  v0.4.0
Supporting cameras in Linux since 2019
Public Member Functions | Static Public Member Functions | List of all members
libcamera::Matrix< T, Rows, Cols > Class Template Reference

Matrix class. More...

Public Member Functions

 Matrix ()
 Construct a zero matrix.
 
 Matrix (const std::array< T, Rows *Cols > &data)
 Construct a matrix from supplied data. More...
 
const std::string toString () const
 Assemble and return a string describing the matrix. More...
 
Span< const T, Cols > operator[] (size_t i) const
 Index to a row in the matrix. More...
 
Span< T, Cols > operator[] (size_t i)
 Index to a row in the matrix. More...
 
template<typename U >
Matrix< T, Rows, Cols > & operator*= (U d)
 Multiply the matrix by a scalar in-place. More...
 

Static Public Member Functions

static Matrix identity ()
 Construct an identity matrix.
 

Detailed Description

template<typename T, unsigned int Rows, unsigned int Cols>
class libcamera::Matrix< T, Rows, Cols >

Matrix class.

Template Parameters
TType of numerical values to be stored in the matrix
RowsNumber of rows in the matrix
ColsNumber of columns in the matrix

Constructor & Destructor Documentation

◆ Matrix()

template<typename T, unsigned int Rows, unsigned int Cols>
libcamera::Matrix< T, Rows, Cols >::Matrix ( const std::array< T, Rows *Cols > &  data)
inline

Construct a matrix from supplied data.

Parameters
[in]dataData from which to construct a matrix

data is a one-dimensional vector and will be turned into a matrix in row-major order. The size of data must be equal to the product of the number of rows and columns of the matrix (Rows x Cols).

Member Function Documentation

◆ operator*=()

template<typename T, unsigned int Rows, unsigned int Cols>
template<typename U >
Matrix< T, Rows, Cols > & libcamera::Matrix< T, Rows, Cols >::operator*= ( d)
inline

Multiply the matrix by a scalar in-place.

Template Parameters
UType of the numerical scalar value
Parameters
dThe scalar multiplier
Returns
Product of this matrix and scalar d

◆ operator[]() [1/2]

template<typename T, unsigned int Rows, unsigned int Cols>
Span< const T, Cols > libcamera::Matrix< T, Rows, Cols >::operator[] ( size_t  i) const
inline

Index to a row in the matrix.

Parameters
[in]iIndex of row to retrieve

This operator[] returns a Span, which can then be indexed into again with another operator[], allowing a convenient m[i][j] to access elements of the matrix. Note that the lifetime of the Span returned by this first-level operator[] is bound to that of the Matrix itself, so it is not recommended to save the Span that is the result of this operator[].

Returns
Row i from the matrix, as a Span

◆ operator[]() [2/2]

template<typename T, unsigned int Rows, unsigned int Cols>
libcamera::Matrix< T, Rows, Cols >::operator[] ( size_t  i)
inline

Index to a row in the matrix.

Parameters
[in]iIndex of row to retrieve

This operator[] returns a Span, which can then be indexed into again with another operator[], allowing a convenient m[i][j] to access elements of the matrix. Note that the lifetime of the Span returned by this first-level operator[] is bound to that of the Matrix itself, so it is not recommended to save the Span that is the result of this operator[].

Returns
Row i from the matrix, as a Span

◆ toString()

template<typename T, unsigned int Rows, unsigned int Cols>
libcamera::Matrix< T, Rows, Cols >::toString ( ) const
inline

Assemble and return a string describing the matrix.

Returns
A string describing the matrix

The documentation for this class was generated from the following files: