Castor3D 0.16.0
Multiplatform 3D engine
Types publics | Fonctions membres publiques | Fonctions membres publiques statiques | Fonctions membres protégées | Attributs protégés | Attributs protégés statiques | Amis | Liste de tous les membres
Référence du modèle de la classe castor::Matrix< T, Columns, Rows >

Représentation d'une matrice column major, le type des éléments et les dimensions de la matrice sont en template. Plus de détails...

#include <Matrix.hpp>

Graphe d'héritage de castor::Matrix< T, Columns, Rows >:
Inheritance graph
[légende]

Types publics

using value_type = T
 
using col_type = Point< value_type, Rows >
 
using row_type = Point< value_type, Columns >
 
using transpose_type = Matrix< value_type, Rows, Columns >
 
using my_type = Matrix< value_type, Columns, Rows >
 

Fonctions membres publiques

value_typeptr ()
 
value_type const * constPtr () const
 
void initialise ()
 Initialise la matrice à 0.
 
void initialise (value_type const &value)
 Initialise la matrice comme une matrice de Jordan, avec la valeur donnée.
 
transpose_type getTransposed () const
 
void getTransposed (transpose_type &result) const
 Calcule la transposée de cette matrice.
 
value_type getTrace () const
 
void setIdentity ()
 Définit cette matrice à l'identité
 
 Matrix ()
 
 Matrix (NoInit const &)
 
 Matrix (Matrix const &matrix)
 
 Matrix (Matrix &&matrix) noexcept
 
 Matrix (T const &value)
 
 Matrix (T *matrix)
 
template<typename Type >
 Matrix (Type const *matrix)
 
template<typename Type >
 Matrix (Array< Type, Columns *Rows > const &rhs)
 
template<typename Type >
 Matrix (Matrix< Type, Columns, Rows > const &matrix)
 
 Matrix (std::initializer_list< T > rhs)
 
 ~Matrix () noexcept=default
 
template<typename ... Types>
requires isRightSize< Types... >
 Matrix (Types &&... inits)
 
void setRow (uint32_t index, value_type const *row)
 
void setRow (uint32_t index, Point< value_type, Columns > const &row)
 
void setRow (uint32_t index, Coords< value_type, Columns > const &row)
 
Point< value_type, Columns > getRow (uint32_t index) const
 
void getRow (uint32_t index, Point< value_type, Columns > &result) const
 
void setColumn (uint32_t index, value_type const *col)
 
void setColumn (uint32_t index, Point< value_type, Rows > const &col)
 
void setColumn (uint32_t index, Coords< value_type const, Rows > const &col)
 
void setColumn (uint32_t index, Coords< value_type, Rows > const &col)
 
Point< value_type, Rows > const & getColumn (uint32_t index) const
 
Point< value_type, Rows > & getColumn (uint32_t index)
 
void getColumn (uint32_t index, Point< value_type, Rows > &result) const
 
void getColumn (uint32_t index, Coords< value_type, Rows > &result)
 
col_type const & operator[] (uint32_t index) const
 
col_typeoperator[] (uint32_t index)
 
value_typeoperator() (uint32_t col, uint32_t row)
 
value_type const & operator() (uint32_t col, uint32_t row) const
 
Matrix< T, Columns, Rows > & operator= (Matrix< T, Columns, Rows > const &rhs)
 
Matrix< T, Columns, Rows > & operator= (Matrix< T, Columns, Rows > &&rhs) noexcept
 
template<typename Type >
Matrix< T, Columns, Rows > & operator= (Matrix< Type, Columns, Rows > const &rhs)
 
template<typename Type >
Matrix< T, Columns, Rows > & operator= (Type const *rhs)
 
template<typename Type >
Matrix< T, Columns, Rows > & operator+= (Matrix< Type, Columns, Rows > const &rhs)
 
template<typename Type >
Matrix< T, Columns, Rows > & operator-= (Matrix< Type, Columns, Rows > const &rhs)
 
Matrix< T, Columns, Rows > & operator+= (T const &rhs)
 
Matrix< T, Columns, Rows > & operator-= (T const &rhs)
 
Matrix< T, Columns, Rows > & operator*= (T const &rhs)
 
Matrix< T, Columns, Rows > & operator/= (T const &rhs)
 

Fonctions membres publiques statiques

static my_type getIdentity ()
 

Fonctions membres protégées

my_type recGetMinor (uint32_t x, uint32_t y, uint32_t rows, uint32_t cols) const
 

Attributs protégés

union { 
 
   Array< T, Columns *Rows >   m_data 
 
   Array< col_type, Columns >   m_columns 
 
};  
 

Attributs protégés statiques

static const std::size_t count = Rows * Columns
 
static const std::size_t size = sizeof( T ) * Rows * Columns
 
template<typename ... Types>
static bool constexpr isRightSize = sizeof...( Types ) == count
 

Amis

template<typename U , uint32_t C, uint32_t R>
class Matrix
 

Description détaillée

template<typename T, uint32_t Columns, uint32_t Rows>
class castor::Matrix< T, Columns, Rows >

Représentation d'une matrice column major, le type des éléments et les dimensions de la matrice sont en template.

Remarques
Peut contenir n'importe quel élément qui a une castor::Policy.

Documentation des définitions de type membres

◆ col_type

template<typename T , uint32_t Columns, uint32_t Rows>
using castor::Matrix< T, Columns, Rows >::col_type = Point< value_type, Rows >

Le type de colonne.

◆ my_type

template<typename T , uint32_t Columns, uint32_t Rows>
using castor::Matrix< T, Columns, Rows >::my_type = Matrix< value_type, Columns, Rows >

Le type de cette matrice.

◆ row_type

template<typename T , uint32_t Columns, uint32_t Rows>
using castor::Matrix< T, Columns, Rows >::row_type = Point< value_type, Columns >

Le type de ligne.

◆ transpose_type

template<typename T , uint32_t Columns, uint32_t Rows>
using castor::Matrix< T, Columns, Rows >::transpose_type = Matrix< value_type, Rows, Columns >

Le type de matrice transposée.

◆ value_type

template<typename T , uint32_t Columns, uint32_t Rows>
using castor::Matrix< T, Columns, Rows >::value_type = T

Le type de données.

Documentation des constructeurs et destructeur

◆ Matrix() [1/11]

template<typename T , uint32_t Columns, uint32_t Rows>
castor::Matrix< T, Columns, Rows >::Matrix ( )

name Construction / Destruction.

◆ Matrix() [2/11]

template<typename T , uint32_t Columns, uint32_t Rows>
castor::Matrix< T, Columns, Rows >::Matrix ( NoInit const & )
explicit

◆ Matrix() [3/11]

template<typename T , uint32_t Columns, uint32_t Rows>
castor::Matrix< T, Columns, Rows >::Matrix ( Matrix< T, Columns, Rows > const & matrix)

◆ Matrix() [4/11]

template<typename T , uint32_t Columns, uint32_t Rows>
castor::Matrix< T, Columns, Rows >::Matrix ( Matrix< T, Columns, Rows > && matrix)
noexcept

◆ Matrix() [5/11]

template<typename T , uint32_t Columns, uint32_t Rows>
castor::Matrix< T, Columns, Rows >::Matrix ( T const & value)
explicit

◆ Matrix() [6/11]

template<typename T , uint32_t Columns, uint32_t Rows>
castor::Matrix< T, Columns, Rows >::Matrix ( T * matrix)
explicit

◆ Matrix() [7/11]

template<typename T , uint32_t Columns, uint32_t Rows>
template<typename Type >
castor::Matrix< T, Columns, Rows >::Matrix ( Type const * matrix)
explicit

◆ Matrix() [8/11]

template<typename T , uint32_t Columns, uint32_t Rows>
template<typename Type >
castor::Matrix< T, Columns, Rows >::Matrix ( Array< Type, Columns *Rows > const & rhs)
explicit

◆ Matrix() [9/11]

template<typename T , uint32_t Columns, uint32_t Rows>
template<typename Type >
castor::Matrix< T, Columns, Rows >::Matrix ( Matrix< Type, Columns, Rows > const & matrix)
explicit

◆ Matrix() [10/11]

template<typename T , uint32_t Columns, uint32_t Rows>
castor::Matrix< T, Columns, Rows >::Matrix ( std::initializer_list< T > rhs)
explicit

◆ ~Matrix()

template<typename T , uint32_t Columns, uint32_t Rows>
castor::Matrix< T, Columns, Rows >::~Matrix ( )
defaultnoexcept

◆ Matrix() [11/11]

template<typename T , uint32_t Columns, uint32_t Rows>
template<typename ... Types>
requires isRightSize< Types... >
castor::Matrix< T, Columns, Rows >::Matrix ( Types &&... inits)
inlineexplicit

Documentation des fonctions membres

◆ constPtr()

template<typename T , uint32_t Columns, uint32_t Rows>
value_type const * castor::Matrix< T, Columns, Rows >::constPtr ( ) const
Renvoie
Le pointeur sur les données constantes.

◆ getColumn() [1/4]

template<typename T , uint32_t Columns, uint32_t Rows>
Point< value_type, Rows > & castor::Matrix< T, Columns, Rows >::getColumn ( uint32_t index)

◆ getColumn() [2/4]

template<typename T , uint32_t Columns, uint32_t Rows>
Point< value_type, Rows > const & castor::Matrix< T, Columns, Rows >::getColumn ( uint32_t index) const

◆ getColumn() [3/4]

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::getColumn ( uint32_t index,
Coords< value_type, Rows > & result )

◆ getColumn() [4/4]

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::getColumn ( uint32_t index,
Point< value_type, Rows > & result ) const

◆ getIdentity()

template<typename T , uint32_t Columns, uint32_t Rows>
static my_type castor::Matrix< T, Columns, Rows >::getIdentity ( )
static
Renvoie
La matrice identité.

◆ getRow() [1/2]

template<typename T , uint32_t Columns, uint32_t Rows>
Point< value_type, Columns > castor::Matrix< T, Columns, Rows >::getRow ( uint32_t index) const

◆ getRow() [2/2]

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::getRow ( uint32_t index,
Point< value_type, Columns > & result ) const

◆ getTrace()

template<typename T , uint32_t Columns, uint32_t Rows>
value_type castor::Matrix< T, Columns, Rows >::getTrace ( ) const
Renvoie
La trace de cette matrice.

◆ getTransposed() [1/2]

template<typename T , uint32_t Columns, uint32_t Rows>
transpose_type castor::Matrix< T, Columns, Rows >::getTransposed ( ) const
Renvoie
La transposée de cette matrice.

◆ getTransposed() [2/2]

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::getTransposed ( transpose_type & result) const

Calcule la transposée de cette matrice.

Paramètres
[in]resultReçoit la transposée.

◆ initialise() [1/2]

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::initialise ( )

Initialise la matrice à 0.

◆ initialise() [2/2]

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::initialise ( value_type const & value)

Initialise la matrice comme une matrice de Jordan, avec la valeur donnée.

Paramètres
[in]valueLa valeur.

◆ operator()() [1/2]

template<typename T , uint32_t Columns, uint32_t Rows>
value_type & castor::Matrix< T, Columns, Rows >::operator() ( uint32_t col,
uint32_t row )

◆ operator()() [2/2]

template<typename T , uint32_t Columns, uint32_t Rows>
value_type const & castor::Matrix< T, Columns, Rows >::operator() ( uint32_t col,
uint32_t row ) const

◆ operator*=()

template<typename T , uint32_t Columns, uint32_t Rows>
Matrix< T, Columns, Rows > & castor::Matrix< T, Columns, Rows >::operator*= ( T const & rhs)

◆ operator+=() [1/2]

template<typename T , uint32_t Columns, uint32_t Rows>
template<typename Type >
Matrix< T, Columns, Rows > & castor::Matrix< T, Columns, Rows >::operator+= ( Matrix< Type, Columns, Rows > const & rhs)

name Opérateurs arithmétiques.

◆ operator+=() [2/2]

template<typename T , uint32_t Columns, uint32_t Rows>
Matrix< T, Columns, Rows > & castor::Matrix< T, Columns, Rows >::operator+= ( T const & rhs)

◆ operator-=() [1/2]

template<typename T , uint32_t Columns, uint32_t Rows>
template<typename Type >
Matrix< T, Columns, Rows > & castor::Matrix< T, Columns, Rows >::operator-= ( Matrix< Type, Columns, Rows > const & rhs)

◆ operator-=() [2/2]

template<typename T , uint32_t Columns, uint32_t Rows>
Matrix< T, Columns, Rows > & castor::Matrix< T, Columns, Rows >::operator-= ( T const & rhs)

◆ operator/=()

template<typename T , uint32_t Columns, uint32_t Rows>
Matrix< T, Columns, Rows > & castor::Matrix< T, Columns, Rows >::operator/= ( T const & rhs)

◆ operator=() [1/4]

template<typename T , uint32_t Columns, uint32_t Rows>
Matrix< T, Columns, Rows > & castor::Matrix< T, Columns, Rows >::operator= ( Matrix< T, Columns, Rows > && rhs)
noexcept

◆ operator=() [2/4]

template<typename T , uint32_t Columns, uint32_t Rows>
Matrix< T, Columns, Rows > & castor::Matrix< T, Columns, Rows >::operator= ( Matrix< T, Columns, Rows > const & rhs)

name Opérateurs d'affectation.

◆ operator=() [3/4]

template<typename T , uint32_t Columns, uint32_t Rows>
template<typename Type >
Matrix< T, Columns, Rows > & castor::Matrix< T, Columns, Rows >::operator= ( Matrix< Type, Columns, Rows > const & rhs)

◆ operator=() [4/4]

template<typename T , uint32_t Columns, uint32_t Rows>
template<typename Type >
Matrix< T, Columns, Rows > & castor::Matrix< T, Columns, Rows >::operator= ( Type const * rhs)

◆ operator[]() [1/2]

template<typename T , uint32_t Columns, uint32_t Rows>
col_type & castor::Matrix< T, Columns, Rows >::operator[] ( uint32_t index)

◆ operator[]() [2/2]

template<typename T , uint32_t Columns, uint32_t Rows>
col_type const & castor::Matrix< T, Columns, Rows >::operator[] ( uint32_t index) const

name Accesseurs de tableau.

◆ ptr()

template<typename T , uint32_t Columns, uint32_t Rows>
value_type * castor::Matrix< T, Columns, Rows >::ptr ( )
Renvoie
Le pointeur sur les données.

◆ recGetMinor()

template<typename T , uint32_t Columns, uint32_t Rows>
my_type castor::Matrix< T, Columns, Rows >::recGetMinor ( uint32_t x,
uint32_t y,
uint32_t rows,
uint32_t cols ) const
protected

◆ setColumn() [1/4]

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::setColumn ( uint32_t index,
Coords< value_type const, Rows > const & col )

◆ setColumn() [2/4]

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::setColumn ( uint32_t index,
Coords< value_type, Rows > const & col )

◆ setColumn() [3/4]

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::setColumn ( uint32_t index,
Point< value_type, Rows > const & col )

◆ setColumn() [4/4]

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::setColumn ( uint32_t index,
value_type const * col )

◆ setIdentity()

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::setIdentity ( )

Définit cette matrice à l'identité

◆ setRow() [1/3]

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::setRow ( uint32_t index,
Coords< value_type, Columns > const & row )

◆ setRow() [2/3]

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::setRow ( uint32_t index,
Point< value_type, Columns > const & row )

◆ setRow() [3/3]

template<typename T , uint32_t Columns, uint32_t Rows>
void castor::Matrix< T, Columns, Rows >::setRow ( uint32_t index,
value_type const * row )

name Accès aux lignes/colonnes.

Documentation des fonctions amies et associées

◆ Matrix

template<typename T , uint32_t Columns, uint32_t Rows>
template<typename U , uint32_t C, uint32_t R>
friend class Matrix
friend

Documentation des données membres

◆ [union]

union { ... } castor::Matrix< T, Columns, Rows >

◆ count

template<typename T , uint32_t Columns, uint32_t Rows>
const std::size_t castor::Matrix< T, Columns, Rows >::count = Rows * Columns
staticprotected

◆ isRightSize

template<typename T , uint32_t Columns, uint32_t Rows>
template<typename ... Types>
bool constexpr castor::Matrix< T, Columns, Rows >::isRightSize = sizeof...( Types ) == count
staticconstexprprotected

◆ m_columns

template<typename T , uint32_t Columns, uint32_t Rows>
Array< col_type, Columns > castor::Matrix< T, Columns, Rows >::m_columns

◆ m_data

template<typename T , uint32_t Columns, uint32_t Rows>
Array< T, Columns * Rows > castor::Matrix< T, Columns, Rows >::m_data

◆ size

template<typename T , uint32_t Columns, uint32_t Rows>
const std::size_t castor::Matrix< T, Columns, Rows >::size = sizeof( T ) * Rows * Columns
staticprotected

La documentation de cette classe a été générée à partir des fichiers suivants :