1SkIRect Reference 2=== 3 4 5<a name='SkIRect'></a> 6 7--- 8 9<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0"> 10struct <a href='SkIRect_Reference#SkIRect'>SkIRect</a> { 11 12 int32_t <a href='#SkIRect_fLeft'>fLeft</a>; 13 int32_t <a href='#SkIRect_fTop'>fTop</a>; 14 int32_t <a href='#SkIRect_fRight'>fRight</a>; 15 int32_t <a href='#SkIRect_fBottom'>fBottom</a>; 16 17 static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeEmpty'>MakeEmpty</a>(); 18 static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeWH'>MakeWH</a>(int32_t w, int32_t h); 19 static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeSize'>MakeSize</a>(const <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>); 20 static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeLTRB'>MakeLTRB</a>(int32_t l, int32_t t, 21 int32_t r, int32_t b); 22 static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeXYWH'>MakeXYWH</a>(int32_t x, int32_t y, 23 int32_t w, int32_t h); 24 int32_t <a href='#SkIRect_left'>left()</a> const; 25 int32_t <a href='#SkIRect_top'>top()</a> const; 26 int32_t <a href='#SkIRect_right'>right()</a> const; 27 int32_t <a href='#SkIRect_bottom'>bottom()</a> const; 28 int32_t <a href='#SkIRect_x'>x()</a> const; 29 int32_t <a href='#SkIRect_y'>y()</a> const; 30 int32_t <a href='#SkIRect_width'>width()</a> const; 31 int32_t <a href='#SkIRect_height'>height()</a> const; 32 <a href='undocumented#SkISize'>SkISize</a> <a href='#SkIRect_size'>size()</a> const; 33 int64_t <a href='#SkIRect_width64'>width64</a>() const; 34 int64_t <a href='#SkIRect_height64'>height64</a>() const; 35 bool <a href='#SkIRect_isEmpty64'>isEmpty64</a>() const; 36 bool <a href='#SkIRect_isEmpty'>isEmpty</a>() const; 37 friend bool <a href='#SkIRect_equal_operator'>operator==</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b); 38 friend bool <a href='#SkIRect_notequal_operator'>operator!=</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b); 39 void <a href='#SkIRect_setEmpty'>setEmpty</a>(); 40 void <a href='#SkIRect_set'>set</a>(int32_t left, int32_t top, int32_t right, int32_t bottom); 41 void <a href='#SkIRect_setLTRB'>setLTRB</a>(int32_t left, int32_t top, int32_t right, int32_t bottom); 42 void <a href='#SkIRect_setXYWH'>setXYWH</a>(int32_t x, int32_t y, int32_t width, int32_t height); 43 <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOffset'>makeOffset</a>(int32_t dx, int32_t dy) const; 44 <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeInset'>makeInset</a>(int32_t dx, int32_t dy) const; 45 <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOutset'>makeOutset</a>(int32_t dx, int32_t dy) const; 46 void <a href='#SkIRect_offset'>offset</a>(int32_t dx, int32_t dy); 47 void <a href='#SkIRect_offset'>offset</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& delta); 48 void <a href='#SkIRect_offsetTo'>offsetTo</a>(int32_t newX, int32_t newY); 49 void <a href='#SkIRect_inset'>inset</a>(int32_t dx, int32_t dy); 50 void <a href='#SkIRect_outset'>outset</a>(int32_t dx, int32_t dy); 51 void <a href='#SkIRect_adjust'>adjust</a>(int32_t dL, int32_t dT, int32_t dR, int32_t dB); 52 bool <a href='#SkIRect_contains'>contains</a>(int32_t x, int32_t y) const; 53 bool <a href='#SkIRect_contains'>contains</a>(int32_t left, int32_t top, int32_t right, int32_t bottom) const; 54 bool <a href='#SkIRect_contains'>contains</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const; 55 bool <a href='#SkIRect_contains'>contains</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) const; 56 bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(int32_t left, int32_t top, 57 int32_t right, int32_t bottom) const; 58 bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const; 59 bool <a href='#SkIRect_intersect'>intersect</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r); 60 bool <a href='#SkIRect_intersectNoEmptyCheck'>intersectNoEmptyCheck</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b); 61 bool <a href='#SkIRect_intersect'>intersect</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b); 62 bool <a href='#SkIRect_intersect'>intersect</a>(int32_t left, int32_t top, int32_t right, int32_t bottom); 63 static bool <a href='#SkIRect_Intersects'>Intersects</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b); 64 static bool <a href='#SkIRect_IntersectsNoEmptyCheck'>IntersectsNoEmptyCheck</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b); 65 void <a href='#SkIRect_join'>join</a>(int32_t left, int32_t top, int32_t right, int32_t bottom); 66 void <a href='#SkIRect_join'>join</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r); 67 void <a href='#SkIRect_sort'>sort()</a>; 68 <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeSorted'>makeSorted</a>() const; 69 static const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkIRect_EmptyIRect'>EmptyIRect</a>(); 70}; 71 72</pre> 73 74<a href='SkIRect_Reference#SkIRect'>SkIRect</a> holds four 32-bit integer coordinates describing the upper and 75lower bounds of a rectangle. <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be created from outer bounds or 76from position, width, and height. <a href='SkIRect_Reference#SkIRect'>SkIRect</a> describes an area; if its right 77is less than or equal to its left, or if its bottom is less than or equal to 78its top, it is considered empty.<table style='border-collapse: collapse; width: 62.5em'> 79 80 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th> 81<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</th> 82<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr> 83 <tr style='background-color: #f0f0f0; '> 84 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td> 85 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIRect_fLeft'><code>fLeft</code></a></td> 86 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '> 87May contain any value. The smaller of the horizontal values when sorted. 88When equal to or greater than <a href='#SkIRect_fRight'>fRight</a>, <a href='SkIRect_Reference#IRect'>IRect</a> is empty. 89</td> 90 </tr> 91 <tr> 92 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td> 93 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIRect_fTop'><code>fTop</code></a></td> 94 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '> 95May contain any value. The smaller of the horizontal values when sorted. 96When equal to or greater than <a href='#SkIRect_fBottom'>fBottom</a>, <a href='SkIRect_Reference#IRect'>IRect</a> is empty. 97</td> 98 </tr> 99 <tr style='background-color: #f0f0f0; '> 100 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td> 101 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIRect_fRight'><code>fRight</code></a></td> 102 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '> 103May contain any value. The larger of the vertical values when sorted. 104When equal to or less than <a href='#SkIRect_fLeft'>fLeft</a>, <a href='SkIRect_Reference#IRect'>IRect</a> is empty. 105</td> 106 </tr> 107 <tr> 108 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td> 109 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIRect_fBottom'><code>fBottom</code></a></td> 110 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '> 111May contain any value. The larger of the vertical values when sorted. 112When equal to or less than <a href='#SkIRect_fTop'>fTop</a>, <a href='SkIRect_Reference#IRect'>IRect</a> is empty. 113</td> 114 </tr> 115</table> 116 117<a name='SkIRect_MakeEmpty'></a> 118 119--- 120 121<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 122static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeEmpty'>MakeEmpty</a>() 123</pre> 124 125Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, 0, 0). 126Many other rectangles are empty; if left is equal to or greater than right, 127or if top is equal to or greater than bottom. Setting all members to zero 128is a convenience, but does not designate a special empty rectangle. 129 130### Return Value 131 132bounds (0, 0, 0, 0) 133 134### Example 135 136<div><fiddle-embed name="0ade3971c1d2616564992e286966ec8a"> 137 138#### Example Output 139 140~~~~ 141MakeEmpty isEmpty: true 142offset rect isEmpty: true 143inset rect isEmpty: true 144outset rect isEmpty: false 145~~~~ 146 147</fiddle-embed></div> 148 149### See Also 150 151<a href='#SkIRect_EmptyIRect'>EmptyIRect</a> <a href='#SkIRect_isEmpty'>isEmpty</a> <a href='#SkIRect_setEmpty'>setEmpty</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeEmpty'>MakeEmpty</a> 152 153<a name='SkIRect_MakeWH'></a> 154 155--- 156 157<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 158static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeWH'>MakeWH</a>(int32_t w, int32_t h) 159</pre> 160 161Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, <a href='#SkIRect_MakeWH_w'>w</a>, <a href='#SkIRect_MakeWH_h'>h</a>). Does not validate input; <a href='#SkIRect_MakeWH_w'>w</a> or <a href='#SkIRect_MakeWH_h'>h</a> 162may be negative. 163 164### Parameters 165 166<table> <tr> <td><a name='SkIRect_MakeWH_w'><code><strong>w</strong></code></a></td> 167 <td>width of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 168 </tr> 169 <tr> <td><a name='SkIRect_MakeWH_h'><code><strong>h</strong></code></a></td> 170 <td>height of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 171 </tr> 172</table> 173 174### Return Value 175 176bounds (0, 0, <a href='#SkIRect_MakeWH_w'>w</a>, <a href='#SkIRect_MakeWH_h'>h</a>) 177 178### Example 179 180<div><fiddle-embed name="e36827a1a6ae2b1c26e7a8a08f325a07"> 181 182#### Example Output 183 184~~~~ 185all equal 186~~~~ 187 188</fiddle-embed></div> 189 190### See Also 191 192<a href='#SkIRect_MakeSize'>MakeSize</a> <a href='#SkIRect_MakeXYWH'>MakeXYWH</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeWH'>MakeWH</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeIWH'>MakeIWH</a> 193 194<a name='SkIRect_MakeSize'></a> 195 196--- 197 198<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 199static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeSize'>MakeSize</a>(const <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>) 200</pre> 201 202Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_width'>width()</a>, <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_height'>height()</a>). 203Does not validate input; <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_width'>width()</a> or <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_height'>height()</a> may be negative. 204 205### Parameters 206 207<table> <tr> <td><a name='SkIRect_MakeSize_size'><code><strong>size</strong></code></a></td> 208 <td>values for <a href='SkIRect_Reference#SkIRect'>SkIRect</a> width and height</td> 209 </tr> 210</table> 211 212### Return Value 213 214bounds (0, 0, <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_width'>width()</a>, <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_height'>height()</a>) 215 216### Example 217 218<div><fiddle-embed name="c6586ff8d24869c780169b0d19c75df6"> 219 220#### Example Output 221 222~~~~ 223round width: 26 height: 36 224floor width: 25 height: 35 225~~~~ 226 227</fiddle-embed></div> 228 229### See Also 230 231<a href='#SkIRect_MakeWH'>MakeWH</a> <a href='#SkIRect_MakeXYWH'>MakeXYWH</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_Make'>Make</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeIWH'>MakeIWH</a> 232 233<a name='SkIRect_MakeLTRB'></a> 234 235--- 236 237<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 238static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeLTRB'>MakeLTRB</a>(int32_t l, int32_t t, int32_t r, int32_t b) 239</pre> 240 241Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (<a href='#SkIRect_MakeLTRB_l'>l</a>, <a href='#SkIRect_MakeLTRB_t'>t</a>, <a href='#SkIRect_MakeLTRB_r'>r</a>, <a href='#SkIRect_MakeLTRB_b'>b</a>). Does not sort input; <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may 242result in <a href='#SkIRect_fLeft'>fLeft</a> greater than <a href='#SkIRect_fRight'>fRight</a>, or <a href='#SkIRect_fTop'>fTop</a> greater than <a href='#SkIRect_fBottom'>fBottom</a>. 243 244### Parameters 245 246<table> <tr> <td><a name='SkIRect_MakeLTRB_l'><code><strong>l</strong></code></a></td> 247 <td>integer stored in <a href='#SkIRect_fLeft'>fLeft</a></td> 248 </tr> 249 <tr> <td><a name='SkIRect_MakeLTRB_t'><code><strong>t</strong></code></a></td> 250 <td>integer stored in <a href='#SkIRect_fTop'>fTop</a></td> 251 </tr> 252 <tr> <td><a name='SkIRect_MakeLTRB_r'><code><strong>r</strong></code></a></td> 253 <td>integer stored in <a href='#SkIRect_fRight'>fRight</a></td> 254 </tr> 255 <tr> <td><a name='SkIRect_MakeLTRB_b'><code><strong>b</strong></code></a></td> 256 <td>integer stored in <a href='#SkIRect_fBottom'>fBottom</a></td> 257 </tr> 258</table> 259 260### Return Value 261 262bounds (<a href='#SkIRect_MakeLTRB_l'>l</a>, <a href='#SkIRect_MakeLTRB_t'>t</a>, <a href='#SkIRect_MakeLTRB_r'>r</a>, <a href='#SkIRect_MakeLTRB_b'>b</a>) 263 264### Example 265 266<div><fiddle-embed name="ec1473b700c594f2df9749a12a06b89b"> 267 268#### Example Output 269 270~~~~ 271rect: 5, 35, 15, 25 isEmpty: true 272rect: 5, 25, 15, 35 isEmpty: false 273~~~~ 274 275</fiddle-embed></div> 276 277### See Also 278 279<a href='#SkIRect_MakeXYWH'>MakeXYWH</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeLTRB'>MakeLTRB</a> 280 281<a name='SkIRect_MakeXYWH'></a> 282 283--- 284 285<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 286static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeXYWH'>MakeXYWH</a>(int32_t x, int32_t y, int32_t w, int32_t h) 287</pre> 288 289Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to: (<a href='#SkIRect_MakeXYWH_x'>x</a>, <a href='#SkIRect_MakeXYWH_y'>y</a>, <a href='#SkIRect_MakeXYWH_x'>x</a> + <a href='#SkIRect_MakeXYWH_w'>w</a>, <a href='#SkIRect_MakeXYWH_y'>y</a> + <a href='#SkIRect_MakeXYWH_h'>h</a>). 290Does not validate input; <a href='#SkIRect_MakeXYWH_w'>w</a> or <a href='#SkIRect_MakeXYWH_h'>h</a> may be negative. 291 292### Parameters 293 294<table> <tr> <td><a name='SkIRect_MakeXYWH_x'><code><strong>x</strong></code></a></td> 295 <td>stored in <a href='#SkIRect_fLeft'>fLeft</a></td> 296 </tr> 297 <tr> <td><a name='SkIRect_MakeXYWH_y'><code><strong>y</strong></code></a></td> 298 <td>stored in <a href='#SkIRect_fTop'>fTop</a></td> 299 </tr> 300 <tr> <td><a name='SkIRect_MakeXYWH_w'><code><strong>w</strong></code></a></td> 301 <td>added to <a href='#SkIRect_MakeXYWH_x'>x</a> and stored in <a href='#SkIRect_fRight'>fRight</a></td> 302 </tr> 303 <tr> <td><a name='SkIRect_MakeXYWH_h'><code><strong>h</strong></code></a></td> 304 <td>added to <a href='#SkIRect_MakeXYWH_y'>y</a> and stored in <a href='#SkIRect_fBottom'>fBottom</a></td> 305 </tr> 306</table> 307 308### Return Value 309 310bounds at (<a href='#SkIRect_MakeXYWH_x'>x</a>, <a href='#SkIRect_MakeXYWH_y'>y</a>) with width <a href='#SkIRect_MakeXYWH_w'>w</a> and height <a href='#SkIRect_MakeXYWH_h'>h</a> 311 312### Example 313 314<div><fiddle-embed name="598ee14350bd1d961cae6b36fa3df17e"> 315 316#### Example Output 317 318~~~~ 319rect: 5, 35, -10, 60 isEmpty: true 320rect: -10, 35, 5, 60 isEmpty: false 321~~~~ 322 323</fiddle-embed></div> 324 325### See Also 326 327<a href='#SkIRect_MakeLTRB'>MakeLTRB</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeXYWH'>MakeXYWH</a> 328 329<a name='Property'></a> 330 331<a name='SkIRect_left'></a> 332 333--- 334 335<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 336int32_t <a href='#SkIRect_left'>left()</a>const 337</pre> 338 339Returns left edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. 340Call <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if needed. 341 342### Return Value 343 344<a href='#SkIRect_fLeft'>fLeft</a> 345 346### Example 347 348<div><fiddle-embed name="caf38ea4431bc246ba198f6a8c2b0f01"> 349 350#### Example Output 351 352~~~~ 353unsorted.fLeft: 15 unsorted.left(): 15 354sorted.fLeft: 10 sorted.left(): 10 355~~~~ 356 357</fiddle-embed></div> 358 359### See Also 360 361<a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_x'>x()</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_left'>left()</a> 362 363<a name='SkIRect_top'></a> 364 365--- 366 367<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 368int32_t <a href='#SkIRect_top'>top()</a>const 369</pre> 370 371Returns top edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a>() to see if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be invalid, 372and <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if needed. 373 374### Return Value 375 376<a href='#SkIRect_fTop'>fTop</a> 377 378### Example 379 380<div><fiddle-embed name="cbec1ae6530e95943775450b1d11f19e"> 381 382#### Example Output 383 384~~~~ 385unsorted.fTop: 25 unsorted.top(): 25 386sorted.fTop: 5 sorted.top(): 5 387~~~~ 388 389</fiddle-embed></div> 390 391### See Also 392 393<a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_y'>y()</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_top'>top()</a> 394 395<a name='SkIRect_right'></a> 396 397--- 398 399<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 400int32_t <a href='#SkIRect_right'>right()</a>const 401</pre> 402 403Returns right edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. 404Call <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if needed. 405 406### Return Value 407 408<a href='#SkIRect_fRight'>fRight</a> 409 410### Example 411 412<div><fiddle-embed name="97e210976f1ee0387b30c70635cf114f"> 413 414#### Example Output 415 416~~~~ 417unsorted.fRight: 10 unsorted.right(): 10 418sorted.fRight: 15 sorted.right(): 15 419~~~~ 420 421</fiddle-embed></div> 422 423### See Also 424 425<a href='#SkIRect_fRight'>fRight</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_right'>right()</a> 426 427<a name='SkIRect_bottom'></a> 428 429--- 430 431<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 432int32_t <a href='#SkIRect_bottom'>bottom()</a>const 433</pre> 434 435Returns bottom edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a>() to see if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be invalid, 436and <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if needed. 437 438### Return Value 439 440<a href='#SkIRect_fBottom'>fBottom</a> 441 442### Example 443 444<div><fiddle-embed name="c32afebc296054a181621648a184b8e3"> 445 446#### Example Output 447 448~~~~ 449unsorted.fBottom: 5 unsorted.bottom(): 5 450sorted.fBottom: 25 sorted.bottom(): 25 451~~~~ 452 453</fiddle-embed></div> 454 455### See Also 456 457<a href='#SkIRect_fBottom'>fBottom</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_bottom'>bottom()</a> 458 459<a name='SkIRect_x'></a> 460 461--- 462 463<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 464int32_t <a href='#SkIRect_x'>x()</a>const 465</pre> 466 467Returns left edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a>() to see if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be invalid, 468and <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if needed. 469 470### Return Value 471 472<a href='#SkIRect_fLeft'>fLeft</a> 473 474### Example 475 476<div><fiddle-embed name="2a59cbfd1330a0db520d6ebb2b7c68c7"> 477 478#### Example Output 479 480~~~~ 481unsorted.fLeft: 15 unsorted.x(): 15 482sorted.fLeft: 10 sorted.x(): 10 483~~~~ 484 485</fiddle-embed></div> 486 487### See Also 488 489<a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_left'>left()</a> <a href='#SkIRect_y'>y()</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_x'>x()</a> 490 491<a name='SkIRect_y'></a> 492 493--- 494 495<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 496int32_t <a href='#SkIRect_y'>y()</a>const 497</pre> 498 499Returns top edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a>() to see if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be invalid, 500and <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if needed. 501 502### Return Value 503 504<a href='#SkIRect_fTop'>fTop</a> 505 506### Example 507 508<div><fiddle-embed name="6ea461e71f7fc80605818fbf493caa63"> 509 510#### Example Output 511 512~~~~ 513unsorted.fTop: 25 unsorted.y(): 25 514sorted.fTop: 5 sorted.y(): 5 515~~~~ 516 517</fiddle-embed></div> 518 519### See Also 520 521<a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_top'>top()</a> <a href='#SkIRect_x'>x()</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_y'>y()</a> 522 523<a name='SkIRect_width'></a> 524 525--- 526 527<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 528int32_t <a href='#SkIRect_width'>width()</a>const 529</pre> 530 531Returns span on the x-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted, or if 532result fits in 32-bit signed integer; result may be negative. 533 534### Return Value 535 536<a href='#SkIRect_fRight'>fRight</a> minus <a href='#SkIRect_fLeft'>fLeft</a> 537 538### Example 539 540<div><fiddle-embed name="4acfbe051805940210c8916a94794142"> 541 542#### Example Output 543 544~~~~ 545unsorted width: -5 546large width: -5 547~~~~ 548 549</fiddle-embed></div> 550 551### See Also 552 553<a href='#SkIRect_height'>height()</a> <a href='#SkIRect_width64'>width64</a>() <a href='#SkIRect_height64'>height64</a>() <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_width'>width()</a> 554 555<a name='SkIRect_width64'></a> 556 557--- 558 559<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 560int64_t <a href='#SkIRect_width64'>width64</a>()const 561</pre> 562 563Returns span on the x-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted, so the 564result may be negative. This is safer than calling <a href='#SkIRect_width'>width()</a> since <a href='#SkIRect_width'>width()</a> might 565overflow in its calculation. 566 567### Return Value 568 569<a href='#SkIRect_fRight'>fRight</a> minus <a href='#SkIRect_fLeft'>fLeft</a> cast to int64_t 570 571### Example 572 573<div><fiddle-embed name="63977f97999bbd6eecfdcc7575d75492"> 574 575#### Example Output 576 577~~~~ 578width: -5 width64: 4294967291 579~~~~ 580 581</fiddle-embed></div> 582 583### See Also 584 585<a href='#SkIRect_width'>width()</a> <a href='#SkIRect_height'>height()</a> <a href='#SkIRect_height64'>height64</a>() <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_width'>width()</a> 586 587<a name='SkIRect_height'></a> 588 589--- 590 591<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 592int32_t <a href='#SkIRect_height'>height()</a>const 593</pre> 594 595Returns span on the y-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted, or if 596result fits in 32-bit signed integer; result may be negative. 597 598### Return Value 599 600<a href='#SkIRect_fBottom'>fBottom</a> minus <a href='#SkIRect_fTop'>fTop</a> 601 602### Example 603 604<div><fiddle-embed name="0175bae87fafcd9433ae661574695586"> 605 606#### Example Output 607 608~~~~ 609unsorted height: -5 610large height: -5 611~~~~ 612 613</fiddle-embed></div> 614 615### See Also 616 617<a href='#SkIRect_width'>width()</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_height'>height()</a> 618 619<a name='SkIRect_height64'></a> 620 621--- 622 623<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 624int64_t <a href='#SkIRect_height64'>height64</a>()const 625</pre> 626 627Returns span on the y-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted, so the 628result may be negative. This is safer than calling <a href='#SkIRect_height'>height()</a> since <a href='#SkIRect_height'>height()</a> might 629overflow in its calculation. 630 631### Return Value 632 633<a href='#SkIRect_fBottom'>fBottom</a> minus <a href='#SkIRect_fTop'>fTop</a> cast to int64_t 634 635### Example 636 637<div><fiddle-embed name="02dd98716e54bbd8c2f0ff23b7ef98cf"> 638 639#### Example Output 640 641~~~~ 642height: -5 height64: 4294967291 643~~~~ 644 645</fiddle-embed></div> 646 647### See Also 648 649<a href='#SkIRect_width'>width()</a> <a href='#SkIRect_height'>height()</a> <a href='#SkIRect_width64'>width64</a>() <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_height'>height()</a> 650 651<a name='SkIRect_size'></a> 652 653--- 654 655<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 656<a href='undocumented#SkISize'>SkISize</a> <a href='#SkIRect_size'>size()</a>const 657</pre> 658 659Returns spans on the x-axis and y-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted, 660or if result fits in 32-bit signed integer; result may be negative. 661 662### Return Value 663 664<a href='undocumented#SkISize'>SkISize</a> (width, height) 665 666### Example 667 668<div><fiddle-embed name="8b3224641cb3053a7b8a5798b6cd1cf6"> 669 670#### Example Output 671 672~~~~ 673original rect: 20, 30, 40, 50 size: 20, 20 674offset rect: 40, 50, 60, 70 size: 20, 20 675outset rect: 20, 30, 80, 90 size: 60, 60 676~~~~ 677 678</fiddle-embed></div> 679 680### See Also 681 682<a href='#SkIRect_height'>height()</a> <a href='#SkIRect_width'>width()</a> <a href='#SkIRect_MakeSize'>MakeSize</a> 683 684<a name='SkIRect_isEmpty'></a> 685 686--- 687 688<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 689bool <a href='#SkIRect_isEmpty'>isEmpty</a>()const 690</pre> 691 692Returns true if <a href='#SkIRect_width'>width()</a> or <a href='#SkIRect_height'>height()</a> are zero or negative. 693 694### Return Value 695 696true if <a href='#SkIRect_width'>width()</a> or <a href='#SkIRect_height'>height()</a> are zero or negative 697 698### Example 699 700<div><fiddle-embed name="edaad064b6de249b7a7c768dfa000adc"> 701 702#### Example Output 703 704~~~~ 705rect: {20, 40, 10, 50} is empty 706sorted: {10, 40, 20, 50} is not empty 707rect: {20, 40, 20, 50} is empty 708sorted: {20, 40, 20, 50} is empty 709~~~~ 710 711</fiddle-embed></div> 712 713### See Also 714 715<a href='#SkIRect_EmptyIRect'>EmptyIRect</a> <a href='#SkIRect_MakeEmpty'>MakeEmpty</a> <a href='#SkIRect_sort'>sort</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_isEmpty'>isEmpty</a> 716 717<a name='SkIRect_isEmpty64'></a> 718 719--- 720 721<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 722bool <a href='#SkIRect_isEmpty64'>isEmpty64</a>()const 723</pre> 724 725Returns true if <a href='#SkIRect_fLeft'>fLeft</a> is equal to or greater than <a href='#SkIRect_fRight'>fRight</a>, or if <a href='#SkIRect_fTop'>fTop</a> is equal 726to or greater than <a href='#SkIRect_fBottom'>fBottom</a>. Call <a href='#SkIRect_sort'>sort()</a> to reverse rectangles with negative 727<a href='#SkIRect_width64'>width64</a>() or <a href='#SkIRect_height64'>height64</a>(). 728 729### Return Value 730 731true if <a href='#SkIRect_width64'>width64</a>() or <a href='#SkIRect_height64'>height64</a>() are zero or negative 732 733### Example 734 735<div><fiddle-embed name="eb905faa1084ccab3ad0605df4c27ea4"> 736 737#### Example Output 738 739~~~~ 740rect: {20, 40, 10, 50} is empty 741sorted: {10, 40, 20, 50} is not empty 742rect: {20, 40, 20, 50} is empty 743sorted: {20, 40, 20, 50} is empty 744~~~~ 745 746</fiddle-embed></div> 747 748### See Also 749 750<a href='#SkIRect_EmptyIRect'>EmptyIRect</a> <a href='#SkIRect_MakeEmpty'>MakeEmpty</a> <a href='#SkIRect_sort'>sort</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_isEmpty'>isEmpty</a> 751 752<a name='Operators'></a> 753 754<a name='SkIRect_equal_operator'></a> 755 756--- 757 758<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 759bool <a href='#SkIRect_equal_operator'>operator==</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b) 760</pre> 761 762Returns true if all members in <a href='#SkIRect_equal_operator_a'>a</a>: <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_fBottom'>fBottom</a>; are 763identical to corresponding members in <a href='#SkIRect_equal_operator_b'>b</a>. 764 765### Parameters 766 767<table> <tr> <td><a name='SkIRect_equal_operator_a'><code><strong>a</strong></code></a></td> 768 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to compare</td> 769 </tr> 770 <tr> <td><a name='SkIRect_equal_operator_b'><code><strong>b</strong></code></a></td> 771 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to compare</td> 772 </tr> 773</table> 774 775### Return Value 776 777true if members are equal 778 779### Example 780 781<div><fiddle-embed name="bd8f028d9051062816c9116fea4237b2"> 782 783#### Example Output 784 785~~~~ 786test == sorted 787~~~~ 788 789</fiddle-embed></div> 790 791### See Also 792 793<a href='#SkIRect_notequal_operator'>operator!=</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkIRect_equal_operator_a'>a</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkIRect_equal_operator_b'>b</a>) 794 795<a name='SkIRect_notequal_operator'></a> 796 797--- 798 799<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 800bool <a href='#SkIRect_notequal_operator'>operator!=</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b) 801</pre> 802 803Returns true if any member in <a href='#SkIRect_notequal_operator_a'>a</a>: <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_fBottom'>fBottom</a>; is not 804identical to the corresponding member in <a href='#SkIRect_notequal_operator_b'>b</a>. 805 806### Parameters 807 808<table> <tr> <td><a name='SkIRect_notequal_operator_a'><code><strong>a</strong></code></a></td> 809 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to compare</td> 810 </tr> 811 <tr> <td><a name='SkIRect_notequal_operator_b'><code><strong>b</strong></code></a></td> 812 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to compare</td> 813 </tr> 814</table> 815 816### Return Value 817 818true if members are not equal 819 820### Example 821 822<div><fiddle-embed name="6c4acd8aa203f632b7d85cae672abf4d"> 823 824#### Example Output 825 826~~~~ 827test != sorted 828~~~~ 829 830</fiddle-embed></div> 831 832### See Also 833 834<a href='#SkIRect_equal_operator'>operator==</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkIRect_notequal_operator_a'>a</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkIRect_notequal_operator_b'>b</a>) 835 836<a name='Set'></a> 837 838<a name='SkIRect_setEmpty'></a> 839 840--- 841 842<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 843void <a href='#SkIRect_setEmpty'>setEmpty</a>() 844</pre> 845 846Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to (0, 0, 0, 0). 847 848Many other rectangles are empty; if left is equal to or greater than right, 849or if top is equal to or greater than bottom. Setting all members to zero 850is a convenience, but does not designate a special empty rectangle. 851 852### Example 853 854<div><fiddle-embed name="94039c3cc9e911c8ab2993d56fd06210"> 855 856#### Example Output 857 858~~~~ 859rect: {3, 4, 1, 2} is empty 860rect: {0, 0, 0, 0} is empty 861~~~~ 862 863</fiddle-embed></div> 864 865### See Also 866 867<a href='#SkIRect_MakeEmpty'>MakeEmpty</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_setEmpty'>setEmpty</a> 868 869<a name='SkIRect_set'></a> 870 871--- 872 873<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 874void set(int32_t left, int32_t top, int32_t right, int32_t bottom) 875</pre> 876 877Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to (<a href='#SkIRect_set_left'>left</a>, <a href='#SkIRect_set_top'>top</a>, <a href='#SkIRect_set_right'>right</a>, <a href='#SkIRect_set_bottom'>bottom</a>). 878<a href='#SkIRect_set_left'>left</a> and <a href='#SkIRect_set_right'>right</a> are not sorted; <a href='#SkIRect_set_left'>left</a> is not necessarily less than <a href='#SkIRect_set_right'>right</a>. 879<a href='#SkIRect_set_top'>top</a> and <a href='#SkIRect_set_bottom'>bottom</a> are not sorted; <a href='#SkIRect_set_top'>top</a> is not necessarily less than <a href='#SkIRect_set_bottom'>bottom</a>. 880 881### Parameters 882 883<table> <tr> <td><a name='SkIRect_set_left'><code><strong>left</strong></code></a></td> 884 <td>assigned to <a href='#SkIRect_fLeft'>fLeft</a></td> 885 </tr> 886 <tr> <td><a name='SkIRect_set_top'><code><strong>top</strong></code></a></td> 887 <td>assigned to <a href='#SkIRect_fTop'>fTop</a></td> 888 </tr> 889 <tr> <td><a name='SkIRect_set_right'><code><strong>right</strong></code></a></td> 890 <td>assigned to <a href='#SkIRect_fRight'>fRight</a></td> 891 </tr> 892 <tr> <td><a name='SkIRect_set_bottom'><code><strong>bottom</strong></code></a></td> 893 <td>assigned to <a href='#SkIRect_fBottom'>fBottom</a></td> 894 </tr> 895</table> 896 897### Example 898 899<div><fiddle-embed name="1912c37076b7f3bf6aebfa167e971bec"> 900 901#### Example Output 902 903~~~~ 904rect1: {3, 4, 1, 2} 905rect2: {3, 4, 1, 2} 906~~~~ 907 908</fiddle-embed></div> 909 910### See Also 911 912<a href='#SkIRect_setLTRB'>setLTRB</a> <a href='#SkIRect_setXYWH'>setXYWH</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_set'>set</a> 913 914<a name='SkIRect_setLTRB'></a> 915 916--- 917 918<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 919void <a href='#SkIRect_setLTRB'>setLTRB</a>(int32_t left, int32_t top, int32_t right, int32_t bottom) 920</pre> 921 922Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to (<a href='#SkIRect_setLTRB_left'>left</a>, <a href='#SkIRect_setLTRB_top'>top</a>, <a href='#SkIRect_setLTRB_right'>right</a>, <a href='#SkIRect_setLTRB_bottom'>bottom</a>). 923<a href='#SkIRect_setLTRB_left'>left</a> and <a href='#SkIRect_setLTRB_right'>right</a> are not sorted; <a href='#SkIRect_setLTRB_left'>left</a> is not necessarily less than <a href='#SkIRect_setLTRB_right'>right</a>. 924<a href='#SkIRect_setLTRB_top'>top</a> and <a href='#SkIRect_setLTRB_bottom'>bottom</a> are not sorted; <a href='#SkIRect_setLTRB_top'>top</a> is not necessarily less than <a href='#SkIRect_setLTRB_bottom'>bottom</a>. 925 926### Parameters 927 928<table> <tr> <td><a name='SkIRect_setLTRB_left'><code><strong>left</strong></code></a></td> 929 <td>stored in <a href='#SkIRect_fLeft'>fLeft</a></td> 930 </tr> 931 <tr> <td><a name='SkIRect_setLTRB_top'><code><strong>top</strong></code></a></td> 932 <td>stored in <a href='#SkIRect_fTop'>fTop</a></td> 933 </tr> 934 <tr> <td><a name='SkIRect_setLTRB_right'><code><strong>right</strong></code></a></td> 935 <td>stored in <a href='#SkIRect_fRight'>fRight</a></td> 936 </tr> 937 <tr> <td><a name='SkIRect_setLTRB_bottom'><code><strong>bottom</strong></code></a></td> 938 <td>stored in <a href='#SkIRect_fBottom'>fBottom</a></td> 939 </tr> 940</table> 941 942### Example 943 944<div><fiddle-embed name="ead6bdcf2ae77ec19a1c5a96f5b31af8"> 945 946#### Example Output 947 948~~~~ 949rect1: {3, 4, 1, 2} 950rect2: {3, 4, 1, 2} 951~~~~ 952 953</fiddle-embed></div> 954 955### See Also 956 957<a href='#SkIRect_set'>set</a> <a href='#SkIRect_setXYWH'>setXYWH</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_setLTRB'>setLTRB</a> 958 959<a name='SkIRect_setXYWH'></a> 960 961--- 962 963<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 964void <a href='#SkIRect_setXYWH'>setXYWH</a>(int32_t x, int32_t y, int32_t width, int32_t height) 965</pre> 966 967Sets <a href='SkIRect_Reference#IRect'>IRect</a> to: <code>(<a href='#SkIRect_setXYWH_x'>x</a>, <a href='#SkIRect_setXYWH_y'>y</a>, <a href='#SkIRect_setXYWH_x'>x</a> + <a href='#SkIRect_setXYWH_width'>width</a>, <a href='#SkIRect_setXYWH_y'>y</a> + <a href='#SkIRect_setXYWH_height'>height</a>)</code>. 968Does not validate input; <a href='#SkIRect_setXYWH_width'>width</a> or <a href='#SkIRect_setXYWH_height'>height</a> may be negative. 969 970### Parameters 971 972<table> <tr> <td><a name='SkIRect_setXYWH_x'><code><strong>x</strong></code></a></td> 973 <td>stored in <a href='#SkIRect_fLeft'>fLeft</a></td> 974 </tr> 975 <tr> <td><a name='SkIRect_setXYWH_y'><code><strong>y</strong></code></a></td> 976 <td>stored in <a href='#SkIRect_fTop'>fTop</a></td> 977 </tr> 978 <tr> <td><a name='SkIRect_setXYWH_width'><code><strong>width</strong></code></a></td> 979 <td>added to <a href='#SkIRect_setXYWH_x'>x</a> and stored in <a href='#SkIRect_fRight'>fRight</a></td> 980 </tr> 981 <tr> <td><a name='SkIRect_setXYWH_height'><code><strong>height</strong></code></a></td> 982 <td>added to <a href='#SkIRect_setXYWH_y'>y</a> and stored in <a href='#SkIRect_fBottom'>fBottom</a></td> 983 </tr> 984</table> 985 986### Example 987 988<div><fiddle-embed name="0e1db8c86678c004e504f47641b44b17"> 989 990#### Example Output 991 992~~~~ 993rect: 5, 35, -10, 60 isEmpty: true 994rect: -10, 35, 5, 60 isEmpty: false 995~~~~ 996 997</fiddle-embed></div> 998 999### See Also 1000 1001<a href='#SkIRect_MakeXYWH'>MakeXYWH</a> <a href='#SkIRect_setLTRB'>setLTRB</a> <a href='#SkIRect_set'>set</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_setXYWH'>setXYWH</a> 1002 1003<a name='Inset_Outset_Offset'></a> 1004 1005<a name='SkIRect_makeOffset'></a> 1006 1007--- 1008 1009<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1010<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOffset'>makeOffset</a>(int32_t dx, int32_t dy)const 1011</pre> 1012 1013Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> offset by (<a href='#SkIRect_makeOffset_dx'>dx</a>, <a href='#SkIRect_makeOffset_dy'>dy</a>). 1014 1015If <a href='#SkIRect_makeOffset_dx'>dx</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is moved to the left. 1016If <a href='#SkIRect_makeOffset_dx'>dx</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is moved to the right. 1017If <a href='#SkIRect_makeOffset_dy'>dy</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is moved upward. 1018If <a href='#SkIRect_makeOffset_dy'>dy</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is moved downward. 1019 1020### Parameters 1021 1022<table> <tr> <td><a name='SkIRect_makeOffset_dx'><code><strong>dx</strong></code></a></td> 1023 <td>offset added to <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a></td> 1024 </tr> 1025 <tr> <td><a name='SkIRect_makeOffset_dy'><code><strong>dy</strong></code></a></td> 1026 <td>offset added to <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a></td> 1027 </tr> 1028</table> 1029 1030### Return Value 1031 1032<a href='SkIRect_Reference#SkIRect'>SkIRect</a> offset by <a href='#SkIRect_makeOffset_dx'>dx</a> and <a href='#SkIRect_makeOffset_dy'>dy</a>, with original width and height 1033 1034### Example 1035 1036<div><fiddle-embed name="737c747df07ddf392c05970440de0927"> 1037 1038#### Example Output 1039 1040~~~~ 1041rect: 10, 50, 20, 60 isEmpty: false 1042rect: 25, 82, 35, 92 isEmpty: false 1043~~~~ 1044 1045</fiddle-embed></div> 1046 1047### See Also 1048 1049<a href='#SkIRect_offset'>offset()</a> <a href='#SkIRect_makeInset'>makeInset</a> <a href='#SkIRect_makeOutset'>makeOutset</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_makeOffset'>makeOffset</a> 1050 1051<a name='SkIRect_makeInset'></a> 1052 1053--- 1054 1055<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1056<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeInset'>makeInset</a>(int32_t dx, int32_t dy)const 1057</pre> 1058 1059Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, inset by (<a href='#SkIRect_makeInset_dx'>dx</a>, <a href='#SkIRect_makeInset_dy'>dy</a>). 1060 1061If <a href='#SkIRect_makeInset_dx'>dx</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is wider. 1062If <a href='#SkIRect_makeInset_dx'>dx</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is narrower. 1063If <a href='#SkIRect_makeInset_dy'>dy</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is taller. 1064If <a href='#SkIRect_makeInset_dy'>dy</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is shorter. 1065 1066### Parameters 1067 1068<table> <tr> <td><a name='SkIRect_makeInset_dx'><code><strong>dx</strong></code></a></td> 1069 <td>offset added to <a href='#SkIRect_fLeft'>fLeft</a> and subtracted from <a href='#SkIRect_fRight'>fRight</a></td> 1070 </tr> 1071 <tr> <td><a name='SkIRect_makeInset_dy'><code><strong>dy</strong></code></a></td> 1072 <td>offset added to <a href='#SkIRect_fTop'>fTop</a> and subtracted from <a href='#SkIRect_fBottom'>fBottom</a></td> 1073 </tr> 1074</table> 1075 1076### Return Value 1077 1078<a href='SkIRect_Reference#SkIRect'>SkIRect</a> inset symmetrically left and right, top and bottom 1079 1080### Example 1081 1082<div><fiddle-embed name="1db94b2c76e0a7a71856532335fa56b6"> 1083 1084#### Example Output 1085 1086~~~~ 1087rect: 10, 50, 20, 60 isEmpty: false 1088rect: 25, 82, 5, 28 isEmpty: true 1089~~~~ 1090 1091</fiddle-embed></div> 1092 1093### See Also 1094 1095<a href='#SkIRect_inset'>inset()</a> <a href='#SkIRect_makeOffset'>makeOffset</a> <a href='#SkIRect_makeOutset'>makeOutset</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_makeInset'>makeInset</a> 1096 1097<a name='SkIRect_makeOutset'></a> 1098 1099--- 1100 1101<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1102<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOutset'>makeOutset</a>(int32_t dx, int32_t dy)const 1103</pre> 1104 1105Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, outset by (<a href='#SkIRect_makeOutset_dx'>dx</a>, <a href='#SkIRect_makeOutset_dy'>dy</a>). 1106 1107If <a href='#SkIRect_makeOutset_dx'>dx</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is narrower. 1108If <a href='#SkIRect_makeOutset_dx'>dx</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is wider. 1109If <a href='#SkIRect_makeOutset_dy'>dy</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is shorter. 1110If <a href='#SkIRect_makeOutset_dy'>dy</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is taller. 1111 1112### Parameters 1113 1114<table> <tr> <td><a name='SkIRect_makeOutset_dx'><code><strong>dx</strong></code></a></td> 1115 <td>offset subtracted to <a href='#SkIRect_fLeft'>fLeft</a> and added from <a href='#SkIRect_fRight'>fRight</a></td> 1116 </tr> 1117 <tr> <td><a name='SkIRect_makeOutset_dy'><code><strong>dy</strong></code></a></td> 1118 <td>offset subtracted to <a href='#SkIRect_fTop'>fTop</a> and added from <a href='#SkIRect_fBottom'>fBottom</a></td> 1119 </tr> 1120</table> 1121 1122### Return Value 1123 1124<a href='SkIRect_Reference#SkIRect'>SkIRect</a> outset symmetrically left and right, top and bottom 1125 1126### Example 1127 1128<div><fiddle-embed name="240e2953e3455c08f6d89255feff8416"> 1129 1130#### Example Output 1131 1132~~~~ 1133rect: 10, 50, 20, 60 isEmpty: false 1134rect: -5, 18, 35, 92 isEmpty: false 1135~~~~ 1136 1137</fiddle-embed></div> 1138 1139### See Also 1140 1141<a href='#SkIRect_outset'>outset()</a> <a href='#SkIRect_makeOffset'>makeOffset</a> <a href='#SkIRect_makeInset'>makeInset</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_makeOutset'>makeOutset</a> 1142 1143<a name='SkIRect_offset'></a> 1144 1145--- 1146 1147<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1148void offset(int32_t dx, int32_t dy) 1149</pre> 1150 1151Offsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by adding <a href='#SkIRect_offset_dx'>dx</a> to <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fRight'>fRight</a>; and by adding <a href='#SkIRect_offset_dy'>dy</a> to <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fBottom'>fBottom</a>. 1152 1153If <a href='#SkIRect_offset_dx'>dx</a> is negative, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned to the left. 1154If <a href='#SkIRect_offset_dx'>dx</a> is positive, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned to the right. 1155If <a href='#SkIRect_offset_dy'>dy</a> is negative, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned upward. 1156If <a href='#SkIRect_offset_dy'>dy</a> is positive, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned downward. 1157 1158### Parameters 1159 1160<table> <tr> <td><a name='SkIRect_offset_dx'><code><strong>dx</strong></code></a></td> 1161 <td>offset added to <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a></td> 1162 </tr> 1163 <tr> <td><a name='SkIRect_offset_dy'><code><strong>dy</strong></code></a></td> 1164 <td>offset added to <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a></td> 1165 </tr> 1166</table> 1167 1168### Example 1169 1170<div><fiddle-embed name="77e633b2174ffae923c038b303418b50"> 1171 1172#### Example Output 1173 1174~~~~ 1175rect: 15, 27, 55, 86 1176~~~~ 1177 1178</fiddle-embed></div> 1179 1180### See Also 1181 1182<a href='#SkIRect_offsetTo'>offsetTo</a> <a href='#SkIRect_makeOffset'>makeOffset</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_offset'>offset</a> 1183 1184<a name='SkIRect_offset_2'></a> 1185 1186--- 1187 1188<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1189void offset(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& delta) 1190</pre> 1191 1192Offsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by adding <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fX'>fX</a> to <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fRight'>fRight</a>; and by adding <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fY'>fY</a> to 1193<a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fBottom'>fBottom</a>. 1194 1195If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fX'>fX</a> is negative, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned to the left. 1196If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fX'>fX</a> is positive, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned to the right. 1197If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fY'>fY</a> is negative, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned upward. 1198If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fY'>fY</a> is positive, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned downward. 1199 1200### Parameters 1201 1202<table> <tr> <td><a name='SkIRect_offset_2_delta'><code><strong>delta</strong></code></a></td> 1203 <td>offset added to <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1204 </tr> 1205</table> 1206 1207### Example 1208 1209<div><fiddle-embed name="31a4c575499e76def651eb65994876f0"> 1210 1211#### Example Output 1212 1213~~~~ 1214rect: 15, 27, 55, 86 1215~~~~ 1216 1217</fiddle-embed></div> 1218 1219### See Also 1220 1221<a href='#SkIRect_offsetTo'>offsetTo</a> <a href='#SkIRect_makeOffset'>makeOffset</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_offset'>offset</a> 1222 1223<a name='SkIRect_offsetTo'></a> 1224 1225--- 1226 1227<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1228void <a href='#SkIRect_offsetTo'>offsetTo</a>(int32_t newX, int32_t newY) 1229</pre> 1230 1231Offsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> so that <a href='#SkIRect_fLeft'>fLeft</a> equals <a href='#SkIRect_offsetTo_newX'>newX</a>, and <a href='#SkIRect_fTop'>fTop</a> equals <a href='#SkIRect_offsetTo_newY'>newY</a>. width and height 1232are unchanged. 1233 1234### Parameters 1235 1236<table> <tr> <td><a name='SkIRect_offsetTo_newX'><code><strong>newX</strong></code></a></td> 1237 <td>stored in <a href='#SkIRect_fLeft'>fLeft</a>, preserving <a href='#SkIRect_width'>width()</a></td> 1238 </tr> 1239 <tr> <td><a name='SkIRect_offsetTo_newY'><code><strong>newY</strong></code></a></td> 1240 <td>stored in <a href='#SkIRect_fTop'>fTop</a>, preserving <a href='#SkIRect_height'>height()</a></td> 1241 </tr> 1242</table> 1243 1244### Example 1245 1246<div><fiddle-embed name="a2734ff23b35653956a3002e5c29ff91"> 1247 1248#### Example Output 1249 1250~~~~ 1251rect: 15, 27, 55, 86 1252~~~~ 1253 1254</fiddle-embed></div> 1255 1256### See Also 1257 1258<a href='#SkIRect_offset'>offset</a> <a href='#SkIRect_makeOffset'>makeOffset</a> <a href='#SkIRect_setXYWH'>setXYWH</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_offsetTo'>offsetTo</a> 1259 1260<a name='SkIRect_inset'></a> 1261 1262--- 1263 1264<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1265void inset(int32_t dx, int32_t dy) 1266</pre> 1267 1268Insets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by (<a href='#SkIRect_inset_dx'>dx</a>,<a href='#SkIRect_inset_dy'>dy</a>). 1269 1270If <a href='#SkIRect_inset_dx'>dx</a> is positive, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> narrower. 1271If <a href='#SkIRect_inset_dx'>dx</a> is negative, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> wider. 1272If <a href='#SkIRect_inset_dy'>dy</a> is positive, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> shorter. 1273If <a href='#SkIRect_inset_dy'>dy</a> is negative, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> taller. 1274 1275### Parameters 1276 1277<table> <tr> <td><a name='SkIRect_inset_dx'><code><strong>dx</strong></code></a></td> 1278 <td>offset added to <a href='#SkIRect_fLeft'>fLeft</a> and subtracted from <a href='#SkIRect_fRight'>fRight</a></td> 1279 </tr> 1280 <tr> <td><a name='SkIRect_inset_dy'><code><strong>dy</strong></code></a></td> 1281 <td>offset added to <a href='#SkIRect_fTop'>fTop</a> and subtracted from <a href='#SkIRect_fBottom'>fBottom</a></td> 1282 </tr> 1283</table> 1284 1285### Example 1286 1287<div><fiddle-embed name="9debaded1aa8bdf5077a4de0b3015b8f"> 1288 1289#### Example Output 1290 1291~~~~ 1292rect: 15, 27, 45, 60 1293~~~~ 1294 1295</fiddle-embed></div> 1296 1297### See Also 1298 1299<a href='#SkIRect_outset'>outset</a> <a href='#SkIRect_makeInset'>makeInset</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_inset'>inset</a> 1300 1301<a name='SkIRect_outset'></a> 1302 1303--- 1304 1305<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1306void outset(int32_t dx, int32_t dy) 1307</pre> 1308 1309Outsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by (<a href='#SkIRect_outset_dx'>dx</a>, <a href='#SkIRect_outset_dy'>dy</a>). 1310 1311If <a href='#SkIRect_outset_dx'>dx</a> is positive, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> wider. 1312If <a href='#SkIRect_outset_dx'>dx</a> is negative, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> narrower. 1313If <a href='#SkIRect_outset_dy'>dy</a> is positive, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> taller. 1314If <a href='#SkIRect_outset_dy'>dy</a> is negative, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> shorter. 1315 1316### Parameters 1317 1318<table> <tr> <td><a name='SkIRect_outset_dx'><code><strong>dx</strong></code></a></td> 1319 <td>subtracted to <a href='#SkIRect_fLeft'>fLeft</a> and added from <a href='#SkIRect_fRight'>fRight</a></td> 1320 </tr> 1321 <tr> <td><a name='SkIRect_outset_dy'><code><strong>dy</strong></code></a></td> 1322 <td>subtracted to <a href='#SkIRect_fTop'>fTop</a> and added from <a href='#SkIRect_fBottom'>fBottom</a></td> 1323 </tr> 1324</table> 1325 1326### Example 1327 1328<div><fiddle-embed name="3fc62ca29428195f33a3a02b3eb74e4f"> 1329 1330#### Example Output 1331 1332~~~~ 1333rect: 5, 1, 55, 86 1334~~~~ 1335 1336</fiddle-embed></div> 1337 1338### See Also 1339 1340<a href='#SkIRect_inset'>inset</a> <a href='#SkIRect_makeOutset'>makeOutset</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_outset'>outset</a> 1341 1342<a name='Intersection'></a> 1343 1344<a href='#IRect'>IRects</a> intersect when they enclose a common area. To intersect, each of the pair 1345must describe area; <a href='#SkIRect_fLeft'>fLeft</a> is less than <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_fTop'>fTop</a> is less than <a href='#SkIRect_fBottom'>fBottom</a>; 1346<a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_isEmpty'>isEmpty</a>() returns false. The intersection of <a href='SkIRect_Reference#IRect'>IRect</a> pair can be described by: 1347<code>(<a href='undocumented#max()'>max</a>(a.<a href='#SkIRect_fLeft'>fLeft</a>, b.<a href='#SkIRect_fLeft'>fLeft</a>), <a href='undocumented#max()'>max</a>(a.<a href='#SkIRect_fTop'>fTop</a>, b.<a href='#SkIRect_fTop'>fTop</a>), 1348<a href='undocumented#min()'>min</a>(a.<a href='#SkIRect_fRight'>fRight</a>, b.<a href='#SkIRect_fRight'>fRight</a>), <a href='undocumented#min()'>min</a>(a.<a href='#SkIRect_fBottom'>fBottom</a>, b.<a href='#SkIRect_fBottom'>fBottom</a>))</code>. 1349 1350The intersection is only meaningful if the resulting <a href='SkIRect_Reference#IRect'>IRect</a> is not empty and 1351describes an area: <a href='#SkIRect_fLeft'>fLeft</a> is less than <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_fTop'>fTop</a> is less than <a href='#SkIRect_fBottom'>fBottom</a>. 1352 1353<a name='SkIRect_adjust'></a> 1354 1355--- 1356 1357<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1358void <a href='#SkIRect_adjust'>adjust</a>(int32_t dL, int32_t dT, int32_t dR, int32_t dB) 1359</pre> 1360 1361Adjusts <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by adding <a href='#SkIRect_adjust_dL'>dL</a> to <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_adjust_dT'>dT</a> to <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_adjust_dR'>dR</a> to <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_adjust_dB'>dB</a> to <a href='#SkIRect_fBottom'>fBottom</a>. 1362 1363If <a href='#SkIRect_adjust_dL'>dL</a> is positive, narrows <a href='SkIRect_Reference#SkIRect'>SkIRect</a> on the left. If negative, widens it on the left. 1364If <a href='#SkIRect_adjust_dT'>dT</a> is positive, shrinks <a href='SkIRect_Reference#SkIRect'>SkIRect</a> on the top. If negative, lengthens it on the top. 1365If <a href='#SkIRect_adjust_dR'>dR</a> is positive, narrows <a href='SkIRect_Reference#SkIRect'>SkIRect</a> on the right. If negative, widens it on the right. 1366If <a href='#SkIRect_adjust_dB'>dB</a> is positive, shrinks <a href='SkIRect_Reference#SkIRect'>SkIRect</a> on the bottom. If negative, lengthens it on the bottom. 1367 1368The resulting <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is not checked for validity. Thus, if the resulting <a href='SkIRect_Reference#SkIRect'>SkIRect</a> left is 1369greater than right, the <a href='SkIRect_Reference#SkIRect'>SkIRect</a> will be considered empty. Call <a href='#SkIRect_sort'>sort()</a> after this call 1370if that is not the desired behavior. 1371 1372### Parameters 1373 1374<table> <tr> <td><a name='SkIRect_adjust_dL'><code><strong>dL</strong></code></a></td> 1375 <td>offset added to <a href='#SkIRect_fLeft'>fLeft</a></td> 1376 </tr> 1377 <tr> <td><a name='SkIRect_adjust_dT'><code><strong>dT</strong></code></a></td> 1378 <td>offset added to <a href='#SkIRect_fTop'>fTop</a></td> 1379 </tr> 1380 <tr> <td><a name='SkIRect_adjust_dR'><code><strong>dR</strong></code></a></td> 1381 <td>offset added to <a href='#SkIRect_fRight'>fRight</a></td> 1382 </tr> 1383 <tr> <td><a name='SkIRect_adjust_dB'><code><strong>dB</strong></code></a></td> 1384 <td>offset added to <a href='#SkIRect_fBottom'>fBottom</a></td> 1385 </tr> 1386</table> 1387 1388### Example 1389 1390<div><fiddle-embed name="8dc91284493dd012cca3d0ce4c66bda4"> 1391 1392#### Example Output 1393 1394~~~~ 1395rect: 10, 10, 20, 20 1396~~~~ 1397 1398</fiddle-embed></div> 1399 1400### See Also 1401 1402<a href='#SkIRect_inset'>inset outset</a> 1403 1404<a name='SkIRect_contains'></a> 1405 1406--- 1407 1408<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1409bool contains(int32_t x, int32_t y)const 1410</pre> 1411 1412Returns true if: <code><a href='#SkIRect_fLeft'>fLeft</a> <= <a href='#SkIRect_contains_x'>x</a> < <a href='#SkIRect_fRight'>fRight</a> && <a href='#SkIRect_fTop'>fTop</a> <= <a href='#SkIRect_contains_y'>y</a> < <a href='#SkIRect_fBottom'>fBottom</a></code>. 1413Returns false if <a href='SkIRect_Reference#IRect'>IRect</a> is empty. 1414 1415Considers input to describe constructed <a href='SkIRect_Reference#IRect'>IRect</a>: <code>(<a href='#SkIRect_contains_x'>x</a>, <a href='#SkIRect_contains_y'>y</a>, <a href='#SkIRect_contains_x'>x</a> + 1, <a href='#SkIRect_contains_y'>y</a> + 1)</code> and 1416returns true if constructed area is completely enclosed by <a href='SkIRect_Reference#IRect'>IRect</a> area. 1417 1418### Parameters 1419 1420<table> <tr> <td><a name='SkIRect_contains_x'><code><strong>x</strong></code></a></td> 1421 <td>test <a href='SkIPoint_Reference#IPoint'>IPoint</a> x-coordinate</td> 1422 </tr> 1423 <tr> <td><a name='SkIRect_contains_y'><code><strong>y</strong></code></a></td> 1424 <td>test <a href='SkIPoint_Reference#IPoint'>IPoint</a> y-coordinate</td> 1425 </tr> 1426</table> 1427 1428### Return Value 1429 1430true if (<a href='#SkIRect_contains_x'>x</a>, <a href='#SkIRect_contains_y'>y</a>) is inside <a href='SkIRect_Reference#IRect'>IRect</a> 1431 1432### Example 1433 1434<div><fiddle-embed name="a7958a4e0668f5cf805a8e78eb57f51d"> 1435 1436#### Example Output 1437 1438~~~~ 1439rect: (30, 50, 40, 60) contains (30, 50) 1440rect: (30, 50, 40, 60) does not contain (40, 50) 1441rect: (30, 50, 40, 60) does not contain (30, 60) 1442~~~~ 1443 1444</fiddle-embed></div> 1445 1446### See Also 1447 1448<a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_contains'>contains</a> 1449 1450<a name='SkIRect_contains_2'></a> 1451 1452--- 1453 1454<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1455bool contains(int32_t left, int32_t top, int32_t right, int32_t bottom)const 1456</pre> 1457 1458Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect from (<a href='#SkIRect_contains_2_left'>left</a>, <a href='#SkIRect_contains_2_top'>top</a>, <a href='#SkIRect_contains_2_right'>right</a>, <a href='#SkIRect_contains_2_bottom'>bottom</a>). Does not sort 1459construction. 1460 1461Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains construction. 1462Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty. 1463 1464### Parameters 1465 1466<table> <tr> <td><a name='SkIRect_contains_2_left'><code><strong>left</strong></code></a></td> 1467 <td>x-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1468 </tr> 1469 <tr> <td><a name='SkIRect_contains_2_top'><code><strong>top</strong></code></a></td> 1470 <td>y-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1471 </tr> 1472 <tr> <td><a name='SkIRect_contains_2_right'><code><strong>right</strong></code></a></td> 1473 <td>x-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1474 </tr> 1475 <tr> <td><a name='SkIRect_contains_2_bottom'><code><strong>bottom</strong></code></a></td> 1476 <td>y-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1477 </tr> 1478</table> 1479 1480### Return Value 1481 1482true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside construction 1483 1484### Example 1485 1486<div><fiddle-embed name="eae55f284818d9965ec5834747d14a48"> 1487 1488#### Example Output 1489 1490~~~~ 1491rect: (30, 50, 40, 60) contains (30, 50, 31, 51) 1492rect: (30, 50, 40, 60) does not contain (39, 49, 40, 50) 1493rect: (30, 50, 40, 60) does not contain (29, 59, 30, 60) 1494~~~~ 1495 1496</fiddle-embed></div> 1497 1498### See Also 1499 1500<a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_contains'>contains</a> 1501 1502<a name='SkIRect_contains_3'></a> 1503 1504--- 1505 1506<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1507bool contains(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r)const 1508</pre> 1509 1510Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains <a href='#SkIRect_contains_3_r'>r</a>. 1511Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or <a href='#SkIRect_contains_3_r'>r</a> is empty. 1512 1513<a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains <a href='#SkIRect_contains_3_r'>r</a> when <a href='SkIRect_Reference#SkIRect'>SkIRect</a> area completely includes <a href='#SkIRect_contains_3_r'>r</a> area. 1514 1515### Parameters 1516 1517<table> <tr> <td><a name='SkIRect_contains_3_r'><code><strong>r</strong></code></a></td> 1518 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> contained</td> 1519 </tr> 1520</table> 1521 1522### Return Value 1523 1524true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside <a href='#SkIRect_contains_3_r'>r</a> 1525 1526### Example 1527 1528<div><fiddle-embed name="ee0185db622602b4eb19583c2f42c734"> 1529 1530#### Example Output 1531 1532~~~~ 1533rect: (30, 50, 40, 60) contains (30, 50, 31, 51) 1534rect: (30, 50, 40, 60) does not contain (39, 49, 40, 50) 1535rect: (30, 50, 40, 60) does not contain (29, 59, 30, 60) 1536~~~~ 1537 1538</fiddle-embed></div> 1539 1540### See Also 1541 1542<a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_contains'>contains</a> 1543 1544<a name='SkIRect_contains_4'></a> 1545 1546--- 1547 1548<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1549bool contains(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r)const 1550</pre> 1551 1552Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains <a href='#SkIRect_contains_4_r'>r</a>. 1553Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or <a href='#SkIRect_contains_4_r'>r</a> is empty. 1554 1555<a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains <a href='#SkIRect_contains_4_r'>r</a> when <a href='SkIRect_Reference#SkIRect'>SkIRect</a> area completely includes <a href='#SkIRect_contains_4_r'>r</a> area. 1556 1557### Parameters 1558 1559<table> <tr> <td><a name='SkIRect_contains_4_r'><code><strong>r</strong></code></a></td> 1560 <td><a href='SkRect_Reference#SkRect'>SkRect</a> contained</td> 1561 </tr> 1562</table> 1563 1564### Return Value 1565 1566true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside <a href='#SkIRect_contains_4_r'>r</a> 1567 1568### Example 1569 1570<div><fiddle-embed name="acbd79ffb304f332e4b38ef18e19663e"> 1571 1572#### Example Output 1573 1574~~~~ 1575rect: (30, 50, 40, 60) contains (30, 50, 31, 51) 1576rect: (30, 50, 40, 60) does not contain (39, 49, 40, 50) 1577rect: (30, 50, 40, 60) does not contain (29, 59, 30, 60) 1578~~~~ 1579 1580</fiddle-embed></div> 1581 1582### See Also 1583 1584<a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_contains'>contains</a> 1585 1586<a name='SkIRect_containsNoEmptyCheck'></a> 1587 1588--- 1589 1590<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1591bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(int32_t left, int32_t top, int32_t right, int32_t bottom)const 1592</pre> 1593 1594Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> from (<a href='#SkIRect_containsNoEmptyCheck_left'>left</a>, <a href='#SkIRect_containsNoEmptyCheck_top'>top</a>, <a href='#SkIRect_containsNoEmptyCheck_right'>right</a>, <a href='#SkIRect_containsNoEmptyCheck_bottom'>bottom</a>). Does not sort 1595construction. 1596 1597Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains construction. 1598Asserts if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty, and if SK_DEBUG is defined. 1599 1600Return is undefined if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty. 1601 1602### Parameters 1603 1604<table> <tr> <td><a name='SkIRect_containsNoEmptyCheck_left'><code><strong>left</strong></code></a></td> 1605 <td>x-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1606 </tr> 1607 <tr> <td><a name='SkIRect_containsNoEmptyCheck_top'><code><strong>top</strong></code></a></td> 1608 <td>y-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1609 </tr> 1610 <tr> <td><a name='SkIRect_containsNoEmptyCheck_right'><code><strong>right</strong></code></a></td> 1611 <td>x-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1612 </tr> 1613 <tr> <td><a name='SkIRect_containsNoEmptyCheck_bottom'><code><strong>bottom</strong></code></a></td> 1614 <td>y-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1615 </tr> 1616</table> 1617 1618### Return Value 1619 1620true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside construction 1621 1622### Example 1623 1624<div><fiddle-embed name="fef2a36bee224e92500199fa9d3cbb8b"> 1625 1626#### Example Output 1627 1628~~~~ 1629rect: (30, 50, 40, 60) contains (30, 50, 31, 51) 1630rect: (30, 50, 40, 60) does not contain (39, 49, 40, 50) 1631rect: (30, 50, 40, 60) does not contain (29, 59, 30, 60) 1632~~~~ 1633 1634</fiddle-embed></div> 1635 1636### See Also 1637 1638<a href='#SkIRect_contains'>contains</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_contains'>contains</a> 1639 1640<a name='SkIRect_containsNoEmptyCheck_2'></a> 1641 1642--- 1643 1644<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1645bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r)const 1646</pre> 1647 1648Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains construction. 1649Asserts if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty, and if SK_DEBUG is defined. 1650 1651Return is undefined if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty. 1652 1653### Parameters 1654 1655<table> <tr> <td><a name='SkIRect_containsNoEmptyCheck_2_r'><code><strong>r</strong></code></a></td> 1656 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> contained</td> 1657 </tr> 1658</table> 1659 1660### Return Value 1661 1662true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside <a href='#SkIRect_containsNoEmptyCheck_2_r'>r</a> 1663 1664### Example 1665 1666<div><fiddle-embed name="8f91f58001d9c10420eb146fbc169af4"> 1667 1668#### Example Output 1669 1670~~~~ 1671rect: (30, 50, 40, 60) contains (30, 50, 31, 51) 1672rect: (30, 50, 40, 60) does not contain (39, 49, 40, 50) 1673rect: (30, 50, 40, 60) does not contain (29, 59, 30, 60) 1674~~~~ 1675 1676</fiddle-embed></div> 1677 1678### See Also 1679 1680<a href='#SkIRect_contains'>contains</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_contains'>contains</a> 1681 1682<a name='SkIRect_intersect'></a> 1683 1684--- 1685 1686<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1687bool intersect(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) 1688</pre> 1689 1690Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> intersects <a href='#SkIRect_intersect_r'>r</a>, and sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersection. 1691Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> does not intersect <a href='#SkIRect_intersect_r'>r</a>, and leaves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged. 1692 1693Returns false if either <a href='#SkIRect_intersect_r'>r</a> or <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty, leaving <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged. 1694 1695### Parameters 1696 1697<table> <tr> <td><a name='SkIRect_intersect_r'><code><strong>r</strong></code></a></td> 1698 <td>limit of result</td> 1699 </tr> 1700</table> 1701 1702### Return Value 1703 1704true if <a href='#SkIRect_intersect_r'>r</a> and <a href='SkIRect_Reference#SkIRect'>SkIRect</a> have area in common 1705 1706### Example 1707 1708<div><fiddle-embed name="ea233f5d5d1ae0e76fc6f2eb371c927a"><div>Two <a href='undocumented#SkDebugf'>SkDebugf</a> calls are required. If the calls are combined, their arguments 1709may not be evaluated in left to right order: the printed intersection may 1710be before or after the call to intersect. 1711</div> 1712 1713#### Example Output 1714 1715~~~~ 1716intersection: 30, 60, 50, 80 1717~~~~ 1718 1719</fiddle-embed></div> 1720 1721### See Also 1722 1723<a href='#SkIRect_Intersects'>Intersects</a> <a href='#SkIRect_intersectNoEmptyCheck'>intersectNoEmptyCheck</a> <a href='#SkIRect_join'>join</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_intersect'>intersect</a> 1724 1725<a name='SkIRect_intersect_2'></a> 1726 1727--- 1728 1729<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1730bool intersect(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b) 1731</pre> 1732 1733Returns true if <a href='#SkIRect_intersect_2_a'>a</a> intersects <a href='#SkIRect_intersect_2_b'>b</a>, and sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersection. 1734Returns false if <a href='#SkIRect_intersect_2_a'>a</a> does not intersect <a href='#SkIRect_intersect_2_b'>b</a>, and leaves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged. 1735 1736Returns false if either <a href='#SkIRect_intersect_2_a'>a</a> or <a href='#SkIRect_intersect_2_b'>b</a> is empty, leaving <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged. 1737 1738### Parameters 1739 1740<table> <tr> <td><a name='SkIRect_intersect_2_a'><code><strong>a</strong></code></a></td> 1741 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td> 1742 </tr> 1743 <tr> <td><a name='SkIRect_intersect_2_b'><code><strong>b</strong></code></a></td> 1744 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td> 1745 </tr> 1746</table> 1747 1748### Return Value 1749 1750true if <a href='#SkIRect_intersect_2_a'>a</a> and <a href='#SkIRect_intersect_2_b'>b</a> have area in common 1751 1752### Example 1753 1754<div><fiddle-embed name="b2db0573aacf99ca52776c5522459d02"> 1755 1756#### Example Output 1757 1758~~~~ 1759intersection: 30, 60, 50, 80 1760~~~~ 1761 1762</fiddle-embed></div> 1763 1764### See Also 1765 1766<a href='#SkIRect_Intersects'>Intersects</a> <a href='#SkIRect_intersectNoEmptyCheck'>intersectNoEmptyCheck</a> <a href='#SkIRect_join'>join</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_intersect'>intersect</a> 1767 1768<a name='SkIRect_intersectNoEmptyCheck'></a> 1769 1770--- 1771 1772<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1773bool <a href='#SkIRect_intersectNoEmptyCheck'>intersectNoEmptyCheck</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b) 1774</pre> 1775 1776Returns true if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> intersects <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a>, and sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersection. 1777Returns false if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> does not intersect <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a>, and leaves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged. 1778 1779Asserts if either <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> or <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a> is empty, and if SK_DEBUG is defined. 1780 1781### Parameters 1782 1783<table> <tr> <td><a name='SkIRect_intersectNoEmptyCheck_a'><code><strong>a</strong></code></a></td> 1784 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td> 1785 </tr> 1786 <tr> <td><a name='SkIRect_intersectNoEmptyCheck_b'><code><strong>b</strong></code></a></td> 1787 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td> 1788 </tr> 1789</table> 1790 1791### Return Value 1792 1793true if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> and <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a> have area in common 1794 1795### Example 1796 1797<div><fiddle-embed name="d35fbc9fdea71df8b8a12fd3da50d11c"> 1798 1799#### Example Output 1800 1801~~~~ 1802intersection: 30, 60, 50, 80 1803~~~~ 1804 1805</fiddle-embed></div> 1806 1807### See Also 1808 1809<a href='#SkIRect_Intersects'>Intersects</a> <a href='#SkIRect_intersect'>intersect</a> <a href='#SkIRect_join'>join</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_intersect'>intersect</a> 1810 1811<a name='SkIRect_intersect_3'></a> 1812 1813--- 1814 1815<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1816bool intersect(int32_t left, int32_t top, int32_t right, int32_t bottom) 1817</pre> 1818 1819Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect from (<a href='#SkIRect_intersect_3_left'>left</a>, <a href='#SkIRect_intersect_3_top'>top</a>, <a href='#SkIRect_intersect_3_right'>right</a>, <a href='#SkIRect_intersect_3_bottom'>bottom</a>). Does not sort 1820construction. 1821 1822Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> intersects construction, and sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersection. 1823Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> does not intersect construction, and leaves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged. 1824 1825Returns false if either construction or <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty, leaving <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged. 1826 1827### Parameters 1828 1829<table> <tr> <td><a name='SkIRect_intersect_3_left'><code><strong>left</strong></code></a></td> 1830 <td>x-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1831 </tr> 1832 <tr> <td><a name='SkIRect_intersect_3_top'><code><strong>top</strong></code></a></td> 1833 <td>y-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1834 </tr> 1835 <tr> <td><a name='SkIRect_intersect_3_right'><code><strong>right</strong></code></a></td> 1836 <td>x-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1837 </tr> 1838 <tr> <td><a name='SkIRect_intersect_3_bottom'><code><strong>bottom</strong></code></a></td> 1839 <td>y-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1840 </tr> 1841</table> 1842 1843### Return Value 1844 1845true if construction and <a href='SkIRect_Reference#SkIRect'>SkIRect</a> have area in common 1846 1847### Example 1848 1849<div><fiddle-embed name="200422990eded2f754ab9893118f2645"><div>Two <a href='undocumented#SkDebugf'>SkDebugf</a> calls are required. If the calls are combined, their arguments 1850may not be evaluated in <a href='#SkIRect_intersect_3_left'>left</a> to <a href='#SkIRect_intersect_3_right'>right</a> order: the printed intersection may 1851be before or after the call to intersect. 1852</div> 1853 1854#### Example Output 1855 1856~~~~ 1857intersection: 30, 60, 50, 80 1858~~~~ 1859 1860</fiddle-embed></div> 1861 1862### See Also 1863 1864<a href='#SkIRect_intersectNoEmptyCheck'>intersectNoEmptyCheck</a> <a href='#SkIRect_Intersects'>Intersects</a> <a href='#SkIRect_join'>join</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_intersect'>intersect</a> 1865 1866<a name='SkIRect_Intersects'></a> 1867 1868--- 1869 1870<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1871static bool <a href='#SkIRect_Intersects'>Intersects</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b) 1872</pre> 1873 1874Returns true if <a href='#SkIRect_Intersects_a'>a</a> intersects <a href='#SkIRect_Intersects_b'>b</a>. 1875Returns false if either <a href='#SkIRect_Intersects_a'>a</a> or <a href='#SkIRect_Intersects_b'>b</a> is empty, or do not intersect. 1876 1877### Parameters 1878 1879<table> <tr> <td><a name='SkIRect_Intersects_a'><code><strong>a</strong></code></a></td> 1880 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td> 1881 </tr> 1882 <tr> <td><a name='SkIRect_Intersects_b'><code><strong>b</strong></code></a></td> 1883 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td> 1884 </tr> 1885</table> 1886 1887### Return Value 1888 1889true if <a href='#SkIRect_Intersects_a'>a</a> and <a href='#SkIRect_Intersects_b'>b</a> have area in common 1890 1891### Example 1892 1893<div><fiddle-embed name="0c67cf8981389efc7108369fb9b7976b"> 1894 1895#### Example Output 1896 1897~~~~ 1898intersection 1899~~~~ 1900 1901</fiddle-embed></div> 1902 1903### See Also 1904 1905<a href='#SkIRect_IntersectsNoEmptyCheck'>IntersectsNoEmptyCheck</a> <a href='#SkIRect_intersect'>intersect</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_intersect'>intersect</a> 1906 1907<a name='SkIRect_IntersectsNoEmptyCheck'></a> 1908 1909--- 1910 1911<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1912static bool <a href='#SkIRect_IntersectsNoEmptyCheck'>IntersectsNoEmptyCheck</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b) 1913</pre> 1914 1915Returns true if <a href='#SkIRect_IntersectsNoEmptyCheck_a'>a</a> intersects <a href='#SkIRect_IntersectsNoEmptyCheck_b'>b</a>. 1916Asserts if either <a href='#SkIRect_IntersectsNoEmptyCheck_a'>a</a> or <a href='#SkIRect_IntersectsNoEmptyCheck_b'>b</a> is empty, and if SK_DEBUG is defined. 1917 1918### Parameters 1919 1920<table> <tr> <td><a name='SkIRect_IntersectsNoEmptyCheck_a'><code><strong>a</strong></code></a></td> 1921 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td> 1922 </tr> 1923 <tr> <td><a name='SkIRect_IntersectsNoEmptyCheck_b'><code><strong>b</strong></code></a></td> 1924 <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td> 1925 </tr> 1926</table> 1927 1928### Return Value 1929 1930true if <a href='#SkIRect_IntersectsNoEmptyCheck_a'>a</a> and <a href='#SkIRect_IntersectsNoEmptyCheck_b'>b</a> have area in common 1931 1932### Example 1933 1934<div><fiddle-embed name="dba234d15162fb5b26e1a96529ca6a2a"> 1935 1936#### Example Output 1937 1938~~~~ 1939intersection 1940~~~~ 1941 1942</fiddle-embed></div> 1943 1944### See Also 1945 1946<a href='#SkIRect_Intersects'>Intersects</a> <a href='#SkIRect_intersect'>intersect</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_intersect'>intersect</a> 1947 1948<a name='Join'></a> 1949 1950<a name='SkIRect_join'></a> 1951 1952--- 1953 1954<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1955void join(int32_t left, int32_t top, int32_t right, int32_t bottom) 1956</pre> 1957 1958Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect from (<a href='#SkIRect_join_left'>left</a>, <a href='#SkIRect_join_top'>top</a>, <a href='#SkIRect_join_right'>right</a>, <a href='#SkIRect_join_bottom'>bottom</a>). Does not sort 1959construction. 1960 1961Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to the union of itself and the construction. 1962 1963Has no effect if construction is empty. Otherwise, if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty, sets 1964<a href='SkIRect_Reference#SkIRect'>SkIRect</a> to construction. 1965 1966### Parameters 1967 1968<table> <tr> <td><a name='SkIRect_join_left'><code><strong>left</strong></code></a></td> 1969 <td>x-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1970 </tr> 1971 <tr> <td><a name='SkIRect_join_top'><code><strong>top</strong></code></a></td> 1972 <td>y-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1973 </tr> 1974 <tr> <td><a name='SkIRect_join_right'><code><strong>right</strong></code></a></td> 1975 <td>x-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1976 </tr> 1977 <tr> <td><a name='SkIRect_join_bottom'><code><strong>bottom</strong></code></a></td> 1978 <td>y-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 1979 </tr> 1980</table> 1981 1982### Example 1983 1984<div><fiddle-embed name="c00ef06289d21db70340e465690e0e08"> 1985 1986#### Example Output 1987 1988~~~~ 1989join: 10, 20, 55, 65 1990~~~~ 1991 1992</fiddle-embed></div> 1993 1994### See Also 1995 1996<a href='#SkIRect_set'>set</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_join'>join</a> 1997 1998<a name='SkIRect_join_2'></a> 1999 2000--- 2001 2002<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2003void join(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) 2004</pre> 2005 2006Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to the union of itself and <a href='#SkIRect_join_2_r'>r</a>. 2007 2008Has no effect if <a href='#SkIRect_join_2_r'>r</a> is empty. Otherwise, if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty, sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to <a href='#SkIRect_join_2_r'>r</a>. 2009 2010### Parameters 2011 2012<table> <tr> <td><a name='SkIRect_join_2_r'><code><strong>r</strong></code></a></td> 2013 <td>expansion <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td> 2014 </tr> 2015</table> 2016 2017### Example 2018 2019<div><fiddle-embed name="75fd81c1d3512e63890d085593018876"> 2020 2021#### Example Output 2022 2023~~~~ 2024join: 10, 20, 55, 65 2025~~~~ 2026 2027</fiddle-embed></div> 2028 2029### See Also 2030 2031<a href='#SkIRect_set'>set</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_join'>join</a> 2032 2033<a name='Sorting'></a> 2034 2035<a name='SkIRect_sort'></a> 2036 2037--- 2038 2039<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2040void <a href='#SkIRect_sort'>sort()</a> 2041</pre> 2042 2043Swaps <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if <a href='#SkIRect_fLeft'>fLeft</a> is greater than <a href='#SkIRect_fRight'>fRight</a>; and swaps 2044<a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if <a href='#SkIRect_fTop'>fTop</a> is greater than <a href='#SkIRect_fBottom'>fBottom</a>. Result may be empty, 2045and <a href='#SkIRect_width'>width()</a> and <a href='#SkIRect_height'>height()</a> will be zero or positive. 2046 2047### Example 2048 2049<div><fiddle-embed name="fa12547fcfd4c1aef3db1a1f6aae0fe4"> 2050 2051#### Example Output 2052 2053~~~~ 2054rect: 30, 50, 20, 10 2055sorted: 20, 10, 30, 50 2056~~~~ 2057 2058</fiddle-embed></div> 2059 2060### See Also 2061 2062<a href='#SkIRect_makeSorted'>makeSorted</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_sort'>sort</a> 2063 2064<a name='SkIRect_makeSorted'></a> 2065 2066--- 2067 2068<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2069<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeSorted'>makeSorted</a>()const 2070</pre> 2071 2072Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> with <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> swapped if <a href='#SkIRect_fLeft'>fLeft</a> is greater than <a href='#SkIRect_fRight'>fRight</a>; and 2073with <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> swapped if <a href='#SkIRect_fTop'>fTop</a> is greater than <a href='#SkIRect_fBottom'>fBottom</a>. Result may be empty; 2074and <a href='#SkIRect_width'>width()</a> and <a href='#SkIRect_height'>height()</a> will be zero or positive. 2075 2076### Return Value 2077 2078sorted <a href='SkIRect_Reference#SkIRect'>SkIRect</a> 2079 2080### Example 2081 2082<div><fiddle-embed name="de89926c374aa16427916900b89a3441"> 2083 2084#### Example Output 2085 2086~~~~ 2087rect: 30, 50, 20, 10 2088sorted: 20, 10, 30, 50 2089~~~~ 2090 2091</fiddle-embed></div> 2092 2093### See Also 2094 2095<a href='#SkIRect_sort'>sort</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_makeSorted'>makeSorted</a> 2096 2097<a name='SkIRect_EmptyIRect'></a> 2098 2099--- 2100 2101<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 2102static const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkIRect_EmptyIRect'>EmptyIRect</a>() 2103</pre> 2104 2105Returns a reference to immutable empty <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, set to (0, 0, 0, 0). 2106 2107### Return Value 2108 2109global <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to all zeroes 2110 2111### Example 2112 2113<div><fiddle-embed name="65e0b9b52e907902630577941fb3ed6d"> 2114 2115#### Example Output 2116 2117~~~~ 2118rect: 0, 0, 0, 0 2119~~~~ 2120 2121</fiddle-embed></div> 2122 2123### See Also 2124 2125<a href='#SkIRect_MakeEmpty'>MakeEmpty</a> 2126 2127