Flutter Engine
The Flutter Engine
|
#include <SkMatrix.h>
Public Types | |
enum | ScaleToFit { kFill_ScaleToFit , kStart_ScaleToFit , kCenter_ScaleToFit , kEnd_ScaleToFit } |
enum | TypeMask { kIdentity_Mask = 0 , kTranslate_Mask = 0x01 , kScale_Mask = 0x02 , kAffine_Mask = 0x04 , kPerspective_Mask = 0x08 } |
Static Public Member Functions | |
static SkMatrix | Scale (SkScalar sx, SkScalar sy) |
static SkMatrix | Translate (SkScalar dx, SkScalar dy) |
static SkMatrix | Translate (SkVector t) |
static SkMatrix | Translate (SkIVector t) |
static SkMatrix | RotateDeg (SkScalar deg) |
static SkMatrix | RotateDeg (SkScalar deg, SkPoint pt) |
static SkMatrix | RotateRad (SkScalar rad) |
static SkMatrix | Skew (SkScalar kx, SkScalar ky) |
static SkMatrix | RectToRect (const SkRect &src, const SkRect &dst, ScaleToFit mode=kFill_ScaleToFit) |
static SkMatrix | MakeAll (SkScalar scaleX, SkScalar skewX, SkScalar transX, SkScalar skewY, SkScalar scaleY, SkScalar transY, SkScalar pers0, SkScalar pers1, SkScalar pers2) |
static SkMatrix | MakeRectToRect (const SkRect &src, const SkRect &dst, ScaleToFit stf) |
static void | SetAffineIdentity (SkScalar affine[6]) |
static const SkMatrix & | I () |
static const SkMatrix & | InvalidMatrix () |
static SkMatrix | Concat (const SkMatrix &a, const SkMatrix &b) |
Static Public Attributes | |
static constexpr int | kMScaleX = 0 |
horizontal scale factor More... | |
static constexpr int | kMSkewX = 1 |
horizontal skew factor More... | |
static constexpr int | kMTransX = 2 |
horizontal translation More... | |
static constexpr int | kMSkewY = 3 |
vertical skew factor More... | |
static constexpr int | kMScaleY = 4 |
vertical scale factor More... | |
static constexpr int | kMTransY = 5 |
vertical translation More... | |
static constexpr int | kMPersp0 = 6 |
input x perspective factor More... | |
static constexpr int | kMPersp1 = 7 |
input y perspective factor More... | |
static constexpr int | kMPersp2 = 8 |
perspective bias More... | |
static constexpr int | kAScaleX = 0 |
horizontal scale factor More... | |
static constexpr int | kASkewY = 1 |
vertical skew factor More... | |
static constexpr int | kASkewX = 2 |
horizontal skew factor More... | |
static constexpr int | kAScaleY = 3 |
vertical scale factor More... | |
static constexpr int | kATransX = 4 |
horizontal translation More... | |
static constexpr int | kATransY = 5 |
vertical translation More... | |
Friends | |
class | SkPerspIter |
class | SkMatrixPriv |
class | SerializationTest |
SK_API bool | operator== (const SkMatrix &a, const SkMatrix &b) |
SK_API bool | operator!= (const SkMatrix &a, const SkMatrix &b) |
SkMatrix | operator* (const SkMatrix &a, const SkMatrix &b) |
SkMatrix holds a 3x3 matrix for transforming coordinates. This allows mapping SkPoint and vectors with translation, scaling, skewing, rotation, and perspective.
SkMatrix elements are in row major order. SkMatrix constexpr default constructs to identity.
SkMatrix includes a hidden variable that classifies the type of matrix to improve performance. SkMatrix is not thread safe unless getType() is called first.
example: https://fiddle.skia.org/c/@Matrix_063
Definition at line 54 of file SkMatrix.h.
enum SkMatrix::ScaleToFit |
Enumerator | |
---|---|
kFill_ScaleToFit | scales in x and y to fill destination SkRect |
kStart_ScaleToFit | scales and aligns to left and top |
kCenter_ScaleToFit | scales and aligns to center |
kEnd_ScaleToFit | scales and aligns to right and bottom |
Definition at line 136 of file SkMatrix.h.
enum SkMatrix::TypeMask |
|
inlineconstexpr |
Creates an identity SkMatrix:
| 1 0 0 | | 0 1 0 | | 0 0 1 |
Definition at line 63 of file SkMatrix.h.
bool SkMatrix::asAffine | ( | SkScalar | affine[6] | ) | const |
Fills affine in column major order. Sets affine to:
| scale-x skew-x translate-x | | skew-y scale-y translate-y |
If SkMatrix contains perspective, returns false and leaves affine unchanged.
affine | storage for 3 by 2 affine matrix; may be nullptr |
Definition at line 755 of file SkMatrix.cpp.
Returns SkMatrix a multiplied by SkMatrix b.
Given:
| A B C | | J K L | a = | D E F |, b = | M N O | | G H I | | P Q R |
sets SkMatrix to:
| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR | a * b = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR | | G H I | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
a | SkMatrix on left side of multiply expression |
b | SkMatrix on right side of multiply expression |
Definition at line 1775 of file SkMatrix.h.
Decomposes SkMatrix into scale components and whatever remains. Returns false if SkMatrix could not be decomposed.
Sets scale to portion of SkMatrix that scale axes. Sets remaining to SkMatrix with scaling factored out. remaining may be passed as nullptr to determine if SkMatrix can be decomposed without computing remainder.
Returns true if scale components are found. scale and remaining are unchanged if SkMatrix contains perspective; scale factors are not finite, or are nearly zero.
On success: Matrix = Remaining * scale.
scale | axes scaling factors; may be nullptr |
remaining | SkMatrix without scaling; may be nullptr |
example: https://fiddle.skia.org/c/@Matrix_decomposeScale
Definition at line 1559 of file SkMatrix.cpp.
|
inline |
Sets internal cache to unknown state. Use to force update after repeated modifications to SkMatrix element reference returned by operator[](int index).
Definition at line 1788 of file SkMatrix.h.
void SkMatrix::dump | ( | ) | const |
Writes text representation of SkMatrix to standard output. Floating point values are written with limited precision; it may not be possible to reconstruct original SkMatrix from output.
example: https://fiddle.skia.org/c/@Matrix_dump
Definition at line 1604 of file SkMatrix.cpp.
Returns one matrix value. Asserts if index is out of range and SK_DEBUG is defined.
index | one of: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY, kMPersp0, kMPersp1, kMPersp2 |
Definition at line 392 of file SkMatrix.h.
|
inline |
Copies nine scalar values contained by SkMatrix into buffer, in member value ascending order: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY, kMPersp0, kMPersp1, kMPersp2.
buffer | storage for nine scalar values |
Definition at line 584 of file SkMatrix.h.
SkScalar SkMatrix::getMaxScale | ( | ) | const |
Returns the maximum scaling factor of SkMatrix by decomposing the scaling and skewing elements. Returns -1 if scale factor overflows or SkMatrix contains perspective.
example: https://fiddle.skia.org/c/@Matrix_getMaxScale
Definition at line 1531 of file SkMatrix.cpp.
bool SkMatrix::getMinMaxScales | ( | SkScalar | scaleFactors[2] | ) | const |
Sets scaleFactors[0] to the minimum scaling factor, and scaleFactors[1] to the maximum scaling factor. Scaling factors are computed by decomposing the SkMatrix scaling and skewing elements.
Returns true if scaleFactors are found; otherwise, returns false and sets scaleFactors to undefined values.
scaleFactors | storage for minimum and maximum scale factors |
Definition at line 1540 of file SkMatrix.cpp.
SkScalar SkMatrix::getMinScale | ( | ) | const |
Returns the minimum scaling factor of SkMatrix by decomposing the scaling and skewing elements. Returns -1 if scale factor overflows or SkMatrix contains perspective.
example: https://fiddle.skia.org/c/@Matrix_getMinScale
Definition at line 1522 of file SkMatrix.cpp.
|
inline |
Returns factor scaling input x-axis relative to input y-axis.
Definition at line 458 of file SkMatrix.h.
|
inline |
Returns factor scaling input y-axis relative to input x-axis.
Definition at line 464 of file SkMatrix.h.
|
inline |
Returns scale factor multiplied by x-axis input, contributing to x-axis output. With mapPoints(), scales SkPoint along the x-axis.
Definition at line 415 of file SkMatrix.h.
|
inline |
Returns scale factor multiplied by y-axis input, contributing to y-axis output. With mapPoints(), scales SkPoint along the y-axis.
Definition at line 422 of file SkMatrix.h.
|
inline |
Returns scale factor multiplied by y-axis input, contributing to x-axis output. With mapPoints(), skews SkPoint along the x-axis. Skewing both axes can rotate SkPoint.
Definition at line 438 of file SkMatrix.h.
|
inline |
Returns scale factor multiplied by x-axis input, contributing to y-axis output. With mapPoints(), skews SkPoint along the y-axis. Skewing both axes can rotate SkPoint.
Definition at line 430 of file SkMatrix.h.
|
inline |
Returns translation contributing to x-axis output. With mapPoints(), moves SkPoint along the x-axis.
Definition at line 445 of file SkMatrix.h.
|
inline |
Returns translation contributing to y-axis output. With mapPoints(), moves SkPoint along the y-axis.
Definition at line 452 of file SkMatrix.h.
|
inline |
Returns a bit field describing the transformations the matrix may perform. The bit field is computed conservatively, so it may include false positives. For example, when kPerspective_Mask is set, all other bits are set.
Definition at line 207 of file SkMatrix.h.
|
inline |
Returns true if the matrix contains perspective elements. SkMatrix form is:
| -- -- -- | | -- -- -- | | perspective-x perspective-y perspective-scale |
where perspective-x or perspective-y is non-zero, or perspective-scale is not one. All other elements may have any value.
Definition at line 312 of file SkMatrix.h.
|
static |
Returns reference to const identity SkMatrix. Returned SkMatrix is set to:
| 1 0 0 | | 0 1 0 | | 0 0 1 |
example: https://fiddle.skia.org/c/@Matrix_I
Definition at line 1544 of file SkMatrix.cpp.
|
static |
Returns reference to a const SkMatrix with invalid values. Returned SkMatrix is set to:
| SK_ScalarMax SK_ScalarMax SK_ScalarMax | | SK_ScalarMax SK_ScalarMax SK_ScalarMax | | SK_ScalarMax SK_ScalarMax SK_ScalarMax |
example: https://fiddle.skia.org/c/@Matrix_InvalidMatrix
Definition at line 1550 of file SkMatrix.cpp.
|
inline |
Sets inverse to reciprocal matrix, returning true if SkMatrix can be inverted. Geometrically, if SkMatrix maps from source to destination, inverse SkMatrix maps from destination to source. If SkMatrix can not be inverted, inverse is unchanged.
inverse | storage for inverted SkMatrix; may be nullptr |
Definition at line 1206 of file SkMatrix.h.
|
inline |
Returns true if all elements of the matrix are finite. Returns false if any element is infinity, or NaN.
Definition at line 1834 of file SkMatrix.h.
|
inline |
Returns true if SkMatrix is identity. Identity matrix is:
| 1 0 0 | | 0 1 0 | | 0 0 1 |
Definition at line 223 of file SkMatrix.h.
|
inline |
Returns true if SkMatrix at most scales and translates. SkMatrix may be identity, contain only scale elements, only translate elements, or both. SkMatrix form is:
| scale-x 0 translate-x | | 0 scale-y translate-y | | 0 0 1 |
Definition at line 236 of file SkMatrix.h.
bool SkMatrix::isSimilarity | ( | SkScalar | tol = SK_ScalarNearlyZero | ) | const |
Returns true if SkMatrix contains only translation, rotation, reflection, and uniform scale. Returns false if SkMatrix contains different scales, skewing, perspective, or degenerate forms that collapse to a line or point.
Describes that the SkMatrix makes rendering with and without the matrix are visually alike; a transformed circle remains a circle. Mathematically, this is referred to as similarity of a Euclidean space, or a similarity transformation.
Preserves right angles, keeping the arms of the angle equal lengths.
tol | to be deprecated |
example: https://fiddle.skia.org/c/@Matrix_isSimilarity
Definition at line 180 of file SkMatrix.cpp.
|
inline |
Returns true if SkMatrix is identity, or translates. SkMatrix form is:
| 1 0 translate-x | | 0 1 translate-y | | 0 0 1 |
Definition at line 248 of file SkMatrix.h.
|
inlinestatic |
Sets SkMatrix to:
| scaleX skewX transX | | skewY scaleY transY | | pers0 pers1 pers2 |
scaleX | horizontal scale factor |
skewX | horizontal skew factor |
transX | horizontal translation |
skewY | vertical skew factor |
scaleY | vertical scale factor |
transY | vertical translation |
pers0 | input x-axis perspective factor |
pers1 | input y-axis perspective factor |
pers2 | perspective scale factor |
Definition at line 179 of file SkMatrix.h.
|
inlinestatic |
Returns SkMatrix set to scale and translate src SkRect to dst SkRect. stf selects whether mapping completely fills dst or preserves the aspect ratio, and how to align src within dst. Returns the identity SkMatrix if src is empty. If dst is empty, returns SkMatrix set to:
| 0 0 0 | | 0 0 0 | | 0 0 1 |
Definition at line 1172 of file SkMatrix.h.
Returns homogeneous points, starting with 2D src points (with implied w = 1).
Definition at line 1071 of file SkMatrix.cpp.
Maps src SkPoint3 array of length count to dst SkPoint3 array, which must of length count or greater. SkPoint3 array is mapped by multiplying each SkPoint3 by SkMatrix. Given:
| A B C | | x | Matrix = | D E F |, src = | y | | G H I | | z |
each resulting dst SkPoint is computed as:
|A B C| |x| Matrix * src = |D E F| |y| = |Ax+By+Cz Dx+Ey+Fz Gx+Hy+Iz| |G H I| |z|
dst | storage for mapped SkPoint3 array |
src | SkPoint3 array to transform |
count | items in SkPoint3 array to transform |
example: https://fiddle.skia.org/c/@Matrix_mapHomogeneousPoints
Definition at line 1066 of file SkMatrix.cpp.
|
inline |
Returns (0, 0) multiplied by SkMatrix. Given:
| A B C | | 0 | Matrix = | D E F |, pt = | 0 | | G H I | | 1 |
result is computed as:
|A B C| |0| C F Matrix * pt = |D E F| |0| = |C F I| = - , - |G H I| |1| I I
Definition at line 1437 of file SkMatrix.h.
Returns SkPoint pt multiplied by SkMatrix. Given:
| A B C | | x | Matrix = | D E F |, pt = | y | | G H I | | 1 |
result is computed as:
|A B C| |x| Ax+By+C Dx+Ey+F Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , ------- |G H I| |1| Gx+Hy+I Gx+Hy+I
p | SkPoint to map |
Definition at line 1374 of file SkMatrix.h.
Maps src SkPoint array of length count to dst SkPoint array of equal or greater length. SkPoint are mapped by multiplying each SkPoint by SkMatrix. Given:
| A B C | | x | Matrix = | D E F |, pt = | y | | G H I | | 1 |
where
for (i = 0; i < count; ++i) { x = src[i].fX y = src[i].fY }
each dst SkPoint is computed as:
|A B C| |x| Ax+By+C Dx+Ey+F Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , ------- |G H I| |1| Gx+Hy+I Gx+Hy+I
src and dst may point to the same storage.
dst | storage for mapped SkPoint |
src | SkPoint to transform |
count | number of SkPoint to transform |
example: https://fiddle.skia.org/c/@Matrix_mapPoints
Definition at line 770 of file SkMatrix.cpp.
Maps pts SkPoint array of length count in place. SkPoint are mapped by multiplying each SkPoint by SkMatrix. Given:
| A B C | | x | Matrix = | D E F |, pt = | y | | G H I | | 1 |
where
for (i = 0; i < count; ++i) { x = pts[i].fX y = pts[i].fY }
each resulting pts SkPoint is computed as:
|A B C| |x| Ax+By+C Dx+Ey+F Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , ------- |G H I| |1| Gx+Hy+I Gx+Hy+I
Definition at line 1329 of file SkMatrix.h.
Returns geometric mean radius of ellipse formed by constructing circle of size radius, and mapping constructed circle with SkMatrix. The result squared is equal to the major axis length times the minor axis length. Result is not meaningful if SkMatrix contains perspective elements.
radius | circle size to map |
example: https://fiddle.skia.org/c/@Matrix_mapRadius
Definition at line 1170 of file SkMatrix.cpp.
|
inline |
Returns bounds of src corners mapped by SkMatrix.
src | rectangle to map |
Definition at line 1585 of file SkMatrix.h.
bool SkMatrix::mapRect | ( | SkRect * | dst, |
const SkRect & | src, | ||
SkApplyPerspectiveClip | pc = SkApplyPerspectiveClip::kYes |
||
) | const |
Sets dst to bounds of src corners mapped by SkMatrix. Returns true if mapped corners are dst corners.
Returned value is the same as calling rectStaysRect().
dst | storage for bounds of mapped SkPoint |
src | SkRect to map |
pc | whether to apply perspective clipping |
example: https://fiddle.skia.org/c/@Matrix_mapRect
Definition at line 1141 of file SkMatrix.cpp.
|
inline |
Sets rect to bounds of rect corners mapped by SkMatrix. Returns true if mapped corners are computed rect corners.
Returned value is the same as calling rectStaysRect().
rect | rectangle to map, and storage for bounds of mapped corners |
pc | whether to apply perspective clipping |
Definition at line 1576 of file SkMatrix.h.
Sets dst to bounds of src corners mapped by SkMatrix. If matrix contains elements other than scale or translate: asserts if SK_DEBUG is defined; otherwise, results are undefined.
example: https://fiddle.skia.org/c/@Matrix_mapRectScaleTranslate
Definition at line 1128 of file SkMatrix.cpp.
Maps four corners of rect to dst. SkPoint are mapped by multiplying each rect corner by SkMatrix. rect corner is processed in this order: (rect.fLeft, rect.fTop), (rect.fRight, rect.fTop), (rect.fRight, rect.fBottom), (rect.fLeft, rect.fBottom).
rect may be empty: rect.fLeft may be greater than or equal to rect.fRight; rect.fTop may be greater than or equal to rect.fBottom.
Given:
| A B C | | x | Matrix = | D E F |, pt = | y | | G H I | | 1 |
where pt is initialized from each of (rect.fLeft, rect.fTop), (rect.fRight, rect.fTop), (rect.fRight, rect.fBottom), (rect.fLeft, rect.fBottom), each dst SkPoint is computed as:
|A B C| |x| Ax+By+C Dx+Ey+F Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , ------- |G H I| |1| Gx+Hy+I Gx+Hy+I
Note: this does not perform perspective clipping (as that might result in more than 4 points, so results are suspect if the matrix contains perspective.
Definition at line 1620 of file SkMatrix.h.
Returns vector (dx, dy) multiplied by SkMatrix, treating SkMatrix translation as zero. Given:
| A B 0 | | dx | Matrix = | D E 0 |, vec = | dy | | G H I | | 1 |
each result vector is computed as:
|A B 0| |dx| A*dx+B*dy D*dx+E*dy
Matrix * vec = |D E 0| |dy| = |A*dx+B*dy D*dx+E*dy G*dx+H*dy+I| = --------— , --------— |G H I| | 1| G*dx+H*dy+I G*dx+*dHy+I
dx | x-axis value of vector to map |
dy | y-axis value of vector to map |
Definition at line 1546 of file SkMatrix.h.
Maps vector (dx, dy) to result. Vector is mapped by multiplying by SkMatrix, treating SkMatrix translation as zero. Given:
| A B 0 | | dx | Matrix = | D E 0 |, vec = | dy | | G H I | | 1 |
each result vector is computed as:
|A B 0| |dx| A*dx+B*dy D*dx+E*dy
Matrix * vec = |D E 0| |dy| = |A*dx+B*dy D*dx+E*dy G*dx+H*dy+I| = --------— , --------— |G H I| | 1| G*dx+H*dy+I G*dx+*dHy+I
dx | x-axis value of vector to map |
dy | y-axis value of vector to map |
result | storage for mapped vector |
Definition at line 1524 of file SkMatrix.h.
Maps src vector array of length count to vector SkPoint array of equal or greater length. Vectors are mapped by multiplying each vector by SkMatrix, treating SkMatrix translation as zero. Given:
| A B 0 | | x | Matrix = | D E 0 |, src = | y | | G H I | | 1 |
where
for (i = 0; i < count; ++i) { x = src[i].fX y = src[i].fY }
each dst vector is computed as:
|A B 0| |x| Ax+By Dx+Ey Matrix * src = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+I| = ------- , ------- |G H I| |1| Gx+Hy+I Gx+Hy+I
src and dst may point to the same storage.
dst | storage for mapped vectors |
src | vectors to transform |
count | number of vectors to transform |
example: https://fiddle.skia.org/c/@Matrix_mapVectors
Definition at line 1097 of file SkMatrix.cpp.
Maps vecs vector array of length count in place, multiplying each vector by SkMatrix, treating SkMatrix translation as zero. Given:
| A B 0 | | x | Matrix = | D E 0 |, vec = | y | | G H I | | 1 |
where
for (i = 0; i < count; ++i) { x = vecs[i].fX y = vecs[i].fY }
each result vector is computed as:
|A B 0| |x| Ax+By Dx+Ey Matrix * vec = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+I| = ------- , ------- |G H I| |1| Gx+Hy+I Gx+Hy+I
vecs | vectors to transform, and storage for mapped vectors |
count | number of vectors to transform |
Definition at line 1503 of file SkMatrix.h.
Returns SkPoint (x, y) multiplied by SkMatrix. Given:
| A B C | | x | Matrix = | D E F |, pt = | y | | G H I | | 1 |
result is computed as:
|A B C| |x| Ax+By+C Dx+Ey+F Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , ------- |G H I| |1| Gx+Hy+I Gx+Hy+I
Definition at line 1416 of file SkMatrix.h.
Maps SkPoint (x, y) to result. SkPoint is mapped by multiplying by SkMatrix. Given:
| A B C | | x | Matrix = | D E F |, pt = | y | | G H I | | 1 |
result is computed as:
|A B C| |x| Ax+By+C Dx+Ey+F Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , ------- |G H I| |1| Gx+Hy+I Gx+Hy+I
x | x-axis value of SkPoint to map |
y | y-axis value of SkPoint to map |
result | storage for mapped SkPoint |
example: https://fiddle.skia.org/c/@Matrix_mapXY
Definition at line 777 of file SkMatrix.cpp.
|
inline |
A matrix is categorized as 'perspective' if the bottom row is not [0, 0, 1]. However, for most uses (e.g. mapPoints) a bottom row of [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, X], it will be changed to [0, 0, 1] by scaling the rest of the matrix by 1/X.
| A B C | | A/X B/X C/X | | D E F | -> | D/X E/X F/X | for X != 0 | 0 0 X | | 0 0 1 |
Definition at line 1270 of file SkMatrix.h.
Returns writable SkMatrix value. Asserts if index is out of range and SK_DEBUG is defined. Clears internal cache anticipating that caller will change SkMatrix value.
Next call to read SkMatrix state may recompute cache; subsequent writes to SkMatrix value must be followed by dirtyMatrixTypeCache().
index | one of: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY, kMPersp0, kMPersp1, kMPersp2 |
Definition at line 476 of file SkMatrix.h.
Returns one matrix value. Asserts if index is out of range and SK_DEBUG is defined.
index | one of: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY, kMPersp0, kMPersp1, kMPersp2 |
Definition at line 380 of file SkMatrix.h.
Sets SkMatrix to SkMatrix other multiplied by SkMatrix. This can be thought of mapping by other after applying SkMatrix.
Given:
| J K L | | A B C | Matrix = | M N O |, other = | D E F | | P Q R | | G H I |
sets SkMatrix to:
| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR | other * Matrix = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR | | G H I | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
other | SkMatrix on left side of multiply expression |
Definition at line 683 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix constructed from rotating by degrees about pivot point (0, 0), multiplied by SkMatrix. This can be thought of as rotating about the origin after applying SkMatrix.
Positive degrees rotates clockwise.
Given:
| J K L | | c -s 0 | Matrix = | M N O |, R(degrees, px, py) = | s c 0 | | P Q R | | 0 0 1 |
where
c = cos(degrees) s = sin(degrees)
sets SkMatrix to:
| c -s dx | | J K L | | cJ-sM cK-sN cL-sO | R(degrees, px, py) * Matrix = | s c dy | | M N O | = | sJ+cM sK+cN sL+cO | | 0 0 1 | | P Q R | | P Q R |
degrees | angle of axes relative to upright axes |
Definition at line 480 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix constructed from rotating by degrees about pivot point (px, py), multiplied by SkMatrix. This can be thought of as rotating about a pivot point after applying SkMatrix.
Positive degrees rotates clockwise.
Given:
| J K L | | c -s dx | Matrix = | M N O |, R(degrees, px, py) = | s c dy | | P Q R | | 0 0 1 |
where
c = cos(degrees) s = sin(degrees) dx = s * py + (1 - c) * px dy = -s * px + (1 - c) * py
sets SkMatrix to:
|c -s dx| |J K L| |cJ-sM+dx*P cK-sN+dx*Q cL-sO+dx+R| R(degrees, px, py) * Matrix = |s c dy| |M N O| = |sJ+cM+dy*P sK+cN+dy*Q sL+cO+dy*R| |0 0 1| |P Q R| | P Q R|
degrees | angle of axes relative to upright axes |
px | pivot on x-axis |
py | pivot on y-axis |
Definition at line 474 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix constructed from scaling by (sx, sy) about pivot point (0, 0), multiplied by SkMatrix. This can be thought of as scaling about the origin after applying SkMatrix.
Given:
| J K L | | sx 0 0 | Matrix = | M N O |, S(sx, sy) = | 0 sy 0 | | P Q R | | 0 0 1 |
sets SkMatrix to:
| sx 0 0 | | J K L | | sx*J sx*K sx*L | S(sx, sy) * Matrix = | 0 sy 0 | | M N O | = | sy*M sy*N sy*O | | 0 0 1 | | P Q R | | P Q R |
sx | horizontal scale factor |
sy | vertical scale factor |
Definition at line 369 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix constructed from scaling by (sx, sy) about pivot point (px, py), multiplied by SkMatrix. This can be thought of as scaling about a pivot point after applying SkMatrix.
Given:
| J K L | | sx 0 dx | Matrix = | M N O |, S(sx, sy, px, py) = | 0 sy dy | | P Q R | | 0 0 1 |
where
dx = px - sx * px dy = py - sy * py
sets SkMatrix to:
| sx 0 dx | | J K L | | sx*J+dx*P sx*K+dx*Q sx*L+dx+R | S(sx, sy, px, py) * Matrix = | 0 sy dy | | M N O | = | sy*M+dy*P sy*N+dy*Q sy*O+dy*R | | 0 0 1 | | P Q R | | P Q R |
sx | horizontal scale factor |
sy | vertical scale factor |
px | pivot on x-axis |
py | pivot on y-axis |
Definition at line 360 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix constructed from skewing by (kx, ky) about pivot point (0, 0), multiplied by SkMatrix. This can be thought of as skewing about the origin after applying SkMatrix.
Given:
| J K L | | 1 kx 0 | Matrix = | M N O |, K(kx, ky) = | ky 1 0 | | P Q R | | 0 0 1 |
sets SkMatrix to:
| 1 kx 0 | | J K L | | J+kx*M K+kx*N L+kx*O | K(kx, ky) * Matrix = | ky 1 0 | | M N O | = | ky*J+M ky*K+N ky*L+O | | 0 0 1 | | P Q R | | P Q R |
kx | horizontal skew factor |
ky | vertical skew factor |
Definition at line 530 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix constructed from skewing by (kx, ky) about pivot point (px, py), multiplied by SkMatrix. This can be thought of as skewing about a pivot point after applying SkMatrix.
Given:
| J K L | | 1 kx dx | Matrix = | M N O |, K(kx, ky, px, py) = | ky 1 dy | | P Q R | | 0 0 1 |
where
dx = -kx * py dy = -ky * px
sets SkMatrix to:
| 1 kx dx| |J K L| |J+kx*M+dx*P K+kx*N+dx*Q L+kx*O+dx+R| K(kx, ky, px, py) * Matrix = |ky 1 dy| |M N O| = |ky*J+M+dy*P ky*K+N+dy*Q ky*L+O+dy*R| | 0 0 1| |P Q R| | P Q R|
kx | horizontal skew factor |
ky | vertical skew factor |
px | pivot on x-axis |
py | pivot on y-axis |
Definition at line 524 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix constructed from translation (dx, dy) multiplied by SkMatrix. This can be thought of as moving the point to be mapped after applying SkMatrix.
Given:
| J K L | | 1 0 dx | Matrix = | M N O |, T(dx, dy) = | 0 1 dy | | P Q R | | 0 0 1 |
sets SkMatrix to:
| 1 0 dx | | J K L | | J+dx*P K+dx*Q L+dx*R | T(dx, dy) * Matrix = | 0 1 dy | | M N O | = | M+dy*P N+dy*Q O+dy*R | | 0 0 1 | | P Q R | | P Q R |
dx | x-axis translation after applying SkMatrix |
dy | y-axis translation after applying SkMatrix |
Definition at line 281 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix multiplied by SkMatrix other. This can be thought of mapping by other before applying SkMatrix.
Given:
| A B C | | J K L | Matrix = | D E F |, other = | M N O | | G H I | | P Q R |
sets SkMatrix to:
| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR | Matrix * other = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR | | G H I | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
other | SkMatrix on right side of multiply expression |
Definition at line 674 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix multiplied by SkMatrix constructed from rotating by degrees about pivot point (0, 0). This can be thought of as rotating about the origin before applying SkMatrix.
Positive degrees rotates clockwise.
Given:
| A B C | | c -s 0 | Matrix = | D E F |, R(degrees, px, py) = | s c 0 | | G H I | | 0 0 1 |
where
c = cos(degrees) s = sin(degrees)
sets SkMatrix to:
| A B C | | c -s 0 | | Ac+Bs -As+Bc C | Matrix * R(degrees, px, py) = | D E F | | s c 0 | = | Dc+Es -Ds+Ec F | | G H I | | 0 0 1 | | Gc+Hs -Gs+Hc I |
degrees | angle of axes relative to upright axes |
Definition at line 468 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix multiplied by SkMatrix constructed from rotating by degrees about pivot point (px, py). This can be thought of as rotating about a pivot point before applying SkMatrix.
Positive degrees rotates clockwise.
Given:
| A B C | | c -s dx | Matrix = | D E F |, R(degrees, px, py) = | s c dy | | G H I | | 0 0 1 |
where
c = cos(degrees) s = sin(degrees) dx = s * py + (1 - c) * px dy = -s * px + (1 - c) * py
sets SkMatrix to:
| A B C | | c -s dx | | Ac+Bs -As+Bc A*dx+B*dy+C | Matrix * R(degrees, px, py) = | D E F | | s c dy | = | Dc+Es -Ds+Ec D*dx+E*dy+F | | G H I | | 0 0 1 | | Gc+Hs -Gs+Hc G*dx+H*dy+I |
degrees | angle of axes relative to upright axes |
px | pivot on x-axis |
py | pivot on y-axis |
Definition at line 462 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix multiplied by SkMatrix constructed from scaling by (sx, sy) about pivot point (0, 0). This can be thought of as scaling about the origin before applying SkMatrix.
Given:
| A B C | | sx 0 0 | Matrix = | D E F |, S(sx, sy) = | 0 sy 0 | | G H I | | 0 0 1 |
sets SkMatrix to:
| A B C | | sx 0 0 | | A*sx B*sy C | Matrix * S(sx, sy) = | D E F | | 0 sy 0 | = | D*sx E*sy F | | G H I | | 0 0 1 | | G*sx H*sy I |
sx | horizontal scale factor |
sy | vertical scale factor |
Definition at line 325 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix multiplied by SkMatrix constructed from scaling by (sx, sy) about pivot point (px, py). This can be thought of as scaling about a pivot point before applying SkMatrix.
Given:
| A B C | | sx 0 dx | Matrix = | D E F |, S(sx, sy, px, py) = | 0 sy dy | | G H I | | 0 0 1 |
where
dx = px - sx * px dy = py - sy * py
sets SkMatrix to:
| A B C | | sx 0 dx | | A*sx B*sy A*dx+B*dy+C | Matrix * S(sx, sy, px, py) = | D E F | | 0 sy dy | = | D*sx E*sy D*dx+E*dy+F | | G H I | | 0 0 1 | | G*sx H*sy G*dx+H*dy+I |
sx | horizontal scale factor |
sy | vertical scale factor |
px | pivot on x-axis |
py | pivot on y-axis |
Definition at line 315 of file SkMatrix.cpp.
|
inline |
Returns true SkMatrix maps SkRect to another SkRect. If true, SkMatrix is identity, or scales, or rotates a multiple of 90 degrees, or mirrors on axes. In all cases, SkMatrix may also have translation. SkMatrix form is either:
| scale-x 0 translate-x | | 0 scale-y translate-y | | 0 0 1 |
or
| 0 rotate-x translate-x | | rotate-y 0 translate-y | | 0 0 1 |
for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
Also called rectStaysRect(); use the one that provides better inline documentation.
Definition at line 299 of file SkMatrix.h.
bool SkMatrix::preservesRightAngles | ( | SkScalar | tol = SK_ScalarNearlyZero | ) | const |
Returns true if SkMatrix contains only translation, rotation, reflection, and scale. Scale may differ along rotated axes. Returns false if SkMatrix skewing, perspective, or degenerate forms that collapse to a line or point.
Preserves right angles, but not requiring that the arms of the angle retain equal lengths.
tol | to be deprecated |
example: https://fiddle.skia.org/c/@Matrix_preservesRightAngles
Definition at line 209 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix multiplied by SkMatrix constructed from skewing by (kx, ky) about pivot point (0, 0). This can be thought of as skewing about the origin before applying SkMatrix.
Given:
| A B C | | 1 kx 0 | Matrix = | D E F |, K(kx, ky) = | ky 1 0 | | G H I | | 0 0 1 |
sets SkMatrix to:
| A B C | | 1 kx 0 | | A+B*ky A*kx+B C | Matrix * K(kx, ky) = | D E F | | ky 1 0 | = | D+E*ky D*kx+E F | | G H I | | 0 0 1 | | G+H*ky G*kx+H I |
kx | horizontal skew factor |
ky | vertical skew factor |
Definition at line 518 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix multiplied by SkMatrix constructed from skewing by (kx, ky) about pivot point (px, py). This can be thought of as skewing about a pivot point before applying SkMatrix.
Given:
| A B C | | 1 kx dx | Matrix = | D E F |, K(kx, ky, px, py) = | ky 1 dy | | G H I | | 0 0 1 |
where
dx = -kx * py dy = -ky * px
sets SkMatrix to:
| A B C | | 1 kx dx | | A+B*ky A*kx+B A*dx+B*dy+C | Matrix * K(kx, ky, px, py) = | D E F | | ky 1 dy | = | D+E*ky D*kx+E D*dx+E*dy+F | | G H I | | 0 0 1 | | G+H*ky G*kx+H G*dx+H*dy+I |
kx | horizontal skew factor |
ky | vertical skew factor |
px | pivot on x-axis |
py | pivot on y-axis |
Definition at line 512 of file SkMatrix.cpp.
Sets SkMatrix to SkMatrix multiplied by SkMatrix constructed from translation (dx, dy). This can be thought of as moving the point to be mapped before applying SkMatrix.
Given:
| A B C | | 1 0 dx | Matrix = | D E F |, T(dx, dy) = | 0 1 dy | | G H I | | 0 0 1 |
sets SkMatrix to:
| A B C | | 1 0 dx | | A B A*dx+B*dy+C | Matrix * T(dx, dy) = | D E F | | 0 1 dy | = | D E D*dx+E*dy+F | | G H I | | 0 0 1 | | G H G*dx+H*dy+I |
dx | x-axis translation before applying SkMatrix |
dy | y-axis translation before applying SkMatrix |
Definition at line 263 of file SkMatrix.cpp.
Returns one matrix value from a particular row/column. Asserts if index is out of range and SK_DEBUG is defined.
r | matrix row to fetch |
c | matrix column to fetch |
Definition at line 404 of file SkMatrix.h.
|
inline |
Returns true SkMatrix maps SkRect to another SkRect. If true, SkMatrix is identity, or scales, or rotates a multiple of 90 degrees, or mirrors on axes. In all cases, SkMatrix may also have translation. SkMatrix form is either:
| scale-x 0 translate-x | | 0 scale-y translate-y | | 0 0 1 |
or
| 0 rotate-x translate-x | | rotate-y 0 translate-y | | 0 0 1 |
for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
Also called preservesAxisAlignment(); use the one that provides better inline documentation.
Definition at line 271 of file SkMatrix.h.
|
inlinestatic |
Returns SkMatrix set to scale and translate src to dst. ScaleToFit selects whether mapping completely fills dst or preserves the aspect ratio, and how to align src within dst. Returns the identity SkMatrix if src is empty. If dst is empty, returns SkMatrix set to:
| 0 0 0 | | 0 0 0 | | 0 0 1 |
Definition at line 157 of file SkMatrix.h.
SkMatrix & SkMatrix::reset | ( | ) |
Sets SkMatrix to identity; which has no effect on mapped SkPoint. Sets SkMatrix to:
| 1 0 0 | | 0 1 0 | | 0 0 1 |
Also called setIdentity(); use the one that provides better inline documentation.
Definition at line 49 of file SkMatrix.cpp.
Definition at line 114 of file SkMatrix.h.
Sets SkMatrix value. Asserts if index is out of range and SK_DEBUG is defined. Safer than operator[]; internal cache is always maintained.
index | one of: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY, kMPersp0, kMPersp1, kMPersp2 |
value | scalar to store in SkMatrix |
Definition at line 489 of file SkMatrix.h.
Sets SkMatrix to nine scalar values in buffer, in member value ascending order: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY, kMPersp0, kMPersp1, kMPersp2.
Sets matrix to:
| buffer[0] buffer[1] buffer[2] | | buffer[3] buffer[4] buffer[5] | | buffer[6] buffer[7] buffer[8] |
In the future, set9 followed by get9 may not return the same values. Since SkMatrix maps non-homogeneous coordinates, scaling all nine values produces an equivalent transformation, possibly improving precision.
buffer | nine scalar values |
Definition at line 51 of file SkMatrix.cpp.
Sets SkMatrix to affine values, passed in column major order. Given affine, column, then row, as:
| scale-x skew-x translate-x | | skew-y scale-y translate-y |
SkMatrix is set, row, then column, to:
| scale-x skew-x translate-x | | skew-y scale-y translate-y | | 0 0 1 |
affine | 3 by 2 affine matrix |
Definition at line 57 of file SkMatrix.cpp.
|
static |
Fills affine with identity values in column major order. Sets affine to:
| 1 0 0 | | 0 1 0 |
Affine 3 by 2 matrices in column major order are used by OpenGL and XPS.
affine | storage for 3 by 2 affine matrix |
example: https://fiddle.skia.org/c/@Matrix_SetAffineIdentity
Definition at line 746 of file SkMatrix.cpp.
|
inline |
Sets all values from parameters. Sets matrix to:
| scaleX skewX transX | | skewY scaleY transY | | persp0 persp1 persp2 |
scaleX | horizontal scale factor to store |
skewX | horizontal skew factor to store |
transX | horizontal translation to store |
skewY | vertical skew factor to store |
scaleY | vertical scale factor to store |
transY | vertical translation to store |
persp0 | input x-axis values perspective factor to store |
persp1 | input y-axis values perspective factor to store |
persp2 | perspective scale factor to store |
Definition at line 562 of file SkMatrix.h.
Sets SkMatrix to SkMatrix a multiplied by SkMatrix b. Either a or b may be this.
Given:
| A B C | | J K L | a = | D E F |, b = | M N O | | G H I | | P Q R |
sets SkMatrix to:
| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR | a * b = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR | | G H I | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
a | SkMatrix on left side of multiply expression |
b | SkMatrix on right side of multiply expression |
Definition at line 603 of file SkMatrix.cpp.
|
inline |
Sets input x-axis perspective factor, which causes mapXY() to vary input x-axis values inversely proportional to input y-axis values.
v | perspective factor |
Definition at line 537 of file SkMatrix.h.
Sets input y-axis perspective factor, which causes mapXY() to vary input y-axis values inversely proportional to input x-axis values.
v | perspective factor |
Definition at line 544 of file SkMatrix.h.
Sets SkMatrix to map src to dst. count must be zero or greater, and four or less.
If count is zero, sets SkMatrix to identity and returns true. If count is one, sets SkMatrix to translate and returns true. If count is two or more, sets SkMatrix to map SkPoint if possible; returns false if SkMatrix cannot be constructed. If count is four, SkMatrix may include perspective.
example: https://fiddle.skia.org/c/@Matrix_setPolyToPoly
Definition at line 1385 of file SkMatrix.cpp.
bool SkMatrix::setRectToRect | ( | const SkRect & | src, |
const SkRect & | dst, | ||
ScaleToFit | stf | ||
) |
Sets SkMatrix to scale and translate src SkRect to dst SkRect. stf selects whether mapping completely fills dst or preserves the aspect ratio, and how to align src within dst. Returns false if src is empty, and sets SkMatrix to identity. Returns true if dst is empty, and sets SkMatrix to:
| 0 0 0 | | 0 0 0 | | 0 0 1 |
example: https://fiddle.skia.org/c/@Matrix_setRectToRect
Definition at line 538 of file SkMatrix.cpp.
Sets SkMatrix to rotate by degrees about a pivot point at (0, 0). Positive degrees rotates clockwise.
degrees | angle of axes relative to upright axes |
Definition at line 457 of file SkMatrix.cpp.
Sets SkMatrix to rotate by degrees about a pivot point at (px, py). The pivot point is unchanged when mapped with SkMatrix.
Positive degrees rotates clockwise.
degrees | angle of axes relative to upright axes |
px | pivot on x-axis |
py | pivot on y-axis |
Definition at line 452 of file SkMatrix.cpp.
Sets SkMatrix to rotate, scale, and translate using a compressed matrix form.
Vector (rsxForm.fSSin, rsxForm.fSCos) describes the angle of rotation relative to (0, 1). Vector length specifies scale. Mapped point is rotated and scaled by vector, then translated by (rsxForm.fTx, rsxForm.fTy).
rsxForm | compressed SkRSXform matrix |
example: https://fiddle.skia.org/c/@Matrix_setRSXform
Definition at line 420 of file SkMatrix.cpp.
Sets SkMatrix to scale by sx and sy about at pivot point at (0, 0).
sx | horizontal scale factor |
sy | vertical scale factor |
Definition at line 305 of file SkMatrix.cpp.
Sets SkMatrix to scale by sx and sy, about a pivot point at (px, py). The pivot point is unchanged when mapped with SkMatrix.
sx | horizontal scale factor |
sy | vertical scale factor |
px | pivot on x-axis |
py | pivot on y-axis |
Definition at line 296 of file SkMatrix.cpp.
Initializes SkMatrix with scale and translate elements.
| sx 0 tx | | 0 sy ty | | 0 0 1 |
sx | horizontal scale factor to store |
sy | vertical scale factor to store |
tx | horizontal translation to store |
ty | vertical translation to store |
Definition at line 1803 of file SkMatrix.h.
Sets horizontal scale factor.
v | horizontal scale factor to store |
Definition at line 500 of file SkMatrix.h.
Sets vertical scale factor.
v | vertical scale factor to store |
Definition at line 506 of file SkMatrix.h.
Sets SkMatrix to rotate by sinValue and cosValue, about a pivot point at (0, 0).
Vector (sinValue, cosValue) describes the angle of rotation relative to (0, 1). Vector length specifies scale.
sinValue | rotation vector x-axis component |
cosValue | rotation vector y-axis component |
Definition at line 436 of file SkMatrix.cpp.
Sets SkMatrix to rotate by sinValue and cosValue, about a pivot point at (px, py). The pivot point is unchanged when mapped with SkMatrix.
Vector (sinValue, cosValue) describes the angle of rotation relative to (0, 1). Vector length specifies scale.
sinValue | rotation vector x-axis component |
cosValue | rotation vector y-axis component |
px | pivot on x-axis |
py | pivot on y-axis |
Definition at line 402 of file SkMatrix.cpp.
Sets SkMatrix to skew by kx and ky, about a pivot point at (0, 0).
kx | horizontal skew factor |
ky | vertical skew factor |
Definition at line 496 of file SkMatrix.cpp.
Sets SkMatrix to skew by kx and ky, about a pivot point at (px, py). The pivot point is unchanged when mapped with SkMatrix.
kx | horizontal skew factor |
ky | vertical skew factor |
px | pivot on x-axis |
py | pivot on y-axis |
Definition at line 488 of file SkMatrix.cpp.
Sets horizontal skew factor.
v | horizontal skew factor to store |
Definition at line 518 of file SkMatrix.h.
Sets vertical skew factor.
v | vertical skew factor to store |
Definition at line 512 of file SkMatrix.h.
Sets SkMatrix to translate by (v.fX, v.fY).
v | vector containing horizontal and vertical translation |
Definition at line 639 of file SkMatrix.h.
Sets SkMatrix to translate by (dx, dy).
dx | horizontal translation |
dy | vertical translation |
Definition at line 254 of file SkMatrix.cpp.
Sets horizontal translation.
v | horizontal translation to store |
Definition at line 524 of file SkMatrix.h.
Sets vertical translation.
v | vertical translation to store |
Definition at line 530 of file SkMatrix.h.
Definition at line 97 of file SkMatrix.h.
Definition at line 96 of file SkMatrix.h.
Compares a and b; returns true if a and b are not numerically equal. Returns false even if sign of zero values are different. Returns true if either SkMatrix contains NaN, even if the other SkMatrix also contains NaN.
Definition at line 1667 of file SkMatrix.h.
Definition at line 1781 of file SkMatrix.h.
Compares a and b; returns true if a and b are numerically equal. Returns true even if sign of zero values are different. Returns false if either SkMatrix contains NaN, even if the other SkMatrix also contains NaN.
Definition at line 160 of file SkMatrix.cpp.
|
friend |
Definition at line 1993 of file SkMatrix.h.
|
friend |
Definition at line 1992 of file SkMatrix.h.
|
friend |
Definition at line 1991 of file SkMatrix.h.
|
staticconstexpr |
horizontal scale factor
Affine arrays are in column-major order to match the matrix used by PDF and XPS.
Definition at line 366 of file SkMatrix.h.
|
staticconstexpr |
vertical scale factor
Definition at line 369 of file SkMatrix.h.
|
staticconstexpr |
horizontal skew factor
Definition at line 368 of file SkMatrix.h.
|
staticconstexpr |
vertical skew factor
Definition at line 367 of file SkMatrix.h.
|
staticconstexpr |
horizontal translation
Definition at line 370 of file SkMatrix.h.
|
staticconstexpr |
vertical translation
Definition at line 371 of file SkMatrix.h.
|
staticconstexpr |
input x perspective factor
Definition at line 359 of file SkMatrix.h.
|
staticconstexpr |
input y perspective factor
Definition at line 360 of file SkMatrix.h.
|
staticconstexpr |
perspective bias
Definition at line 361 of file SkMatrix.h.
|
staticconstexpr |
horizontal scale factor
SkMatrix organizes its values in row-major order. These members correspond to each value in SkMatrix.
Definition at line 353 of file SkMatrix.h.
|
staticconstexpr |
vertical scale factor
Definition at line 357 of file SkMatrix.h.
|
staticconstexpr |
horizontal skew factor
Definition at line 354 of file SkMatrix.h.
|
staticconstexpr |
vertical skew factor
Definition at line 356 of file SkMatrix.h.
|
staticconstexpr |
horizontal translation
Definition at line 355 of file SkMatrix.h.
|
staticconstexpr |
vertical translation
Definition at line 358 of file SkMatrix.h.