• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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