YAGE  v0.1.1
Yet Another Game Engine
yage::Matrix< Rows, Cols, Type > Class Template Reference

Base Matrix class used by other similar classes. More...

#include <matrix.h>

Public Member Functions

 Matrix ()
 Initializes the size of the data_ vector. More...
 
 Matrix (const std::vector< Type > &data)
 
int rowSize () const
 Returns the row size of the Matrix. More...
 
int colSize () const
 Returns the column size of the Matrix. More...
 
Matrix< 1, Cols, Type > getRow (int row) const
 Return the row specified row as a Matrix with only one row. More...
 
Matrix< Rows, 1, Type > getCol (int col) const
 Get a specific column in a column vector. More...
 
std::vector< Type >::iterator begin ()
 Iterator support for the start. More...
 
std::vector< Type >::iterator end ()
 Iterator support for the end. More...
 
virtual std::string toString () const
 Prints out the matrix, but can also be implemented by other classes to print data differently. More...
 
detail::Row< Rows, Cols, Type > operator[] (int row)
 
detail::Row< Rows, Cols, Type > operator[] (int row) const
 
Matrix< Rows, Cols, Type > & operator+= (const Matrix< Rows, Cols, Type > &rhs)
 
Matrix< Rows, Cols, Type > & operator-= (const Matrix< Rows, Cols, Type > &rhs)
 

Protected Attributes

std::vector< Type > data_
 Vector containing the data of the matrix. More...
 

Friends

class detail::Row< Rows, Cols, Type >
 

Detailed Description

template<int Rows = 4, int Cols = 4, class Type = double>
class yage::Matrix< Rows, Cols, Type >

Matrix Class

The matrix class is a templated class which implements a mathematical Matrix.

Usage Guide

The class can be instantiated

Example Code

Creating a Matrix and performing operations on it.

#include <YAGE/Math/matrix.hpp>
int main(int, char **)
{
yage::Matrix<2, 2, int> mat1 {{1, 2, 3, 4}};
yage::Matrix<2, 2, int> mat2 {{5, 6, 7, 8}};
int dot = yage::math::dot(mat1, mat2);
return 0;
}

Constructor & Destructor Documentation

◆ Matrix() [1/2]

template<int Rows = 4, int Cols = 4, class Type = double>
yage::Matrix< Rows, Cols, Type >::Matrix ( )
inline

◆ Matrix() [2/2]

template<int Rows = 4, int Cols = 4, class Type = double>
yage::Matrix< Rows, Cols, Type >::Matrix ( const std::vector< Type > &  data)
inline

Member Function Documentation

◆ begin()

template<int Rows = 4, int Cols = 4, class Type = double>
std::vector<Type>::iterator yage::Matrix< Rows, Cols, Type >::begin ( )
inline
Returns
Iterator pointing to the start of the data.

◆ colSize()

template<int Rows = 4, int Cols = 4, class Type = double>
int yage::Matrix< Rows, Cols, Type >::colSize ( ) const
inline

◆ end()

template<int Rows = 4, int Cols = 4, class Type = double>
std::vector<Type>::iterator yage::Matrix< Rows, Cols, Type >::end ( )
inline
Returns
Iterator pointing to the end of the data.

◆ getCol()

template<int Rows = 4, int Cols = 4, class Type = double>
Matrix<Rows, 1, Type> yage::Matrix< Rows, Cols, Type >::getCol ( int  col) const
inline
Parameters
colColumn number to be returned.
Returns
Column Matrix of the selected column.

◆ getRow()

template<int Rows = 4, int Cols = 4, class Type = double>
Matrix<1, Cols, Type> yage::Matrix< Rows, Cols, Type >::getRow ( int  row) const
inline
Parameters
rowRow number to be returned.
Returns
The row that is specified by the row variables.

◆ operator+=()

template<int Rows = 4, int Cols = 4, class Type = double>
Matrix<Rows, Cols, Type>& yage::Matrix< Rows, Cols, Type >::operator+= ( const Matrix< Rows, Cols, Type > &  rhs)
inline

◆ operator-=()

template<int Rows = 4, int Cols = 4, class Type = double>
Matrix<Rows, Cols, Type>& yage::Matrix< Rows, Cols, Type >::operator-= ( const Matrix< Rows, Cols, Type > &  rhs)
inline

◆ operator[]() [1/2]

template<int Rows = 4, int Cols = 4, class Type = double>
detail::Row<Rows, Cols, Type> yage::Matrix< Rows, Cols, Type >::operator[] ( int  row)
inline

◆ operator[]() [2/2]

template<int Rows = 4, int Cols = 4, class Type = double>
detail::Row<Rows, Cols, Type> yage::Matrix< Rows, Cols, Type >::operator[] ( int  row) const
inline

◆ rowSize()

template<int Rows = 4, int Cols = 4, class Type = double>
int yage::Matrix< Rows, Cols, Type >::rowSize ( ) const
inline

◆ toString()

template<int Rows = 4, int Cols = 4, class Type = double>
virtual std::string yage::Matrix< Rows, Cols, Type >::toString ( ) const
inlinevirtual
Bug:
When printing certain matrices, it omits a row or column. Still need to determine under which conditions.

Reimplemented in yage::Vector< Rows, Type >, yage::Vector< 2, double >, and yage::Vector< 2, Type >.

Friends And Related Function Documentation

◆ detail::Row< Rows, Cols, Type >

template<int Rows = 4, int Cols = 4, class Type = double>
friend class detail::Row< Rows, Cols, Type >
friend

Member Data Documentation

◆ data_

template<int Rows = 4, int Cols = 4, class Type = double>
std::vector<Type> yage::Matrix< Rows, Cols, Type >::data_
protected

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