Developer Documentation
ACG::Matrix3x3T< Scalar > Class Template Reference

#include <OpenFlipper/libs_required/ACG/Math/Matrix3x3T.hh>

Public Types

typedef OpenMesh::VectorT< Scalar, 3 > Vec3
 

Public Member Functions

constexpr Matrix3x3T (std::array< Scalar, 9 > row_major)
 
constexpr bool operator== (const Matrix3x3T &rhs) const
 
constexpr const Scalar & operator() (uint_fast8_t r, uint_fast8_t c) const
 
Scalar & operator() (uint_fast8_t r, uint_fast8_t c)
 
constexpr const Scalar & operator[] (uint_fast8_t i) const
 Linearized row major access.
 
Scalar & operator[] (uint_fast8_t i)
 Linearized row major access.
 
Vec3 getRow (uint_fast8_t r) const
 
void setRow (uint_fast8_t r, const Vec3 &v)
 
Vec3 getCol (uint_fast8_t c) const
 
void setCol (uint_fast8_t c, const Vec3 &v)
 
constexpr Matrix3x3T operator* (const Matrix3x3T &rhs) const
 
template<typename OtherScalar >
constexpr auto operator* (const VectorT< OtherScalar, 3 > &rhs) const -> OpenMesh::VectorT< decltype(std::declval< Scalar >() *rhs[0]), 3 >
 
constexpr Matrix3x3T operator* (Scalar c) const
 
constexpr Matrix3x3T operator+ (const Matrix3x3T &rhs) const
 
constexpr Matrix3x3T operator- (const Matrix3x3T &rhs) const
 
constexpr Matrix3x3T operator- () const
 
const Matrix3x3Toperator*= (const Matrix3x3T &rhs)
 
constexpr Scalar det () const
 
constexpr Scalar trace () const
 
void transpose ()
 
constexpr Matrix3x3T transposed () const
 
void invert ()
 
Matrix3x3T inverse () const
 
constexpr Scalar frobeniusSquared () const
 
constexpr double frobenius () const
 

Static Public Member Functions

static Matrix3x3T< Scalar > fromColumns (Vec3 c1, Vec3 c2, Vec3 c3)
 
static Matrix3x3T< Scalar > fromRows (Vec3 r1, Vec3 r2, Vec3 r3)
 
static constexpr Matrix3x3T< Scalar > identity ()
 
static constexpr Matrix3x3T< Scalar > zero ()
 
static constexpr uint_fast8_t indexof (uint_fast8_t r, uint_fast8_t c)
 Map row/column index to linearized index.
 

Private Attributes

std::array< Scalar, 9 > values_
 

Friends

template<typename OtherScalar >
constexpr friend auto operator* (VectorT< OtherScalar, 3 > v, const Matrix3x3T &rhs) -> OpenMesh::VectorT< decltype(std::declval< Scalar >() *v[0]), 3 >
 
constexpr friend Matrix3x3T operator* (Scalar c, const Matrix3x3T &rhs)
 
std::ostream & operator<< (std::ostream &os, const Matrix3x3T &m)
 

Detailed Description

template<typename Scalar>
class ACG::Matrix3x3T< Scalar >

Small, kinda fast 3x3 matrix class.

Definition at line 22 of file Matrix3x3T.hh.

Constructor & Destructor Documentation

◆ Matrix3x3T()

template<typename Scalar>
constexpr ACG::Matrix3x3T< Scalar >::Matrix3x3T ( std::array< Scalar, 9 >  row_major)
inline

Initialize matrix from array in row major format.

Definition at line 64 of file Matrix3x3T.hh.


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