Template kelas matrix44 mewakili matriks 4×4, dan definisi jenis float dan double telah didefinisikan.
Selain itu, berbagai fungsi utilitas yang mengoperasikan matriks ditentukan oleh iMachmatorixalgo. h dan dijelaskan dalam fungsi matriks.
Komponen individu dari matriks m dapat direferensikan sebagai m [j] [i] atau m. x [j] [i]. Yang terakhir ini sedikit merepotkan, tetapi menguntungkan ketika digunakan dalam loop yang secara eksplisit d i-vektor dengan petunjuk seperti#pragma omp Simd. Ini karena fungsi panggilan operator [] dan para pemain pointer dapat membingungkan kompiler dan menghalangi vektor loop.
#Crude #Crude #Crude ruang kosong Matrix44_example () IMAS::M44f M (IMAS::Tidak disatikan); // tidak diinisialisasi M.makeidentity (); Menegaskan (M[0][0] == 1. 0f); Menegaskan (M[0][1] == 0. 0f); IMAS::M44f Minv = M.Nomor terbalik (); IMAS::M44f R; Menegaskan (R == IMAS::Identitas 44f); R.memutar (IMAS::V3f (0. 02F, M_pi / 4, 0. 0f)); M = R * M; IMAS::V3f v3 (1. 0f, 0. 0f, 0. 0f); IMAS::V4F v4 (1. 0f, 0. 0f, 0. 0f, 1. 0f); IMAS::V3f r3 = v3 * M; Menegaskan (r3.Setara withabserer ( IMAS::V3f (0. 707107F, 0. 0f, -0. 7071070f), 1e-6f)); IMAS::V4F r4 = v4 * M; Menegaskan (r4.Setara withabserer ( IMAS::V4F (0. 707107F, 0. 0f, -0. 7071070f, 1. 0f), 1e-6f)); >
Typedef Matrix44< float >IMath :: M44F ¶
4×4 мата float
4×4 мата ganda
шабон< class T >кас matriks44 ¶
Мата побазован 4×4
Пой дос к эам
Коноры паиан
Inline constexpr matrix44 (tidak diinisialisasi) noexcept ¶
Inline constexpr matrix44 () noExcept ¶
Конор пол Anda
Inline constexpr matrix44 (ta) noexcept ¶
Цалац к салой к к a a a a a a a a a a a a a a a.
Inline constexpr matrix44 (const ta [4] [4]) noexcept ¶
Сои т и маса 4×4 a [0] [0] [0] [0] A [0] [3] A [0] [0] [1] [1] [1] A [1] [2] a [1] [3] A [2] [2] A [2] A [2] A [2] [3] A [0] A [3] [1] A [3] [2] A [3] [3].
Inline constexpr matrix44 (ta, t b, t d, t-d, t e, t-f, t i, t i, t i, j j, t k, t n, t n, t n, t o, t p) noexcept ¶
Посоedit иаданых салых зач зач зач зач зач
Inline constexpr matrix44 (matrix33< T >R, VEC3< T >T) NoExcept ¶
Тои маты поворо ke 3×3 Вора рора та тананананан rrl 0 rr 0 rr 0
Inline constexpr matrix44 (const matrix44 & amp; v) noexcept ¶
шабон< class S >Inline eksplisit constexpr matrix44 (const matrix4444444444444444< S >& amp; V) NoExcept ¶.
Bangun dari matriks basal lain44.
Inline Constexpr Const Matrix44 & amp;
Inline Constexpr Const Matrix44 & amp;
Sukses dari Scala.
~Matrix44 () noExcept = default ¶.
Kompatibilitas dengan SB
Inline t * getValue () noExcept ¶.
Mengembalikan pointer mentah ke array nilai.
Inline kontra r * getValue () terdiri dari noExcept ¶.
Mengembalikan pointer mentah ke array nilai.
шабон< class S >Inline void getValue (matrix44< S >& amp; V) Cons Cons Noexcept ¶.
Mengembalikan nilai V.
шабон< class S >Constexpr matrix44 & amp; setValue (const matrix4444444444444< S >& amp; V) NoExcept ¶.
шабон< class S >Constexpr matrix44 & amp; setthematrix (const matrix44444444444444< S >& amp; V) NoExcept ¶.
Perbandingan dengan operasi aritmatika
Inline Operator Bool Constexpr == (const matrix44 & amp; v) const noExcept ¶.
Inline Operator Bool Constexpr! = (Const Matrix44 & amp; v) Const NoExcept ¶.
Inline constexpr bool equalwithabserror (const matrix44444444444444< T >& amp; v, t e) terdiri dari noexcept ¶.
Bandingkan dua matriks untuk mengetahui apakah itu “hampir sama”.
Ketika koefisien ini dan m sama dengan kesalahan absolut di bawah E, yaitu, ketika itu sama dengan semua I dan J.
Abs (ini[i][j] - m[i][j]) e
Inline constexpr bool equalwithrrror (const matrix4444444444444444444444444444< T >& amp; v, t e) terdiri dari noexcept ¶.
Bandingkan dua matriks untuk mengetahui apakah itu “hampir sama”.
Jika koefisien ini dan m adalah sama untuk kesalahan relatif E, yaitu, semua I dan J.
Abs (ini[i] - v[i][j]) e * Abs (ini[i][j])
Inline Constexpr Const Matrix44 & AMP;
Inline Constexpr Const Matrix44 & AMP;
Inline Constexpr Matrix44 Operator + (const matrix44 & amp; v) const noExcept ¶.
Inline Constexpr Const Matrix44 & amp;
Inline Constexpr Const Matrix44 & amp;
Inline constexpr matrix44 operator- (const matrix44 & amp; v) const noexcept ¶.
Inline constexpr matrix44 operator- () const noExcept ¶.
Kontribus i-1 dalam unit komponen.
Inline Constexpr Const Matrix44 & amp;
Kontribus i-1 dalam unit komponen.
Inline Constexpr Const Matrix44 & AMP;
Operator Inline Constexpr Matrix44 * (TA) Const NoExcept ¶.
Inline Constexpr Const Matrix44 & amp;
Menunjukkan inline CONSEXPR Matrix44 Operator / (TA) Const NoExcept ¶.
Inline Constexpr Cons Matrix44 & AMP;
Inline Constexpr Matrix44 Operator * (const matrix44 & amp; v) const noExcept¶.
шабон< class S >Inline void multvecmatrix (const vec3< S >& amp; SRC, VEC3< S >& amp; DST) terdiri dari NoExcept ¶.
Multiplikasi Vektor dan Matriks: VEC3 (SRC. X, SRC. Y, SRC. Z, 1) * M dihitung, dan konversi yang sama dengan membagi dengan elemen ketiga dari hasil.
Kompetisi Vektor: Modat bagian 2×2 dari kiri atas di SRC.
Hitung matriks: c = a * b.
Statis inline constexpr matrix44 multiply (const matrix44 & amp;
Mengembalikan hasil multiplikasi dari matriks.
Inline void makeIdentity () noExcept ¶.
Diatur dalam satu baris berturu t-turut.
Inline Constexpr Const Matrix44 & amp; Transpose () NoExcept ¶.
Inline constexpr matrix44 transposed () const noexcept ¶.
Mengembalikan saluran transfer.
Mengembalikan Inline Constexpr Cons Matrix44 & amp;
Gunakan antrian untuk membalikkan di tempat.
Dalam kasus Singex c-True, lempar pengecualian ketika matriks tidak dapat dibalik.
Lihat ini untuk ini
Inline Constexpr Const Matrix44 & amp;
Gunakan antrian untuk membalikkan di tempat.
Lihat ini untuk ini
Inline Constexpr Matrix44< T >Reverse Matrix (Bool Singexc) Cons ¶.
Mengembalikan matriks terbalik menggunakan antrian.
Dalam kasus Singex c-True, lempar pengecualian ketika matriks tidak dapat dibalik.
Inline Constexpr Matrix44< T >Inverse () const NoExcept ¶.
Mengembalikan matriks terbalik menggunakan antrian.
Inline Constexpr Const Matrix44 & amp;
Mengembalikan matriks terbalik dengan metode Gauss Jordan.
Ini jauh lebih lambat dari invert (), tetapi lebih akurat.
Dalam kasus Singex c-True, lempar pengecualian ketika matriks tidak dapat dibalik.
Lihat ini untuk ini
Inline Constexpr Const Matrix44 & amp;
Mengembalikan matriks terbalik dengan metode Gauss Jordan.
Ini jauh lebih lambat dari invert (), tetapi lebih akurat.
Lihat ini untuk ini
Inline Matrix44< T >Gjinverse (Bool Singexc) Cons ¶.
Mengembalikan matriks terbalik dengan metode Gauss Jordan.
Ini jauh lebih lambat dari terbalik (), tetapi lebih akurat.
Inline Matrix44< T >Gjinverse () const noExcept ¶.
Mengembalikan matriks terbalik dengan metode Gauss Jordan.
Inline constexpr t minorof (const int r, const int c) const noexcept ¶.
Tentukan nilai minor suatu matriks dengan elemen (r, c).
inline constexpr T fastMinor ( const int r0 , const int r1 , const int r2 , const int c0 , const int c1 , const int c2 ) const nokecuali ¶.
Membuat kunci minor menggunakan baris dan kolom yang ditentukan.
inline constexpr T determinan ( ) const nokecuali ¶.
inline constexpr T jejak ( ) const tidak kecuali ¶.
шабон< class S >const Matrix44 & setEulerAngles ( const Vec3< S >& amp;
Memutar matriks sebesar sudut XYZ Euler (dalam radian).
lihat konstanta ini
шабон< class S >constexpr const Matriks44 & setAxisAngle ( const Vec3< S >& amp; kapak , S ang ) tidak kecuali ¶.
Mengatur matriks agar berputar dengan sudut tertentu (radian) di sekitar sumbu yang ditentukan.
lihat konstanta ini
шабон< class S >const Matrix44 & memutar ( const Vec3< S >& amp;
Memutar matriks dengan sudut yang ditentukan (dalam radian).
lihat konstanta ini
Constexpr const sebaris Matrix44 & setScale ( T s ) kecuali ¶.
Menskalakan matriks dengan faktor seragam yang ditentukan.
lihat konstanta ini
шабон< class S >constexpr const Matriks44 & setScale ( const Vec3< S >& amp; s ) tidak kecuali ¶.
Atur matriks yang akan diskalakan berdasarkan vektor yang diberikan.
lihat konstanta ini
шабон< class S >constexpr const Matrix44 & amp;< S >& amp; s ) tidak kecuali ¶.
Skala matriks dengan s.
lihat konstanta ini
шабон< class S >constexpr const Matrix44 & setTranslasi ( const Vec3< S >& amp;
Mengatur matriks yang akan diterjemahkan oleh vektor yang diberikan.
lihat konstanta ini
Konsteks sebaris const Vec3< T >terjemahan ( ) const tidak kecuali ¶.
Mengembalikan komponen terjemahan.
шабон< class S >constexpr const Matrix44 & terjemahkan ( const Vec3< S >& amp;
Ubah matriks dengan t.
lihat konstanta ini
шабон< class S >constexpr const Matrix44 & setShear ( const Vec3< S >& amp;
Memotong matriks dengan vektor yang ditentukan h.
lihat konstanta ini
шабон< class S >constexpr const Matriks44 & setShear ( const Shear6< S >& amp;
Memotong matriks dengan faktor yang ditentukan.
lihat konstanta ini
шабон< class S >constexpr const Matriks44 & amp; geser ( const Vec3< S >& amp;
Memotong matriks dengan vektor yang diberikan.
lihat konstanta ini
шабон< class S >constexpr const Matriks44 & amp; geser ( const Shear6< S >& amp;
Memotong matriks dengan koefisien yang diberikan.
lihat konstanta ini
constex inline statis T baseTypeLowest ( ) kecuali ¶.
Nilai negatif maksimum.
constex inline statis T baseTypeMax ( ) kecuali ¶.
Nilai positif maksimum yang mungkin.
constex inline statis T baseTypeTerkecil ( ) kecuali ¶.
Nilai positif sekecil mungkin.
constex inline statis T baseTypeEpsilon ( ) kecuali ¶.
E terkecil sehingga 1+e != 1.
Tipe dasar: Dalam templat yang menerima parameter V (Warna4), T dapat disebut V::BaseType.
Tipe vektor dasar.
inline T * operator [] ( int i ) kecuali ¶.
inline const T * operator [] ( int i ) const nokecuali ¶.
шабон< class S >Matriks constexpr sebaris44< T >& amp; setNilai ( const Matrix44< S >& amp; v ) tidak kecuali ¶ templat< class S >Matriks constexpr sebaris44< T >& amp; setTheMatrix ( const Matrix44< S >& amp; v ) tidak kecuali ¶ templat< class S >Matriks konst sebaris44< T >& amp; setEulerAngles ( const Vec3< S >& amp; r ) tidak kecuali ¶ templat< class S >inline constexpr const Matriks44< T >& amp; setAxisAngle (konst Vec3< S >& amp; sumbu , sudut S ) kecuali ¶ templat< class S >Matriks konst sebaris44< T >& amp; memutar ( const Vec3< S >& amp; r ) tidak kecuali ¶ templat< class S >inline constexpr const Matriks44< T >& amp;< S >& amp; s ) tidak kecuali ¶ templat< class S >inline constexpr const Matriks44< T >& amp;< S >& amp; s ) tidak kecuali ¶ templat< class S >inline constexpr const Matriks44< T >& amp; set Terjemahan ( const Vec3< S >& amp; t ) tidak kecuali ¶ templat< class S >inline constexpr const Matriks44< T >& amp; terjemahkan ( const Vec3< S >& amp; t ) tidak kecuali ¶ templat< class S >inline constexpr const Matriks44< T >& amp;< S >& h ) tidak kecuali ¶ templat< class S >inline constexpr const Matriks44< T >& setShear ( const Shear6< S >& h ) tidak kecuali ¶ templat< class S >inline constexpr const Matriks44< T >& amp;< S >& h ) tidak kecuali ¶ templat< class S >inline constexpr const Matriks44< T >& amp; geser ( const Geser6< S >& amp;
fungsi statis publik
constex inline statis unsigned int dimensi ( ) kecuali ¶.
Mengembalikan jumlah dimensi baris dan kolom, yaitu 4.
шабон< class T >std :: ostream & Imath :: operator & m ) ¶
Keluaran aliran:
(m00 m01 m02 m03 m10 m11 m12 m13 m20 m21 m22 m23 m30 m31 m32 m33)
Hak Cipta © OpenEXR Serangkaian Proyek LF, LLC.