|
| SkM44 (const SkM44 &src)=default |
|
SkM44 & | operator= (const SkM44 &src)=default |
|
constexpr | SkM44 () |
|
| SkM44 (const SkM44 &a, const SkM44 &b) |
|
| SkM44 (Uninitialized_Constructor) |
|
constexpr | SkM44 (NaN_Constructor) |
|
constexpr | SkM44 (SkScalar m0, SkScalar m4, SkScalar m8, SkScalar m12, SkScalar m1, SkScalar m5, SkScalar m9, SkScalar m13, SkScalar m2, SkScalar m6, SkScalar m10, SkScalar m14, SkScalar m3, SkScalar m7, SkScalar m11, SkScalar m15) |
| The constructor parameters are in row-major order. More...
|
|
bool | operator== (const SkM44 &other) const |
|
bool | operator!= (const SkM44 &other) const |
|
void | getColMajor (SkScalar v[]) const |
|
void | getRowMajor (SkScalar v[]) const |
|
SkScalar | rc (int r, int c) const |
|
void | setRC (int r, int c, SkScalar value) |
|
SkV4 | row (int i) const |
|
SkV4 | col (int i) const |
|
void | setRow (int i, const SkV4 &v) |
|
void | setCol (int i, const SkV4 &v) |
|
SkM44 & | setIdentity () |
|
SkM44 & | setTranslate (SkScalar x, SkScalar y, SkScalar z=0) |
|
SkM44 & | setScale (SkScalar x, SkScalar y, SkScalar z=1) |
|
SkM44 & | setRotateUnitSinCos (SkV3 axis, SkScalar sinAngle, SkScalar cosAngle) |
| Set this matrix to rotate about the specified unit-length axis vector, by an angle specified by its sin() and cos(). More...
|
|
SkM44 & | setRotateUnit (SkV3 axis, SkScalar radians) |
| Set this matrix to rotate about the specified unit-length axis vector, by an angle specified in radians. More...
|
|
SkM44 & | setRotate (SkV3 axis, SkScalar radians) |
| Set this matrix to rotate about the specified axis vector, by an angle specified in radians. More...
|
|
SkM44 & | setConcat (const SkM44 &a, const SkM44 &b) |
|
SkM44 & | preConcat (const SkM44 &m) |
|
SkM44 & | postConcat (const SkM44 &m) |
|
void | normalizePerspective () |
| A matrix is categorized as 'perspective' if the bottom row is not [0, 0, 0, 1]. More...
|
|
bool | isFinite () const |
| Returns true if all elements of the matrix are finite. More...
|
|
bool SK_WARN_UNUSED_RESULT | invert (SkM44 *inverse) const |
| If this is invertible, return that in inverse and return true. More...
|
|
SkM44 SK_WARN_UNUSED_RESULT | transpose () const |
|
void | dump () const |
|
SkV4 | map (float x, float y, float z, float w) const |
|
SkV4 | operator* (const SkV4 &v) const |
|
SkV3 | operator* (SkV3 v) const |
|
SkMatrix | asM33 () const |
|
| SkM44 (const SkMatrix &src) |
|
SkM44 & | preTranslate (SkScalar x, SkScalar y, SkScalar z=0) |
|
SkM44 & | postTranslate (SkScalar x, SkScalar y, SkScalar z=0) |
|
SkM44 & | preScale (SkScalar x, SkScalar y) |
|
SkM44 & | preConcat (const SkMatrix &) |
|
4x4 matrix used by SkCanvas and other parts of Skia.
Skia assumes a right-handed coordinate system: +X goes to the right +Y goes down +Z goes into the screen (away from the viewer)
void SkM44::normalizePerspective |
( |
| ) |
|
A matrix is categorized as 'perspective' if the bottom row is not [0, 0, 0, 1].
For most uses, a bottom row of [0, 0, 0, X] behaves like a non-perspective matrix, though it will be categorized as perspective. Calling normalizePerspective() will change the matrix such that, if its bottom row was [0, 0, 0, X], it will be changed to [0, 0, 0, 1] by scaling the rest of the matrix by 1/X.
| A B C D | | A/X B/X C/X D/X | | E F G H | -> | E/X F/X G/X H/X | for X != 0 | I J K L | | I/X J/X K/X L/X | | 0 0 0 X | | 0 0 0 1 |