• Home
  • Raw
  • Download

Lines Matching full:a

5 <a name='SkMatrix'></a>
10 class <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> {
12a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a h…
13 …static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale<…
14a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeTrans'>MakeTrans</a>(<a h…
15a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeAll'>MakeAll</a>(<a href=…
16 …<a href='undocumented#SkScalar'>SkScalar</a> skewY, <a href='undocumented#SkScalar'>SkScalar</a> s…
17 …<a href='undocumented#SkScalar'>SkScalar</a> pers0, <a href='undocumented#SkScalar'>SkScalar</a> p…
19 enum <a href='#SkMatrix_TypeMask'>TypeMask</a> {
20 <a href='#SkMatrix_kIdentity_Mask'>kIdentity_Mask</a> = 0,
21 <a href='#SkMatrix_kTranslate_Mask'>kTranslate_Mask</a> = 0x01,
22 <a href='#SkMatrix_kScale_Mask'>kScale_Mask</a> = 0x02,
23 <a href='#SkMatrix_kAffine_Mask'>kAffine_Mask</a> = 0x04,
24 <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a> = 0x08,
27 <a href='#SkMatrix_TypeMask'>TypeMask</a> <a href='#SkMatrix_getType'>getType</a>() const;
28 bool <a href='#SkMatrix_isIdentity'>isIdentity</a>() const;
29 bool <a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a>() const;
30 bool <a href='#SkMatrix_isTranslate'>isTranslate</a>() const;
31 bool <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>() const;
32 bool <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>() const;
33 bool <a href='#SkMatrix_hasPerspective'>hasPerspective</a>() const;
34a href='#SkMatrix_isSimilarity'>isSimilarity</a>(<a href='undocumented#SkScalar'>SkScalar</a> tol …
35a href='#SkMatrix_preservesRightAngles'>preservesRightAngles</a>(<a href='undocumented#SkScalar'>S…
37a href='#SkMatrix_kMScaleX'>kMScaleX</a> = 0 static constexpr int <a href='#SkMatrix_kMSkewX'>k…
38 …<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_array_operator'>operator[]</a>(int…
39 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_get'>get</a>(int index) const;
40 … <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleX'>getScaleX</a>() const;
41 … <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleY'>getScaleY</a>() const;
42 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewY'>getSkewY</a>() const;
43 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewX'>getSkewX</a>() const;
44 …<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateX'>getTranslateX</a>()…
45 …<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateY'>getTranslateY</a>()…
46 … <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspX'>getPerspX</a>() const;
47 … <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspY'>getPerspY</a>() const;
48 …<a href='undocumented#SkScalar'>SkScalar</a>& <a href='#SkMatrix_array1_operator'>operator[]</a>(i…
49 …void <a href='#SkMatrix_set'>set</a>(int index, <a href='undocumented#SkScalar'>SkScalar</a> value…
50 … void <a href='#SkMatrix_setScaleX'>setScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
51 … void <a href='#SkMatrix_setScaleY'>setScaleY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
52 void <a href='#SkMatrix_setSkewY'>setSkewY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
53 void <a href='#SkMatrix_setSkewX'>setSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
54 …void <a href='#SkMatrix_setTranslateX'>setTranslateX</a>(<a href='undocumented#SkScalar'>SkScalar<…
55 …void <a href='#SkMatrix_setTranslateY'>setTranslateY</a>(<a href='undocumented#SkScalar'>SkScalar<…
56 … void <a href='#SkMatrix_setPerspX'>setPerspX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
57 … void <a href='#SkMatrix_setPerspY'>setPerspY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
58a href='#SkMatrix_setAll'>setAll</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX, <a href=…
59 …<a href='undocumented#SkScalar'>SkScalar</a> skewY, <a href='undocumented#SkScalar'>SkScalar</a> s…
60 …<a href='undocumented#SkScalar'>SkScalar</a> persp0, <a href='undocumented#SkScalar'>SkScalar</a> …
61 …void <a href='#SkMatrix_get9'>get9</a>(<a href='undocumented#SkScalar'>SkScalar</a> buffer[9]) con…
62 …void <a href='#SkMatrix_set9'>set9</a>(const <a href='undocumented#SkScalar'>SkScalar</a> buffer[9…
63 void <a href='#SkMatrix_reset'>reset()</a>;
64 void <a href='#SkMatrix_setIdentity'>setIdentity</a>();
65 …void <a href='#SkMatrix_setTranslate'>setTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a
66 …void <a href='#SkMatrix_setTranslate'>setTranslate</a>(const <a href='SkPoint_Reference#SkVector'>…
67a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href=…
68 …void <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a
69a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <
70 …void <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degr…
71 …void <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> sinV…
72 … <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py);
73 …void <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> sinV…
74 …<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_setRSXform'>setRSXform</a>(…
75a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='u…
76 …void <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a h…
77a href='#SkMatrix_setConcat'>setConcat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a
78 …void <a href='#SkMatrix_preTranslate'>preTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a
79a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href=…
80 …void <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a
81a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <
82 …void <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degr…
83a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='u…
84 …void <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a h…
85 …void <a href='#SkMatrix_preConcat'>preConcat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMat…
86 …oid <a href='#SkMatrix_postTranslate'>postTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</
87a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a hre…
88 …void <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, …
89 bool <a href='#SkMatrix_postIDiv'>postIDiv</a>(int divx, int divy);
90a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees,…
91 …void <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> de…
92a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href=…
93 …void <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a
94 …void <a href='#SkMatrix_postConcat'>postConcat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkM…
96 enum <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> {
97 <a href='#SkMatrix_kFill_ScaleToFit'>kFill_ScaleToFit</a>,
98 <a href='#SkMatrix_kStart_ScaleToFit'>kStart_ScaleToFit</a>,
99 <a href='#SkMatrix_kCenter_ScaleToFit'>kCenter_ScaleToFit</a>,
100 <a href='#SkMatrix_kEnd_ScaleToFit'>kEnd_ScaleToFit</a>,
103a href='#SkMatrix_setRectToRect'>setRectToRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect<…
104a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeRectToRect'>MakeRectToRec…
105a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoi…
106 …bool <a href='#SkMatrix_invert'>invert</a>(<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* inv…
107 …static void <a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</a>(<a href='undocumented#SkSc…
108 …bool <a href='#SkMatrix_asAffine'>asAffine</a>(<a href='undocumented#SkScalar'>SkScalar</a> affine…
109 …void <a href='#SkMatrix_setAffine'>setAffine</a>(const <a href='undocumented#SkScalar'>SkScalar</a
110 …<a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[],…
111 …void <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> p…
112a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</a>(<a href='undocumented#SkPoint3'>S…
113a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocu…
114a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocu…
115a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> dst…
116 …void <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</
117a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a hre…
118a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_mapVector'>mapVector</a>(<a hr…
119 …bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst, co…
120 …bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href…
121 …<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkMatrix_mapRect'>mapRect</a>(const <a href…
122a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a>…
123a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTranslate</a>(<a href='SkRect_Reference#SkRec…
124 …<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_mapRadius'>mapRadius</a>(<a href='…
125 bool <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>() const;
126 …<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_fixedStepInX'>fixedStepInX</a
127 …bool <a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a>(const <a href='SkMatrix_Reference#SkMatrix'…
128a href='#SkMatrix_equal_operator'>operator==</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMat…
129a href='#SkMatrix_notequal_operator'>operator!=</a>(const <a href='SkMatrix_Reference#SkMatrix'>Sk…
130 void <a href='#SkMatrix_dump'>dump()</a> const;
131 …<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMinScale'>getMinScale</a>() con…
132 …<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMaxScale'>getMaxScale</a>() con…
133 …bool <a href='#SkMatrix_getMinMaxScales'>getMinMaxScales</a>(<a href='undocumented#SkScalar'>SkSca…
134 …<a href='#SkMatrix_decomposeScale'>decomposeScale</a>(<a href='undocumented#SkSize'>SkSize</a>* sc…
135 static const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_I'>I</a>();
136 …static const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_InvalidMatrix'…
137a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat'>Concat</a>(const <a h…
138 void <a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a>();
139a href='#SkMatrix_setScaleTranslate'>setScaleTranslate</a>(<a href='undocumented#SkScalar'>SkScala…
140 bool <a href='#SkMatrix_isFinite'>isFinite</a>() const;
145 <a href='SkMatrix_Reference#Matrix'>Matrix</a> holds a 3 by 3 <a href='SkMatrix_Reference#Matrix'>m…
146 <a href='SkPoint_Reference#Point'>Points</a> and <a href='SkPoint_Reference#Vector'>Vectors</a> wit…
149 <a href='SkMatrix_Reference#Matrix'>Matrix</a> elements are in row major order. <a href='SkMatrix_R…
150 …xplicitly initialized. <a href='#SkMatrix_setIdentity'>setIdentity</a> initializes <a href='SkMatr…
151a href='#SkMatrix_setTranslate'>setTranslate</a>, <a href='#SkMatrix_setScale'>setScale</a>, <a hr…
152 initializes all <a href='SkMatrix_Reference#Matrix'>Matrix</a> elements with the corresponding mapp…
154 <a href='SkMatrix_Reference#Matrix'>Matrix</a> includes a hidden variable that classifies the type …
155 …mprove performance. <a href='SkMatrix_Reference#Matrix'>Matrix</a> is not thread safe unless <a hr…
157 <a name='SkMatrix_MakeScale'></a>
162a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a h…
165a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to scale by (<a href='#SkMatrix_MakeScale_sx'>sx…
167 | <a href='#SkMatrix_MakeScale_sx'>sx</a> 0 0 |
168 | 0 <a href='#SkMatrix_MakeScale_sy'>sy</a> 0 |
173 <table> <tr> <td><a name='SkMatrix_MakeScale_sx'><code><strong>sx</strong></code></a></td>
176 <tr> <td><a name='SkMatrix_MakeScale_sy'><code><strong>sy</strong></code></a></td>
183 <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with scale
191 <a href='#SkMatrix_setScale'>setScale</a> <a href='#SkMatrix_postScale'>postScale</a> <a href='#SkM…
193 <a name='SkMatrix_MakeScale_2'></a>
198 static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</
201a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='#SkMatrix_MakeScale_2_scale'>scale</
203 | <a href='#SkMatrix_MakeScale_2_scale'>scale</a> 0 0 |
204 | 0 <a href='#SkMatrix_MakeScale_2_scale'>scale</a> 0 |
209 <table> <tr> <td><a name='SkMatrix_MakeScale_2_scale'><code><strong>scale</strong></code></a></…
210 <td>horizontal and vertical <a href='#SkMatrix_MakeScale_2_scale'>scale</a> factor</td>
216 <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with <a href='#SkMatrix_MakeScale_2_scale'>scale…
224 <a href='#SkMatrix_setScale'>setScale</a> <a href='#SkMatrix_postScale'>postScale</a> <a href='#SkM…
226 <a name='SkMatrix_MakeTrans'></a>
231a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeTrans'>MakeTrans</a>(<a h…
234a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to translate by (<a href='#SkMatrix_MakeTrans_dx…
236 | 1 0 <a href='#SkMatrix_MakeTrans_dx'>dx</a> |
237 | 0 1 <a href='#SkMatrix_MakeTrans_dy'>dy</a> |
242 <table> <tr> <td><a name='SkMatrix_MakeTrans_dx'><code><strong>dx</strong></code></a></td>
245 <tr> <td><a name='SkMatrix_MakeTrans_dy'><code><strong>dy</strong></code></a></td>
252 <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with translation
260 <a href='#SkMatrix_setTranslate'>setTranslate</a> <a href='#SkMatrix_postTranslate'>postTranslate</
262 <a name='SkMatrix_MakeAll'></a>
267a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeAll'>MakeAll</a>(<a href=…
268a href='undocumented#SkScalar'>SkScalar</a> scaleY, <a href='undocumented#SkScalar'>SkScalar</a> t…
269 <a href='undocumented#SkScalar'>SkScalar</a> pers2)
272 Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
274 | <a href='#SkMatrix_MakeAll_scaleX'>scaleX</a> <a href='#SkMatrix_MakeAll_skewX'>skewX</a> <a hre…
275 | <a href='#SkMatrix_MakeAll_skewY'>skewY</a> <a href='#SkMatrix_MakeAll_scaleY'>scaleY</a> <a hre…
276 | <a href='#SkMatrix_MakeAll_pers0'>pers0</a> <a href='#SkMatrix_MakeAll_pers1'>pers1</a> <a hre…
280 <table> <tr> <td><a name='SkMatrix_MakeAll_scaleX'><code><strong>scaleX</strong></code></a></td>
283 <tr> <td><a name='SkMatrix_MakeAll_skewX'><code><strong>skewX</strong></code></a></td>
286 <tr> <td><a name='SkMatrix_MakeAll_transX'><code><strong>transX</strong></code></a></td>
289 <tr> <td><a name='SkMatrix_MakeAll_skewY'><code><strong>skewY</strong></code></a></td>
292 <tr> <td><a name='SkMatrix_MakeAll_scaleY'><code><strong>scaleY</strong></code></a></td>
295 <tr> <td><a name='SkMatrix_MakeAll_transY'><code><strong>transY</strong></code></a></td>
298 <tr> <td><a name='SkMatrix_MakeAll_pers0'><code><strong>pers0</strong></code></a></td>
301 <tr> <td><a name='SkMatrix_MakeAll_pers1'><code><strong>pers1</strong></code></a></td>
304 <tr> <td><a name='SkMatrix_MakeAll_pers2'><code><strong>pers2</strong></code></a></td>
311 <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from parameters
319a href='#SkMatrix_setAll'>setAll</a> <a href='#SkMatrix_set9'>set9</a> <a href='#SkMatrix_postConc…
321 <a name='SkMatrix_TypeMask'></a>
326 enum <a href='#SkMatrix_TypeMask'>TypeMask</a> {
327 <a href='#SkMatrix_kIdentity_Mask'>kIdentity_Mask</a> = 0,
328 <a href='#SkMatrix_kTranslate_Mask'>kTranslate_Mask</a> = 0x01,
329 <a href='#SkMatrix_kScale_Mask'>kScale_Mask</a> = 0x02,
330 <a href='#SkMatrix_kAffine_Mask'>kAffine_Mask</a> = 0x04,
331 <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a> = 0x08,
336 Enumeration of bit fields for mask returned by <a href='#SkMatrix_getType'>getType</a>.
337 Used to identify the complexity of <a href='SkMatrix_Reference#Matrix'>Matrix</a>, to optimize perf…
346 …er: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kIdentity_Mask'><code>SkMatrix::kIdentity…
349 all bits clear if <a href='SkMatrix_Reference#Matrix'>Matrix</a> is identity
353 …r: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kTranslate_Mask'><code>SkMatrix::kTranslat…
356 set if <a href='SkMatrix_Reference#Matrix'>Matrix</a> has translation
360 …order: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kScale_Mask'><code>SkMatrix::kScale_Ma…
363 set if <a href='SkMatrix_Reference#Matrix'>Matrix</a> scales x-axis or y-axis
367 …rder: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kAffine_Mask'><code>SkMatrix::kAffine_M…
370 set if <a href='SkMatrix_Reference#Matrix'>Matrix</a> skews or rotates
374 … 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kPerspective_Mask'><code>SkMatrix::kPerspect…
377 set if <a href='SkMatrix_Reference#Matrix'>Matrix</a> has perspective
400 <a href='#SkMatrix_getType'>getType</a>
402 <a name='Property'></a>
404 <a name='SkMatrix_getType'></a>
409 <a href='#SkMatrix_TypeMask'>TypeMask</a> <a href='#SkMatrix_getType'>getType</a>()const
412 Returns a bit field describing the transformations the <a href='SkMatrix_Reference#Matrix'>matrix</
414 false positives. For example, when <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a> is s…
419a href='#SkMatrix_kIdentity_Mask'>kIdentity_Mask</a>, or combinations of: <a href='#SkMatrix_kTran…
421 <a href='#SkMatrix_kAffine_Mask'>kAffine_Mask</a>, <a href='#SkMatrix_kPerspective_Mask'>kPerspecti…
438 <a href='#SkMatrix_TypeMask'>TypeMask</a>
440 <a name='SkMatrix_isIdentity'></a>
445 bool <a href='#SkMatrix_isIdentity'>isIdentity</a>()const
448 Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity. Identity <a href='…
456 true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> has no effect
473 <a href='#SkMatrix_reset'>reset()</a> <a href='#SkMatrix_setIdentity'>setIdentity</a> <a href='#SkM…
475 <a name='SkMatrix_isScaleTranslate'></a>
480 bool <a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a>()const
483 …s true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> at most scales and translates. <a hre…
484 … scale elements, only translate elements, or both. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix<…
492 true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity; or scales, translates, or b…
511a href='#SkMatrix_setScale'>setScale</a> <a href='#SkMatrix_isTranslate'>isTranslate</a> <a href='…
513 <a name='SkMatrix_isTranslate'></a>
518 bool <a href='#SkMatrix_isTranslate'>isTranslate</a>()const
521 …rns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity, or translates. <a href…
529 true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity, or translates
548 <a href='#SkMatrix_setTranslate'>setTranslate</a> <a href='#SkMatrix_getType'>getType</a>
550 <a name='SkMatrix_rectStaysRect'></a>
555 bool <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>()const
558a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps <a href='SkRect_Reference#SkRect'>SkRect</a
559 or scales, or rotates a multiple of 90 degrees, or mirrors on axes. In all
560 cases, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may also have translation. <a href='SkMat…
574 Also called <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>(); use the one th…
579 true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps one <a href='SkRect_Reference#SkRec…
598 <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a> <a href='#SkMatrix_preservesR…
600 <a name='SkMatrix_preservesAxisAlignment'></a>
605 bool <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>()const
608a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps <a href='SkRect_Reference#SkRect'>SkRect</a
609 or scales, or rotates a multiple of 90 degrees, or mirrors on axes. In all
610 cases, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may also have translation. <a href='SkMat…
624 Also called <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>(); use the one that provides better…
629 true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps one <a href='SkRect_Reference#SkRec…
648 <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a> <a href='#SkMatrix_preservesRightAngles'>preser…
650 <a name='SkMatrix_hasPerspective'></a>
655 bool <a href='#SkMatrix_hasPerspective'>hasPerspective</a>()const
658 …true if the <a href='SkMatrix_Reference#Matrix'>matrix</a> contains perspective elements. <a href=…
669 true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is in most general form
677 <a href='#SkMatrix_setAll'>setAll</a> <a href='#SkMatrix_set9'>set9</a> <a href='#SkMatrix_MakeAll'…
679 <a name='SkMatrix_isSimilarity'></a>
684a href='#SkMatrix_isSimilarity'>isSimilarity</a>(<a href='undocumented#SkScalar'>SkScalar</a> tol …
687 Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains only translation, rotat…
689 Returns false if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains different scales, skew…
690 degenerate forms that collapse to a <a href='undocumented#Line'>line</a> or <a href='SkPoint_Refere…
692 …that the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> makes rendering with and without the <
693 visually alike; a transformed <a href='undocumented#Circle'>circle</a> remains a <a href='undocumen…
694 referred to as similarity of a <a href='undocumented#Euclidean_Space'>Euclidean space</a>, or a si…
700 <table> <tr> <td><a name='SkMatrix_isSimilarity_tol'><code><strong>tol</strong></code></a></td>
707 true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> only rotates, uniformly scales, translat…
711 …ddle-embed name="8b37f4ae7fec1756433c0f984175fb14"><div><a href='undocumented#String'>String</a> i…
712 with <a href='#SkMatrix_isSimilarity'>isSimilarity</a> false reveals the pair not visible through t…
717a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a> <a href='#SkMatrix_preservesRightAngles'>…
719 <a name='SkMatrix_preservesRightAngles'></a>
724a href='#SkMatrix_preservesRightAngles'>preservesRightAngles</a>(<a href='undocumented#SkScalar'>S…
727 Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains only translation, rotat…
729 Returns false if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> skewing, perspective, or degene…
730 to a <a href='undocumented#Line'>line</a> or <a href='SkPoint_Reference#Point'>point</a>.
737 <table> <tr> <td><a name='SkMatrix_preservesRightAngles_tol'><code><strong>tol</strong></code><…
744 true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> only rotates, scales, translates
755a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a> <a href='#SkMatrix_isSimilarity'>isSimila…
757 <a name='MemberIndex'></a>
762 static constexpr int <a href='#SkMatrix_kMScaleX'>kMScaleX</a> = 0;
763 static constexpr int <a href='#SkMatrix_kMSkewX'>kMSkewX</a> = 1;
764 static constexpr int <a href='#SkMatrix_kMTransX'>kMTransX</a> = 2;
765 static constexpr int <a href='#SkMatrix_kMSkewY'>kMSkewY</a> = 3;
766 static constexpr int <a href='#SkMatrix_kMScaleY'>kMScaleY</a> = 4;
767 static constexpr int <a href='#SkMatrix_kMTransY'>kMTransY</a> = 5;
768 static constexpr int <a href='#SkMatrix_kMPersp0'>kMPersp0</a> = 6;
769 static constexpr int <a href='#SkMatrix_kMPersp1'>kMPersp1</a> = 7;
770 static constexpr int <a href='#SkMatrix_kMPersp2'>kMPersp2</a> = 8;
773 <a href='SkMatrix_Reference#Matrix'>Matrix</a> organizes its values in row order. These members cor…
774 each value in <a href='SkMatrix_Reference#Matrix'>Matrix</a>.
783 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMScaleX'><code>SkMatrix::kMScaleX<…
789 …t; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMSkewX'><code>SkMatrix::kMSkewX</…
795 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMTransX'><code>SkMatrix::kMTransX<…
801 …t; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMSkewY'><code>SkMatrix::kMSkewY</…
807 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMScaleY'><code>SkMatrix::kMScaleY<…
813 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMTransY'><code>SkMatrix::kMTransY<…
819 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMPersp0'><code>SkMatrix::kMPersp0<…
825 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMPersp1'><code>SkMatrix::kMPersp1<…
831 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMPersp2'><code>SkMatrix::kMPersp2<…
844 <a href='#SkMatrix_get'>get()</a> <a href='#SkMatrix_set'>set()</a>
846 <a name='AffineIndex'></a>
853 Affine arrays are in column major order to match the <a href='SkMatrix_Reference#Matrix'>matrix</a>…
863 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kAScaleX'><code>SkMatrix::kAScaleX<…
869 …t; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kASkewY'><code>SkMatrix::kASkewY</…
875 …t; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kASkewX'><code>SkMatrix::kASkewX</…
881 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kAScaleY'><code>SkMatrix::kAScaleY<…
887 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kATransX'><code>SkMatrix::kATransX<…
893 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kATransY'><code>SkMatrix::kATransY<…
902 <a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</a> <a href='#SkMatrix_asAffine'>asAffine</
904 <a name='SkMatrix_array_operator'></a>
909 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_array1_operator'>operator[]</a>(int…
927 <a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_set'>set</a>
929 <a name='SkMatrix_get'></a>
934 <a href='undocumented#SkScalar'>SkScalar</a> get(int index)const
937 Returns one <a href='SkMatrix_Reference#Matrix'>matrix</a> value. Asserts if <a href='#SkMatrix_get…
942 <table> <tr> <td><a name='SkMatrix_get_index'><code><strong>index</strong></code></a></td>
943a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMat…
947 <a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkM…
951 value corresponding to <a href='#SkMatrix_get_index'>index</a>
968 <a href='#SkMatrix_array1_operator'>operator[]</a>(int <a href='#SkMatrix_get_index'>index</a>) <a
970 <a name='SkMatrix_getScaleX'></a>
975 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleX'>getScaleX</a>()const
979 With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), scales <a href='SkPoint_Reference#SkPoint'>SkPo…
999a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_getScaleY'>getScaleY</a> <a href='#SkMatrix_setS…
1001 <a name='SkMatrix_getScaleY'></a>
1006 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleY'>getScaleY</a>()const
1010 With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), scales <a href='SkPoint_Reference#SkPoint'>SkPo…
1030a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_getScaleX'>getScaleX</a> <a href='#SkMatrix_setS…
1032 <a name='SkMatrix_getSkewY'></a>
1037 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewY'>getSkewY</a>()const
1041 With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), skews <a href='SkPoint_Reference#SkPoint'>SkPoi…
1042 Skewing both axes can rotate <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
1062a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_getSkewX'>getSkewX</a> <a href='#SkMatrix_setSke…
1064 <a name='SkMatrix_getSkewX'></a>
1069 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewX'>getSkewX</a>()const
1073 With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), skews <a href='SkPoint_Reference#SkPoint'>SkPoi…
1074 Skewing both axes can rotate <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
1094a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_getSkewY'>getSkewY</a> <a href='#SkMatrix_setSke…
1096 <a name='SkMatrix_getTranslateX'></a>
1101 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateX'>getTranslateX</a>()c…
1105 With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), moves <a href='SkPoint_Reference#SkPoint'>SkPoi…
1125a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_getTranslateY'>getTranslateY</a> <a href='#SkMat…
1127 <a name='SkMatrix_getTranslateY'></a>
1132 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateY'>getTranslateY</a>()c…
1136 With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), moves <a href='SkPoint_Reference#SkPoint'>SkPoi…
1156a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_getTranslateX'>getTranslateX</a> <a href='#SkMat…
1158 <a name='SkMatrix_getPerspX'></a>
1163 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspX'>getPerspX</a>()const
1178 <a href='#SkMatrix_kMPersp0'>kMPersp0</a> <a href='#SkMatrix_getPerspY'>getPerspY</a>
1180 <a name='SkMatrix_getPerspY'></a>
1185 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspY'>getPerspY</a>()const
1200 <a href='#SkMatrix_kMPersp1'>kMPersp1</a> <a href='#SkMatrix_getPerspX'>getPerspX</a>
1202 <a name='SkMatrix_array1_operator'></a>
1207 <a href='undocumented#SkScalar'>SkScalar</a>& <a href='#SkMatrix_array1_operator'>operator[]</a>(in…
1227 <a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a> <
1229 <a name='Set'></a>
1231 <a name='SkMatrix_set'></a>
1236 void set(int index, <a href='undocumented#SkScalar'>SkScalar</a> value)
1239 Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_set_value'>value</a>. As…
1244 <table> <tr> <td><a name='SkMatrix_set_index'><code><strong>index</strong></code></a></td>
1245a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMat…
1249 <a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkM…
1253 <table> <tr> <td><a name='SkMatrix_set_value'><code><strong>value</strong></code></a></td>
1254 …<td><a href='undocumented#Scalar'>scalar</a> to store in <a href='SkMatrix_Reference#SkMatrix'>SkM…
1274 operator[] <a href='#SkMatrix_get'>get</a>
1276 <a name='SkMatrix_setScaleX'></a>
1281 void <a href='#SkMatrix_setScaleX'>setScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
1288 <table> <tr> <td><a name='SkMatrix_setScaleX_v'><code><strong>v</strong></code></a></td>
1299 <a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setScale'>setScale</a> <a href='#SkMatrix_setSca…
1301 <a name='SkMatrix_setScaleY'></a>
1306 void <a href='#SkMatrix_setScaleY'>setScaleY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
1313 <table> <tr> <td><a name='SkMatrix_setScaleY_v'><code><strong>v</strong></code></a></td>
1324 <a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setScale'>setScale</a> <a href='#SkMatrix_setSca…
1326 <a name='SkMatrix_setSkewY'></a>
1331 void <a href='#SkMatrix_setSkewY'>setSkewY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
1338 <table> <tr> <td><a name='SkMatrix_setSkewY_v'><code><strong>v</strong></code></a></td>
1349 <a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setSkew'>setSkew</a> <a href='#SkMatrix_setSkewX…
1351 <a name='SkMatrix_setSkewX'></a>
1356 void <a href='#SkMatrix_setSkewX'>setSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
1363 <table> <tr> <td><a name='SkMatrix_setSkewX_v'><code><strong>v</strong></code></a></td>
1374 <a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setSkew'>setSkew</a> <a href='#SkMatrix_setSkewX…
1376 <a name='SkMatrix_setTranslateX'></a>
1381 void <a href='#SkMatrix_setTranslateX'>setTranslateX</a>(<a href='undocumented#SkScalar'>SkScalar</
1388 <table> <tr> <td><a name='SkMatrix_setTranslateX_v'><code><strong>v</strong></code></a></td>
1399 <a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setTranslate'>setTranslate</a> <a href='#SkMatri…
1401 <a name='SkMatrix_setTranslateY'></a>
1406 void <a href='#SkMatrix_setTranslateY'>setTranslateY</a>(<a href='undocumented#SkScalar'>SkScalar</
1413 <table> <tr> <td><a name='SkMatrix_setTranslateY_v'><code><strong>v</strong></code></a></td>
1424 <a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setTranslate'>setTranslate</a> <a href='#SkMatri…
1426 <a name='SkMatrix_setPerspX'></a>
1431 void <a href='#SkMatrix_setPerspX'>setPerspX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
1434 Sets input x-axis perspective factor, which causes <a href='#SkMatrix_mapXY'>mapXY</a>() to vary in…
1439 <table> <tr> <td><a name='SkMatrix_setPerspX_v'><code><strong>v</strong></code></a></td>
1450a href='#SkMatrix_getPerspX'>getPerspX</a> <a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setA…
1452 <a name='SkMatrix_setPerspY'></a>
1457 void <a href='#SkMatrix_setPerspY'>setPerspY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
1460 Sets input y-axis perspective factor, which causes <a href='#SkMatrix_mapXY'>mapXY</a>() to vary in…
1465 <table> <tr> <td><a name='SkMatrix_setPerspY_v'><code><strong>v</strong></code></a></td>
1476a href='#SkMatrix_getPerspY'>getPerspY</a> <a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setA…
1478 <a name='SkMatrix_setAll'></a>
1483a href='#SkMatrix_setAll'>setAll</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX, <a href=…
1484a href='undocumented#SkScalar'>SkScalar</a> transY, <a href='undocumented#SkScalar'>SkScalar</a> p…
1487 Sets all values from parameters. Sets <a href='SkMatrix_Reference#Matrix'>matrix</a> to:
1489 | <a href='#SkMatrix_setAll_scaleX'>scaleX</a> <a href='#SkMatrix_setAll_skewX'>skewX</a> <a href=…
1490 | <a href='#SkMatrix_setAll_skewY'>skewY</a> <a href='#SkMatrix_setAll_scaleY'>scaleY</a> <a href=…
1491 | <a href='#SkMatrix_setAll_persp0'>persp0</a> <a href='#SkMatrix_setAll_persp1'>persp1</a> <a href…
1495 <table> <tr> <td><a name='SkMatrix_setAll_scaleX'><code><strong>scaleX</strong></code></a></td>
1498 <tr> <td><a name='SkMatrix_setAll_skewX'><code><strong>skewX</strong></code></a></td>
1501 <tr> <td><a name='SkMatrix_setAll_transX'><code><strong>transX</strong></code></a></td>
1504 <tr> <td><a name='SkMatrix_setAll_skewY'><code><strong>skewY</strong></code></a></td>
1507 <tr> <td><a name='SkMatrix_setAll_scaleY'><code><strong>scaleY</strong></code></a></td>
1510 <tr> <td><a name='SkMatrix_setAll_transY'><code><strong>transY</strong></code></a></td>
1513 <tr> <td><a name='SkMatrix_setAll_persp0'><code><strong>persp0</strong></code></a></td>
1516 <tr> <td><a name='SkMatrix_setAll_persp1'><code><strong>persp1</strong></code></a></td>
1519 <tr> <td><a name='SkMatrix_setAll_persp2'><code><strong>persp2</strong></code></a></td>
1530 <a href='#SkMatrix_set9'>set9</a> <a href='#SkMatrix_MakeAll'>MakeAll</a>
1532 <a name='SkMatrix_get9'></a>
1537 void <a href='#SkMatrix_get9'>get9</a>(<a href='undocumented#SkScalar'>SkScalar</a> buffer[9])const
1540a href='undocumented#Scalar'>scalar</a> values contained by <a href='SkMatrix_Reference#SkMatrix'>…
1541a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMat…
1542 <a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkM…
1546 <table> <tr> <td><a name='SkMatrix_get9_buffer'><code><strong>buffer</strong></code></a></td>
1547 <td>storage for nine <a href='undocumented#Scalar'>scalar</a> values</td>
1567 <a href='#SkMatrix_set9'>set9</a>
1569 <a name='SkMatrix_set9'></a>
1574 void <a href='#SkMatrix_set9'>set9</a>(const <a href='undocumented#SkScalar'>SkScalar</a> buffer[9])
1577 …<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to nine <a href='undocumented#Scalar'>scalar</a
1578a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMat…
1579 <a href='#SkMatrix_kMPersp2'>kMPersp2</a>.
1581 Sets <a href='SkMatrix_Reference#Matrix'>matrix</a> to:
1583 | <a href='#SkMatrix_set9_buffer'>buffer</a>[0] <a href='#SkMatrix_set9_buffer'>buffer</a>[1] <a hr…
1584 | <a href='#SkMatrix_set9_buffer'>buffer</a>[3] <a href='#SkMatrix_set9_buffer'>buffer</a>[4] <a hr…
1585 | <a href='#SkMatrix_set9_buffer'>buffer</a>[6] <a href='#SkMatrix_set9_buffer'>buffer</a>[7] <a hr…
1587a href='#SkMatrix_set9'>set9</a> followed by <a href='#SkMatrix_get9'>get9</a> may not return the …
1593 <table> <tr> <td><a name='SkMatrix_set9_buffer'><code><strong>buffer</strong></code></a></td>
1594 <td>nine <a href='undocumented#Scalar'>scalar</a> values</td>
1604 <a href='#SkMatrix_setAll'>setAll</a> <a href='#SkMatrix_get9'>get9</a> <a href='#SkMatrix_MakeAll'…
1606 <a name='SkMatrix_reset'></a>
1611 void <a href='#SkMatrix_reset'>reset()</a>
1614a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to identity; which has no effect on mapped <a hr…
1620 Also called <a href='#SkMatrix_setIdentity'>setIdentity</a>(); use the one that provides better inl…
1637 <a href='#SkMatrix_isIdentity'>isIdentity</a> <a href='#SkMatrix_setIdentity'>setIdentity</a>
1639 <a name='SkMatrix_setIdentity'></a>
1644 void <a href='#SkMatrix_setIdentity'>setIdentity</a>()
1647a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to identity; which has no effect on mapped <a hr…
1653 Also called <a href='#SkMatrix_reset'>reset()</a>; use the one that provides better inline
1670 <a href='#SkMatrix_isIdentity'>isIdentity</a> <a href='#SkMatrix_reset'>reset</a>
1672 <a name='SkMatrix_setTranslate'></a>
1677 void <a href='#SkMatrix_setTranslate'>setTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a>…
1680a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to translate by (<a href='#SkMatrix_setTranslate…
1684 <table> <tr> <td><a name='SkMatrix_setTranslate_dx'><code><strong>dx</strong></code></a></td>
1687 <tr> <td><a name='SkMatrix_setTranslate_dy'><code><strong>dy</strong></code></a></td>
1698 <a href='#SkMatrix_setTranslateX'>setTranslateX</a> <a href='#SkMatrix_setTranslateY'>setTranslateY…
1700 <a name='SkMatrix_setTranslate_2'></a>
1705 void <a href='#SkMatrix_setTranslate'>setTranslate</a>(const <a href='SkPoint_Reference#SkVector'>S…
1708a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to translate by (<a href='#SkMatrix_setTranslate…
1712 <table> <tr> <td><a name='SkMatrix_setTranslate_2_v'><code><strong>v</strong></code></a></td>
1713 …<td><a href='SkPoint_Reference#Vector'>vector</a> containing horizontal and vertical translation</…
1723 <a href='#SkMatrix_setTranslateX'>setTranslateX</a> <a href='#SkMatrix_setTranslateY'>setTranslateY…
1725 <a name='SkMatrix_setScale'></a>
1730a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href=…
1733a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to scale by <a href='#SkMatrix_setScale_sx'>sx</
1734 The pivot <a href='SkPoint_Reference#Point'>point</a> is unchanged when mapped with <a href='SkMatr…
1738 <table> <tr> <td><a name='SkMatrix_setScale_sx'><code><strong>sx</strong></code></a></td>
1741 <tr> <td><a name='SkMatrix_setScale_sy'><code><strong>sy</strong></code></a></td>
1744 <tr> <td><a name='SkMatrix_setScale_px'><code><strong>px</strong></code></a></td>
1747 <tr> <td><a name='SkMatrix_setScale_py'><code><strong>py</strong></code></a></td>
1758a href='#SkMatrix_setScaleX'>setScaleX</a> <a href='#SkMatrix_setScaleY'>setScaleY</a> <a href='#S…
1760 <a name='SkMatrix_setScale_2'></a>
1765 void <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a
1768a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to scale by <a href='#SkMatrix_setScale_2_sx'>sx…
1772 <table> <tr> <td><a name='SkMatrix_setScale_2_sx'><code><strong>sx</strong></code></a></td>
1775 <tr> <td><a name='SkMatrix_setScale_2_sy'><code><strong>sy</strong></code></a></td>
1786a href='#SkMatrix_setScaleX'>setScaleX</a> <a href='#SkMatrix_setScaleY'>setScaleY</a> <a href='#S…
1788 <a name='SkMatrix_setRotate'></a>
1793a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <
1796a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate by <a href='#SkMatrix_setRotate_degree…
1797 The pivot <a href='SkPoint_Reference#Point'>point</a> is unchanged when mapped with <a href='SkMatr…
1799 Positive <a href='#SkMatrix_setRotate_degrees'>degrees</a> rotates clockwise.
1803 <table> <tr> <td><a name='SkMatrix_setRotate_degrees'><code><strong>degrees</strong></code></a>…
1806 <tr> <td><a name='SkMatrix_setRotate_px'><code><strong>px</strong></code></a></td>
1809 <tr> <td><a name='SkMatrix_setRotate_py'><code><strong>py</strong></code></a></td>
1820 <a href='#SkMatrix_setSinCos'>setSinCos</a> <a href='#SkMatrix_preRotate'>preRotate</a> <a href='#S…
1822 <a name='SkMatrix_setRotate_2'></a>
1827 void <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degre…
1830a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate by <a href='#SkMatrix_setRotate_2_degr…
1831 Positive <a href='#SkMatrix_setRotate_2_degrees'>degrees</a> rotates clockwise.
1835 <table> <tr> <td><a name='SkMatrix_setRotate_2_degrees'><code><strong>degrees</strong></code></
1846 <a href='#SkMatrix_setSinCos'>setSinCos</a> <a href='#SkMatrix_preRotate'>preRotate</a> <a href='#S…
1848 <a name='SkMatrix_setSinCos'></a>
1853a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> sinValue, …
1856a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate by <a href='#SkMatrix_setSinCos_sinVal…
1857 The pivot <a href='SkPoint_Reference#Point'>point</a> is unchanged when mapped with <a href='SkMatr…
1859 <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setSinCos_sinValue'>sinValue</a>,…
1860 <a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale.
1864 <table> <tr> <td><a name='SkMatrix_setSinCos_sinValue'><code><strong>sinValue</strong></code></
1865 <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> x-axis component</td>
1867 <tr> <td><a name='SkMatrix_setSinCos_cosValue'><code><strong>cosValue</strong></code></a></td>
1868 <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> y-axis component</td>
1870 <tr> <td><a name='SkMatrix_setSinCos_px'><code><strong>px</strong></code></a></td>
1873 <tr> <td><a name='SkMatrix_setSinCos_py'><code><strong>py</strong></code></a></td>
1884 <a href='#SkMatrix_setRotate'>setRotate</a> <a href='#SkMatrix_setScale'>setScale</a> <a href='#SkM…
1886 <a name='SkMatrix_setSinCos_2'></a>
1891 void <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> sinVa…
1894a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate by <a href='#SkMatrix_setSinCos_2_sinV…
1896a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setSinCos_2_sinValue'>sinValue</a
1897 <a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale.
1901 <table> <tr> <td><a name='SkMatrix_setSinCos_2_sinValue'><code><strong>sinValue</strong></code>…
1902 <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> x-axis component</td>
1904 …<tr> <td><a name='SkMatrix_setSinCos_2_cosValue'><code><strong>cosValue</strong></code></a></td>
1905 <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> y-axis component</td>
1911a href='SkCanvas_Reference#Canvas'>Canvas</a> needs offset after applying <a href='SkMatrix_Refere…
1916 <a href='#SkMatrix_setRotate'>setRotate</a> <a href='#SkMatrix_setScale'>setScale</a> <a href='#SkM…
1918 <a name='SkMatrix_setRSXform'></a>
1923 <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_setRSXform'>setRSXform</a>(c…
1926 …s <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate, scale, and translate using a compr…
1928a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.<
1929 to (0, 1). <a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale. Mapped <a href='Sk…
1930a href='SkPoint_Reference#Vector'>vector</a>, then translated by (<a href='#SkMatrix_setRSXform_rs…
1934 <table> <tr> <td><a name='SkMatrix_setRSXform_rsxForm'><code><strong>rsxForm</strong></code></a
1935 …<td>compressed <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='SkMatrix_Reference#Matrix'>…
1941 reference to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
1945a href='SkCanvas_Reference#Canvas'>Canvas</a> needs offset after applying <a href='SkMatrix_Refere…
1950 <a href='#SkMatrix_setSinCos'>setSinCos</a> <a href='#SkMatrix_setScale'>setScale</a> <a href='#SkM…
1952 <a name='SkMatrix_setSkew'></a>
1957a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='u…
1960a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to skew by <a href='#SkMatrix_setSkew_kx'>kx</a>…
1961 The pivot <a href='SkPoint_Reference#Point'>point</a> is unchanged when mapped with <a href='SkMatr…
1965 <table> <tr> <td><a name='SkMatrix_setSkew_kx'><code><strong>kx</strong></code></a></td>
1968 <tr> <td><a name='SkMatrix_setSkew_ky'><code><strong>ky</strong></code></a></td>
1971 <tr> <td><a name='SkMatrix_setSkew_px'><code><strong>px</strong></code></a></td>
1974 <tr> <td><a name='SkMatrix_setSkew_py'><code><strong>py</strong></code></a></td>
1985a href='#SkMatrix_setSkewX'>setSkewX</a> <a href='#SkMatrix_setSkewY'>setSkewY</a> <a href='#SkMat…
1987 <a name='SkMatrix_setSkew_2'></a>
1992 void <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a hr…
1995a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to skew by <a href='#SkMatrix_setSkew_2_kx'>kx</
1999 <table> <tr> <td><a name='SkMatrix_setSkew_2_kx'><code><strong>kx</strong></code></a></td>
2002 <tr> <td><a name='SkMatrix_setSkew_2_ky'><code><strong>ky</strong></code></a></td>
2013a href='#SkMatrix_setSkewX'>setSkewX</a> <a href='#SkMatrix_setSkewY'>setSkewY</a> <a href='#SkMat…
2015 <a name='SkMatrix_setConcat'></a>
2020a href='#SkMatrix_setConcat'>setConcat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a
2023a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2027 | A B C | | J K L |
2028 <a href='#SkMatrix_setConcat_a'>a</a> = | D E F |, <a href='#SkMatrix_setConcat_b'>b</a> = | M N O |
2029 | G H <a href='#SkMatrix_I'>I</a> | | P Q R |
2031 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2033 | A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
2034 <a href='#SkMatrix_setConcat_a'>a</a> * <a href='#SkMatrix_setConcat_b'>b</a> = | D E F | * | M N O…
2035 | G H <a href='#SkMatrix_I'>I</a> | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
2039 <table> <tr> <td><a name='SkMatrix_setConcat_a'><code><strong>a</strong></code></a></td>
2040 <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on left side of multiply expression</td>
2042 <tr> <td><a name='SkMatrix_setConcat_b'><code><strong>b</strong></code></a></td>
2043 … <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on right side of multiply expression</td>
2049 …7cbb9fefe"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> creates perspective <a href='S…
2050 …plying the <a href='SkMatrix_Reference#Matrix'>matrix</a> by its inverse turns into an identity <a
2055a href='#SkMatrix_Concat'>Concat</a> <a href='#SkMatrix_preConcat'>preConcat</a> <a href='#SkMatri…
2057 <a name='SkMatrix_preTranslate'></a>
2062 void <a href='#SkMatrix_preTranslate'>preTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a>…
2065a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2066 … as moving the <a href='SkPoint_Reference#Point'>point</a> to be mapped before applying <a href='S…
2070 | A B C | | 1 0 <a href='#SkMatrix_preTranslate_dx'>dx</a> |
2071a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, T(<a href='#SkMatrix_preTranslate_dx'>…
2072 | G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
2074 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2076A B C | | 1 0 <a href='#SkMatrix_preTranslate_dx'>dx</a> | | A B A*<a href='#SkMatrix_preTransla…
2077a href='SkMatrix_Reference#Matrix'>Matrix</a> * T(<a href='#SkMatrix_preTranslate_dx'>dx</a>, <a h…
2078a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G H G*<a href='#SkMatrix_preTranslate_dx'>dx</a>+H*<a
2082 <table> <tr> <td><a name='SkMatrix_preTranslate_dx'><code><strong>dx</strong></code></a></td>
2083 <td>x-axis translation before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
2085 <tr> <td><a name='SkMatrix_preTranslate_dy'><code><strong>dy</strong></code></a></td>
2086 <td>y-axis translation before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
2096 <a href='#SkMatrix_postTranslate'>postTranslate</a> <a href='#SkMatrix_setTranslate'>setTranslate</
2098 <a name='SkMatrix_preScale'></a>
2103a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href=…
2106a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2107 about pivot <a href='SkPoint_Reference#Point'>point</a> (<a href='#SkMatrix_preScale_px'>px</a>, <a
2108 … as scaling about a pivot <a href='SkPoint_Reference#Point'>point</a> before applying <a href='SkM…
2112 | A B C | | <a href='#SkMatrix_preScale_sx'>sx</a> 0 dx |
2113a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, S(<a href='#SkMatrix_preScale_sx'>sx</
2114 | G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
2118 dx = <a href='#SkMatrix_preScale_px'>px</a> - <a href='#SkMatrix_preScale_sx'>sx</a> * <a href='#Sk…
2119 dy = <a href='#SkMatrix_preScale_py'>py</a> - <a href='#SkMatrix_preScale_sy'>sy</a> * <a href='#Sk…
2121 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2123 | A B C | | <a href='#SkMatrix_preScale_sx'>sx</a> 0 dx | | A*<a href='#SkMatrix_preScale_sx'>sx…
2124a href='SkMatrix_Reference#Matrix'>Matrix</a> * S(<a href='#SkMatrix_preScale_sx'>sx</a>, <a href=…
2125a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G*<a href='#SkMatrix_preScale_sx'>sx</a> H*<a href='…
2129 <table> <tr> <td><a name='SkMatrix_preScale_sx'><code><strong>sx</strong></code></a></td>
2132 <tr> <td><a name='SkMatrix_preScale_sy'><code><strong>sy</strong></code></a></td>
2135 <tr> <td><a name='SkMatrix_preScale_px'><code><strong>px</strong></code></a></td>
2138 <tr> <td><a name='SkMatrix_preScale_py'><code><strong>py</strong></code></a></td>
2149 <a href='#SkMatrix_postScale'>postScale</a> <a href='#SkMatrix_setScale'>setScale</a> <a href='#SkM…
2151 <a name='SkMatrix_preScale_2'></a>
2156 void <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a
2159a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2160 about pivot <a href='SkPoint_Reference#Point'>point</a> (0, 0).
2161 …ght of as scaling about the origin before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix<…
2165 | A B C | | <a href='#SkMatrix_preScale_2_sx'>sx</a> 0 0 |
2166a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, S(<a href='#SkMatrix_preScale_2_sx'>sx…
2167 | G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
2169 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2171 | A B C | | <a href='#SkMatrix_preScale_2_sx'>sx</a> 0 0 | | A*<a href='#SkMatrix_preScale_2_sx…
2172a href='SkMatrix_Reference#Matrix'>Matrix</a> * S(<a href='#SkMatrix_preScale_2_sx'>sx</a>, <a hre…
2173a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G*<a href='#SkMatrix_preScale_2_sx'>sx</a> H*<a href…
2177 <table> <tr> <td><a name='SkMatrix_preScale_2_sx'><code><strong>sx</strong></code></a></td>
2180 <tr> <td><a name='SkMatrix_preScale_2_sy'><code><strong>sy</strong></code></a></td>
2191 <a href='#SkMatrix_postScale'>postScale</a> <a href='#SkMatrix_setScale'>setScale</a> <a href='#SkM…
2193 <a name='SkMatrix_preRotate'></a>
2198a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <
2201a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2202 about pivot <a href='SkPoint_Reference#Point'>point</a> (<a href='#SkMatrix_preRotate_px'>px</a>, <
2203 …as rotating about a pivot <a href='SkPoint_Reference#Point'>point</a> before applying <a href='SkM…
2205 Positive <a href='#SkMatrix_preRotate_degrees'>degrees</a> rotates clockwise.
2209 | A B C | | c -s dx |
2210a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, R(<a href='#SkMatrix_preRotate_degrees…
2211 | G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
2215 c = cos(<a href='#SkMatrix_preRotate_degrees'>degrees</a>)
2216 s = sin(<a href='#SkMatrix_preRotate_degrees'>degrees</a>)
2217 dx = s * <a href='#SkMatrix_preRotate_py'>py</a> + (1 - c) * <a href='#SkMatrix_preRotate_px'>px</
2218 dy = -s * <a href='#SkMatrix_preRotate_px'>px</a> + (1 - c) * <a href='#SkMatrix_preRotate_py'>py</
2220 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2222 | A B C | | c -s dx | | Ac+Bs -As+Bc A*dx+B*dy+C |
2223a href='SkMatrix_Reference#Matrix'>Matrix</a> * R(<a href='#SkMatrix_preRotate_degrees'>degrees</a
2224 | G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | Gc+Hs -Gs+Hc G*dx+H*dy+<a href='#SkMatrix_I'>I<…
2228 <table> <tr> <td><a name='SkMatrix_preRotate_degrees'><code><strong>degrees</strong></code></a>…
2231 <tr> <td><a name='SkMatrix_preRotate_px'><code><strong>px</strong></code></a></td>
2234 <tr> <td><a name='SkMatrix_preRotate_py'><code><strong>py</strong></code></a></td>
2245 <a href='#SkMatrix_postRotate'>postRotate</a> <a href='#SkMatrix_setRotate'>setRotate</a>
2247 <a name='SkMatrix_preRotate_2'></a>
2252 void <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degre…
2255a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2256 about pivot <a href='SkPoint_Reference#Point'>point</a> (0, 0).
2257 …ht of as rotating about the origin before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix<…
2259 Positive <a href='#SkMatrix_preRotate_2_degrees'>degrees</a> rotates clockwise.
2263 | A B C | | c -s 0 |
2264 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, R(<a href='#SkMatrix_preRotate_2_degre…
2265 | G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
2269 c = cos(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>)
2270 s = sin(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>)
2272 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2274 | A B C | | c -s 0 | | Ac+Bs -As+Bc C |
2275 <a href='SkMatrix_Reference#Matrix'>Matrix</a> * R(<a href='#SkMatrix_preRotate_2_degrees'>degrees<…
2276 | G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | Gc+Hs -Gs+Hc <a href='#SkMatrix_I'>I</a> |
2280 <table> <tr> <td><a name='SkMatrix_preRotate_2_degrees'><code><strong>degrees</strong></code></
2291 <a href='#SkMatrix_postRotate'>postRotate</a> <a href='#SkMatrix_setRotate'>setRotate</a>
2293 <a name='SkMatrix_preSkew'></a>
2298a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='u…
2301a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2302 about pivot <a href='SkPoint_Reference#Point'>point</a> (<a href='#SkMatrix_preSkew_px'>px</a>, <a
2303 … as skewing about a pivot <a href='SkPoint_Reference#Point'>point</a> before applying <a href='SkM…
2307 | A B C | | 1 <a href='#SkMatrix_preSkew_kx'>kx</a> dx |
2308a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, K(<a href='#SkMatrix_preSkew_kx'>kx</a
2309 | G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
2313 dx = -<a href='#SkMatrix_preSkew_kx'>kx</a> * <a href='#SkMatrix_preSkew_py'>py</a>
2314 dy = -<a href='#SkMatrix_preSkew_ky'>ky</a> * <a href='#SkMatrix_preSkew_px'>px</a>
2316 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2318 | A B C | | 1 <a href='#SkMatrix_preSkew_kx'>kx</a> dx | | A+B*<a href='#SkMatrix_preSkew_ky'>ky…
2319a href='SkMatrix_Reference#Matrix'>Matrix</a> * K(<a href='#SkMatrix_preSkew_kx'>kx</a>, <a href='…
2320a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G+H*<a href='#SkMatrix_preSkew_ky'>ky</a> G*<a href=…
2324 <table> <tr> <td><a name='SkMatrix_preSkew_kx'><code><strong>kx</strong></code></a></td>
2327 <tr> <td><a name='SkMatrix_preSkew_ky'><code><strong>ky</strong></code></a></td>
2330 <tr> <td><a name='SkMatrix_preSkew_px'><code><strong>px</strong></code></a></td>
2333 <tr> <td><a name='SkMatrix_preSkew_py'><code><strong>py</strong></code></a></td>
2344 <a href='#SkMatrix_postSkew'>postSkew</a> <a href='#SkMatrix_setSkew'>setSkew</a>
2346 <a name='SkMatrix_preSkew_2'></a>
2351 void <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a hr…
2354a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2355 about pivot <a href='SkPoint_Reference#Point'>point</a> (0, 0).
2356 …ght of as skewing about the origin before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix<…
2360 | A B C | | 1 <a href='#SkMatrix_preSkew_2_kx'>kx</a> 0 |
2361a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, K(<a href='#SkMatrix_preSkew_2_kx'>kx<…
2362 | G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
2364 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2366 | A B C | | 1 <a href='#SkMatrix_preSkew_2_kx'>kx</a> 0 | | A+B*<a href='#SkMatrix_preSkew_2_ky'…
2367a href='SkMatrix_Reference#Matrix'>Matrix</a> * K(<a href='#SkMatrix_preSkew_2_kx'>kx</a>, <a href…
2368a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G+H*<a href='#SkMatrix_preSkew_2_ky'>ky</a> G*<a href…
2372 <table> <tr> <td><a name='SkMatrix_preSkew_2_kx'><code><strong>kx</strong></code></a></td>
2375 <tr> <td><a name='SkMatrix_preSkew_2_ky'><code><strong>ky</strong></code></a></td>
2386 <a href='#SkMatrix_postSkew'>postSkew</a> <a href='#SkMatrix_setSkew'>setSkew</a>
2388 <a name='SkMatrix_preConcat'></a>
2393 void <a href='#SkMatrix_preConcat'>preConcat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatr…
2396a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2397 …ought of mapping by <a href='#SkMatrix_preConcat_other'>other</a> before applying <a href='SkMatri…
2401 | A B C | | J K L |
2402 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, <a href='#SkMatrix_preConcat_other'>oth…
2403 | G H <a href='#SkMatrix_I'>I</a> | | P Q R |
2405 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2407 | A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
2408 <a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='#SkMatrix_preConcat_other'>other</a> = | …
2409 | G H <a href='#SkMatrix_I'>I</a> | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
2413 <table> <tr> <td><a name='SkMatrix_preConcat_other'><code><strong>other</strong></code></a></td>
2414 … <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on right side of multiply expression</td>
2420a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> creates perspective <a href='SkMatrix_Reference…
2421 …plying the <a href='SkMatrix_Reference#Matrix'>matrix</a> by its inverse turns into an identity <a
2426 <a href='#SkMatrix_postConcat'>postConcat</a> <a href='#SkMatrix_setConcat'>setConcat</a> <a href='…
2428 <a name='SkMatrix_postTranslate'></a>
2433 …oid <a href='#SkMatrix_postTranslate'>postTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</
2436a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2437 … as moving the <a href='SkPoint_Reference#Point'>point</a> to be mapped after applying <a href='Sk…
2441 | J K L | | 1 0 <a href='#SkMatrix_postTranslate_dx'>dx</a> |
2442a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, T(<a href='#SkMatrix_postTranslate_dx'…
2445 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2447a href='#SkMatrix_postTranslate_dx'>dx</a> | | J K L | | J+<a href='#SkMatrix_postTranslate_dx'>…
2448a href='#SkMatrix_postTranslate_dx'>dx</a>, <a href='#SkMatrix_postTranslate_dy'>dy</a>) * <a href…
2453 <table> <tr> <td><a name='SkMatrix_postTranslate_dx'><code><strong>dx</strong></code></a></td>
2454 <td>x-axis translation after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
2456 <tr> <td><a name='SkMatrix_postTranslate_dy'><code><strong>dy</strong></code></a></td>
2457 <td>y-axis translation after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
2463 …f5144ef4bd7cea294fad2f756ed335af"><div>Compare with <a href='#SkMatrix_preTranslate'>preTranslate<…
2468 <a href='#SkMatrix_preTranslate'>preTranslate</a> <a href='#SkMatrix_setTranslate'>setTranslate</a>…
2470 <a name='SkMatrix_postScale'></a>
2475a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a hre…
2478a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2479 (<a href='#SkMatrix_postScale_px'>px</a>, <a href='#SkMatrix_postScale_py'>py</a>), multiplied by <
2480 … as scaling about a pivot <a href='SkPoint_Reference#Point'>point</a> after applying <a href='SkMa…
2484 | J K L | | <a href='#SkMatrix_postScale_sx'>sx</a> 0 dx |
2485a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, S(<a href='#SkMatrix_postScale_sx'>sx<…
2490 dx = <a href='#SkMatrix_postScale_px'>px</a> - <a href='#SkMatrix_postScale_sx'>sx</a> * <a href='#…
2491 dy = <a href='#SkMatrix_postScale_py'>py</a> - <a href='#SkMatrix_postScale_sy'>sy</a> * <a href='#…
2493 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2495a href='#SkMatrix_postScale_sx'>sx</a> 0 dx | | J K L | | <a href='#SkMatrix_postScale_sx'>sx</
2496a href='#SkMatrix_postScale_sx'>sx</a>, <a href='#SkMatrix_postScale_sy'>sy</a>, <a href='#SkMatri…
2501 <table> <tr> <td><a name='SkMatrix_postScale_sx'><code><strong>sx</strong></code></a></td>
2504 <tr> <td><a name='SkMatrix_postScale_sy'><code><strong>sy</strong></code></a></td>
2507 <tr> <td><a name='SkMatrix_postScale_px'><code><strong>px</strong></code></a></td>
2510 <tr> <td><a name='SkMatrix_postScale_py'><code><strong>py</strong></code></a></td>
2521 <a href='#SkMatrix_preScale'>preScale</a> <a href='#SkMatrix_setScale'>setScale</a> <a href='#SkMat…
2523 <a name='SkMatrix_postScale_2'></a>
2528 void <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <
2531a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2532 (0, 0), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
2533 …ught of as scaling about the origin after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix<…
2537 | J K L | | <a href='#SkMatrix_postScale_2_sx'>sx</a> 0 0 |
2538a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, S(<a href='#SkMatrix_postScale_2_sx'>s…
2541 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2543a href='#SkMatrix_postScale_2_sx'>sx</a> 0 0 | | J K L | | <a href='#SkMatrix_postScale_2_sx'>…
2544a href='#SkMatrix_postScale_2_sx'>sx</a>, <a href='#SkMatrix_postScale_2_sy'>sy</a>) * <a href='Sk…
2549 <table> <tr> <td><a name='SkMatrix_postScale_2_sx'><code><strong>sx</strong></code></a></td>
2552 <tr> <td><a name='SkMatrix_postScale_2_sy'><code><strong>sy</strong></code></a></td>
2563 <a href='#SkMatrix_preScale'>preScale</a> <a href='#SkMatrix_setScale'>setScale</a> <a href='#SkMat…
2565 <a name='SkMatrix_postIDiv'></a>
2570 bool <a href='#SkMatrix_postIDiv'>postIDiv</a>(int divx, int divy)
2573a href='SkMatrix_Reference#Matrix'>Matrix</a> to <a href='SkMatrix_Reference#Matrix'>Matrix</a> co…
2574 multiplied by <a href='SkMatrix_Reference#Matrix'>Matrix</a>.
2576 Returns false if either <a href='#SkMatrix_postIDiv_divx'>divx</a> or <a href='#SkMatrix_postIDiv_d…
2593 sets <a href='SkMatrix_Reference#Matrix'>Matrix</a> to:
2603 <table> <tr> <td><a name='SkMatrix_postIDiv_divx'><code><strong>divx</strong></code></a></td>
2606 <tr> <td><a name='SkMatrix_postIDiv_divy'><code><strong>divy</strong></code></a></td>
2621 <a href='#SkMatrix_postScale'>postScale</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>
2623 <a name='SkMatrix_postRotate'></a>
2628a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees,…
2631a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2632 (<a href='#SkMatrix_postRotate_px'>px</a>, <a href='#SkMatrix_postRotate_py'>py</a>), multiplied by…
2633 …as rotating about a pivot <a href='SkPoint_Reference#Point'>point</a> after applying <a href='SkMa…
2635 Positive <a href='#SkMatrix_postRotate_degrees'>degrees</a> rotates clockwise.
2640a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, R(<a href='#SkMatrix_postRotate_degree…
2645 c = cos(<a href='#SkMatrix_postRotate_degrees'>degrees</a>)
2646 s = sin(<a href='#SkMatrix_postRotate_degrees'>degrees</a>)
2647 dx = s * <a href='#SkMatrix_postRotate_py'>py</a> + (1 - c) * <a href='#SkMatrix_postRotate_px'>px…
2648 dy = -s * <a href='#SkMatrix_postRotate_px'>px</a> + (1 - c) * <a href='#SkMatrix_postRotate_py'>py…
2650 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2653a href='#SkMatrix_postRotate_degrees'>degrees</a>, <a href='#SkMatrix_postRotate_px'>px</a>, <a hr…
2658 <table> <tr> <td><a name='SkMatrix_postRotate_degrees'><code><strong>degrees</strong></code></a
2661 <tr> <td><a name='SkMatrix_postRotate_px'><code><strong>px</strong></code></a></td>
2664 <tr> <td><a name='SkMatrix_postRotate_py'><code><strong>py</strong></code></a></td>
2675 <a href='#SkMatrix_preRotate'>preRotate</a> <a href='#SkMatrix_setRotate'>setRotate</a>
2677 <a name='SkMatrix_postRotate_2'></a>
2682 void <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> deg…
2685a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2686 (0, 0), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
2687 …ght of as rotating about the origin after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix<…
2689 Positive <a href='#SkMatrix_postRotate_2_degrees'>degrees</a> rotates clockwise.
2694 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, R(<a href='#SkMatrix_postRotate_2_degr…
2699 c = cos(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>)
2700 s = sin(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>)
2702 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2705 R(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>, px, py) * <a href='SkMatrix_Reference#Matri…
2710 <table> <tr> <td><a name='SkMatrix_postRotate_2_degrees'><code><strong>degrees</strong></code><…
2721 <a href='#SkMatrix_preRotate'>preRotate</a> <a href='#SkMatrix_setRotate'>setRotate</a>
2723 <a name='SkMatrix_postSkew'></a>
2728a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href=…
2731a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2732 (<a href='#SkMatrix_postSkew_px'>px</a>, <a href='#SkMatrix_postSkew_py'>py</a>), multiplied by <a
2733 … as skewing about a pivot <a href='SkPoint_Reference#Point'>point</a> after applying <a href='SkMa…
2737 | J K L | | 1 <a href='#SkMatrix_postSkew_kx'>kx</a> dx |
2738a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, K(<a href='#SkMatrix_postSkew_kx'>kx</
2743 dx = -<a href='#SkMatrix_postSkew_kx'>kx</a> * <a href='#SkMatrix_postSkew_py'>py</a>
2744 dy = -<a href='#SkMatrix_postSkew_ky'>ky</a> * <a href='#SkMatrix_postSkew_px'>px</a>
2746 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2748a href='#SkMatrix_postSkew_kx'>kx</a> dx| |J K L| |J+<a href='#SkMatrix_postSkew_kx'>kx</a>*M+dx…
2749a href='#SkMatrix_postSkew_kx'>kx</a>, <a href='#SkMatrix_postSkew_ky'>ky</a>, <a href='#SkMatrix_…
2754 <table> <tr> <td><a name='SkMatrix_postSkew_kx'><code><strong>kx</strong></code></a></td>
2757 <tr> <td><a name='SkMatrix_postSkew_ky'><code><strong>ky</strong></code></a></td>
2760 <tr> <td><a name='SkMatrix_postSkew_px'><code><strong>px</strong></code></a></td>
2763 <tr> <td><a name='SkMatrix_postSkew_py'><code><strong>py</strong></code></a></td>
2774 <a href='#SkMatrix_preSkew'>preSkew</a> <a href='#SkMatrix_setSkew'>setSkew</a>
2776 <a name='SkMatrix_postSkew_2'></a>
2781 void <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a
2784a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2785 (0, 0), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
2786 …ught of as skewing about the origin after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix<…
2790 | J K L | | 1 <a href='#SkMatrix_postSkew_2_kx'>kx</a> 0 |
2791a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, K(<a href='#SkMatrix_postSkew_2_kx'>kx…
2794 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2796a href='#SkMatrix_postSkew_2_kx'>kx</a> 0 | | J K L | | J+<a href='#SkMatrix_postSkew_2_kx'>kx</
2797a href='#SkMatrix_postSkew_2_kx'>kx</a>, <a href='#SkMatrix_postSkew_2_ky'>ky</a>) * <a href='SkMa…
2802 <table> <tr> <td><a name='SkMatrix_postSkew_2_kx'><code><strong>kx</strong></code></a></td>
2805 <tr> <td><a name='SkMatrix_postSkew_2_ky'><code><strong>ky</strong></code></a></td>
2816 <a href='#SkMatrix_preSkew'>preSkew</a> <a href='#SkMatrix_setSkew'>setSkew</a>
2818 <a name='SkMatrix_postConcat'></a>
2823 void <a href='#SkMatrix_postConcat'>postConcat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMa…
2826a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatri…
2827 …ought of mapping by <a href='#SkMatrix_postConcat_other'>other</a> after applying <a href='SkMatri…
2831 | J K L | | A B C |
2832 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, <a href='#SkMatrix_postConcat_other'>o…
2833 | P Q R | | G H <a href='#SkMatrix_I'>I</a> |
2835 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
2837 | A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
2838 <a href='#SkMatrix_postConcat_other'>other</a> * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = |…
2839 | G H <a href='#SkMatrix_I'>I</a> | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
2843 <table> <tr> <td><a name='SkMatrix_postConcat_other'><code><strong>other</strong></code></a></t…
2844 <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on left side of multiply expression</td>
2854 <a href='#SkMatrix_preConcat'>preConcat</a> <a href='#SkMatrix_setConcat'>setConcat</a> <a href='#S…
2856 <a name='SkMatrix_ScaleToFit'></a>
2861 enum <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> {
2862 <a href='#SkMatrix_kFill_ScaleToFit'>kFill_ScaleToFit</a>,
2863 <a href='#SkMatrix_kStart_ScaleToFit'>kStart_ScaleToFit</a>,
2864 <a href='#SkMatrix_kCenter_ScaleToFit'>kCenter_ScaleToFit</a>,
2865 <a href='#SkMatrix_kEnd_ScaleToFit'>kEnd_ScaleToFit</a>,
2869a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> describes how <a href='SkMatrix_Reference#Matrix'>Mat…
2870 <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> may allow <a href='SkMatrix_Reference#Matrix'>Matrix<…
2871 …may restrict <a href='SkMatrix_Reference#Matrix'>Matrix</a> to square scaling. If restricted, <a h…
2872 how <a href='SkMatrix_Reference#Matrix'>Matrix</a> maps to the side or center of the destination <a
2881 …: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kFill_ScaleToFit'><code>SkMatrix::kFill_Sca…
2884 Computes <a href='SkMatrix_Reference#Matrix'>Matrix</a> that scales about x-axis and y-axis indepen…
2885 source <a href='SkRect_Reference#Rect'>Rect</a> is mapped to completely fill destination <a href='S…
2886 of source <a href='SkRect_Reference#Rect'>Rect</a> may change.
2890 … 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kStart_ScaleToFit'><code>SkMatrix::kStart_Sc…
2893a href='SkMatrix_Reference#Matrix'>Matrix</a> that maintains source <a href='SkRect_Reference#Rect…
2894 width or height to destination <a href='SkRect_Reference#Rect'>Rect</a>. Aligns mapping to left and…
2895 of destination <a href='SkRect_Reference#Rect'>Rect</a>.
2899 …2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kCenter_ScaleToFit'><code>SkMatrix::kCenter_S…
2902a href='SkMatrix_Reference#Matrix'>Matrix</a> that maintains source <a href='SkRect_Reference#Rect…
2903 width or height to destination <a href='SkRect_Reference#Rect'>Rect</a>. Aligns mapping to center o…
2904 <a href='SkRect_Reference#Rect'>Rect</a>.
2908 …r: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kEnd_ScaleToFit'><code>SkMatrix::kEnd_Scal…
2911a href='SkMatrix_Reference#Matrix'>Matrix</a> that maintains source <a href='SkRect_Reference#Rect…
2912 width or height to destination <a href='SkRect_Reference#Rect'>Rect</a>. Aligns mapping to right an…
2913 edges of destination <a href='SkRect_Reference#Rect'>Rect</a>.
2924a href='#SkMatrix_setRectToRect'>setRectToRect</a> <a href='#SkMatrix_MakeRectToRect'>MakeRectToRe…
2926 <a name='SkMatrix_setRectToRect'></a>
2931a href='#SkMatrix_setRectToRect'>setRectToRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect<…
2934a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to scale and translate <a href='#SkMatrix_setRec…
2935 mapping completely fills <a href='#SkMatrix_setRectToRect_dst'>dst</a> or preserves the aspect rati…
2936a href='#SkMatrix_setRectToRect_src'>src</a> within <a href='#SkMatrix_setRectToRect_dst'>dst</a>.…
2937 Returns true if <a href='#SkMatrix_setRectToRect_dst'>dst</a> is empty, and sets <a href='SkMatrix_…
2945 <table> <tr> <td><a name='SkMatrix_setRectToRect_src'><code><strong>src</strong></code></a></td>
2946 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map from</td>
2948 <tr> <td><a name='SkMatrix_setRectToRect_dst'><code><strong>dst</strong></code></a></td>
2949 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map to</td>
2951 <tr> <td><a name='SkMatrix_setRectToRect_stf'><code><strong>stf</strong></code></a></td>
2952 …<td>one of: <a href='#SkMatrix_kFill_ScaleToFit'>kFill_ScaleToFit</a>, <a href='#SkMatrix_kStart_S…
2956 <a href='#SkMatrix_kCenter_ScaleToFit'>kCenter_ScaleToFit</a>, <a href='#SkMatrix_kEnd_ScaleToFit'>…
2960 true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> can represent <a href='SkRect_Reference#…
2983a href='#SkMatrix_MakeRectToRect'>MakeRectToRect</a> <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a>…
2985 <a name='SkMatrix_MakeRectToRect'></a>
2990a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeRectToRect'>MakeRectToRec…
2993a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> set to scale and translate <a href='#SkMatrix_Ma…
2994 whether mapping completely fills <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> or preserves the as…
2995a href='#SkMatrix_MakeRectToRect_src'>src</a> within <a href='#SkMatrix_MakeRectToRect_dst'>dst</a
2996 empty, returns <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> set to:
3004 <table> <tr> <td><a name='SkMatrix_MakeRectToRect_src'><code><strong>src</strong></code></a></t…
3005 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map from</td>
3007 <tr> <td><a name='SkMatrix_MakeRectToRect_dst'><code><strong>dst</strong></code></a></td>
3008 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map to</td>
3010 <tr> <td><a name='SkMatrix_MakeRectToRect_stf'><code><strong>stf</strong></code></a></td>
3011 …<td>one of: <a href='#SkMatrix_kFill_ScaleToFit'>kFill_ScaleToFit</a>, <a href='#SkMatrix_kStart_S…
3015 <a href='#SkMatrix_kCenter_ScaleToFit'>kCenter_ScaleToFit</a>, <a href='#SkMatrix_kEnd_ScaleToFit'>…
3019a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> mapping <a href='#SkMatrix_MakeRectToRect_src'>s…
3042a href='#SkMatrix_setRectToRect'>setRectToRect</a> <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> <
3044 <a name='SkMatrix_setPolyToPoly'></a>
3049a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoi…
3052a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to map <a href='#SkMatrix_setPolyToPoly_src'>src…
3054 If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is zero, sets <a href='SkMatrix_Reference#SkMa…
3055 If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is one, sets <a href='SkMatrix_Reference#SkMat…
3056a href='#SkMatrix_setPolyToPoly_count'>count</a> is two or more, sets <a href='SkMatrix_Reference#…
3057a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> cannot be constructed. If <a href='#SkMatrix_set…
3062 <table> <tr> <td><a name='SkMatrix_setPolyToPoly_src'><code><strong>src</strong></code></a></td>
3063 <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map from</td>
3065 <tr> <td><a name='SkMatrix_setPolyToPoly_dst'><code><strong>dst</strong></code></a></td>
3066 <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map to</td>
3068 <tr> <td><a name='SkMatrix_setPolyToPoly_count'><code><strong>count</strong></code></a></td>
3069 …of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkMatrix_setPolyToPoly_src'>src</a
3075 true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> was constructed successfully
3083 <a href='#SkMatrix_setRectToRect'>setRectToRect</a> <a href='#SkMatrix_MakeRectToRect'>MakeRectToRe…
3085 <a name='SkMatrix_invert'></a>
3090 bool <a href='#SkMatrix_invert'>invert</a>(<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* inve…
3093a href='#SkMatrix_invert_inverse'>inverse</a> to reciprocal <a href='SkMatrix_Reference#Matrix'>ma…
3094a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps from source to destination, <a href='#SkMat…
3095 …on to source. If <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> can not be inverted, <a href='…
3100 <table> <tr> <td><a name='SkMatrix_invert_inverse'><code><strong>inverse</strong></code></a></t…
3101 <td>storage for inverted <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>; may be nullptr</td>
3107 true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> can be inverted
3115 <a href='#SkMatrix_Concat'>Concat</a>
3117 <a name='SkMatrix_SetAffineIdentity'></a>
3122 static void <a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</a>(<a href='undocumented#SkSca…
3125 Fills <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> with identity values in column major …
3126 Sets <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> to:
3131 Affine 3 by 2 <a href='SkMatrix_Reference#Matrix'>matrices</a> in column major order are used by Op…
3135 <table> <tr> <td><a name='SkMatrix_SetAffineIdentity_affine'><code><strong>affine</strong></cod…
3136 …<td>storage for 3 by 2 <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> <a href='SkMatrix_R…
3154 <a href='#SkMatrix_setAffine'>setAffine</a> <a href='#SkMatrix_asAffine'>asAffine</a>
3156 <a name='SkMatrix_asAffine'></a>
3161 bool <a href='#SkMatrix_asAffine'>asAffine</a>(<a href='undocumented#SkScalar'>SkScalar</a> affine[…
3164 Fills <a href='#SkMatrix_asAffine_affine'>affine</a> in column major order. Sets <a href='#SkMatrix…
3169 If <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains perspective, returns false and leave…
3173 <table> <tr> <td><a name='SkMatrix_asAffine_affine'><code><strong>affine</strong></code></a></t…
3174 …<td>storage for 3 by 2 <a href='#SkMatrix_asAffine_affine'>affine</a> <a href='SkMatrix_Reference#…
3180 true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> does not contain perspective
3196 <a href='#SkMatrix_setAffine'>setAffine</a> <a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity…
3198 <a name='SkMatrix_setAffine'></a>
3203 void <a href='#SkMatrix_setAffine'>setAffine</a>(const <a href='undocumented#SkScalar'>SkScalar</a>…
3206a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='#SkMatrix_setAffine_affine'>affine</
3212 <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is set, row, then column, to:
3220 <table> <tr> <td><a name='SkMatrix_setAffine_affine'><code><strong>affine</strong></code></a></…
3221 …<td>3 by 2 <a href='#SkMatrix_setAffine_affine'>affine</a> <a href='SkMatrix_Reference#Matrix'>mat…
3240 <a href='#SkMatrix_asAffine'>asAffine</a> <a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</
3242 <a name='Transform'></a>
3244 <a name='SkMatrix_mapPoints'></a>
3249 …<a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[],…
3252a href='#SkMatrix_mapPoints_src'>src</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>…
3253a href='SkPoint_Reference#SkPoint'>SkPoint</a> are mapped by multiplying each <a href='SkPoint_Ref…
3255 | A B C | | x |
3256 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | y |
3257 | G H <a href='#SkMatrix_I'>I</a> | | 1 |
3261 for (i = 0; i < <a href='#SkMatrix_mapPoints_count'>count</a>; ++i) {
3262 x = <a href='#SkMatrix_mapPoints_src'>src</a>[i].fX
3263 y = <a href='#SkMatrix_mapPoints_src'>src</a>[i].fY
3266 each <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is c…
3268 |A B C| |x| Ax+By+C Dx+Ey+F
3269 <a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+<a href=…
3270 |G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</
3272 <a href='#SkMatrix_mapPoints_src'>src</a> and <a href='#SkMatrix_mapPoints_dst'>dst</a> may <a href…
3276 <table> <tr> <td><a name='SkMatrix_mapPoints_dst'><code><strong>dst</strong></code></a></td>
3277 <td>storage for mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
3279 <tr> <td><a name='SkMatrix_mapPoints_src'><code><strong>src</strong></code></a></td>
3280 <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to transform</td>
3282 <tr> <td><a name='SkMatrix_mapPoints_count'><code><strong>count</strong></code></a></td>
3283 <td>number of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to transform</td>
3293 <a href='#SkMatrix_mapXY'>mapXY</a> <a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</
3295 <a name='SkMatrix_mapPoints_2'></a>
3300 void <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pt…
3303a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</
3304 each <a href='SkPoint_Reference#SkPoint'>SkPoint</a> by <a href='SkMatrix_Reference#SkMatrix'>SkMat…
3306 | A B C | | x |
3307 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | y |
3308 | G H <a href='#SkMatrix_I'>I</a> | | 1 |
3312 for (i = 0; i < <a href='#SkMatrix_mapPoints_2_count'>count</a>; ++i) {
3313 x = <a href='#SkMatrix_mapPoints_2_pts'>pts</a>[i].fX
3314 y = <a href='#SkMatrix_mapPoints_2_pts'>pts</a>[i].fY
3317 each resulting <a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPoint_Reference#SkPoint'>SkPo…
3319 |A B C| |x| Ax+By+C Dx+Ey+F
3320 <a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+<a href=…
3321 |G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</
3325 <table> <tr> <td><a name='SkMatrix_mapPoints_2_pts'><code><strong>pts</strong></code></a></td>
3326 <td>storage for mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
3328 <tr> <td><a name='SkMatrix_mapPoints_2_count'><code><strong>count</strong></code></a></td>
3329 <td>number of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to transform</td>
3339 <a href='#SkMatrix_mapXY'>mapXY</a> <a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</
3341 <a name='SkMatrix_mapHomogeneousPoints'></a>
3346a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</a>(<a href='undocumented#SkPoint3'>S…
3349a href='#SkMatrix_mapHomogeneousPoints_src'>src</a> <a href='undocumented#SkPoint3'>SkPoint3</a> a…
3350a href='undocumented#SkPoint3'>SkPoint3</a> array is mapped by multiplying each <a href='undocumen…
3352 | A B C | | x |
3353 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, <a href='#SkMatrix_mapHomogeneousPoint…
3354 | G H <a href='#SkMatrix_I'>I</a> | | z |
3356 each resulting <a href='#SkMatrix_mapHomogeneousPoints_dst'>dst</a> <a href='SkPoint_Reference#SkPo…
3358 |A B C| |x|
3359 <a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='#SkMatrix_mapHomogeneousPoints_src'>src</
3360 |G H <a href='#SkMatrix_I'>I</a>| |z|
3364 <table> <tr> <td><a name='SkMatrix_mapHomogeneousPoints_dst'><code><strong>dst</strong></code><…
3365 <td>storage for mapped <a href='undocumented#SkPoint3'>SkPoint3</a> array</td>
3367 <tr> <td><a name='SkMatrix_mapHomogeneousPoints_src'><code><strong>src</strong></code></a></td>
3368 <td><a href='undocumented#SkPoint3'>SkPoint3</a> array to transform</td>
3370 …<tr> <td><a name='SkMatrix_mapHomogeneousPoints_count'><code><strong>count</strong></code></a><…
3371 <td>items in <a href='undocumented#SkPoint3'>SkPoint3</a> array to transform</td>
3381 <a href='#SkMatrix_mapPoints'>mapPoints</a> <a href='#SkMatrix_mapXY'>mapXY</a> <a href='#SkMatrix_…
3383 <a name='SkMatrix_mapXY'></a>
3388a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocu…
3391a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkMatrix_mapXY_x'>x</a>, <a href='#SkMat…
3393 | A B C | | <a href='#SkMatrix_mapXY_x'>x</a> |
3394 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | <a href='#SkMatrix_mapXY_y'>y</
3395 | G H <a href='#SkMatrix_I'>I</a> | | 1 |
3397 <a href='#SkMatrix_mapXY_result'>result</a> is computed as:
3399 |A B C| |<a href='#SkMatrix_mapXY_x'>x</a>| Ax+By+C Dx+Ey+F
3400 <a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |<a href='#SkMatrix_mapXY_y'>y</a>| =…
3401 |G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</
3405 <table> <tr> <td><a name='SkMatrix_mapXY_x'><code><strong>x</strong></code></a></td>
3406 <td>x-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map</td>
3408 <tr> <td><a name='SkMatrix_mapXY_y'><code><strong>y</strong></code></a></td>
3409 <td>y-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map</td>
3411 <tr> <td><a name='SkMatrix_mapXY_result'><code><strong>result</strong></code></a></td>
3412 <td>storage for mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
3422 <a href='#SkMatrix_mapPoints'>mapPoints</a> <a href='#SkMatrix_mapVectors'>mapVectors</a>
3424 <a name='SkMatrix_mapXY_2'></a>
3429a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocu…
3432a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkMatrix_mapXY_2_x'>x</a>, <a href='#SkM…
3434 | A B C | | <a href='#SkMatrix_mapXY_2_x'>x</a> |
3435 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | <a href='#SkMatrix_mapXY_2_y'>y…
3436 | G H <a href='#SkMatrix_I'>I</a> | | 1 |
3440 |A B C| |<a href='#SkMatrix_mapXY_2_x'>x</a>| Ax+By+C Dx+Ey+F
3441 <a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |<a href='#SkMatrix_mapXY_2_y'>y</a>|…
3442 |G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</
3446 <table> <tr> <td><a name='SkMatrix_mapXY_2_x'><code><strong>x</strong></code></a></td>
3447 <td>x-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map</td>
3449 <tr> <td><a name='SkMatrix_mapXY_2_y'><code><strong>y</strong></code></a></td>
3450 <td>y-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map</td>
3456 mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a>
3464 <a href='#SkMatrix_mapPoints'>mapPoints</a> <a href='#SkMatrix_mapVectors'>mapVectors</a>
3466 <a name='SkMatrix_mapVectors'></a>
3471a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> dst…
3474a href='#SkMatrix_mapVectors_src'>src</a> <a href='SkPoint_Reference#Vector'>vector</a> array of l…
3475a href='SkPoint_Reference#Vector'>Vectors</a> are mapped by multiplying each <a href='SkPoint_Refe…
3476 <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> translation as zero. Given:
3478 | A B 0 | | x |
3479 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E 0 |, <a href='#SkMatrix_mapVectors_src'>src…
3480 | G H <a href='#SkMatrix_I'>I</a> | | 1 |
3484 for (i = 0; i < <a href='#SkMatrix_mapVectors_count'>count</a>; ++i) {
3485 x = <a href='#SkMatrix_mapVectors_src'>src</a>[i].fX
3486 y = <a href='#SkMatrix_mapVectors_src'>src</a>[i].fY
3489 each <a href='#SkMatrix_mapVectors_dst'>dst</a> <a href='SkPoint_Reference#Vector'>vector</a> is co…
3491 |A B 0| |x| Ax+By Dx+Ey
3492a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='#SkMatrix_mapVectors_src'>src</a> = |D E …
3493 |G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> …
3495 <a href='#SkMatrix_mapVectors_src'>src</a> and <a href='#SkMatrix_mapVectors_dst'>dst</a> may <a hr…
3499 <table> <tr> <td><a name='SkMatrix_mapVectors_dst'><code><strong>dst</strong></code></a></td>
3500 <td>storage for mapped <a href='SkPoint_Reference#Vector'>vectors</a></td>
3502 <tr> <td><a name='SkMatrix_mapVectors_src'><code><strong>src</strong></code></a></td>
3503 <td><a href='SkPoint_Reference#Vector'>vectors</a> to transform</td>
3505 <tr> <td><a name='SkMatrix_mapVectors_count'><code><strong>count</strong></code></a></td>
3506 <td>number of <a href='SkPoint_Reference#Vector'>vectors</a> to transform</td>
3516 <a href='#SkMatrix_mapVector'>mapVector</a> <a href='#SkMatrix_mapPoints'>mapPoints</a> <a href='#S…
3518 <a name='SkMatrix_mapVectors_2'></a>
3523 void <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a
3526a href='#SkMatrix_mapVectors_2_vecs'>vecs</a> <a href='SkPoint_Reference#Vector'>vector</a> array …
3527 <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, treating <a href='SkMatrix_Reference#SkMatrix'>…
3529 | A B 0 | | x |
3530 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E 0 |, vec = | y |
3531 | G H <a href='#SkMatrix_I'>I</a> | | 1 |
3535 for (i = 0; i < <a href='#SkMatrix_mapVectors_2_count'>count</a>; ++i) {
3536 x = <a href='#SkMatrix_mapVectors_2_vecs'>vecs</a>[i].fX
3537 y = <a href='#SkMatrix_mapVectors_2_vecs'>vecs</a>[i].fY
3540 each result <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
3542 |A B 0| |x| Ax+By Dx+Ey
3543 <a href='SkMatrix_Reference#Matrix'>Matrix</a> * vec = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+<a href='#S…
3544 |G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> …
3548 <table> <tr> <td><a name='SkMatrix_mapVectors_2_vecs'><code><strong>vecs</strong></code></a></t…
3549 …<td><a href='SkPoint_Reference#Vector'>vectors</a> to transform, and storage for mapped <a href='S…
3551 <tr> <td><a name='SkMatrix_mapVectors_2_count'><code><strong>count</strong></code></a></td>
3552 <td>number of <a href='SkPoint_Reference#Vector'>vectors</a> to transform</td>
3562 <a href='#SkMatrix_mapVector'>mapVector</a> <a href='#SkMatrix_mapPoints'>mapPoints</a> <a href='#S…
3564 <a name='SkMatrix_mapVector'></a>
3569a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a hre…
3572a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkMatrix_mapVector_dx'>dx</a>, <a href='#S…
3573 treating <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> translation as zero. Given:
3575 | A B 0 | | <a href='#SkMatrix_mapVector_dx'>dx</a> |
3576 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E 0 |, vec = | <a href='#SkMatrix_mapVector_d…
3577 | G H <a href='#SkMatrix_I'>I</a> | | 1 |
3579 each <a href='#SkMatrix_mapVector_result'>result</a> <a href='SkPoint_Reference#Vector'>vector</a> …
3581A B 0| |<a href='#SkMatrix_mapVector_dx'>dx</a>| A*<a href=…
3582a href='SkMatrix_Reference#Matrix'>Matrix</a> * vec = |D E 0| |<a href='#SkMatrix_mapVector_dy'>dy…
3583a href='#SkMatrix_I'>I</a>| | 1| G*<a href='#SkMatrix_mapVec…
3587 <table> <tr> <td><a name='SkMatrix_mapVector_dx'><code><strong>dx</strong></code></a></td>
3588 <td>x-axis value of <a href='SkPoint_Reference#Vector'>vector</a> to map</td>
3590 <tr> <td><a name='SkMatrix_mapVector_dy'><code><strong>dy</strong></code></a></td>
3591 <td>y-axis value of <a href='SkPoint_Reference#Vector'>vector</a> to map</td>
3593 <tr> <td><a name='SkMatrix_mapVector_result'><code><strong>result</strong></code></a></td>
3594 <td>storage for mapped <a href='SkPoint_Reference#Vector'>vector</a></td>
3604 <a href='#SkMatrix_mapVectors'>mapVectors</a> <a href='#SkMatrix_mapPoints'>mapPoints</a> <a href='…
3606 <a name='SkMatrix_mapVector_2'></a>
3611a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_mapVector'>mapVector</a>(<a hr…
3614a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkMatrix_mapVector_2_dx'>dx</a>, <a href='…
3617 | A B 0 | | <a href='#SkMatrix_mapVector_2_dx'>dx</a> |
3618 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E 0 |, vec = | <a href='#SkMatrix_mapVector_2…
3619 | G H <a href='#SkMatrix_I'>I</a> | | 1 |
3621 each result <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
3623A B 0| |<a href='#SkMatrix_mapVector_2_dx'>dx</a>| A*<a hre…
3624a href='SkMatrix_Reference#Matrix'>Matrix</a> * vec = |D E 0| |<a href='#SkMatrix_mapVector_2_dy'>…
3625a href='#SkMatrix_I'>I</a>| | 1| G*<a href='#SkMatrix_mapVec…
3629 <table> <tr> <td><a name='SkMatrix_mapVector_2_dx'><code><strong>dx</strong></code></a></td>
3630 <td>x-axis value of <a href='SkPoint_Reference#Vector'>vector</a> to map</td>
3632 <tr> <td><a name='SkMatrix_mapVector_2_dy'><code><strong>dy</strong></code></a></td>
3633 <td>y-axis value of <a href='SkPoint_Reference#Vector'>vector</a> to map</td>
3639 mapped <a href='SkPoint_Reference#Vector'>vector</a>
3647 <a href='#SkMatrix_mapVectors'>mapVectors</a> <a href='#SkMatrix_mapPoints'>mapPoints</a> <a href='…
3649 <a name='SkMatrix_mapRect'></a>
3654 bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst, con…
3657a href='#SkMatrix_mapRect_dst'>dst</a> to bounds of <a href='#SkMatrix_mapRect_src'>src</a> corner…
3658 Returns true if mapped corners are <a href='#SkMatrix_mapRect_dst'>dst</a> corners.
3660 Returned value is the same as calling <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>().
3664 <table> <tr> <td><a name='SkMatrix_mapRect_dst'><code><strong>dst</strong></code></a></td>
3665 <td>storage for bounds of mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
3667 <tr> <td><a name='SkMatrix_mapRect_src'><code><strong>src</strong></code></a></td>
3668 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map</td>
3674 true if <a href='#SkMatrix_mapRect_dst'>dst</a> is equivalent to mapped <a href='#SkMatrix_mapRect_…
3682 <a href='#SkMatrix_mapPoints'>mapPoints</a> <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>
3684 <a name='SkMatrix_mapRect_2'></a>
3689 bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href=…
3692a href='#SkMatrix_mapRect_2_rect'>rect</a> to bounds of <a href='#SkMatrix_mapRect_2_rect'>rect</a
3693 Returns true if mapped corners are computed <a href='#SkMatrix_mapRect_2_rect'>rect</a> corners.
3695 Returned value is the same as calling <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>().
3699 <table> <tr> <td><a name='SkMatrix_mapRect_2_rect'><code><strong>rect</strong></code></a></td>
3706 true if result is equivalent to mapped <a href='#SkMatrix_mapRect_2_rect'>rect</a>
3714a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTranslate</a> <a href='#SkMatrix_mapPoints'>m…
3716 <a name='SkMatrix_mapRect_3'></a>
3721 <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkMatrix_mapRect'>mapRect</a>(const <a href=…
3724 Returns bounds of <a href='#SkMatrix_mapRect_3_src'>src</a> corners mapped by <a href='SkMatrix_Ref…
3728 <table> <tr> <td><a name='SkMatrix_mapRect_3_src'><code><strong>src</strong></code></a></td>
3743 <a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a> <a href='#SkMatrix_mapRectScaleTranslate'>mapRe…
3745 <a name='SkMatrix_mapRectToQuad'></a>
3750a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a>…
3753 … of <a href='#SkMatrix_mapRectToQuad_rect'>rect</a> to <a href='#SkMatrix_mapRectToQuad_dst'>dst</
3754a href='#SkMatrix_mapRectToQuad_rect'>rect</a> corner by <a href='SkMatrix_Reference#SkMatrix'>SkM…
3755a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkMatr…
3756a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkMatr…
3758a href='#SkMatrix_mapRectToQuad_rect'>rect</a> may be empty: <a href='#SkMatrix_mapRectToQuad_rect…
3759a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fTop'>fTop</a> may be greater than…
3763 | A B C | | x |
3764 <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | y |
3765 | G H <a href='#SkMatrix_I'>I</a> | | 1 |
3767a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkMatr…
3768a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkMa…
3769 each <a href='#SkMatrix_mapRectToQuad_dst'>dst</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> …
3771 |A B C| |x| Ax+By+C Dx+Ey+F
3772 <a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+<a href=…
3773 |G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</
3777 <table> <tr> <td><a name='SkMatrix_mapRectToQuad_dst'><code><strong>dst</strong></code></a></td>
3778 <td>storage for mapped corner <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
3780 <tr> <td><a name='SkMatrix_mapRectToQuad_rect'><code><strong>rect</strong></code></a></td>
3781 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map</td>
3791 <a href='#SkMatrix_mapRect'>mapRect</a> <a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTrans…
3793 <a name='SkMatrix_mapRectScaleTranslate'></a>
3798a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTranslate</a>(<a href='SkRect_Reference#SkRec…
3801a href='#SkMatrix_mapRectScaleTranslate_dst'>dst</a> to bounds of <a href='#SkMatrix_mapRectScaleT…
3807 <table> <tr> <td><a name='SkMatrix_mapRectScaleTranslate_dst'><code><strong>dst</strong></code>…
3808 <td>storage for bounds of mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
3810 …<tr> <td><a name='SkMatrix_mapRectScaleTranslate_src'><code><strong>src</strong></code></a></td>
3811 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map</td>
3821a href='#SkMatrix_mapRect'>mapRect</a> <a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a> <a href…
3823 <a name='SkMatrix_mapRadius'></a>
3828 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_mapRadius'>mapRadius</a>(<a href='u…
3831 …geometric mean <a href='#SkMatrix_mapRadius_radius'>radius</a> of ellipse formed by constructing <
3832a href='undocumented#Size'>size</a> <a href='#SkMatrix_mapRadius_radius'>radius</a>, and mapping c…
3834 Result is not meaningful if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains perspective…
3838 <table> <tr> <td><a name='SkMatrix_mapRadius_radius'><code><strong>radius</strong></code></a></…
3839 <td><a href='undocumented#Circle'>circle</a> <a href='undocumented#Size'>size</a> to map</td>
3845 average mapped <a href='#SkMatrix_mapRadius_radius'>radius</a>
3849 <div><fiddle-embed name="6d6f2082fcf59d9f02bfb1758b87db69"><div>The area enclosed by a square with …
3855 <a href='#SkMatrix_mapVector'>mapVector</a>
3857 <a name='SkMatrix_isFixedStepInX'></a>
3862 bool <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>()const
3865 Returns true if a unit step on x-axis at some y-axis value mapped through <a href='SkMatrix_Referen…
3866 …n be represented by a constant <a href='SkPoint_Reference#Vector'>vector</a>. Returns true if <a h…
3867a href='#SkMatrix_kIdentity_Mask'>kIdentity_Mask</a>, or combinations of: <a href='#SkMatrix_kTran…
3869a href='#SkMatrix_getType'>getType</a>() returns <a href='#SkMatrix_kPerspective_Mask'>kPerspectiv…
3874 true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> does not have complex perspective
3905 <a href='#SkMatrix_fixedStepInX'>fixedStepInX</a> <a href='#SkMatrix_getType'>getType</a>
3907 <a name='SkMatrix_fixedStepInX'></a>
3912 <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_fixedStepInX'>fixedStepInX</a>…
3915a href='SkPoint_Reference#Vector'>vector</a> representing a unit step on x-axis at <a href='#SkMat…
3916 If <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>() is false, returned value is undefined.
3920 <table> <tr> <td><a name='SkMatrix_fixedStepInX_y'><code><strong>y</strong></code></a></td>
3921 <td>position of <a href='undocumented#Line'>line</a> parallel to x-axis</td>
3927 <a href='SkPoint_Reference#Vector'>vector</a> advance of mapped unit step on x-axis
3935 <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a> <a href='#SkMatrix_getType'>getType</a>
3937 <a name='SkMatrix_cheapEqualTo'></a>
3942 bool <a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a>(const <a href='SkMatrix_Reference#SkMatrix'>…
3945 Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> equals <a href='#SkMatrix_cheapE…
3948 <a href='SkMatrix_Reference#Matrix'>matrix</a> has positive zero value and the other has negative z…
3950 Returns true even when both <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contain NaN.
3957 <table> <tr> <td><a name='SkMatrix_cheapEqualTo_m'><code><strong>m</strong></code></a></td>
3958 <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
3964 true if <a href='#SkMatrix_cheapEqualTo_m'>m</a> and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix…
3973 identity: a == b a.cheapEqualTo(b): true
3974 neg zero: a == b a.cheapEqualTo(b): false
3975 one NaN: a != b a.cheapEqualTo(b): false
3976 both NaN: a != b a.cheapEqualTo(b): true
3983a href='#SkMatrix_equal_operator'>operator==</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMat…
3985 <a name='SkMatrix_equal_operator'></a>
3990a href='#SkMatrix_equal_operator'>operator==</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMat…
3993a href='#SkMatrix_equal_operator_a'>a</a> and <a href='#SkMatrix_equal_operator_b'>b</a>; returns …
3994 …zero values are different. Returns false if either <a href='SkMatrix_Reference#SkMatrix'>SkMatrix<…
3995 contains NaN, even if the other <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> also contains Na…
3999 <table> <tr> <td><a name='SkMatrix_equal_operator_a'><code><strong>a</strong></code></a></td>
4000 <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
4002 <tr> <td><a name='SkMatrix_equal_operator_b'><code><strong>b</strong></code></a></td>
4003 <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
4009a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_equal_operator_a'>a</a> and <
4018 identity: a == b a.cheapEqualTo(b): true
4025a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a> <a href='#SkMatrix_notequal_operator'>operator!=<…
4027 <a name='SkMatrix_notequal_operator'></a>
4032a href='#SkMatrix_notequal_operator'>operator!=</a>(const <a href='SkMatrix_Reference#SkMatrix'>Sk…
4035a href='#SkMatrix_notequal_operator_a'>a</a> and <a href='#SkMatrix_notequal_operator_b'>b</a>; re…
4036 … zero values are different. Returns true if either <a href='SkMatrix_Reference#SkMatrix'>SkMatrix<…
4037 contains NaN, even if the other <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> also contains Na…
4041 <table> <tr> <td><a name='SkMatrix_notequal_operator_a'><code><strong>a</strong></code></a></td>
4042 <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
4044 <tr> <td><a name='SkMatrix_notequal_operator_b'><code><strong>b</strong></code></a></td>
4045 <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
4051a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_notequal_operator_a'>a</a> an…
4059a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a> <a href='#SkMatrix_equal_operator'>operator==</a>…
4061 <a name='Utility'></a>
4063 <a name='SkMatrix_dump'></a>
4068 void <a href='#SkMatrix_dump'>dump()</a>const
4071a href='undocumented#Text'>text</a> representation of <a href='SkMatrix_Reference#SkMatrix'>SkMatr…
4073 original <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> from output.
4091 <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_dump'>dump</a>
4093 <a name='SkMatrix_getMinScale'></a>
4098 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMinScale'>getMinScale</a>()const
4101 Returns the minimum scaling factor of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by decompo…
4103 Returns -1 if scale factor overflows or <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains…
4123 <a href='#SkMatrix_getMaxScale'>getMaxScale</a> <a href='#SkMatrix_getMinMaxScales'>getMinMaxScales…
4125 <a name='SkMatrix_getMaxScale'></a>
4130 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMaxScale'>getMaxScale</a>()const
4133 Returns the maximum scaling factor of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by decompo…
4135 Returns -1 if scale factor overflows or <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains…
4155 <a href='#SkMatrix_getMinScale'>getMinScale</a> <a href='#SkMatrix_getMinMaxScales'>getMinMaxScales…
4157 <a name='SkMatrix_getMinMaxScales'></a>
4162 bool <a href='#SkMatrix_getMinMaxScales'>getMinMaxScales</a>(<a href='undocumented#SkScalar'>SkScal…
4165a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a>[0] to the minimum scaling factor,…
4167 the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> scaling and skewing elements.
4169 Returns true if <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a> are found; otherw…
4170 <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a> to undefined values.
4174 <table> <tr> <td><a name='SkMatrix_getMinMaxScales_scaleFactors'><code><strong>scaleFactors</st…
4197 <a href='#SkMatrix_getMinScale'>getMinScale</a> <a href='#SkMatrix_getMaxScale'>getMaxScale</a>
4199 <a name='SkMatrix_decomposeScale'></a>
4204 …<a href='#SkMatrix_decomposeScale'>decomposeScale</a>(<a href='undocumented#SkSize'>SkSize</a>* sc…
4207 Decomposes <a href='SkMatrix_Reference#Matrix'>Matrix</a> into <a href='#SkMatrix_decomposeScale_sc…
4208 <a href='SkMatrix_Reference#Matrix'>Matrix</a> could not be decomposed.
4210a href='#SkMatrix_decomposeScale_scale'>scale</a> to portion of <a href='SkMatrix_Reference#Matrix…
4211 with scaling factored out. <a href='#SkMatrix_decomposeScale_remaining'>remaining</a> may be passed…
4212 to determine if <a href='SkMatrix_Reference#Matrix'>Matrix</a> can be decomposed without computing …
4214a href='#SkMatrix_decomposeScale_scale'>scale</a> components are found. <a href='#SkMatrix_decompo…
4215 unchanged if <a href='SkMatrix_Reference#Matrix'>Matrix</a> contains perspective; <a href='#SkMatri…
4218 On success: <code><a href='SkMatrix_Reference#Matrix'>Matrix</a> = <a href='#SkMatrix_decomposeScal…
4222 <table> <tr> <td><a name='SkMatrix_decomposeScale_scale'><code><strong>scale</strong></code></a
4225 …<tr> <td><a name='SkMatrix_decomposeScale_remaining'><code><strong>remaining</strong></code></a
4226 <td><a href='SkMatrix_Reference#Matrix'>Matrix</a> without scaling; may be nullptr</td>
4232 true if <a href='#SkMatrix_decomposeScale_scale'>scale</a> can be computed
4251 <a href='#SkMatrix_setScale'>setScale</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>
4253 <a name='SkMatrix_I'></a>
4258 static const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_I'>I</a>()
4261 …ce to const identity <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Returned <a href='SkMatri…
4269 const identity <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
4286 <a href='#SkMatrix_reset'>reset()</a> <a href='#SkMatrix_setIdentity'>setIdentity</a>
4288 <a name='SkMatrix_InvalidMatrix'></a>
4293 static const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_InvalidMatrix'>…
4296 …nce to a const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with invalid values. Returned <a
4299a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarM…
4300a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarM…
4301a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarM…
4305 const invalid <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
4321 <a href='#SkMatrix_getType'>getType</a>
4323 <a name='SkMatrix_Concat'></a>
4328a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat'>Concat</a>(const <a h…
4331a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat_a'>a</a> multiplied by…
4335 | A B C | | J K L |
4336 <a href='#SkMatrix_Concat_a'>a</a> = | D E F |, <a href='#SkMatrix_Concat_b'>b</a> = | M N O |
4337 | G H <a href='#SkMatrix_I'>I</a> | | P Q R |
4339 sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
4341 | A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
4342 <a href='#SkMatrix_Concat_a'>a</a> * <a href='#SkMatrix_Concat_b'>b</a> = | D E F | * | M N O | = |…
4343 | G H <a href='#SkMatrix_I'>I</a> | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
4347 <table> <tr> <td><a name='SkMatrix_Concat_a'><code><strong>a</strong></code></a></td>
4348 <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on left side of multiply expression</td>
4350 <tr> <td><a name='SkMatrix_Concat_b'><code><strong>b</strong></code></a></td>
4351 … <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on right side of multiply expression</td>
4357 <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> computed from <a href='#SkMatrix_Concat_a'>a</a>…
4361 …2dca41946"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> creates perspective <a href='S…
4362 …plying the <a href='SkMatrix_Reference#Matrix'>matrix</a> by its inverse turns into an identity <a
4367 <a href='#SkMatrix_preConcat'>preConcat</a> <a href='#SkMatrix_postConcat'>postConcat</a>
4369 <a name='SkMatrix_dirtyMatrixTypeCache'></a>
4374 void <a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a>()
4378 …cations to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> element reference returned by <a hre…
4397 <a href='#SkMatrix_array1_operator'>operator[]</a>(int index) <a href='#SkMatrix_getType'>getType</
4399 <a name='SkMatrix_setScaleTranslate'></a>
4404a href='#SkMatrix_setScaleTranslate'>setScaleTranslate</a>(<a href='undocumented#SkScalar'>SkScala…
4407 Initializes <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with scale and translate elements.
4409 | <a href='#SkMatrix_setScaleTranslate_sx'>sx</a> 0 <a href='#SkMatrix_setScaleTranslate_tx'>tx</a
4410 | 0 <a href='#SkMatrix_setScaleTranslate_sy'>sy</a> <a href='#SkMatrix_setScaleTranslate_ty'>ty</a
4415 <table> <tr> <td><a name='SkMatrix_setScaleTranslate_sx'><code><strong>sx</strong></code></a></…
4418 <tr> <td><a name='SkMatrix_setScaleTranslate_sy'><code><strong>sy</strong></code></a></td>
4421 <tr> <td><a name='SkMatrix_setScaleTranslate_tx'><code><strong>tx</strong></code></a></td>
4424 <tr> <td><a name='SkMatrix_setScaleTranslate_ty'><code><strong>ty</strong></code></a></td>
4443 <a href='#SkMatrix_setScale'>setScale</a> <a href='#SkMatrix_preTranslate'>preTranslate</a> <a href…
4445 <a name='SkMatrix_isFinite'></a>
4450 bool <a href='#SkMatrix_isFinite'>isFinite</a>()const
4453 Returns true if all elements of the <a href='SkMatrix_Reference#Matrix'>matrix</a> are finite. Retu…
4458 true if <a href='SkMatrix_Reference#Matrix'>matrix</a> has only finite elements