OpenSiv3D  v0.6.5
C++20 framework for creative coding
s3d::Mat3x3 Struct Reference

#include <Mat3x3.hpp>

Public Types

using value_type = float
 

Public Member Functions

SIV3D_NODISCARD_CXX20 Mat3x3 ()=default
 
constexpr SIV3D_NODISCARD_CXX20 Mat3x3 (float _11, float _12, float _13, float _21, float _22, float _23, float _31, float _32, float _33) noexcept
 
constexpr float determinant () const noexcept
 
constexpr Mat3x3 inverse () const noexcept
 
constexpr Float2 transformPoint (Point pos) const noexcept
 
constexpr Float2 transformPoint (Float2 pos) const noexcept
 
constexpr Vec2 transformPoint (Vec2 pos) const noexcept
 
constexpr Quad transformRect (const RectF &rect) const noexcept
 
size_t hash () const noexcept
 

Static Public Member Functions

static constexpr Mat3x3 Identity () noexcept
 
static Mat3x3 Homography (const Quad &to)
 
static Mat3x3 Homography (const Quad &from, const Quad &to)
 

Public Attributes

union {
   struct {
      value_type   _11
 
      value_type   _12
 
      value_type   _13
 
   } 
 
   Float3   _11_12_13
 
}; 
 
union {
   struct {
      value_type   _21
 
      value_type   _22
 
      value_type   _23
 
   } 
 
   Float3   _21_22_23
 
}; 
 
union {
   struct {
      value_type   _31
 
      value_type   _32
 
      value_type   _33
 
   } 
 
   Float3   _31_32_33
 
}; 
 

Friends

constexpr friend bool operator== (const Mat3x3 &lhs, const Mat3x3 &rhs) noexcept
 
constexpr friend bool operator!= (const Mat3x3 &lhs, const Mat3x3 &rhs) noexcept
 
template<class CharType >
std::basic_ostream< CharType > & operator<< (std::basic_ostream< CharType > &output, const Mat3x3 &value)
 
template<class CharType >
std::basic_istream< CharType > & operator>> (std::basic_istream< CharType > &input, Mat3x3 &value)
 
void Formatter (FormatData &formatData, const Mat3x3 &value)
 

Member Typedef Documentation

◆ value_type

using s3d::Mat3x3::value_type = float

Constructor & Destructor Documentation

◆ Mat3x3() [1/2]

SIV3D_NODISCARD_CXX20 s3d::Mat3x3::Mat3x3 ( )
default

◆ Mat3x3() [2/2]

constexpr SIV3D_NODISCARD_CXX20 s3d::Mat3x3::Mat3x3 ( float  _11,
float  _12,
float  _13,
float  _21,
float  _22,
float  _23,
float  _31,
float  _32,
float  _33 
)
constexprnoexcept

Member Function Documentation

◆ determinant()

constexpr float s3d::Mat3x3::determinant ( ) const
constexprnoexcept

◆ hash()

size_t s3d::Mat3x3::hash ( ) const
noexcept

◆ Homography() [1/2]

static Mat3x3 s3d::Mat3x3::Homography ( const Quad from,
const Quad to 
)
static

◆ Homography() [2/2]

static Mat3x3 s3d::Mat3x3::Homography ( const Quad to)
static

◆ Identity()

static constexpr Mat3x3 s3d::Mat3x3::Identity ( )
staticconstexprnoexcept

◆ inverse()

constexpr Mat3x3 s3d::Mat3x3::inverse ( ) const
constexprnoexcept

◆ transformPoint() [1/3]

constexpr Float2 s3d::Mat3x3::transformPoint ( Float2  pos) const
constexprnoexcept

◆ transformPoint() [2/3]

constexpr Float2 s3d::Mat3x3::transformPoint ( Point  pos) const
constexprnoexcept

◆ transformPoint() [3/3]

constexpr Vec2 s3d::Mat3x3::transformPoint ( Vec2  pos) const
constexprnoexcept

◆ transformRect()

constexpr Quad s3d::Mat3x3::transformRect ( const RectF rect) const
constexprnoexcept

Friends And Related Function Documentation

◆ Formatter

void Formatter ( FormatData formatData,
const Mat3x3 value 
)
friend

◆ operator!=

constexpr friend bool operator!= ( const Mat3x3 lhs,
const Mat3x3 rhs 
)
friend

◆ operator<<

template<class CharType >
std::basic_ostream<CharType>& operator<< ( std::basic_ostream< CharType > &  output,
const Mat3x3 value 
)
friend

◆ operator==

constexpr friend bool operator== ( const Mat3x3 lhs,
const Mat3x3 rhs 
)
friend

◆ operator>>

template<class CharType >
std::basic_istream<CharType>& operator>> ( std::basic_istream< CharType > &  input,
Mat3x3 value 
)
friend

Member Data Documentation

◆ @34

union { ... }

◆ @36

union { ... }

◆ @38

union { ... }

◆ _11

value_type s3d::Mat3x3::_11

◆ _11_12_13

Float3 s3d::Mat3x3::_11_12_13

◆ _12

value_type s3d::Mat3x3::_12

◆ _13

value_type s3d::Mat3x3::_13

◆ _21

value_type s3d::Mat3x3::_21

◆ _21_22_23

Float3 s3d::Mat3x3::_21_22_23

◆ _22

value_type s3d::Mat3x3::_22

◆ _23

value_type s3d::Mat3x3::_23

◆ _31

value_type s3d::Mat3x3::_31

◆ _31_32_33

Float3 s3d::Mat3x3::_31_32_33

◆ _32

value_type s3d::Mat3x3::_32

◆ _33

value_type s3d::Mat3x3::_33

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