aboutsummaryrefslogtreecommitdiffhomepage
path: root/site/user/api/SkMatrix_Reference.md
diff options
context:
space:
mode:
Diffstat (limited to 'site/user/api/SkMatrix_Reference.md')
-rw-r--r--site/user/api/SkMatrix_Reference.md3906
1 files changed, 2486 insertions, 1420 deletions
diff --git a/site/user/api/SkMatrix_Reference.md b/site/user/api/SkMatrix_Reference.md
index 6acd4b64a8..f627ebe9ee 100644
--- a/site/user/api/SkMatrix_Reference.md
+++ b/site/user/api/SkMatrix_Reference.md
@@ -1,177 +1,684 @@
SkMatrix Reference
===
-# <a name="Matrix"></a> Matrix
+# <a name='Matrix'>Matrix</a>
-## <a name="Overview"></a> Overview
+# <a name='SkMatrix'>Class SkMatrix</a>
-## <a name="Overview_Subtopic"></a> Overview Subtopic
+## <a name='Constant'>Constant</a>
-| name | description |
-| --- | --- |
-| Constant | enum and enum class, const values |
-| <a href="#Constructor">Constructor</a> | functions that construct <a href="#SkMatrix">SkMatrix</a> |
-| <a href="#Member_Function">Member Function</a> | static functions and member methods |
-| <a href="#Operator">Operator</a> | operator overloading methods |
-| <a href="#Related_Function">Related Function</a> | similar methods grouped together |
-# <a name="SkMatrix"></a> Class SkMatrix
-<a href="#Matrix">Matrix</a> holds a 3x3 matrix for transforming coordinates. This allows mapping
-<a href="SkPoint_Reference#Point">Points</a> and <a href="SkPoint_Reference#Vector">Vectors</a> with translation, scaling, skewing, rotation, and
+SkMatrix related constants are defined by <code>enum</code>, <code>enum class</code>, <code>#define</code>, <code>const</code>, and <code>constexpr</code>.
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_ScaleToFit'>ScaleToFit</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>options to map <a href='SkRect_Reference#Rect'>Rects</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_TypeMask'>TypeMask</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>bit field for <a href='#Matrix'>Matrix</a> complexity</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kAScaleX'>kAScaleX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal scale factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kAScaleY'>kAScaleY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical scale factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kASkewX'>kASkewX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal skew factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kASkewY'>kASkewY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical skew factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kATransX'>kATransX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal translation</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kATransY'>kATransY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical translation</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kAffine_Mask'>kAffine Mask</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>skew or rotate <a href='#Matrix'>Matrix</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kCenter_ScaleToFit'>kCenter ScaleToFit</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>scales and aligns to center</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kEnd_ScaleToFit'>kEnd ScaleToFit</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>scales and aligns to right and bottom</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kFill_ScaleToFit'>kFill ScaleToFit</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>scales in x and y to fill destination <a href='SkRect_Reference#Rect'>Rect</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kIdentity_Mask'>kIdentity Mask</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>identity <a href='#Matrix'>Matrix</a>; all bits clear</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMPersp0'>kMPersp0</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>input x perspective factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMPersp1'>kMPersp1</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>input y perspective factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMPersp2'>kMPersp2</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>perspective bias</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMScaleX'>kMScaleX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal scale factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMScaleY'>kMScaleY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical scale factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMSkewX'>kMSkewX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal skew factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMSkewY'>kMSkewY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical skew factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMTransX'>kMTransX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal translation</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMTransY'>kMTransY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical translation</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kPerspective_Mask'>kPerspective Mask</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>perspective <a href='#Matrix'>Matrix</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kScale_Mask'>kScale Mask</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>scale <a href='#Matrix'>Matrix</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kStart_ScaleToFit'>kStart ScaleToFit</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>scales and aligns to left and top</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kTranslate_Mask'>kTranslate Mask</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>translation <a href='#Matrix'>Matrix</a></td>
+ </tr>
+</table>
+<a href='#Matrix'>Matrix</a> holds a 3x3 matrix for transforming coordinates. This allows mapping
+<a href='SkPoint_Reference#Point'>Points</a> and <a href='SkPoint_Reference#Vector'>Vectors</a> with translation, scaling, skewing, rotation, and
perspective.
-<a href="#Matrix">Matrix</a> elements are in row major order. <a href="#Matrix">Matrix</a> does not have a constructor,
-so it must be explicitly initialized. <a href="#SkMatrix_setIdentity">setIdentity</a> initializes <a href="#Matrix">Matrix</a>
-so it has no effect. <a href="#SkMatrix_setTranslate">setTranslate</a>, <a href="#SkMatrix_setScale">setScale</a>, <a href="#SkMatrix_setSkew">setSkew</a>, <a href="#SkMatrix_setRotate">setRotate</a>, <a href="#SkMatrix_set9">set9</a> and <a href="#SkMatrix_setAll">setAll</a>
-initializes all <a href="#Matrix">Matrix</a> elements with the corresponding mapping.
-
-<a href="#Matrix">Matrix</a> includes a hidden variable that classifies the type of matrix to
-improve performance. <a href="#Matrix">Matrix</a> is not thread safe unless <a href="#SkMatrix_getType">getType</a> is called first.
-
-## <a name="Member_Function"></a> Member Function
-
-| name | description |
-| --- | --- |
-| <a href="#SkMatrix_Concat">Concat</a> | returns the concatenation of <a href="#Matrix">Matrix</a> pair |
-| I | returns a reference to a const identity <a href="#Matrix">Matrix</a> |
-| <a href="#SkMatrix_InvalidMatrix">InvalidMatrix</a> | returns a reference to a const invalid <a href="#Matrix">Matrix</a> |
-| <a href="#SkMatrix_MakeAll">MakeAll</a> | constructs all nine values |
-| <a href="#SkMatrix_MakeRectToRect">MakeRectToRect</a> | constructs from source <a href="SkRect_Reference#Rect">Rect</a> to destination <a href="SkRect_Reference#Rect">Rect</a> |
-| <a href="#SkMatrix_MakeScale">MakeScale</a> | constructs from scale in x and y |
-| <a href="#SkMatrix_MakeTrans">MakeTrans</a> | constructs from translate in x and y |
-| <a href="#SkMatrix_SetAffineIdentity">SetAffineIdentity</a> | sets 3x2 array to identity |
-| <a href="#SkMatrix_asAffine">asAffine</a> | copies to 3x2 array |
-| <a href="#SkMatrix_cheapEqualTo">cheapEqualTo</a> | compares <a href="#Matrix">Matrix</a> pair using memcmp() |
-| <a href="#SkMatrix_decomposeScale">decomposeScale</a> | separates scale if possible |
-| <a href="#SkMatrix_dirtyMatrixTypeCache">dirtyMatrixTypeCache</a> | sets internal cache to unknown state |
-| <a href="#SkMatrix_dump">dump</a> | sends text representation using floats to standard output |
-| <a href="#SkMatrix_fixedStepInX">fixedStepInX</a> | returns step in x for a position in y |
-| <a href="#SkMatrix_get">get</a> | returns one of nine <a href="#Matrix">Matrix</a> values |
-| <a href="#SkMatrix_get9">get9</a> | returns all nine <a href="#Matrix">Matrix</a> values |
-| <a href="#SkMatrix_getMaxScale">getMaxScale</a> | returns maximum scaling, if possible |
-| <a href="#SkMatrix_getMinMaxScales">getMinMaxScales</a> | returns minimum and maximum scaling, if possible |
-| <a href="#SkMatrix_getMinScale">getMinScale</a> | returns minimum scaling, if possible |
-| <a href="#SkMatrix_getPerspX">getPerspX</a> | returns input x perspective factor |
-| <a href="#SkMatrix_getPerspY">getPerspY</a> | returns input y perspective factor |
-| <a href="#SkMatrix_getScaleX">getScaleX</a> | returns horizontal scale factor |
-| <a href="#SkMatrix_getScaleY">getScaleY</a> | returns vertical scale factor |
-| <a href="#SkMatrix_getSkewX">getSkewX</a> | returns horizontal skew factor |
-| <a href="#SkMatrix_getSkewY">getSkewY</a> | returns vertical skew factor |
-| <a href="#SkMatrix_getTranslateX">getTranslateX</a> | returns horizontal translation |
-| <a href="#SkMatrix_getTranslateY">getTranslateY</a> | returns vertical translation |
-| <a href="#SkMatrix_getType">getType</a> | returns transform complexity |
-| <a href="#SkMatrix_hasPerspective">hasPerspective</a> | returns if transform includes perspective |
-| <a href="#SkMatrix_invert">invert</a> | returns inverse, if possible |
-| <a href="#SkMatrix_isFinite">isFinite</a> | returns if all <a href="#Matrix">Matrix</a> values are not infinity, NaN |
-| <a href="#SkMatrix_isFixedStepInX">isFixedStepInX</a> | returns if transformation supports fixed step in x |
-| <a href="#SkMatrix_isIdentity">isIdentity</a> | returns if matrix equals the identity <a href="#Matrix">Matrix</a> |
-| <a href="#SkMatrix_isScaleTranslate">isScaleTranslate</a> | returns if transform is limited to scale and translate |
-| <a href="#SkMatrix_isSimilarity">isSimilarity</a> | returns if transform is limited to square scale and rotation |
-| <a href="#SkMatrix_isTranslate">isTranslate</a> | returns if transform is limited to translate |
-| <a href="#SkMatrix_mapHomogeneousPoints">mapHomogeneousPoints</a> | maps <a href="undocumented#Point3">Point3</a> array |
-| <a href="#SkMatrix_mapPoints">mapPoints</a> | maps <a href="SkPoint_Reference#Point">Point</a> array |
-| <a href="#SkMatrix_mapRadius">mapRadius</a> | returns mean radius of mapped <a href="undocumented#Circle">Circle</a> |
-| <a href="#SkMatrix_mapRect">mapRect</a> | returns bounds of mapped <a href="SkRect_Reference#Rect">Rect</a> |
-| <a href="#SkMatrix_mapRectScaleTranslate">mapRectScaleTranslate</a> | returns bounds of mapped <a href="SkRect_Reference#Rect">Rect</a> |
-| <a href="#SkMatrix_mapRectToQuad">mapRectToQuad</a> | maps <a href="SkRect_Reference#Rect">Rect</a> to <a href="SkPoint_Reference#Point">Point</a> array |
-| <a href="#SkMatrix_mapVector">mapVector</a> | maps <a href="SkPoint_Reference#Vector">Vector</a> |
-| <a href="#SkMatrix_mapVectors">mapVectors</a> | maps <a href="SkPoint_Reference#Vector">Vector</a> array |
-| <a href="#SkMatrix_mapXY">mapXY</a> | maps <a href="SkPoint_Reference#Point">Point</a> |
-| <a href="#SkMatrix_postConcat">postConcat</a> | post-multiplies <a href="#Matrix">Matrix</a> by <a href="#Matrix">Matrix</a> parameter |
-| <a href="#SkMatrix_postIDiv">postIDiv</a> | post-multiplies <a href="#Matrix">Matrix</a> by inverse scale |
-| <a href="#SkMatrix_postRotate">postRotate</a> | post-multiplies <a href="#Matrix">Matrix</a> by rotation |
-| <a href="#SkMatrix_postScale">postScale</a> | post-multiplies <a href="#Matrix">Matrix</a> by scale |
-| <a href="#SkMatrix_postSkew">postSkew</a> | post-multiplies <a href="#Matrix">Matrix</a> by skew |
-| <a href="#SkMatrix_postTranslate">postTranslate</a> | post-multiplies <a href="#Matrix">Matrix</a> by translation |
-| <a href="#SkMatrix_preConcat">preConcat</a> | pre-multiplies <a href="#Matrix">Matrix</a> by <a href="#Matrix">Matrix</a> parameter |
-| <a href="#SkMatrix_preRotate">preRotate</a> | pre-multiplies <a href="#Matrix">Matrix</a> by rotation |
-| <a href="#SkMatrix_preScale">preScale</a> | pre-multiplies <a href="#Matrix">Matrix</a> by scale |
-| <a href="#SkMatrix_preSkew">preSkew</a> | pre-multiplies <a href="#Matrix">Matrix</a> by skew |
-| <a href="#SkMatrix_preTranslate">preTranslate</a> | pre-multiplies <a href="#Matrix">Matrix</a> by translation |
-| <a href="#SkMatrix_preservesAxisAlignment">preservesAxisAlignment</a> | returns if mapping restricts to 90 degree multiples and mirroring |
-| <a href="#SkMatrix_preservesRightAngles">preservesRightAngles</a> | returns if mapped 90 angle remains 90 degrees |
-| <a href="#SkMatrix_rectStaysRect">rectStaysRect</a> | returns if mapped <a href="SkRect_Reference#Rect">Rect</a> can be represented by another <a href="SkRect_Reference#Rect">Rect</a> |
-| <a href="#SkMatrix_reset">reset</a> | sets <a href="#Matrix">Matrix</a> to identity |
-| <a href="#SkMatrix_set">set</a> | sets one value |
-| <a href="#SkMatrix_set9">set9</a> | sets all values from <a href="undocumented#Scalar">Scalar</a> array |
-| <a href="#SkMatrix_setAffine">setAffine</a> | sets left two columns |
-| <a href="#SkMatrix_setAll">setAll</a> | sets all values from parameters |
-| <a href="#SkMatrix_setConcat">setConcat</a> | sets to <a href="#Matrix">Matrix</a> parameter multiplied by <a href="#Matrix">Matrix</a> parameter |
-| <a href="#SkMatrix_setIdentity">setIdentity</a> | sets <a href="#Matrix">Matrix</a> to identity |
-| <a href="#SkMatrix_setPerspX">setPerspX</a> | sets input x perspective factor |
-| <a href="#SkMatrix_setPerspY">setPerspY</a> | sets input y perspective factor |
-| <a href="#SkMatrix_setPolyToPoly">setPolyToPoly</a> | sets to map one to four points to an equal array of points |
-| <a href="#SkMatrix_setRSXform">setRSXform</a> | sets to rotate, scale, and translate |
-| <a href="#SkMatrix_setRectToRect">setRectToRect</a> | sets to map one <a href="SkRect_Reference#Rect">Rect</a> to another |
-| <a href="#SkMatrix_setRotate">setRotate</a> | sets to rotate about a point |
-| <a href="#SkMatrix_setScale">setScale</a> | sets to scale about a point |
-| <a href="#SkMatrix_setScaleTranslate">setScaleTranslate</a> | sets to scale and translate |
-| <a href="#SkMatrix_setScaleX">setScaleX</a> | sets horizontal scale factor |
-| <a href="#SkMatrix_setScaleY">setScaleY</a> | sets vertical scale factor |
-| <a href="#SkMatrix_setSinCos">setSinCos</a> | sets to rotate and scale about a point |
-| <a href="#SkMatrix_setSkew">setSkew</a> | sets to skew about a point |
-| <a href="#SkMatrix_setSkewX">setSkewX</a> | sets horizontal skew factor |
-| <a href="#SkMatrix_setSkewY">setSkewY</a> | sets vertical skew factor |
-| <a href="#SkMatrix_setTranslate">setTranslate</a> | sets to translate in x and y |
-| <a href="#SkMatrix_setTranslateX">setTranslateX</a> | sets horizontal translation |
-| <a href="#SkMatrix_setTranslateY">setTranslateY</a> | sets vertical translation |
-| <a href="#SkMatrix_toString">toString</a> | converts <a href="#Matrix">Matrix</a> to machine readable form |
-
-## <a name="Related_Function"></a> Related Function
-
-| name | description |
-| --- | --- |
-| <a href="#AffineIndex">AffineIndex</a> | affine member indices |
-| <a href="#MemberIndex">MemberIndex</a> | member indices |
-| <a href="#Property">Property</a> | values and attributes |
-| <a href="#Set">Set</a> | set one or more matrix values |
-| <a href="#Transform">Transform</a> | map points with <a href="#Matrix">Matrix</a> |
-| <a href="#Utility">Utility</a> | rarely called management functions |
-
-## <a name="Constructor"></a> Constructor
-
-| name | description |
-| --- | --- |
-| I | returns a reference to a const identity <a href="#Matrix">Matrix</a> |
-| <a href="#SkMatrix_InvalidMatrix">InvalidMatrix</a> | returns a reference to a const invalid <a href="#Matrix">Matrix</a> |
-| <a href="#SkMatrix_MakeAll">MakeAll</a> | constructs all nine values |
-| <a href="#SkMatrix_MakeRectToRect">MakeRectToRect</a> | constructs from source <a href="SkRect_Reference#Rect">Rect</a> to destination <a href="SkRect_Reference#Rect">Rect</a> |
-| <a href="#SkMatrix_MakeScale">MakeScale</a> | constructs from scale in x and y |
-| | <a href="#SkMatrix_MakeScale">MakeScale(SkScalar sx, SkScalar sy)</a> |
-| | <a href="#SkMatrix_MakeScale_2">MakeScale(SkScalar scale)</a> |
-| <a href="#SkMatrix_MakeTrans">MakeTrans</a> | constructs from translate in x and y |
-| <a href="#SkMatrix_SetAffineIdentity">SetAffineIdentity</a> | sets 3x2 array to identity |
-| <a href="#SkMatrix_asAffine">asAffine</a> | copies to 3x2 array |
-| <a href="#SkMatrix_reset">reset</a> | sets <a href="#Matrix">Matrix</a> to identity |
-| <a href="#SkMatrix_setAffine">setAffine</a> | sets left two columns |
-| <a href="#SkMatrix_setConcat">setConcat</a> | sets to <a href="#Matrix">Matrix</a> parameter multiplied by <a href="#Matrix">Matrix</a> parameter |
-| <a href="#SkMatrix_setIdentity">setIdentity</a> | sets <a href="#Matrix">Matrix</a> to identity |
-| <a href="#SkMatrix_setRSXform">setRSXform</a> | sets to rotate, scale, and translate |
-| <a href="#SkMatrix_setRotate">setRotate</a> | sets to rotate about a point |
-| | <a href="#SkMatrix_setRotate">setRotate(SkScalar degrees, SkScalar px, SkScalar py)</a> |
-| | <a href="#SkMatrix_setRotate_2">setRotate(SkScalar degrees)</a> |
-| <a href="#SkMatrix_setScale">setScale</a> | sets to scale about a point |
-| | <a href="#SkMatrix_setScale">setScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py)</a> |
-| | <a href="#SkMatrix_setScale_2">setScale(SkScalar sx, SkScalar sy)</a> |
-| <a href="#SkMatrix_setScaleTranslate">setScaleTranslate</a> | sets to scale and translate |
-| <a href="#SkMatrix_setSinCos">setSinCos</a> | sets to rotate and scale about a point |
-| | <a href="#SkMatrix_setSinCos">setSinCos(SkScalar sinValue, SkScalar cosValue, SkScalar px, SkScalar py)</a> |
-| | <a href="#SkMatrix_setSinCos_2">setSinCos(SkScalar sinValue, SkScalar cosValue)</a> |
-| <a href="#SkMatrix_setSkew">setSkew</a> | sets to skew about a point |
-| | <a href="#SkMatrix_setSkew">setSkew(SkScalar kx, SkScalar ky, SkScalar px, SkScalar py)</a> |
-| | <a href="#SkMatrix_setSkew_2">setSkew(SkScalar kx, SkScalar ky)</a> |
-| <a href="#SkMatrix_setTranslate">setTranslate</a> | sets to translate in x and y |
-| | <a href="#SkMatrix_setTranslate">setTranslate(SkScalar dx, SkScalar dy)</a> |
-| | <a href="#SkMatrix_setTranslate_2">setTranslate(const SkVector& v)</a> |
-
-<a name="SkMatrix_MakeScale"></a>
+<a href='#Matrix'>Matrix</a> elements are in row major order. <a href='#Matrix'>Matrix</a> does not have a constructor,
+so it must be explicitly initialized. <a href='#SkMatrix_setIdentity'>setIdentity</a> initializes <a href='#Matrix'>Matrix</a>
+so it has no effect. <a href='#SkMatrix_setTranslate'>setTranslate</a>, <a href='#SkMatrix_setScale'>setScale</a>, <a href='#SkMatrix_setSkew'>setSkew</a>, <a href='#SkMatrix_setRotate'>setRotate</a>, <a href='#SkMatrix_set9'>set9</a> and <a href='#SkMatrix_setAll'>setAll</a>
+initializes all <a href='#Matrix'>Matrix</a> elements with the corresponding mapping.
+
+<a href='#Matrix'>Matrix</a> includes a hidden variable that classifies the type of matrix to
+improve performance. <a href='#Matrix'>Matrix</a> is not thread safe unless <a href='#SkMatrix_getType'>getType</a> is called first.
+
+## Overview
+
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Constant'>Constants</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>enum and enum class, and their const values</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Constructor'>Constructors</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>functions that construct <a href='#SkMatrix'>SkMatrix</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Member_Function'>Functions</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>global and class member functions</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Operator'>Operators</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>operator overloading methods</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Related_Function'>Related Functions</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>similar member functions grouped together</td>
+ </tr>
+</table>
+
+
+## <a name='Member_Function'>Member Function</a>
+
+
+SkMatrix member functions read and modify the structure properties.
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_Concat'>Concat</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns the concatenation of <a href='#Matrix'>Matrix</a> pair</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>I</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns a reference to a const identity <a href='#Matrix'>Matrix</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_InvalidMatrix'>InvalidMatrix</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns a reference to a const invalid <a href='#Matrix'>Matrix</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_MakeAll'>MakeAll</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>constructs all nine values</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_MakeRectToRect'>MakeRectToRect</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>constructs from source <a href='SkRect_Reference#Rect'>Rect</a> to destination <a href='SkRect_Reference#Rect'>Rect</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_MakeScale'>MakeScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>constructs from scale in x and y</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_MakeTrans'>MakeTrans</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>constructs from translate in x and y</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets 3x2 array to identity</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_asAffine'>asAffine</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>copies to 3x2 array</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>compares <a href='#Matrix'>Matrix</a> pair using memcmp()</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_decomposeScale'>decomposeScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>separates scale if possible</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets internal cache to unknown state</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_dump'>dump</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sends text representation using floats to standard output</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_fixedStepInX'>fixedStepInX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns step in x for a position in y</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_get'>get</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns one of nine <a href='#Matrix'>Matrix</a> values</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_get9'>get9</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns all nine <a href='#Matrix'>Matrix</a> values</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getMaxScale'>getMaxScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns maximum scaling, if possible</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getMinMaxScales'>getMinMaxScales</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns minimum and maximum scaling, if possible</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getMinScale'>getMinScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns minimum scaling, if possible</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getPerspX'>getPerspX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns input x perspective factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getPerspY'>getPerspY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns input y perspective factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getScaleX'>getScaleX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns horizontal scale factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getScaleY'>getScaleY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns vertical scale factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getSkewX'>getSkewX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns horizontal skew factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getSkewY'>getSkewY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns vertical skew factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getTranslateX'>getTranslateX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns horizontal translation</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getTranslateY'>getTranslateY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns vertical translation</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getType'>getType</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns transform complexity</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_hasPerspective'>hasPerspective</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if transform includes perspective</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_invert'>invert</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns inverse, if possible</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_isFinite'>isFinite</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if all <a href='#Matrix'>Matrix</a> values are not infinity, NaN</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if transformation supports fixed step in x</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_isIdentity'>isIdentity</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if matrix equals the identity <a href='#Matrix'>Matrix</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if transform is limited to scale and translate</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_isSimilarity'>isSimilarity</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if transform is limited to square scale and rotation</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_isTranslate'>isTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if transform is limited to translate</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>maps <a href='undocumented#Point3'>Point3</a> array</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapPoints'>mapPoints</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>maps <a href='SkPoint_Reference#Point'>Point</a> array</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapRadius'>mapRadius</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns mean radius of mapped <a href='undocumented#Circle'>Circle</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapRect'>mapRect</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns bounds of mapped <a href='SkRect_Reference#Rect'>Rect</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns bounds of mapped <a href='SkRect_Reference#Rect'>Rect</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>maps <a href='SkRect_Reference#Rect'>Rect</a> to <a href='SkPoint_Reference#Point'>Point</a> array</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapVector'>mapVector</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>maps <a href='SkPoint_Reference#Vector'>Vector</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapVectors'>mapVectors</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>maps <a href='SkPoint_Reference#Vector'>Vector</a> array</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapXY'>mapXY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>maps <a href='SkPoint_Reference#Point'>Point</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postConcat'>postConcat</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>post-multiplies <a href='#Matrix'>Matrix</a> by <a href='#Matrix'>Matrix</a> parameter</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postIDiv'>postIDiv</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>post-multiplies <a href='#Matrix'>Matrix</a> by inverse scale</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postRotate'>postRotate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>post-multiplies <a href='#Matrix'>Matrix</a> by rotation</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postScale'>postScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>post-multiplies <a href='#Matrix'>Matrix</a> by scale</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postSkew'>postSkew</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>post-multiplies <a href='#Matrix'>Matrix</a> by skew</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postTranslate'>postTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>post-multiplies <a href='#Matrix'>Matrix</a> by translation</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preConcat'>preConcat</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pre-multiplies <a href='#Matrix'>Matrix</a> by <a href='#Matrix'>Matrix</a> parameter</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preRotate'>preRotate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pre-multiplies <a href='#Matrix'>Matrix</a> by rotation</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preScale'>preScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pre-multiplies <a href='#Matrix'>Matrix</a> by scale</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preSkew'>preSkew</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pre-multiplies <a href='#Matrix'>Matrix</a> by skew</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preTranslate'>preTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pre-multiplies <a href='#Matrix'>Matrix</a> by translation</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if mapping restricts to 90 degree multiples and mirroring</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preservesRightAngles'>preservesRightAngles</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if mapped 90 angle remains 90 degrees</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_rectStaysRect'>rectStaysRect</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if mapped <a href='SkRect_Reference#Rect'>Rect</a> can be represented by another <a href='SkRect_Reference#Rect'>Rect</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_reset'>reset</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets <a href='#Matrix'>Matrix</a> to identity</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_set'>set</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets one value</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_set9'>set9</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets all values from <a href='undocumented#Scalar'>Scalar</a> array</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setAffine'>setAffine</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets left two columns</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setAll'>setAll</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets all values from parameters</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setConcat'>setConcat</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to <a href='#Matrix'>Matrix</a> parameter multiplied by <a href='#Matrix'>Matrix</a> parameter</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setIdentity'>setIdentity</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets <a href='#Matrix'>Matrix</a> to identity</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setPerspX'>setPerspX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets input x perspective factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setPerspY'>setPerspY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets input y perspective factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to map one to four points to an equal array of points</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setRSXform'>setRSXform</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to rotate, scale, and translate</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setRectToRect'>setRectToRect</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to map one <a href='SkRect_Reference#Rect'>Rect</a> to another</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setRotate'>setRotate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to rotate about a point</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setScale'>setScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to scale about a point</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setScaleTranslate'>setScaleTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to scale and translate</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setScaleX'>setScaleX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets horizontal scale factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setScaleY'>setScaleY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets vertical scale factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setSinCos'>setSinCos</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to rotate and scale about a point</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setSkew'>setSkew</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to skew about a point</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setSkewX'>setSkewX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets horizontal skew factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setSkewY'>setSkewY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets vertical skew factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setTranslate'>setTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to translate in x and y</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setTranslateX'>setTranslateX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets horizontal translation</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setTranslateY'>setTranslateY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets vertical translation</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_toString'>toString</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>converts <a href='#Matrix'>Matrix</a> to machine readable form</td>
+ </tr>
+</table>
+
+
+## <a name='Related_Function'>Related Function</a>
+
+
+SkMatrix global, <code>struct</code>, and <code>class</code> related member functions share a topic.
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#AffineIndex'>AffineIndex</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>affine member indices</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#MemberIndex'>MemberIndex</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>member indices</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Property'>Property</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>values and attributes</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Set'>Set</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets one or more matrix values</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Transform'>Transform</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>map points with <a href='#Matrix'>Matrix</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Utility'>Utility</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>rarely called management functions</td>
+ </tr>
+</table>
+
+
+## <a name='Constructor'>Constructor</a>
+
+
+SkMatrix can be constructed or initialized by these functions, including C++ class constructors.
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>I</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns a reference to a const identity <a href='#Matrix'>Matrix</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_InvalidMatrix'>InvalidMatrix</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns a reference to a const invalid <a href='#Matrix'>Matrix</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_MakeAll'>MakeAll</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>constructs all nine values</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_MakeRectToRect'>MakeRectToRect</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>constructs from source <a href='SkRect_Reference#Rect'>Rect</a> to destination <a href='SkRect_Reference#Rect'>Rect</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_MakeScale'>MakeScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>constructs from scale in x and y</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_MakeScale'>MakeScale(SkScalar sx, SkScalar sy)</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_MakeScale_2'>MakeScale(SkScalar scale)</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_MakeTrans'>MakeTrans</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>constructs from translate in x and y</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets 3x2 array to identity</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_asAffine'>asAffine</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>copies to 3x2 array</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_reset'>reset</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets <a href='#Matrix'>Matrix</a> to identity</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setAffine'>setAffine</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets left two columns</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setConcat'>setConcat</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to <a href='#Matrix'>Matrix</a> parameter multiplied by <a href='#Matrix'>Matrix</a> parameter</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setIdentity'>setIdentity</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets <a href='#Matrix'>Matrix</a> to identity</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setRSXform'>setRSXform</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to rotate, scale, and translate</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setRotate'>setRotate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to rotate about a point</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setRotate'>setRotate(SkScalar degrees, SkScalar px, SkScalar py)</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setRotate_2'>setRotate(SkScalar degrees)</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setScale'>setScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to scale about a point</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setScale'>setScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py)</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setScale_2'>setScale(SkScalar sx, SkScalar sy)</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setScaleTranslate'>setScaleTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to scale and translate</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setSinCos'>setSinCos</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to rotate and scale about a point</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setSinCos'>setSinCos(SkScalar sinValue, SkScalar cosValue, SkScalar px, SkScalar py)</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setSinCos_2'>setSinCos(SkScalar sinValue, SkScalar cosValue)</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setSkew'>setSkew</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to skew about a point</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setSkew'>setSkew(SkScalar kx, SkScalar ky, SkScalar px, SkScalar py)</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setSkew_2'>setSkew(SkScalar kx, SkScalar ky)</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setTranslate'>setTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to translate in x and y</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setTranslate'>setTranslate(SkScalar dx, SkScalar dy)</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setTranslate_2'>setTranslate(const SkVector& v)</a></td>
+ </tr>
+</table>
+
+
+<a name='SkMatrix_MakeScale'></a>
## MakeScale
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-static SkMatrix SK_WARN_UNUSED_RESULT MakeScale(SkScalar sx, SkScalar sy)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+static <a href='#SkMatrix'>SkMatrix</a> SK_WARN_UNUSED_RESULT <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Sets <a href="#Matrix">Matrix</a> to scale by (<a href="#SkMatrix_MakeScale_sx">sx</a>, <a href="#SkMatrix_MakeScale_sy">sy</a>). Returned matrix is:
+Sets <a href='#Matrix'>Matrix</a> to scale by (<a href='#SkMatrix_MakeScale_sx'>sx</a>, <a href='#SkMatrix_MakeScale_sy'>sy</a>). Returned matrix is:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| sx 0 0 |
@@ -181,16 +688,17 @@ Sets <a href="#Matrix">Matrix</a> to scale by (<a href="#SkMatrix_MakeScale_sx">
### Parameters
-<table> <tr> <td><a name="SkMatrix_MakeScale_sx"> <code><strong>sx </strong></code> </a></td> <td>
-horizontal scale factor</td>
- </tr> <tr> <td><a name="SkMatrix_MakeScale_sy"> <code><strong>sy </strong></code> </a></td> <td>
-vertical scale factor</td>
+<table> <tr> <td><a name='SkMatrix_MakeScale_sx'><code><strong>sx</strong></code></a></td>
+ <td>horizontal scale factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_MakeScale_sy'><code><strong>sy</strong></code></a></td>
+ <td>vertical scale factor</td>
</tr>
</table>
### Return Value
-<a href="#Matrix">Matrix</a> with scale
+<a href='#Matrix'>Matrix</a> with scale
### Example
@@ -198,17 +706,17 @@ vertical scale factor</td>
### See Also
-<a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_postScale">postScale</a><sup><a href="#SkMatrix_postScale_2">[2]</a></sup> <a href="#SkMatrix_preScale">preScale</a><sup><a href="#SkMatrix_preScale_2">[2]</a></sup>
+<a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_postScale'>postScale</a><sup><a href='#SkMatrix_postScale_2'>[2]</a></sup> <a href='#SkMatrix_preScale'>preScale</a><sup><a href='#SkMatrix_preScale_2'>[2]</a></sup>
---
-<a name="SkMatrix_MakeScale_2"></a>
+<a name='SkMatrix_MakeScale_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-static SkMatrix SK_WARN_UNUSED_RESULT MakeScale(SkScalar scale)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+static <a href='#SkMatrix'>SkMatrix</a> SK_WARN_UNUSED_RESULT <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> scale)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#SkMatrix_MakeScale_2_scale">scale</a> by (<a href="#SkMatrix_MakeScale_2_scale">scale</a>, <a href="#SkMatrix_MakeScale_2_scale">scale</a>). Returned matrix is:
+Sets <a href='#Matrix'>Matrix</a> to <a href='#SkMatrix_MakeScale_2_scale'>scale</a> by (<a href='#SkMatrix_MakeScale_2_scale'>scale</a>, <a href='#SkMatrix_MakeScale_2_scale'>scale</a>). Returned matrix is:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| scale 0 0 |
@@ -218,14 +726,14 @@ Sets <a href="#Matrix">Matrix</a> to <a href="#SkMatrix_MakeScale_2_scale">scale
### Parameters
-<table> <tr> <td><a name="SkMatrix_MakeScale_2_scale"> <code><strong>scale </strong></code> </a></td> <td>
-horizontal and vertical <a href="#SkMatrix_MakeScale_2_scale">scale</a> factor</td>
+<table> <tr> <td><a name='SkMatrix_MakeScale_2_scale'><code><strong>scale</strong></code></a></td>
+ <td>horizontal and vertical <a href='#SkMatrix_MakeScale_2_scale'>scale</a> factor</td>
</tr>
</table>
### Return Value
-<a href="#Matrix">Matrix</a> with <a href="#SkMatrix_MakeScale_2_scale">scale</a>
+<a href='#Matrix'>Matrix</a> with <a href='#SkMatrix_MakeScale_2_scale'>scale</a>
### Example
@@ -233,18 +741,18 @@ horizontal and vertical <a href="#SkMatrix_MakeScale_2_scale">scale</a> factor</
### See Also
-<a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_postScale">postScale</a><sup><a href="#SkMatrix_postScale_2">[2]</a></sup> <a href="#SkMatrix_preScale">preScale</a><sup><a href="#SkMatrix_preScale_2">[2]</a></sup>
+<a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_postScale'>postScale</a><sup><a href='#SkMatrix_postScale_2'>[2]</a></sup> <a href='#SkMatrix_preScale'>preScale</a><sup><a href='#SkMatrix_preScale_2'>[2]</a></sup>
---
-<a name="SkMatrix_MakeTrans"></a>
+<a name='SkMatrix_MakeTrans'></a>
## MakeTrans
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-static SkMatrix SK_WARN_UNUSED_RESULT MakeTrans(SkScalar dx, SkScalar dy)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+static <a href='#SkMatrix'>SkMatrix</a> SK_WARN_UNUSED_RESULT <a href='#SkMatrix_MakeTrans'>MakeTrans</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Sets <a href="#Matrix">Matrix</a> to translate by (<a href="#SkMatrix_MakeTrans_dx">dx</a>, <a href="#SkMatrix_MakeTrans_dy">dy</a>). Returned matrix is:
+Sets <a href='#Matrix'>Matrix</a> to translate by (<a href='#SkMatrix_MakeTrans_dx'>dx</a>, <a href='#SkMatrix_MakeTrans_dy'>dy</a>). Returned matrix is:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 dx |
@@ -254,16 +762,17 @@ Sets <a href="#Matrix">Matrix</a> to translate by (<a href="#SkMatrix_MakeTrans_
### Parameters
-<table> <tr> <td><a name="SkMatrix_MakeTrans_dx"> <code><strong>dx </strong></code> </a></td> <td>
-horizontal translation</td>
- </tr> <tr> <td><a name="SkMatrix_MakeTrans_dy"> <code><strong>dy </strong></code> </a></td> <td>
-vertical translation</td>
+<table> <tr> <td><a name='SkMatrix_MakeTrans_dx'><code><strong>dx</strong></code></a></td>
+ <td>horizontal translation</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_MakeTrans_dy'><code><strong>dy</strong></code></a></td>
+ <td>vertical translation</td>
</tr>
</table>
### Return Value
-<a href="#Matrix">Matrix</a> with translation
+<a href='#Matrix'>Matrix</a> with translation
### Example
@@ -271,20 +780,20 @@ vertical translation</td>
### See Also
-<a href="#SkMatrix_setTranslate">setTranslate</a><sup><a href="#SkMatrix_setTranslate_2">[2]</a></sup> <a href="#SkMatrix_postTranslate">postTranslate</a> <a href="#SkMatrix_preTranslate">preTranslate</a>
+<a href='#SkMatrix_setTranslate'>setTranslate</a><sup><a href='#SkMatrix_setTranslate_2'>[2]</a></sup> <a href='#SkMatrix_postTranslate'>postTranslate</a> <a href='#SkMatrix_preTranslate'>preTranslate</a>
---
-<a name="SkMatrix_MakeAll"></a>
+<a name='SkMatrix_MakeAll'></a>
## MakeAll
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-static SkMatrix SK_WARN_UNUSED_RESULT MakeAll(SkScalar scaleX, SkScalar skewX, SkScalar transX,
- SkScalar skewY, SkScalar scaleY, SkScalar transY,
- SkScalar pers0, SkScalar pers1, SkScalar pers2)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+static <a href='#SkMatrix'>SkMatrix</a> SK_WARN_UNUSED_RESULT <a href='#SkMatrix_MakeAll'>MakeAll</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX, <a href='undocumented#SkScalar'>SkScalar</a> skewX, <a href='undocumented#SkScalar'>SkScalar</a> transX,
+ <a href='undocumented#SkScalar'>SkScalar</a> skewY, <a href='undocumented#SkScalar'>SkScalar</a> scaleY, <a href='undocumented#SkScalar'>SkScalar</a> transY,
+ <a href='undocumented#SkScalar'>SkScalar</a> pers0, <a href='undocumented#SkScalar'>SkScalar</a> pers1, <a href='undocumented#SkScalar'>SkScalar</a> pers2)
</pre>
-Sets <a href="#Matrix">Matrix</a> to:
+Sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| scaleX skewX transX |
@@ -294,30 +803,38 @@ Sets <a href="#Matrix">Matrix</a> to:
### Parameters
-<table> <tr> <td><a name="SkMatrix_MakeAll_scaleX"> <code><strong>scaleX </strong></code> </a></td> <td>
-horizontal scale factor</td>
- </tr> <tr> <td><a name="SkMatrix_MakeAll_skewX"> <code><strong>skewX </strong></code> </a></td> <td>
-horizontal skew factor</td>
- </tr> <tr> <td><a name="SkMatrix_MakeAll_transX"> <code><strong>transX </strong></code> </a></td> <td>
-horizontal translation</td>
- </tr> <tr> <td><a name="SkMatrix_MakeAll_skewY"> <code><strong>skewY </strong></code> </a></td> <td>
-vertical skew factor</td>
- </tr> <tr> <td><a name="SkMatrix_MakeAll_scaleY"> <code><strong>scaleY </strong></code> </a></td> <td>
-vertical scale factor</td>
- </tr> <tr> <td><a name="SkMatrix_MakeAll_transY"> <code><strong>transY </strong></code> </a></td> <td>
-vertical translation</td>
- </tr> <tr> <td><a name="SkMatrix_MakeAll_pers0"> <code><strong>pers0 </strong></code> </a></td> <td>
-input x perspective factor</td>
- </tr> <tr> <td><a name="SkMatrix_MakeAll_pers1"> <code><strong>pers1 </strong></code> </a></td> <td>
-input y perspective factor</td>
- </tr> <tr> <td><a name="SkMatrix_MakeAll_pers2"> <code><strong>pers2 </strong></code> </a></td> <td>
-perspective scale factor</td>
+<table> <tr> <td><a name='SkMatrix_MakeAll_scaleX'><code><strong>scaleX</strong></code></a></td>
+ <td>horizontal scale factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_MakeAll_skewX'><code><strong>skewX</strong></code></a></td>
+ <td>horizontal skew factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_MakeAll_transX'><code><strong>transX</strong></code></a></td>
+ <td>horizontal translation</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_MakeAll_skewY'><code><strong>skewY</strong></code></a></td>
+ <td>vertical skew factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_MakeAll_scaleY'><code><strong>scaleY</strong></code></a></td>
+ <td>vertical scale factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_MakeAll_transY'><code><strong>transY</strong></code></a></td>
+ <td>vertical translation</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_MakeAll_pers0'><code><strong>pers0</strong></code></a></td>
+ <td>input x perspective factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_MakeAll_pers1'><code><strong>pers1</strong></code></a></td>
+ <td>input y perspective factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_MakeAll_pers2'><code><strong>pers2</strong></code></a></td>
+ <td>perspective scale factor</td>
</tr>
</table>
### Return Value
-<a href="#Matrix">Matrix</a> constructed from parameters
+<a href='#Matrix'>Matrix</a> constructed from parameters
### Example
@@ -325,42 +842,60 @@ perspective scale factor</td>
### See Also
-<a href="#SkMatrix_setAll">setAll</a> <a href="#SkMatrix_set9">set9</a> <a href="#SkMatrix_postConcat">postConcat</a> <a href="#SkMatrix_preConcat">preConcat</a>
+<a href='#SkMatrix_setAll'>setAll</a> <a href='#SkMatrix_set9'>set9</a> <a href='#SkMatrix_postConcat'>postConcat</a> <a href='#SkMatrix_preConcat'>preConcat</a>
---
-## <a name="SkMatrix_TypeMask"></a> Enum SkMatrix::TypeMask
+## <a name='SkMatrix_TypeMask'>Enum SkMatrix::TypeMask</a>
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum <a href="#SkMatrix_TypeMask">TypeMask</a> {
- <a href="#SkMatrix_kIdentity_Mask">kIdentity Mask</a> = 0,
- <a href="#SkMatrix_kTranslate_Mask">kTranslate Mask</a> = 0x01,
- <a href="#SkMatrix_kScale_Mask">kScale Mask</a> = 0x02,
- <a href="#SkMatrix_kAffine_Mask">kAffine Mask</a> = 0x04,
- <a href="#SkMatrix_kPerspective_Mask">kPerspective Mask</a> = 0x08,
+ enum <a href='#SkMatrix_TypeMask'>TypeMask</a> {
+ <a href='#SkMatrix_kIdentity_Mask'>kIdentity Mask</a> = 0,
+ <a href='#SkMatrix_kTranslate_Mask'>kTranslate Mask</a> = 0x01,
+ <a href='#SkMatrix_kScale_Mask'>kScale Mask</a> = 0x02,
+ <a href='#SkMatrix_kAffine_Mask'>kAffine Mask</a> = 0x04,
+ <a href='#SkMatrix_kPerspective_Mask'>kPerspective Mask</a> = 0x08,
};
</pre>
-Enum of bit fields for mask returned by <a href="#SkMatrix_getType">getType</a>.
-Used to identify the complexity of <a href="#Matrix">Matrix</a>, to optimize performance.
+Enum of bit fields for mask returned by <a href='#SkMatrix_getType'>getType</a>.
+Used to identify the complexity of <a href='#Matrix'>Matrix</a>, to optimize performance.
### Constants
-<table>
- <tr>
- <td><a name="SkMatrix_kIdentity_Mask"> <code><strong>SkMatrix::kIdentity_Mask </strong></code> </a></td><td>0</td><td>all bits clear if <a href="#Matrix">Matrix</a> is identity</td>
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Const</th>
+<th style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>Value</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kIdentity_Mask'><code>SkMatrix::kIdentity_Mask</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+all bits clear if <a href='#Matrix'>Matrix</a> is identity</td>
</tr>
<tr>
- <td><a name="SkMatrix_kTranslate_Mask"> <code><strong>SkMatrix::kTranslate_Mask </strong></code> </a></td><td>1</td><td>set if <a href="#Matrix">Matrix</a> has translation</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kTranslate_Mask'><code>SkMatrix::kTranslate_Mask</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+set if <a href='#Matrix'>Matrix</a> has translation</td>
</tr>
- <tr>
- <td><a name="SkMatrix_kScale_Mask"> <code><strong>SkMatrix::kScale_Mask </strong></code> </a></td><td>2</td><td>set if <a href="#Matrix">Matrix</a> has x or y scale</td>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kScale_Mask'><code>SkMatrix::kScale_Mask</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+set if <a href='#Matrix'>Matrix</a> has x or y scale</td>
</tr>
<tr>
- <td><a name="SkMatrix_kAffine_Mask"> <code><strong>SkMatrix::kAffine_Mask </strong></code> </a></td><td>4</td><td>set if <a href="#Matrix">Matrix</a> skews or rotates</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kAffine_Mask'><code>SkMatrix::kAffine_Mask</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+set if <a href='#Matrix'>Matrix</a> skews or rotates</td>
</tr>
- <tr>
- <td><a name="SkMatrix_kPerspective_Mask"> <code><strong>SkMatrix::kPerspective_Mask </strong></code> </a></td><td>8</td><td>set if <a href="#Matrix">Matrix</a> has perspective</td>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kPerspective_Mask'><code>SkMatrix::kPerspective_Mask</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>8</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+set if <a href='#Matrix'>Matrix</a> has perspective</td>
</tr>
</table>
@@ -382,57 +917,137 @@ after setPolyToPoly: kTranslate_Mask kScale_Mask kAffine_Mask kPerspective_Mask
### See Also
-<a href="#SkMatrix_getType">getType</a>
-
-
-
-## <a name="Property"></a> Property
-
-| name | description |
-| --- | --- |
-| <a href="#SkMatrix_decomposeScale">decomposeScale</a> | separates scale if possible |
-| <a href="#SkMatrix_fixedStepInX">fixedStepInX</a> | returns step in x for a position in y |
-| <a href="#SkMatrix_get">get</a> | returns one of nine <a href="#Matrix">Matrix</a> values |
-| <a href="#SkMatrix_get9">get9</a> | returns all nine <a href="#Matrix">Matrix</a> values |
-| <a href="#SkMatrix_getMaxScale">getMaxScale</a> | returns maximum scaling, if possible |
-| <a href="#SkMatrix_getMinMaxScales">getMinMaxScales</a> | returns minimum and maximum scaling, if possible |
-| <a href="#SkMatrix_getMinScale">getMinScale</a> | returns minimum scaling, if possible |
-| <a href="#SkMatrix_getPerspX">getPerspX</a> | returns input x perspective factor |
-| <a href="#SkMatrix_getPerspY">getPerspY</a> | returns input y perspective factor |
-| <a href="#SkMatrix_getScaleX">getScaleX</a> | returns horizontal scale factor |
-| <a href="#SkMatrix_getScaleY">getScaleY</a> | returns vertical scale factor |
-| <a href="#SkMatrix_getSkewX">getSkewX</a> | returns horizontal skew factor |
-| <a href="#SkMatrix_getSkewY">getSkewY</a> | returns vertical skew factor |
-| <a href="#SkMatrix_getTranslateX">getTranslateX</a> | returns horizontal translation |
-| <a href="#SkMatrix_getTranslateY">getTranslateY</a> | returns vertical translation |
-| <a href="#SkMatrix_getType">getType</a> | returns transform complexity |
-| <a href="#SkMatrix_hasPerspective">hasPerspective</a> | returns if transform includes perspective |
-| <a href="#SkMatrix_isFinite">isFinite</a> | returns if all <a href="#Matrix">Matrix</a> values are not infinity, NaN |
-| <a href="#SkMatrix_isFixedStepInX">isFixedStepInX</a> | returns if transformation supports fixed step in x |
-| <a href="#SkMatrix_isIdentity">isIdentity</a> | returns if matrix equals the identity <a href="#Matrix">Matrix</a> |
-| <a href="#SkMatrix_isScaleTranslate">isScaleTranslate</a> | returns if transform is limited to scale and translate |
-| <a href="#SkMatrix_isSimilarity">isSimilarity</a> | returns if transform is limited to square scale and rotation |
-| <a href="#SkMatrix_isTranslate">isTranslate</a> | returns if transform is limited to translate |
-| <a href="#SkMatrix_preservesAxisAlignment">preservesAxisAlignment</a> | returns if mapping restricts to 90 degree multiples and mirroring |
-| <a href="#SkMatrix_preservesRightAngles">preservesRightAngles</a> | returns if mapped 90 angle remains 90 degrees |
-| <a href="#SkMatrix_rectStaysRect">rectStaysRect</a> | returns if mapped <a href="SkRect_Reference#Rect">Rect</a> can be represented by another <a href="SkRect_Reference#Rect">Rect</a> |
-
-<a name="SkMatrix_getType"></a>
+<a href='#SkMatrix_getType'>getType</a>
+
+## <a name='Property'>Property</a>
+
+
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_decomposeScale'>decomposeScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>separates scale if possible</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_fixedStepInX'>fixedStepInX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns step in x for a position in y</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_get'>get</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns one of nine <a href='#Matrix'>Matrix</a> values</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_get9'>get9</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns all nine <a href='#Matrix'>Matrix</a> values</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getMaxScale'>getMaxScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns maximum scaling, if possible</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getMinMaxScales'>getMinMaxScales</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns minimum and maximum scaling, if possible</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getMinScale'>getMinScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns minimum scaling, if possible</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getPerspX'>getPerspX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns input x perspective factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getPerspY'>getPerspY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns input y perspective factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getScaleX'>getScaleX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns horizontal scale factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getScaleY'>getScaleY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns vertical scale factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getSkewX'>getSkewX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns horizontal skew factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getSkewY'>getSkewY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns vertical skew factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getTranslateX'>getTranslateX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns horizontal translation</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getTranslateY'>getTranslateY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns vertical translation</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_getType'>getType</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns transform complexity</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_hasPerspective'>hasPerspective</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if transform includes perspective</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_isFinite'>isFinite</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if all <a href='#Matrix'>Matrix</a> values are not infinity, NaN</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if transformation supports fixed step in x</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_isIdentity'>isIdentity</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if matrix equals the identity <a href='#Matrix'>Matrix</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if transform is limited to scale and translate</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_isSimilarity'>isSimilarity</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if transform is limited to square scale and rotation</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_isTranslate'>isTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if transform is limited to translate</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if mapping restricts to 90 degree multiples and mirroring</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preservesRightAngles'>preservesRightAngles</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if mapped 90 angle remains 90 degrees</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_rectStaysRect'>rectStaysRect</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns if mapped <a href='SkRect_Reference#Rect'>Rect</a> can be represented by another <a href='SkRect_Reference#Rect'>Rect</a></td>
+ </tr>
+</table>
+
+
+<a name='SkMatrix_getType'></a>
## getType
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-TypeMask getType() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='#SkMatrix_TypeMask'>TypeMask</a> <a href='#SkMatrix_getType'>getType</a>() const
</pre>
Returns a bit field describing the transformations the matrix may
perform. The bit field is computed conservatively, so it may include
-false positives. For example, when <a href="#SkMatrix_kPerspective_Mask">kPerspective Mask</a> is set, all
+false positives. For example, when <a href='#SkMatrix_kPerspective_Mask'>kPerspective Mask</a> is set, all
other bits are set.
### Return Value
-<a href="#SkMatrix_kIdentity_Mask">kIdentity Mask</a>, or combinations of: <a href="#SkMatrix_kTranslate_Mask">kTranslate Mask</a>, <a href="#SkMatrix_kScale_Mask">kScale Mask</a>,
-<a href="#SkMatrix_kAffine_Mask">kAffine Mask</a>, <a href="#SkMatrix_kPerspective_Mask">kPerspective Mask</a>
+<a href='#SkMatrix_kIdentity_Mask'>kIdentity Mask</a>, or combinations of: <a href='#SkMatrix_kTranslate_Mask'>kTranslate Mask</a>, <a href='#SkMatrix_kScale_Mask'>kScale Mask</a>,
+<a href='#SkMatrix_kAffine_Mask'>kAffine Mask</a>, <a href='#SkMatrix_kPerspective_Mask'>kPerspective Mask</a>
### Example
@@ -449,18 +1064,18 @@ set all flags hex: f decimal: 15
### See Also
-<a href="#SkMatrix_TypeMask">TypeMask</a>
+<a href='#SkMatrix_TypeMask'>TypeMask</a>
---
-<a name="SkMatrix_isIdentity"></a>
+<a name='SkMatrix_isIdentity'></a>
## isIdentity
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool isIdentity() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_isIdentity'>isIdentity</a>() const
</pre>
-Returns true if <a href="#Matrix">Matrix</a> is identity. Identity matrix is:
+Returns true if <a href='#Matrix'>Matrix</a> is identity. Identity matrix is:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 0 |
@@ -470,7 +1085,7 @@ Returns true if <a href="#Matrix">Matrix</a> is identity. Identity matrix is:
### Return Value
-true if <a href="#Matrix">Matrix</a> has no effect
+true if <a href='#Matrix'>Matrix</a> has no effect
### Example
@@ -487,19 +1102,19 @@ is identity: false
### See Also
-<a href="#SkMatrix_reset">reset</a> <a href="#SkMatrix_setIdentity">setIdentity</a> <a href="#SkMatrix_getType">getType</a>
+<a href='#SkMatrix_reset'>reset</a> <a href='#SkMatrix_setIdentity'>setIdentity</a> <a href='#SkMatrix_getType'>getType</a>
---
-<a name="SkMatrix_isScaleTranslate"></a>
+<a name='SkMatrix_isScaleTranslate'></a>
## isScaleTranslate
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool isScaleTranslate() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a>() const
</pre>
-Returns true if <a href="#Matrix">Matrix</a> at most scales and translates. <a href="#Matrix">Matrix</a> may be identity,
-contain only scale elements, only translate elements, or both. <a href="#Matrix">Matrix</a> form is:
+Returns true if <a href='#Matrix'>Matrix</a> at most scales and translates. <a href='#Matrix'>Matrix</a> may be identity,
+contain only scale elements, only translate elements, or both. <a href='#Matrix'>Matrix</a> form is:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| scale-x 0 translate-x |
@@ -509,7 +1124,7 @@ contain only scale elements, only translate elements, or both. <a href="#Matrix"
### Return Value
-true if <a href="#Matrix">Matrix</a> is identity; or scales, translates, or both
+true if <a href='#Matrix'>Matrix</a> is identity; or scales, translates, or both
### Example
@@ -528,18 +1143,18 @@ is scale-translate: true
### See Also
-<a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_isTranslate">isTranslate</a> <a href="#SkMatrix_setTranslate">setTranslate</a><sup><a href="#SkMatrix_setTranslate_2">[2]</a></sup> <a href="#SkMatrix_getType">getType</a>
+<a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_isTranslate'>isTranslate</a> <a href='#SkMatrix_setTranslate'>setTranslate</a><sup><a href='#SkMatrix_setTranslate_2'>[2]</a></sup> <a href='#SkMatrix_getType'>getType</a>
---
-<a name="SkMatrix_isTranslate"></a>
+<a name='SkMatrix_isTranslate'></a>
## isTranslate
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool isTranslate() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_isTranslate'>isTranslate</a>() const
</pre>
-Returns true if <a href="#Matrix">Matrix</a> is identity, or translates. <a href="#Matrix">Matrix</a> form is:
+Returns true if <a href='#Matrix'>Matrix</a> is identity, or translates. <a href='#Matrix'>Matrix</a> form is:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 translate-x |
@@ -549,7 +1164,7 @@ Returns true if <a href="#Matrix">Matrix</a> is identity, or translates. <a href
### Return Value
-true if <a href="#Matrix">Matrix</a> is identity, or translates
+true if <a href='#Matrix'>Matrix</a> is identity, or translates
### Example
@@ -568,20 +1183,20 @@ is translate: false
### See Also
-<a href="#SkMatrix_setTranslate">setTranslate</a><sup><a href="#SkMatrix_setTranslate_2">[2]</a></sup> <a href="#SkMatrix_getType">getType</a>
+<a href='#SkMatrix_setTranslate'>setTranslate</a><sup><a href='#SkMatrix_setTranslate_2'>[2]</a></sup> <a href='#SkMatrix_getType'>getType</a>
---
-<a name="SkMatrix_rectStaysRect"></a>
+<a name='SkMatrix_rectStaysRect'></a>
## rectStaysRect
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool rectStaysRect() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>() const
</pre>
-Returns true <a href="#Matrix">Matrix</a> maps <a href="SkRect_Reference#Rect">Rect</a> to another <a href="SkRect_Reference#Rect">Rect</a>. If true, <a href="#Matrix">Matrix</a> is identity,
+Returns true <a href='#Matrix'>Matrix</a> maps <a href='SkRect_Reference#Rect'>Rect</a> to another <a href='SkRect_Reference#Rect'>Rect</a>. If true, <a href='#Matrix'>Matrix</a> is identity,
or scales, or rotates a multiple of 90 degrees, or mirrors in x or y. In all
-cases, <a href="#Matrix">Matrix</a> may also have translation. <a href="#Matrix">Matrix</a> form is either:
+cases, <a href='#Matrix'>Matrix</a> may also have translation. <a href='#Matrix'>Matrix</a> form is either:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| scale-x 0 translate-x |
@@ -599,12 +1214,12 @@ or
for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
-Also called <a href="#SkMatrix_preservesAxisAlignment">preservesAxisAlignment</a>; use the one that provides better inline
+Also called <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>; use the one that provides better inline
documentation.
### Return Value
-true if <a href="#Matrix">Matrix</a> maps one <a href="SkRect_Reference#Rect">Rect</a> into another
+true if <a href='#Matrix'>Matrix</a> maps one <a href='SkRect_Reference#Rect'>Rect</a> into another
### Example
@@ -623,20 +1238,20 @@ rectStaysRect: true
### See Also
-<a href="#SkMatrix_preservesAxisAlignment">preservesAxisAlignment</a> <a href="#SkMatrix_preservesRightAngles">preservesRightAngles</a>
+<a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a> <a href='#SkMatrix_preservesRightAngles'>preservesRightAngles</a>
---
-<a name="SkMatrix_preservesAxisAlignment"></a>
+<a name='SkMatrix_preservesAxisAlignment'></a>
## preservesAxisAlignment
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool preservesAxisAlignment() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>() const
</pre>
-Returns true <a href="#Matrix">Matrix</a> maps <a href="SkRect_Reference#Rect">Rect</a> to another <a href="SkRect_Reference#Rect">Rect</a>. If true, <a href="#Matrix">Matrix</a> is identity,
+Returns true <a href='#Matrix'>Matrix</a> maps <a href='SkRect_Reference#Rect'>Rect</a> to another <a href='SkRect_Reference#Rect'>Rect</a>. If true, <a href='#Matrix'>Matrix</a> is identity,
or scales, or rotates a multiple of 90 degrees, or mirrors in x or y. In all
-cases, <a href="#Matrix">Matrix</a> may also have translation. <a href="#Matrix">Matrix</a> form is either:
+cases, <a href='#Matrix'>Matrix</a> may also have translation. <a href='#Matrix'>Matrix</a> form is either:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| scale-x 0 translate-x |
@@ -654,12 +1269,12 @@ or
for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
-Also called <a href="#SkMatrix_rectStaysRect">rectStaysRect</a>; use the one that provides better inline
+Also called <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>; use the one that provides better inline
documentation.
### Return Value
-true if <a href="#Matrix">Matrix</a> maps one <a href="SkRect_Reference#Rect">Rect</a> into another
+true if <a href='#Matrix'>Matrix</a> maps one <a href='SkRect_Reference#Rect'>Rect</a> into another
### Example
@@ -678,18 +1293,18 @@ preservesAxisAlignment: true
### See Also
-<a href="#SkMatrix_rectStaysRect">rectStaysRect</a> <a href="#SkMatrix_preservesRightAngles">preservesRightAngles</a>
+<a href='#SkMatrix_rectStaysRect'>rectStaysRect</a> <a href='#SkMatrix_preservesRightAngles'>preservesRightAngles</a>
---
-<a name="SkMatrix_hasPerspective"></a>
+<a name='SkMatrix_hasPerspective'></a>
## hasPerspective
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool hasPerspective() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_hasPerspective'>hasPerspective</a>() const
</pre>
-Returns true if the matrix contains perspective elements. <a href="#Matrix">Matrix</a> form is:
+Returns true if the matrix contains perspective elements. <a href='#Matrix'>Matrix</a> form is:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| -- -- -- |
@@ -702,7 +1317,7 @@ not one. All other elements may have any value.
### Return Value
-true if <a href="#Matrix">Matrix</a> is in most general form
+true if <a href='#Matrix'>Matrix</a> is in most general form
### Example
@@ -710,23 +1325,23 @@ true if <a href="#Matrix">Matrix</a> is in most general form
### See Also
-<a href="#SkMatrix_setAll">setAll</a> <a href="#SkMatrix_set9">set9</a> <a href="#SkMatrix_MakeAll">MakeAll</a>
+<a href='#SkMatrix_setAll'>setAll</a> <a href='#SkMatrix_set9'>set9</a> <a href='#SkMatrix_MakeAll'>MakeAll</a>
---
-<a name="SkMatrix_isSimilarity"></a>
+<a name='SkMatrix_isSimilarity'></a>
## isSimilarity
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool isSimilarity(SkScalar tol = SK_ScalarNearlyZero) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_isSimilarity'>isSimilarity</a>(<a href='undocumented#SkScalar'>SkScalar</a> tol = <a href='undocumented#SK_ScalarNearlyZero'>SK ScalarNearlyZero</a>) const
</pre>
-Returns true if <a href="#Matrix">Matrix</a> contains only translation, rotation, reflection, and
+Returns true if <a href='#Matrix'>Matrix</a> contains only translation, rotation, reflection, and
uniform scale.
-Returns false if <a href="#Matrix">Matrix</a> contains different scales, skewing, perspective, or
+Returns false if <a href='#Matrix'>Matrix</a> contains different scales, skewing, perspective, or
degenerate forms that collapse to a line or point.
-Describes that the <a href="#Matrix">Matrix</a> makes rendering with and without the matrix are
+Describes that the <a href='#Matrix'>Matrix</a> makes rendering with and without the matrix are
visually alike; a transformed circle remains a circle. Mathematically, this is
referred to as similarity of a Euclidean_Space, or a similarity transformation.
@@ -734,37 +1349,37 @@ Preserves right angles, keeping the arms of the angle equal lengths.
### Parameters
-<table> <tr> <td><a name="SkMatrix_isSimilarity_tol"> <code><strong>tol </strong></code> </a></td> <td>
-to be deprecated</td>
+<table> <tr> <td><a name='SkMatrix_isSimilarity_tol'><code><strong>tol</strong></code></a></td>
+ <td>to be deprecated</td>
</tr>
</table>
### Return Value
-true if <a href="#Matrix">Matrix</a> only rotates, uniformly scales, translates
+true if <a href='#Matrix'>Matrix</a> only rotates, uniformly scales, translates
### Example
-<div><fiddle-embed name="98d60230ad633ae74d851de3a65d72d6"><div><a href="undocumented#String">String</a> is drawn four times through but only two are visible. Drawing the pair
-with <a href="#SkMatrix_isSimilarity">isSimilarity</a> false reveals the pair not visible through the matrix.
+<div><fiddle-embed name="8b37f4ae7fec1756433c0f984175fb14"><div><a href='undocumented#String'>String</a> is drawn four times through but only two are visible. Drawing the pair
+with <a href='#SkMatrix_isSimilarity'>isSimilarity</a> false reveals the pair not visible through the matrix.
</div></fiddle-embed></div>
### See Also
-<a href="#SkMatrix_isScaleTranslate">isScaleTranslate</a> <a href="#SkMatrix_preservesRightAngles">preservesRightAngles</a> <a href="#SkMatrix_rectStaysRect">rectStaysRect</a> <a href="#SkMatrix_isFixedStepInX">isFixedStepInX</a>
+<a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a> <a href='#SkMatrix_preservesRightAngles'>preservesRightAngles</a> <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a> <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>
---
-<a name="SkMatrix_preservesRightAngles"></a>
+<a name='SkMatrix_preservesRightAngles'></a>
## preservesRightAngles
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool preservesRightAngles(SkScalar tol = SK_ScalarNearlyZero) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_preservesRightAngles'>preservesRightAngles</a>(<a href='undocumented#SkScalar'>SkScalar</a> tol = <a href='undocumented#SK_ScalarNearlyZero'>SK ScalarNearlyZero</a>) const
</pre>
-Returns true if <a href="#Matrix">Matrix</a> contains only translation, rotation, reflection, and
+Returns true if <a href='#Matrix'>Matrix</a> contains only translation, rotation, reflection, and
scale. Scale may differ along rotated axes.
-Returns false if <a href="#Matrix">Matrix</a> skewing, perspective, or degenerate forms that collapse
+Returns false if <a href='#Matrix'>Matrix</a> skewing, perspective, or degenerate forms that collapse
to a line or point.
Preserves right angles, but not requiring that the arms of the angle
@@ -772,74 +1387,160 @@ retain equal lengths.
### Parameters
-<table> <tr> <td><a name="SkMatrix_preservesRightAngles_tol"> <code><strong>tol </strong></code> </a></td> <td>
-to be deprecated</td>
+<table> <tr> <td><a name='SkMatrix_preservesRightAngles_tol'><code><strong>tol</strong></code></a></td>
+ <td>to be deprecated</td>
</tr>
</table>
### Return Value
-true if <a href="#Matrix">Matrix</a> only rotates, scales, translates
+true if <a href='#Matrix'>Matrix</a> only rotates, scales, translates
### Example
-<div><fiddle-embed name="a3d5bfebc1c3423fb983d30aaf4ac5f4"><div>Equal scale is both similar and preserves right angles.
+<div><fiddle-embed name="b9becf0dc24a9f00726e24a81fb72f16"><div>Equal scale is both similar and preserves right angles.
Unequal scale is not similar but preserves right angles.
Skews are not similar and do not preserve right angles.
</div></fiddle-embed></div>
### See Also
-<a href="#SkMatrix_isScaleTranslate">isScaleTranslate</a> <a href="#SkMatrix_isSimilarity">isSimilarity</a> <a href="#SkMatrix_rectStaysRect">rectStaysRect</a> <a href="#SkMatrix_isFixedStepInX">isFixedStepInX</a>
+<a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a> <a href='#SkMatrix_isSimilarity'>isSimilarity</a> <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a> <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>
---
-## <a name="MemberIndex"></a> MemberIndex
+## <a name='MemberIndex'>MemberIndex</a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- static constexpr int <a href="#SkMatrix_kMScaleX">kMScaleX</a> = 0;
- static constexpr int <a href="#SkMatrix_kMSkewX">kMSkewX</a> = 1;
- static constexpr int <a href="#SkMatrix_kMTransX">kMTransX</a> = 2;
- static constexpr int <a href="#SkMatrix_kMSkewY">kMSkewY</a> = 3;
- static constexpr int <a href="#SkMatrix_kMScaleY">kMScaleY</a> = 4;
- static constexpr int <a href="#SkMatrix_kMTransY">kMTransY</a> = 5;
- static constexpr int <a href="#SkMatrix_kMPersp0">kMPersp0</a> = 6;
- static constexpr int <a href="#SkMatrix_kMPersp1">kMPersp1</a> = 7;
- static constexpr int <a href="#SkMatrix_kMPersp2">kMPersp2</a> = 8;
-</pre>
-<a href="#Matrix">Matrix</a> organizes its values in row order. These members correspond to
-each value in <a href="#Matrix">Matrix</a>.
### Constants
-<table>
- <tr>
- <td><a name="SkMatrix_kMScaleX"> <code><strong>SkMatrix::kMScaleX </strong></code> </a></td><td>0</td><td>horizontal scale factor</td>
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Const</th>
+<th style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>Value</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal scale factor</td>
</tr>
<tr>
- <td><a name="SkMatrix_kMSkewX"> <code><strong>SkMatrix::kMSkewX </strong></code> </a></td><td>1</td><td>horizontal skew factor</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal skew factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal translation</td>
</tr>
<tr>
- <td><a name="SkMatrix_kMTransX"> <code><strong>SkMatrix::kMTransX </strong></code> </a></td><td>2</td><td>horizontal translation</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical skew factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical scale factor</td>
</tr>
<tr>
- <td><a name="SkMatrix_kMSkewY"> <code><strong>SkMatrix::kMSkewY </strong></code> </a></td><td>3</td><td>vertical skew factor</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical translation</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>input x perspective factor</td>
</tr>
<tr>
- <td><a name="SkMatrix_kMScaleY"> <code><strong>SkMatrix::kMScaleY </strong></code> </a></td><td>4</td><td>vertical scale factor</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>input y perspective factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>perspective bias</td>
+ </tr>
+</table>
+
+
+<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
+ static constexpr int <a href='#SkMatrix_kMScaleX'>kMScaleX</a> = 0;
+ static constexpr int <a href='#SkMatrix_kMSkewX'>kMSkewX</a> = 1;
+ static constexpr int <a href='#SkMatrix_kMTransX'>kMTransX</a> = 2;
+ static constexpr int <a href='#SkMatrix_kMSkewY'>kMSkewY</a> = 3;
+ static constexpr int <a href='#SkMatrix_kMScaleY'>kMScaleY</a> = 4;
+ static constexpr int <a href='#SkMatrix_kMTransY'>kMTransY</a> = 5;
+ static constexpr int <a href='#SkMatrix_kMPersp0'>kMPersp0</a> = 6;
+ static constexpr int <a href='#SkMatrix_kMPersp1'>kMPersp1</a> = 7;
+ static constexpr int <a href='#SkMatrix_kMPersp2'>kMPersp2</a> = 8;
+</pre>
+
+<a href='#Matrix'>Matrix</a> organizes its values in row order. These members correspond to
+each value in <a href='#Matrix'>Matrix</a>.
+
+### Constants
+
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Const</th>
+<th style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>Value</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMScaleX'><code>SkMatrix::kMScaleX</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+horizontal scale factor</td>
</tr>
<tr>
- <td><a name="SkMatrix_kMTransY"> <code><strong>SkMatrix::kMTransY </strong></code> </a></td><td>5</td><td>vertical translation</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMSkewX'><code>SkMatrix::kMSkewX</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+horizontal skew factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMTransX'><code>SkMatrix::kMTransX</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+horizontal translation</td>
</tr>
<tr>
- <td><a name="SkMatrix_kMPersp0"> <code><strong>SkMatrix::kMPersp0 </strong></code> </a></td><td>6</td><td>input x perspective factor</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMSkewY'><code>SkMatrix::kMSkewY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+vertical skew factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMScaleY'><code>SkMatrix::kMScaleY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+vertical scale factor</td>
</tr>
<tr>
- <td><a name="SkMatrix_kMPersp1"> <code><strong>SkMatrix::kMPersp1 </strong></code> </a></td><td>7</td><td>input y perspective factor</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMTransY'><code>SkMatrix::kMTransY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>5</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+vertical translation</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMPersp0'><code>SkMatrix::kMPersp0</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>6</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+input x perspective factor</td>
</tr>
<tr>
- <td><a name="SkMatrix_kMPersp2"> <code><strong>SkMatrix::kMPersp2 </strong></code> </a></td><td>8</td><td>perspective bias</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMPersp1'><code>SkMatrix::kMPersp1</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>7</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+input y perspective factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kMPersp2'><code>SkMatrix::kMPersp2</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>8</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+perspective bias</td>
</tr>
</table>
@@ -849,17 +1550,58 @@ each value in <a href="#Matrix">Matrix</a>.
### See Also
-<a href="#SkMatrix_get">get</a> <a href="#SkMatrix_set">set</a>
+<a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_set'>set</a>
+
+## <a name='AffineIndex'>AffineIndex</a>
+
+
+
+### Constants
+
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Const</th>
+<th style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>Value</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_AffineIndex'><code>AffineIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal scale factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_AffineIndex'><code>AffineIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical skew factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_AffineIndex'><code>AffineIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal skew factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_AffineIndex'><code>AffineIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical scale factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_AffineIndex'><code>AffineIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal translation</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_AffineIndex'><code>AffineIndex</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical translation</td>
+ </tr>
+</table>
-## <a name="AffineIndex"></a> AffineIndex
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- static constexpr int <a href="#SkMatrix_kAScaleX">kAScaleX</a> = 0;
- static constexpr int <a href="#SkMatrix_kASkewY">kASkewY</a> = 1;
- static constexpr int <a href="#SkMatrix_kASkewX">kASkewX</a> = 2;
- static constexpr int <a href="#SkMatrix_kAScaleY">kAScaleY</a> = 3;
- static constexpr int <a href="#SkMatrix_kATransX">kATransX</a> = 4;
- static constexpr int <a href="#SkMatrix_kATransY">kATransY</a> = 5;
+ static constexpr int <a href='#SkMatrix_kAScaleX'>kAScaleX</a> = 0;
+ static constexpr int <a href='#SkMatrix_kASkewY'>kASkewY</a> = 1;
+ static constexpr int <a href='#SkMatrix_kASkewX'>kASkewX</a> = 2;
+ static constexpr int <a href='#SkMatrix_kAScaleY'>kAScaleY</a> = 3;
+ static constexpr int <a href='#SkMatrix_kATransX'>kATransX</a> = 4;
+ static constexpr int <a href='#SkMatrix_kATransY'>kATransY</a> = 5;
</pre>
Affine arrays are in column major order to match the matrix used by
@@ -867,64 +1609,111 @@ PDF and XPS.
### Constants
-<table>
- <tr>
- <td><a name="SkMatrix_kAScaleX"> <code><strong>SkMatrix::kAScaleX </strong></code> </a></td><td>0</td><td>horizontal scale factor</td>
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Const</th>
+<th style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>Value</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kAScaleX'><code>SkMatrix::kAScaleX</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+horizontal scale factor</td>
</tr>
<tr>
- <td><a name="SkMatrix_kASkewY"> <code><strong>SkMatrix::kASkewY </strong></code> </a></td><td>1</td><td>vertical skew factor</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kASkewY'><code>SkMatrix::kASkewY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+vertical skew factor</td>
</tr>
- <tr>
- <td><a name="SkMatrix_kASkewX"> <code><strong>SkMatrix::kASkewX </strong></code> </a></td><td>2</td><td>horizontal skew factor</td>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kASkewX'><code>SkMatrix::kASkewX</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+horizontal skew factor</td>
</tr>
<tr>
- <td><a name="SkMatrix_kAScaleY"> <code><strong>SkMatrix::kAScaleY </strong></code> </a></td><td>3</td><td>vertical scale factor</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kAScaleY'><code>SkMatrix::kAScaleY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+vertical scale factor</td>
</tr>
- <tr>
- <td><a name="SkMatrix_kATransX"> <code><strong>SkMatrix::kATransX </strong></code> </a></td><td>4</td><td>horizontal translation</td>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kATransX'><code>SkMatrix::kATransX</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+horizontal translation</td>
</tr>
<tr>
- <td><a name="SkMatrix_kATransY"> <code><strong>SkMatrix::kATransY </strong></code> </a></td><td>5</td><td>vertical translation</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kATransY'><code>SkMatrix::kATransY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>5</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+vertical translation</td>
</tr>
</table>
### See Also
-<a href="#SkMatrix_SetAffineIdentity">SetAffineIdentity</a> <a href="#SkMatrix_asAffine">asAffine</a> <a href="#SkMatrix_setAffine">setAffine</a>
+<a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</a> <a href='#SkMatrix_asAffine'>asAffine</a> <a href='#SkMatrix_setAffine'>setAffine</a>
+
+## <a name='Operator'>Operator</a>
+
-## <a name="Operator"></a> Operator
+SkMatrix operators inline class member functions with arithmetic equivalents.
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_Concat'>Concat</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns the concatenation of <a href='#Matrix'>Matrix</a> pair</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>compares <a href='#Matrix'>Matrix</a> pair using memcmp()</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_invert'>invert</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns inverse, if possible</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_notequal_operator'>operator!=(const SkMatrix& a, const SkMatrix& b)</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns true if members are unequal</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_equal_operator'>operator==(const SkMatrix& a, const SkMatrix& b)</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns true if members are equal</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_array1_operator'>operator[](int index)</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns writable reference to <a href='#Matrix'>Matrix</a> value</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_array_operator'>operator[](int index) const</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns <a href='#Matrix'>Matrix</a> value</td>
+ </tr>
+</table>
-| name | description |
-| --- | --- |
-| <a href="#SkMatrix_Concat">Concat</a> | returns the concatenation of <a href="#Matrix">Matrix</a> pair |
-| <a href="#SkMatrix_cheapEqualTo">cheapEqualTo</a> | compares <a href="#Matrix">Matrix</a> pair using memcmp() |
-| <a href="#SkMatrix_invert">invert</a> | returns inverse, if possible |
-| <a href="#SkMatrix_notequal_operator">operator!=(const SkMatrix& a, const SkMatrix& b)</a> | returns true if members are unequal |
-| <a href="#SkMatrix_equal_operator">operator==(const SkMatrix& a, const SkMatrix& b)</a> | returns true if members are equal |
-| <a href="#SkMatrix_array1_operator">operator[](int index)</a> | returns writable reference to <a href="#Matrix">Matrix</a> value |
-| <a href="#SkMatrix_array_operator">operator[](int index) const</a> | returns <a href="#Matrix">Matrix</a> value |
-<a name="SkMatrix_array_operator"></a>
+<a name='SkMatrix_array_operator'></a>
## operator[]
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar operator[](int index) _const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_array1_operator'>operator[](int index)</a> _const
</pre>
-Returns one matrix value. Asserts if <a href="#SkMatrix_array_operator_index">index</a> is out of range and SK_DEBUG is
+Returns one matrix value. Asserts if <a href='#SkMatrix_array_operator_index'>index</a> is out of range and SK_DEBUG is
defined.
### Parameters
-<table> <tr> <td><a name="SkMatrix_array_operator_index"> <code><strong>index </strong></code> </a></td> <td>
-one of: <a href="#SkMatrix_kMScaleX">kMScaleX</a>, <a href="#SkMatrix_kMSkewX">kMSkewX</a>, <a href="#SkMatrix_kMTransX">kMTransX</a>, <a href="#SkMatrix_kMSkewY">kMSkewY</a>, <a href="#SkMatrix_kMScaleY">kMScaleY</a>, <a href="#SkMatrix_kMTransY">kMTransY</a>,
-<a href="#SkMatrix_kMPersp0">kMPersp0</a>, <a href="#SkMatrix_kMPersp1">kMPersp1</a>, <a href="#SkMatrix_kMPersp2">kMPersp2</a></td>
+<table> <tr> <td><a name='SkMatrix_array_operator_index'><code><strong>index</strong></code></a></td>
+ <td>one of: <a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>,
+<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a></td>
</tr>
</table>
### Return Value
-value corresponding to <a href="#SkMatrix_array_operator_index">index</a>
+value corresponding to <a href='#SkMatrix_array_operator_index'>index</a>
### Example
@@ -941,31 +1730,31 @@ matrix[SkMatrix::kMScaleY] == 24
### See Also
-<a href="#SkMatrix_get">get</a> <a href="#SkMatrix_set">set</a>
+<a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_set'>set</a>
---
-<a name="SkMatrix_get"></a>
+<a name='SkMatrix_get'></a>
## get
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar get(int index) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_get'>get</a>(int index) const
</pre>
-Returns one matrix value. Asserts if <a href="#SkMatrix_get_index">index</a> is out of range and SK_DEBUG is
+Returns one matrix value. Asserts if <a href='#SkMatrix_get_index'>index</a> is out of range and SK_DEBUG is
defined.
### Parameters
-<table> <tr> <td><a name="SkMatrix_get_index"> <code><strong>index </strong></code> </a></td> <td>
-one of: <a href="#SkMatrix_kMScaleX">kMScaleX</a>, <a href="#SkMatrix_kMSkewX">kMSkewX</a>, <a href="#SkMatrix_kMTransX">kMTransX</a>, <a href="#SkMatrix_kMSkewY">kMSkewY</a>, <a href="#SkMatrix_kMScaleY">kMScaleY</a>, <a href="#SkMatrix_kMTransY">kMTransY</a>,
-<a href="#SkMatrix_kMPersp0">kMPersp0</a>, <a href="#SkMatrix_kMPersp1">kMPersp1</a>, <a href="#SkMatrix_kMPersp2">kMPersp2</a></td>
+<table> <tr> <td><a name='SkMatrix_get_index'><code><strong>index</strong></code></a></td>
+ <td>one of: <a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>,
+<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a></td>
</tr>
</table>
### Return Value
-value corresponding to <a href="#SkMatrix_get_index">index</a>
+value corresponding to <a href='#SkMatrix_get_index'>index</a>
### Example
@@ -982,19 +1771,19 @@ matrix.get(SkMatrix::kMSkewY) == 24
### See Also
-<a href="#SkMatrix_array1_operator">operator[](int index)</a> <a href="#SkMatrix_set">set</a>
+<a href='#SkMatrix_array1_operator'>operator[](int index)</a> <a href='#SkMatrix_set'>set</a>
---
-<a name="SkMatrix_getScaleX"></a>
+<a name='SkMatrix_getScaleX'></a>
## getScaleX
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar getScaleX() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleX'>getScaleX</a>() const
</pre>
Returns scale factor multiplied by x input, contributing to x output.
-With <a href="#SkMatrix_mapPoints">mapPoints</a>, scales <a href="SkPoint_Reference#Point">Points</a> along the x-axis.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>, scales <a href='SkPoint_Reference#Point'>Points</a> along the x-axis.
### Return Value
@@ -1014,19 +1803,19 @@ matrix.getScaleX() == 42
### See Also
-<a href="#SkMatrix_get">get</a> <a href="#SkMatrix_getScaleY">getScaleY</a> <a href="#SkMatrix_setScaleX">setScaleX</a> <a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup>
+<a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_getScaleY'>getScaleY</a> <a href='#SkMatrix_setScaleX'>setScaleX</a> <a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup>
---
-<a name="SkMatrix_getScaleY"></a>
+<a name='SkMatrix_getScaleY'></a>
## getScaleY
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar getScaleY() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleY'>getScaleY</a>() const
</pre>
Returns scale factor multiplied by y input, contributing to y output.
-With <a href="#SkMatrix_mapPoints">mapPoints</a>, scales <a href="SkPoint_Reference#Point">Points</a> along the y-axis.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>, scales <a href='SkPoint_Reference#Point'>Points</a> along the y-axis.
### Return Value
@@ -1046,20 +1835,20 @@ matrix.getScaleY() == 24
### See Also
-<a href="#SkMatrix_get">get</a> <a href="#SkMatrix_getScaleX">getScaleX</a> <a href="#SkMatrix_setScaleY">setScaleY</a> <a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup>
+<a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_getScaleX'>getScaleX</a> <a href='#SkMatrix_setScaleY'>setScaleY</a> <a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup>
---
-<a name="SkMatrix_getSkewY"></a>
+<a name='SkMatrix_getSkewY'></a>
## getSkewY
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar getSkewY() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewY'>getSkewY</a>() const
</pre>
Returns scale factor multiplied by x input, contributing to y output.
-With <a href="#SkMatrix_mapPoints">mapPoints</a>, skews <a href="SkPoint_Reference#Point">Points</a> along the y-axis.
-Skew x and y together can rotate <a href="SkPoint_Reference#Point">Points</a>.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>, skews <a href='SkPoint_Reference#Point'>Points</a> along the y-axis.
+Skew x and y together can rotate <a href='SkPoint_Reference#Point'>Points</a>.
### Return Value
@@ -1079,20 +1868,20 @@ matrix.getSkewY() == 24
### See Also
-<a href="#SkMatrix_get">get</a> <a href="#SkMatrix_getSkewX">getSkewX</a> <a href="#SkMatrix_setSkewY">setSkewY</a> <a href="#SkMatrix_setSkew">setSkew</a><sup><a href="#SkMatrix_setSkew_2">[2]</a></sup>
+<a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_getSkewX'>getSkewX</a> <a href='#SkMatrix_setSkewY'>setSkewY</a> <a href='#SkMatrix_setSkew'>setSkew</a><sup><a href='#SkMatrix_setSkew_2'>[2]</a></sup>
---
-<a name="SkMatrix_getSkewX"></a>
+<a name='SkMatrix_getSkewX'></a>
## getSkewX
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar getSkewX() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewX'>getSkewX</a>() const
</pre>
Returns scale factor multiplied by y input, contributing to x output.
-With <a href="#SkMatrix_mapPoints">mapPoints</a>, skews <a href="SkPoint_Reference#Point">Points</a> along the x-axis.
-Skew x and y together can rotate <a href="SkPoint_Reference#Point">Points</a>.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>, skews <a href='SkPoint_Reference#Point'>Points</a> along the x-axis.
+Skew x and y together can rotate <a href='SkPoint_Reference#Point'>Points</a>.
### Return Value
@@ -1112,19 +1901,19 @@ matrix.getSkewX() == 42
### See Also
-<a href="#SkMatrix_get">get</a> <a href="#SkMatrix_getSkewY">getSkewY</a> <a href="#SkMatrix_setSkewX">setSkewX</a> <a href="#SkMatrix_setSkew">setSkew</a><sup><a href="#SkMatrix_setSkew_2">[2]</a></sup>
+<a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_getSkewY'>getSkewY</a> <a href='#SkMatrix_setSkewX'>setSkewX</a> <a href='#SkMatrix_setSkew'>setSkew</a><sup><a href='#SkMatrix_setSkew_2'>[2]</a></sup>
---
-<a name="SkMatrix_getTranslateX"></a>
+<a name='SkMatrix_getTranslateX'></a>
## getTranslateX
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar getTranslateX() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateX'>getTranslateX</a>() const
</pre>
Returns translation contributing to x output.
-With <a href="#SkMatrix_mapPoints">mapPoints</a>, moves <a href="SkPoint_Reference#Point">Points</a> along the x-axis.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>, moves <a href='SkPoint_Reference#Point'>Points</a> along the x-axis.
### Return Value
@@ -1144,19 +1933,19 @@ matrix.getTranslateX() == 42
### See Also
-<a href="#SkMatrix_get">get</a> <a href="#SkMatrix_getTranslateY">getTranslateY</a> <a href="#SkMatrix_setTranslateX">setTranslateX</a> <a href="#SkMatrix_setTranslate">setTranslate</a><sup><a href="#SkMatrix_setTranslate_2">[2]</a></sup>
+<a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_getTranslateY'>getTranslateY</a> <a href='#SkMatrix_setTranslateX'>setTranslateX</a> <a href='#SkMatrix_setTranslate'>setTranslate</a><sup><a href='#SkMatrix_setTranslate_2'>[2]</a></sup>
---
-<a name="SkMatrix_getTranslateY"></a>
+<a name='SkMatrix_getTranslateY'></a>
## getTranslateY
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar getTranslateY() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateY'>getTranslateY</a>() const
</pre>
Returns translation contributing to y output.
-With <a href="#SkMatrix_mapPoints">mapPoints</a>, moves <a href="SkPoint_Reference#Point">Points</a> along the y-axis.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>, moves <a href='SkPoint_Reference#Point'>Points</a> along the y-axis.
### Return Value
@@ -1176,15 +1965,15 @@ matrix.getTranslateY() == 24
### See Also
-<a href="#SkMatrix_get">get</a> <a href="#SkMatrix_getTranslateX">getTranslateX</a> <a href="#SkMatrix_setTranslateY">setTranslateY</a> <a href="#SkMatrix_setTranslate">setTranslate</a><sup><a href="#SkMatrix_setTranslate_2">[2]</a></sup>
+<a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_getTranslateX'>getTranslateX</a> <a href='#SkMatrix_setTranslateY'>setTranslateY</a> <a href='#SkMatrix_setTranslate'>setTranslate</a><sup><a href='#SkMatrix_setTranslate_2'>[2]</a></sup>
---
-<a name="SkMatrix_getPerspX"></a>
+<a name='SkMatrix_getPerspX'></a>
## getPerspX
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar getPerspX() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspX'>getPerspX</a>() const
</pre>
Returns factor scaling input x relative to input y.
@@ -1199,15 +1988,15 @@ input x perspective factor
### See Also
-<a href="#SkMatrix_kMPersp0">kMPersp0</a> <a href="#SkMatrix_getPerspY">getPerspY</a>
+<a href='#SkMatrix_kMPersp0'>kMPersp0</a> <a href='#SkMatrix_getPerspY'>getPerspY</a>
---
-<a name="SkMatrix_getPerspY"></a>
+<a name='SkMatrix_getPerspY'></a>
## getPerspY
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar getPerspY() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspY'>getPerspY</a>() const
</pre>
Returns factor scaling input y relative to input x.
@@ -1222,34 +2011,34 @@ input y perspective factor
### See Also
-<a href="#SkMatrix_kMPersp1">kMPersp1</a> <a href="#SkMatrix_getPerspX">getPerspX</a>
+<a href='#SkMatrix_kMPersp1'>kMPersp1</a> <a href='#SkMatrix_getPerspX'>getPerspX</a>
---
-<a name="SkMatrix_array1_operator"></a>
+<a name='SkMatrix_array1_operator'></a>
## operator[]
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar& operator[](int index)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a>& <a href='#SkMatrix_array1_operator'>operator[](int index)</a>
</pre>
-Returns writable <a href="#Matrix">Matrix</a> value. Asserts if <a href="#SkMatrix_array1_operator_index">index</a> is out of range and SK_DEBUG is
-defined. Clears internal cache anticipating that caller will change <a href="#Matrix">Matrix</a> value.
+Returns writable <a href='#Matrix'>Matrix</a> value. Asserts if <a href='#SkMatrix_array1_operator_index'>index</a> is out of range and SK_DEBUG is
+defined. Clears internal cache anticipating that caller will change <a href='#Matrix'>Matrix</a> value.
-Next call to read <a href="#Matrix">Matrix</a> state may recompute cache; subsequent writes to <a href="#Matrix">Matrix</a>
-value must be followed by <a href="#SkMatrix_dirtyMatrixTypeCache">dirtyMatrixTypeCache</a>.
+Next call to read <a href='#Matrix'>Matrix</a> state may recompute cache; subsequent writes to <a href='#Matrix'>Matrix</a>
+value must be followed by <a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a>.
### Parameters
-<table> <tr> <td><a name="SkMatrix_array1_operator_index"> <code><strong>index </strong></code> </a></td> <td>
-one of: <a href="#SkMatrix_kMScaleX">kMScaleX</a>, <a href="#SkMatrix_kMSkewX">kMSkewX</a>, <a href="#SkMatrix_kMTransX">kMTransX</a>, <a href="#SkMatrix_kMSkewY">kMSkewY</a>, <a href="#SkMatrix_kMScaleY">kMScaleY</a>, <a href="#SkMatrix_kMTransY">kMTransY</a>,
-<a href="#SkMatrix_kMPersp0">kMPersp0</a>, <a href="#SkMatrix_kMPersp1">kMPersp1</a>, <a href="#SkMatrix_kMPersp2">kMPersp2</a></td>
+<table> <tr> <td><a name='SkMatrix_array1_operator_index'><code><strong>index</strong></code></a></td>
+ <td>one of: <a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>,
+<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a></td>
</tr>
</table>
### Return Value
-writable value corresponding to <a href="#SkMatrix_array1_operator_index">index</a>
+writable value corresponding to <a href='#SkMatrix_array1_operator_index'>index</a>
### Example
@@ -1268,68 +2057,181 @@ after dirty cache: x = 66
### See Also
-<a href="#SkMatrix_get">get</a> <a href="#SkMatrix_dirtyMatrixTypeCache">dirtyMatrixTypeCache</a> <a href="#SkMatrix_set">set</a>
+<a href='#SkMatrix_get'>get</a> <a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a> <a href='#SkMatrix_set'>set</a>
---
-## <a name="Set"></a> Set
-
-| name | description |
-| --- | --- |
-| <a href="#SkMatrix_postConcat">postConcat</a> | post-multiplies <a href="#Matrix">Matrix</a> by <a href="#Matrix">Matrix</a> parameter |
-| <a href="#SkMatrix_postIDiv">postIDiv</a> | post-multiplies <a href="#Matrix">Matrix</a> by inverse scale |
-| <a href="#SkMatrix_postRotate">postRotate</a> | post-multiplies <a href="#Matrix">Matrix</a> by rotation |
-| | <a href="#SkMatrix_postRotate">postRotate(SkScalar degrees, SkScalar px, SkScalar py)</a> |
-| | <a href="#SkMatrix_postRotate_2">postRotate(SkScalar degrees)</a> |
-| <a href="#SkMatrix_postScale">postScale</a> | post-multiplies <a href="#Matrix">Matrix</a> by scale |
-| | <a href="#SkMatrix_postScale">postScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py)</a> |
-| | <a href="#SkMatrix_postScale_2">postScale(SkScalar sx, SkScalar sy)</a> |
-| <a href="#SkMatrix_postSkew">postSkew</a> | post-multiplies <a href="#Matrix">Matrix</a> by skew |
-| | <a href="#SkMatrix_postSkew">postSkew(SkScalar kx, SkScalar ky, SkScalar px, SkScalar py)</a> |
-| | <a href="#SkMatrix_postSkew_2">postSkew(SkScalar kx, SkScalar ky)</a> |
-| <a href="#SkMatrix_postTranslate">postTranslate</a> | post-multiplies <a href="#Matrix">Matrix</a> by translation |
-| <a href="#SkMatrix_preConcat">preConcat</a> | pre-multiplies <a href="#Matrix">Matrix</a> by <a href="#Matrix">Matrix</a> parameter |
-| <a href="#SkMatrix_preRotate">preRotate</a> | pre-multiplies <a href="#Matrix">Matrix</a> by rotation |
-| | <a href="#SkMatrix_preRotate">preRotate(SkScalar degrees, SkScalar px, SkScalar py)</a> |
-| | <a href="#SkMatrix_preRotate_2">preRotate(SkScalar degrees)</a> |
-| <a href="#SkMatrix_preScale">preScale</a> | pre-multiplies <a href="#Matrix">Matrix</a> by scale |
-| | <a href="#SkMatrix_preScale">preScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py)</a> |
-| | <a href="#SkMatrix_preScale_2">preScale(SkScalar sx, SkScalar sy)</a> |
-| <a href="#SkMatrix_preSkew">preSkew</a> | pre-multiplies <a href="#Matrix">Matrix</a> by skew |
-| | <a href="#SkMatrix_preSkew">preSkew(SkScalar kx, SkScalar ky, SkScalar px, SkScalar py)</a> |
-| | <a href="#SkMatrix_preSkew_2">preSkew(SkScalar kx, SkScalar ky)</a> |
-| <a href="#SkMatrix_preTranslate">preTranslate</a> | pre-multiplies <a href="#Matrix">Matrix</a> by translation |
-| <a href="#SkMatrix_set">set</a> | sets one value |
-| <a href="#SkMatrix_set9">set9</a> | sets all values from <a href="undocumented#Scalar">Scalar</a> array |
-| <a href="#SkMatrix_setAll">setAll</a> | sets all values from parameters |
-| <a href="#SkMatrix_setPerspX">setPerspX</a> | sets input x perspective factor |
-| <a href="#SkMatrix_setPerspY">setPerspY</a> | sets input y perspective factor |
-| <a href="#SkMatrix_setPolyToPoly">setPolyToPoly</a> | sets to map one to four points to an equal array of points |
-| <a href="#SkMatrix_setRectToRect">setRectToRect</a> | sets to map one <a href="SkRect_Reference#Rect">Rect</a> to another |
-| <a href="#SkMatrix_setScaleX">setScaleX</a> | sets horizontal scale factor |
-| <a href="#SkMatrix_setScaleY">setScaleY</a> | sets vertical scale factor |
-| <a href="#SkMatrix_setSkewX">setSkewX</a> | sets horizontal skew factor |
-| <a href="#SkMatrix_setSkewY">setSkewY</a> | sets vertical skew factor |
-| <a href="#SkMatrix_setTranslateX">setTranslateX</a> | sets horizontal translation |
-| <a href="#SkMatrix_setTranslateY">setTranslateY</a> | sets vertical translation |
-
-<a name="SkMatrix_set"></a>
+## <a name='Set'>Set</a>
+
+
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postConcat'>postConcat</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>post-multiplies <a href='#Matrix'>Matrix</a> by <a href='#Matrix'>Matrix</a> parameter</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postIDiv'>postIDiv</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>post-multiplies <a href='#Matrix'>Matrix</a> by inverse scale</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postRotate'>postRotate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>post-multiplies <a href='#Matrix'>Matrix</a> by rotation</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postRotate'>postRotate(SkScalar degrees, SkScalar px, SkScalar py)</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postRotate_2'>postRotate(SkScalar degrees)</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postScale'>postScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>post-multiplies <a href='#Matrix'>Matrix</a> by scale</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postScale'>postScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py)</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postScale_2'>postScale(SkScalar sx, SkScalar sy)</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postSkew'>postSkew</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>post-multiplies <a href='#Matrix'>Matrix</a> by skew</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postSkew'>postSkew(SkScalar kx, SkScalar ky, SkScalar px, SkScalar py)</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postSkew_2'>postSkew(SkScalar kx, SkScalar ky)</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_postTranslate'>postTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>post-multiplies <a href='#Matrix'>Matrix</a> by translation</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preConcat'>preConcat</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pre-multiplies <a href='#Matrix'>Matrix</a> by <a href='#Matrix'>Matrix</a> parameter</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preRotate'>preRotate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pre-multiplies <a href='#Matrix'>Matrix</a> by rotation</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preRotate'>preRotate(SkScalar degrees, SkScalar px, SkScalar py)</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preRotate_2'>preRotate(SkScalar degrees)</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preScale'>preScale</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pre-multiplies <a href='#Matrix'>Matrix</a> by scale</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preScale'>preScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py)</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preScale_2'>preScale(SkScalar sx, SkScalar sy)</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preSkew'>preSkew</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pre-multiplies <a href='#Matrix'>Matrix</a> by skew</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preSkew'>preSkew(SkScalar kx, SkScalar ky, SkScalar px, SkScalar py)</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preSkew_2'>preSkew(SkScalar kx, SkScalar ky)</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_preTranslate'>preTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pre-multiplies <a href='#Matrix'>Matrix</a> by translation</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_set'>set</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets one value</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_set9'>set9</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets all values from <a href='undocumented#Scalar'>Scalar</a> array</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setAll'>setAll</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets all values from parameters</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setPerspX'>setPerspX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets input x perspective factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setPerspY'>setPerspY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets input y perspective factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to map one to four points to an equal array of points</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setRectToRect'>setRectToRect</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to map one <a href='SkRect_Reference#Rect'>Rect</a> to another</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setScaleX'>setScaleX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets horizontal scale factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setScaleY'>setScaleY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets vertical scale factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setSkewX'>setSkewX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets horizontal skew factor</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setSkewY'>setSkewY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets vertical skew factor</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setTranslateX'>setTranslateX</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets horizontal translation</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_setTranslateY'>setTranslateY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets vertical translation</td>
+ </tr>
+</table>
+
+
+<a name='SkMatrix_set'></a>
## set
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void set(int index, SkScalar value)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_set'>set</a>(int index, <a href='undocumented#SkScalar'>SkScalar</a> value)
</pre>
-Sets <a href="#Matrix">Matrix</a> <a href="#SkMatrix_set_value">value</a>. Asserts if <a href="#SkMatrix_set_index">index</a> is out of range and SK_DEBUG is
+Sets <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_set_value'>value</a>. Asserts if <a href='#SkMatrix_set_index'>index</a> is out of range and SK_DEBUG is
defined. Safer than operator[]; internal cache is always maintained.
### Parameters
-<table> <tr> <td><a name="SkMatrix_set_index"> <code><strong>index </strong></code> </a></td> <td>
-one of: <a href="#SkMatrix_kMScaleX">kMScaleX</a>, <a href="#SkMatrix_kMSkewX">kMSkewX</a>, <a href="#SkMatrix_kMTransX">kMTransX</a>, <a href="#SkMatrix_kMSkewY">kMSkewY</a>, <a href="#SkMatrix_kMScaleY">kMScaleY</a>, <a href="#SkMatrix_kMTransY">kMTransY</a>,
-<a href="#SkMatrix_kMPersp0">kMPersp0</a>, <a href="#SkMatrix_kMPersp1">kMPersp1</a>, <a href="#SkMatrix_kMPersp2">kMPersp2</a></td>
- </tr> <tr> <td><a name="SkMatrix_set_value"> <code><strong>value </strong></code> </a></td> <td>
-<a href="undocumented#Scalar">Scalar</a> to store in <a href="#Matrix">Matrix</a></td>
+<table> <tr> <td><a name='SkMatrix_set_index'><code><strong>index</strong></code></a></td>
+ <td>one of: <a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>,
+<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a></td>
+ </tr>
+ <tr> <td><a name='SkMatrix_set_value'><code><strong>value</strong></code></a></td>
+ <td><a href='undocumented#Scalar'>Scalar</a> to store in <a href='#Matrix'>Matrix</a></td>
</tr>
</table>
@@ -1349,23 +2251,23 @@ after 2nd skew x mod: x = 66
### See Also
-operator[] <a href="#SkMatrix_get">get</a>
+operator[] <a href='#SkMatrix_get'>get</a>
---
-<a name="SkMatrix_setScaleX"></a>
+<a name='SkMatrix_setScaleX'></a>
## setScaleX
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setScaleX(SkScalar v)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setScaleX'>setScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
Sets horizontal scale factor.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setScaleX_v"> <code><strong>v </strong></code> </a></td> <td>
-horizontal scale factor to store</td>
+<table> <tr> <td><a name='SkMatrix_setScaleX_v'><code><strong>v</strong></code></a></td>
+ <td>horizontal scale factor to store</td>
</tr>
</table>
@@ -1375,23 +2277,23 @@ horizontal scale factor to store</td>
### See Also
-<a href="#SkMatrix_set">set</a> <a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_setScaleY">setScaleY</a>
+<a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_setScaleY'>setScaleY</a>
---
-<a name="SkMatrix_setScaleY"></a>
+<a name='SkMatrix_setScaleY'></a>
## setScaleY
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setScaleY(SkScalar v)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setScaleY'>setScaleY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
Sets vertical scale factor.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setScaleY_v"> <code><strong>v </strong></code> </a></td> <td>
-vertical scale factor to store</td>
+<table> <tr> <td><a name='SkMatrix_setScaleY_v'><code><strong>v</strong></code></a></td>
+ <td>vertical scale factor to store</td>
</tr>
</table>
@@ -1401,23 +2303,23 @@ vertical scale factor to store</td>
### See Also
-<a href="#SkMatrix_set">set</a> <a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_setScaleX">setScaleX</a>
+<a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_setScaleX'>setScaleX</a>
---
-<a name="SkMatrix_setSkewY"></a>
+<a name='SkMatrix_setSkewY'></a>
## setSkewY
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setSkewY(SkScalar v)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setSkewY'>setSkewY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
Sets vertical skew factor.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setSkewY_v"> <code><strong>v </strong></code> </a></td> <td>
-vertical skew factor to store</td>
+<table> <tr> <td><a name='SkMatrix_setSkewY_v'><code><strong>v</strong></code></a></td>
+ <td>vertical skew factor to store</td>
</tr>
</table>
@@ -1427,23 +2329,23 @@ vertical skew factor to store</td>
### See Also
-<a href="#SkMatrix_set">set</a> <a href="#SkMatrix_setSkew">setSkew</a><sup><a href="#SkMatrix_setSkew_2">[2]</a></sup> <a href="#SkMatrix_setSkewX">setSkewX</a>
+<a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setSkew'>setSkew</a><sup><a href='#SkMatrix_setSkew_2'>[2]</a></sup> <a href='#SkMatrix_setSkewX'>setSkewX</a>
---
-<a name="SkMatrix_setSkewX"></a>
+<a name='SkMatrix_setSkewX'></a>
## setSkewX
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setSkewX(SkScalar v)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setSkewX'>setSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
Sets horizontal skew factor.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setSkewX_v"> <code><strong>v </strong></code> </a></td> <td>
-horizontal skew factor to store</td>
+<table> <tr> <td><a name='SkMatrix_setSkewX_v'><code><strong>v</strong></code></a></td>
+ <td>horizontal skew factor to store</td>
</tr>
</table>
@@ -1453,23 +2355,23 @@ horizontal skew factor to store</td>
### See Also
-<a href="#SkMatrix_set">set</a> <a href="#SkMatrix_setSkew">setSkew</a><sup><a href="#SkMatrix_setSkew_2">[2]</a></sup> <a href="#SkMatrix_setSkewX">setSkewX</a>
+<a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setSkew'>setSkew</a><sup><a href='#SkMatrix_setSkew_2'>[2]</a></sup> <a href='#SkMatrix_setSkewX'>setSkewX</a>
---
-<a name="SkMatrix_setTranslateX"></a>
+<a name='SkMatrix_setTranslateX'></a>
## setTranslateX
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setTranslateX(SkScalar v)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setTranslateX'>setTranslateX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
Sets horizontal translation.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setTranslateX_v"> <code><strong>v </strong></code> </a></td> <td>
-horizontal translation to store</td>
+<table> <tr> <td><a name='SkMatrix_setTranslateX_v'><code><strong>v</strong></code></a></td>
+ <td>horizontal translation to store</td>
</tr>
</table>
@@ -1479,23 +2381,23 @@ horizontal translation to store</td>
### See Also
-<a href="#SkMatrix_set">set</a> <a href="#SkMatrix_setTranslate">setTranslate</a><sup><a href="#SkMatrix_setTranslate_2">[2]</a></sup> <a href="#SkMatrix_setTranslateY">setTranslateY</a>
+<a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setTranslate'>setTranslate</a><sup><a href='#SkMatrix_setTranslate_2'>[2]</a></sup> <a href='#SkMatrix_setTranslateY'>setTranslateY</a>
---
-<a name="SkMatrix_setTranslateY"></a>
+<a name='SkMatrix_setTranslateY'></a>
## setTranslateY
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setTranslateY(SkScalar v)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setTranslateY'>setTranslateY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
Sets vertical translation.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setTranslateY_v"> <code><strong>v </strong></code> </a></td> <td>
-vertical translation to store</td>
+<table> <tr> <td><a name='SkMatrix_setTranslateY_v'><code><strong>v</strong></code></a></td>
+ <td>vertical translation to store</td>
</tr>
</table>
@@ -1505,24 +2407,24 @@ vertical translation to store</td>
### See Also
-<a href="#SkMatrix_set">set</a> <a href="#SkMatrix_setTranslate">setTranslate</a><sup><a href="#SkMatrix_setTranslate_2">[2]</a></sup> <a href="#SkMatrix_setTranslateX">setTranslateX</a>
+<a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setTranslate'>setTranslate</a><sup><a href='#SkMatrix_setTranslate_2'>[2]</a></sup> <a href='#SkMatrix_setTranslateX'>setTranslateX</a>
---
-<a name="SkMatrix_setPerspX"></a>
+<a name='SkMatrix_setPerspX'></a>
## setPerspX
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setPerspX(SkScalar v)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setPerspX'>setPerspX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
-Sets input x perspective factor, which causes <a href="#SkMatrix_mapXY">mapXY</a> to vary input x inversely
+Sets input x perspective factor, which causes <a href='#SkMatrix_mapXY'>mapXY</a> to vary input x inversely
proportional to input y.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setPerspX_v"> <code><strong>v </strong></code> </a></td> <td>
-perspective factor</td>
+<table> <tr> <td><a name='SkMatrix_setPerspX_v'><code><strong>v</strong></code></a></td>
+ <td>perspective factor</td>
</tr>
</table>
@@ -1532,24 +2434,24 @@ perspective factor</td>
### See Also
-<a href="#SkMatrix_getPerspX">getPerspX</a> <a href="#SkMatrix_set">set</a> <a href="#SkMatrix_setAll">setAll</a> <a href="#SkMatrix_set9">set9</a> <a href="#SkMatrix_MakeAll">MakeAll</a>
+<a href='#SkMatrix_getPerspX'>getPerspX</a> <a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setAll'>setAll</a> <a href='#SkMatrix_set9'>set9</a> <a href='#SkMatrix_MakeAll'>MakeAll</a>
---
-<a name="SkMatrix_setPerspY"></a>
+<a name='SkMatrix_setPerspY'></a>
## setPerspY
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setPerspY(SkScalar v)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setPerspY'>setPerspY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
-Sets input y perspective factor, which causes <a href="#SkMatrix_mapXY">mapXY</a> to vary input y inversely
+Sets input y perspective factor, which causes <a href='#SkMatrix_mapXY'>mapXY</a> to vary input y inversely
proportional to input x.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setPerspY_v"> <code><strong>v </strong></code> </a></td> <td>
-perspective factor</td>
+<table> <tr> <td><a name='SkMatrix_setPerspY_v'><code><strong>v</strong></code></a></td>
+ <td>perspective factor</td>
</tr>
</table>
@@ -1559,16 +2461,16 @@ perspective factor</td>
### See Also
-<a href="#SkMatrix_getPerspY">getPerspY</a> <a href="#SkMatrix_set">set</a> <a href="#SkMatrix_setAll">setAll</a> <a href="#SkMatrix_set9">set9</a> <a href="#SkMatrix_MakeAll">MakeAll</a>
+<a href='#SkMatrix_getPerspY'>getPerspY</a> <a href='#SkMatrix_set'>set</a> <a href='#SkMatrix_setAll'>setAll</a> <a href='#SkMatrix_set9'>set9</a> <a href='#SkMatrix_MakeAll'>MakeAll</a>
---
-<a name="SkMatrix_setAll"></a>
+<a name='SkMatrix_setAll'></a>
## setAll
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setAll(SkScalar scaleX, SkScalar skewX, SkScalar transX, SkScalar skewY, SkScalar scaleY,
- SkScalar transY, SkScalar persp0, SkScalar persp1, SkScalar persp2)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setAll'>setAll</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX, <a href='undocumented#SkScalar'>SkScalar</a> skewX, <a href='undocumented#SkScalar'>SkScalar</a> transX, <a href='undocumented#SkScalar'>SkScalar</a> skewY, <a href='undocumented#SkScalar'>SkScalar</a> scaleY,
+ <a href='undocumented#SkScalar'>SkScalar</a> transY, <a href='undocumented#SkScalar'>SkScalar</a> persp0, <a href='undocumented#SkScalar'>SkScalar</a> persp1, <a href='undocumented#SkScalar'>SkScalar</a> persp2)
</pre>
Sets all values from parameters. Sets matrix to:
@@ -1581,24 +2483,32 @@ Sets all values from parameters. Sets matrix to:
### Parameters
-<table> <tr> <td><a name="SkMatrix_setAll_scaleX"> <code><strong>scaleX </strong></code> </a></td> <td>
-horizontal scale factor to store</td>
- </tr> <tr> <td><a name="SkMatrix_setAll_skewX"> <code><strong>skewX </strong></code> </a></td> <td>
-horizontal skew factor to store</td>
- </tr> <tr> <td><a name="SkMatrix_setAll_transX"> <code><strong>transX </strong></code> </a></td> <td>
-horizontal translation to store</td>
- </tr> <tr> <td><a name="SkMatrix_setAll_skewY"> <code><strong>skewY </strong></code> </a></td> <td>
-vertical skew factor to store</td>
- </tr> <tr> <td><a name="SkMatrix_setAll_scaleY"> <code><strong>scaleY </strong></code> </a></td> <td>
-vertical scale factor to store</td>
- </tr> <tr> <td><a name="SkMatrix_setAll_transY"> <code><strong>transY </strong></code> </a></td> <td>
-vertical translation to store</td>
- </tr> <tr> <td><a name="SkMatrix_setAll_persp0"> <code><strong>persp0 </strong></code> </a></td> <td>
-input x perspective factor to store</td>
- </tr> <tr> <td><a name="SkMatrix_setAll_persp1"> <code><strong>persp1 </strong></code> </a></td> <td>
-input y perspective factor to store</td>
- </tr> <tr> <td><a name="SkMatrix_setAll_persp2"> <code><strong>persp2 </strong></code> </a></td> <td>
-perspective scale factor to store</td>
+<table> <tr> <td><a name='SkMatrix_setAll_scaleX'><code><strong>scaleX</strong></code></a></td>
+ <td>horizontal scale factor to store</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setAll_skewX'><code><strong>skewX</strong></code></a></td>
+ <td>horizontal skew factor to store</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setAll_transX'><code><strong>transX</strong></code></a></td>
+ <td>horizontal translation to store</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setAll_skewY'><code><strong>skewY</strong></code></a></td>
+ <td>vertical skew factor to store</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setAll_scaleY'><code><strong>scaleY</strong></code></a></td>
+ <td>vertical scale factor to store</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setAll_transY'><code><strong>transY</strong></code></a></td>
+ <td>vertical translation to store</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setAll_persp0'><code><strong>persp0</strong></code></a></td>
+ <td>input x perspective factor to store</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setAll_persp1'><code><strong>persp1</strong></code></a></td>
+ <td>input y perspective factor to store</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setAll_persp2'><code><strong>persp2</strong></code></a></td>
+ <td>perspective scale factor to store</td>
</tr>
</table>
@@ -1608,31 +2518,31 @@ perspective scale factor to store</td>
### See Also
-<a href="#SkMatrix_set9">set9</a> <a href="#SkMatrix_MakeAll">MakeAll</a>
+<a href='#SkMatrix_set9'>set9</a> <a href='#SkMatrix_MakeAll'>MakeAll</a>
---
-<a name="SkMatrix_get9"></a>
+<a name='SkMatrix_get9'></a>
## get9
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void get9(SkScalar buffer[9]) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_get9'>get9</a>(<a href='undocumented#SkScalar'>SkScalar</a> buffer[9]) const
</pre>
-Copies nine <a href="undocumented#Scalar">Scalar</a> values contained by <a href="#Matrix">Matrix</a> into <a href="#SkMatrix_get9_buffer">buffer</a>, in member value
-ascending order: <a href="#SkMatrix_kMScaleX">kMScaleX</a>, <a href="#SkMatrix_kMSkewX">kMSkewX</a>, <a href="#SkMatrix_kMTransX">kMTransX</a>, <a href="#SkMatrix_kMSkewY">kMSkewY</a>, <a href="#SkMatrix_kMScaleY">kMScaleY</a>, <a href="#SkMatrix_kMTransY">kMTransY</a>,
-<a href="#SkMatrix_kMPersp0">kMPersp0</a>, <a href="#SkMatrix_kMPersp1">kMPersp1</a>, <a href="#SkMatrix_kMPersp2">kMPersp2</a>.
+Copies nine <a href='undocumented#Scalar'>Scalar</a> values contained by <a href='#Matrix'>Matrix</a> into <a href='#SkMatrix_get9_buffer'>buffer</a>, in member value
+ascending order: <a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>,
+<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a>.
### Parameters
-<table> <tr> <td><a name="SkMatrix_get9_buffer"> <code><strong>buffer </strong></code> </a></td> <td>
-storage for nine <a href="undocumented#Scalar">Scalar</a> values</td>
+<table> <tr> <td><a name='SkMatrix_get9_buffer'><code><strong>buffer</strong></code></a></td>
+ <td>storage for nine <a href='undocumented#Scalar'>Scalar</a> values</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="df509d73b47cb98b0475e4465db7b246">
+<div><fiddle-embed name="379fc375e011050b54ed9df83c0996a7">
#### Example Output
@@ -1646,20 +2556,20 @@ storage for nine <a href="undocumented#Scalar">Scalar</a> values</td>
### See Also
-<a href="#SkMatrix_set9">set9</a>
+<a href='#SkMatrix_set9'>set9</a>
---
-<a name="SkMatrix_set9"></a>
+<a name='SkMatrix_set9'></a>
## set9
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void set9(const SkScalar buffer[9])
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_set9'>set9</a>(const <a href='undocumented#SkScalar'>SkScalar</a> buffer[9])
</pre>
-Sets <a href="#Matrix">Matrix</a> to nine <a href="undocumented#Scalar">Scalar</a> values in <a href="#SkMatrix_set9_buffer">buffer</a>, in member value ascending order:
-<a href="#SkMatrix_kMScaleX">kMScaleX</a>, <a href="#SkMatrix_kMSkewX">kMSkewX</a>, <a href="#SkMatrix_kMTransX">kMTransX</a>, <a href="#SkMatrix_kMSkewY">kMSkewY</a>, <a href="#SkMatrix_kMScaleY">kMScaleY</a>, <a href="#SkMatrix_kMTransY">kMTransY</a>, <a href="#SkMatrix_kMPersp0">kMPersp0</a>, <a href="#SkMatrix_kMPersp1">kMPersp1</a>,
-<a href="#SkMatrix_kMPersp2">kMPersp2</a>.
+Sets <a href='#Matrix'>Matrix</a> to nine <a href='undocumented#Scalar'>Scalar</a> values in <a href='#SkMatrix_set9_buffer'>buffer</a>, in member value ascending order:
+<a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>, <a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>,
+<a href='#SkMatrix_kMPersp2'>kMPersp2</a>.
Sets matrix to:
@@ -1669,14 +2579,14 @@ Sets matrix to:
| buffer[6] buffer[7] buffer[8] |
</pre>
-In the future, <a href="#SkMatrix_set9">set9</a> followed by <a href="#SkMatrix_get9">get9</a> may not return the same values. Since <a href="#Matrix">Matrix</a>
+In the future, <a href='#SkMatrix_set9'>set9</a> followed by <a href='#SkMatrix_get9'>get9</a> may not return the same values. Since <a href='#Matrix'>Matrix</a>
maps non-homogeneous coordinates, scaling all nine values produces an equivalent
transformation, possibly improving precision.
### Parameters
-<table> <tr> <td><a name="SkMatrix_set9_buffer"> <code><strong>buffer </strong></code> </a></td> <td>
-nine <a href="undocumented#Scalar">Scalar</a> values</td>
+<table> <tr> <td><a name='SkMatrix_set9_buffer'><code><strong>buffer</strong></code></a></td>
+ <td>nine <a href='undocumented#Scalar'>Scalar</a> values</td>
</tr>
</table>
@@ -1686,18 +2596,18 @@ nine <a href="undocumented#Scalar">Scalar</a> values</td>
### See Also
-<a href="#SkMatrix_setAll">setAll</a> <a href="#SkMatrix_get9">get9</a> <a href="#SkMatrix_MakeAll">MakeAll</a>
+<a href='#SkMatrix_setAll'>setAll</a> <a href='#SkMatrix_get9'>get9</a> <a href='#SkMatrix_MakeAll'>MakeAll</a>
---
-<a name="SkMatrix_reset"></a>
+<a name='SkMatrix_reset'></a>
## reset
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void reset()
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_reset'>reset</a>()
</pre>
-Sets <a href="#Matrix">Matrix</a> to identity; which has no effect on mapped <a href="SkPoint_Reference#Point">Points</a>. Sets <a href="#Matrix">Matrix</a> to:
+Sets <a href='#Matrix'>Matrix</a> to identity; which has no effect on mapped <a href='SkPoint_Reference#Point'>Points</a>. Sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 0 |
@@ -1705,7 +2615,7 @@ Sets <a href="#Matrix">Matrix</a> to identity; which has no effect on mapped <a
| 0 0 1 |
</pre>
-Also called <a href="#SkMatrix_setIdentity">setIdentity</a>; use the one that provides better inline
+Also called <a href='#SkMatrix_setIdentity'>setIdentity</a>; use the one that provides better inline
documentation.
### Example
@@ -1722,18 +2632,18 @@ m.isIdentity(): true
### See Also
-<a href="#SkMatrix_isIdentity">isIdentity</a> <a href="#SkMatrix_setIdentity">setIdentity</a>
+<a href='#SkMatrix_isIdentity'>isIdentity</a> <a href='#SkMatrix_setIdentity'>setIdentity</a>
---
-<a name="SkMatrix_setIdentity"></a>
+<a name='SkMatrix_setIdentity'></a>
## setIdentity
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setIdentity()
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setIdentity'>setIdentity</a>()
</pre>
-Sets <a href="#Matrix">Matrix</a> to identity; which has no effect on mapped <a href="SkPoint_Reference#Point">Points</a>. Sets <a href="#Matrix">Matrix</a> to:
+Sets <a href='#Matrix'>Matrix</a> to identity; which has no effect on mapped <a href='SkPoint_Reference#Point'>Points</a>. Sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 0 |
@@ -1741,7 +2651,7 @@ Sets <a href="#Matrix">Matrix</a> to identity; which has no effect on mapped <a
| 0 0 1 |
</pre>
-Also called <a href="#SkMatrix_reset">reset</a>; use the one that provides better inline
+Also called <a href='#SkMatrix_reset'>reset</a>; use the one that provides better inline
documentation.
### Example
@@ -1758,25 +2668,26 @@ m.isIdentity(): true
### See Also
-<a href="#SkMatrix_isIdentity">isIdentity</a> <a href="#SkMatrix_reset">reset</a>
+<a href='#SkMatrix_isIdentity'>isIdentity</a> <a href='#SkMatrix_reset'>reset</a>
---
-<a name="SkMatrix_setTranslate"></a>
+<a name='SkMatrix_setTranslate'></a>
## setTranslate
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setTranslate(SkScalar dx, SkScalar dy)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setTranslate'>setTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Sets <a href="#Matrix">Matrix</a> to translate by (<a href="#SkMatrix_setTranslate_dx">dx</a>, <a href="#SkMatrix_setTranslate_dy">dy</a>).
+Sets <a href='#Matrix'>Matrix</a> to translate by (<a href='#SkMatrix_setTranslate_dx'>dx</a>, <a href='#SkMatrix_setTranslate_dy'>dy</a>).
### Parameters
-<table> <tr> <td><a name="SkMatrix_setTranslate_dx"> <code><strong>dx </strong></code> </a></td> <td>
-horizontal translation</td>
- </tr> <tr> <td><a name="SkMatrix_setTranslate_dy"> <code><strong>dy </strong></code> </a></td> <td>
-vertical translation</td>
+<table> <tr> <td><a name='SkMatrix_setTranslate_dx'><code><strong>dx</strong></code></a></td>
+ <td>horizontal translation</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setTranslate_dy'><code><strong>dy</strong></code></a></td>
+ <td>vertical translation</td>
</tr>
</table>
@@ -1786,22 +2697,22 @@ vertical translation</td>
### See Also
-<a href="#SkMatrix_setTranslateX">setTranslateX</a> <a href="#SkMatrix_setTranslateY">setTranslateY</a>
+<a href='#SkMatrix_setTranslateX'>setTranslateX</a> <a href='#SkMatrix_setTranslateY'>setTranslateY</a>
---
-<a name="SkMatrix_setTranslate_2"></a>
+<a name='SkMatrix_setTranslate_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setTranslate(const SkVector& v)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setTranslate'>setTranslate</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v)
</pre>
-Sets <a href="#Matrix">Matrix</a> to translate by (<a href="#SkMatrix_setTranslate_2_v">v</a>.fX, <a href="#SkMatrix_setTranslate_2_v">v</a>.fY).
+Sets <a href='#Matrix'>Matrix</a> to translate by (<a href='#SkMatrix_setTranslate_2_v'>v</a>.fX, <a href='#SkMatrix_setTranslate_2_v'>v</a>.fY).
### Parameters
-<table> <tr> <td><a name="SkMatrix_setTranslate_2_v"> <code><strong>v </strong></code> </a></td> <td>
-<a href="SkPoint_Reference#Vector">Vector</a> containing horizontal and vertical translation</td>
+<table> <tr> <td><a name='SkMatrix_setTranslate_2_v'><code><strong>v</strong></code></a></td>
+ <td><a href='SkPoint_Reference#Vector'>Vector</a> containing horizontal and vertical translation</td>
</tr>
</table>
@@ -1811,30 +2722,33 @@ Sets <a href="#Matrix">Matrix</a> to translate by (<a href="#SkMatrix_setTransla
### See Also
-<a href="#SkMatrix_setTranslateX">setTranslateX</a> <a href="#SkMatrix_setTranslateY">setTranslateY</a> <a href="#SkMatrix_MakeTrans">MakeTrans</a>
+<a href='#SkMatrix_setTranslateX'>setTranslateX</a> <a href='#SkMatrix_setTranslateY'>setTranslateY</a> <a href='#SkMatrix_MakeTrans'>MakeTrans</a>
---
-<a name="SkMatrix_setScale"></a>
+<a name='SkMatrix_setScale'></a>
## setScale
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href="#Matrix">Matrix</a> to scale by <a href="#SkMatrix_setScale_sx">sx</a> and <a href="#SkMatrix_setScale_sy">sy</a>, about a pivot point at (<a href="#SkMatrix_setScale_px">px</a>, <a href="#SkMatrix_setScale_py">py</a>).
-The pivot point is unchanged when mapped with <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to scale by <a href='#SkMatrix_setScale_sx'>sx</a> and <a href='#SkMatrix_setScale_sy'>sy</a>, about a pivot point at (<a href='#SkMatrix_setScale_px'>px</a>, <a href='#SkMatrix_setScale_py'>py</a>).
+The pivot point is unchanged when mapped with <a href='#Matrix'>Matrix</a>.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setScale_sx"> <code><strong>sx </strong></code> </a></td> <td>
-horizontal scale factor</td>
- </tr> <tr> <td><a name="SkMatrix_setScale_sy"> <code><strong>sy </strong></code> </a></td> <td>
-vertical scale factor</td>
- </tr> <tr> <td><a name="SkMatrix_setScale_px"> <code><strong>px </strong></code> </a></td> <td>
-pivot x</td>
- </tr> <tr> <td><a name="SkMatrix_setScale_py"> <code><strong>py </strong></code> </a></td> <td>
-pivot y</td>
+<table> <tr> <td><a name='SkMatrix_setScale_sx'><code><strong>sx</strong></code></a></td>
+ <td>horizontal scale factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setScale_sy'><code><strong>sy</strong></code></a></td>
+ <td>vertical scale factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setScale_px'><code><strong>px</strong></code></a></td>
+ <td>pivot x</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setScale_py'><code><strong>py</strong></code></a></td>
+ <td>pivot y</td>
</tr>
</table>
@@ -1844,24 +2758,25 @@ pivot y</td>
### See Also
-<a href="#SkMatrix_setScaleX">setScaleX</a> <a href="#SkMatrix_setScaleY">setScaleY</a> <a href="#SkMatrix_MakeScale">MakeScale</a><sup><a href="#SkMatrix_MakeScale_2">[2]</a></sup> <a href="#SkMatrix_preScale">preScale</a><sup><a href="#SkMatrix_preScale_2">[2]</a></sup> <a href="#SkMatrix_postScale">postScale</a><sup><a href="#SkMatrix_postScale_2">[2]</a></sup>
+<a href='#SkMatrix_setScaleX'>setScaleX</a> <a href='#SkMatrix_setScaleY'>setScaleY</a> <a href='#SkMatrix_MakeScale'>MakeScale</a><sup><a href='#SkMatrix_MakeScale_2'>[2]</a></sup> <a href='#SkMatrix_preScale'>preScale</a><sup><a href='#SkMatrix_preScale_2'>[2]</a></sup> <a href='#SkMatrix_postScale'>postScale</a><sup><a href='#SkMatrix_postScale_2'>[2]</a></sup>
---
-<a name="SkMatrix_setScale_2"></a>
+<a name='SkMatrix_setScale_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setScale(SkScalar sx, SkScalar sy)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Sets <a href="#Matrix">Matrix</a> to scale by <a href="#SkMatrix_setScale_2_sx">sx</a> and <a href="#SkMatrix_setScale_2_sy">sy</a> about at pivot point at (0, 0).
+Sets <a href='#Matrix'>Matrix</a> to scale by <a href='#SkMatrix_setScale_2_sx'>sx</a> and <a href='#SkMatrix_setScale_2_sy'>sy</a> about at pivot point at (0, 0).
### Parameters
-<table> <tr> <td><a name="SkMatrix_setScale_2_sx"> <code><strong>sx </strong></code> </a></td> <td>
-horizontal scale factor</td>
- </tr> <tr> <td><a name="SkMatrix_setScale_2_sy"> <code><strong>sy </strong></code> </a></td> <td>
-vertical scale factor</td>
+<table> <tr> <td><a name='SkMatrix_setScale_2_sx'><code><strong>sx</strong></code></a></td>
+ <td>horizontal scale factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setScale_2_sy'><code><strong>sy</strong></code></a></td>
+ <td>vertical scale factor</td>
</tr>
</table>
@@ -1871,30 +2786,32 @@ vertical scale factor</td>
### See Also
-<a href="#SkMatrix_setScaleX">setScaleX</a> <a href="#SkMatrix_setScaleY">setScaleY</a> <a href="#SkMatrix_MakeScale">MakeScale</a><sup><a href="#SkMatrix_MakeScale_2">[2]</a></sup> <a href="#SkMatrix_preScale">preScale</a><sup><a href="#SkMatrix_preScale_2">[2]</a></sup> <a href="#SkMatrix_postScale">postScale</a><sup><a href="#SkMatrix_postScale_2">[2]</a></sup>
+<a href='#SkMatrix_setScaleX'>setScaleX</a> <a href='#SkMatrix_setScaleY'>setScaleY</a> <a href='#SkMatrix_MakeScale'>MakeScale</a><sup><a href='#SkMatrix_MakeScale_2'>[2]</a></sup> <a href='#SkMatrix_preScale'>preScale</a><sup><a href='#SkMatrix_preScale_2'>[2]</a></sup> <a href='#SkMatrix_postScale'>postScale</a><sup><a href='#SkMatrix_postScale_2'>[2]</a></sup>
---
-<a name="SkMatrix_setRotate"></a>
+<a name='SkMatrix_setRotate'></a>
## setRotate
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setRotate(SkScalar degrees, SkScalar px, SkScalar py)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href="#Matrix">Matrix</a> to rotate by <a href="#SkMatrix_setRotate_degrees">degrees</a> about a pivot point at (<a href="#SkMatrix_setRotate_px">px</a>, <a href="#SkMatrix_setRotate_py">py</a>).
-The pivot point is unchanged when mapped with <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to rotate by <a href='#SkMatrix_setRotate_degrees'>degrees</a> about a pivot point at (<a href='#SkMatrix_setRotate_px'>px</a>, <a href='#SkMatrix_setRotate_py'>py</a>).
+The pivot point is unchanged when mapped with <a href='#Matrix'>Matrix</a>.
-Positive <a href="#SkMatrix_setRotate_degrees">degrees</a> rotates clockwise.
+Positive <a href='#SkMatrix_setRotate_degrees'>degrees</a> rotates clockwise.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setRotate_degrees"> <code><strong>degrees </strong></code> </a></td> <td>
-angle of axes relative to upright axes</td>
- </tr> <tr> <td><a name="SkMatrix_setRotate_px"> <code><strong>px </strong></code> </a></td> <td>
-pivot x</td>
- </tr> <tr> <td><a name="SkMatrix_setRotate_py"> <code><strong>py </strong></code> </a></td> <td>
-pivot y</td>
+<table> <tr> <td><a name='SkMatrix_setRotate_degrees'><code><strong>degrees</strong></code></a></td>
+ <td>angle of axes relative to upright axes</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setRotate_px'><code><strong>px</strong></code></a></td>
+ <td>pivot x</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setRotate_py'><code><strong>py</strong></code></a></td>
+ <td>pivot y</td>
</tr>
</table>
@@ -1904,23 +2821,23 @@ pivot y</td>
### See Also
-<a href="#SkMatrix_setSinCos">setSinCos</a><sup><a href="#SkMatrix_setSinCos_2">[2]</a></sup> <a href="#SkMatrix_preRotate">preRotate</a><sup><a href="#SkMatrix_preRotate_2">[2]</a></sup> <a href="#SkMatrix_postRotate">postRotate</a><sup><a href="#SkMatrix_postRotate_2">[2]</a></sup>
+<a href='#SkMatrix_setSinCos'>setSinCos</a><sup><a href='#SkMatrix_setSinCos_2'>[2]</a></sup> <a href='#SkMatrix_preRotate'>preRotate</a><sup><a href='#SkMatrix_preRotate_2'>[2]</a></sup> <a href='#SkMatrix_postRotate'>postRotate</a><sup><a href='#SkMatrix_postRotate_2'>[2]</a></sup>
---
-<a name="SkMatrix_setRotate_2"></a>
+<a name='SkMatrix_setRotate_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setRotate(SkScalar degrees)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
</pre>
-Sets <a href="#Matrix">Matrix</a> to rotate by <a href="#SkMatrix_setRotate_2_degrees">degrees</a> about a pivot point at (0, 0).
-Positive <a href="#SkMatrix_setRotate_2_degrees">degrees</a> rotates clockwise.
+Sets <a href='#Matrix'>Matrix</a> to rotate by <a href='#SkMatrix_setRotate_2_degrees'>degrees</a> about a pivot point at (0, 0).
+Positive <a href='#SkMatrix_setRotate_2_degrees'>degrees</a> rotates clockwise.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setRotate_2_degrees"> <code><strong>degrees </strong></code> </a></td> <td>
-angle of axes relative to upright axes</td>
+<table> <tr> <td><a name='SkMatrix_setRotate_2_degrees'><code><strong>degrees</strong></code></a></td>
+ <td>angle of axes relative to upright axes</td>
</tr>
</table>
@@ -1930,33 +2847,36 @@ angle of axes relative to upright axes</td>
### See Also
-<a href="#SkMatrix_setSinCos">setSinCos</a><sup><a href="#SkMatrix_setSinCos_2">[2]</a></sup> <a href="#SkMatrix_preRotate">preRotate</a><sup><a href="#SkMatrix_preRotate_2">[2]</a></sup> <a href="#SkMatrix_postRotate">postRotate</a><sup><a href="#SkMatrix_postRotate_2">[2]</a></sup>
+<a href='#SkMatrix_setSinCos'>setSinCos</a><sup><a href='#SkMatrix_setSinCos_2'>[2]</a></sup> <a href='#SkMatrix_preRotate'>preRotate</a><sup><a href='#SkMatrix_preRotate_2'>[2]</a></sup> <a href='#SkMatrix_postRotate'>postRotate</a><sup><a href='#SkMatrix_postRotate_2'>[2]</a></sup>
---
-<a name="SkMatrix_setSinCos"></a>
+<a name='SkMatrix_setSinCos'></a>
## setSinCos
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setSinCos(SkScalar sinValue, SkScalar cosValue, SkScalar px, SkScalar py)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> sinValue, <a href='undocumented#SkScalar'>SkScalar</a> cosValue, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href="#Matrix">Matrix</a> to rotate by <a href="#SkMatrix_setSinCos_sinValue">sinValue</a> and <a href="#SkMatrix_setSinCos_cosValue">cosValue</a>, about a pivot point at (<a href="#SkMatrix_setSinCos_px">px</a>, <a href="#SkMatrix_setSinCos_py">py</a>).
-The pivot point is unchanged when mapped with <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to rotate by <a href='#SkMatrix_setSinCos_sinValue'>sinValue</a> and <a href='#SkMatrix_setSinCos_cosValue'>cosValue</a>, about a pivot point at (<a href='#SkMatrix_setSinCos_px'>px</a>, <a href='#SkMatrix_setSinCos_py'>py</a>).
+The pivot point is unchanged when mapped with <a href='#Matrix'>Matrix</a>.
-<a href="SkPoint_Reference#Vector">Vector</a> (<a href="#SkMatrix_setSinCos_sinValue">sinValue</a>, <a href="#SkMatrix_setSinCos_cosValue">cosValue</a>) describes the angle of rotation relative to (0, 1).
-<a href="SkPoint_Reference#Vector">Vector</a> length specifies scale.
+<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setSinCos_sinValue'>sinValue</a>, <a href='#SkMatrix_setSinCos_cosValue'>cosValue</a>) describes the angle of rotation relative to (0, 1).
+<a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setSinCos_sinValue"> <code><strong>sinValue </strong></code> </a></td> <td>
-rotation vector x component</td>
- </tr> <tr> <td><a name="SkMatrix_setSinCos_cosValue"> <code><strong>cosValue </strong></code> </a></td> <td>
-rotation vector y component</td>
- </tr> <tr> <td><a name="SkMatrix_setSinCos_px"> <code><strong>px </strong></code> </a></td> <td>
-pivot x</td>
- </tr> <tr> <td><a name="SkMatrix_setSinCos_py"> <code><strong>py </strong></code> </a></td> <td>
-pivot y</td>
+<table> <tr> <td><a name='SkMatrix_setSinCos_sinValue'><code><strong>sinValue</strong></code></a></td>
+ <td>rotation vector x component</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setSinCos_cosValue'><code><strong>cosValue</strong></code></a></td>
+ <td>rotation vector y component</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setSinCos_px'><code><strong>px</strong></code></a></td>
+ <td>pivot x</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setSinCos_py'><code><strong>py</strong></code></a></td>
+ <td>pivot y</td>
</tr>
</table>
@@ -1966,96 +2886,100 @@ pivot y</td>
### See Also
-<a href="#SkMatrix_setRotate">setRotate</a><sup><a href="#SkMatrix_setRotate_2">[2]</a></sup> <a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_setRSXform">setRSXform</a>
+<a href='#SkMatrix_setRotate'>setRotate</a><sup><a href='#SkMatrix_setRotate_2'>[2]</a></sup> <a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_setRSXform'>setRSXform</a>
---
-<a name="SkMatrix_setSinCos_2"></a>
+<a name='SkMatrix_setSinCos_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setSinCos(SkScalar sinValue, SkScalar cosValue)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> sinValue, <a href='undocumented#SkScalar'>SkScalar</a> cosValue)
</pre>
-Sets <a href="#Matrix">Matrix</a> to rotate by <a href="#SkMatrix_setSinCos_2_sinValue">sinValue</a> and <a href="#SkMatrix_setSinCos_2_cosValue">cosValue</a>, about a pivot point at (0, 0).
+Sets <a href='#Matrix'>Matrix</a> to rotate by <a href='#SkMatrix_setSinCos_2_sinValue'>sinValue</a> and <a href='#SkMatrix_setSinCos_2_cosValue'>cosValue</a>, about a pivot point at (0, 0).
-<a href="SkPoint_Reference#Vector">Vector</a> (<a href="#SkMatrix_setSinCos_2_sinValue">sinValue</a>, <a href="#SkMatrix_setSinCos_2_cosValue">cosValue</a>) describes the angle of rotation relative to (0, 1).
-<a href="SkPoint_Reference#Vector">Vector</a> length specifies scale.
+<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setSinCos_2_sinValue'>sinValue</a>, <a href='#SkMatrix_setSinCos_2_cosValue'>cosValue</a>) describes the angle of rotation relative to (0, 1).
+<a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setSinCos_2_sinValue"> <code><strong>sinValue </strong></code> </a></td> <td>
-rotation vector x component</td>
- </tr> <tr> <td><a name="SkMatrix_setSinCos_2_cosValue"> <code><strong>cosValue </strong></code> </a></td> <td>
-rotation vector y component</td>
+<table> <tr> <td><a name='SkMatrix_setSinCos_2_sinValue'><code><strong>sinValue</strong></code></a></td>
+ <td>rotation vector x component</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setSinCos_2_cosValue'><code><strong>cosValue</strong></code></a></td>
+ <td>rotation vector y component</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="e37a94a53c959951b059fcd624639ef6"><div><a href="SkCanvas_Reference#Canvas">Canvas</a> needs offset after applying <a href="#Matrix">Matrix</a> to pivot about <a href="SkRect_Reference#Rect">Rect</a> center.
+<div><fiddle-embed name="e37a94a53c959951b059fcd624639ef6"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> needs offset after applying <a href='#Matrix'>Matrix</a> to pivot about <a href='SkRect_Reference#Rect'>Rect</a> center.
</div></fiddle-embed></div>
### See Also
-<a href="#SkMatrix_setRotate">setRotate</a><sup><a href="#SkMatrix_setRotate_2">[2]</a></sup> <a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_setRSXform">setRSXform</a>
+<a href='#SkMatrix_setRotate'>setRotate</a><sup><a href='#SkMatrix_setRotate_2'>[2]</a></sup> <a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_setRSXform'>setRSXform</a>
---
-<a name="SkMatrix_setRSXform"></a>
+<a name='SkMatrix_setRSXform'></a>
## setRSXform
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkMatrix& setRSXform(const SkRSXform& rsxForm)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_setRSXform'>setRSXform</a>(const <a href='undocumented#SkRSXform'>SkRSXform</a>& rsxForm)
</pre>
-Sets <a href="#Matrix">Matrix</a> to rotate, scale, and translate using a compressed matrix form.
+Sets <a href='#Matrix'>Matrix</a> to rotate, scale, and translate using a compressed matrix form.
-<a href="SkPoint_Reference#Vector">Vector</a> (<a href="#SkMatrix_setRSXform_rsxForm">rsxForm</a>.fSSin, <a href="#SkMatrix_setRSXform_rsxForm">rsxForm</a>.fSCos) describes the angle of rotation relative
-to (0, 1). <a href="SkPoint_Reference#Vector">Vector</a> length specifies scale. Mapped point is rotated and scaled
-by <a href="SkPoint_Reference#Vector">Vector</a>, then translated by (<a href="#SkMatrix_setRSXform_rsxForm">rsxForm</a>.fTx, <a href="#SkMatrix_setRSXform_rsxForm">rsxForm</a>.fTy).
+<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.fSSin, <a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.fSCos) describes the angle of rotation relative
+to (0, 1). <a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale. Mapped point is rotated and scaled
+by <a href='SkPoint_Reference#Vector'>Vector</a>, then translated by (<a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.fTx, <a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.fTy).
### Parameters
-<table> <tr> <td><a name="SkMatrix_setRSXform_rsxForm"> <code><strong>rsxForm </strong></code> </a></td> <td>
-compressed <a href="undocumented#RSXform">RSXform</a> matrix</td>
+<table> <tr> <td><a name='SkMatrix_setRSXform_rsxForm'><code><strong>rsxForm</strong></code></a></td>
+ <td>compressed <a href='undocumented#RSXform'>RSXform</a> matrix</td>
</tr>
</table>
### Return Value
-reference to <a href="#Matrix">Matrix</a>
+reference to <a href='#Matrix'>Matrix</a>
### Example
-<div><fiddle-embed name="c3f5faddca466f78278b32b88fd5f5eb"><div><a href="SkCanvas_Reference#Canvas">Canvas</a> needs offset after applying <a href="#Matrix">Matrix</a> to pivot about <a href="SkRect_Reference#Rect">Rect</a> center.
+<div><fiddle-embed name="c3f5faddca466f78278b32b88fd5f5eb"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> needs offset after applying <a href='#Matrix'>Matrix</a> to pivot about <a href='SkRect_Reference#Rect'>Rect</a> center.
</div></fiddle-embed></div>
### See Also
-<a href="#SkMatrix_setSinCos">setSinCos</a><sup><a href="#SkMatrix_setSinCos_2">[2]</a></sup> <a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_setTranslate">setTranslate</a><sup><a href="#SkMatrix_setTranslate_2">[2]</a></sup>
+<a href='#SkMatrix_setSinCos'>setSinCos</a><sup><a href='#SkMatrix_setSinCos_2'>[2]</a></sup> <a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_setTranslate'>setTranslate</a><sup><a href='#SkMatrix_setTranslate_2'>[2]</a></sup>
---
-<a name="SkMatrix_setSkew"></a>
+<a name='SkMatrix_setSkew'></a>
## setSkew
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setSkew(SkScalar kx, SkScalar ky, SkScalar px, SkScalar py)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href="#Matrix">Matrix</a> to skew by <a href="#SkMatrix_setSkew_kx">kx</a> and <a href="#SkMatrix_setSkew_ky">ky</a>, about a pivot point at (<a href="#SkMatrix_setSkew_px">px</a>, <a href="#SkMatrix_setSkew_py">py</a>).
-The pivot point is unchanged when mapped with <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to skew by <a href='#SkMatrix_setSkew_kx'>kx</a> and <a href='#SkMatrix_setSkew_ky'>ky</a>, about a pivot point at (<a href='#SkMatrix_setSkew_px'>px</a>, <a href='#SkMatrix_setSkew_py'>py</a>).
+The pivot point is unchanged when mapped with <a href='#Matrix'>Matrix</a>.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setSkew_kx"> <code><strong>kx </strong></code> </a></td> <td>
-horizontal skew factor</td>
- </tr> <tr> <td><a name="SkMatrix_setSkew_ky"> <code><strong>ky </strong></code> </a></td> <td>
-vertical skew factor</td>
- </tr> <tr> <td><a name="SkMatrix_setSkew_px"> <code><strong>px </strong></code> </a></td> <td>
-pivot x</td>
- </tr> <tr> <td><a name="SkMatrix_setSkew_py"> <code><strong>py </strong></code> </a></td> <td>
-pivot y</td>
+<table> <tr> <td><a name='SkMatrix_setSkew_kx'><code><strong>kx</strong></code></a></td>
+ <td>horizontal skew factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setSkew_ky'><code><strong>ky</strong></code></a></td>
+ <td>vertical skew factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setSkew_px'><code><strong>px</strong></code></a></td>
+ <td>pivot x</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setSkew_py'><code><strong>py</strong></code></a></td>
+ <td>pivot y</td>
</tr>
</table>
@@ -2065,24 +2989,25 @@ pivot y</td>
### See Also
-<a href="#SkMatrix_setSkewX">setSkewX</a> <a href="#SkMatrix_setSkewY">setSkewY</a> <a href="#SkMatrix_preSkew">preSkew</a><sup><a href="#SkMatrix_preSkew_2">[2]</a></sup> <a href="#SkMatrix_postSkew">postSkew</a><sup><a href="#SkMatrix_postSkew_2">[2]</a></sup>
+<a href='#SkMatrix_setSkewX'>setSkewX</a> <a href='#SkMatrix_setSkewY'>setSkewY</a> <a href='#SkMatrix_preSkew'>preSkew</a><sup><a href='#SkMatrix_preSkew_2'>[2]</a></sup> <a href='#SkMatrix_postSkew'>postSkew</a><sup><a href='#SkMatrix_postSkew_2'>[2]</a></sup>
---
-<a name="SkMatrix_setSkew_2"></a>
+<a name='SkMatrix_setSkew_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setSkew(SkScalar kx, SkScalar ky)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky)
</pre>
-Sets <a href="#Matrix">Matrix</a> to skew by <a href="#SkMatrix_setSkew_2_kx">kx</a> and <a href="#SkMatrix_setSkew_2_ky">ky</a>, about a pivot point at (0, 0).
+Sets <a href='#Matrix'>Matrix</a> to skew by <a href='#SkMatrix_setSkew_2_kx'>kx</a> and <a href='#SkMatrix_setSkew_2_ky'>ky</a>, about a pivot point at (0, 0).
### Parameters
-<table> <tr> <td><a name="SkMatrix_setSkew_2_kx"> <code><strong>kx </strong></code> </a></td> <td>
-horizontal skew factor</td>
- </tr> <tr> <td><a name="SkMatrix_setSkew_2_ky"> <code><strong>ky </strong></code> </a></td> <td>
-vertical skew factor</td>
+<table> <tr> <td><a name='SkMatrix_setSkew_2_kx'><code><strong>kx</strong></code></a></td>
+ <td>horizontal skew factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setSkew_2_ky'><code><strong>ky</strong></code></a></td>
+ <td>vertical skew factor</td>
</tr>
</table>
@@ -2092,18 +3017,18 @@ vertical skew factor</td>
### See Also
-<a href="#SkMatrix_setSkewX">setSkewX</a> <a href="#SkMatrix_setSkewY">setSkewY</a> <a href="#SkMatrix_preSkew">preSkew</a><sup><a href="#SkMatrix_preSkew_2">[2]</a></sup> <a href="#SkMatrix_postSkew">postSkew</a><sup><a href="#SkMatrix_postSkew_2">[2]</a></sup>
+<a href='#SkMatrix_setSkewX'>setSkewX</a> <a href='#SkMatrix_setSkewY'>setSkewY</a> <a href='#SkMatrix_preSkew'>preSkew</a><sup><a href='#SkMatrix_preSkew_2'>[2]</a></sup> <a href='#SkMatrix_postSkew'>postSkew</a><sup><a href='#SkMatrix_postSkew_2'>[2]</a></sup>
---
-<a name="SkMatrix_setConcat"></a>
+<a name='SkMatrix_setConcat'></a>
## setConcat
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setConcat(const SkMatrix& a, const SkMatrix& b)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setConcat'>setConcat</a>(const <a href='#SkMatrix'>SkMatrix</a>& a, const <a href='#SkMatrix'>SkMatrix</a>& b)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> <a href="#SkMatrix_setConcat_a">a</a> multiplied by <a href="#Matrix">Matrix</a> <a href="#SkMatrix_setConcat_b">b</a>. Either <a href="#SkMatrix_setConcat_a">a</a> or <a href="#SkMatrix_setConcat_b">b</a> may be this.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_setConcat_a'>a</a> multiplied by <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_setConcat_b'>b</a>. Either <a href='#SkMatrix_setConcat_a'>a</a> or <a href='#SkMatrix_setConcat_b'>b</a> may be this.
Given:
@@ -2113,7 +3038,7 @@ a = | D E F |, b = | M N O |
| G H I | | P Q R |
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
@@ -2123,34 +3048,35 @@ a * b = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
### Parameters
-<table> <tr> <td><a name="SkMatrix_setConcat_a"> <code><strong>a </strong></code> </a></td> <td>
-<a href="#Matrix">Matrix</a> on left side of multiply expression</td>
- </tr> <tr> <td><a name="SkMatrix_setConcat_b"> <code><strong>b </strong></code> </a></td> <td>
-<a href="#Matrix">Matrix</a> on right side of multiply expression</td>
+<table> <tr> <td><a name='SkMatrix_setConcat_a'><code><strong>a</strong></code></a></td>
+ <td><a href='#Matrix'>Matrix</a> on left side of multiply expression</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setConcat_b'><code><strong>b</strong></code></a></td>
+ <td><a href='#Matrix'>Matrix</a> on right side of multiply expression</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="0381a10ac69bdefdf9d15b47cbb9fefe"><div><a href="#SkMatrix_setPolyToPoly">setPolyToPoly</a> creates perspective matrices, one the inverse of the other.
+<div><fiddle-embed name="0381a10ac69bdefdf9d15b47cbb9fefe"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> creates perspective matrices, one the inverse of the other.
Multiplying the matrix by its inverse turns into an identity matrix.
</div></fiddle-embed></div>
### See Also
-<a href="#SkMatrix_Concat">Concat</a> <a href="#SkMatrix_preConcat">preConcat</a> <a href="#SkMatrix_postConcat">postConcat</a> <a href="SkCanvas_Reference#SkCanvas_concat">SkCanvas::concat</a>
+<a href='#SkMatrix_Concat'>Concat</a> <a href='#SkMatrix_preConcat'>preConcat</a> <a href='#SkMatrix_postConcat'>postConcat</a> <a href='SkCanvas_Reference#SkCanvas_concat'>SkCanvas::concat</a>
---
-<a name="SkMatrix_preTranslate"></a>
+<a name='SkMatrix_preTranslate'></a>
## preTranslate
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void preTranslate(SkScalar dx, SkScalar dy)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_preTranslate'>preTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> multiplied by <a href="#Matrix">Matrix</a> constructed from translation (<a href="#SkMatrix_preTranslate_dx">dx</a>, <a href="#SkMatrix_preTranslate_dy">dy</a>).
-This can be thought of as moving the point to be mapped before applying <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from translation (<a href='#SkMatrix_preTranslate_dx'>dx</a>, <a href='#SkMatrix_preTranslate_dy'>dy</a>).
+This can be thought of as moving the point to be mapped before applying <a href='#Matrix'>Matrix</a>.
Given:
@@ -2160,7 +3086,7 @@ Matrix = | D E F |, T(dx, dy) = | 0 1 dy |
| G H I | | 0 0 1 |
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | 1 0 dx | | A B A*dx+B*dy+C |
@@ -2170,33 +3096,34 @@ Matrix * T(dx, dy) = | D E F | | 0 1 dy | = | D E D*dx+E*dy+F |
### Parameters
-<table> <tr> <td><a name="SkMatrix_preTranslate_dx"> <code><strong>dx </strong></code> </a></td> <td>
-x translation before applying <a href="#Matrix">Matrix</a></td>
- </tr> <tr> <td><a name="SkMatrix_preTranslate_dy"> <code><strong>dy </strong></code> </a></td> <td>
-y translation before applying <a href="#Matrix">Matrix</a></td>
+<table> <tr> <td><a name='SkMatrix_preTranslate_dx'><code><strong>dx</strong></code></a></td>
+ <td>x translation before applying <a href='#Matrix'>Matrix</a></td>
+ </tr>
+ <tr> <td><a name='SkMatrix_preTranslate_dy'><code><strong>dy</strong></code></a></td>
+ <td>y translation before applying <a href='#Matrix'>Matrix</a></td>
</tr>
</table>
### Example
-<div><fiddle-embed name="08f6749933f4ce541073077ab506fd9b"></fiddle-embed></div>
+<div><fiddle-embed name="f75a9b629aa6c51ed888f8799b5ba5f7"></fiddle-embed></div>
### See Also
-<a href="#SkMatrix_postTranslate">postTranslate</a> <a href="#SkMatrix_setTranslate">setTranslate</a><sup><a href="#SkMatrix_setTranslate_2">[2]</a></sup> <a href="#SkMatrix_MakeTrans">MakeTrans</a>
+<a href='#SkMatrix_postTranslate'>postTranslate</a> <a href='#SkMatrix_setTranslate'>setTranslate</a><sup><a href='#SkMatrix_setTranslate_2'>[2]</a></sup> <a href='#SkMatrix_MakeTrans'>MakeTrans</a>
---
-<a name="SkMatrix_preScale"></a>
+<a name='SkMatrix_preScale'></a>
## preScale
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void preScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> multiplied by <a href="#Matrix">Matrix</a> constructed from scaling by (<a href="#SkMatrix_preScale_sx">sx</a>, <a href="#SkMatrix_preScale_sy">sy</a>)
-about pivot point (<a href="#SkMatrix_preScale_px">px</a>, <a href="#SkMatrix_preScale_py">py</a>).
-This can be thought of as scaling about a pivot point before applying <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from scaling by (<a href='#SkMatrix_preScale_sx'>sx</a>, <a href='#SkMatrix_preScale_sy'>sy</a>)
+about pivot point (<a href='#SkMatrix_preScale_px'>px</a>, <a href='#SkMatrix_preScale_py'>py</a>).
+This can be thought of as scaling about a pivot point before applying <a href='#Matrix'>Matrix</a>.
Given:
@@ -2213,7 +3140,7 @@ dx = px - sx * px
dy = py - sy * py
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | sx 0 dx | | A*sx B*sy A*dx+B*dy+C |
@@ -2223,14 +3150,17 @@ Matrix * S(sx, sy, px, py) = | D E F | | 0 sy dy | = | D*sx E*sy D*dx+E*dy+F |
### Parameters
-<table> <tr> <td><a name="SkMatrix_preScale_sx"> <code><strong>sx </strong></code> </a></td> <td>
-horizontal scale factor</td>
- </tr> <tr> <td><a name="SkMatrix_preScale_sy"> <code><strong>sy </strong></code> </a></td> <td>
-vertical scale factor</td>
- </tr> <tr> <td><a name="SkMatrix_preScale_px"> <code><strong>px </strong></code> </a></td> <td>
-pivot x</td>
- </tr> <tr> <td><a name="SkMatrix_preScale_py"> <code><strong>py </strong></code> </a></td> <td>
-pivot y</td>
+<table> <tr> <td><a name='SkMatrix_preScale_sx'><code><strong>sx</strong></code></a></td>
+ <td>horizontal scale factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_preScale_sy'><code><strong>sy</strong></code></a></td>
+ <td>vertical scale factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_preScale_px'><code><strong>px</strong></code></a></td>
+ <td>pivot x</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_preScale_py'><code><strong>py</strong></code></a></td>
+ <td>pivot y</td>
</tr>
</table>
@@ -2240,19 +3170,19 @@ pivot y</td>
### See Also
-<a href="#SkMatrix_postScale">postScale</a><sup><a href="#SkMatrix_postScale_2">[2]</a></sup> <a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_MakeScale">MakeScale</a><sup><a href="#SkMatrix_MakeScale_2">[2]</a></sup>
+<a href='#SkMatrix_postScale'>postScale</a><sup><a href='#SkMatrix_postScale_2'>[2]</a></sup> <a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_MakeScale'>MakeScale</a><sup><a href='#SkMatrix_MakeScale_2'>[2]</a></sup>
---
-<a name="SkMatrix_preScale_2"></a>
+<a name='SkMatrix_preScale_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void preScale(SkScalar sx, SkScalar sy)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> multiplied by <a href="#Matrix">Matrix</a> constructed from scaling by (<a href="#SkMatrix_preScale_2_sx">sx</a>, <a href="#SkMatrix_preScale_2_sy">sy</a>)
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from scaling by (<a href='#SkMatrix_preScale_2_sx'>sx</a>, <a href='#SkMatrix_preScale_2_sy'>sy</a>)
about pivot point (0, 0).
-This can be thought of as scaling about the origin before applying <a href="#Matrix">Matrix</a>.
+This can be thought of as scaling about the origin before applying <a href='#Matrix'>Matrix</a>.
Given:
@@ -2262,7 +3192,7 @@ Matrix = | D E F |, S(sx, sy) = | 0 sy 0 |
| G H I | | 0 0 1 |
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | sx 0 0 | | A*sx B*sy C |
@@ -2272,10 +3202,11 @@ Matrix * S(sx, sy) = | D E F | | 0 sy 0 | = | D*sx E*sy F |
### Parameters
-<table> <tr> <td><a name="SkMatrix_preScale_2_sx"> <code><strong>sx </strong></code> </a></td> <td>
-horizontal scale factor</td>
- </tr> <tr> <td><a name="SkMatrix_preScale_2_sy"> <code><strong>sy </strong></code> </a></td> <td>
-vertical scale factor</td>
+<table> <tr> <td><a name='SkMatrix_preScale_2_sx'><code><strong>sx</strong></code></a></td>
+ <td>horizontal scale factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_preScale_2_sy'><code><strong>sy</strong></code></a></td>
+ <td>vertical scale factor</td>
</tr>
</table>
@@ -2285,22 +3216,22 @@ vertical scale factor</td>
### See Also
-<a href="#SkMatrix_postScale">postScale</a><sup><a href="#SkMatrix_postScale_2">[2]</a></sup> <a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_MakeScale">MakeScale</a><sup><a href="#SkMatrix_MakeScale_2">[2]</a></sup>
+<a href='#SkMatrix_postScale'>postScale</a><sup><a href='#SkMatrix_postScale_2'>[2]</a></sup> <a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_MakeScale'>MakeScale</a><sup><a href='#SkMatrix_MakeScale_2'>[2]</a></sup>
---
-<a name="SkMatrix_preRotate"></a>
+<a name='SkMatrix_preRotate'></a>
## preRotate
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void preRotate(SkScalar degrees, SkScalar px, SkScalar py)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> multiplied by <a href="#Matrix">Matrix</a> constructed from rotating by <a href="#SkMatrix_preRotate_degrees">degrees</a>
-about pivot point (<a href="#SkMatrix_preRotate_px">px</a>, <a href="#SkMatrix_preRotate_py">py</a>).
-This can be thought of as rotating about a pivot point before applying <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from rotating by <a href='#SkMatrix_preRotate_degrees'>degrees</a>
+about pivot point (<a href='#SkMatrix_preRotate_px'>px</a>, <a href='#SkMatrix_preRotate_py'>py</a>).
+This can be thought of as rotating about a pivot point before applying <a href='#Matrix'>Matrix</a>.
-Positive <a href="#SkMatrix_preRotate_degrees">degrees</a> rotates clockwise.
+Positive <a href='#SkMatrix_preRotate_degrees'>degrees</a> rotates clockwise.
Given:
@@ -2319,7 +3250,7 @@ dx = s * py + (1 - c) * px
dy = -s * px + (1 - c) * py
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | c -s dx | | Ac+Bs -As+Bc A*dx+B*dy+C |
@@ -2329,12 +3260,14 @@ Matrix * R(degrees, px, py) = | D E F | | s c dy | = | Dc+Es -Ds+Ec D*dx+E*dy+F
### Parameters
-<table> <tr> <td><a name="SkMatrix_preRotate_degrees"> <code><strong>degrees </strong></code> </a></td> <td>
-angle of axes relative to upright axes</td>
- </tr> <tr> <td><a name="SkMatrix_preRotate_px"> <code><strong>px </strong></code> </a></td> <td>
-pivot x</td>
- </tr> <tr> <td><a name="SkMatrix_preRotate_py"> <code><strong>py </strong></code> </a></td> <td>
-pivot y</td>
+<table> <tr> <td><a name='SkMatrix_preRotate_degrees'><code><strong>degrees</strong></code></a></td>
+ <td>angle of axes relative to upright axes</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_preRotate_px'><code><strong>px</strong></code></a></td>
+ <td>pivot x</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_preRotate_py'><code><strong>py</strong></code></a></td>
+ <td>pivot y</td>
</tr>
</table>
@@ -2344,21 +3277,21 @@ pivot y</td>
### See Also
-<a href="#SkMatrix_postRotate">postRotate</a><sup><a href="#SkMatrix_postRotate_2">[2]</a></sup> <a href="#SkMatrix_setRotate">setRotate</a><sup><a href="#SkMatrix_setRotate_2">[2]</a></sup>
+<a href='#SkMatrix_postRotate'>postRotate</a><sup><a href='#SkMatrix_postRotate_2'>[2]</a></sup> <a href='#SkMatrix_setRotate'>setRotate</a><sup><a href='#SkMatrix_setRotate_2'>[2]</a></sup>
---
-<a name="SkMatrix_preRotate_2"></a>
+<a name='SkMatrix_preRotate_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void preRotate(SkScalar degrees)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> multiplied by <a href="#Matrix">Matrix</a> constructed from rotating by <a href="#SkMatrix_preRotate_2_degrees">degrees</a>
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from rotating by <a href='#SkMatrix_preRotate_2_degrees'>degrees</a>
about pivot point (0, 0).
-This can be thought of as rotating about the origin before applying <a href="#Matrix">Matrix</a>.
+This can be thought of as rotating about the origin before applying <a href='#Matrix'>Matrix</a>.
-Positive <a href="#SkMatrix_preRotate_2_degrees">degrees</a> rotates clockwise.
+Positive <a href='#SkMatrix_preRotate_2_degrees'>degrees</a> rotates clockwise.
Given:
@@ -2375,7 +3308,7 @@ c = cos(degrees)
s = sin(degrees)
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | c -s 0 | | Ac+Bs -As+Bc C |
@@ -2385,8 +3318,8 @@ Matrix * R(degrees, px, py) = | D E F | | s c 0 | = | Dc+Es -Ds+Ec F |
### Parameters
-<table> <tr> <td><a name="SkMatrix_preRotate_2_degrees"> <code><strong>degrees </strong></code> </a></td> <td>
-angle of axes relative to upright axes</td>
+<table> <tr> <td><a name='SkMatrix_preRotate_2_degrees'><code><strong>degrees</strong></code></a></td>
+ <td>angle of axes relative to upright axes</td>
</tr>
</table>
@@ -2396,20 +3329,20 @@ angle of axes relative to upright axes</td>
### See Also
-<a href="#SkMatrix_postRotate">postRotate</a><sup><a href="#SkMatrix_postRotate_2">[2]</a></sup> <a href="#SkMatrix_setRotate">setRotate</a><sup><a href="#SkMatrix_setRotate_2">[2]</a></sup>
+<a href='#SkMatrix_postRotate'>postRotate</a><sup><a href='#SkMatrix_postRotate_2'>[2]</a></sup> <a href='#SkMatrix_setRotate'>setRotate</a><sup><a href='#SkMatrix_setRotate_2'>[2]</a></sup>
---
-<a name="SkMatrix_preSkew"></a>
+<a name='SkMatrix_preSkew'></a>
## preSkew
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void preSkew(SkScalar kx, SkScalar ky, SkScalar px, SkScalar py)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> multiplied by <a href="#Matrix">Matrix</a> constructed from skewing by (<a href="#SkMatrix_preSkew_kx">kx</a>, <a href="#SkMatrix_preSkew_ky">ky</a>)
-about pivot point (<a href="#SkMatrix_preSkew_px">px</a>, <a href="#SkMatrix_preSkew_py">py</a>).
-This can be thought of as skewing about a pivot point before applying <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from skewing by (<a href='#SkMatrix_preSkew_kx'>kx</a>, <a href='#SkMatrix_preSkew_ky'>ky</a>)
+about pivot point (<a href='#SkMatrix_preSkew_px'>px</a>, <a href='#SkMatrix_preSkew_py'>py</a>).
+This can be thought of as skewing about a pivot point before applying <a href='#Matrix'>Matrix</a>.
Given:
@@ -2426,7 +3359,7 @@ dx = -kx * py
dy = -ky * px
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | 1 kx dx | | A+B*ky A*kx+B A*dx+B*dy+C |
@@ -2436,14 +3369,17 @@ Matrix * K(kx, ky, px, py) = | D E F | | ky 1 dy | = | D+E*ky D*kx+E D*dx+E*dy+
### Parameters
-<table> <tr> <td><a name="SkMatrix_preSkew_kx"> <code><strong>kx </strong></code> </a></td> <td>
-horizontal skew factor</td>
- </tr> <tr> <td><a name="SkMatrix_preSkew_ky"> <code><strong>ky </strong></code> </a></td> <td>
-vertical skew factor</td>
- </tr> <tr> <td><a name="SkMatrix_preSkew_px"> <code><strong>px </strong></code> </a></td> <td>
-pivot x</td>
- </tr> <tr> <td><a name="SkMatrix_preSkew_py"> <code><strong>py </strong></code> </a></td> <td>
-pivot y</td>
+<table> <tr> <td><a name='SkMatrix_preSkew_kx'><code><strong>kx</strong></code></a></td>
+ <td>horizontal skew factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_preSkew_ky'><code><strong>ky</strong></code></a></td>
+ <td>vertical skew factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_preSkew_px'><code><strong>px</strong></code></a></td>
+ <td>pivot x</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_preSkew_py'><code><strong>py</strong></code></a></td>
+ <td>pivot y</td>
</tr>
</table>
@@ -2453,19 +3389,19 @@ pivot y</td>
### See Also
-<a href="#SkMatrix_postSkew">postSkew</a><sup><a href="#SkMatrix_postSkew_2">[2]</a></sup> <a href="#SkMatrix_setSkew">setSkew</a><sup><a href="#SkMatrix_setSkew_2">[2]</a></sup>
+<a href='#SkMatrix_postSkew'>postSkew</a><sup><a href='#SkMatrix_postSkew_2'>[2]</a></sup> <a href='#SkMatrix_setSkew'>setSkew</a><sup><a href='#SkMatrix_setSkew_2'>[2]</a></sup>
---
-<a name="SkMatrix_preSkew_2"></a>
+<a name='SkMatrix_preSkew_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void preSkew(SkScalar kx, SkScalar ky)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> multiplied by <a href="#Matrix">Matrix</a> constructed from skewing by (<a href="#SkMatrix_preSkew_2_kx">kx</a>, <a href="#SkMatrix_preSkew_2_ky">ky</a>)
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from skewing by (<a href='#SkMatrix_preSkew_2_kx'>kx</a>, <a href='#SkMatrix_preSkew_2_ky'>ky</a>)
about pivot point (0, 0).
-This can be thought of as skewing about the origin before applying <a href="#Matrix">Matrix</a>.
+This can be thought of as skewing about the origin before applying <a href='#Matrix'>Matrix</a>.
Given:
@@ -2475,7 +3411,7 @@ Matrix = | D E F |, K(kx, ky) = | ky 1 0 |
| G H I | | 0 0 1 |
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | 1 kx 0 | | A+B*ky A*kx+B C |
@@ -2485,10 +3421,11 @@ Matrix * K(kx, ky) = | D E F | | ky 1 0 | = | D+E*ky D*kx+E F |
### Parameters
-<table> <tr> <td><a name="SkMatrix_preSkew_2_kx"> <code><strong>kx </strong></code> </a></td> <td>
-horizontal skew factor</td>
- </tr> <tr> <td><a name="SkMatrix_preSkew_2_ky"> <code><strong>ky </strong></code> </a></td> <td>
-vertical skew factor</td>
+<table> <tr> <td><a name='SkMatrix_preSkew_2_kx'><code><strong>kx</strong></code></a></td>
+ <td>horizontal skew factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_preSkew_2_ky'><code><strong>ky</strong></code></a></td>
+ <td>vertical skew factor</td>
</tr>
</table>
@@ -2498,19 +3435,19 @@ vertical skew factor</td>
### See Also
-<a href="#SkMatrix_postSkew">postSkew</a><sup><a href="#SkMatrix_postSkew_2">[2]</a></sup> <a href="#SkMatrix_setSkew">setSkew</a><sup><a href="#SkMatrix_setSkew_2">[2]</a></sup>
+<a href='#SkMatrix_postSkew'>postSkew</a><sup><a href='#SkMatrix_postSkew_2'>[2]</a></sup> <a href='#SkMatrix_setSkew'>setSkew</a><sup><a href='#SkMatrix_setSkew_2'>[2]</a></sup>
---
-<a name="SkMatrix_preConcat"></a>
+<a name='SkMatrix_preConcat'></a>
## preConcat
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void preConcat(const SkMatrix& other)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_preConcat'>preConcat</a>(const <a href='#SkMatrix'>SkMatrix</a>& other)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> multiplied by <a href="#Matrix">Matrix</a> <a href="#SkMatrix_preConcat_other">other</a>.
-This can be thought of mapping by <a href="#SkMatrix_preConcat_other">other</a> before applying <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_preConcat_other'>other</a>.
+This can be thought of mapping by <a href='#SkMatrix_preConcat_other'>other</a> before applying <a href='#Matrix'>Matrix</a>.
Given:
@@ -2520,7 +3457,7 @@ Matrix = | D E F |, other = | M N O |
| G H I | | P Q R |
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
@@ -2530,32 +3467,32 @@ Matrix * other = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
### Parameters
-<table> <tr> <td><a name="SkMatrix_preConcat_other"> <code><strong>other </strong></code> </a></td> <td>
-<a href="#Matrix">Matrix</a> on right side of multiply expression</td>
+<table> <tr> <td><a name='SkMatrix_preConcat_other'><code><strong>other</strong></code></a></td>
+ <td><a href='#Matrix'>Matrix</a> on right side of multiply expression</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="b07e62298e7b0ab5683db199faffceb2"><div><a href="#SkMatrix_setPolyToPoly">setPolyToPoly</a> creates perspective matrices, one the inverse of the <a href="#SkMatrix_preConcat_other">other</a>.
+<div><fiddle-embed name="b07e62298e7b0ab5683db199faffceb2"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> creates perspective matrices, one the inverse of the <a href='#SkMatrix_preConcat_other'>other</a>.
Multiplying the matrix by its inverse turns into an identity matrix.
</div></fiddle-embed></div>
### See Also
-<a href="#SkMatrix_postConcat">postConcat</a> <a href="#SkMatrix_setConcat">setConcat</a> <a href="#SkMatrix_Concat">Concat</a>
+<a href='#SkMatrix_postConcat'>postConcat</a> <a href='#SkMatrix_setConcat'>setConcat</a> <a href='#SkMatrix_Concat'>Concat</a>
---
-<a name="SkMatrix_postTranslate"></a>
+<a name='SkMatrix_postTranslate'></a>
## postTranslate
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void postTranslate(SkScalar dx, SkScalar dy)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_postTranslate'>postTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> constructed from translation (<a href="#SkMatrix_postTranslate_dx">dx</a>, <a href="#SkMatrix_postTranslate_dy">dy</a>) multiplied by <a href="#Matrix">Matrix</a>.
-This can be thought of as moving the point to be mapped after applying <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from translation (<a href='#SkMatrix_postTranslate_dx'>dx</a>, <a href='#SkMatrix_postTranslate_dy'>dy</a>) multiplied by <a href='#Matrix'>Matrix</a>.
+This can be thought of as moving the point to be mapped after applying <a href='#Matrix'>Matrix</a>.
Given:
@@ -2565,7 +3502,7 @@ Matrix = | M N O |, T(dx, dy) = | 0 1 dy |
| P Q R | | 0 0 1 |
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 dx | | J K L | | J+dx*P K+dx*Q L+dx*R |
@@ -2575,34 +3512,35 @@ T(dx, dy) * Matrix = | 0 1 dy | | M N O | = | M+dy*P N+dy*Q O+dy*R |
### Parameters
-<table> <tr> <td><a name="SkMatrix_postTranslate_dx"> <code><strong>dx </strong></code> </a></td> <td>
-x translation after applying <a href="#Matrix">Matrix</a></td>
- </tr> <tr> <td><a name="SkMatrix_postTranslate_dy"> <code><strong>dy </strong></code> </a></td> <td>
-y translation after applying <a href="#Matrix">Matrix</a></td>
+<table> <tr> <td><a name='SkMatrix_postTranslate_dx'><code><strong>dx</strong></code></a></td>
+ <td>x translation after applying <a href='#Matrix'>Matrix</a></td>
+ </tr>
+ <tr> <td><a name='SkMatrix_postTranslate_dy'><code><strong>dy</strong></code></a></td>
+ <td>y translation after applying <a href='#Matrix'>Matrix</a></td>
</tr>
</table>
### Example
-<div><fiddle-embed name="57e4cff302c0d754ac6c66050d741772"><div>Compare with <a href="#SkMatrix_preTranslate">preTranslate</a> example.
+<div><fiddle-embed name="f5144ef4bd7cea294fad2f756ed335af"><div>Compare with <a href='#SkMatrix_preTranslate'>preTranslate</a> example.
</div></fiddle-embed></div>
### See Also
-<a href="#SkMatrix_preTranslate">preTranslate</a> <a href="#SkMatrix_setTranslate">setTranslate</a><sup><a href="#SkMatrix_setTranslate_2">[2]</a></sup> <a href="#SkMatrix_MakeTrans">MakeTrans</a>
+<a href='#SkMatrix_preTranslate'>preTranslate</a> <a href='#SkMatrix_setTranslate'>setTranslate</a><sup><a href='#SkMatrix_setTranslate_2'>[2]</a></sup> <a href='#SkMatrix_MakeTrans'>MakeTrans</a>
---
-<a name="SkMatrix_postScale"></a>
+<a name='SkMatrix_postScale'></a>
## postScale
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void postScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> constructed from scaling by (<a href="#SkMatrix_postScale_sx">sx</a>, <a href="#SkMatrix_postScale_sy">sy</a>) about pivot point
-(<a href="#SkMatrix_postScale_px">px</a>, <a href="#SkMatrix_postScale_py">py</a>), multiplied by <a href="#Matrix">Matrix</a>.
-This can be thought of as scaling about a pivot point after applying <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from scaling by (<a href='#SkMatrix_postScale_sx'>sx</a>, <a href='#SkMatrix_postScale_sy'>sy</a>) about pivot point
+(<a href='#SkMatrix_postScale_px'>px</a>, <a href='#SkMatrix_postScale_py'>py</a>), multiplied by <a href='#Matrix'>Matrix</a>.
+This can be thought of as scaling about a pivot point after applying <a href='#Matrix'>Matrix</a>.
Given:
@@ -2619,7 +3557,7 @@ dx = px - sx * px
dy = py - sy * py
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| sx 0 dx | | J K L | | sx*J+dx*P sx*K+dx*Q sx*L+dx+R |
@@ -2629,14 +3567,17 @@ S(sx, sy, px, py) * Matrix = | 0 sy dy | | M N O | = | sy*M+dy*P sy*N+dy*Q sy*O
### Parameters
-<table> <tr> <td><a name="SkMatrix_postScale_sx"> <code><strong>sx </strong></code> </a></td> <td>
-horizontal scale factor</td>
- </tr> <tr> <td><a name="SkMatrix_postScale_sy"> <code><strong>sy </strong></code> </a></td> <td>
-vertical scale factor</td>
- </tr> <tr> <td><a name="SkMatrix_postScale_px"> <code><strong>px </strong></code> </a></td> <td>
-pivot x</td>
- </tr> <tr> <td><a name="SkMatrix_postScale_py"> <code><strong>py </strong></code> </a></td> <td>
-pivot y</td>
+<table> <tr> <td><a name='SkMatrix_postScale_sx'><code><strong>sx</strong></code></a></td>
+ <td>horizontal scale factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_postScale_sy'><code><strong>sy</strong></code></a></td>
+ <td>vertical scale factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_postScale_px'><code><strong>px</strong></code></a></td>
+ <td>pivot x</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_postScale_py'><code><strong>py</strong></code></a></td>
+ <td>pivot y</td>
</tr>
</table>
@@ -2646,19 +3587,19 @@ pivot y</td>
### See Also
-<a href="#SkMatrix_preScale">preScale</a><sup><a href="#SkMatrix_preScale_2">[2]</a></sup> <a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_MakeScale">MakeScale</a><sup><a href="#SkMatrix_MakeScale_2">[2]</a></sup>
+<a href='#SkMatrix_preScale'>preScale</a><sup><a href='#SkMatrix_preScale_2'>[2]</a></sup> <a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_MakeScale'>MakeScale</a><sup><a href='#SkMatrix_MakeScale_2'>[2]</a></sup>
---
-<a name="SkMatrix_postScale_2"></a>
+<a name='SkMatrix_postScale_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void postScale(SkScalar sx, SkScalar sy)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> constructed from scaling by (<a href="#SkMatrix_postScale_2_sx">sx</a>, <a href="#SkMatrix_postScale_2_sy">sy</a>) about pivot point
-(0, 0), multiplied by <a href="#Matrix">Matrix</a>.
-This can be thought of as scaling about the origin after applying <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from scaling by (<a href='#SkMatrix_postScale_2_sx'>sx</a>, <a href='#SkMatrix_postScale_2_sy'>sy</a>) about pivot point
+(0, 0), multiplied by <a href='#Matrix'>Matrix</a>.
+This can be thought of as scaling about the origin after applying <a href='#Matrix'>Matrix</a>.
Given:
@@ -2668,7 +3609,7 @@ Matrix = | M N O |, S(sx, sy) = | 0 sy 0 |
| P Q R | | 0 0 1 |
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| sx 0 0 | | J K L | | sx*J sx*K sx*L |
@@ -2678,10 +3619,11 @@ S(sx, sy) * Matrix = | 0 sy 0 | | M N O | = | sy*M sy*N sy*O |
### Parameters
-<table> <tr> <td><a name="SkMatrix_postScale_2_sx"> <code><strong>sx </strong></code> </a></td> <td>
-horizontal scale factor</td>
- </tr> <tr> <td><a name="SkMatrix_postScale_2_sy"> <code><strong>sy </strong></code> </a></td> <td>
-vertical scale factor</td>
+<table> <tr> <td><a name='SkMatrix_postScale_2_sx'><code><strong>sx</strong></code></a></td>
+ <td>horizontal scale factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_postScale_2_sy'><code><strong>sy</strong></code></a></td>
+ <td>vertical scale factor</td>
</tr>
</table>
@@ -2691,21 +3633,21 @@ vertical scale factor</td>
### See Also
-<a href="#SkMatrix_preScale">preScale</a><sup><a href="#SkMatrix_preScale_2">[2]</a></sup> <a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_MakeScale">MakeScale</a><sup><a href="#SkMatrix_MakeScale_2">[2]</a></sup>
+<a href='#SkMatrix_preScale'>preScale</a><sup><a href='#SkMatrix_preScale_2'>[2]</a></sup> <a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_MakeScale'>MakeScale</a><sup><a href='#SkMatrix_MakeScale_2'>[2]</a></sup>
---
-<a name="SkMatrix_postIDiv"></a>
+<a name='SkMatrix_postIDiv'></a>
## postIDiv
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool postIDiv(int divx, int divy)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_postIDiv'>postIDiv</a>(int divx, int divy)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> constructed from scaling by(1/<a href="#SkMatrix_postIDiv_divx">divx</a>, 1/<a href="#SkMatrix_postIDiv_divy">divy</a>)
-about pivot point (px, py), multiplied by <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from scaling by(1/<a href='#SkMatrix_postIDiv_divx'>divx</a>, 1/<a href='#SkMatrix_postIDiv_divy'>divy</a>)
+about pivot point (px, py), multiplied by <a href='#Matrix'>Matrix</a>.
-Returns false if either <a href="#SkMatrix_postIDiv_divx">divx</a> or <a href="#SkMatrix_postIDiv_divy">divy</a> is zero.
+Returns false if either <a href='#SkMatrix_postIDiv_divx'>divx</a> or <a href='#SkMatrix_postIDiv_divy'>divy</a> is zero.
Given:
@@ -2722,7 +3664,7 @@ sx = 1 / divx
sy = 1 / divy
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| sx 0 0 | | J K L | | sx*J sx*K sx*L |
@@ -2732,10 +3674,11 @@ I(divx, divy) * Matrix = | 0 sy 0 | | M N O | = | sy*M sy*N sy*O |
### Parameters
-<table> <tr> <td><a name="SkMatrix_postIDiv_divx"> <code><strong>divx </strong></code> </a></td> <td>
-integer divisor for inverse scale in x</td>
- </tr> <tr> <td><a name="SkMatrix_postIDiv_divy"> <code><strong>divy </strong></code> </a></td> <td>
-integer divisor for inverse scale in y</td>
+<table> <tr> <td><a name='SkMatrix_postIDiv_divx'><code><strong>divx</strong></code></a></td>
+ <td>integer divisor for inverse scale in x</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_postIDiv_divy'><code><strong>divy</strong></code></a></td>
+ <td>integer divisor for inverse scale in y</td>
</tr>
</table>
@@ -2749,22 +3692,22 @@ true on successful scale
### See Also
-<a href="#SkMatrix_postScale">postScale</a><sup><a href="#SkMatrix_postScale_2">[2]</a></sup> <a href="#SkMatrix_MakeScale">MakeScale</a><sup><a href="#SkMatrix_MakeScale_2">[2]</a></sup>
+<a href='#SkMatrix_postScale'>postScale</a><sup><a href='#SkMatrix_postScale_2'>[2]</a></sup> <a href='#SkMatrix_MakeScale'>MakeScale</a><sup><a href='#SkMatrix_MakeScale_2'>[2]</a></sup>
---
-<a name="SkMatrix_postRotate"></a>
+<a name='SkMatrix_postRotate'></a>
## postRotate
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void postRotate(SkScalar degrees, SkScalar px, SkScalar py)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> constructed from rotating by <a href="#SkMatrix_postRotate_degrees">degrees</a> about pivot point
-(<a href="#SkMatrix_postRotate_px">px</a>, <a href="#SkMatrix_postRotate_py">py</a>), multiplied by <a href="#Matrix">Matrix</a>.
-This can be thought of as rotating about a pivot point after applying <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from rotating by <a href='#SkMatrix_postRotate_degrees'>degrees</a> about pivot point
+(<a href='#SkMatrix_postRotate_px'>px</a>, <a href='#SkMatrix_postRotate_py'>py</a>), multiplied by <a href='#Matrix'>Matrix</a>.
+This can be thought of as rotating about a pivot point after applying <a href='#Matrix'>Matrix</a>.
-Positive <a href="#SkMatrix_postRotate_degrees">degrees</a> rotates clockwise.
+Positive <a href='#SkMatrix_postRotate_degrees'>degrees</a> rotates clockwise.
Given:
@@ -2783,7 +3726,7 @@ dx = s * py + (1 - c) * px
dy = -s * px + (1 - c) * py
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
|c -s dx| |J K L| |cJ-sM+dx*P cK-sN+dx*Q cL-sO+dx+R|
@@ -2793,12 +3736,14 @@ R(degrees, px, py) * Matrix = |s c dy| |M N O| = |sJ+cM+dy*P sK+cN+dy*Q sL+cO+d
### Parameters
-<table> <tr> <td><a name="SkMatrix_postRotate_degrees"> <code><strong>degrees </strong></code> </a></td> <td>
-angle of axes relative to upright axes</td>
- </tr> <tr> <td><a name="SkMatrix_postRotate_px"> <code><strong>px </strong></code> </a></td> <td>
-pivot x</td>
- </tr> <tr> <td><a name="SkMatrix_postRotate_py"> <code><strong>py </strong></code> </a></td> <td>
-pivot y</td>
+<table> <tr> <td><a name='SkMatrix_postRotate_degrees'><code><strong>degrees</strong></code></a></td>
+ <td>angle of axes relative to upright axes</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_postRotate_px'><code><strong>px</strong></code></a></td>
+ <td>pivot x</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_postRotate_py'><code><strong>py</strong></code></a></td>
+ <td>pivot y</td>
</tr>
</table>
@@ -2808,21 +3753,21 @@ pivot y</td>
### See Also
-<a href="#SkMatrix_preRotate">preRotate</a><sup><a href="#SkMatrix_preRotate_2">[2]</a></sup> <a href="#SkMatrix_setRotate">setRotate</a><sup><a href="#SkMatrix_setRotate_2">[2]</a></sup>
+<a href='#SkMatrix_preRotate'>preRotate</a><sup><a href='#SkMatrix_preRotate_2'>[2]</a></sup> <a href='#SkMatrix_setRotate'>setRotate</a><sup><a href='#SkMatrix_setRotate_2'>[2]</a></sup>
---
-<a name="SkMatrix_postRotate_2"></a>
+<a name='SkMatrix_postRotate_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void postRotate(SkScalar degrees)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> constructed from rotating by <a href="#SkMatrix_postRotate_2_degrees">degrees</a> about pivot point
-(0, 0), multiplied by <a href="#Matrix">Matrix</a>.
-This can be thought of as rotating about the origin after applying <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from rotating by <a href='#SkMatrix_postRotate_2_degrees'>degrees</a> about pivot point
+(0, 0), multiplied by <a href='#Matrix'>Matrix</a>.
+This can be thought of as rotating about the origin after applying <a href='#Matrix'>Matrix</a>.
-Positive <a href="#SkMatrix_postRotate_2_degrees">degrees</a> rotates clockwise.
+Positive <a href='#SkMatrix_postRotate_2_degrees'>degrees</a> rotates clockwise.
Given:
@@ -2839,7 +3784,7 @@ c = cos(degrees)
s = sin(degrees)
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| c -s dx | | J K L | | cJ-sM cK-sN cL-sO |
@@ -2849,8 +3794,8 @@ R(degrees, px, py) * Matrix = | s c dy | | M N O | = | sJ+cM sK+cN sL+cO |
### Parameters
-<table> <tr> <td><a name="SkMatrix_postRotate_2_degrees"> <code><strong>degrees </strong></code> </a></td> <td>
-angle of axes relative to upright axes</td>
+<table> <tr> <td><a name='SkMatrix_postRotate_2_degrees'><code><strong>degrees</strong></code></a></td>
+ <td>angle of axes relative to upright axes</td>
</tr>
</table>
@@ -2860,20 +3805,20 @@ angle of axes relative to upright axes</td>
### See Also
-<a href="#SkMatrix_preRotate">preRotate</a><sup><a href="#SkMatrix_preRotate_2">[2]</a></sup> <a href="#SkMatrix_setRotate">setRotate</a><sup><a href="#SkMatrix_setRotate_2">[2]</a></sup>
+<a href='#SkMatrix_preRotate'>preRotate</a><sup><a href='#SkMatrix_preRotate_2'>[2]</a></sup> <a href='#SkMatrix_setRotate'>setRotate</a><sup><a href='#SkMatrix_setRotate_2'>[2]</a></sup>
---
-<a name="SkMatrix_postSkew"></a>
+<a name='SkMatrix_postSkew'></a>
## postSkew
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void postSkew(SkScalar kx, SkScalar ky, SkScalar px, SkScalar py)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> constructed from skewing by (<a href="#SkMatrix_postSkew_kx">kx</a>, <a href="#SkMatrix_postSkew_ky">ky</a>) about pivot point
-(<a href="#SkMatrix_postSkew_px">px</a>, <a href="#SkMatrix_postSkew_py">py</a>), multiplied by <a href="#Matrix">Matrix</a>.
-This can be thought of as skewing about a pivot point after applying <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from skewing by (<a href='#SkMatrix_postSkew_kx'>kx</a>, <a href='#SkMatrix_postSkew_ky'>ky</a>) about pivot point
+(<a href='#SkMatrix_postSkew_px'>px</a>, <a href='#SkMatrix_postSkew_py'>py</a>), multiplied by <a href='#Matrix'>Matrix</a>.
+This can be thought of as skewing about a pivot point after applying <a href='#Matrix'>Matrix</a>.
Given:
@@ -2890,7 +3835,7 @@ dx = -kx * py
dy = -ky * px
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 kx dx| |J K L| |J+kx*M+dx*P K+kx*N+dx*Q L+kx*O+dx+R|
@@ -2900,14 +3845,17 @@ K(kx, ky, px, py) * Matrix = |ky 1 dy| |M N O| = |ky*J+M+dy*P ky*K+N+dy*Q ky*L+
### Parameters
-<table> <tr> <td><a name="SkMatrix_postSkew_kx"> <code><strong>kx </strong></code> </a></td> <td>
-horizontal skew factor</td>
- </tr> <tr> <td><a name="SkMatrix_postSkew_ky"> <code><strong>ky </strong></code> </a></td> <td>
-vertical skew factor</td>
- </tr> <tr> <td><a name="SkMatrix_postSkew_px"> <code><strong>px </strong></code> </a></td> <td>
-pivot x</td>
- </tr> <tr> <td><a name="SkMatrix_postSkew_py"> <code><strong>py </strong></code> </a></td> <td>
-pivot y</td>
+<table> <tr> <td><a name='SkMatrix_postSkew_kx'><code><strong>kx</strong></code></a></td>
+ <td>horizontal skew factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_postSkew_ky'><code><strong>ky</strong></code></a></td>
+ <td>vertical skew factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_postSkew_px'><code><strong>px</strong></code></a></td>
+ <td>pivot x</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_postSkew_py'><code><strong>py</strong></code></a></td>
+ <td>pivot y</td>
</tr>
</table>
@@ -2917,19 +3865,19 @@ pivot y</td>
### See Also
-<a href="#SkMatrix_preSkew">preSkew</a><sup><a href="#SkMatrix_preSkew_2">[2]</a></sup> <a href="#SkMatrix_setSkew">setSkew</a><sup><a href="#SkMatrix_setSkew_2">[2]</a></sup>
+<a href='#SkMatrix_preSkew'>preSkew</a><sup><a href='#SkMatrix_preSkew_2'>[2]</a></sup> <a href='#SkMatrix_setSkew'>setSkew</a><sup><a href='#SkMatrix_setSkew_2'>[2]</a></sup>
---
-<a name="SkMatrix_postSkew_2"></a>
+<a name='SkMatrix_postSkew_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void postSkew(SkScalar kx, SkScalar ky)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> constructed from skewing by (<a href="#SkMatrix_postSkew_2_kx">kx</a>, <a href="#SkMatrix_postSkew_2_ky">ky</a>) about pivot point
-(0, 0), multiplied by <a href="#Matrix">Matrix</a>.
-This can be thought of as skewing about the origin after applying <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from skewing by (<a href='#SkMatrix_postSkew_2_kx'>kx</a>, <a href='#SkMatrix_postSkew_2_ky'>ky</a>) about pivot point
+(0, 0), multiplied by <a href='#Matrix'>Matrix</a>.
+This can be thought of as skewing about the origin after applying <a href='#Matrix'>Matrix</a>.
Given:
@@ -2939,7 +3887,7 @@ Matrix = | M N O |, K(kx, ky) = | ky 1 0 |
| P Q R | | 0 0 1 |
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 kx 0 | | J K L | | J+kx*M K+kx*N L+kx*O |
@@ -2949,10 +3897,11 @@ K(kx, ky) * Matrix = | ky 1 0 | | M N O | = | ky*J+M ky*K+N ky*L+O |
### Parameters
-<table> <tr> <td><a name="SkMatrix_postSkew_2_kx"> <code><strong>kx </strong></code> </a></td> <td>
-horizontal skew factor</td>
- </tr> <tr> <td><a name="SkMatrix_postSkew_2_ky"> <code><strong>ky </strong></code> </a></td> <td>
-vertical skew factor</td>
+<table> <tr> <td><a name='SkMatrix_postSkew_2_kx'><code><strong>kx</strong></code></a></td>
+ <td>horizontal skew factor</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_postSkew_2_ky'><code><strong>ky</strong></code></a></td>
+ <td>vertical skew factor</td>
</tr>
</table>
@@ -2962,19 +3911,19 @@ vertical skew factor</td>
### See Also
-<a href="#SkMatrix_preSkew">preSkew</a><sup><a href="#SkMatrix_preSkew_2">[2]</a></sup> <a href="#SkMatrix_setSkew">setSkew</a><sup><a href="#SkMatrix_setSkew_2">[2]</a></sup>
+<a href='#SkMatrix_preSkew'>preSkew</a><sup><a href='#SkMatrix_preSkew_2'>[2]</a></sup> <a href='#SkMatrix_setSkew'>setSkew</a><sup><a href='#SkMatrix_setSkew_2'>[2]</a></sup>
---
-<a name="SkMatrix_postConcat"></a>
+<a name='SkMatrix_postConcat'></a>
## postConcat
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void postConcat(const SkMatrix& other)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_postConcat'>postConcat</a>(const <a href='#SkMatrix'>SkMatrix</a>& other)
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#Matrix">Matrix</a> <a href="#SkMatrix_postConcat_other">other</a> multiplied by <a href="#Matrix">Matrix</a>.
-This can be thought of mapping by <a href="#SkMatrix_postConcat_other">other</a> after applying <a href="#Matrix">Matrix</a>.
+Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_postConcat_other'>other</a> multiplied by <a href='#Matrix'>Matrix</a>.
+This can be thought of mapping by <a href='#SkMatrix_postConcat_other'>other</a> after applying <a href='#Matrix'>Matrix</a>.
Given:
@@ -2984,7 +3933,7 @@ Matrix = | M N O |, other = | D E F |
| P Q R | | G H I |
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
@@ -2994,8 +3943,8 @@ other * Matrix = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
### Parameters
-<table> <tr> <td><a name="SkMatrix_postConcat_other"> <code><strong>other </strong></code> </a></td> <td>
-<a href="#Matrix">Matrix</a> on left side of multiply expression</td>
+<table> <tr> <td><a name='SkMatrix_postConcat_other'><code><strong>other</strong></code></a></td>
+ <td><a href='#Matrix'>Matrix</a> on left side of multiply expression</td>
</tr>
</table>
@@ -3005,51 +3954,66 @@ other * Matrix = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
### See Also
-<a href="#SkMatrix_preConcat">preConcat</a> <a href="#SkMatrix_setConcat">setConcat</a> <a href="#SkMatrix_Concat">Concat</a>
+<a href='#SkMatrix_preConcat'>preConcat</a> <a href='#SkMatrix_setConcat'>setConcat</a> <a href='#SkMatrix_Concat'>Concat</a>
---
-## <a name="SkMatrix_ScaleToFit"></a> Enum SkMatrix::ScaleToFit
+## <a name='SkMatrix_ScaleToFit'>Enum SkMatrix::ScaleToFit</a>
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum <a href="#SkMatrix_ScaleToFit">ScaleToFit</a> {
- <a href="#SkMatrix_kFill_ScaleToFit">kFill ScaleToFit</a>,
- <a href="#SkMatrix_kStart_ScaleToFit">kStart ScaleToFit</a>,
- <a href="#SkMatrix_kCenter_ScaleToFit">kCenter ScaleToFit</a>,
- <a href="#SkMatrix_kEnd_ScaleToFit">kEnd ScaleToFit</a>,
+ enum <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> {
+ <a href='#SkMatrix_kFill_ScaleToFit'>kFill ScaleToFit</a>,
+ <a href='#SkMatrix_kStart_ScaleToFit'>kStart ScaleToFit</a>,
+ <a href='#SkMatrix_kCenter_ScaleToFit'>kCenter ScaleToFit</a>,
+ <a href='#SkMatrix_kEnd_ScaleToFit'>kEnd ScaleToFit</a>,
};
</pre>
-<a href="#SkMatrix_ScaleToFit">ScaleToFit</a> describes how <a href="#Matrix">Matrix</a> is constructed to map one <a href="SkRect_Reference#Rect">Rect</a> to another.
-<a href="#SkMatrix_ScaleToFit">ScaleToFit</a> may allow <a href="#Matrix">Matrix</a> to have unequal horizontal and vertical scaling,
-or may restrict <a href="#Matrix">Matrix</a> to square scaling. If restricted, <a href="#SkMatrix_ScaleToFit">ScaleToFit</a> specifies
-how <a href="#Matrix">Matrix</a> maps to the side or center of the destination <a href="SkRect_Reference#Rect">Rect</a>.
+<a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> describes how <a href='#Matrix'>Matrix</a> is constructed to map one <a href='SkRect_Reference#Rect'>Rect</a> to another.
+<a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> may allow <a href='#Matrix'>Matrix</a> to have unequal horizontal and vertical scaling,
+or may restrict <a href='#Matrix'>Matrix</a> to square scaling. If restricted, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> specifies
+how <a href='#Matrix'>Matrix</a> maps to the side or center of the destination <a href='SkRect_Reference#Rect'>Rect</a>.
### Constants
-<table>
- <tr>
- <td><a name="SkMatrix_kFill_ScaleToFit"> <code><strong>SkMatrix::kFill_ScaleToFit </strong></code> </a></td><td>0</td><td>Computes <a href="#Matrix">Matrix</a> that scales in x and y independently, so that source <a href="SkRect_Reference#Rect">Rect</a> is
-mapped to completely fill destination <a href="SkRect_Reference#Rect">Rect</a>. The aspect ratio of source <a href="SkRect_Reference#Rect">Rect</a>
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Const</th>
+<th style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>Value</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kFill_ScaleToFit'><code>SkMatrix::kFill_ScaleToFit</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+Computes <a href='#Matrix'>Matrix</a> that scales in x and y independently, so that source <a href='SkRect_Reference#Rect'>Rect</a> is
+mapped to completely fill destination <a href='SkRect_Reference#Rect'>Rect</a>. The aspect ratio of source <a href='SkRect_Reference#Rect'>Rect</a>
may change.
</td>
</tr>
<tr>
- <td><a name="SkMatrix_kStart_ScaleToFit"> <code><strong>SkMatrix::kStart_ScaleToFit </strong></code> </a></td><td>1</td><td>Computes <a href="#Matrix">Matrix</a> that maintains source <a href="SkRect_Reference#Rect">Rect</a> aspect ratio, mapping source <a href="SkRect_Reference#Rect">Rect</a>
-width or height to destination <a href="SkRect_Reference#Rect">Rect</a>. Aligns mapping to left and top edges
-of destination <a href="SkRect_Reference#Rect">Rect</a>.
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kStart_ScaleToFit'><code>SkMatrix::kStart_ScaleToFit</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+Computes <a href='#Matrix'>Matrix</a> that maintains source <a href='SkRect_Reference#Rect'>Rect</a> aspect ratio, mapping source <a href='SkRect_Reference#Rect'>Rect</a>
+width or height to destination <a href='SkRect_Reference#Rect'>Rect</a>. Aligns mapping to left and top edges
+of destination <a href='SkRect_Reference#Rect'>Rect</a>.
</td>
</tr>
- <tr>
- <td><a name="SkMatrix_kCenter_ScaleToFit"> <code><strong>SkMatrix::kCenter_ScaleToFit </strong></code> </a></td><td>2</td><td>Computes <a href="#Matrix">Matrix</a> that maintains source <a href="SkRect_Reference#Rect">Rect</a> aspect ratio, mapping source <a href="SkRect_Reference#Rect">Rect</a>
-width or height to destination <a href="SkRect_Reference#Rect">Rect</a>. Aligns mapping to center of destination
-<a href="SkRect_Reference#Rect">Rect</a>.
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kCenter_ScaleToFit'><code>SkMatrix::kCenter_ScaleToFit</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+Computes <a href='#Matrix'>Matrix</a> that maintains source <a href='SkRect_Reference#Rect'>Rect</a> aspect ratio, mapping source <a href='SkRect_Reference#Rect'>Rect</a>
+width or height to destination <a href='SkRect_Reference#Rect'>Rect</a>. Aligns mapping to center of destination
+<a href='SkRect_Reference#Rect'>Rect</a>.
</td>
</tr>
<tr>
- <td><a name="SkMatrix_kEnd_ScaleToFit"> <code><strong>SkMatrix::kEnd_ScaleToFit </strong></code> </a></td><td>3</td><td>Computes <a href="#Matrix">Matrix</a> that maintains source <a href="SkRect_Reference#Rect">Rect</a> aspect ratio, mapping source <a href="SkRect_Reference#Rect">Rect</a>
-width or height to destination <a href="SkRect_Reference#Rect">Rect</a>. Aligns mapping to right and bottom
-edges of destination <a href="SkRect_Reference#Rect">Rect</a>.
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kEnd_ScaleToFit'><code>SkMatrix::kEnd_ScaleToFit</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+Computes <a href='#Matrix'>Matrix</a> that maintains source <a href='SkRect_Reference#Rect'>Rect</a> aspect ratio, mapping source <a href='SkRect_Reference#Rect'>Rect</a>
+width or height to destination <a href='SkRect_Reference#Rect'>Rect</a>. Aligns mapping to right and bottom
+edges of destination <a href='SkRect_Reference#Rect'>Rect</a>.
</td>
</tr>
</table>
@@ -3060,21 +4024,19 @@ edges of destination <a href="SkRect_Reference#Rect">Rect</a>.
### See Also
-<a href="#SkMatrix_setRectToRect">setRectToRect</a> <a href="#SkMatrix_MakeRectToRect">MakeRectToRect</a> <a href="#SkMatrix_setPolyToPoly">setPolyToPoly</a>
-
-
+<a href='#SkMatrix_setRectToRect'>setRectToRect</a> <a href='#SkMatrix_MakeRectToRect'>MakeRectToRect</a> <a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a>
-<a name="SkMatrix_setRectToRect"></a>
+<a name='SkMatrix_setRectToRect'></a>
## setRectToRect
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool setRectToRect(const SkRect& src, const SkRect& dst, ScaleToFit stf)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_setRectToRect'>setRectToRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> stf)
</pre>
-Sets <a href="#Matrix">Matrix</a> to scale and translate <a href="#SkMatrix_setRectToRect_src">src</a> <a href="SkRect_Reference#Rect">Rect</a> to <a href="#SkMatrix_setRectToRect_dst">dst</a> <a href="SkRect_Reference#Rect">Rect</a>. <a href="#SkMatrix_setRectToRect_stf">stf</a> selects whether
-mapping completely fills <a href="#SkMatrix_setRectToRect_dst">dst</a> or preserves the aspect ratio, and how to align
-<a href="#SkMatrix_setRectToRect_src">src</a> within <a href="#SkMatrix_setRectToRect_dst">dst</a>. Returns false if <a href="#SkMatrix_setRectToRect_src">src</a> is empty, and sets <a href="#Matrix">Matrix</a> to identity.
-Returns true if <a href="#SkMatrix_setRectToRect_dst">dst</a> is empty, and sets <a href="#Matrix">Matrix</a> to:
+Sets <a href='#Matrix'>Matrix</a> to scale and translate <a href='#SkMatrix_setRectToRect_src'>src</a> <a href='SkRect_Reference#Rect'>Rect</a> to <a href='#SkMatrix_setRectToRect_dst'>dst</a> <a href='SkRect_Reference#Rect'>Rect</a>. <a href='#SkMatrix_setRectToRect_stf'>stf</a> selects whether
+mapping completely fills <a href='#SkMatrix_setRectToRect_dst'>dst</a> or preserves the aspect ratio, and how to align
+<a href='#SkMatrix_setRectToRect_src'>src</a> within <a href='#SkMatrix_setRectToRect_dst'>dst</a>. Returns false if <a href='#SkMatrix_setRectToRect_src'>src</a> is empty, and sets <a href='#Matrix'>Matrix</a> to identity.
+Returns true if <a href='#SkMatrix_setRectToRect_dst'>dst</a> is empty, and sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 0 0 0 |
@@ -3084,19 +4046,21 @@ Returns true if <a href="#SkMatrix_setRectToRect_dst">dst</a> is empty, and sets
### Parameters
-<table> <tr> <td><a name="SkMatrix_setRectToRect_src"> <code><strong>src </strong></code> </a></td> <td>
-<a href="SkRect_Reference#Rect">Rect</a> to map from</td>
- </tr> <tr> <td><a name="SkMatrix_setRectToRect_dst"> <code><strong>dst </strong></code> </a></td> <td>
-<a href="SkRect_Reference#Rect">Rect</a> to map to</td>
- </tr> <tr> <td><a name="SkMatrix_setRectToRect_stf"> <code><strong>stf </strong></code> </a></td> <td>
-one of: <a href="#SkMatrix_kFill_ScaleToFit">kFill ScaleToFit</a>, <a href="#SkMatrix_kStart_ScaleToFit">kStart ScaleToFit</a>,
-<a href="#SkMatrix_kCenter_ScaleToFit">kCenter ScaleToFit</a>, <a href="#SkMatrix_kEnd_ScaleToFit">kEnd ScaleToFit</a></td>
+<table> <tr> <td><a name='SkMatrix_setRectToRect_src'><code><strong>src</strong></code></a></td>
+ <td><a href='SkRect_Reference#Rect'>Rect</a> to map from</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setRectToRect_dst'><code><strong>dst</strong></code></a></td>
+ <td><a href='SkRect_Reference#Rect'>Rect</a> to map to</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setRectToRect_stf'><code><strong>stf</strong></code></a></td>
+ <td>one of: <a href='#SkMatrix_kFill_ScaleToFit'>kFill ScaleToFit</a>, <a href='#SkMatrix_kStart_ScaleToFit'>kStart ScaleToFit</a>,
+<a href='#SkMatrix_kCenter_ScaleToFit'>kCenter ScaleToFit</a>, <a href='#SkMatrix_kEnd_ScaleToFit'>kEnd ScaleToFit</a></td>
</tr>
</table>
### Return Value
-true if <a href="#Matrix">Matrix</a> can represent <a href="SkRect_Reference#Rect">Rect</a> mapping
+true if <a href='#Matrix'>Matrix</a> can represent <a href='SkRect_Reference#Rect'>Rect</a> mapping
### Example
@@ -3119,21 +4083,21 @@ src: 1, 2, 3, 4 dst: 5, 6, 8, 9 success: true
### See Also
-<a href="#SkMatrix_MakeRectToRect">MakeRectToRect</a> <a href="#SkMatrix_ScaleToFit">ScaleToFit</a> <a href="#SkMatrix_setPolyToPoly">setPolyToPoly</a> <a href="SkRect_Reference#SkRect_isEmpty">SkRect::isEmpty</a>
+<a href='#SkMatrix_MakeRectToRect'>MakeRectToRect</a> <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> <a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> <a href='SkRect_Reference#SkRect_isEmpty'>SkRect::isEmpty</a>
---
-<a name="SkMatrix_MakeRectToRect"></a>
+<a name='SkMatrix_MakeRectToRect'></a>
## MakeRectToRect
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-static SkMatrix MakeRectToRect(const SkRect& src, const SkRect& dst, ScaleToFit stf)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+static <a href='#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeRectToRect'>MakeRectToRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> stf)
</pre>
-Returns <a href="#Matrix">Matrix</a> set to scale and translate <a href="#SkMatrix_MakeRectToRect_src">src</a> <a href="SkRect_Reference#Rect">Rect</a> to <a href="#SkMatrix_MakeRectToRect_dst">dst</a> <a href="SkRect_Reference#Rect">Rect</a>. <a href="#SkMatrix_MakeRectToRect_stf">stf</a> selects
-whether mapping completely fills <a href="#SkMatrix_MakeRectToRect_dst">dst</a> or preserves the aspect ratio, and how to
-align <a href="#SkMatrix_MakeRectToRect_src">src</a> within <a href="#SkMatrix_MakeRectToRect_dst">dst</a>. Returns the identity <a href="#Matrix">Matrix</a> if <a href="#SkMatrix_MakeRectToRect_src">src</a> is empty. If <a href="#SkMatrix_MakeRectToRect_dst">dst</a> is
-empty, returns <a href="#Matrix">Matrix</a> set to:
+Returns <a href='#Matrix'>Matrix</a> set to scale and translate <a href='#SkMatrix_MakeRectToRect_src'>src</a> <a href='SkRect_Reference#Rect'>Rect</a> to <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> <a href='SkRect_Reference#Rect'>Rect</a>. <a href='#SkMatrix_MakeRectToRect_stf'>stf</a> selects
+whether mapping completely fills <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> or preserves the aspect ratio, and how to
+align <a href='#SkMatrix_MakeRectToRect_src'>src</a> within <a href='#SkMatrix_MakeRectToRect_dst'>dst</a>. Returns the identity <a href='#Matrix'>Matrix</a> if <a href='#SkMatrix_MakeRectToRect_src'>src</a> is empty. If <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> is
+empty, returns <a href='#Matrix'>Matrix</a> set to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 0 0 0 |
@@ -3143,19 +4107,21 @@ empty, returns <a href="#Matrix">Matrix</a> set to:
### Parameters
-<table> <tr> <td><a name="SkMatrix_MakeRectToRect_src"> <code><strong>src </strong></code> </a></td> <td>
-<a href="SkRect_Reference#Rect">Rect</a> to map from</td>
- </tr> <tr> <td><a name="SkMatrix_MakeRectToRect_dst"> <code><strong>dst </strong></code> </a></td> <td>
-<a href="SkRect_Reference#Rect">Rect</a> to map to</td>
- </tr> <tr> <td><a name="SkMatrix_MakeRectToRect_stf"> <code><strong>stf </strong></code> </a></td> <td>
-one of: <a href="#SkMatrix_kFill_ScaleToFit">kFill ScaleToFit</a>, <a href="#SkMatrix_kStart_ScaleToFit">kStart ScaleToFit</a>,
-<a href="#SkMatrix_kCenter_ScaleToFit">kCenter ScaleToFit</a>, <a href="#SkMatrix_kEnd_ScaleToFit">kEnd ScaleToFit</a></td>
+<table> <tr> <td><a name='SkMatrix_MakeRectToRect_src'><code><strong>src</strong></code></a></td>
+ <td><a href='SkRect_Reference#Rect'>Rect</a> to map from</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_MakeRectToRect_dst'><code><strong>dst</strong></code></a></td>
+ <td><a href='SkRect_Reference#Rect'>Rect</a> to map to</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_MakeRectToRect_stf'><code><strong>stf</strong></code></a></td>
+ <td>one of: <a href='#SkMatrix_kFill_ScaleToFit'>kFill ScaleToFit</a>, <a href='#SkMatrix_kStart_ScaleToFit'>kStart ScaleToFit</a>,
+<a href='#SkMatrix_kCenter_ScaleToFit'>kCenter ScaleToFit</a>, <a href='#SkMatrix_kEnd_ScaleToFit'>kEnd ScaleToFit</a></td>
</tr>
</table>
### Return Value
-<a href="#Matrix">Matrix</a> mapping <a href="#SkMatrix_MakeRectToRect_src">src</a> to <a href="#SkMatrix_MakeRectToRect_dst">dst</a>
+<a href='#Matrix'>Matrix</a> mapping <a href='#SkMatrix_MakeRectToRect_src'>src</a> to <a href='#SkMatrix_MakeRectToRect_dst'>dst</a>
### Example
@@ -3178,39 +4144,41 @@ src: 1, 2, 3, 4 dst: 5, 6, 8, 9
### See Also
-<a href="#SkMatrix_setRectToRect">setRectToRect</a> <a href="#SkMatrix_ScaleToFit">ScaleToFit</a> <a href="#SkMatrix_setPolyToPoly">setPolyToPoly</a> <a href="SkRect_Reference#SkRect_isEmpty">SkRect::isEmpty</a>
+<a href='#SkMatrix_setRectToRect'>setRectToRect</a> <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> <a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> <a href='SkRect_Reference#SkRect_isEmpty'>SkRect::isEmpty</a>
---
-<a name="SkMatrix_setPolyToPoly"></a>
+<a name='SkMatrix_setPolyToPoly'></a>
## setPolyToPoly
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool setPolyToPoly(const SkPoint src[], const SkPoint dst[], int count)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> src[], const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[], int count)
</pre>
-Sets <a href="#Matrix">Matrix</a> to map <a href="#SkMatrix_setPolyToPoly_src">src</a> to <a href="#SkMatrix_setPolyToPoly_dst">dst</a>. <a href="#SkMatrix_setPolyToPoly_count">count</a> must be zero or greater, and four or less.
+Sets <a href='#Matrix'>Matrix</a> to map <a href='#SkMatrix_setPolyToPoly_src'>src</a> to <a href='#SkMatrix_setPolyToPoly_dst'>dst</a>. <a href='#SkMatrix_setPolyToPoly_count'>count</a> must be zero or greater, and four or less.
-If <a href="#SkMatrix_setPolyToPoly_count">count</a> is zero, sets <a href="#Matrix">Matrix</a> to identity and returns true.
-If <a href="#SkMatrix_setPolyToPoly_count">count</a> is one, sets <a href="#Matrix">Matrix</a> to translate and returns true.
-If <a href="#SkMatrix_setPolyToPoly_count">count</a> is two or more, sets <a href="#Matrix">Matrix</a> to map <a href="SkPoint_Reference#Point">Points</a> if possible; returns false
-if <a href="#Matrix">Matrix</a> cannot be constructed. If <a href="#SkMatrix_setPolyToPoly_count">count</a> is four, <a href="#Matrix">Matrix</a> may include
+If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is zero, sets <a href='#Matrix'>Matrix</a> to identity and returns true.
+If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is one, sets <a href='#Matrix'>Matrix</a> to translate and returns true.
+If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is two or more, sets <a href='#Matrix'>Matrix</a> to map <a href='SkPoint_Reference#Point'>Points</a> if possible; returns false
+if <a href='#Matrix'>Matrix</a> cannot be constructed. If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is four, <a href='#Matrix'>Matrix</a> may include
perspective.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setPolyToPoly_src"> <code><strong>src </strong></code> </a></td> <td>
-<a href="SkPoint_Reference#Point">Points</a> to map from</td>
- </tr> <tr> <td><a name="SkMatrix_setPolyToPoly_dst"> <code><strong>dst </strong></code> </a></td> <td>
-<a href="SkPoint_Reference#Point">Points</a> to map to</td>
- </tr> <tr> <td><a name="SkMatrix_setPolyToPoly_count"> <code><strong>count </strong></code> </a></td> <td>
-number of <a href="SkPoint_Reference#Point">Points</a> in <a href="#SkMatrix_setPolyToPoly_src">src</a> and <a href="#SkMatrix_setPolyToPoly_dst">dst</a></td>
+<table> <tr> <td><a name='SkMatrix_setPolyToPoly_src'><code><strong>src</strong></code></a></td>
+ <td><a href='SkPoint_Reference#Point'>Points</a> to map from</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setPolyToPoly_dst'><code><strong>dst</strong></code></a></td>
+ <td><a href='SkPoint_Reference#Point'>Points</a> to map to</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setPolyToPoly_count'><code><strong>count</strong></code></a></td>
+ <td>number of <a href='SkPoint_Reference#Point'>Points</a> in <a href='#SkMatrix_setPolyToPoly_src'>src</a> and <a href='#SkMatrix_setPolyToPoly_dst'>dst</a></td>
</tr>
</table>
### Return Value
-true if <a href="#Matrix">Matrix</a> was constructed successfully
+true if <a href='#Matrix'>Matrix</a> was constructed successfully
### Example
@@ -3218,32 +4186,32 @@ true if <a href="#Matrix">Matrix</a> was constructed successfully
### See Also
-<a href="#SkMatrix_setRectToRect">setRectToRect</a> <a href="#SkMatrix_MakeRectToRect">MakeRectToRect</a>
+<a href='#SkMatrix_setRectToRect'>setRectToRect</a> <a href='#SkMatrix_MakeRectToRect'>MakeRectToRect</a>
---
-<a name="SkMatrix_invert"></a>
+<a name='SkMatrix_invert'></a>
## invert
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool SK_WARN_UNUSED_RESULT invert(SkMatrix* inverse) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool SK_WARN_UNUSED_RESULT <a href='#SkMatrix_invert'>invert</a>(<a href='#SkMatrix'>SkMatrix</a>* inverse) const
</pre>
-Sets <a href="#SkMatrix_invert_inverse">inverse</a> to reciprocal matrix, returning true if <a href="#Matrix">Matrix</a> can be inverted.
-Geometrically, if <a href="#Matrix">Matrix</a> maps from source to destination, <a href="#SkMatrix_invert_inverse">inverse</a> <a href="#Matrix">Matrix</a>
-maps from destination to source. If <a href="#Matrix">Matrix</a> can not be inverted, <a href="#SkMatrix_invert_inverse">inverse</a> is
+Sets <a href='#SkMatrix_invert_inverse'>inverse</a> to reciprocal matrix, returning true if <a href='#Matrix'>Matrix</a> can be inverted.
+Geometrically, if <a href='#Matrix'>Matrix</a> maps from source to destination, <a href='#SkMatrix_invert_inverse'>inverse</a> <a href='#Matrix'>Matrix</a>
+maps from destination to source. If <a href='#Matrix'>Matrix</a> can not be inverted, <a href='#SkMatrix_invert_inverse'>inverse</a> is
unchanged.
### Parameters
-<table> <tr> <td><a name="SkMatrix_invert_inverse"> <code><strong>inverse </strong></code> </a></td> <td>
-storage for inverted <a href="#Matrix">Matrix</a>; may be nullptr</td>
+<table> <tr> <td><a name='SkMatrix_invert_inverse'><code><strong>inverse</strong></code></a></td>
+ <td>storage for inverted <a href='#Matrix'>Matrix</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href="#Matrix">Matrix</a> can be inverted
+true if <a href='#Matrix'>Matrix</a> can be inverted
### Example
@@ -3251,19 +4219,19 @@ true if <a href="#Matrix">Matrix</a> can be inverted
### See Also
-<a href="#SkMatrix_Concat">Concat</a>
+<a href='#SkMatrix_Concat'>Concat</a>
---
-<a name="SkMatrix_SetAffineIdentity"></a>
+<a name='SkMatrix_SetAffineIdentity'></a>
## SetAffineIdentity
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-static void SetAffineIdentity(SkScalar affine[6])
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+static void <a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</a>(<a href='undocumented#SkScalar'>SkScalar</a> affine[6])
</pre>
-Fills <a href="#SkMatrix_SetAffineIdentity_affine">affine</a> with identity values in column major order.
-Sets <a href="#SkMatrix_SetAffineIdentity_affine">affine</a> to:
+Fills <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> with identity values in column major order.
+Sets <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 0 |
@@ -3274,8 +4242,8 @@ Affine 3x2 matrices in column major order are used by OpenGL and XPS.
### Parameters
-<table> <tr> <td><a name="SkMatrix_SetAffineIdentity_affine"> <code><strong>affine </strong></code> </a></td> <td>
-storage for 3x2 <a href="#SkMatrix_SetAffineIdentity_affine">affine</a> matrix</td>
+<table> <tr> <td><a name='SkMatrix_SetAffineIdentity_affine'><code><strong>affine</strong></code></a></td>
+ <td>storage for 3x2 <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> matrix</td>
</tr>
</table>
@@ -3293,36 +4261,36 @@ ScaleX: 1 SkewY: 0 SkewX: 0 ScaleY: 1 TransX: 0 TransY: 0
### See Also
-<a href="#SkMatrix_setAffine">setAffine</a> <a href="#SkMatrix_asAffine">asAffine</a>
+<a href='#SkMatrix_setAffine'>setAffine</a> <a href='#SkMatrix_asAffine'>asAffine</a>
---
-<a name="SkMatrix_asAffine"></a>
+<a name='SkMatrix_asAffine'></a>
## asAffine
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool SK_WARN_UNUSED_RESULT asAffine(SkScalar affine[6]) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool SK_WARN_UNUSED_RESULT <a href='#SkMatrix_asAffine'>asAffine</a>(<a href='undocumented#SkScalar'>SkScalar</a> affine[6]) const
</pre>
-Fills <a href="#SkMatrix_asAffine_affine">affine</a> in column major order. Sets <a href="#SkMatrix_asAffine_affine">affine</a> to:
+Fills <a href='#SkMatrix_asAffine_affine'>affine</a> in column major order. Sets <a href='#SkMatrix_asAffine_affine'>affine</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| scale-x skew-x translate-x |
| skew-y scale-y translate-y |
</pre>
-If <a href="#Matrix">Matrix</a> contains perspective, returns false and leaves <a href="#SkMatrix_asAffine_affine">affine</a> unchanged.
+If <a href='#Matrix'>Matrix</a> contains perspective, returns false and leaves <a href='#SkMatrix_asAffine_affine'>affine</a> unchanged.
### Parameters
-<table> <tr> <td><a name="SkMatrix_asAffine_affine"> <code><strong>affine </strong></code> </a></td> <td>
-storage for 3x2 <a href="#SkMatrix_asAffine_affine">affine</a> matrix; may be nullptr</td>
+<table> <tr> <td><a name='SkMatrix_asAffine_affine'><code><strong>affine</strong></code></a></td>
+ <td>storage for 3x2 <a href='#SkMatrix_asAffine_affine'>affine</a> matrix; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href="#Matrix">Matrix</a> does not contain perspective
+true if <a href='#Matrix'>Matrix</a> does not contain perspective
### Example
@@ -3338,18 +4306,18 @@ ScaleX: 2 SkewY: 5 SkewX: 3 ScaleY: 6 TransX: 4 TransY: 7
### See Also
-<a href="#SkMatrix_setAffine">setAffine</a> <a href="#SkMatrix_SetAffineIdentity">SetAffineIdentity</a>
+<a href='#SkMatrix_setAffine'>setAffine</a> <a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</a>
---
-<a name="SkMatrix_setAffine"></a>
+<a name='SkMatrix_setAffine'></a>
## setAffine
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setAffine(const SkScalar affine[6])
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setAffine'>setAffine</a>(const <a href='undocumented#SkScalar'>SkScalar</a> affine[6])
</pre>
-Sets <a href="#Matrix">Matrix</a> to <a href="#SkMatrix_setAffine_affine">affine</a> values, passed in column major order. Given <a href="#SkMatrix_setAffine_affine">affine</a>,
+Sets <a href='#Matrix'>Matrix</a> to <a href='#SkMatrix_setAffine_affine'>affine</a> values, passed in column major order. Given <a href='#SkMatrix_setAffine_affine'>affine</a>,
column, then row, as:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
@@ -3357,7 +4325,7 @@ column, then row, as:
| skew-y scale-y translate-y |
</pre>
-<a href="#Matrix">Matrix</a> is set, row, then column, to:
+<a href='#Matrix'>Matrix</a> is set, row, then column, to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| scale-x skew-x translate-x |
@@ -3367,8 +4335,8 @@ column, then row, as:
### Parameters
-<table> <tr> <td><a name="SkMatrix_setAffine_affine"> <code><strong>affine </strong></code> </a></td> <td>
-3x2 <a href="#SkMatrix_setAffine_affine">affine</a> matrix</td>
+<table> <tr> <td><a name='SkMatrix_setAffine_affine'><code><strong>affine</strong></code></a></td>
+ <td>3x2 <a href='#SkMatrix_setAffine_affine'>affine</a> matrix</td>
</tr>
</table>
@@ -3387,43 +4355,104 @@ ScaleX: 2 SkewY: 5 SkewX: 3 ScaleY: 6 TransX: 4 TransY: 7
### See Also
-<a href="#SkMatrix_asAffine">asAffine</a> <a href="#SkMatrix_SetAffineIdentity">SetAffineIdentity</a>
+<a href='#SkMatrix_asAffine'>asAffine</a> <a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</a>
---
-## <a name="Transform"></a> Transform
-
-| name | description |
-| --- | --- |
-| <a href="#SkMatrix_mapHomogeneousPoints">mapHomogeneousPoints</a> | maps <a href="undocumented#Point3">Point3</a> array |
-| <a href="#SkMatrix_mapPoints">mapPoints</a> | maps <a href="SkPoint_Reference#Point">Point</a> array |
-| | <a href="#SkMatrix_mapPoints">mapPoints(SkPoint dst[], const SkPoint src[], int count)</a> const |
-| | <a href="#SkMatrix_mapPoints_2">mapPoints(SkPoint pts[], int count)</a> const |
-| <a href="#SkMatrix_mapRadius">mapRadius</a> | returns mean radius of mapped <a href="undocumented#Circle">Circle</a> |
-| <a href="#SkMatrix_mapRect">mapRect</a> | returns bounds of mapped <a href="SkRect_Reference#Rect">Rect</a> |
-| | <a href="#SkMatrix_mapRect">mapRect(SkRect* dst, const SkRect& src)</a> const |
-| | <a href="#SkMatrix_mapRect_2">mapRect(SkRect* rect)</a> const |
-| <a href="#SkMatrix_mapRectScaleTranslate">mapRectScaleTranslate</a> | returns bounds of mapped <a href="SkRect_Reference#Rect">Rect</a> |
-| <a href="#SkMatrix_mapRectToQuad">mapRectToQuad</a> | maps <a href="SkRect_Reference#Rect">Rect</a> to <a href="SkPoint_Reference#Point">Point</a> array |
-| <a href="#SkMatrix_mapVector">mapVector</a> | maps <a href="SkPoint_Reference#Vector">Vector</a> |
-| | <a href="#SkMatrix_mapVector">mapVector(SkScalar dx, SkScalar dy, SkVector* result)</a> const |
-| | <a href="#SkMatrix_mapVector_2">mapVector(SkScalar dx, SkScalar dy)</a> const |
-| <a href="#SkMatrix_mapVectors">mapVectors</a> | maps <a href="SkPoint_Reference#Vector">Vector</a> array |
-| | <a href="#SkMatrix_mapVectors">mapVectors(SkVector dst[], const SkVector src[], int count)</a> const |
-| | <a href="#SkMatrix_mapVectors_2">mapVectors(SkVector vecs[], int count)</a> const |
-| <a href="#SkMatrix_mapXY">mapXY</a> | maps <a href="SkPoint_Reference#Point">Point</a> |
-| | <a href="#SkMatrix_mapXY">mapXY(SkScalar x, SkScalar y, SkPoint* result)</a> const |
-| | <a href="#SkMatrix_mapXY_2">mapXY(SkScalar x, SkScalar y)</a> const |
-
-<a name="SkMatrix_mapPoints"></a>
+## <a name='Transform'>Transform</a>
+
+
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>maps <a href='undocumented#Point3'>Point3</a> array</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapPoints'>mapPoints</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>maps <a href='SkPoint_Reference#Point'>Point</a> array</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapPoints'>mapPoints(SkPoint dst[], const SkPoint src[], int count)</a> const</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapPoints_2'>mapPoints(SkPoint pts[], int count)</a> const</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapRadius'>mapRadius</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns mean radius of mapped <a href='undocumented#Circle'>Circle</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapRect'>mapRect</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns bounds of mapped <a href='SkRect_Reference#Rect'>Rect</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapRect'>mapRect(SkRect* dst, const SkRect& src)</a> const</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapRect_2'>mapRect(SkRect* rect)</a> const</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTranslate</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns bounds of mapped <a href='SkRect_Reference#Rect'>Rect</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>maps <a href='SkRect_Reference#Rect'>Rect</a> to <a href='SkPoint_Reference#Point'>Point</a> array</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapVector'>mapVector</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>maps <a href='SkPoint_Reference#Vector'>Vector</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapVector'>mapVector(SkScalar dx, SkScalar dy, SkVector* result)</a> const</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapVector_2'>mapVector(SkScalar dx, SkScalar dy)</a> const</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapVectors'>mapVectors</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>maps <a href='SkPoint_Reference#Vector'>Vector</a> array</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapVectors'>mapVectors(SkVector dst[], const SkVector src[], int count)</a> const</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapVectors_2'>mapVectors(SkVector vecs[], int count)</a> const</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapXY'>mapXY</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>maps <a href='SkPoint_Reference#Point'>Point</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapXY'>mapXY(SkScalar x, SkScalar y, SkPoint* result)</a> const</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_mapXY_2'>mapXY(SkScalar x, SkScalar y)</a> const</td>
+ </tr>
+</table>
+
+
+<a name='SkMatrix_mapPoints'></a>
## mapPoints
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void mapPoints(SkPoint dst[], const SkPoint src[], int count) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[], const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> src[], int count) const
</pre>
-Maps <a href="#SkMatrix_mapPoints_src">src</a> <a href="SkPoint_Reference#Point">Point</a> array of length <a href="#SkMatrix_mapPoints_count">count</a> to <a href="#SkMatrix_mapPoints_dst">dst</a> <a href="SkPoint_Reference#Point">Point</a> array of equal or greater
-length. <a href="SkPoint_Reference#Point">Points</a> are mapped by multiplying each <a href="SkPoint_Reference#Point">Point</a> by <a href="#Matrix">Matrix</a>. Given:
+Maps <a href='#SkMatrix_mapPoints_src'>src</a> <a href='SkPoint_Reference#Point'>Point</a> array of length <a href='#SkMatrix_mapPoints_count'>count</a> to <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPoint_Reference#Point'>Point</a> array of equal or greater
+length. <a href='SkPoint_Reference#Point'>Points</a> are mapped by multiplying each <a href='SkPoint_Reference#Point'>Point</a> by <a href='#Matrix'>Matrix</a>. Given:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | x |
@@ -3440,7 +4469,7 @@ for (i = 0; i < count; ++i) {
}
</pre>
-each <a href="#SkMatrix_mapPoints_dst">dst</a> <a href="SkPoint_Reference#Point">Point</a> is computed as:
+each <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPoint_Reference#Point'>Point</a> is computed as:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
|A B C| |x| Ax+By+C Dx+Ey+F
@@ -3448,16 +4477,18 @@ Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
|G H I| |1| Gx+Hy+I Gx+Hy+I
</pre>
-<a href="#SkMatrix_mapPoints_src">src</a> and <a href="#SkMatrix_mapPoints_dst">dst</a> may point to the same storage.
+<a href='#SkMatrix_mapPoints_src'>src</a> and <a href='#SkMatrix_mapPoints_dst'>dst</a> may point to the same storage.
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapPoints_dst"> <code><strong>dst </strong></code> </a></td> <td>
-storage for mapped <a href="SkPoint_Reference#Point">Points</a></td>
- </tr> <tr> <td><a name="SkMatrix_mapPoints_src"> <code><strong>src </strong></code> </a></td> <td>
-<a href="SkPoint_Reference#Point">Points</a> to transform</td>
- </tr> <tr> <td><a name="SkMatrix_mapPoints_count"> <code><strong>count </strong></code> </a></td> <td>
-number of <a href="SkPoint_Reference#Point">Points</a> to transform</td>
+<table> <tr> <td><a name='SkMatrix_mapPoints_dst'><code><strong>dst</strong></code></a></td>
+ <td>storage for mapped <a href='SkPoint_Reference#Point'>Points</a></td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapPoints_src'><code><strong>src</strong></code></a></td>
+ <td><a href='SkPoint_Reference#Point'>Points</a> to transform</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapPoints_count'><code><strong>count</strong></code></a></td>
+ <td>number of <a href='SkPoint_Reference#Point'>Points</a> to transform</td>
</tr>
</table>
@@ -3467,18 +4498,18 @@ number of <a href="SkPoint_Reference#Point">Points</a> to transform</td>
### See Also
-<a href="#SkMatrix_mapXY">mapXY</a><sup><a href="#SkMatrix_mapXY_2">[2]</a></sup> <a href="#SkMatrix_mapHomogeneousPoints">mapHomogeneousPoints</a> <a href="#SkMatrix_mapVectors">mapVectors</a><sup><a href="#SkMatrix_mapVectors_2">[2]</a></sup>
+<a href='#SkMatrix_mapXY'>mapXY</a><sup><a href='#SkMatrix_mapXY_2'>[2]</a></sup> <a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</a> <a href='#SkMatrix_mapVectors'>mapVectors</a><sup><a href='#SkMatrix_mapVectors_2'>[2]</a></sup>
---
-<a name="SkMatrix_mapPoints_2"></a>
+<a name='SkMatrix_mapPoints_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void mapPoints(SkPoint pts[], int count) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count) const
</pre>
-Maps <a href="#SkMatrix_mapPoints_2_pts">pts</a> <a href="SkPoint_Reference#Point">Point</a> array of length <a href="#SkMatrix_mapPoints_2_count">count</a> in place. <a href="SkPoint_Reference#Point">Points</a> are mapped by multiplying
-each <a href="SkPoint_Reference#Point">Point</a> by <a href="#Matrix">Matrix</a>. Given:
+Maps <a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPoint_Reference#Point'>Point</a> array of length <a href='#SkMatrix_mapPoints_2_count'>count</a> in place. <a href='SkPoint_Reference#Point'>Points</a> are mapped by multiplying
+each <a href='SkPoint_Reference#Point'>Point</a> by <a href='#Matrix'>Matrix</a>. Given:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | x |
@@ -3495,7 +4526,7 @@ for (i = 0; i < count; ++i) {
}
</pre>
-each resulting <a href="#SkMatrix_mapPoints_2_pts">pts</a> <a href="SkPoint_Reference#Point">Point</a> is computed as:
+each resulting <a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPoint_Reference#Point'>Point</a> is computed as:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
|A B C| |x| Ax+By+C Dx+Ey+F
@@ -3505,10 +4536,11 @@ Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapPoints_2_pts"> <code><strong>pts </strong></code> </a></td> <td>
-storage for mapped <a href="SkPoint_Reference#Point">Points</a></td>
- </tr> <tr> <td><a name="SkMatrix_mapPoints_2_count"> <code><strong>count </strong></code> </a></td> <td>
-number of <a href="SkPoint_Reference#Point">Points</a> to transform</td>
+<table> <tr> <td><a name='SkMatrix_mapPoints_2_pts'><code><strong>pts</strong></code></a></td>
+ <td>storage for mapped <a href='SkPoint_Reference#Point'>Points</a></td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapPoints_2_count'><code><strong>count</strong></code></a></td>
+ <td>number of <a href='SkPoint_Reference#Point'>Points</a> to transform</td>
</tr>
</table>
@@ -3518,19 +4550,19 @@ number of <a href="SkPoint_Reference#Point">Points</a> to transform</td>
### See Also
-<a href="#SkMatrix_mapXY">mapXY</a><sup><a href="#SkMatrix_mapXY_2">[2]</a></sup> <a href="#SkMatrix_mapHomogeneousPoints">mapHomogeneousPoints</a> <a href="#SkMatrix_mapVectors">mapVectors</a><sup><a href="#SkMatrix_mapVectors_2">[2]</a></sup>
+<a href='#SkMatrix_mapXY'>mapXY</a><sup><a href='#SkMatrix_mapXY_2'>[2]</a></sup> <a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</a> <a href='#SkMatrix_mapVectors'>mapVectors</a><sup><a href='#SkMatrix_mapVectors_2'>[2]</a></sup>
---
-<a name="SkMatrix_mapHomogeneousPoints"></a>
+<a name='SkMatrix_mapHomogeneousPoints'></a>
## mapHomogeneousPoints
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void mapHomogeneousPoints(SkPoint3 dst[], const SkPoint3 src[], int count) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</a>(<a href='undocumented#SkPoint3'>SkPoint3</a> dst[], const <a href='undocumented#SkPoint3'>SkPoint3</a> src[], int count) const
</pre>
-Maps <a href="#SkMatrix_mapHomogeneousPoints_src">src</a> <a href="undocumented#Point3">Point3</a> array of length <a href="#SkMatrix_mapHomogeneousPoints_count">count</a> to <a href="#SkMatrix_mapHomogeneousPoints_dst">dst</a> <a href="undocumented#Point3">Point3</a> array, which must of length <a href="#SkMatrix_mapHomogeneousPoints_count">count</a> or
-greater. <a href="undocumented#Point3">Point3</a> array is mapped by multiplying each <a href="undocumented#Point3">Point3</a> by <a href="#Matrix">Matrix</a>. Given:
+Maps <a href='#SkMatrix_mapHomogeneousPoints_src'>src</a> <a href='undocumented#Point3'>Point3</a> array of length <a href='#SkMatrix_mapHomogeneousPoints_count'>count</a> to <a href='#SkMatrix_mapHomogeneousPoints_dst'>dst</a> <a href='undocumented#Point3'>Point3</a> array, which must of length <a href='#SkMatrix_mapHomogeneousPoints_count'>count</a> or
+greater. <a href='undocumented#Point3'>Point3</a> array is mapped by multiplying each <a href='undocumented#Point3'>Point3</a> by <a href='#Matrix'>Matrix</a>. Given:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | x |
@@ -3538,7 +4570,7 @@ Matrix = | D E F |, src = | y |
| G H I | | z |
</pre>
-each resulting <a href="#SkMatrix_mapHomogeneousPoints_dst">dst</a> <a href="SkPoint_Reference#Point">Point</a> is computed as:
+each resulting <a href='#SkMatrix_mapHomogeneousPoints_dst'>dst</a> <a href='SkPoint_Reference#Point'>Point</a> is computed as:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
|A B C| |x|
@@ -3548,12 +4580,14 @@ Matrix * src = |D E F| |y| = |Ax+By+Cz Dx+Ey+Fz Gx+Hy+Iz|
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapHomogeneousPoints_dst"> <code><strong>dst </strong></code> </a></td> <td>
-storage for mapped <a href="undocumented#Point3">Point3</a> array</td>
- </tr> <tr> <td><a name="SkMatrix_mapHomogeneousPoints_src"> <code><strong>src </strong></code> </a></td> <td>
-<a href="undocumented#Point3">Point3</a> array to transform</td>
- </tr> <tr> <td><a name="SkMatrix_mapHomogeneousPoints_count"> <code><strong>count </strong></code> </a></td> <td>
-items in <a href="undocumented#Point3">Point3</a> array to transform</td>
+<table> <tr> <td><a name='SkMatrix_mapHomogeneousPoints_dst'><code><strong>dst</strong></code></a></td>
+ <td>storage for mapped <a href='undocumented#Point3'>Point3</a> array</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapHomogeneousPoints_src'><code><strong>src</strong></code></a></td>
+ <td><a href='undocumented#Point3'>Point3</a> array to transform</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapHomogeneousPoints_count'><code><strong>count</strong></code></a></td>
+ <td>items in <a href='undocumented#Point3'>Point3</a> array to transform</td>
</tr>
</table>
@@ -3563,18 +4597,18 @@ items in <a href="undocumented#Point3">Point3</a> array to transform</td>
### See Also
-<a href="#SkMatrix_mapPoints">mapPoints</a><sup><a href="#SkMatrix_mapPoints_2">[2]</a></sup> <a href="#SkMatrix_mapXY">mapXY</a><sup><a href="#SkMatrix_mapXY_2">[2]</a></sup> <a href="#SkMatrix_mapVectors">mapVectors</a><sup><a href="#SkMatrix_mapVectors_2">[2]</a></sup>
+<a href='#SkMatrix_mapPoints'>mapPoints</a><sup><a href='#SkMatrix_mapPoints_2'>[2]</a></sup> <a href='#SkMatrix_mapXY'>mapXY</a><sup><a href='#SkMatrix_mapXY_2'>[2]</a></sup> <a href='#SkMatrix_mapVectors'>mapVectors</a><sup><a href='#SkMatrix_mapVectors_2'>[2]</a></sup>
---
-<a name="SkMatrix_mapXY"></a>
+<a name='SkMatrix_mapXY'></a>
## mapXY
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void mapXY(SkScalar x, SkScalar y, SkPoint* result) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>* result) const
</pre>
-Maps <a href="SkPoint_Reference#Point">Point</a> (<a href="#SkMatrix_mapXY_x">x</a>, <a href="#SkMatrix_mapXY_y">y</a>) to <a href="#SkMatrix_mapXY_result">result</a>. <a href="SkPoint_Reference#Point">Point</a> is mapped by multiplying by <a href="#Matrix">Matrix</a>. Given:
+Maps <a href='SkPoint_Reference#Point'>Point</a> (<a href='#SkMatrix_mapXY_x'>x</a>, <a href='#SkMatrix_mapXY_y'>y</a>) to <a href='#SkMatrix_mapXY_result'>result</a>. <a href='SkPoint_Reference#Point'>Point</a> is mapped by multiplying by <a href='#Matrix'>Matrix</a>. Given:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | x |
@@ -3582,7 +4616,7 @@ Matrix = | D E F |, pt = | y |
| G H I | | 1 |
</pre>
-<a href="#SkMatrix_mapXY_result">result</a> is computed as:
+<a href='#SkMatrix_mapXY_result'>result</a> is computed as:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
|A B C| |x| Ax+By+C Dx+Ey+F
@@ -3592,12 +4626,14 @@ Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapXY_x"> <code><strong>x </strong></code> </a></td> <td>
-<a href="#SkMatrix_mapXY_x">x</a>-coordinate of <a href="SkPoint_Reference#Point">Point</a> to map</td>
- </tr> <tr> <td><a name="SkMatrix_mapXY_y"> <code><strong>y </strong></code> </a></td> <td>
-<a href="#SkMatrix_mapXY_y">y</a>-coordinate of <a href="SkPoint_Reference#Point">Point</a> to map</td>
- </tr> <tr> <td><a name="SkMatrix_mapXY_result"> <code><strong>result </strong></code> </a></td> <td>
-storage for mapped <a href="SkPoint_Reference#Point">Point</a></td>
+<table> <tr> <td><a name='SkMatrix_mapXY_x'><code><strong>x</strong></code></a></td>
+ <td><a href='#SkMatrix_mapXY_x'>x</a>-coordinate of <a href='SkPoint_Reference#Point'>Point</a> to map</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapXY_y'><code><strong>y</strong></code></a></td>
+ <td><a href='#SkMatrix_mapXY_y'>y</a>-coordinate of <a href='SkPoint_Reference#Point'>Point</a> to map</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapXY_result'><code><strong>result</strong></code></a></td>
+ <td>storage for mapped <a href='SkPoint_Reference#Point'>Point</a></td>
</tr>
</table>
@@ -3607,17 +4643,17 @@ storage for mapped <a href="SkPoint_Reference#Point">Point</a></td>
### See Also
-<a href="#SkMatrix_mapPoints">mapPoints</a><sup><a href="#SkMatrix_mapPoints_2">[2]</a></sup> <a href="#SkMatrix_mapVectors">mapVectors</a><sup><a href="#SkMatrix_mapVectors_2">[2]</a></sup>
+<a href='#SkMatrix_mapPoints'>mapPoints</a><sup><a href='#SkMatrix_mapPoints_2'>[2]</a></sup> <a href='#SkMatrix_mapVectors'>mapVectors</a><sup><a href='#SkMatrix_mapVectors_2'>[2]</a></sup>
---
-<a name="SkMatrix_mapXY_2"></a>
+<a name='SkMatrix_mapXY_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkPoint mapXY(SkScalar x, SkScalar y) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const
</pre>
-Returns <a href="SkPoint_Reference#Point">Point</a> (<a href="#SkMatrix_mapXY_2_x">x</a>, <a href="#SkMatrix_mapXY_2_y">y</a>) multiplied by <a href="#Matrix">Matrix</a>. Given:
+Returns <a href='SkPoint_Reference#Point'>Point</a> (<a href='#SkMatrix_mapXY_2_x'>x</a>, <a href='#SkMatrix_mapXY_2_y'>y</a>) multiplied by <a href='#Matrix'>Matrix</a>. Given:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | x |
@@ -3635,16 +4671,17 @@ Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapXY_2_x"> <code><strong>x </strong></code> </a></td> <td>
-<a href="#SkMatrix_mapXY_2_x">x</a>-coordinate of <a href="SkPoint_Reference#Point">Point</a> to map</td>
- </tr> <tr> <td><a name="SkMatrix_mapXY_2_y"> <code><strong>y </strong></code> </a></td> <td>
-<a href="#SkMatrix_mapXY_2_y">y</a>-coordinate of <a href="SkPoint_Reference#Point">Point</a> to map</td>
+<table> <tr> <td><a name='SkMatrix_mapXY_2_x'><code><strong>x</strong></code></a></td>
+ <td><a href='#SkMatrix_mapXY_2_x'>x</a>-coordinate of <a href='SkPoint_Reference#Point'>Point</a> to map</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapXY_2_y'><code><strong>y</strong></code></a></td>
+ <td><a href='#SkMatrix_mapXY_2_y'>y</a>-coordinate of <a href='SkPoint_Reference#Point'>Point</a> to map</td>
</tr>
</table>
### Return Value
-mapped <a href="SkPoint_Reference#Point">Point</a>
+mapped <a href='SkPoint_Reference#Point'>Point</a>
### Example
@@ -3652,20 +4689,20 @@ mapped <a href="SkPoint_Reference#Point">Point</a>
### See Also
-<a href="#SkMatrix_mapPoints">mapPoints</a><sup><a href="#SkMatrix_mapPoints_2">[2]</a></sup> <a href="#SkMatrix_mapVectors">mapVectors</a><sup><a href="#SkMatrix_mapVectors_2">[2]</a></sup>
+<a href='#SkMatrix_mapPoints'>mapPoints</a><sup><a href='#SkMatrix_mapPoints_2'>[2]</a></sup> <a href='#SkMatrix_mapVectors'>mapVectors</a><sup><a href='#SkMatrix_mapVectors_2'>[2]</a></sup>
---
-<a name="SkMatrix_mapVectors"></a>
+<a name='SkMatrix_mapVectors'></a>
## mapVectors
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void mapVectors(SkVector dst[], const SkVector src[], int count) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> dst[], const <a href='SkPoint_Reference#SkVector'>SkVector</a> src[], int count) const
</pre>
-Maps <a href="#SkMatrix_mapVectors_src">src</a> <a href="SkPoint_Reference#Vector">Vector</a> array of length <a href="#SkMatrix_mapVectors_count">count</a> to <a href="SkPoint_Reference#Vector">Vector</a> <a href="SkPoint_Reference#Point">Point</a> array of equal or greater
-length. <a href="SkPoint_Reference#Vector">Vectors</a> are mapped by multiplying each <a href="SkPoint_Reference#Vector">Vector</a> by <a href="#Matrix">Matrix</a>, treating
-<a href="#Matrix">Matrix</a> translation as zero. Given:
+Maps <a href='#SkMatrix_mapVectors_src'>src</a> <a href='SkPoint_Reference#Vector'>Vector</a> array of length <a href='#SkMatrix_mapVectors_count'>count</a> to <a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Point'>Point</a> array of equal or greater
+length. <a href='SkPoint_Reference#Vector'>Vectors</a> are mapped by multiplying each <a href='SkPoint_Reference#Vector'>Vector</a> by <a href='#Matrix'>Matrix</a>, treating
+<a href='#Matrix'>Matrix</a> translation as zero. Given:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B 0 | | x |
@@ -3682,7 +4719,7 @@ for (i = 0; i < count; ++i) {
}
</pre>
-each <a href="#SkMatrix_mapVectors_dst">dst</a> <a href="SkPoint_Reference#Vector">Vector</a> is computed as:
+each <a href='#SkMatrix_mapVectors_dst'>dst</a> <a href='SkPoint_Reference#Vector'>Vector</a> is computed as:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
|A B 0| |x| Ax+By Dx+Ey
@@ -3690,16 +4727,18 @@ Matrix * src = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+I| = ------- , -------
|G H I| |1| Gx+Hy+I Gx+Hy+I
</pre>
-<a href="#SkMatrix_mapVectors_src">src</a> and <a href="#SkMatrix_mapVectors_dst">dst</a> may point to the same storage.
+<a href='#SkMatrix_mapVectors_src'>src</a> and <a href='#SkMatrix_mapVectors_dst'>dst</a> may point to the same storage.
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapVectors_dst"> <code><strong>dst </strong></code> </a></td> <td>
-storage for mapped <a href="SkPoint_Reference#Vector">Vectors</a></td>
- </tr> <tr> <td><a name="SkMatrix_mapVectors_src"> <code><strong>src </strong></code> </a></td> <td>
-<a href="SkPoint_Reference#Vector">Vectors</a> to transform</td>
- </tr> <tr> <td><a name="SkMatrix_mapVectors_count"> <code><strong>count </strong></code> </a></td> <td>
-number of <a href="SkPoint_Reference#Vector">Vectors</a> to transform</td>
+<table> <tr> <td><a name='SkMatrix_mapVectors_dst'><code><strong>dst</strong></code></a></td>
+ <td>storage for mapped <a href='SkPoint_Reference#Vector'>Vectors</a></td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapVectors_src'><code><strong>src</strong></code></a></td>
+ <td><a href='SkPoint_Reference#Vector'>Vectors</a> to transform</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapVectors_count'><code><strong>count</strong></code></a></td>
+ <td>number of <a href='SkPoint_Reference#Vector'>Vectors</a> to transform</td>
</tr>
</table>
@@ -3709,18 +4748,18 @@ number of <a href="SkPoint_Reference#Vector">Vectors</a> to transform</td>
### See Also
-<a href="#SkMatrix_mapVector">mapVector</a><sup><a href="#SkMatrix_mapVector_2">[2]</a></sup> <a href="#SkMatrix_mapPoints">mapPoints</a><sup><a href="#SkMatrix_mapPoints_2">[2]</a></sup> <a href="#SkMatrix_mapXY">mapXY</a><sup><a href="#SkMatrix_mapXY_2">[2]</a></sup>
+<a href='#SkMatrix_mapVector'>mapVector</a><sup><a href='#SkMatrix_mapVector_2'>[2]</a></sup> <a href='#SkMatrix_mapPoints'>mapPoints</a><sup><a href='#SkMatrix_mapPoints_2'>[2]</a></sup> <a href='#SkMatrix_mapXY'>mapXY</a><sup><a href='#SkMatrix_mapXY_2'>[2]</a></sup>
---
-<a name="SkMatrix_mapVectors_2"></a>
+<a name='SkMatrix_mapVectors_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void mapVectors(SkVector vecs[], int count) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> vecs[], int count) const
</pre>
-Maps <a href="#SkMatrix_mapVectors_2_vecs">vecs</a> <a href="SkPoint_Reference#Vector">Vector</a> array of length <a href="#SkMatrix_mapVectors_2_count">count</a> in place, multiplying each <a href="SkPoint_Reference#Vector">Vector</a> by
-<a href="#Matrix">Matrix</a>, treating <a href="#Matrix">Matrix</a> translation as zero. Given:
+Maps <a href='#SkMatrix_mapVectors_2_vecs'>vecs</a> <a href='SkPoint_Reference#Vector'>Vector</a> array of length <a href='#SkMatrix_mapVectors_2_count'>count</a> in place, multiplying each <a href='SkPoint_Reference#Vector'>Vector</a> by
+<a href='#Matrix'>Matrix</a>, treating <a href='#Matrix'>Matrix</a> translation as zero. Given:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B 0 | | x |
@@ -3737,7 +4776,7 @@ for (i = 0; i < count; ++i) {
}
</pre>
-each result <a href="SkPoint_Reference#Vector">Vector</a> is computed as:
+each result <a href='SkPoint_Reference#Vector'>Vector</a> is computed as:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
|A B 0| |x| Ax+By Dx+Ey
@@ -3747,10 +4786,11 @@ Matrix * vec = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+I| = ------- , -------
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapVectors_2_vecs"> <code><strong>vecs </strong></code> </a></td> <td>
-<a href="SkPoint_Reference#Vector">Vectors</a> to transform, and storage for mapped <a href="SkPoint_Reference#Vector">Vectors</a></td>
- </tr> <tr> <td><a name="SkMatrix_mapVectors_2_count"> <code><strong>count </strong></code> </a></td> <td>
-number of <a href="SkPoint_Reference#Vector">Vectors</a> to transform</td>
+<table> <tr> <td><a name='SkMatrix_mapVectors_2_vecs'><code><strong>vecs</strong></code></a></td>
+ <td><a href='SkPoint_Reference#Vector'>Vectors</a> to transform, and storage for mapped <a href='SkPoint_Reference#Vector'>Vectors</a></td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapVectors_2_count'><code><strong>count</strong></code></a></td>
+ <td>number of <a href='SkPoint_Reference#Vector'>Vectors</a> to transform</td>
</tr>
</table>
@@ -3760,19 +4800,19 @@ number of <a href="SkPoint_Reference#Vector">Vectors</a> to transform</td>
### See Also
-<a href="#SkMatrix_mapVector">mapVector</a><sup><a href="#SkMatrix_mapVector_2">[2]</a></sup> <a href="#SkMatrix_mapPoints">mapPoints</a><sup><a href="#SkMatrix_mapPoints_2">[2]</a></sup> <a href="#SkMatrix_mapXY">mapXY</a><sup><a href="#SkMatrix_mapXY_2">[2]</a></sup>
+<a href='#SkMatrix_mapVector'>mapVector</a><sup><a href='#SkMatrix_mapVector_2'>[2]</a></sup> <a href='#SkMatrix_mapPoints'>mapPoints</a><sup><a href='#SkMatrix_mapPoints_2'>[2]</a></sup> <a href='#SkMatrix_mapXY'>mapXY</a><sup><a href='#SkMatrix_mapXY_2'>[2]</a></sup>
---
-<a name="SkMatrix_mapVector"></a>
+<a name='SkMatrix_mapVector'></a>
## mapVector
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void mapVector(SkScalar dx, SkScalar dy, SkVector* result) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='SkPoint_Reference#SkVector'>SkVector</a>* result) const
</pre>
-Maps <a href="SkPoint_Reference#Vector">Vector</a> (x, y) to <a href="#SkMatrix_mapVector_result">result</a>. <a href="SkPoint_Reference#Vector">Vector</a> is mapped by multiplying by <a href="#Matrix">Matrix</a>,
-treating <a href="#Matrix">Matrix</a> translation as zero. Given:
+Maps <a href='SkPoint_Reference#Vector'>Vector</a> (x, y) to <a href='#SkMatrix_mapVector_result'>result</a>. <a href='SkPoint_Reference#Vector'>Vector</a> is mapped by multiplying by <a href='#Matrix'>Matrix</a>,
+treating <a href='#Matrix'>Matrix</a> translation as zero. Given:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B 0 | | dx |
@@ -3780,7 +4820,7 @@ Matrix = | D E 0 |, vec = | dy |
| G H I | | 1 |
</pre>
-each <a href="#SkMatrix_mapVector_result">result</a> <a href="SkPoint_Reference#Vector">Vector</a> is computed as:
+each <a href='#SkMatrix_mapVector_result'>result</a> <a href='SkPoint_Reference#Vector'>Vector</a> is computed as:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
|A B 0| |dx| A*dx+B*dy D*dx+E*dy
@@ -3790,12 +4830,14 @@ Matrix * vec = |D E 0| |dy| = |A*dx+B*dy D*dx+E*dy G*dx+H*dy+I| = ----------- ,
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapVector_dx"> <code><strong>dx </strong></code> </a></td> <td>
-x-coordinate of <a href="SkPoint_Reference#Vector">Vector</a> to map</td>
- </tr> <tr> <td><a name="SkMatrix_mapVector_dy"> <code><strong>dy </strong></code> </a></td> <td>
-y-coordinate of <a href="SkPoint_Reference#Vector">Vector</a> to map</td>
- </tr> <tr> <td><a name="SkMatrix_mapVector_result"> <code><strong>result </strong></code> </a></td> <td>
-storage for mapped <a href="SkPoint_Reference#Vector">Vector</a></td>
+<table> <tr> <td><a name='SkMatrix_mapVector_dx'><code><strong>dx</strong></code></a></td>
+ <td>x-coordinate of <a href='SkPoint_Reference#Vector'>Vector</a> to map</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapVector_dy'><code><strong>dy</strong></code></a></td>
+ <td>y-coordinate of <a href='SkPoint_Reference#Vector'>Vector</a> to map</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapVector_result'><code><strong>result</strong></code></a></td>
+ <td>storage for mapped <a href='SkPoint_Reference#Vector'>Vector</a></td>
</tr>
</table>
@@ -3805,17 +4847,17 @@ storage for mapped <a href="SkPoint_Reference#Vector">Vector</a></td>
### See Also
-<a href="#SkMatrix_mapVectors">mapVectors</a><sup><a href="#SkMatrix_mapVectors_2">[2]</a></sup> <a href="#SkMatrix_mapPoints">mapPoints</a><sup><a href="#SkMatrix_mapPoints_2">[2]</a></sup> <a href="#SkMatrix_mapXY">mapXY</a><sup><a href="#SkMatrix_mapXY_2">[2]</a></sup>
+<a href='#SkMatrix_mapVectors'>mapVectors</a><sup><a href='#SkMatrix_mapVectors_2'>[2]</a></sup> <a href='#SkMatrix_mapPoints'>mapPoints</a><sup><a href='#SkMatrix_mapPoints_2'>[2]</a></sup> <a href='#SkMatrix_mapXY'>mapXY</a><sup><a href='#SkMatrix_mapXY_2'>[2]</a></sup>
---
-<a name="SkMatrix_mapVector_2"></a>
+<a name='SkMatrix_mapVector_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkVector mapVector(SkScalar dx, SkScalar dy) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const
</pre>
-Returns <a href="SkPoint_Reference#Vector">Vector</a> (x, y) multiplied by <a href="#Matrix">Matrix</a>, treating <a href="#Matrix">Matrix</a> translation as zero.
+Returns <a href='SkPoint_Reference#Vector'>Vector</a> (x, y) multiplied by <a href='#Matrix'>Matrix</a>, treating <a href='#Matrix'>Matrix</a> translation as zero.
Given:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
@@ -3824,7 +4866,7 @@ Matrix = | D E 0 |, vec = | dy |
| G H I | | 1 |
</pre>
-each result <a href="SkPoint_Reference#Vector">Vector</a> is computed as:
+each result <a href='SkPoint_Reference#Vector'>Vector</a> is computed as:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
|A B 0| |dx| A*dx+B*dy D*dx+E*dy
@@ -3834,16 +4876,17 @@ Matrix * vec = |D E 0| |dy| = |A*dx+B*dy D*dx+E*dy G*dx+H*dy+I| = ----------- ,
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapVector_2_dx"> <code><strong>dx </strong></code> </a></td> <td>
-x-coordinate of <a href="SkPoint_Reference#Vector">Vector</a> to map</td>
- </tr> <tr> <td><a name="SkMatrix_mapVector_2_dy"> <code><strong>dy </strong></code> </a></td> <td>
-y-coordinate of <a href="SkPoint_Reference#Vector">Vector</a> to map</td>
+<table> <tr> <td><a name='SkMatrix_mapVector_2_dx'><code><strong>dx</strong></code></a></td>
+ <td>x-coordinate of <a href='SkPoint_Reference#Vector'>Vector</a> to map</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapVector_2_dy'><code><strong>dy</strong></code></a></td>
+ <td>y-coordinate of <a href='SkPoint_Reference#Vector'>Vector</a> to map</td>
</tr>
</table>
### Return Value
-mapped <a href="SkPoint_Reference#Vector">Vector</a>
+mapped <a href='SkPoint_Reference#Vector'>Vector</a>
### Example
@@ -3851,34 +4894,35 @@ mapped <a href="SkPoint_Reference#Vector">Vector</a>
### See Also
-<a href="#SkMatrix_mapVectors">mapVectors</a><sup><a href="#SkMatrix_mapVectors_2">[2]</a></sup> <a href="#SkMatrix_mapPoints">mapPoints</a><sup><a href="#SkMatrix_mapPoints_2">[2]</a></sup> <a href="#SkMatrix_mapXY">mapXY</a><sup><a href="#SkMatrix_mapXY_2">[2]</a></sup>
+<a href='#SkMatrix_mapVectors'>mapVectors</a><sup><a href='#SkMatrix_mapVectors_2'>[2]</a></sup> <a href='#SkMatrix_mapPoints'>mapPoints</a><sup><a href='#SkMatrix_mapPoints_2'>[2]</a></sup> <a href='#SkMatrix_mapXY'>mapXY</a><sup><a href='#SkMatrix_mapXY_2'>[2]</a></sup>
---
-<a name="SkMatrix_mapRect"></a>
+<a name='SkMatrix_mapRect'></a>
## mapRect
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool mapRect(SkRect* dst, const SkRect& src) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src) const
</pre>
-Sets <a href="#SkMatrix_mapRect_dst">dst</a> to bounds of <a href="#SkMatrix_mapRect_src">src</a> corners mapped by <a href="#Matrix">Matrix</a>.
-Returns true if mapped corners are <a href="#SkMatrix_mapRect_dst">dst</a> corners.
+Sets <a href='#SkMatrix_mapRect_dst'>dst</a> to bounds of <a href='#SkMatrix_mapRect_src'>src</a> corners mapped by <a href='#Matrix'>Matrix</a>.
+Returns true if mapped corners are <a href='#SkMatrix_mapRect_dst'>dst</a> corners.
-Returned value is the same as calling <a href="#SkMatrix_rectStaysRect">rectStaysRect</a>.
+Returned value is the same as calling <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>.
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapRect_dst"> <code><strong>dst </strong></code> </a></td> <td>
-storage for bounds of mapped <a href="SkPoint_Reference#Point">Points</a></td>
- </tr> <tr> <td><a name="SkMatrix_mapRect_src"> <code><strong>src </strong></code> </a></td> <td>
-<a href="SkRect_Reference#Rect">Rect</a> to map</td>
+<table> <tr> <td><a name='SkMatrix_mapRect_dst'><code><strong>dst</strong></code></a></td>
+ <td>storage for bounds of mapped <a href='SkPoint_Reference#Point'>Points</a></td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapRect_src'><code><strong>src</strong></code></a></td>
+ <td><a href='SkRect_Reference#Rect'>Rect</a> to map</td>
</tr>
</table>
### Return Value
-true if <a href="#SkMatrix_mapRect_dst">dst</a> is equivalent to mapped <a href="#SkMatrix_mapRect_src">src</a>
+true if <a href='#SkMatrix_mapRect_dst'>dst</a> is equivalent to mapped <a href='#SkMatrix_mapRect_src'>src</a>
### Example
@@ -3886,25 +4930,25 @@ true if <a href="#SkMatrix_mapRect_dst">dst</a> is equivalent to mapped <a href=
### See Also
-<a href="#SkMatrix_mapPoints">mapPoints</a><sup><a href="#SkMatrix_mapPoints_2">[2]</a></sup> <a href="#SkMatrix_rectStaysRect">rectStaysRect</a>
+<a href='#SkMatrix_mapPoints'>mapPoints</a><sup><a href='#SkMatrix_mapPoints_2'>[2]</a></sup> <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>
---
-<a name="SkMatrix_mapRect_2"></a>
+<a name='SkMatrix_mapRect_2'></a>
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool mapRect(SkRect* rect) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* rect) const
</pre>
-Sets <a href="#SkMatrix_mapRect_2_rect">rect</a> to bounds of <a href="#SkMatrix_mapRect_2_rect">rect</a> corners mapped by <a href="#Matrix">Matrix</a>.
-Returns true if mapped corners are computed <a href="#SkMatrix_mapRect_2_rect">rect</a> corners.
+Sets <a href='#SkMatrix_mapRect_2_rect'>rect</a> to bounds of <a href='#SkMatrix_mapRect_2_rect'>rect</a> corners mapped by <a href='#Matrix'>Matrix</a>.
+Returns true if mapped corners are computed <a href='#SkMatrix_mapRect_2_rect'>rect</a> corners.
-Returned value is the same as calling <a href="#SkMatrix_rectStaysRect">rectStaysRect</a>.
+Returned value is the same as calling <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>.
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapRect_2_rect"> <code><strong>rect </strong></code> </a></td> <td>
-rectangle to map, and storage for bounds of mapped corners</td>
+<table> <tr> <td><a name='SkMatrix_mapRect_2_rect'><code><strong>rect</strong></code></a></td>
+ <td>rectangle to map, and storage for bounds of mapped corners</td>
</tr>
</table>
@@ -3918,24 +4962,24 @@ true if result is equivalent to mapped src
### See Also
-<a href="#SkMatrix_mapRectScaleTranslate">mapRectScaleTranslate</a> <a href="#SkMatrix_mapPoints">mapPoints</a><sup><a href="#SkMatrix_mapPoints_2">[2]</a></sup> <a href="#SkMatrix_rectStaysRect">rectStaysRect</a>
+<a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTranslate</a> <a href='#SkMatrix_mapPoints'>mapPoints</a><sup><a href='#SkMatrix_mapPoints_2'>[2]</a></sup> <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>
---
-<a name="SkMatrix_mapRectToQuad"></a>
+<a name='SkMatrix_mapRectToQuad'></a>
## mapRectToQuad
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void mapRectToQuad(SkPoint dst[4], const SkRect& rect) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[4], const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect) const
</pre>
-Maps four corners of <a href="#SkMatrix_mapRectToQuad_rect">rect</a> to <a href="#SkMatrix_mapRectToQuad_dst">dst</a>. <a href="SkPoint_Reference#Point">Points</a> are mapped by multiplying each
-<a href="#SkMatrix_mapRectToQuad_rect">rect</a> corner by <a href="#Matrix">Matrix</a>. <a href="#SkMatrix_mapRectToQuad_rect">rect</a> corner is processed in this order:
-(<a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fLeft, <a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fTop), (<a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fRight, <a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fTop), (<a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fRight, <a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fBottom),
-(<a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fLeft, <a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fBottom).
+Maps four corners of <a href='#SkMatrix_mapRectToQuad_rect'>rect</a> to <a href='#SkMatrix_mapRectToQuad_dst'>dst</a>. <a href='SkPoint_Reference#Point'>Points</a> are mapped by multiplying each
+<a href='#SkMatrix_mapRectToQuad_rect'>rect</a> corner by <a href='#Matrix'>Matrix</a>. <a href='#SkMatrix_mapRectToQuad_rect'>rect</a> corner is processed in this order:
+(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom),
+(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom).
-<a href="#SkMatrix_mapRectToQuad_rect">rect</a> may be empty: <a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fLeft may be greater than or equal to <a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fRight;
-<a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fTop may be greater than or equal to <a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fBottom.
+<a href='#SkMatrix_mapRectToQuad_rect'>rect</a> may be empty: <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft may be greater than or equal to <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight;
+<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop may be greater than or equal to <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom.
Given:
@@ -3945,9 +4989,9 @@ Matrix = | D E F |, pt = | y |
| G H I | | 1 |
</pre>
-where pt is initialized from each of (<a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fLeft, <a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fTop),
-(<a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fRight, <a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fTop), (<a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fRight, <a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fBottom), (<a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fLeft, <a href="#SkMatrix_mapRectToQuad_rect">rect</a>.fBottom),
-each <a href="#SkMatrix_mapRectToQuad_dst">dst</a> <a href="SkPoint_Reference#Point">Point</a> is computed as:
+where pt is initialized from each of (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop),
+(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom),
+each <a href='#SkMatrix_mapRectToQuad_dst'>dst</a> <a href='SkPoint_Reference#Point'>Point</a> is computed as:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
|A B C| |x| Ax+By+C Dx+Ey+F
@@ -3957,10 +5001,11 @@ Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapRectToQuad_dst"> <code><strong>dst </strong></code> </a></td> <td>
-storage for mapped corner <a href="SkPoint_Reference#Point">Points</a></td>
- </tr> <tr> <td><a name="SkMatrix_mapRectToQuad_rect"> <code><strong>rect </strong></code> </a></td> <td>
-<a href="SkRect_Reference#Rect">Rect</a> to map</td>
+<table> <tr> <td><a name='SkMatrix_mapRectToQuad_dst'><code><strong>dst</strong></code></a></td>
+ <td>storage for mapped corner <a href='SkPoint_Reference#Point'>Points</a></td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapRectToQuad_rect'><code><strong>rect</strong></code></a></td>
+ <td><a href='SkRect_Reference#Rect'>Rect</a> to map</td>
</tr>
</table>
@@ -3970,27 +5015,28 @@ storage for mapped corner <a href="SkPoint_Reference#Point">Points</a></td>
### See Also
-<a href="#SkMatrix_mapRect">mapRect</a><sup><a href="#SkMatrix_mapRect_2">[2]</a></sup> <a href="#SkMatrix_mapRectScaleTranslate">mapRectScaleTranslate</a>
+<a href='#SkMatrix_mapRect'>mapRect</a><sup><a href='#SkMatrix_mapRect_2'>[2]</a></sup> <a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTranslate</a>
---
-<a name="SkMatrix_mapRectScaleTranslate"></a>
+<a name='SkMatrix_mapRectScaleTranslate'></a>
## mapRectScaleTranslate
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void mapRectScaleTranslate(SkRect* dst, const SkRect& src) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTranslate</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src) const
</pre>
-Sets <a href="#SkMatrix_mapRectScaleTranslate_dst">dst</a> to bounds of <a href="#SkMatrix_mapRectScaleTranslate_src">src</a> corners mapped by <a href="#Matrix">Matrix</a>. If matrix contains
+Sets <a href='#SkMatrix_mapRectScaleTranslate_dst'>dst</a> to bounds of <a href='#SkMatrix_mapRectScaleTranslate_src'>src</a> corners mapped by <a href='#Matrix'>Matrix</a>. If matrix contains
elements other than scale or translate: asserts if SK_DEBUG is defined;
otherwise, results are undefined.
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapRectScaleTranslate_dst"> <code><strong>dst </strong></code> </a></td> <td>
-storage for bounds of mapped <a href="SkPoint_Reference#Point">Points</a></td>
- </tr> <tr> <td><a name="SkMatrix_mapRectScaleTranslate_src"> <code><strong>src </strong></code> </a></td> <td>
-<a href="SkRect_Reference#Rect">Rect</a> to map</td>
+<table> <tr> <td><a name='SkMatrix_mapRectScaleTranslate_dst'><code><strong>dst</strong></code></a></td>
+ <td>storage for bounds of mapped <a href='SkPoint_Reference#Point'>Points</a></td>
+ </tr>
+ <tr> <td><a name='SkMatrix_mapRectScaleTranslate_src'><code><strong>src</strong></code></a></td>
+ <td><a href='SkRect_Reference#Rect'>Rect</a> to map</td>
</tr>
</table>
@@ -4000,32 +5046,32 @@ storage for bounds of mapped <a href="SkPoint_Reference#Point">Points</a></td>
### See Also
-<a href="#SkMatrix_mapRect">mapRect</a><sup><a href="#SkMatrix_mapRect_2">[2]</a></sup> <a href="#SkMatrix_mapRectToQuad">mapRectToQuad</a> <a href="#SkMatrix_isScaleTranslate">isScaleTranslate</a> <a href="#SkMatrix_rectStaysRect">rectStaysRect</a>
+<a href='#SkMatrix_mapRect'>mapRect</a><sup><a href='#SkMatrix_mapRect_2'>[2]</a></sup> <a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a> <a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a> <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>
---
-<a name="SkMatrix_mapRadius"></a>
+<a name='SkMatrix_mapRadius'></a>
## mapRadius
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar mapRadius(SkScalar radius) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_mapRadius'>mapRadius</a>(<a href='undocumented#SkScalar'>SkScalar</a> radius) const
</pre>
-Returns geometric mean <a href="#SkMatrix_mapRadius_radius">radius</a> of ellipse formed by constructing <a href="undocumented#Circle">Circle</a> of
-size <a href="#SkMatrix_mapRadius_radius">radius</a>, and mapping constructed <a href="undocumented#Circle">Circle</a> with <a href="#Matrix">Matrix</a>. The result squared is
+Returns geometric mean <a href='#SkMatrix_mapRadius_radius'>radius</a> of ellipse formed by constructing <a href='undocumented#Circle'>Circle</a> of
+size <a href='#SkMatrix_mapRadius_radius'>radius</a>, and mapping constructed <a href='undocumented#Circle'>Circle</a> with <a href='#Matrix'>Matrix</a>. The result squared is
equal to the major axis length times the minor axis length.
-Result is not meaningful if <a href="#Matrix">Matrix</a> contains perspective elements.
+Result is not meaningful if <a href='#Matrix'>Matrix</a> contains perspective elements.
### Parameters
-<table> <tr> <td><a name="SkMatrix_mapRadius_radius"> <code><strong>radius </strong></code> </a></td> <td>
-<a href="undocumented#Circle">Circle</a> size to map</td>
+<table> <tr> <td><a name='SkMatrix_mapRadius_radius'><code><strong>radius</strong></code></a></td>
+ <td><a href='undocumented#Circle'>Circle</a> size to map</td>
</tr>
</table>
### Return Value
-average mapped <a href="#SkMatrix_mapRadius_radius">radius</a>
+average mapped <a href='#SkMatrix_mapRadius_radius'>radius</a>
### Example
@@ -4035,27 +5081,27 @@ the area enclosed by the ellipse major and minor axes.
### See Also
-<a href="#SkMatrix_mapVector">mapVector</a><sup><a href="#SkMatrix_mapVector_2">[2]</a></sup>
+<a href='#SkMatrix_mapVector'>mapVector</a><sup><a href='#SkMatrix_mapVector_2'>[2]</a></sup>
---
-<a name="SkMatrix_isFixedStepInX"></a>
+<a name='SkMatrix_isFixedStepInX'></a>
## isFixedStepInX
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool isFixedStepInX() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>() const
</pre>
-Returns true if a unit step in x at some y mapped through <a href="#Matrix">Matrix</a> can be
-represented by a constant <a href="SkPoint_Reference#Vector">Vector</a>. Returns true if <a href="#SkMatrix_getType">getType</a> returns <a href="#SkMatrix_kIdentity_Mask">kIdentity Mask</a>,
-or combinations of: <a href="#SkMatrix_kTranslate_Mask">kTranslate Mask</a>, <a href="#SkMatrix_kScale_Mask">kScale Mask</a>, and <a href="#SkMatrix_kAffine_Mask">kAffine Mask</a>.
+Returns true if a unit step in x at some y mapped through <a href='#Matrix'>Matrix</a> can be
+represented by a constant <a href='SkPoint_Reference#Vector'>Vector</a>. Returns true if <a href='#SkMatrix_getType'>getType</a> returns <a href='#SkMatrix_kIdentity_Mask'>kIdentity Mask</a>,
+or combinations of: <a href='#SkMatrix_kTranslate_Mask'>kTranslate Mask</a>, <a href='#SkMatrix_kScale_Mask'>kScale Mask</a>, and <a href='#SkMatrix_kAffine_Mask'>kAffine Mask</a>.
-May return true if <a href="#SkMatrix_getType">getType</a> returns <a href="#SkMatrix_kPerspective_Mask">kPerspective Mask</a>, but only when <a href="#Matrix">Matrix</a>
+May return true if <a href='#SkMatrix_getType'>getType</a> returns <a href='#SkMatrix_kPerspective_Mask'>kPerspective Mask</a>, but only when <a href='#Matrix'>Matrix</a>
does not include rotation or skewing along the y-axis.
### Return Value
-true if <a href="#Matrix">Matrix</a> does not have complex perspective
+true if <a href='#Matrix'>Matrix</a> does not have complex perspective
### Example
@@ -4086,30 +5132,30 @@ isFixedStepInX: false
### See Also
-<a href="#SkMatrix_fixedStepInX">fixedStepInX</a> <a href="#SkMatrix_getType">getType</a>
+<a href='#SkMatrix_fixedStepInX'>fixedStepInX</a> <a href='#SkMatrix_getType'>getType</a>
---
-<a name="SkMatrix_fixedStepInX"></a>
+<a name='SkMatrix_fixedStepInX'></a>
## fixedStepInX
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkVector fixedStepInX(SkScalar y) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_fixedStepInX'>fixedStepInX</a>(<a href='undocumented#SkScalar'>SkScalar</a> y) const
</pre>
-Returns <a href="SkPoint_Reference#Vector">Vector</a> representing a unit step in x at <a href="#SkMatrix_fixedStepInX_y">y</a> mapped through <a href="#Matrix">Matrix</a>.
-If <a href="#SkMatrix_isFixedStepInX">isFixedStepInX</a> is false, returned value is undefined.
+Returns <a href='SkPoint_Reference#Vector'>Vector</a> representing a unit step in x at <a href='#SkMatrix_fixedStepInX_y'>y</a> mapped through <a href='#Matrix'>Matrix</a>.
+If <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a> is false, returned value is undefined.
### Parameters
-<table> <tr> <td><a name="SkMatrix_fixedStepInX_y"> <code><strong>y </strong></code> </a></td> <td>
-position of line parallel to x-axis</td>
+<table> <tr> <td><a name='SkMatrix_fixedStepInX_y'><code><strong>y</strong></code></a></td>
+ <td>position of line parallel to x-axis</td>
</tr>
</table>
### Return Value
-<a href="SkPoint_Reference#Vector">Vector</a> advance of mapped unit step in x
+<a href='SkPoint_Reference#Vector'>Vector</a> advance of mapped unit step in x
### Example
@@ -4117,37 +5163,37 @@ position of line parallel to x-axis</td>
### See Also
-<a href="#SkMatrix_isFixedStepInX">isFixedStepInX</a> <a href="#SkMatrix_getType">getType</a>
+<a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a> <a href='#SkMatrix_getType'>getType</a>
---
-<a name="SkMatrix_cheapEqualTo"></a>
+<a name='SkMatrix_cheapEqualTo'></a>
## cheapEqualTo
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool cheapEqualTo(const SkMatrix& m) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a>(const <a href='#SkMatrix'>SkMatrix</a>& m) const
</pre>
-Returns true if <a href="#Matrix">Matrix</a> equals <a href="#SkMatrix_cheapEqualTo_m">m</a>, using an efficient comparison.
+Returns true if <a href='#Matrix'>Matrix</a> equals <a href='#SkMatrix_cheapEqualTo_m'>m</a>, using an efficient comparison.
Returns false when the sign of zero values is the different; when one
matrix has positive zero value and the other has negative zero value.
-Returns true even when both <a href="#Matrix">Matrices</a> contain NaN.
+Returns true even when both <a href='#Matrix'>Matrices</a> contain NaN.
NaN never equals any value, including itself. To improve performance, NaN values
are treated as bit patterns that are equal if their bit patterns are equal.
### Parameters
-<table> <tr> <td><a name="SkMatrix_cheapEqualTo_m"> <code><strong>m </strong></code> </a></td> <td>
-<a href="#Matrix">Matrix</a> to compare</td>
+<table> <tr> <td><a name='SkMatrix_cheapEqualTo_m'><code><strong>m</strong></code></a></td>
+ <td><a href='#Matrix'>Matrix</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href="#SkMatrix_cheapEqualTo_m">m</a> and <a href="#Matrix">Matrix</a> are represented by identical bit patterns
+true if <a href='#SkMatrix_cheapEqualTo_m'>m</a> and <a href='#Matrix'>Matrix</a> are represented by identical bit patterns
### Example
@@ -4166,33 +5212,34 @@ both NaN: a != b a.cheapEqualTo(b): true
### See Also
-<a href="#SkMatrix_equal_operator">operator==(const SkMatrix& a, const SkMatrix& b)</a>
+<a href='#SkMatrix_equal_operator'>operator==(const SkMatrix& a, const SkMatrix& b)</a>
---
-<a name="SkMatrix_equal_operator"></a>
+<a name='SkMatrix_equal_operator'></a>
## operator==
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool operator==(const SkMatrix& a, const SkMatrix& b)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_equal_operator'>operator==(const SkMatrix& a, const SkMatrix& b)</a>
</pre>
-Compares <a href="#SkMatrix_equal_operator_a">a</a> and <a href="#SkMatrix_equal_operator_b">b</a>; returns true if <a href="#SkMatrix_equal_operator_a">a</a> and <a href="#SkMatrix_equal_operator_b">b</a> are numerically equal. Returns true
-even if sign of zero values are different. Returns false if either <a href="#Matrix">Matrix</a>
-contains NaN, even if the other <a href="#Matrix">Matrix</a> also contains NaN.
+Compares <a href='#SkMatrix_equal_operator_a'>a</a> and <a href='#SkMatrix_equal_operator_b'>b</a>; returns true if <a href='#SkMatrix_equal_operator_a'>a</a> and <a href='#SkMatrix_equal_operator_b'>b</a> are numerically equal. Returns true
+even if sign of zero values are different. Returns false if either <a href='#Matrix'>Matrix</a>
+contains NaN, even if the other <a href='#Matrix'>Matrix</a> also contains NaN.
### Parameters
-<table> <tr> <td><a name="SkMatrix_equal_operator_a"> <code><strong>a </strong></code> </a></td> <td>
-<a href="#Matrix">Matrix</a> to compare</td>
- </tr> <tr> <td><a name="SkMatrix_equal_operator_b"> <code><strong>b </strong></code> </a></td> <td>
-<a href="#Matrix">Matrix</a> to compare</td>
+<table> <tr> <td><a name='SkMatrix_equal_operator_a'><code><strong>a</strong></code></a></td>
+ <td><a href='#Matrix'>Matrix</a> to compare</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_equal_operator_b'><code><strong>b</strong></code></a></td>
+ <td><a href='#Matrix'>Matrix</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href="#Matrix">Matrix</a> <a href="#SkMatrix_equal_operator_a">a</a> and <a href="#Matrix">Matrix</a> <a href="#SkMatrix_equal_operator_b">b</a> are numerically equal
+true if <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_equal_operator_a'>a</a> and <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_equal_operator_b'>b</a> are numerically equal
### Example
@@ -4208,33 +5255,34 @@ identity: a == b a.cheapEqualTo(b): true
### See Also
-<a href="#SkMatrix_cheapEqualTo">cheapEqualTo</a> <a href="#SkMatrix_notequal_operator">operator!=(const SkMatrix& a, const SkMatrix& b)</a>
+<a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a> <a href='#SkMatrix_notequal_operator'>operator!=(const SkMatrix& a, const SkMatrix& b)</a>
---
-<a name="SkMatrix_notequal_operator"></a>
+<a name='SkMatrix_notequal_operator'></a>
## operator!=
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool operator!=(const SkMatrix& a, const SkMatrix& b)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_notequal_operator'>operator!=(const SkMatrix& a, const SkMatrix& b)</a>
</pre>
-Compares <a href="#SkMatrix_notequal_operator_a">a</a> and <a href="#SkMatrix_notequal_operator_b">b</a>; returns true if <a href="#SkMatrix_notequal_operator_a">a</a> and <a href="#SkMatrix_notequal_operator_b">b</a> are not numerically equal. Returns false
-even if sign of zero values are different. Returns true if either <a href="#Matrix">Matrix</a>
-contains NaN, even if the other <a href="#Matrix">Matrix</a> also contains NaN.
+Compares <a href='#SkMatrix_notequal_operator_a'>a</a> and <a href='#SkMatrix_notequal_operator_b'>b</a>; returns true if <a href='#SkMatrix_notequal_operator_a'>a</a> and <a href='#SkMatrix_notequal_operator_b'>b</a> are not numerically equal. Returns false
+even if sign of zero values are different. Returns true if either <a href='#Matrix'>Matrix</a>
+contains NaN, even if the other <a href='#Matrix'>Matrix</a> also contains NaN.
### Parameters
-<table> <tr> <td><a name="SkMatrix_notequal_operator_a"> <code><strong>a </strong></code> </a></td> <td>
-<a href="#Matrix">Matrix</a> to compare</td>
- </tr> <tr> <td><a name="SkMatrix_notequal_operator_b"> <code><strong>b </strong></code> </a></td> <td>
-<a href="#Matrix">Matrix</a> to compare</td>
+<table> <tr> <td><a name='SkMatrix_notequal_operator_a'><code><strong>a</strong></code></a></td>
+ <td><a href='#Matrix'>Matrix</a> to compare</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_notequal_operator_b'><code><strong>b</strong></code></a></td>
+ <td><a href='#Matrix'>Matrix</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href="#Matrix">Matrix</a> <a href="#SkMatrix_notequal_operator_a">a</a> and <a href="#Matrix">Matrix</a> <a href="#SkMatrix_notequal_operator_b">b</a> are numerically not equal
+true if <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_notequal_operator_a'>a</a> and <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_notequal_operator_b'>b</a> are numerically not equal
### Example
@@ -4242,28 +5290,41 @@ true if <a href="#Matrix">Matrix</a> <a href="#SkMatrix_notequal_operator_a">a</
### See Also
-<a href="#SkMatrix_cheapEqualTo">cheapEqualTo</a> <a href="#SkMatrix_equal_operator">operator==(const SkMatrix& a, const SkMatrix& b)</a>
+<a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a> <a href='#SkMatrix_equal_operator'>operator==(const SkMatrix& a, const SkMatrix& b)</a>
---
-## <a name="Utility"></a> Utility
+## <a name='Utility'>Utility</a>
-| name | description |
-| --- | --- |
-| <a href="#SkMatrix_dirtyMatrixTypeCache">dirtyMatrixTypeCache</a> | sets internal cache to unknown state |
-| <a href="#SkMatrix_dump">dump</a> | sends text representation using floats to standard output |
-| <a href="#SkMatrix_toString">toString</a> | converts <a href="#Matrix">Matrix</a> to machine readable form |
-<a name="SkMatrix_dump"></a>
+<table style='border-collapse: collapse; width: 62.5em'>
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets internal cache to unknown state</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_dump'>dump</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sends text representation using floats to standard output</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_toString'>toString</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>converts <a href='#Matrix'>Matrix</a> to machine readable form</td>
+ </tr>
+</table>
+
+
+<a name='SkMatrix_dump'></a>
## dump
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void dump() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_dump'>dump</a>() const
</pre>
-Writes text representation of <a href="#Matrix">Matrix</a> to standard output. Floating point values
+Writes text representation of <a href='#Matrix'>Matrix</a> to standard output. Floating point values
are written with limited precision; it may not be possible to reconstruct
-original <a href="#Matrix">Matrix</a> from output.
+original <a href='#Matrix'>Matrix</a> from output.
### Example
@@ -4281,25 +5342,25 @@ matrix != nearlyEqual
### See Also
-<a href="#SkMatrix_toString">toString</a>
+<a href='#SkMatrix_toString'>toString</a>
---
-<a name="SkMatrix_toString"></a>
+<a name='SkMatrix_toString'></a>
## toString
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void toString(SkString* str) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_toString'>toString</a>(<a href='undocumented#SkString'>SkString</a>* str) const
</pre>
-Creates string representation of <a href="#Matrix">Matrix</a>. Floating point values
+Creates string representation of <a href='#Matrix'>Matrix</a>. Floating point values
are written with limited precision; it may not be possible to reconstruct
-original <a href="#Matrix">Matrix</a> from output.
+original <a href='#Matrix'>Matrix</a> from output.
### Parameters
-<table> <tr> <td><a name="SkMatrix_toString_str"> <code><strong>str </strong></code> </a></td> <td>
-storage for string representation of <a href="#Matrix">Matrix</a></td>
+<table> <tr> <td><a name='SkMatrix_toString_str'><code><strong>str</strong></code></a></td>
+ <td>storage for string representation of <a href='#Matrix'>Matrix</a></td>
</tr>
</table>
@@ -4319,20 +5380,20 @@ matrix != nearlyEqual
### See Also
-<a href="#SkMatrix_dump">dump</a>
+<a href='#SkMatrix_dump'>dump</a>
---
-<a name="SkMatrix_getMinScale"></a>
+<a name='SkMatrix_getMinScale'></a>
## getMinScale
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar getMinScale() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMinScale'>getMinScale</a>() const
</pre>
-Returns the minimum scaling factor of <a href="#Matrix">Matrix</a> by decomposing the scaling and
+Returns the minimum scaling factor of <a href='#Matrix'>Matrix</a> by decomposing the scaling and
skewing elements.
-Returns -1 if scale factor overflows or <a href="#Matrix">Matrix</a> contains perspective.
+Returns -1 if scale factor overflows or <a href='#Matrix'>Matrix</a> contains perspective.
### Return Value
@@ -4352,20 +5413,20 @@ matrix.getMinScale() 24
### See Also
-<a href="#SkMatrix_getMaxScale">getMaxScale</a> <a href="#SkMatrix_getMinMaxScales">getMinMaxScales</a>
+<a href='#SkMatrix_getMaxScale'>getMaxScale</a> <a href='#SkMatrix_getMinMaxScales'>getMinMaxScales</a>
---
-<a name="SkMatrix_getMaxScale"></a>
+<a name='SkMatrix_getMaxScale'></a>
## getMaxScale
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkScalar getMaxScale() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMaxScale'>getMaxScale</a>() const
</pre>
-Returns the maximum scaling factor of <a href="#Matrix">Matrix</a> by decomposing the scaling and
+Returns the maximum scaling factor of <a href='#Matrix'>Matrix</a> by decomposing the scaling and
skewing elements.
-Returns -1 if scale factor overflows or <a href="#Matrix">Matrix</a> contains perspective.
+Returns -1 if scale factor overflows or <a href='#Matrix'>Matrix</a> contains perspective.
### Return Value
@@ -4385,28 +5446,28 @@ matrix.getMaxScale() 42
### See Also
-<a href="#SkMatrix_getMinScale">getMinScale</a> <a href="#SkMatrix_getMinMaxScales">getMinMaxScales</a>
+<a href='#SkMatrix_getMinScale'>getMinScale</a> <a href='#SkMatrix_getMinMaxScales'>getMinMaxScales</a>
---
-<a name="SkMatrix_getMinMaxScales"></a>
+<a name='SkMatrix_getMinMaxScales'></a>
## getMinMaxScales
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool SK_WARN_UNUSED_RESULT getMinMaxScales(SkScalar scaleFactors[2]) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool SK_WARN_UNUSED_RESULT <a href='#SkMatrix_getMinMaxScales'>getMinMaxScales</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleFactors[2]) const
</pre>
-Sets <a href="#SkMatrix_getMinMaxScales_scaleFactors">scaleFactors</a>[0] to the minimum scaling factor, and <a href="#SkMatrix_getMinMaxScales_scaleFactors">scaleFactors</a>[1] to the
+Sets <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a>[0] to the minimum scaling factor, and <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a>[1] to the
maximum scaling factor. Scaling factors are computed by decomposing
-the <a href="#Matrix">Matrix</a> scaling and skewing elements.
+the <a href='#Matrix'>Matrix</a> scaling and skewing elements.
-Returns true if <a href="#SkMatrix_getMinMaxScales_scaleFactors">scaleFactors</a> are found; otherwise, returns false and sets
-<a href="#SkMatrix_getMinMaxScales_scaleFactors">scaleFactors</a> to undefined values.
+Returns true if <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a> are found; otherwise, returns false and sets
+<a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a> to undefined values.
### Parameters
-<table> <tr> <td><a name="SkMatrix_getMinMaxScales_scaleFactors"> <code><strong>scaleFactors </strong></code> </a></td> <td>
-storage for minimum and maximum scale factors</td>
+<table> <tr> <td><a name='SkMatrix_getMinMaxScales_scaleFactors'><code><strong>scaleFactors</strong></code></a></td>
+ <td>storage for minimum and maximum scale factors</td>
</tr>
</table>
@@ -4428,42 +5489,43 @@ matrix.getMinMaxScales() false 2 2
### See Also
-<a href="#SkMatrix_getMinScale">getMinScale</a> <a href="#SkMatrix_getMaxScale">getMaxScale</a>
+<a href='#SkMatrix_getMinScale'>getMinScale</a> <a href='#SkMatrix_getMaxScale'>getMaxScale</a>
---
-<a name="SkMatrix_decomposeScale"></a>
+<a name='SkMatrix_decomposeScale'></a>
## decomposeScale
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool decomposeScale(SkSize* scale, SkMatrix* remaining = nullptr) const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_decomposeScale'>decomposeScale</a>(<a href='undocumented#SkSize'>SkSize</a>* scale, <a href='#SkMatrix'>SkMatrix</a>* remaining = nullptr) const
</pre>
-Decomposes <a href="#Matrix">Matrix</a> into <a href="#SkMatrix_decomposeScale_scale">scale</a> components and whatever remains. Returns false if
-<a href="#Matrix">Matrix</a> could not be decomposed.
+Decomposes <a href='#Matrix'>Matrix</a> into <a href='#SkMatrix_decomposeScale_scale'>scale</a> components and whatever remains. Returns false if
+<a href='#Matrix'>Matrix</a> could not be decomposed.
-Sets <a href="#SkMatrix_decomposeScale_scale">scale</a> to portion of <a href="#Matrix">Matrix</a> that scales in x and y. Sets <a href="#SkMatrix_decomposeScale_remaining">remaining</a> to <a href="#Matrix">Matrix</a>
-with x and y scaling factored out. <a href="#SkMatrix_decomposeScale_remaining">remaining</a> may be passed as nullptr
-to determine if <a href="#Matrix">Matrix</a> can be decomposed without computing remainder.
+Sets <a href='#SkMatrix_decomposeScale_scale'>scale</a> to portion of <a href='#Matrix'>Matrix</a> that scales in x and y. Sets <a href='#SkMatrix_decomposeScale_remaining'>remaining</a> to <a href='#Matrix'>Matrix</a>
+with x and y scaling factored out. <a href='#SkMatrix_decomposeScale_remaining'>remaining</a> may be passed as nullptr
+to determine if <a href='#Matrix'>Matrix</a> can be decomposed without computing remainder.
-Returns true if <a href="#SkMatrix_decomposeScale_scale">scale</a> components are found. <a href="#SkMatrix_decomposeScale_scale">scale</a> and <a href="#SkMatrix_decomposeScale_remaining">remaining</a> are
-unchanged if <a href="#Matrix">Matrix</a> contains perspective; <a href="#SkMatrix_decomposeScale_scale">scale</a> factors are not finite, or
+Returns true if <a href='#SkMatrix_decomposeScale_scale'>scale</a> components are found. <a href='#SkMatrix_decomposeScale_scale'>scale</a> and <a href='#SkMatrix_decomposeScale_remaining'>remaining</a> are
+unchanged if <a href='#Matrix'>Matrix</a> contains perspective; <a href='#SkMatrix_decomposeScale_scale'>scale</a> factors are not finite, or
are nearly zero.
-On success<a href="#Matrix">Matrix</a> = <a href="#SkMatrix_decomposeScale_scale">scale</a> * Remaining
+On success<a href='#Matrix'>Matrix</a> = <a href='#SkMatrix_decomposeScale_scale'>scale</a> * Remaining
### Parameters
-<table> <tr> <td><a name="SkMatrix_decomposeScale_scale"> <code><strong>scale </strong></code> </a></td> <td>
-x and y scaling factors; may be nullptr</td>
- </tr> <tr> <td><a name="SkMatrix_decomposeScale_remaining"> <code><strong>remaining </strong></code> </a></td> <td>
-<a href="#Matrix">Matrix</a> without scaling; may be nullptr</td>
+<table> <tr> <td><a name='SkMatrix_decomposeScale_scale'><code><strong>scale</strong></code></a></td>
+ <td>x and y scaling factors; may be nullptr</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_decomposeScale_remaining'><code><strong>remaining</strong></code></a></td>
+ <td><a href='#Matrix'>Matrix</a> without scaling; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href="#SkMatrix_decomposeScale_scale">scale</a> can be computed
+true if <a href='#SkMatrix_decomposeScale_scale'>scale</a> can be computed
### Example
@@ -4482,18 +5544,18 @@ success: true scale: 0.5, 0.25
### See Also
-<a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_MakeScale">MakeScale</a><sup><a href="#SkMatrix_MakeScale_2">[2]</a></sup>
+<a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_MakeScale'>MakeScale</a><sup><a href='#SkMatrix_MakeScale_2'>[2]</a></sup>
---
-<a name="SkMatrix_I"></a>
+<a name='SkMatrix_I'></a>
## I
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-static const SkMatrix& I()
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+static const <a href='#SkMatrix'>SkMatrix</a>& I()
</pre>
-Returns reference to const identity <a href="#Matrix">Matrix</a>. Returned <a href="#Matrix">Matrix</a> is set to:
+Returns reference to const identity <a href='#Matrix'>Matrix</a>. Returned <a href='#Matrix'>Matrix</a> is set to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 0 |
@@ -4503,7 +5565,7 @@ Returns reference to const identity <a href="#Matrix">Matrix</a>. Returned <a hr
### Return Value
-const identity <a href="#Matrix">Matrix</a>
+const identity <a href='#Matrix'>Matrix</a>
### Example
@@ -4520,18 +5582,18 @@ m2 == m3
### See Also
-<a href="#SkMatrix_reset">reset</a> <a href="#SkMatrix_setIdentity">setIdentity</a>
+<a href='#SkMatrix_reset'>reset</a> <a href='#SkMatrix_setIdentity'>setIdentity</a>
---
-<a name="SkMatrix_InvalidMatrix"></a>
+<a name='SkMatrix_InvalidMatrix'></a>
## InvalidMatrix
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-static const SkMatrix& InvalidMatrix()
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+static const <a href='#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_InvalidMatrix'>InvalidMatrix</a>()
</pre>
-Returns reference to a const <a href="#Matrix">Matrix</a> with invalid values. Returned <a href="#Matrix">Matrix</a> is set
+Returns reference to a const <a href='#Matrix'>Matrix</a> with invalid values. Returned <a href='#Matrix'>Matrix</a> is set
to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
@@ -4542,7 +5604,7 @@ to:
### Return Value
-const invalid <a href="#Matrix">Matrix</a>
+const invalid <a href='#Matrix'>Matrix</a>
### Example
@@ -4558,18 +5620,18 @@ scaleX 3.40282e+38
### See Also
-SeeAlso <a href="#SkMatrix_getType">getType</a>
+SeeAlso <a href='#SkMatrix_getType'>getType</a>
---
-<a name="SkMatrix_Concat"></a>
+<a name='SkMatrix_Concat'></a>
## Concat
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-static SkMatrix Concat(const SkMatrix& a, const SkMatrix& b)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+static <a href='#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat'>Concat</a>(const <a href='#SkMatrix'>SkMatrix</a>& a, const <a href='#SkMatrix'>SkMatrix</a>& b)
</pre>
-Returns <a href="#Matrix">Matrix</a> <a href="#SkMatrix_Concat_a">a</a> multiplied by <a href="#Matrix">Matrix</a> <a href="#SkMatrix_Concat_b">b</a>.
+Returns <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_Concat_a'>a</a> multiplied by <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_Concat_b'>b</a>.
Given:
@@ -4579,7 +5641,7 @@ a = | D E F |, b = | M N O |
| G H I | | P Q R |
</pre>
-sets <a href="#Matrix">Matrix</a> to:
+sets <a href='#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
@@ -4589,38 +5651,39 @@ a * b = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
### Parameters
-<table> <tr> <td><a name="SkMatrix_Concat_a"> <code><strong>a </strong></code> </a></td> <td>
-<a href="#Matrix">Matrix</a> on left side of multiply expression</td>
- </tr> <tr> <td><a name="SkMatrix_Concat_b"> <code><strong>b </strong></code> </a></td> <td>
-<a href="#Matrix">Matrix</a> on right side of multiply expression</td>
+<table> <tr> <td><a name='SkMatrix_Concat_a'><code><strong>a</strong></code></a></td>
+ <td><a href='#Matrix'>Matrix</a> on left side of multiply expression</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_Concat_b'><code><strong>b</strong></code></a></td>
+ <td><a href='#Matrix'>Matrix</a> on right side of multiply expression</td>
</tr>
</table>
### Return Value
-<a href="#Matrix">Matrix</a> computed from <a href="#SkMatrix_Concat_a">a</a> times <a href="#SkMatrix_Concat_b">b</a>
+<a href='#Matrix'>Matrix</a> computed from <a href='#SkMatrix_Concat_a'>a</a> times <a href='#SkMatrix_Concat_b'>b</a>
### Example
-<div><fiddle-embed name="6b4562c7052da94f3d5b2412dca41946"><div><a href="#SkMatrix_setPolyToPoly">setPolyToPoly</a> creates perspective matrices, one the inverse of the other.
+<div><fiddle-embed name="6b4562c7052da94f3d5b2412dca41946"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> creates perspective matrices, one the inverse of the other.
Multiplying the matrix by its inverse turns into an identity matrix.
</div></fiddle-embed></div>
### See Also
-<a href="#SkMatrix_preConcat">preConcat</a> <a href="#SkMatrix_postConcat">postConcat</a>
+<a href='#SkMatrix_preConcat'>preConcat</a> <a href='#SkMatrix_postConcat'>postConcat</a>
---
-<a name="SkMatrix_dirtyMatrixTypeCache"></a>
+<a name='SkMatrix_dirtyMatrixTypeCache'></a>
## dirtyMatrixTypeCache
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void dirtyMatrixTypeCache()
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a>()
</pre>
Sets internal cache to unknown state. Use to force update after repeated
-modifications to <a href="#Matrix">Matrix</a> element reference returned by <a href="#SkMatrix_array1_operator">operator[](int index)</a>.
+modifications to <a href='#Matrix'>Matrix</a> element reference returned by <a href='#SkMatrix_array1_operator'>operator[](int index)</a>.
### Example
@@ -4639,18 +5702,18 @@ after dirty cache: x = 66
### See Also
-<a href="#SkMatrix_array1_operator">operator[](int index)</a> <a href="#SkMatrix_getType">getType</a>
+<a href='#SkMatrix_array1_operator'>operator[](int index)</a> <a href='#SkMatrix_getType'>getType</a>
---
-<a name="SkMatrix_setScaleTranslate"></a>
+<a name='SkMatrix_setScaleTranslate'></a>
## setScaleTranslate
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void setScaleTranslate(SkScalar sx, SkScalar sy, SkScalar tx, SkScalar ty)
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+void <a href='#SkMatrix_setScaleTranslate'>setScaleTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> tx, <a href='undocumented#SkScalar'>SkScalar</a> ty)
</pre>
-Initializes <a href="#Matrix">Matrix</a> with scale and translate elements.
+Initializes <a href='#Matrix'>Matrix</a> with scale and translate elements.
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| sx 0 tx |
@@ -4660,14 +5723,17 @@ Initializes <a href="#Matrix">Matrix</a> with scale and translate elements.
### Parameters
-<table> <tr> <td><a name="SkMatrix_setScaleTranslate_sx"> <code><strong>sx </strong></code> </a></td> <td>
-horizontal scale factor to store</td>
- </tr> <tr> <td><a name="SkMatrix_setScaleTranslate_sy"> <code><strong>sy </strong></code> </a></td> <td>
-vertical scale factor to store</td>
- </tr> <tr> <td><a name="SkMatrix_setScaleTranslate_tx"> <code><strong>tx </strong></code> </a></td> <td>
-horizontal translation to store</td>
- </tr> <tr> <td><a name="SkMatrix_setScaleTranslate_ty"> <code><strong>ty </strong></code> </a></td> <td>
-vertical translation to store</td>
+<table> <tr> <td><a name='SkMatrix_setScaleTranslate_sx'><code><strong>sx</strong></code></a></td>
+ <td>horizontal scale factor to store</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setScaleTranslate_sy'><code><strong>sy</strong></code></a></td>
+ <td>vertical scale factor to store</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setScaleTranslate_tx'><code><strong>tx</strong></code></a></td>
+ <td>horizontal translation to store</td>
+ </tr>
+ <tr> <td><a name='SkMatrix_setScaleTranslate_ty'><code><strong>ty</strong></code></a></td>
+ <td>vertical translation to store</td>
</tr>
</table>
@@ -4685,15 +5751,15 @@ vertical translation to store</td>
### See Also
-<a href="#SkMatrix_setScale">setScale</a><sup><a href="#SkMatrix_setScale_2">[2]</a></sup> <a href="#SkMatrix_preTranslate">preTranslate</a> <a href="#SkMatrix_postTranslate">postTranslate</a>
+<a href='#SkMatrix_setScale'>setScale</a><sup><a href='#SkMatrix_setScale_2'>[2]</a></sup> <a href='#SkMatrix_preTranslate'>preTranslate</a> <a href='#SkMatrix_postTranslate'>postTranslate</a>
---
-<a name="SkMatrix_isFinite"></a>
+<a name='SkMatrix_isFinite'></a>
## isFinite
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-bool isFinite() const
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+bool <a href='#SkMatrix_isFinite'>isFinite</a>() const
</pre>
Returns true if all elements of the matrix are finite. Returns false if any