Blender V4.3
blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment > Struct Template Reference

#include <BLI_math_matrix_types.hh>

Inherits blender::MatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >.

Public Types

using MatT = MatBase<T, NumCol, NumRow>
 
using MatViewT
 
using SrcMatT = MatBase<T, SrcNumCol, SrcNumRow, SrcAlignment>
 
using col_type = VecBase<T, NumRow>
 
using row_type = VecBase<T, NumCol>
 
- Public Types inherited from blender::MatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >
using MatT = MatBase<T, NumCol, NumRow>
 
using SrcMatT = MatBase<T, SrcNumCol, SrcNumRow, SrcAlignment>
 
using col_type = VecBase<T, NumRow>
 
using row_type = VecBase<T, NumCol>
 

Public Member Functions

 MutableMatView ()=delete
 
 MutableMatView (SrcMatT &src)
 
 MutableMatView (float src[SrcNumCol][SrcNumRow])
 
col_typeoperator[] (int index)
 
 operator MatViewT () const
 
template<int OtherSrcNumCol, int OtherSrcNumRow, int OtherSrcStartCol, int OtherSrcStartRow, int OtherSrcAlignment>
MutableMatViewoperator= (const MatView< T, NumCol, NumRow, OtherSrcNumCol, OtherSrcNumRow, OtherSrcStartCol, OtherSrcStartRow, OtherSrcAlignment > &other)
 
MutableMatViewoperator= (const MatT &other)
 
template<int OtherSrcNumCol, int OtherSrcNumRow, int OtherSrcStartCol, int OtherSrcStartRow, int OtherSrcAlignment>
MutableMatViewoperator+= (const MatView< T, NumCol, NumRow, OtherSrcNumCol, OtherSrcNumRow, OtherSrcStartCol, OtherSrcStartRow, OtherSrcAlignment > &b)
 
MutableMatViewoperator+= (const MatT &b)
 
MutableMatViewoperator+= (T b)
 
template<int OtherSrcNumCol, int OtherSrcNumRow, int OtherSrcStartCol, int OtherSrcStartRow, int OtherSrcAlignment>
MutableMatViewoperator-= (const MatView< T, NumCol, NumRow, OtherSrcNumCol, OtherSrcNumRow, OtherSrcStartCol, OtherSrcStartRow, OtherSrcAlignment > &b)
 
MutableMatViewoperator-= (const MatT &b)
 
MutableMatViewoperator-= (T b)
 
template<int OtherSrcNumCol, int OtherSrcNumRow, int OtherSrcStartCol, int OtherSrcStartRow, int OtherSrcAlignment>
MutableMatViewoperator*= (const MatView< T, NumCol, NumRow, OtherSrcNumCol, OtherSrcNumRow, OtherSrcStartCol, OtherSrcStartRow, OtherSrcAlignment > &b)
 
MutableMatViewoperator*= (const MatT &b)
 
MutableMatViewoperator*= (T b)
 
- Public Member Functions inherited from blender::MatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >
 MatView ()=delete
 
 MatView (const SrcMatT &src)
 
 MatView (const float(*src)[SrcNumRow])
 
const col_typeoperator[] (int index) const
 
 operator MatT () const
 
MatT operator* (const MatT &b) const
 
- Public Member Functions inherited from blender::NonCopyable
 NonCopyable (const NonCopyable &other)=delete
 
NonCopyableoperator= (const NonCopyable &other)=delete
 
 NonCopyable ()=default
 
 NonCopyable (NonCopyable &&other)=default
 
NonCopyableoperator= (NonCopyable &&other)=default
 
- Public Member Functions inherited from blender::NonMovable
 NonMovable (NonMovable &&other)=delete
 
NonMovableoperator= (NonMovable &&other)=delete
 
 NonMovable ()=default
 
 NonMovable (const NonMovable &other)=default
 
NonMovableoperator= (const NonMovable &other)=default
 

Friends

col_type operator* (MutableMatView &a, const row_type &b)
 
row_type operator* (const col_type &a, MutableMatView &b)
 

Additional Inherited Members

- Public Attributes inherited from blender::MatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >
const SrcMatTmat
 

Detailed Description

template<typename T, int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
struct blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >

Definition at line 710 of file BLI_math_matrix_types.hh.

Member Typedef Documentation

◆ col_type

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
using blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::col_type = VecBase<T, NumRow>

Definition at line 717 of file BLI_math_matrix_types.hh.

◆ MatT

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
using blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::MatT = MatBase<T, NumCol, NumRow>

Definition at line 713 of file BLI_math_matrix_types.hh.

◆ MatViewT

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
using blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::MatViewT

◆ row_type

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
using blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::row_type = VecBase<T, NumCol>

Definition at line 718 of file BLI_math_matrix_types.hh.

◆ SrcMatT

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
using blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::SrcMatT = MatBase<T, SrcNumCol, SrcNumRow, SrcAlignment>

Definition at line 716 of file BLI_math_matrix_types.hh.

Constructor & Destructor Documentation

◆ MutableMatView() [1/3]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::MutableMatView ( )
delete

◆ MutableMatView() [2/3]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::MutableMatView ( SrcMatT & src)
inline

Definition at line 723 of file BLI_math_matrix_types.hh.

◆ MutableMatView() [3/3]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::MutableMatView ( float src[SrcNumCol][SrcNumRow])
inlineexplicit

Allow wrapping C-style matrices using view. IMPORTANT: Alignment of src needs to match.

Definition at line 726 of file BLI_math_matrix_types.hh.

Member Function Documentation

◆ operator MatViewT()

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::operator MatViewT ( ) const
inline

Conversion to immutable view.

Definition at line 738 of file BLI_math_matrix_types.hh.

◆ operator*=() [1/3]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
MutableMatView & blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::operator*= ( const MatT & b)
inline

Definition at line 856 of file BLI_math_matrix_types.hh.

References b.

◆ operator*=() [2/3]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
template<int OtherSrcNumCol, int OtherSrcNumRow, int OtherSrcStartCol, int OtherSrcStartRow, int OtherSrcAlignment>
MutableMatView & blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::operator*= ( const MatView< T, NumCol, NumRow, OtherSrcNumCol, OtherSrcNumRow, OtherSrcStartCol, OtherSrcStartRow, OtherSrcAlignment > & b)
inline

Multiply two matrices using matrix multiplication.

Definition at line 843 of file BLI_math_matrix_types.hh.

References b.

◆ operator*=() [3/3]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
MutableMatView & blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::operator*= ( T b)
inline

Multiply each component by a scalar.

Definition at line 862 of file BLI_math_matrix_types.hh.

References b.

◆ operator+=() [1/3]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
MutableMatView & blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::operator+= ( const MatT & b)
inline

Definition at line 797 of file BLI_math_matrix_types.hh.

References b.

◆ operator+=() [2/3]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
template<int OtherSrcNumCol, int OtherSrcNumRow, int OtherSrcStartCol, int OtherSrcStartRow, int OtherSrcAlignment>
MutableMatView & blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::operator+= ( const MatView< T, NumCol, NumRow, OtherSrcNumCol, OtherSrcNumRow, OtherSrcStartCol, OtherSrcStartRow, OtherSrcAlignment > & b)
inline

Matrix operators.

Definition at line 784 of file BLI_math_matrix_types.hh.

References b.

◆ operator+=() [3/3]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
MutableMatView & blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::operator+= ( T b)
inline

Definition at line 802 of file BLI_math_matrix_types.hh.

References b.

◆ operator-=() [1/3]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
MutableMatView & blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::operator-= ( const MatT & b)
inline

Definition at line 826 of file BLI_math_matrix_types.hh.

References b.

◆ operator-=() [2/3]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
template<int OtherSrcNumCol, int OtherSrcNumRow, int OtherSrcStartCol, int OtherSrcStartRow, int OtherSrcAlignment>
MutableMatView & blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::operator-= ( const MatView< T, NumCol, NumRow, OtherSrcNumCol, OtherSrcNumRow, OtherSrcStartCol, OtherSrcStartRow, OtherSrcAlignment > & b)
inline

Definition at line 813 of file BLI_math_matrix_types.hh.

References b.

◆ operator-=() [3/3]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
MutableMatView & blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::operator-= ( T b)
inline

Definition at line 831 of file BLI_math_matrix_types.hh.

References b.

◆ operator=() [1/2]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
MutableMatView & blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::operator= ( const MatT & other)
inline

Definition at line 771 of file BLI_math_matrix_types.hh.

◆ operator=() [2/2]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
template<int OtherSrcNumCol, int OtherSrcNumRow, int OtherSrcStartCol, int OtherSrcStartRow, int OtherSrcAlignment>
MutableMatView & blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::operator= ( const MatView< T, NumCol, NumRow, OtherSrcNumCol, OtherSrcNumRow, OtherSrcStartCol, OtherSrcStartRow, OtherSrcAlignment > & other)
inline

Copy Assignment.

Definition at line 750 of file BLI_math_matrix_types.hh.

References BLI_assert_msg.

◆ operator[]()

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
col_type & blender::MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment >::operator[] ( int index)
inline

Array access.

Definition at line 731 of file BLI_math_matrix_types.hh.

Friends And Related Symbol Documentation

◆ operator* [1/2]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
row_type operator* ( const col_type & a,
MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment > & b )
friend

Multiply by the transposed.

Definition at line 880 of file BLI_math_matrix_types.hh.

◆ operator* [2/2]

template<typename T , int NumCol, int NumRow, int SrcNumCol, int SrcNumRow, int SrcStartCol, int SrcStartRow, int SrcAlignment>
col_type operator* ( MutableMatView< T, NumCol, NumRow, SrcNumCol, SrcNumRow, SrcStartCol, SrcStartRow, SrcAlignment > & a,
const row_type & b )
friend

Vector operators. Need to be redefined to avoid operator priority issue.

Definition at line 870 of file BLI_math_matrix_types.hh.


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