1SkRect Reference 2=== 3 4 5<a name='SkRect'></a> 6 7--- 8 9<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0"> 10struct <a href='SkRect_Reference#SkRect'>SkRect</a> { 11 12 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_fLeft'>fLeft</a>; 13 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_fTop'>fTop</a>; 14 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_fRight'>fRight</a>; 15 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_fBottom'>fBottom</a>; 16 17 static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeEmpty'>MakeEmpty</a>(); 18 static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeWH'>MakeWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> w, <a href='undocumented#SkScalar'>SkScalar</a> h); 19 static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeIWH'>MakeIWH</a>(int w, int h); 20 static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeSize'>MakeSize</a>(const <a href='undocumented#SkSize'>SkSize</a>& <a href='undocumented#Size'>size</a>); 21 static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeLTRB'>MakeLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> l, <a href='undocumented#SkScalar'>SkScalar</a> t, <a href='undocumented#SkScalar'>SkScalar</a> r, 22 <a href='undocumented#SkScalar'>SkScalar</a> b); 23 static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeXYWH'>MakeXYWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> w, 24 <a href='undocumented#SkScalar'>SkScalar</a> h); 25 static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(const <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>); 26 static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& irect); 27 bool <a href='#SkRect_isEmpty'>isEmpty</a>() const; 28 bool <a href='#SkRect_isSorted'>isSorted</a>() const; 29 bool <a href='#SkRect_isFinite'>isFinite</a>() const; 30 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_x'>x()</a> const; 31 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_y'>y()</a> const; 32 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_left'>left()</a> const; 33 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_top'>top()</a> const; 34 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_right'>right()</a> const; 35 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_bottom'>bottom()</a> const; 36 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_width'>width()</a> const; 37 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_height'>height()</a> const; 38 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerX'>centerX</a>() const; 39 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerY'>centerY</a>() const; 40 friend bool <a href='#SkRect_equal_operator'>operator==</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b); 41 friend bool <a href='#SkRect_notequal_operator'>operator!=</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b); 42 void <a href='#SkRect_toQuad'>toQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Quad'>quad</a>[4]) const; 43 void <a href='#SkRect_setEmpty'>setEmpty</a>(); 44 void <a href='#SkRect_set'>set</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& src); 45 void <a href='#SkRect_set'>set</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom); 46 void <a href='#SkRect_setLTRB'>setLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom); 47 void <a href='#SkRect_iset'>iset</a>(int left, int top, int right, int bottom); 48 void <a href='#SkRect_isetWH'>isetWH</a>(int width, int height); 49 void <a href='#SkRect_set'>set</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count); 50 void <a href='#SkRect_setBounds'>setBounds</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count); 51 bool <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count); 52 void <a href='#SkRect_setBoundsNoCheck'>setBoundsNoCheck</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count); 53 void <a href='#SkRect_set'>set</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p0, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1); 54 void <a href='#SkRect_setXYWH'>setXYWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> width, <a href='undocumented#SkScalar'>SkScalar</a> height); 55 void <a href='#SkRect_setWH'>setWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> width, <a href='undocumented#SkScalar'>SkScalar</a> height); 56 <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeOffset'>makeOffset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const; 57 <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeInset'>makeInset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const; 58 <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeOutset'>makeOutset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const; 59 void <a href='#SkRect_offset'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy); 60 void <a href='#SkRect_offset'>offset</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& delta); 61 void <a href='#SkRect_offsetTo'>offsetTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> newX, <a href='undocumented#SkScalar'>SkScalar</a> newY); 62 void <a href='#SkRect_inset'>inset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy); 63 void <a href='#SkRect_outset'>outset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy); 64 bool <a href='#SkRect_intersect'>intersect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r); 65 bool <a href='#SkRect_intersect'>intersect</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom); 66 bool <a href='#SkRect_intersect'>intersect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b); 67 bool <a href='#SkRect_intersects'>intersects</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom) const; 68 bool <a href='#SkRect_intersects'>intersects</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) const; 69 static bool <a href='#SkRect_Intersects'>Intersects</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b); 70 void <a href='#SkRect_join'>join</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom); 71 void <a href='#SkRect_join'>join</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r); 72 void <a href='#SkRect_joinNonEmptyArg'>joinNonEmptyArg</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r); 73 void <a href='#SkRect_joinPossiblyEmptyRect'>joinPossiblyEmptyRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r); 74 bool <a href='#SkRect_contains'>contains</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const; 75 bool <a href='#SkRect_contains'>contains</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) const; 76 bool <a href='#SkRect_contains'>contains</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const; 77 void <a href='#SkRect_round'>round</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* dst) const; 78 void <a href='#SkRect_roundOut'>roundOut</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* dst) const; 79 void <a href='#SkRect_roundOut'>roundOut</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst) const; 80 void <a href='#SkRect_roundIn'>roundIn</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* dst) const; 81 <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkRect_round'>round()</a> const; 82 <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkRect_roundOut'>roundOut</a>() const; 83 void <a href='#SkRect_sort'>sort()</a>; 84 <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeSorted'>makeSorted</a>() const; 85 const <a href='undocumented#SkScalar'>SkScalar</a>* <a href='#SkRect_asScalars'>asScalars</a>() const; 86 void <a href='#SkRect_dump'>dump</a>(bool asHex) const; 87 void <a href='#SkRect_dump'>dump()</a> const; 88 void <a href='#SkRect_dumpHex'>dumpHex</a>() const; 89}; 90 91</pre> 92 93<a href='SkRect_Reference#SkRect'>SkRect</a> holds four <a href='undocumented#SkScalar'>SkScalar</a> coordinates describing the upper and 94lower bounds of a rectangle. <a href='SkRect_Reference#SkRect'>SkRect</a> may be created from outer bounds or 95from position, width, and height. <a href='SkRect_Reference#SkRect'>SkRect</a> describes an area; if its right 96is less than or equal to its left, or if its bottom is less than or equal to 97its top, it is considered empty. 98 99<a href='SkRect_Reference#SkRect'>SkRect</a> can be constructed from int values to avoid compiler warnings that 100integer input cannot convert to <a href='undocumented#SkScalar'>SkScalar</a> without loss of precision.<table style='border-collapse: collapse; width: 62.5em'> 101 102 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th> 103<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</th> 104<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr> 105 <tr style='background-color: #f0f0f0; '> 106 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkScalar</td> 107 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRect_fLeft'><code>fLeft</code></a></td> 108 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '> 109May contain any value, including infinities and NaN. The smaller of the 110horizontal values when sorted. When equal to or greater than <a href='#SkRect_fRight'>fRight</a>, <a href='SkRect_Reference#Rect'>Rect</a> is empty. 111</td> 112 </tr> 113 <tr> 114 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkScalar</td> 115 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRect_fTop'><code>fTop</code></a></td> 116 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '> 117May contain any value, including infinities and NaN. The smaller of the 118vertical values when sorted. When equal to or greater than <a href='#SkRect_fBottom'>fBottom</a>, <a href='SkRect_Reference#Rect'>Rect</a> is empty. 119</td> 120 </tr> 121 <tr style='background-color: #f0f0f0; '> 122 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkScalar</td> 123 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRect_fRight'><code>fRight</code></a></td> 124 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '> 125May contain any value, including infinities and NaN. The larger of the 126horizontal values when sorted. When equal to or less than <a href='#SkRect_fLeft'>fLeft</a>, <a href='SkRect_Reference#Rect'>Rect</a> is empty. 127</td> 128 </tr> 129 <tr> 130 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkScalar</td> 131 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRect_fBottom'><code>fBottom</code></a></td> 132 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '> 133May contain any value, including infinities and NaN. The larger of the 134vertical values when sorted. When equal to or less than <a href='#SkRect_fTop'>fTop</a>, <a href='SkRect_Reference#Rect'>Rect</a> is empty. 135</td> 136 </tr> 137</table> 138 139<a name='SkRect_MakeEmpty'></a> 140 141--- 142 143<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 144static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeEmpty'>MakeEmpty</a>() 145</pre> 146 147Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to (0, 0, 0, 0). 148Many other rectangles are empty; if left is equal to or greater than right, 149or if top is equal to or greater than bottom. Setting all members to zero 150is a convenience, but does not designate a special empty rectangle. 151 152### Return Value 153 154bounds (0, 0, 0, 0) 155 156### Example 157 158<div><fiddle-embed name="2e262d0ac4b8ef51695e0525fc3ecdf6"> 159 160#### Example Output 161 162~~~~ 163MakeEmpty isEmpty: true 164offset rect isEmpty: true 165inset rect isEmpty: true 166outset rect isEmpty: false 167~~~~ 168 169</fiddle-embed></div> 170 171### See Also 172 173<a href='#SkRect_isEmpty'>isEmpty</a> <a href='#SkRect_setEmpty'>setEmpty</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_MakeEmpty'>MakeEmpty</a> 174 175<a name='SkRect_MakeWH'></a> 176 177--- 178 179<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 180static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeWH'>MakeWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> w, <a href='undocumented#SkScalar'>SkScalar</a> h) 181</pre> 182 183Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to <a href='undocumented#SkScalar'>SkScalar</a> values (0, 0, <a href='#SkRect_MakeWH_w'>w</a>, <a href='#SkRect_MakeWH_h'>h</a>). Does not 184validate input; <a href='#SkRect_MakeWH_w'>w</a> or <a href='#SkRect_MakeWH_h'>h</a> may be negative. 185 186Passing integer values may generate a compiler warning since <a href='SkRect_Reference#SkRect'>SkRect</a> cannot 187represent 32-bit integers exactly. Use <a href='SkIRect_Reference#SkIRect'>SkIRect</a> for an exact integer rectangle. 188 189### Parameters 190 191<table> <tr> <td><a name='SkRect_MakeWH_w'><code><strong>w</strong></code></a></td> 192 <td><a href='undocumented#SkScalar'>SkScalar</a> width of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 193 </tr> 194 <tr> <td><a name='SkRect_MakeWH_h'><code><strong>h</strong></code></a></td> 195 <td><a href='undocumented#SkScalar'>SkScalar</a> height of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 196 </tr> 197</table> 198 199### Return Value 200 201bounds (0, 0, <a href='#SkRect_MakeWH_w'>w</a>, <a href='#SkRect_MakeWH_h'>h</a>) 202 203### Example 204 205<div><fiddle-embed name="8009d30f431e01f8aea4808e9017d9bf"> 206 207#### Example Output 208 209~~~~ 210all equal 211~~~~ 212 213</fiddle-embed></div> 214 215### See Also 216 217<a href='#SkRect_MakeSize'>MakeSize</a> <a href='#SkRect_MakeXYWH'>MakeXYWH</a> <a href='#SkRect_MakeIWH'>MakeIWH</a> <a href='#SkRect_setWH'>setWH</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_MakeWH'>MakeWH</a> 218 219<a name='SkRect_MakeIWH'></a> 220 221--- 222 223<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 224static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeIWH'>MakeIWH</a>(int w, int h) 225</pre> 226 227Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to integer values (0, 0, <a href='#SkRect_MakeIWH_w'>w</a>, <a href='#SkRect_MakeIWH_h'>h</a>). Does not validate 228input; <a href='#SkRect_MakeIWH_w'>w</a> or <a href='#SkRect_MakeIWH_h'>h</a> may be negative. 229 230Use to avoid a compiler warning that input may lose precision when stored. 231Use <a href='SkIRect_Reference#SkIRect'>SkIRect</a> for an exact integer rectangle. 232 233### Parameters 234 235<table> <tr> <td><a name='SkRect_MakeIWH_w'><code><strong>w</strong></code></a></td> 236 <td>integer width of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 237 </tr> 238 <tr> <td><a name='SkRect_MakeIWH_h'><code><strong>h</strong></code></a></td> 239 <td>integer height of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 240 </tr> 241</table> 242 243### Return Value 244 245bounds (0, 0, <a href='#SkRect_MakeIWH_w'>w</a>, <a href='#SkRect_MakeIWH_h'>h</a>) 246 247### Example 248 249<div><fiddle-embed name="faa660ac19eaddc3f3eab57a0bddfdcb"> 250 251#### Example Output 252 253~~~~ 254i_rect width: 25 f_rect width:25 255i_rect width: 125000111 f_rect width:125000112 256~~~~ 257 258</fiddle-embed></div> 259 260### See Also 261 262<a href='#SkRect_MakeXYWH'>MakeXYWH</a> <a href='#SkRect_MakeWH'>MakeWH</a> <a href='#SkRect_isetWH'>isetWH</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_MakeWH'>MakeWH</a> 263 264<a name='SkRect_MakeSize'></a> 265 266--- 267 268<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 269static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeSize'>MakeSize</a>(const <a href='undocumented#SkSize'>SkSize</a>& <a href='undocumented#Size'>size</a>) 270</pre> 271 272Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to (0, 0, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_width'>width()</a>, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_height'>height()</a>). Does not 273validate input; <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_width'>width()</a> or <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_height'>height()</a> may be negative. 274 275### Parameters 276 277<table> <tr> <td><a name='SkRect_MakeSize_size'><code><strong>size</strong></code></a></td> 278 <td><a href='undocumented#SkScalar'>SkScalar</a> values for <a href='SkRect_Reference#SkRect'>SkRect</a> width and height</td> 279 </tr> 280</table> 281 282### Return Value 283 284bounds (0, 0, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_width'>width()</a>, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_height'>height()</a>) 285 286### Example 287 288<div><fiddle-embed name="ab2c1a55016c8de9172b77fdf69e00a2"> 289 290#### Example Output 291 292~~~~ 293rect width: 25.5 height: 35.5 294floor width: 25 height: 35 295~~~~ 296 297</fiddle-embed></div> 298 299### See Also 300 301<a href='#SkRect_MakeWH'>MakeWH</a> <a href='#SkRect_MakeXYWH'>MakeXYWH</a> <a href='#SkRect_MakeIWH'>MakeIWH</a> <a href='#SkRect_setWH'>setWH</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_MakeWH'>MakeWH</a> 302 303<a name='SkRect_MakeLTRB'></a> 304 305--- 306 307<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 308static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeLTRB'>MakeLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> l, <a href='undocumented#SkScalar'>SkScalar</a> t, <a href='undocumented#SkScalar'>SkScalar</a> r, <a href='undocumented#SkScalar'>SkScalar</a> b) 309</pre> 310 311Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to (<a href='#SkRect_MakeLTRB_l'>l</a>, <a href='#SkRect_MakeLTRB_t'>t</a>, <a href='#SkRect_MakeLTRB_r'>r</a>, <a href='#SkRect_MakeLTRB_b'>b</a>). Does not sort input; <a href='SkRect_Reference#SkRect'>SkRect</a> may 312result in <a href='#SkRect_fLeft'>fLeft</a> greater than <a href='#SkRect_fRight'>fRight</a>, or <a href='#SkRect_fTop'>fTop</a> greater than <a href='#SkRect_fBottom'>fBottom</a>. 313 314### Parameters 315 316<table> <tr> <td><a name='SkRect_MakeLTRB_l'><code><strong>l</strong></code></a></td> 317 <td><a href='undocumented#SkScalar'>SkScalar</a> stored in <a href='#SkRect_fLeft'>fLeft</a></td> 318 </tr> 319 <tr> <td><a name='SkRect_MakeLTRB_t'><code><strong>t</strong></code></a></td> 320 <td><a href='undocumented#SkScalar'>SkScalar</a> stored in <a href='#SkRect_fTop'>fTop</a></td> 321 </tr> 322 <tr> <td><a name='SkRect_MakeLTRB_r'><code><strong>r</strong></code></a></td> 323 <td><a href='undocumented#SkScalar'>SkScalar</a> stored in <a href='#SkRect_fRight'>fRight</a></td> 324 </tr> 325 <tr> <td><a name='SkRect_MakeLTRB_b'><code><strong>b</strong></code></a></td> 326 <td><a href='undocumented#SkScalar'>SkScalar</a> stored in <a href='#SkRect_fBottom'>fBottom</a></td> 327 </tr> 328</table> 329 330### Return Value 331 332bounds (<a href='#SkRect_MakeLTRB_l'>l</a>, <a href='#SkRect_MakeLTRB_t'>t</a>, <a href='#SkRect_MakeLTRB_r'>r</a>, <a href='#SkRect_MakeLTRB_b'>b</a>) 333 334### Example 335 336<div><fiddle-embed name="158b8dd9d02d65a5ae5ab7d1595a5b4c"> 337 338#### Example Output 339 340~~~~ 341rect: 5, 35, 15, 25 isEmpty: true 342rect: 5, 25, 15, 35 isEmpty: false 343~~~~ 344 345</fiddle-embed></div> 346 347### See Also 348 349<a href='#SkRect_MakeXYWH'>MakeXYWH</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_MakeLTRB'>MakeLTRB</a> 350 351<a name='SkRect_MakeXYWH'></a> 352 353--- 354 355<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 356static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeXYWH'>MakeXYWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> w, <a href='undocumented#SkScalar'>SkScalar</a> h) 357</pre> 358 359Returns constructed <a href='SkRect_Reference#Rect'>Rect</a> set to <code>(<a href='#SkRect_MakeXYWH_x'>x</a>, <a href='#SkRect_MakeXYWH_y'>y</a>, <a href='#SkRect_MakeXYWH_x'>x</a> + <a href='#SkRect_MakeXYWH_w'>w</a>, <a href='#SkRect_MakeXYWH_y'>y</a> + <a href='#SkRect_MakeXYWH_h'>h</a>)</code>. 360Does not validate input; <a href='#SkRect_MakeXYWH_w'>w</a> or <a href='#SkRect_MakeXYWH_h'>h</a> may be negative. 361 362### Parameters 363 364<table> <tr> <td><a name='SkRect_MakeXYWH_x'><code><strong>x</strong></code></a></td> 365 <td>stored in <a href='#SkRect_fLeft'>fLeft</a></td> 366 </tr> 367 <tr> <td><a name='SkRect_MakeXYWH_y'><code><strong>y</strong></code></a></td> 368 <td>stored in <a href='#SkRect_fTop'>fTop</a></td> 369 </tr> 370 <tr> <td><a name='SkRect_MakeXYWH_w'><code><strong>w</strong></code></a></td> 371 <td>added to <a href='#SkRect_MakeXYWH_x'>x</a> and stored in <a href='#SkRect_fRight'>fRight</a></td> 372 </tr> 373 <tr> <td><a name='SkRect_MakeXYWH_h'><code><strong>h</strong></code></a></td> 374 <td>added to <a href='#SkRect_MakeXYWH_y'>y</a> and stored in <a href='#SkRect_fBottom'>fBottom</a></td> 375 </tr> 376</table> 377 378### Return Value 379 380bounds at (<a href='#SkRect_MakeXYWH_x'>x</a>, <a href='#SkRect_MakeXYWH_y'>y</a>) with width <a href='#SkRect_MakeXYWH_w'>w</a> and height <a href='#SkRect_MakeXYWH_h'>h</a> 381 382### Example 383 384<div><fiddle-embed name="38e464dba13be11ac21e210fbf3b5afc"> 385 386#### Example Output 387 388~~~~ 389rect: 5, 35, -10, 60 isEmpty: true 390rect: -10, 35, 5, 60 isEmpty: false 391~~~~ 392 393</fiddle-embed></div> 394 395### See Also 396 397<a href='#SkRect_MakeLTRB'>MakeLTRB</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_MakeXYWH'>MakeXYWH</a> 398 399<a name='SkRect_Make'></a> 400 401--- 402 403<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 404static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(const <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>) 405</pre> 406 407Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_width'>width()</a>, <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_height'>height()</a>). 408Does not validate input; <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_width'>width()</a> or <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_height'>height()</a> may be negative. 409 410### Parameters 411 412<table> <tr> <td><a name='SkRect_Make_size'><code><strong>size</strong></code></a></td> 413 <td>integer values for <a href='SkRect_Reference#SkRect'>SkRect</a> width and height</td> 414 </tr> 415</table> 416 417### Return Value 418 419bounds (0, 0, <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_width'>width()</a>, <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_height'>height()</a>) 420 421### Example 422 423<div><fiddle-embed name="e866f5e4f6ac52e89acadf48e54ac8e0"> 424 425#### Example Output 426 427~~~~ 428rect1 == rect2 429~~~~ 430 431</fiddle-embed></div> 432 433### See Also 434 435<a href='#SkRect_MakeWH'>MakeWH</a> <a href='#SkRect_MakeXYWH'>MakeXYWH</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeIWH'>MakeIWH</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_MakeSize'>MakeSize</a> 436 437<a name='SkRect_Make_2'></a> 438 439--- 440 441<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 442static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& irect) 443</pre> 444 445Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to <a href='#SkRect_Make_2_irect'>irect</a>, promoting integers to <a href='undocumented#Scalar'>scalar</a>. 446Does not validate input; <a href='#SkRect_fLeft'>fLeft</a> may be greater than <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fTop'>fTop</a> may be greater 447than <a href='#SkRect_fBottom'>fBottom</a>. 448 449### Parameters 450 451<table> <tr> <td><a name='SkRect_Make_2_irect'><code><strong>irect</strong></code></a></td> 452 <td>integer unsorted bounds</td> 453 </tr> 454</table> 455 456### Return Value 457 458<a href='#SkRect_Make_2_irect'>irect</a> members converted to <a href='undocumented#SkScalar'>SkScalar</a> 459 460### Example 461 462<div><fiddle-embed name="dd801faa1e60a0fe9e0657674461e063"></fiddle-embed></div> 463 464### See Also 465 466<a href='#SkRect_MakeLTRB'>MakeLTRB</a> 467 468<a name='Property'></a> 469 470<a name='SkRect_isEmpty'></a> 471 472--- 473 474<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 475bool <a href='#SkRect_isEmpty'>isEmpty</a>()const 476</pre> 477 478Returns true if <a href='#SkRect_fLeft'>fLeft</a> is equal to or greater than <a href='#SkRect_fRight'>fRight</a>, or if <a href='#SkRect_fTop'>fTop</a> is equal 479to or greater than <a href='#SkRect_fBottom'>fBottom</a>. Call <a href='#SkRect_sort'>sort()</a> to reverse rectangles with negative 480<a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a>. 481 482### Return Value 483 484true if <a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a> are zero or negative 485 486### Example 487 488<div><fiddle-embed name="1d7b924d6ca2a6aef09684a8a632439c"> 489 490#### Example Output 491 492~~~~ 493rect: {20, 40, 10, 50} is empty 494sorted: {10, 40, 20, 50} is not empty 495rect: {20, 40, 20, 50} is empty 496sorted: {20, 40, 20, 50} is empty 497~~~~ 498 499</fiddle-embed></div> 500 501### See Also 502 503<a href='#SkRect_MakeEmpty'>MakeEmpty</a> <a href='#SkRect_sort'>sort</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_isEmpty'>isEmpty</a> 504 505<a name='SkRect_isSorted'></a> 506 507--- 508 509<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 510bool <a href='#SkRect_isSorted'>isSorted</a>()const 511</pre> 512 513Returns true if <a href='#SkRect_fLeft'>fLeft</a> is equal to or less than <a href='#SkRect_fRight'>fRight</a>, or if <a href='#SkRect_fTop'>fTop</a> is equal 514to or less than <a href='#SkRect_fBottom'>fBottom</a>. Call <a href='#SkRect_sort'>sort()</a> to reverse rectangles with negative 515<a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a>. 516 517### Return Value 518 519true if <a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a> are zero or positive 520 521### Example 522 523<div><fiddle-embed name="c7065a83b220a96f903dbbb65906fe7b"> 524 525#### Example Output 526 527~~~~ 528rect: {20, 40, 10, 50} is not sorted 529sorted: {10, 40, 20, 50} is sorted 530rect: {20, 40, 20, 50} is sorted 531sorted: {20, 40, 20, 50} is sorted 532~~~~ 533 534</fiddle-embed></div> 535 536### See Also 537 538<a href='#SkRect_sort'>sort</a> <a href='#SkRect_makeSorted'>makeSorted</a> <a href='#SkRect_isEmpty'>isEmpty</a> 539 540<a name='SkRect_isFinite'></a> 541 542--- 543 544<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 545bool <a href='#SkRect_isFinite'>isFinite</a>()const 546</pre> 547 548Returns true if all values in the rectangle are finite: <a href='undocumented#SK_ScalarMin'>SK_ScalarMin</a> or larger, 549and <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> or smaller. 550 551### Return Value 552 553true if no member is infinite or NaN 554 555### Example 556 557<div><fiddle-embed name="443fe5f8296d4cdb19cc9862a9cf77a4"> 558 559#### Example Output 560 561~~~~ 562largest is finite: true 563large width inf 564widest is finite: false 565~~~~ 566 567</fiddle-embed></div> 568 569### See Also 570 571<a href='undocumented#SkScalarIsFinite'>SkScalarIsFinite</a> <a href='undocumented#SkScalarIsNaN'>SkScalarIsNaN</a> 572 573<a name='SkRect_x'></a> 574 575--- 576 577<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 578<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_x'>x()</a>const 579</pre> 580 581Returns left edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> is valid. 582Call <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if needed. 583 584### Return Value 585 586<a href='#SkRect_fLeft'>fLeft</a> 587 588### Example 589 590<div><fiddle-embed name="23c77a35ac54a439a2989f840aa5cb99"> 591 592#### Example Output 593 594~~~~ 595unsorted.fLeft: 15 unsorted.x(): 15 596sorted.fLeft: 10 sorted.x(): 10 597~~~~ 598 599</fiddle-embed></div> 600 601### See Also 602 603<a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_left'>left()</a> <a href='#SkRect_y'>y()</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_x'>x()</a> 604 605<a name='SkRect_y'></a> 606 607--- 608 609<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 610<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_y'>y()</a>const 611</pre> 612 613Returns top edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> may be invalid, 614and <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if needed. 615 616### Return Value 617 618<a href='#SkRect_fTop'>fTop</a> 619 620### Example 621 622<div><fiddle-embed name="c653d9017983d2a047b1fee6a481d82b"> 623 624#### Example Output 625 626~~~~ 627unsorted.fTop: 25 unsorted.y(): 25 628sorted.fTop: 5 sorted.y(): 5 629~~~~ 630 631</fiddle-embed></div> 632 633### See Also 634 635<a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_top'>top()</a> <a href='#SkRect_x'>x()</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_y'>y()</a> 636 637<a name='SkRect_left'></a> 638 639--- 640 641<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 642<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_left'>left()</a>const 643</pre> 644 645Returns left edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> is valid. 646Call <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if needed. 647 648### Return Value 649 650<a href='#SkRect_fLeft'>fLeft</a> 651 652### Example 653 654<div><fiddle-embed name="900dc96c3549795a87036d6458c4fde6"> 655 656#### Example Output 657 658~~~~ 659unsorted.fLeft: 15 unsorted.left(): 15 660sorted.fLeft: 10 sorted.left(): 10 661~~~~ 662 663</fiddle-embed></div> 664 665### See Also 666 667<a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_x'>x()</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_left'>left()</a> 668 669<a name='SkRect_top'></a> 670 671--- 672 673<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 674<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_top'>top()</a>const 675</pre> 676 677Returns top edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> may be invalid, 678and <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if needed. 679 680### Return Value 681 682<a href='#SkRect_fTop'>fTop</a> 683 684### Example 685 686<div><fiddle-embed name="3cfc24b011aef1ca8ccb57c05711620c"> 687 688#### Example Output 689 690~~~~ 691unsorted.fTop: 25 unsorted.top(): 25 692sorted.fTop: 5 sorted.top(): 5 693~~~~ 694 695</fiddle-embed></div> 696 697### See Also 698 699<a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_y'>y()</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_top'>top()</a> 700 701<a name='SkRect_right'></a> 702 703--- 704 705<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 706<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_right'>right()</a>const 707</pre> 708 709Returns right edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> is valid. 710Call <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if needed. 711 712### Return Value 713 714<a href='#SkRect_fRight'>fRight</a> 715 716### Example 717 718<div><fiddle-embed name="ca3de7e5e292b3ad3633b1c39a31d3ab"> 719 720#### Example Output 721 722~~~~ 723unsorted.fRight: 10 unsorted.right(): 10 724sorted.fRight: 15 sorted.right(): 15 725~~~~ 726 727</fiddle-embed></div> 728 729### See Also 730 731<a href='#SkRect_fRight'>fRight</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_right'>right()</a> 732 733<a name='SkRect_bottom'></a> 734 735--- 736 737<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 738<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_bottom'>bottom()</a>const 739</pre> 740 741Returns bottom edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> may be invalid, 742and <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if needed. 743 744### Return Value 745 746<a href='#SkRect_fBottom'>fBottom</a> 747 748### Example 749 750<div><fiddle-embed name="a98993a66616ae406d8bdc54adfb1411"> 751 752#### Example Output 753 754~~~~ 755unsorted.fBottom: 5 unsorted.bottom(): 5 756sorted.fBottom: 25 sorted.bottom(): 25 757~~~~ 758 759</fiddle-embed></div> 760 761### See Also 762 763<a href='#SkRect_fBottom'>fBottom</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_bottom'>bottom()</a> 764 765<a name='SkRect_width'></a> 766 767--- 768 769<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 770<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_width'>width()</a>const 771</pre> 772 773Returns span on the x-axis. This does not check if <a href='SkRect_Reference#SkRect'>SkRect</a> is sorted, or if 774result fits in 32-bit float; result may be negative or infinity. 775 776### Return Value 777 778<a href='#SkRect_fRight'>fRight</a> minus <a href='#SkRect_fLeft'>fLeft</a> 779 780### Example 781 782<div><fiddle-embed name="11f8f0efe6291019fee0ac17844f6c1a"><div>Compare with <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_width'>width()</a> example. 783</div> 784 785#### Example Output 786 787~~~~ 788unsorted width: -5 789large width: 4294967296 790~~~~ 791 792</fiddle-embed></div> 793 794### See Also 795 796<a href='#SkRect_height'>height()</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_width'>width()</a> 797 798<a name='SkRect_height'></a> 799 800--- 801 802<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 803<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_height'>height()</a>const 804</pre> 805 806Returns span on the y-axis. This does not check if <a href='SkRect_Reference#SkRect'>SkRect</a> is sorted, or if 807result fits in 32-bit float; result may be negative or infinity. 808 809### Return Value 810 811<a href='#SkRect_fBottom'>fBottom</a> minus <a href='#SkRect_fTop'>fTop</a> 812 813### Example 814 815<div><fiddle-embed name="39429e45f05240218ecd511443ab3e44"><div>Compare with <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_height'>height()</a> example. 816</div> 817 818#### Example Output 819 820~~~~ 821unsorted height: -5 822large height: 4294967296 823~~~~ 824 825</fiddle-embed></div> 826 827### See Also 828 829<a href='#SkRect_width'>width()</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_height'>height()</a> 830 831<a name='SkRect_centerX'></a> 832 833--- 834 835<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 836<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerX'>centerX</a>()const 837</pre> 838 839Returns average of left edge and right edge. Result does not change if <a href='SkRect_Reference#SkRect'>SkRect</a> 840is sorted. Result may overflow to infinity if <a href='SkRect_Reference#SkRect'>SkRect</a> is far from the origin. 841 842### Return Value 843 844midpoint on x-axis 845 846### Example 847 848<div><fiddle-embed name="d8439ba8d23a424fa032fb97147fd2d2"> 849 850#### Example Output 851 852~~~~ 853left: 20 right: 41 centerX: 30.5 854left: 20 right: 41 centerX: 30.5 855left: -20 right: -41 centerX: -30.5 856left: -41 right: -20 centerX: -30.5 857~~~~ 858 859</fiddle-embed></div> 860 861### See Also 862 863<a href='#SkRect_centerY'>centerY</a> 864 865<a name='SkRect_centerY'></a> 866 867--- 868 869<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 870<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerY'>centerY</a>()const 871</pre> 872 873Returns average of top edge and bottom edge. Result does not change if <a href='SkRect_Reference#SkRect'>SkRect</a> 874is sorted. 875 876### Return Value 877 878midpoint on y-axis 879 880### Example 881 882<div><fiddle-embed name="ebeeafafeb8fe39d5ffc9115b02c2340"> 883 884#### Example Output 885 886~~~~ 887left: 2e+38 right: 3e+38 centerX: 2.5e+38 safe mid x: 2.5e+38 888~~~~ 889 890</fiddle-embed></div> 891 892### See Also 893 894<a href='#SkRect_centerX'>centerX</a> 895 896<a name='Operators'></a> 897 898<a name='SkRect_equal_operator'></a> 899 900--- 901 902<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 903bool <a href='#SkRect_equal_operator'>operator==</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b) 904</pre> 905 906Returns true if all members in <a href='#SkRect_equal_operator_a'>a</a>: <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fRight'>fRight</a>, and <a href='#SkRect_fBottom'>fBottom</a>; are 907equal to the corresponding members in <a href='#SkRect_equal_operator_b'>b</a>. 908 909<a href='#SkRect_equal_operator_a'>a</a> and <a href='#SkRect_equal_operator_b'>b</a> are not equal if either contain NaN. <a href='#SkRect_equal_operator_a'>a</a> and <a href='#SkRect_equal_operator_b'>b</a> are equal if members 910contain zeroes with different signs. 911 912### Parameters 913 914<table> <tr> <td><a name='SkRect_equal_operator_a'><code><strong>a</strong></code></a></td> 915 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td> 916 </tr> 917 <tr> <td><a name='SkRect_equal_operator_b'><code><strong>b</strong></code></a></td> 918 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td> 919 </tr> 920</table> 921 922### Return Value 923 924true if members are equal 925 926### Example 927 928<div><fiddle-embed name="c6c5b40cad7c3a839fdf576b380391a6"> 929 930#### Example Output 931 932~~~~ 933tests are equal 934{0, 0, 2, 2} == {-0, -0, 2, 2} and are numerically equal 935{0, 0, 2, 2} == {-0, -0, 2, 2} and are numerically equal 936{0, 0, 2, 2} == {-0, -0, 2, 2} and are numerically equal 937~~~~ 938 939</fiddle-embed></div> 940 941### See Also 942 943<a href='#SkRect_notequal_operator'>operator!=</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkRect_equal_operator_a'>a</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkRect_equal_operator_b'>b</a>) 944 945<a name='SkRect_notequal_operator'></a> 946 947--- 948 949<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 950bool <a href='#SkRect_notequal_operator'>operator!=</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b) 951</pre> 952 953Returns true if any in <a href='#SkRect_notequal_operator_a'>a</a>: <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fRight'>fRight</a>, and <a href='#SkRect_fBottom'>fBottom</a>; does not 954equal the corresponding members in <a href='#SkRect_notequal_operator_b'>b</a>. 955 956<a href='#SkRect_notequal_operator_a'>a</a> and <a href='#SkRect_notequal_operator_b'>b</a> are not equal if either contain NaN. <a href='#SkRect_notequal_operator_a'>a</a> and <a href='#SkRect_notequal_operator_b'>b</a> are equal if members 957contain zeroes with different signs. 958 959### Parameters 960 961<table> <tr> <td><a name='SkRect_notequal_operator_a'><code><strong>a</strong></code></a></td> 962 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td> 963 </tr> 964 <tr> <td><a name='SkRect_notequal_operator_b'><code><strong>b</strong></code></a></td> 965 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td> 966 </tr> 967</table> 968 969### Return Value 970 971true if members are not equal 972 973### Example 974 975<div><fiddle-embed name="286072f8c27ff15be9eb945fa38dc9f7"> 976 977#### Example Output 978 979~~~~ 980test with NaN is not equal to itself 981~~~~ 982 983</fiddle-embed></div> 984 985### See Also 986 987<a href='#SkRect_equal_operator'>operator==</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkRect_notequal_operator_a'>a</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkRect_notequal_operator_b'>b</a>) 988 989<a name='As_Points'></a> 990 991<a name='SkRect_toQuad'></a> 992 993--- 994 995<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 996void <a href='#SkRect_toQuad'>toQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Quad'>quad</a>[4])const 997</pre> 998 999Returns four <a href='SkPoint_Reference#Point'>points</a> in <a href='#SkRect_toQuad_quad'>quad</a> that enclose <a href='SkRect_Reference#SkRect'>SkRect</a> ordered as: top-left, top-right, 1000bottom-right, bottom-left. 1001 1002### Parameters 1003 1004<table> <tr> <td><a name='SkRect_toQuad_quad'><code><strong>quad</strong></code></a></td> 1005 <td>storage for corners of <a href='SkRect_Reference#SkRect'>SkRect</a></td> 1006 </tr> 1007</table> 1008 1009### Example 1010 1011<div><fiddle-embed name="59a6e7d202ac17ab80ec21b233e51f59"> 1012 1013#### Example Output 1014 1015~~~~ 1016rect: {1, 2, 3, 4} 1017corners: {1, 2} {3, 2} {3, 4} {1, 4} 1018~~~~ 1019 1020</fiddle-embed></div> 1021 1022### See Also 1023 1024<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_addRect'>addRect</a> 1025 1026<a name='SkRect_setBounds'></a> 1027 1028--- 1029 1030<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1031void <a href='#SkRect_setBounds'>setBounds</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count) 1032</pre> 1033 1034Sets to bounds of <a href='SkPath_Reference#Point_Array'>SkPoint array</a> with <a href='#SkRect_setBounds_count'>count</a> entries. If <a href='#SkRect_setBounds_count'>count</a> is zero or smaller, 1035or if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> contains an infinity or NaN, sets to (0, 0, 0, 0). 1036 1037Result is either empty or sorted: <a href='#SkRect_fLeft'>fLeft</a> is less than or equal to <a href='#SkRect_fRight'>fRight</a>, and 1038<a href='#SkRect_fTop'>fTop</a> is less than or equal to <a href='#SkRect_fBottom'>fBottom</a>. 1039 1040### Parameters 1041 1042<table> <tr> <td><a name='SkRect_setBounds_pts'><code><strong>pts</strong></code></a></td> 1043 <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td> 1044 </tr> 1045 <tr> <td><a name='SkRect_setBounds_count'><code><strong>count</strong></code></a></td> 1046 <td>entries in array</td> 1047 </tr> 1048</table> 1049 1050### Example 1051 1052<div><fiddle-embed name="cf0da15f48aa54fd1889e7f913601710"> 1053 1054#### Example Output 1055 1056~~~~ 1057count: 0 rect: 0, 0, 0, 0 1058added: 3, 4 count: 1 rect: 3, 4, 3, 4 1059added: 1, 2 count: 2 rect: 1, 2, 3, 4 1060added: 5, 6 count: 3 rect: 1, 2, 5, 6 1061added: nan, 8 count: 4 rect: 0, 0, 0, 0 1062~~~~ 1063 1064</fiddle-embed></div> 1065 1066### See Also 1067 1068<a href='#SkRect_set'>set</a> <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_addPoly'>addPoly</a> 1069 1070<a name='SkRect_setBoundsCheck'></a> 1071 1072--- 1073 1074<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1075bool <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count) 1076</pre> 1077 1078Sets to bounds of <a href='SkPath_Reference#Point_Array'>SkPoint array</a> with <a href='#SkRect_setBoundsCheck_count'>count</a> entries. Returns false if <a href='#SkRect_setBoundsCheck_count'>count</a> is 1079zero or smaller, or if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> contains an infinity or NaN; in these cases 1080sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, 0, 0). 1081 1082Result is either empty or sorted: <a href='#SkRect_fLeft'>fLeft</a> is less than or equal to <a href='#SkRect_fRight'>fRight</a>, and 1083<a href='#SkRect_fTop'>fTop</a> is less than or equal to <a href='#SkRect_fBottom'>fBottom</a>. 1084 1085### Parameters 1086 1087<table> <tr> <td><a name='SkRect_setBoundsCheck_pts'><code><strong>pts</strong></code></a></td> 1088 <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td> 1089 </tr> 1090 <tr> <td><a name='SkRect_setBoundsCheck_count'><code><strong>count</strong></code></a></td> 1091 <td>entries in array</td> 1092 </tr> 1093</table> 1094 1095### Return Value 1096 1097true if all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> values are finite 1098 1099### Example 1100 1101<div><fiddle-embed name="83d879b92683b15f9daaf0c9e71c5b35"> 1102 1103#### Example Output 1104 1105~~~~ 1106count: 0 rect: 0, 0, 0, 0 success: true 1107added: 3, 4 count: 1 rect: 3, 4, 3, 4 success: true 1108added: 1, 2 count: 2 rect: 1, 2, 3, 4 success: true 1109added: 5, 6 count: 3 rect: 1, 2, 5, 6 success: true 1110added: nan, 8 count: 4 rect: 0, 0, 0, 0 success: false 1111~~~~ 1112 1113</fiddle-embed></div> 1114 1115### See Also 1116 1117<a href='#SkRect_set'>set</a> <a href='#SkRect_setBounds'>setBounds</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_addPoly'>addPoly</a> 1118 1119<a name='Set'></a> 1120 1121<a name='SkRect_setBoundsNoCheck'></a> 1122 1123--- 1124 1125<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1126void <a href='#SkRect_setBoundsNoCheck'>setBoundsNoCheck</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count) 1127</pre> 1128 1129Sets to bounds of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkRect_setBoundsNoCheck_pts'>pts</a> array with <a href='#SkRect_setBoundsNoCheck_count'>count</a> entries. If any <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkRect_setBoundsNoCheck_pts'>pts</a> 1130contains infinity or NaN, all <a href='SkRect_Reference#SkRect'>SkRect</a> dimensions are set to NaN. 1131 1132### Parameters 1133 1134<table> <tr> <td><a name='SkRect_setBoundsNoCheck_pts'><code><strong>pts</strong></code></a></td> 1135 <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td> 1136 </tr> 1137 <tr> <td><a name='SkRect_setBoundsNoCheck_count'><code><strong>count</strong></code></a></td> 1138 <td>entries in array</td> 1139 </tr> 1140</table> 1141 1142### Example 1143 1144<div><fiddle-embed name="be10cb1411dbcf7e38e0198e8a9b8b0e"></fiddle-embed></div> 1145 1146### See Also 1147 1148<a href='#SkRect_setBoundsCheck'>setBoundsCheck</a> 1149 1150<a name='SkRect_setEmpty'></a> 1151 1152--- 1153 1154<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1155void <a href='#SkRect_setEmpty'>setEmpty</a>() 1156</pre> 1157 1158Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, 0, 0). 1159 1160Many other rectangles are empty; if left is equal to or greater than right, 1161or if top is equal to or greater than bottom. Setting all members to zero 1162is a convenience, but does not designate a special empty rectangle. 1163 1164### Example 1165 1166<div><fiddle-embed name="2cf67542d45ef5d7a7efb673b651ff54"> 1167 1168#### Example Output 1169 1170~~~~ 1171rect: {3, 4, 1, 2} is empty 1172rect: {0, 0, 0, 0} is empty 1173~~~~ 1174 1175</fiddle-embed></div> 1176 1177### See Also 1178 1179<a href='#SkRect_MakeEmpty'>MakeEmpty</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_setEmpty'>setEmpty</a> 1180 1181<a name='SkRect_set'></a> 1182 1183--- 1184 1185<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1186void set(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& src) 1187</pre> 1188 1189Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='#SkRect_set_src'>src</a>, promoting <a href='#SkRect_set_src'>src</a> members from integer to <a href='undocumented#Scalar'>scalar</a>. 1190Very large values in <a href='#SkRect_set_src'>src</a> may lose precision. 1191 1192### Parameters 1193 1194<table> <tr> <td><a name='SkRect_set_src'><code><strong>src</strong></code></a></td> 1195 <td>integer <a href='SkRect_Reference#SkRect'>SkRect</a></td> 1196 </tr> 1197</table> 1198 1199### Example 1200 1201<div><fiddle-embed name="a10ad8d97062bc3f40942f47e5108917"> 1202 1203#### Example Output 1204 1205~~~~ 1206i_rect: {3, 4, 1, 2} 1207f_rect: {3, 4, 1, 2} 1208~~~~ 1209 1210</fiddle-embed></div> 1211 1212### See Also 1213 1214<a href='#SkRect_setLTRB'>setLTRB</a> <a href='undocumented#SkIntToScalar'>SkIntToScalar</a> 1215 1216<a name='SkRect_set_2'></a> 1217 1218--- 1219 1220<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1221void set(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom) 1222</pre> 1223 1224Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (<a href='#SkRect_set_2_left'>left</a>, <a href='#SkRect_set_2_top'>top</a>, <a href='#SkRect_set_2_right'>right</a>, <a href='#SkRect_set_2_bottom'>bottom</a>). 1225<a href='#SkRect_set_2_left'>left</a> and <a href='#SkRect_set_2_right'>right</a> are not sorted; <a href='#SkRect_set_2_left'>left</a> is not necessarily less than <a href='#SkRect_set_2_right'>right</a>. 1226<a href='#SkRect_set_2_top'>top</a> and <a href='#SkRect_set_2_bottom'>bottom</a> are not sorted; <a href='#SkRect_set_2_top'>top</a> is not necessarily less than <a href='#SkRect_set_2_bottom'>bottom</a>. 1227 1228### Parameters 1229 1230<table> <tr> <td><a name='SkRect_set_2_left'><code><strong>left</strong></code></a></td> 1231 <td>stored in <a href='#SkRect_fLeft'>fLeft</a></td> 1232 </tr> 1233 <tr> <td><a name='SkRect_set_2_top'><code><strong>top</strong></code></a></td> 1234 <td>stored in <a href='#SkRect_fTop'>fTop</a></td> 1235 </tr> 1236 <tr> <td><a name='SkRect_set_2_right'><code><strong>right</strong></code></a></td> 1237 <td>stored in <a href='#SkRect_fRight'>fRight</a></td> 1238 </tr> 1239 <tr> <td><a name='SkRect_set_2_bottom'><code><strong>bottom</strong></code></a></td> 1240 <td>stored in <a href='#SkRect_fBottom'>fBottom</a></td> 1241 </tr> 1242</table> 1243 1244### Example 1245 1246<div><fiddle-embed name="9b29ea460d69b4d47323fd9e3e17721e"> 1247 1248#### Example Output 1249 1250~~~~ 1251rect1: {3, 4, 1, 2} 1252rect2: {3, 4, 1, 2} 1253~~~~ 1254 1255</fiddle-embed></div> 1256 1257### See Also 1258 1259<a href='#SkRect_setLTRB'>setLTRB</a> <a href='#SkRect_setXYWH'>setXYWH</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_set'>set</a> 1260 1261<a name='SkRect_setLTRB'></a> 1262 1263--- 1264 1265<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1266void <a href='#SkRect_setLTRB'>setLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom) 1267</pre> 1268 1269Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (<a href='#SkRect_setLTRB_left'>left</a>, <a href='#SkRect_setLTRB_top'>top</a>, <a href='#SkRect_setLTRB_right'>right</a>, <a href='#SkRect_setLTRB_bottom'>bottom</a>). 1270<a href='#SkRect_setLTRB_left'>left</a> and <a href='#SkRect_setLTRB_right'>right</a> are not sorted; <a href='#SkRect_setLTRB_left'>left</a> is not necessarily less than <a href='#SkRect_setLTRB_right'>right</a>. 1271<a href='#SkRect_setLTRB_top'>top</a> and <a href='#SkRect_setLTRB_bottom'>bottom</a> are not sorted; <a href='#SkRect_setLTRB_top'>top</a> is not necessarily less than <a href='#SkRect_setLTRB_bottom'>bottom</a>. 1272 1273### Parameters 1274 1275<table> <tr> <td><a name='SkRect_setLTRB_left'><code><strong>left</strong></code></a></td> 1276 <td>stored in <a href='#SkRect_fLeft'>fLeft</a></td> 1277 </tr> 1278 <tr> <td><a name='SkRect_setLTRB_top'><code><strong>top</strong></code></a></td> 1279 <td>stored in <a href='#SkRect_fTop'>fTop</a></td> 1280 </tr> 1281 <tr> <td><a name='SkRect_setLTRB_right'><code><strong>right</strong></code></a></td> 1282 <td>stored in <a href='#SkRect_fRight'>fRight</a></td> 1283 </tr> 1284 <tr> <td><a name='SkRect_setLTRB_bottom'><code><strong>bottom</strong></code></a></td> 1285 <td>stored in <a href='#SkRect_fBottom'>fBottom</a></td> 1286 </tr> 1287</table> 1288 1289### Example 1290 1291<div><fiddle-embed name="70692838793454c8e045d6eaf7edcbff"> 1292 1293#### Example Output 1294 1295~~~~ 1296rect1: {3, 4, 1, 2} 1297rect2: {3, 4, 1, 2} 1298~~~~ 1299 1300</fiddle-embed></div> 1301 1302### See Also 1303 1304<a href='#SkRect_set'>set</a> <a href='#SkRect_setXYWH'>setXYWH</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_set'>set</a> 1305 1306<a name='SkRect_set_3'></a> 1307 1308--- 1309 1310<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1311void set(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count) 1312</pre> 1313 1314Sets to bounds of <a href='SkPath_Reference#Point_Array'>SkPoint array</a> with <a href='#SkRect_set_3_count'>count</a> entries. If <a href='#SkRect_set_3_count'>count</a> is zero or smaller, 1315or if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> contains an infinity or NaN, sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, 0, 0). 1316 1317Result is either empty or sorted: <a href='#SkRect_fLeft'>fLeft</a> is less than or equal to <a href='#SkRect_fRight'>fRight</a>, and 1318<a href='#SkRect_fTop'>fTop</a> is less than or equal to <a href='#SkRect_fBottom'>fBottom</a>. 1319 1320### Parameters 1321 1322<table> <tr> <td><a name='SkRect_set_3_pts'><code><strong>pts</strong></code></a></td> 1323 <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td> 1324 </tr> 1325 <tr> <td><a name='SkRect_set_3_count'><code><strong>count</strong></code></a></td> 1326 <td>entries in array</td> 1327 </tr> 1328</table> 1329 1330### Example 1331 1332<div><fiddle-embed name="94295fa5197e21256171b99b4023dd48"> 1333 1334#### Example Output 1335 1336~~~~ 1337count: 0 rect: 0, 0, 0, 0 1338added: 3, 4 count: 1 rect: 3, 4, 3, 4 1339added: 1, 2 count: 2 rect: 1, 2, 3, 4 1340added: 5, 6 count: 3 rect: 1, 2, 5, 6 1341added: nan, 8 count: 4 rect: 0, 0, 0, 0 1342~~~~ 1343 1344</fiddle-embed></div> 1345 1346### See Also 1347 1348<a href='#SkRect_setBounds'>setBounds</a> <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_addPoly'>addPoly</a> 1349 1350<a name='SkRect_set_4'></a> 1351 1352--- 1353 1354<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1355void set(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p0, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1) 1356</pre> 1357 1358Sets bounds to the smallest <a href='SkRect_Reference#SkRect'>SkRect</a> enclosing <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkRect_set_4_p0'>p0</a> and <a href='#SkRect_set_4_p1'>p1</a>. The result is 1359sorted and may be empty. Does not check to see if values are finite. 1360 1361### Parameters 1362 1363<table> <tr> <td><a name='SkRect_set_4_p0'><code><strong>p0</strong></code></a></td> 1364 <td>corner to include</td> 1365 </tr> 1366 <tr> <td><a name='SkRect_set_4_p1'><code><strong>p1</strong></code></a></td> 1367 <td>corner to include</td> 1368 </tr> 1369</table> 1370 1371### Example 1372 1373<div><fiddle-embed name="ee72450381f768f3869153cdbeccdc3e"><div><a href='#SkRect_set_4_p0'>p0</a> and <a href='#SkRect_set_4_p1'>p1</a> may be swapped and have the same effect unless one contains NaN. 1374</div></fiddle-embed></div> 1375 1376### See Also 1377 1378<a href='#SkRect_setBounds'>setBounds</a> <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a> 1379 1380<a name='SkRect_setXYWH'></a> 1381 1382--- 1383 1384<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1385void <a href='#SkRect_setXYWH'>setXYWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> width, <a href='undocumented#SkScalar'>SkScalar</a> height) 1386</pre> 1387 1388Sets <a href='SkRect_Reference#Rect'>Rect</a> to <code>(<a href='#SkRect_setXYWH_x'>x</a>, <a href='#SkRect_setXYWH_y'>y</a>, <a href='#SkRect_setXYWH_x'>x</a> + <a href='#SkRect_setXYWH_width'>width</a>, <a href='#SkRect_setXYWH_y'>y</a> + <a href='#SkRect_setXYWH_height'>height</a>)</code>. 1389Does not validate input; <a href='#SkRect_setXYWH_width'>width</a> or <a href='#SkRect_setXYWH_height'>height</a> may be negative. 1390 1391### Parameters 1392 1393<table> <tr> <td><a name='SkRect_setXYWH_x'><code><strong>x</strong></code></a></td> 1394 <td>stored in <a href='#SkRect_fLeft'>fLeft</a></td> 1395 </tr> 1396 <tr> <td><a name='SkRect_setXYWH_y'><code><strong>y</strong></code></a></td> 1397 <td>stored in <a href='#SkRect_fTop'>fTop</a></td> 1398 </tr> 1399 <tr> <td><a name='SkRect_setXYWH_width'><code><strong>width</strong></code></a></td> 1400 <td>added to <a href='#SkRect_setXYWH_x'>x</a> and stored in <a href='#SkRect_fRight'>fRight</a></td> 1401 </tr> 1402 <tr> <td><a name='SkRect_setXYWH_height'><code><strong>height</strong></code></a></td> 1403 <td>added to <a href='#SkRect_setXYWH_y'>y</a> and stored in <a href='#SkRect_fBottom'>fBottom</a></td> 1404 </tr> 1405</table> 1406 1407### Example 1408 1409<div><fiddle-embed name="373cce4c61b9da0384b735b838765163"> 1410 1411#### Example Output 1412 1413~~~~ 1414rect: 5, 35, -10, 60 isEmpty: true 1415rect: -10, 35, 5, 60 isEmpty: false 1416~~~~ 1417 1418</fiddle-embed></div> 1419 1420### See Also 1421 1422<a href='#SkRect_MakeXYWH'>MakeXYWH</a> <a href='#SkRect_setLTRB'>setLTRB</a> <a href='#SkRect_set'>set</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_setXYWH'>setXYWH</a> 1423 1424<a name='SkRect_setWH'></a> 1425 1426--- 1427 1428<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1429void <a href='#SkRect_setWH'>setWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> width, <a href='undocumented#SkScalar'>SkScalar</a> height) 1430</pre> 1431 1432Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, <a href='#SkRect_setWH_width'>width</a>, <a href='#SkRect_setWH_height'>height</a>). Does not validate input; 1433<a href='#SkRect_setWH_width'>width</a> or <a href='#SkRect_setWH_height'>height</a> may be negative. 1434 1435### Parameters 1436 1437<table> <tr> <td><a name='SkRect_setWH_width'><code><strong>width</strong></code></a></td> 1438 <td>stored in <a href='#SkRect_fRight'>fRight</a></td> 1439 </tr> 1440 <tr> <td><a name='SkRect_setWH_height'><code><strong>height</strong></code></a></td> 1441 <td>stored in <a href='#SkRect_fBottom'>fBottom</a></td> 1442 </tr> 1443</table> 1444 1445### Example 1446 1447<div><fiddle-embed name="9cb5fee17802fa49341f3707bdf5d235"> 1448 1449#### Example Output 1450 1451~~~~ 1452rect: 0, 0, -15, 25 isEmpty: true 1453rect: -15, 0, 0, 25 isEmpty: false 1454~~~~ 1455 1456</fiddle-embed></div> 1457 1458### See Also 1459 1460<a href='#SkRect_MakeWH'>MakeWH</a> <a href='#SkRect_setXYWH'>setXYWH</a> <a href='#SkRect_isetWH'>isetWH</a> 1461 1462<a name='From_Integers'></a> 1463 1464<a name='SkRect_iset'></a> 1465 1466--- 1467 1468<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1469void <a href='#SkRect_iset'>iset</a>(int left, int top, int right, int bottom) 1470</pre> 1471 1472Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (<a href='#SkRect_iset_left'>left</a>, <a href='#SkRect_iset_top'>top</a>, <a href='#SkRect_iset_right'>right</a>, <a href='#SkRect_iset_bottom'>bottom</a>). 1473All parameters are promoted from integer to <a href='undocumented#Scalar'>scalar</a>. 1474<a href='#SkRect_iset_left'>left</a> and <a href='#SkRect_iset_right'>right</a> are not sorted; <a href='#SkRect_iset_left'>left</a> is not necessarily less than <a href='#SkRect_iset_right'>right</a>. 1475<a href='#SkRect_iset_top'>top</a> and <a href='#SkRect_iset_bottom'>bottom</a> are not sorted; <a href='#SkRect_iset_top'>top</a> is not necessarily less than <a href='#SkRect_iset_bottom'>bottom</a>. 1476 1477### Parameters 1478 1479<table> <tr> <td><a name='SkRect_iset_left'><code><strong>left</strong></code></a></td> 1480 <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> and stored in <a href='#SkRect_fLeft'>fLeft</a></td> 1481 </tr> 1482 <tr> <td><a name='SkRect_iset_top'><code><strong>top</strong></code></a></td> 1483 <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> and stored in <a href='#SkRect_fTop'>fTop</a></td> 1484 </tr> 1485 <tr> <td><a name='SkRect_iset_right'><code><strong>right</strong></code></a></td> 1486 <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> and stored in <a href='#SkRect_fRight'>fRight</a></td> 1487 </tr> 1488 <tr> <td><a name='SkRect_iset_bottom'><code><strong>bottom</strong></code></a></td> 1489 <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> and stored in <a href='#SkRect_fBottom'>fBottom</a></td> 1490 </tr> 1491</table> 1492 1493### Example 1494 1495<div><fiddle-embed name="18532f1aa90b76364fb8d7ea072f1892"> 1496 1497#### Example Output 1498 1499~~~~ 1500rect1: {3, 4, 1, 2} 1501rect2: {3, 4, 1, 2} 1502~~~~ 1503 1504</fiddle-embed></div> 1505 1506### See Also 1507 1508<a href='#SkRect_set'>set</a> <a href='#SkRect_setLTRB'>setLTRB</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_set'>set</a> <a href='undocumented#SkIntToScalar'>SkIntToScalar</a> 1509 1510<a name='SkRect_isetWH'></a> 1511 1512--- 1513 1514<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1515void <a href='#SkRect_isetWH'>isetWH</a>(int width, int height) 1516</pre> 1517 1518Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, <a href='#SkRect_isetWH_width'>width</a>, <a href='#SkRect_isetWH_height'>height</a>). 1519<a href='#SkRect_isetWH_width'>width</a> and <a href='#SkRect_isetWH_height'>height</a> may be zero or negative. <a href='#SkRect_isetWH_width'>width</a> and <a href='#SkRect_isetWH_height'>height</a> are promoted from 1520integer to <a href='undocumented#SkScalar'>SkScalar</a>, large values may lose precision. 1521 1522### Parameters 1523 1524<table> <tr> <td><a name='SkRect_isetWH_width'><code><strong>width</strong></code></a></td> 1525 <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> and stored in <a href='#SkRect_fRight'>fRight</a></td> 1526 </tr> 1527 <tr> <td><a name='SkRect_isetWH_height'><code><strong>height</strong></code></a></td> 1528 <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> and stored in <a href='#SkRect_fBottom'>fBottom</a></td> 1529 </tr> 1530</table> 1531 1532### Example 1533 1534<div><fiddle-embed name="ee6000080fc7123214ea404018cf9176"> 1535 1536#### Example Output 1537 1538~~~~ 1539rect1: {0, 0, 1, 2} 1540rect2: {0, 0, 1, 2} 1541~~~~ 1542 1543</fiddle-embed></div> 1544 1545### See Also 1546 1547<a href='#SkRect_MakeWH'>MakeWH</a> <a href='#SkRect_MakeXYWH'>MakeXYWH</a> <a href='#SkRect_iset'>iset()</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>:<a href='#SkRect_MakeWH'>MakeWH</a> 1548 1549<a name='Inset_Outset_Offset'></a> 1550 1551<a name='SkRect_makeOffset'></a> 1552 1553--- 1554 1555<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1556<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeOffset'>makeOffset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)const 1557</pre> 1558 1559Returns <a href='SkRect_Reference#SkRect'>SkRect</a> offset by (<a href='#SkRect_makeOffset_dx'>dx</a>, <a href='#SkRect_makeOffset_dy'>dy</a>). 1560 1561If <a href='#SkRect_makeOffset_dx'>dx</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is moved to the left. 1562If <a href='#SkRect_makeOffset_dx'>dx</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is moved to the right. 1563If <a href='#SkRect_makeOffset_dy'>dy</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is moved upward. 1564If <a href='#SkRect_makeOffset_dy'>dy</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is moved downward. 1565 1566### Parameters 1567 1568<table> <tr> <td><a name='SkRect_makeOffset_dx'><code><strong>dx</strong></code></a></td> 1569 <td>added to <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a></td> 1570 </tr> 1571 <tr> <td><a name='SkRect_makeOffset_dy'><code><strong>dy</strong></code></a></td> 1572 <td>added to <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a></td> 1573 </tr> 1574</table> 1575 1576### Return Value 1577 1578<a href='SkRect_Reference#SkRect'>SkRect</a> offset on axes, with original width and height 1579 1580### Example 1581 1582<div><fiddle-embed name="98841ab0a932f99cccd8e6a34d94ba05"> 1583 1584#### Example Output 1585 1586~~~~ 1587rect: 10, 50, 20, 60 isEmpty: false 1588rect: 25, 82, 35, 92 isEmpty: false 1589~~~~ 1590 1591</fiddle-embed></div> 1592 1593### See Also 1594 1595<a href='#SkRect_offset'>offset()</a> <a href='#SkRect_makeInset'>makeInset</a> <a href='#SkRect_makeOutset'>makeOutset</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_makeOffset'>makeOffset</a> 1596 1597<a name='SkRect_makeInset'></a> 1598 1599--- 1600 1601<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1602<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeInset'>makeInset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)const 1603</pre> 1604 1605Returns <a href='SkRect_Reference#SkRect'>SkRect</a>, inset by (<a href='#SkRect_makeInset_dx'>dx</a>, <a href='#SkRect_makeInset_dy'>dy</a>). 1606 1607If <a href='#SkRect_makeInset_dx'>dx</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is wider. 1608If <a href='#SkRect_makeInset_dx'>dx</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is narrower. 1609If <a href='#SkRect_makeInset_dy'>dy</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is taller. 1610If <a href='#SkRect_makeInset_dy'>dy</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is shorter. 1611 1612### Parameters 1613 1614<table> <tr> <td><a name='SkRect_makeInset_dx'><code><strong>dx</strong></code></a></td> 1615 <td>added to <a href='#SkRect_fLeft'>fLeft</a> and subtracted from <a href='#SkRect_fRight'>fRight</a></td> 1616 </tr> 1617 <tr> <td><a name='SkRect_makeInset_dy'><code><strong>dy</strong></code></a></td> 1618 <td>added to <a href='#SkRect_fTop'>fTop</a> and subtracted from <a href='#SkRect_fBottom'>fBottom</a></td> 1619 </tr> 1620</table> 1621 1622### Return Value 1623 1624<a href='SkRect_Reference#SkRect'>SkRect</a> inset symmetrically left and right, top and bottom 1625 1626### Example 1627 1628<div><fiddle-embed name="b8d32ab2f7ea3d4d5fb5a4ea2156f1c5"> 1629 1630#### Example Output 1631 1632~~~~ 1633rect: 10, 50, 20, 60 isEmpty: false 1634rect: 25, 82, 5, 28 isEmpty: true 1635~~~~ 1636 1637</fiddle-embed></div> 1638 1639### See Also 1640 1641<a href='#SkRect_inset'>inset()</a> <a href='#SkRect_makeOffset'>makeOffset</a> <a href='#SkRect_makeOutset'>makeOutset</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_makeInset'>makeInset</a> 1642 1643<a name='SkRect_makeOutset'></a> 1644 1645--- 1646 1647<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1648<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeOutset'>makeOutset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)const 1649</pre> 1650 1651Returns <a href='SkRect_Reference#SkRect'>SkRect</a>, outset by (<a href='#SkRect_makeOutset_dx'>dx</a>, <a href='#SkRect_makeOutset_dy'>dy</a>). 1652 1653If <a href='#SkRect_makeOutset_dx'>dx</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is narrower. 1654If <a href='#SkRect_makeOutset_dx'>dx</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is wider. 1655If <a href='#SkRect_makeOutset_dy'>dy</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is shorter. 1656If <a href='#SkRect_makeOutset_dy'>dy</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is taller. 1657 1658### Parameters 1659 1660<table> <tr> <td><a name='SkRect_makeOutset_dx'><code><strong>dx</strong></code></a></td> 1661 <td>subtracted to <a href='#SkRect_fLeft'>fLeft</a> and added from <a href='#SkRect_fRight'>fRight</a></td> 1662 </tr> 1663 <tr> <td><a name='SkRect_makeOutset_dy'><code><strong>dy</strong></code></a></td> 1664 <td>subtracted to <a href='#SkRect_fTop'>fTop</a> and added from <a href='#SkRect_fBottom'>fBottom</a></td> 1665 </tr> 1666</table> 1667 1668### Return Value 1669 1670<a href='SkRect_Reference#SkRect'>SkRect</a> outset symmetrically left and right, top and bottom 1671 1672### Example 1673 1674<div><fiddle-embed name="87176fc60914cbca9c6a20998a033c24"> 1675 1676#### Example Output 1677 1678~~~~ 1679rect: 10, 50, 20, 60 isEmpty: false 1680rect: -5, 18, 35, 92 isEmpty: false 1681~~~~ 1682 1683</fiddle-embed></div> 1684 1685### See Also 1686 1687<a href='#SkRect_outset'>outset()</a> <a href='#SkRect_makeOffset'>makeOffset</a> <a href='#SkRect_makeInset'>makeInset</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_makeOutset'>makeOutset</a> 1688 1689<a name='SkRect_offset'></a> 1690 1691--- 1692 1693<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1694void offset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) 1695</pre> 1696 1697Offsets <a href='SkRect_Reference#SkRect'>SkRect</a> by adding <a href='#SkRect_offset_dx'>dx</a> to <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fRight'>fRight</a>; and by adding <a href='#SkRect_offset_dy'>dy</a> to <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fBottom'>fBottom</a>. 1698 1699If <a href='#SkRect_offset_dx'>dx</a> is negative, moves <a href='SkRect_Reference#SkRect'>SkRect</a> to the left. 1700If <a href='#SkRect_offset_dx'>dx</a> is positive, moves <a href='SkRect_Reference#SkRect'>SkRect</a> to the right. 1701If <a href='#SkRect_offset_dy'>dy</a> is negative, moves <a href='SkRect_Reference#SkRect'>SkRect</a> upward. 1702If <a href='#SkRect_offset_dy'>dy</a> is positive, moves <a href='SkRect_Reference#SkRect'>SkRect</a> downward. 1703 1704### Parameters 1705 1706<table> <tr> <td><a name='SkRect_offset_dx'><code><strong>dx</strong></code></a></td> 1707 <td>offset added to <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a></td> 1708 </tr> 1709 <tr> <td><a name='SkRect_offset_dy'><code><strong>dy</strong></code></a></td> 1710 <td>offset added to <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a></td> 1711 </tr> 1712</table> 1713 1714### Example 1715 1716<div><fiddle-embed name="04eb33f0fd376f2942ca5f1c7f6cbcfc"> 1717 1718#### Example Output 1719 1720~~~~ 1721rect: 15, 27, 55, 86 1722~~~~ 1723 1724</fiddle-embed></div> 1725 1726### See Also 1727 1728<a href='#SkRect_offsetTo'>offsetTo</a> <a href='#SkRect_makeOffset'>makeOffset</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_offset'>offset</a> 1729 1730<a name='SkRect_offset_2'></a> 1731 1732--- 1733 1734<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1735void offset(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& delta) 1736</pre> 1737 1738Offsets <a href='SkRect_Reference#SkRect'>SkRect</a> by adding <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fX'>fX</a> to <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fRight'>fRight</a>; and by adding <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fY'>fY</a> to 1739<a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fBottom'>fBottom</a>. 1740 1741If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fX'>fX</a> is negative, moves <a href='SkRect_Reference#SkRect'>SkRect</a> to the left. 1742If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fX'>fX</a> is positive, moves <a href='SkRect_Reference#SkRect'>SkRect</a> to the right. 1743If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fY'>fY</a> is negative, moves <a href='SkRect_Reference#SkRect'>SkRect</a> upward. 1744If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fY'>fY</a> is positive, moves <a href='SkRect_Reference#SkRect'>SkRect</a> downward. 1745 1746### Parameters 1747 1748<table> <tr> <td><a name='SkRect_offset_2_delta'><code><strong>delta</strong></code></a></td> 1749 <td>added to <a href='SkRect_Reference#SkRect'>SkRect</a></td> 1750 </tr> 1751</table> 1752 1753### Example 1754 1755<div><fiddle-embed name="b24cf65561c98c1858a06c39f10fb797"> 1756 1757#### Example Output 1758 1759~~~~ 1760rect: 15, 27, 55, 86 1761~~~~ 1762 1763</fiddle-embed></div> 1764 1765### See Also 1766 1767<a href='#SkRect_offsetTo'>offsetTo</a> <a href='#SkRect_makeOffset'>makeOffset</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_offset'>offset</a> 1768 1769<a name='SkRect_offsetTo'></a> 1770 1771--- 1772 1773<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1774void <a href='#SkRect_offsetTo'>offsetTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> newX, <a href='undocumented#SkScalar'>SkScalar</a> newY) 1775</pre> 1776 1777Offsets <a href='SkRect_Reference#SkRect'>SkRect</a> so that <a href='#SkRect_fLeft'>fLeft</a> equals <a href='#SkRect_offsetTo_newX'>newX</a>, and <a href='#SkRect_fTop'>fTop</a> equals <a href='#SkRect_offsetTo_newY'>newY</a>. width and height 1778are unchanged. 1779 1780### Parameters 1781 1782<table> <tr> <td><a name='SkRect_offsetTo_newX'><code><strong>newX</strong></code></a></td> 1783 <td>stored in <a href='#SkRect_fLeft'>fLeft</a>, preserving <a href='#SkRect_width'>width()</a></td> 1784 </tr> 1785 <tr> <td><a name='SkRect_offsetTo_newY'><code><strong>newY</strong></code></a></td> 1786 <td>stored in <a href='#SkRect_fTop'>fTop</a>, preserving <a href='#SkRect_height'>height()</a></td> 1787 </tr> 1788</table> 1789 1790### Example 1791 1792<div><fiddle-embed name="bedb04b7b3e1af3e8039f9cffe66989e"> 1793 1794#### Example Output 1795 1796~~~~ 1797rect: 15, 27, 55, 86 1798~~~~ 1799 1800</fiddle-embed></div> 1801 1802### See Also 1803 1804<a href='#SkRect_offset'>offset</a> <a href='#SkRect_makeOffset'>makeOffset</a> <a href='#SkRect_setXYWH'>setXYWH</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_offsetTo'>offsetTo</a> 1805 1806<a name='SkRect_inset'></a> 1807 1808--- 1809 1810<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1811void inset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) 1812</pre> 1813 1814Insets <a href='SkRect_Reference#SkRect'>SkRect</a> by (<a href='#SkRect_inset_dx'>dx</a>, <a href='#SkRect_inset_dy'>dy</a>). 1815 1816If <a href='#SkRect_inset_dx'>dx</a> is positive, makes <a href='SkRect_Reference#SkRect'>SkRect</a> narrower. 1817If <a href='#SkRect_inset_dx'>dx</a> is negative, makes <a href='SkRect_Reference#SkRect'>SkRect</a> wider. 1818If <a href='#SkRect_inset_dy'>dy</a> is positive, makes <a href='SkRect_Reference#SkRect'>SkRect</a> shorter. 1819If <a href='#SkRect_inset_dy'>dy</a> is negative, makes <a href='SkRect_Reference#SkRect'>SkRect</a> taller. 1820 1821### Parameters 1822 1823<table> <tr> <td><a name='SkRect_inset_dx'><code><strong>dx</strong></code></a></td> 1824 <td>added to <a href='#SkRect_fLeft'>fLeft</a> and subtracted from <a href='#SkRect_fRight'>fRight</a></td> 1825 </tr> 1826 <tr> <td><a name='SkRect_inset_dy'><code><strong>dy</strong></code></a></td> 1827 <td>added to <a href='#SkRect_fTop'>fTop</a> and subtracted from <a href='#SkRect_fBottom'>fBottom</a></td> 1828 </tr> 1829</table> 1830 1831### Example 1832 1833<div><fiddle-embed name="dae21340941dc6e4d048816dfd9f204c"> 1834 1835#### Example Output 1836 1837~~~~ 1838rect: 15, 27, 45, 60 1839~~~~ 1840 1841</fiddle-embed></div> 1842 1843### See Also 1844 1845<a href='#SkRect_outset'>outset</a> <a href='#SkRect_makeInset'>makeInset</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_inset'>inset</a> 1846 1847<a name='SkRect_outset'></a> 1848 1849--- 1850 1851<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1852void outset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) 1853</pre> 1854 1855Outsets <a href='SkRect_Reference#SkRect'>SkRect</a> by (<a href='#SkRect_outset_dx'>dx</a>, <a href='#SkRect_outset_dy'>dy</a>). 1856 1857If <a href='#SkRect_outset_dx'>dx</a> is positive, makes <a href='SkRect_Reference#SkRect'>SkRect</a> wider. 1858If <a href='#SkRect_outset_dx'>dx</a> is negative, makes <a href='SkRect_Reference#SkRect'>SkRect</a> narrower. 1859If <a href='#SkRect_outset_dy'>dy</a> is positive, makes <a href='SkRect_Reference#SkRect'>SkRect</a> taller. 1860If <a href='#SkRect_outset_dy'>dy</a> is negative, makes <a href='SkRect_Reference#SkRect'>SkRect</a> shorter. 1861 1862### Parameters 1863 1864<table> <tr> <td><a name='SkRect_outset_dx'><code><strong>dx</strong></code></a></td> 1865 <td>subtracted to <a href='#SkRect_fLeft'>fLeft</a> and added from <a href='#SkRect_fRight'>fRight</a></td> 1866 </tr> 1867 <tr> <td><a name='SkRect_outset_dy'><code><strong>dy</strong></code></a></td> 1868 <td>subtracted to <a href='#SkRect_fTop'>fTop</a> and added from <a href='#SkRect_fBottom'>fBottom</a></td> 1869 </tr> 1870</table> 1871 1872### Example 1873 1874<div><fiddle-embed name="861f873ba660af8c8bf8b0b83d829cf4"> 1875 1876#### Example Output 1877 1878~~~~ 1879rect: 5, 1, 55, 86 1880~~~~ 1881 1882</fiddle-embed></div> 1883 1884### See Also 1885 1886<a href='#SkRect_inset'>inset</a> <a href='#SkRect_makeOutset'>makeOutset</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_outset'>outset</a> 1887 1888<a name='Intersection'></a> 1889 1890<a href='SkRect_Reference#Rect'>Rects</a> intersect when they enclose a common area. To intersect, each of the pair 1891must describe area; <a href='#SkRect_fLeft'>fLeft</a> is less than <a href='#SkRect_fRight'>fRight</a>, and <a href='#SkRect_fTop'>fTop</a> is less than <a href='#SkRect_fBottom'>fBottom</a>; 1892<a href='#SkRect_isEmpty'>isEmpty</a>() returns false. The intersection of <a href='SkRect_Reference#Rect'>Rect</a> pair can be described by: 1893<code>(<a href='undocumented#max()'>max</a>(a.<a href='#SkRect_fLeft'>fLeft</a>, b.<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#max()'>max</a>(a.<a href='#SkRect_fTop'>fTop</a>, b.<a href='#SkRect_fTop'>fTop</a>), 1894<a href='undocumented#min()'>min</a>(a.<a href='#SkRect_fRight'>fRight</a>, b.<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#min()'>min</a>(a.<a href='#SkRect_fBottom'>fBottom</a>, b.<a href='#SkRect_fBottom'>fBottom</a>))</code>. 1895 1896The intersection is only meaningful if the resulting <a href='SkRect_Reference#Rect'>Rect</a> is not empty and 1897describes an area: <a href='#SkRect_fLeft'>fLeft</a> is less than <a href='#SkRect_fRight'>fRight</a>, and <a href='#SkRect_fTop'>fTop</a> is less than <a href='#SkRect_fBottom'>fBottom</a>. 1898 1899<a name='SkRect_contains'></a> 1900 1901--- 1902 1903<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1904bool contains(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)const 1905</pre> 1906 1907Returns true if: <a href='#SkRect_fLeft'>fLeft</a> <= <a href='#SkRect_contains_x'>x</a> < <a href='#SkRect_fRight'>fRight</a> && <a href='#SkRect_fTop'>fTop</a> <= <a href='#SkRect_contains_y'>y</a> < <a href='#SkRect_fBottom'>fBottom</a>. 1908Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty. 1909 1910### Parameters 1911 1912<table> <tr> <td><a name='SkRect_contains_x'><code><strong>x</strong></code></a></td> 1913 <td>test <a href='SkPoint_Reference#SkPoint'>SkPoint</a> x-coordinate</td> 1914 </tr> 1915 <tr> <td><a name='SkRect_contains_y'><code><strong>y</strong></code></a></td> 1916 <td>test <a href='SkPoint_Reference#SkPoint'>SkPoint</a> y-coordinate</td> 1917 </tr> 1918</table> 1919 1920### Return Value 1921 1922true if (<a href='#SkRect_contains_x'>x</a>, <a href='#SkRect_contains_y'>y</a>) is inside <a href='SkRect_Reference#SkRect'>SkRect</a> 1923 1924### Example 1925 1926<div><fiddle-embed name="85be528a78945a6dc4f7dccb80a80746"> 1927 1928#### Example Output 1929 1930~~~~ 1931rect: (30, 50, 40, 60) contains (30, 50) 1932rect: (30, 50, 40, 60) does not contain (39, 49) 1933rect: (30, 50, 40, 60) does not contain (29, 59) 1934~~~~ 1935 1936</fiddle-embed></div> 1937 1938### See Also 1939 1940<a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_contains'>contains</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>::<a href='#SkRRect_contains'>contains</a> 1941 1942<a name='SkRect_contains_2'></a> 1943 1944--- 1945 1946<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1947bool contains(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r)const 1948</pre> 1949 1950Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> contains <a href='#SkRect_contains_2_r'>r</a>. 1951Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty or <a href='#SkRect_contains_2_r'>r</a> is empty. 1952 1953<a href='SkRect_Reference#SkRect'>SkRect</a> contains <a href='#SkRect_contains_2_r'>r</a> when <a href='SkRect_Reference#SkRect'>SkRect</a> area completely includes <a href='#SkRect_contains_2_r'>r</a> area. 1954 1955### Parameters 1956 1957<table> <tr> <td><a name='SkRect_contains_2_r'><code><strong>r</strong></code></a></td> 1958 <td><a href='SkRect_Reference#SkRect'>SkRect</a> contained</td> 1959 </tr> 1960</table> 1961 1962### Return Value 1963 1964true if all sides of <a href='SkRect_Reference#SkRect'>SkRect</a> are outside <a href='#SkRect_contains_2_r'>r</a> 1965 1966### Example 1967 1968<div><fiddle-embed name="92f9e6aa5bb76791139a24cf7d8df99e"> 1969 1970#### Example Output 1971 1972~~~~ 1973rect: (30, 50, 40, 60) contains (30, 50, 31, 51) 1974rect: (30, 50, 40, 60) does not contain (39, 49, 40, 50) 1975rect: (30, 50, 40, 60) does not contain (29, 59, 30, 60) 1976~~~~ 1977 1978</fiddle-embed></div> 1979 1980### See Also 1981 1982<a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_contains'>contains</a> 1983 1984<a name='SkRect_contains_3'></a> 1985 1986--- 1987 1988<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1989bool contains(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r)const 1990</pre> 1991 1992Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> contains <a href='#SkRect_contains_3_r'>r</a>. 1993Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty or <a href='#SkRect_contains_3_r'>r</a> is empty. 1994 1995<a href='SkRect_Reference#SkRect'>SkRect</a> contains <a href='#SkRect_contains_3_r'>r</a> when <a href='SkRect_Reference#SkRect'>SkRect</a> area completely includes <a href='#SkRect_contains_3_r'>r</a> area. 1996 1997### Parameters 1998 1999<table> <tr> <td><a name='SkRect_contains_3_r'><code><strong>r</strong></code></a></td> 2000 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> contained</td> 2001 </tr> 2002</table> 2003 2004### Return Value 2005 2006true if all sides of <a href='SkRect_Reference#SkRect'>SkRect</a> are outside <a href='#SkRect_contains_3_r'>r</a> 2007 2008### Example 2009 2010<div><fiddle-embed name="dd58b699551dd44026a2c6386be27d88"> 2011 2012#### Example Output 2013 2014~~~~ 2015rect: (30, 50, 40, 60) contains (30, 50, 31, 51) 2016rect: (30, 50, 40, 60) does not contain (39, 49, 40, 50) 2017rect: (30, 50, 40, 60) does not contain (29, 59, 30, 60) 2018~~~~ 2019 2020</fiddle-embed></div> 2021 2022### See Also 2023 2024<a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_contains'>contains</a> 2025 2026<a name='SkRect_intersect'></a> 2027 2028--- 2029 2030<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2031bool intersect(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) 2032</pre> 2033 2034Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> intersects <a href='#SkRect_intersect_r'>r</a>, and sets <a href='SkRect_Reference#SkRect'>SkRect</a> to intersection. 2035Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> does not intersect <a href='#SkRect_intersect_r'>r</a>, and leaves <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged. 2036 2037Returns false if either <a href='#SkRect_intersect_r'>r</a> or <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, leaving <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged. 2038 2039### Parameters 2040 2041<table> <tr> <td><a name='SkRect_intersect_r'><code><strong>r</strong></code></a></td> 2042 <td>limit of result</td> 2043 </tr> 2044</table> 2045 2046### Return Value 2047 2048true if <a href='#SkRect_intersect_r'>r</a> and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common 2049 2050### Example 2051 2052<div><fiddle-embed name="5d0b12e0ef6f1c181dddded4274230ca"><div>Two <a href='undocumented#SkDebugf'>SkDebugf</a> calls are required. If the calls are combined, their arguments 2053may not be evaluated in left to right order: the printed intersection may 2054be before or after the call to intersect. 2055</div> 2056 2057#### Example Output 2058 2059~~~~ 2060intersection: 30, 60, 50, 80 2061~~~~ 2062 2063</fiddle-embed></div> 2064 2065### See Also 2066 2067<a href='#SkRect_intersects'>intersects</a> <a href='#SkRect_Intersects'>Intersects</a> <a href='#SkRect_join'>join</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_intersect'>intersect</a> 2068 2069<a name='SkRect_intersect_2'></a> 2070 2071--- 2072 2073<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2074bool intersect(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom) 2075</pre> 2076 2077Constructs <a href='SkRect_Reference#SkRect'>SkRect</a> to intersect from (<a href='#SkRect_intersect_2_left'>left</a>, <a href='#SkRect_intersect_2_top'>top</a>, <a href='#SkRect_intersect_2_right'>right</a>, <a href='#SkRect_intersect_2_bottom'>bottom</a>). Does not sort 2078construction. 2079 2080Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> intersects construction, and sets <a href='SkRect_Reference#SkRect'>SkRect</a> to intersection. 2081Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> does not intersect construction, and leaves <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged. 2082 2083Returns false if either construction or <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, leaving <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged. 2084 2085### Parameters 2086 2087<table> <tr> <td><a name='SkRect_intersect_2_left'><code><strong>left</strong></code></a></td> 2088 <td>x-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2089 </tr> 2090 <tr> <td><a name='SkRect_intersect_2_top'><code><strong>top</strong></code></a></td> 2091 <td>y-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2092 </tr> 2093 <tr> <td><a name='SkRect_intersect_2_right'><code><strong>right</strong></code></a></td> 2094 <td>x-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2095 </tr> 2096 <tr> <td><a name='SkRect_intersect_2_bottom'><code><strong>bottom</strong></code></a></td> 2097 <td>y-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2098 </tr> 2099</table> 2100 2101### Return Value 2102 2103true if construction and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common 2104 2105### Example 2106 2107<div><fiddle-embed name="5002f65a72def2787086a33131933e70"><div>Two <a href='undocumented#SkDebugf'>SkDebugf</a> calls are required. If the calls are combined, their arguments 2108may not be evaluated in <a href='#SkRect_intersect_2_left'>left</a> to <a href='#SkRect_intersect_2_right'>right</a> order: the printed intersection may 2109be before or after the call to intersect. 2110</div> 2111 2112#### Example Output 2113 2114~~~~ 2115intersection: 30, 60, 50, 80 2116~~~~ 2117 2118</fiddle-embed></div> 2119 2120### See Also 2121 2122<a href='#SkRect_intersects'>intersects</a> <a href='#SkRect_Intersects'>Intersects</a> <a href='#SkRect_join'>join</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_intersect'>intersect</a> 2123 2124<a name='SkRect_intersect_3'></a> 2125 2126--- 2127 2128<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2129bool intersect(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b) 2130</pre> 2131 2132Returns true if <a href='#SkRect_intersect_3_a'>a</a> intersects <a href='#SkRect_intersect_3_b'>b</a>, and sets <a href='SkRect_Reference#SkRect'>SkRect</a> to intersection. 2133Returns false if <a href='#SkRect_intersect_3_a'>a</a> does not intersect <a href='#SkRect_intersect_3_b'>b</a>, and leaves <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged. 2134 2135Returns false if either <a href='#SkRect_intersect_3_a'>a</a> or <a href='#SkRect_intersect_3_b'>b</a> is empty, leaving <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged. 2136 2137### Parameters 2138 2139<table> <tr> <td><a name='SkRect_intersect_3_a'><code><strong>a</strong></code></a></td> 2140 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td> 2141 </tr> 2142 <tr> <td><a name='SkRect_intersect_3_b'><code><strong>b</strong></code></a></td> 2143 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td> 2144 </tr> 2145</table> 2146 2147### Return Value 2148 2149true if <a href='#SkRect_intersect_3_a'>a</a> and <a href='#SkRect_intersect_3_b'>b</a> have area in common 2150 2151### Example 2152 2153<div><fiddle-embed name="d610437a65dd3e952719efe605cbd0c7"> 2154 2155#### Example Output 2156 2157~~~~ 2158intersection: 30, 60, 50, 80 2159~~~~ 2160 2161</fiddle-embed></div> 2162 2163### See Also 2164 2165<a href='#SkRect_intersects'>intersects</a> <a href='#SkRect_Intersects'>Intersects</a> <a href='#SkRect_join'>join</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_intersect'>intersect</a> 2166 2167<a name='SkRect_intersects'></a> 2168 2169--- 2170 2171<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2172bool intersects(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom)const 2173</pre> 2174 2175Constructs <a href='SkRect_Reference#SkRect'>SkRect</a> to intersect from (<a href='#SkRect_intersects_left'>left</a>, <a href='#SkRect_intersects_top'>top</a>, <a href='#SkRect_intersects_right'>right</a>, <a href='#SkRect_intersects_bottom'>bottom</a>). Does not sort 2176construction. 2177 2178Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> intersects construction. 2179Returns false if either construction or <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, or do not intersect. 2180 2181### Parameters 2182 2183<table> <tr> <td><a name='SkRect_intersects_left'><code><strong>left</strong></code></a></td> 2184 <td>x-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2185 </tr> 2186 <tr> <td><a name='SkRect_intersects_top'><code><strong>top</strong></code></a></td> 2187 <td>y-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2188 </tr> 2189 <tr> <td><a name='SkRect_intersects_right'><code><strong>right</strong></code></a></td> 2190 <td>x-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2191 </tr> 2192 <tr> <td><a name='SkRect_intersects_bottom'><code><strong>bottom</strong></code></a></td> 2193 <td>y-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2194 </tr> 2195</table> 2196 2197### Return Value 2198 2199true if construction and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common 2200 2201### Example 2202 2203<div><fiddle-embed name="7145dc17ebce4f54e892102f6c98e811"> 2204 2205#### Example Output 2206 2207~~~~ 2208intersection 2209~~~~ 2210 2211</fiddle-embed></div> 2212 2213### See Also 2214 2215<a href='#SkRect_intersect'>intersect</a> <a href='#SkRect_Intersects'>Intersects</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_Intersects'>Intersects</a> 2216 2217<a name='SkRect_intersects_2'></a> 2218 2219--- 2220 2221<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2222bool intersects(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r)const 2223</pre> 2224 2225Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> intersects <a href='#SkRect_intersects_2_r'>r</a>. 2226Returns false if either <a href='#SkRect_intersects_2_r'>r</a> or <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, or do not intersect. 2227 2228### Parameters 2229 2230<table> <tr> <td><a name='SkRect_intersects_2_r'><code><strong>r</strong></code></a></td> 2231 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td> 2232 </tr> 2233</table> 2234 2235### Return Value 2236 2237true if <a href='#SkRect_intersects_2_r'>r</a> and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common 2238 2239### Example 2240 2241<div><fiddle-embed name="ca37b4231b21eb8296cb19ba9e0c781b"> 2242 2243#### Example Output 2244 2245~~~~ 2246intersection 2247~~~~ 2248 2249</fiddle-embed></div> 2250 2251### See Also 2252 2253<a href='#SkRect_intersect'>intersect</a> <a href='#SkRect_Intersects'>Intersects</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_Intersects'>Intersects</a> 2254 2255<a name='SkRect_Intersects'></a> 2256 2257--- 2258 2259<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2260static bool <a href='#SkRect_Intersects'>Intersects</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b) 2261</pre> 2262 2263Returns true if <a href='#SkRect_Intersects_a'>a</a> intersects <a href='#SkRect_Intersects_b'>b</a>. 2264Returns false if either <a href='#SkRect_Intersects_a'>a</a> or <a href='#SkRect_Intersects_b'>b</a> is empty, or do not intersect. 2265 2266### Parameters 2267 2268<table> <tr> <td><a name='SkRect_Intersects_a'><code><strong>a</strong></code></a></td> 2269 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td> 2270 </tr> 2271 <tr> <td><a name='SkRect_Intersects_b'><code><strong>b</strong></code></a></td> 2272 <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td> 2273 </tr> 2274</table> 2275 2276### Return Value 2277 2278true if <a href='#SkRect_Intersects_a'>a</a> and <a href='#SkRect_Intersects_b'>b</a> have area in common 2279 2280### Example 2281 2282<div><fiddle-embed name="795061764b10c9e05efb466c9cb60644"> 2283 2284#### Example Output 2285 2286~~~~ 2287intersection 2288~~~~ 2289 2290</fiddle-embed></div> 2291 2292### See Also 2293 2294<a href='#SkRect_intersect'>intersect</a> <a href='#SkRect_intersects'>intersects</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_Intersects'>Intersects</a> 2295 2296<a name='Join'></a> 2297 2298<a name='SkRect_join'></a> 2299 2300--- 2301 2302<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2303void join(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom) 2304</pre> 2305 2306Constructs <a href='SkRect_Reference#SkRect'>SkRect</a> to intersect from (<a href='#SkRect_join_left'>left</a>, <a href='#SkRect_join_top'>top</a>, <a href='#SkRect_join_right'>right</a>, <a href='#SkRect_join_bottom'>bottom</a>). Does not sort 2307construction. 2308 2309Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to the union of itself and the construction. 2310 2311Has no effect if construction is empty. Otherwise, if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, sets 2312<a href='SkRect_Reference#SkRect'>SkRect</a> to construction. 2313 2314### Parameters 2315 2316<table> <tr> <td><a name='SkRect_join_left'><code><strong>left</strong></code></a></td> 2317 <td>x-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2318 </tr> 2319 <tr> <td><a name='SkRect_join_top'><code><strong>top</strong></code></a></td> 2320 <td>y-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2321 </tr> 2322 <tr> <td><a name='SkRect_join_right'><code><strong>right</strong></code></a></td> 2323 <td>x-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2324 </tr> 2325 <tr> <td><a name='SkRect_join_bottom'><code><strong>bottom</strong></code></a></td> 2326 <td>y-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2327 </tr> 2328</table> 2329 2330### Example 2331 2332<div><fiddle-embed name="afa9c6b4d05bb669db07fe0b7b97e6aa"> 2333 2334#### Example Output 2335 2336~~~~ 2337join: 10, 20, 55, 65 2338~~~~ 2339 2340</fiddle-embed></div> 2341 2342### See Also 2343 2344<a href='#SkRect_joinNonEmptyArg'>joinNonEmptyArg</a> <a href='#SkRect_joinPossiblyEmptyRect'>joinPossiblyEmptyRect</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_join'>join</a> 2345 2346<a name='SkRect_join_2'></a> 2347 2348--- 2349 2350<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2351void join(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) 2352</pre> 2353 2354Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to the union of itself and <a href='#SkRect_join_2_r'>r</a>. 2355 2356Has no effect if <a href='#SkRect_join_2_r'>r</a> is empty. Otherwise, if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, sets 2357<a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='#SkRect_join_2_r'>r</a>. 2358 2359### Parameters 2360 2361<table> <tr> <td><a name='SkRect_join_2_r'><code><strong>r</strong></code></a></td> 2362 <td>expansion <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2363 </tr> 2364</table> 2365 2366### Example 2367 2368<div><fiddle-embed name="26500032494cf93c5fa3423110fe82af"> 2369 2370#### Example Output 2371 2372~~~~ 2373join: 10, 20, 55, 65 2374~~~~ 2375 2376</fiddle-embed></div> 2377 2378### See Also 2379 2380<a href='#SkRect_joinNonEmptyArg'>joinNonEmptyArg</a> <a href='#SkRect_joinPossiblyEmptyRect'>joinPossiblyEmptyRect</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_join'>join</a> 2381 2382<a name='SkRect_joinNonEmptyArg'></a> 2383 2384--- 2385 2386<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2387void <a href='#SkRect_joinNonEmptyArg'>joinNonEmptyArg</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) 2388</pre> 2389 2390Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to the union of itself and <a href='#SkRect_joinNonEmptyArg_r'>r</a>. 2391 2392Asserts if <a href='#SkRect_joinNonEmptyArg_r'>r</a> is empty and SK_DEBUG is defined. 2393If <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, sets <a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='#SkRect_joinNonEmptyArg_r'>r</a>. 2394 2395May produce incorrect results if <a href='#SkRect_joinNonEmptyArg_r'>r</a> is empty. 2396 2397### Parameters 2398 2399<table> <tr> <td><a name='SkRect_joinNonEmptyArg_r'><code><strong>r</strong></code></a></td> 2400 <td>expansion <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2401 </tr> 2402</table> 2403 2404### Example 2405 2406<div><fiddle-embed name="88439de2aa0911262c60c0eb506396cb"><div>Since <a href='SkRect_Reference#Rect'>Rect</a> is not sorted, first result is copy of toJoin. 2407</div> 2408 2409#### Example Output 2410 2411~~~~ 2412rect: 50, 60, 55, 65 2413sorted: 10, 0, 55, 100 2414~~~~ 2415 2416</fiddle-embed></div> 2417 2418### See Also 2419 2420<a href='#SkRect_join'>join</a> <a href='#SkRect_joinPossiblyEmptyRect'>joinPossiblyEmptyRect</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_join'>join</a> 2421 2422<a name='SkRect_joinPossiblyEmptyRect'></a> 2423 2424--- 2425 2426<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2427void <a href='#SkRect_joinPossiblyEmptyRect'>joinPossiblyEmptyRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) 2428</pre> 2429 2430Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to the union of itself and the construction. 2431 2432May produce incorrect results if <a href='SkRect_Reference#SkRect'>SkRect</a> or <a href='#SkRect_joinPossiblyEmptyRect_r'>r</a> is empty. 2433 2434### Parameters 2435 2436<table> <tr> <td><a name='SkRect_joinPossiblyEmptyRect_r'><code><strong>r</strong></code></a></td> 2437 <td>expansion <a href='SkRect_Reference#SkRect'>SkRect</a></td> 2438 </tr> 2439</table> 2440 2441### Example 2442 2443<div><fiddle-embed name="a476548d0001296afd8e58c1eba1b70b"><div>Since <a href='SkRect_Reference#Rect'>Rect</a> is not sorted, first result is not useful. 2444</div> 2445 2446#### Example Output 2447 2448~~~~ 2449rect: 10, 60, 55, 65 2450sorted: 10, 0, 55, 100 2451~~~~ 2452 2453</fiddle-embed></div> 2454 2455### See Also 2456 2457<a href='#SkRect_joinNonEmptyArg'>joinNonEmptyArg</a> <a href='#SkRect_join'>join</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_join'>join</a> 2458 2459<a name='Rounding'></a> 2460 2461<a name='SkRect_round'></a> 2462 2463--- 2464 2465<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2466void round(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* dst)const 2467</pre> 2468 2469Sets <a href='SkIRect_Reference#IRect'>IRect</a> by adding 0.5 and discarding the fractional portion of <a href='SkRect_Reference#Rect'>Rect</a> 2470members, using <code>(<a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fTop'>fTop</a>), 2471<a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fBottom'>fBottom</a>))</code>. 2472 2473### Parameters 2474 2475<table> <tr> <td><a name='SkRect_round_dst'><code><strong>dst</strong></code></a></td> 2476 <td>storage for <a href='SkIRect_Reference#IRect'>IRect</a></td> 2477 </tr> 2478</table> 2479 2480### Example 2481 2482<div><fiddle-embed name="8b9e5a9af0a9b878f76919534d88f41e"> 2483 2484#### Example Output 2485 2486~~~~ 2487round: 31, 51, 41, 61 2488~~~~ 2489 2490</fiddle-embed></div> 2491 2492### See Also 2493 2494<a href='#SkRect_roundIn'>roundIn</a> <a href='#SkRect_roundOut'>roundOut</a> <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a> 2495 2496<a name='SkRect_roundOut'></a> 2497 2498--- 2499 2500<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2501void <a href='#SkRect_roundOut'>roundOut</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* dst)const 2502</pre> 2503 2504Sets <a href='SkIRect_Reference#IRect'>IRect</a> by discarding the fractional portion of <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fTop'>fTop</a>; and rounding 2505up <a href='#SkRect_fRight'>fRight</a> and <a href='#SkRect_fBottom'>fBottom</a>, using 2506<code>(<a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fTop'>fTop</a>), 2507<a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fBottom'>fBottom</a>))</code>. 2508 2509### Parameters 2510 2511<table> <tr> <td><a name='SkRect_roundOut_dst'><code><strong>dst</strong></code></a></td> 2512 <td>storage for <a href='SkIRect_Reference#IRect'>IRect</a></td> 2513 </tr> 2514</table> 2515 2516### Example 2517 2518<div><fiddle-embed name="0bd13d7e6426ae7a3befa2ab151ac5fc"> 2519 2520#### Example Output 2521 2522~~~~ 2523round: 30, 50, 41, 61 2524~~~~ 2525 2526</fiddle-embed></div> 2527 2528### See Also 2529 2530<a href='#SkRect_roundIn'>roundIn</a> <a href='#SkRect_round'>round</a> <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a> 2531 2532<a name='SkRect_roundOut_2'></a> 2533 2534--- 2535 2536<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2537void <a href='#SkRect_roundOut'>roundOut</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst)const 2538</pre> 2539 2540Sets <a href='SkRect_Reference#Rect'>Rect</a> by discarding the fractional portion of <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fTop'>fTop</a>; and rounding 2541up <a href='#SkRect_fRight'>fRight</a> and <a href='#SkRect_fBottom'>fBottom</a>, using 2542<code>(<a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fTop'>fTop</a>), 2543<a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fBottom'>fBottom</a>))</code>. 2544 2545### Parameters 2546 2547<table> <tr> <td><a name='SkRect_roundOut_2_dst'><code><strong>dst</strong></code></a></td> 2548 <td>storage for <a href='SkRect_Reference#Rect'>Rect</a></td> 2549 </tr> 2550</table> 2551 2552### Example 2553 2554<div><fiddle-embed name="e09a6a12869a8ac21e9c2af98a5bb686"> 2555 2556#### Example Output 2557 2558~~~~ 2559round: 30, 50, 41, 61 2560~~~~ 2561 2562</fiddle-embed></div> 2563 2564### See Also 2565 2566<a href='#SkRect_roundIn'>roundIn</a> <a href='#SkRect_round'>round</a> <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a> 2567 2568<a name='SkRect_roundIn'></a> 2569 2570--- 2571 2572<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2573void <a href='#SkRect_roundIn'>roundIn</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* dst)const 2574</pre> 2575 2576Sets <a href='SkRect_Reference#Rect'>Rect</a> by rounding up <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fTop'>fTop</a>; and discarding the fractional portion 2577of <a href='#SkRect_fRight'>fRight</a> and <a href='#SkRect_fBottom'>fBottom</a>, using 2578<code>(<a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fTop'>fTop</a>), 2579<a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fBottom'>fBottom</a>))</code>. 2580 2581### Parameters 2582 2583<table> <tr> <td><a name='SkRect_roundIn_dst'><code><strong>dst</strong></code></a></td> 2584 <td>storage for <a href='SkIRect_Reference#IRect'>IRect</a></td> 2585 </tr> 2586</table> 2587 2588### Example 2589 2590<div><fiddle-embed name="abb337da8fc1891f016c61258681c64c"> 2591 2592#### Example Output 2593 2594~~~~ 2595round: 31, 51, 40, 60 2596~~~~ 2597 2598</fiddle-embed></div> 2599 2600### See Also 2601 2602<a href='#SkRect_roundOut'>roundOut</a> <a href='#SkRect_round'>round</a> <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a> 2603 2604<a name='SkRect_round_2'></a> 2605 2606--- 2607 2608<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2609<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkRect_round'>round()</a>const 2610</pre> 2611 2612Returns <a href='SkIRect_Reference#IRect'>IRect</a> by adding 0.5 and discarding the fractional portion of <a href='SkRect_Reference#Rect'>Rect</a> 2613members, using <code>(<a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fTop'>fTop</a>), 2614<a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fBottom'>fBottom</a>))</code>. 2615 2616### Return Value 2617 2618rounded <a href='SkIRect_Reference#IRect'>IRect</a> 2619 2620### Example 2621 2622<div><fiddle-embed name="ef7ae1dd522c235b0afe41b55a624f46"> 2623 2624#### Example Output 2625 2626~~~~ 2627round: 31, 51, 41, 61 2628~~~~ 2629 2630</fiddle-embed></div> 2631 2632### See Also 2633 2634<a href='#SkRect_roundOut'>roundOut</a> <a href='#SkRect_roundIn'>roundIn</a> <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a> 2635 2636<a name='SkRect_roundOut_3'></a> 2637 2638--- 2639 2640<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2641<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkRect_roundOut'>roundOut</a>()const 2642</pre> 2643 2644Sets <a href='SkIRect_Reference#IRect'>IRect</a> by discarding the fractional portion of <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fTop'>fTop</a>; and rounding 2645up <a href='#SkRect_fRight'>fRight</a> and <a href='#SkRect_fBottom'>fBottom</a>, using 2646<code>(<a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fTop'>fTop</a>), 2647<a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fBottom'>fBottom</a>))</code>. 2648 2649### Return Value 2650 2651rounded <a href='SkIRect_Reference#IRect'>IRect</a> 2652 2653### Example 2654 2655<div><fiddle-embed name="05f0f65ae148f192656cd87df90f1d57"> 2656 2657#### Example Output 2658 2659~~~~ 2660round: 30, 50, 41, 61 2661~~~~ 2662 2663</fiddle-embed></div> 2664 2665### See Also 2666 2667<a href='#SkRect_round'>round</a> <a href='#SkRect_roundIn'>roundIn</a> <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a> 2668 2669<a name='Sorting'></a> 2670 2671<a name='SkRect_sort'></a> 2672 2673--- 2674 2675<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2676void <a href='#SkRect_sort'>sort()</a> 2677</pre> 2678 2679Swaps <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if <a href='#SkRect_fLeft'>fLeft</a> is greater than <a href='#SkRect_fRight'>fRight</a>; and swaps 2680<a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if <a href='#SkRect_fTop'>fTop</a> is greater than <a href='#SkRect_fBottom'>fBottom</a>. Result may be empty; 2681and <a href='#SkRect_width'>width()</a> and <a href='#SkRect_height'>height()</a> will be zero or positive. 2682 2683### Example 2684 2685<div><fiddle-embed name="e624fe398e3d770b573c09fc74c0c400"> 2686 2687#### Example Output 2688 2689~~~~ 2690rect: 30.5, 50.5, 20.5, 10.5 2691sorted: 20.5, 10.5, 30.5, 50.5 2692~~~~ 2693 2694</fiddle-embed></div> 2695 2696### See Also 2697 2698<a href='#SkRect_makeSorted'>makeSorted</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_sort'>sort</a> <a href='#SkRect_isSorted'>isSorted</a> 2699 2700<a name='SkRect_makeSorted'></a> 2701 2702--- 2703 2704<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2705<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeSorted'>makeSorted</a>()const 2706</pre> 2707 2708Returns <a href='SkRect_Reference#SkRect'>SkRect</a> with <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> swapped if <a href='#SkRect_fLeft'>fLeft</a> is greater than <a href='#SkRect_fRight'>fRight</a>; and 2709with <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> swapped if <a href='#SkRect_fTop'>fTop</a> is greater than <a href='#SkRect_fBottom'>fBottom</a>. Result may be empty; 2710and <a href='#SkRect_width'>width()</a> and <a href='#SkRect_height'>height()</a> will be zero or positive. 2711 2712### Return Value 2713 2714sorted <a href='SkRect_Reference#SkRect'>SkRect</a> 2715 2716### Example 2717 2718<div><fiddle-embed name="f59567042b87f6b26f9bfeeb04468032"> 2719 2720#### Example Output 2721 2722~~~~ 2723rect: 30.5, 50.5, 20.5, 10.5 2724sorted: 20.5, 10.5, 30.5, 50.5 2725~~~~ 2726 2727</fiddle-embed></div> 2728 2729### See Also 2730 2731<a href='#SkRect_sort'>sort</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_makeSorted'>makeSorted</a> <a href='#SkRect_isSorted'>isSorted</a> 2732 2733<a name='SkRect_asScalars'></a> 2734 2735--- 2736 2737<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2738const <a href='undocumented#SkScalar'>SkScalar</a>* <a href='#SkRect_asScalars'>asScalars</a>()const 2739</pre> 2740 2741Returns pointer to first <a href='undocumented#Scalar'>scalar</a> in <a href='SkRect_Reference#SkRect'>SkRect</a>, to treat it as an array with four 2742entries. 2743 2744### Return Value 2745 2746pointer to <a href='#SkRect_fLeft'>fLeft</a> 2747 2748### Example 2749 2750<div><fiddle-embed name="e1ea5f949d80276f3637931eae93a07c"> 2751 2752#### Example Output 2753 2754~~~~ 2755rect.asScalars() == &rect.fLeft 2756~~~~ 2757 2758</fiddle-embed></div> 2759 2760### See Also 2761 2762<a href='#SkRect_toQuad'>toQuad</a> 2763 2764<a name='SkRect_dump'></a> 2765 2766--- 2767 2768<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2769void <a href='#SkRect_dump'>dump</a>(bool asHex)const 2770</pre> 2771 2772Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRect_Reference#SkRect'>SkRect</a> to standard output. Set <a href='#SkRect_dump_asHex'>asHex</a> to true to 2773generate exact binary representations of floating <a href='SkPoint_Reference#Point'>point</a> numbers. 2774 2775### Parameters 2776 2777<table> <tr> <td><a name='SkRect_dump_asHex'><code><strong>asHex</strong></code></a></td> 2778 <td>true if <a href='undocumented#SkScalar'>SkScalar</a> values are written as hexadecimal</td> 2779 </tr> 2780</table> 2781 2782### Example 2783 2784<div><fiddle-embed name="cea049ffff702a5923da41fe0ae0763b"> 2785 2786#### Example Output 2787 2788~~~~ 2789SkRect::MakeLTRB(20, 30, 40, 50); 2790SkRect::MakeLTRB(SkBits2Float(0x41a00000), /* 20.000000 */ 2791SkBits2Float(0x41f00000), /* 30.000000 */ 2792SkBits2Float(0x42200000), /* 40.000000 */ 2793SkBits2Float(0x42480000) /* 50.000000 */); 2794~~~~ 2795 2796</fiddle-embed></div> 2797 2798### See Also 2799 2800<a href='#SkRect_dumpHex'>dumpHex</a> 2801 2802<a name='SkRect_dump_2'></a> 2803 2804--- 2805 2806<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2807void <a href='#SkRect_dump'>dump()</a>const 2808</pre> 2809 2810Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRect_Reference#SkRect'>SkRect</a> to standard output. The representation may be 2811directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are written 2812with limited precision; it may not be possible to reconstruct original <a href='SkRect_Reference#SkRect'>SkRect</a> 2813from output. 2814 2815### Example 2816 2817<div><fiddle-embed name="9fb76971b1a104a2a59816e0392267a7"> 2818 2819#### Example Output 2820 2821~~~~ 2822SkRect::MakeLTRB(0.857143f, 0.666667f, 2.6f, 7); 2823rect is not equal to copy 2824~~~~ 2825 2826</fiddle-embed></div> 2827 2828### See Also 2829 2830<a href='#SkRect_dumpHex'>dumpHex</a> 2831 2832<a name='SkRect_dumpHex'></a> 2833 2834--- 2835 2836<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2837void <a href='#SkRect_dumpHex'>dumpHex</a>()const 2838</pre> 2839 2840Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRect_Reference#Rect'>Rect</a> to standard output. The representation may be 2841directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are written 2842in hexadecimal to preserve their exact bit pattern. The output reconstructs the 2843original <a href='SkRect_Reference#Rect'>Rect</a>. 2844 2845Use instead of <a href='#SkRect_dump'>dump()</a> when submitting 2846<a href='https://bug.skia.org'>bug reports against Skia</a></a> . 2847 2848### Example 2849 2850<div><fiddle-embed name="824b5a3fcfd46a7e1c5f9e3c16e6bb39"> 2851 2852#### Example Output 2853 2854~~~~ 2855SkRect::MakeLTRB(SkBits2Float(0x3f5b6db7), /* 0.857143 */ 2856SkBits2Float(0x3f2aaaab), /* 0.666667 */ 2857SkBits2Float(0x40266666), /* 2.600000 */ 2858SkBits2Float(0x40e00000) /* 7.000000 */); 2859rect is equal to copy 2860~~~~ 2861 2862</fiddle-embed></div> 2863 2864### See Also 2865 2866<a href='#SkRect_dump'>dump</a> 2867 2868