blob: bbc98c9c929139f0a46b40832eb331058fd84e97 [file] [log] [blame] [view]
Cary Clarka560c472017-11-27 10:44:06 -05001SkIPoint Reference
2===
3
Cary Clarka90ea222018-10-16 10:30:28 -04004
Cary Clark61313f32018-10-08 14:57:48 -04005<a name='SkIPoint'></a>
Cary Clarka560c472017-11-27 10:44:06 -05006
Cary Clarka90ea222018-10-16 10:30:28 -04007---
8
Cary Clark61313f32018-10-08 14:57:48 -04009<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
10struct <a href='#SkIPoint'>SkIPoint</a> {
11 int32_t <a href='#SkIPoint_fX'>fX</a>;
12 int32_t <a href='#SkIPoint_fY'>fY</a>;
Cary Clarka560c472017-11-27 10:44:06 -050013
Cary Clark61313f32018-10-08 14:57:48 -040014 static constexpr <a href='#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_Make'>Make</a>(int32_t x, int32_t y);
15 int32_t <a href='#SkIPoint_x'>x</a>() const;
16 int32_t <a href='#SkIPoint_y'>y</a>() const;
17 bool <a href='#SkIPoint_isZero'>isZero</a>() const;
18 void <a href='#SkIPoint_set'>set</a>(int32_t x, int32_t y);
19 <a href='#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_minus_operator'>operator-()_const</a>;
20 void <a href='#SkIPoint_addto_operator'>operator+=(const SkIVector& v)</a>;
21 void <a href='#SkIPoint_subtractfrom_operator'>operator-=(const SkIVector& v)</a>;
22 bool <a href='#SkIPoint_equals'>equals</a>(int32_t x, int32_t y) const;
23 friend bool <a href='#SkIPoint_equal_operator'>operator==(const SkIPoint& a, const SkIPoint& b)</a>;
24 friend bool <a href='#SkIPoint_notequal_operator'>operator!=(const SkIPoint& a, const SkIPoint& b)</a>;
25 friend <a href='#SkIVector'>SkIVector</a> <a href='#SkIPoint_subtract_operator'>operator-(const SkIPoint& a, const SkIPoint& b)</a>;
26 friend <a href='#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_add_operator'>operator+(const SkIPoint& a, const SkIVector& b)</a>;
27};
28</pre>
Cary Clarka560c472017-11-27 10:44:06 -050029
Cary Clark61313f32018-10-08 14:57:48 -040030<a href='#SkIPoint'>SkIPoint</a> holds two 32-bit integer coordinates.<table style='border-collapse: collapse; width: 62.5em'>
Cary Clark08895c42018-02-01 09:37:32 -050031
Cary Clark682c58d2018-05-16 07:07:07 -040032 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
Cary Clark61313f32018-10-08 14:57:48 -040033<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</th>
Cary Clark682c58d2018-05-16 07:07:07 -040034<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
35 <tr style='background-color: #f0f0f0; '>
36 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td>
37 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIPoint_fX'><code>fX</code></a></td>
38 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
39x-axis value used by <a href='#IPoint'>IPoint</a>.
40</td>
41 </tr>
42 <tr>
43 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td>
44 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIPoint_fY'><code>fY</code></a></td>
45 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
46y-axis value used by <a href='#IPoint'>IPoint</a>.
47</td>
48 </tr>
Cary Clark682c58d2018-05-16 07:07:07 -040049</table>
50
Cary Clark682c58d2018-05-16 07:07:07 -040051<a name='SkIPoint_Make'></a>
Cary Clarka90ea222018-10-16 10:30:28 -040052
53---
Cary Clarka560c472017-11-27 10:44:06 -050054
Cary Clark682c58d2018-05-16 07:07:07 -040055<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
56static constexpr <a href='#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_Make'>Make</a>(int32_t x, int32_t y)
Cary Clarka560c472017-11-27 10:44:06 -050057</pre>
58
Cary Clark09d80c02018-10-31 12:14:03 -040059Sets <a href='#SkIPoint_fX'>fX</a> to <a href='#SkIPoint_Make_x'>x</a>, <a href='#SkIPoint_fY'>fY</a> to <a href='#SkIPoint_Make_y'>y</a>.
Cary Clarka560c472017-11-27 10:44:06 -050060
61### Parameters
62
Cary Clark682c58d2018-05-16 07:07:07 -040063<table> <tr> <td><a name='SkIPoint_Make_x'><code><strong>x</strong></code></a></td>
Cary Clark09d80c02018-10-31 12:14:03 -040064 <td>integer x-axis value of constructed <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a></td>
Cary Clark682c58d2018-05-16 07:07:07 -040065 </tr>
66 <tr> <td><a name='SkIPoint_Make_y'><code><strong>y</strong></code></a></td>
Cary Clark09d80c02018-10-31 12:14:03 -040067 <td>integer y-axis value of constructed <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a></td>
Cary Clarka560c472017-11-27 10:44:06 -050068 </tr>
69</table>
70
71### Return Value
72
Cary Clark09d80c02018-10-31 12:14:03 -040073<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> (<a href='#SkIPoint_Make_x'>x</a>, <a href='#SkIPoint_Make_y'>y</a>)
Cary Clarka560c472017-11-27 10:44:06 -050074
75### Example
76
77<div><fiddle-embed name="e5cf5159525bd3140f288a95fe641fae">
78
79#### Example Output
80
81~~~~
82pt1 == pt2
83~~~~
84
85</fiddle-embed></div>
86
87### See Also
88
Cary Clark61313f32018-10-08 14:57:48 -040089<a href='#SkIPoint_set'>set</a>() <a href='SkPoint_Reference#SkPoint_iset'>SkPoint::iset</a><sup><a href='SkPoint_Reference#SkPoint_iset_2'>[2]</a></sup>() <a href='SkPoint_Reference#SkPoint_Make'>SkPoint::Make</a>
Cary Clarka560c472017-11-27 10:44:06 -050090
Cary Clarka90ea222018-10-16 10:30:28 -040091<a name='Property'></a>
Cary Clark4855f782018-02-06 09:41:53 -050092
Cary Clark682c58d2018-05-16 07:07:07 -040093<a name='SkIPoint_x'></a>
Cary Clarka90ea222018-10-16 10:30:28 -040094
95---
Cary Clarka560c472017-11-27 10:44:06 -050096
Cary Clark682c58d2018-05-16 07:07:07 -040097<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
98int32_t <a href='#SkIPoint_x'>x</a>() const
Cary Clarka560c472017-11-27 10:44:06 -050099</pre>
100
Cary Clark09d80c02018-10-31 12:14:03 -0400101Returns x-axis value of <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500102
103### Return Value
104
Cary Clark682c58d2018-05-16 07:07:07 -0400105<a href='#SkIPoint_fX'>fX</a>
Cary Clarka560c472017-11-27 10:44:06 -0500106
107### Example
108
109<div><fiddle-embed name="eed4185294f8a8216fc354e6ee6b2e3a">
110
111#### Example Output
112
113~~~~
114pt1.fX == pt1.x()
115~~~~
116
117</fiddle-embed></div>
118
119### See Also
120
Cary Clark61313f32018-10-08 14:57:48 -0400121<a href='#SkIPoint_y'>y</a>() <a href='SkPoint_Reference#SkPoint_x'>SkPoint::x</a>()
Cary Clarka560c472017-11-27 10:44:06 -0500122
Cary Clark682c58d2018-05-16 07:07:07 -0400123<a name='SkIPoint_y'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400124
125---
Cary Clarka560c472017-11-27 10:44:06 -0500126
Cary Clark682c58d2018-05-16 07:07:07 -0400127<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
128int32_t <a href='#SkIPoint_y'>y</a>() const
Cary Clarka560c472017-11-27 10:44:06 -0500129</pre>
130
Cary Clark09d80c02018-10-31 12:14:03 -0400131Returns y-axis value of <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500132
133### Return Value
134
Cary Clark682c58d2018-05-16 07:07:07 -0400135<a href='#SkIPoint_fY'>fY</a>
Cary Clarka560c472017-11-27 10:44:06 -0500136
137### Example
138
139<div><fiddle-embed name="35c41b8ba7cebf8c9a7a8494e610e14d">
140
141#### Example Output
142
143~~~~
144pt1.fY == pt1.y()
145~~~~
146
147</fiddle-embed></div>
148
149### See Also
150
Cary Clark61313f32018-10-08 14:57:48 -0400151<a href='#SkIPoint_x'>x</a>() <a href='SkPoint_Reference#SkPoint_y'>SkPoint::y</a>()
Cary Clarka560c472017-11-27 10:44:06 -0500152
Cary Clark682c58d2018-05-16 07:07:07 -0400153<a name='SkIPoint_isZero'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400154
155---
Cary Clarka560c472017-11-27 10:44:06 -0500156
Cary Clark682c58d2018-05-16 07:07:07 -0400157<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
158bool <a href='#SkIPoint_isZero'>isZero</a>() const
Cary Clarka560c472017-11-27 10:44:06 -0500159</pre>
160
Cary Clark682c58d2018-05-16 07:07:07 -0400161Returns true if <a href='#SkIPoint_fX'>fX</a> and <a href='#SkIPoint_fY'>fY</a> are both zero.
Cary Clarka560c472017-11-27 10:44:06 -0500162
163### Return Value
164
Cary Clark682c58d2018-05-16 07:07:07 -0400165true if <a href='#SkIPoint_fX'>fX</a> is zero and <a href='#SkIPoint_fY'>fY</a> is zero
Cary Clarka560c472017-11-27 10:44:06 -0500166
167### Example
168
169<div><fiddle-embed name="658c1df611b4577cc7e0bb384e95737e">
170
171#### Example Output
172
173~~~~
174pt.isZero() == true
175~~~~
176
177</fiddle-embed></div>
178
179### See Also
180
Cary Clark682c58d2018-05-16 07:07:07 -0400181<a href='SkPoint_Reference#SkPoint_isZero'>SkPoint::isZero</a>
Cary Clarka560c472017-11-27 10:44:06 -0500182
Cary Clarka90ea222018-10-16 10:30:28 -0400183<a name='Set'></a>
Cary Clark4855f782018-02-06 09:41:53 -0500184
Cary Clark682c58d2018-05-16 07:07:07 -0400185<a name='SkIPoint_set'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400186
187---
Cary Clarka560c472017-11-27 10:44:06 -0500188
Cary Clark682c58d2018-05-16 07:07:07 -0400189<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
190void <a href='#SkIPoint_set'>set</a>(int32_t x, int32_t y)
Cary Clarka560c472017-11-27 10:44:06 -0500191</pre>
192
Cary Clark09d80c02018-10-31 12:14:03 -0400193Sets <a href='#SkIPoint_fX'>fX</a> to <a href='#SkIPoint_set()_x'>x</a> and <a href='#SkIPoint_fY'>fY</a> to <a href='#SkIPoint_set()_y'>y</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500194
195### Parameters
196
Cary Clark682c58d2018-05-16 07:07:07 -0400197<table> <tr> <td><a name='SkIPoint_set_x'><code><strong>x</strong></code></a></td>
198 <td>new value for <a href='#SkIPoint_fX'>fX</a></td>
199 </tr>
200 <tr> <td><a name='SkIPoint_set_y'><code><strong>y</strong></code></a></td>
201 <td>new value for <a href='#SkIPoint_fY'>fY</a></td>
Cary Clarka560c472017-11-27 10:44:06 -0500202 </tr>
203</table>
204
205### Example
206
skia-bookmaker61cc9fa2018-07-11 05:28:17 +0000207<div><fiddle-embed name="165418b5718d79d8f1682a8a0ee32ba0">
Cary Clarka560c472017-11-27 10:44:06 -0500208
209#### Example Output
210
211~~~~
212pt1 == pt2
213~~~~
214
215</fiddle-embed></div>
216
217### See Also
218
Cary Clark682c58d2018-05-16 07:07:07 -0400219<a href='#SkIPoint_Make'>Make</a>
Cary Clarka560c472017-11-27 10:44:06 -0500220
Cary Clark682c58d2018-05-16 07:07:07 -0400221<a name='SkIPoint_minus_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400222
223---
Cary Clarka560c472017-11-27 10:44:06 -0500224
Cary Clark682c58d2018-05-16 07:07:07 -0400225<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clark61313f32018-10-08 14:57:48 -0400226<a href='#SkIPoint'>SkIPoint</a> operator-() const
Cary Clarka560c472017-11-27 10:44:06 -0500227</pre>
228
Cary Clark09d80c02018-10-31 12:14:03 -0400229Returns <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> changing the signs of <a href='#SkIPoint_fX'>fX</a> and <a href='#SkIPoint_fY'>fY</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500230
231### Return Value
232
Cary Clark09d80c02018-10-31 12:14:03 -0400233<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> as (-<a href='#SkIPoint_fX'>fX</a>, -<a href='#SkIPoint_fY'>fY</a>)
Cary Clarka560c472017-11-27 10:44:06 -0500234
235### Example
236
Cary Clark681287e2018-03-16 11:34:15 -0400237<div><fiddle-embed name="b30d4780475d113a7fed3637af7f0db1">
Cary Clarka560c472017-11-27 10:44:06 -0500238
239#### Example Output
240
241~~~~
242pt: 0, 0 negate: 0, 0
243pt: -1, -2 negate: 1, 2
244pt: 2147483647, -2147483647 negate: -2147483647, 2147483647
245pt: -2147483648, -2147483648 negate: -2147483648, -2147483648
246~~~~
247
248</fiddle-embed></div>
249
250### See Also
251
Cary Clark682c58d2018-05-16 07:07:07 -0400252<a href='#SkIPoint_subtract_operator'>operator-(const SkIPoint& a, const SkIPoint& b)</a> <a href='#SkIPoint_subtractfrom_operator'>operator-=(const SkIVector& v)</a> <a href='SkPoint_Reference#SkPoint_minus_operator'>SkPoint::operator-() const</a>
Cary Clarka560c472017-11-27 10:44:06 -0500253
Cary Clark682c58d2018-05-16 07:07:07 -0400254<a name='SkIPoint_addto_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400255
256---
Cary Clarka560c472017-11-27 10:44:06 -0500257
Cary Clark682c58d2018-05-16 07:07:07 -0400258<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
259void <a href='#SkIPoint_addto_operator'>operator+=(const SkIVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500260</pre>
261
Cary Clark2be81cf2018-09-13 12:04:30 -0400262Offsets <a href='#IPoint'>IPoint</a> by <a href='#IVector'>IVector</a> <a href='#SkIPoint_addto_operator_v'>v</a>. Sets <a href='#IPoint'>IPoint</a> to <code>\(<a href='#SkIPoint_fX'>fX</a>&nbsp;\+&nbsp;<a href='#SkIPoint_addto_operator_v'>v</a>\.<a href='#SkIPoint_fX'>fX</a>, <a href='#SkIPoint_fY'>fY</a>&nbsp;\+&nbsp;<a href='#SkIPoint_addto_operator_v'>v</a>\.<a href='#SkIPoint_fY'>fY</a>\)</code>.
Cary Clarka560c472017-11-27 10:44:06 -0500263
264### Parameters
265
Cary Clark682c58d2018-05-16 07:07:07 -0400266<table> <tr> <td><a name='SkIPoint_addto_operator_v'><code><strong>v</strong></code></a></td>
267 <td><a href='#IVector'>IVector</a> to add</td>
Cary Clarka560c472017-11-27 10:44:06 -0500268 </tr>
269</table>
270
271### Example
272
273<div><fiddle-embed name="4eb2d95c9e9a66f05296e345bb68bd51"></fiddle-embed></div>
274
275### See Also
276
Cary Clark682c58d2018-05-16 07:07:07 -0400277<a href='#SkIPoint_add_operator'>operator+(const SkIPoint& a, const SkIVector& b)</a> <a href='SkPoint_Reference#SkPoint_addto_operator'>SkPoint::operator+=(const SkVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500278
Cary Clark682c58d2018-05-16 07:07:07 -0400279<a name='SkIPoint_subtractfrom_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400280
281---
Cary Clarka560c472017-11-27 10:44:06 -0500282
Cary Clark682c58d2018-05-16 07:07:07 -0400283<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
284void <a href='#SkIPoint_subtractfrom_operator'>operator-=(const SkIVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500285</pre>
286
Cary Clark2be81cf2018-09-13 12:04:30 -0400287Subtracts <a href='#IVector'>IVector</a> <a href='#SkIPoint_subtractfrom_operator_v'>v</a> from <a href='#IPoint'>IPoint</a>. Sets <a href='#IPoint'>IPoint</a> to: <code>\(<a href='#SkIPoint_fX'>fX</a>&nbsp;\-&nbsp;<a href='#SkIPoint_subtractfrom_operator_v'>v</a>\.<a href='#SkIPoint_fX'>fX</a>, <a href='#SkIPoint_fY'>fY</a>&nbsp;\-&nbsp;<a href='#SkIPoint_subtractfrom_operator_v'>v</a>\.<a href='#SkIPoint_fY'>fY</a>\)</code>.
Cary Clarka560c472017-11-27 10:44:06 -0500288
289### Parameters
290
Cary Clark682c58d2018-05-16 07:07:07 -0400291<table> <tr> <td><a name='SkIPoint_subtractfrom_operator_v'><code><strong>v</strong></code></a></td>
292 <td><a href='#IVector'>IVector</a> to subtract</td>
Cary Clarka560c472017-11-27 10:44:06 -0500293 </tr>
294</table>
295
296### Example
297
298<div><fiddle-embed name="a01e533dc7ab34ed728dc4e7a5f1f0ee"></fiddle-embed></div>
299
300### See Also
301
Cary Clark682c58d2018-05-16 07:07:07 -0400302<a href='#SkIPoint_subtract_operator'>operator-(const SkIPoint& a, const SkIPoint& b)</a> <a href='SkPoint_Reference#SkPoint_subtractfrom_operator'>SkPoint::operator-=(const SkVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500303
Cary Clark682c58d2018-05-16 07:07:07 -0400304<a name='SkIPoint_equals'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400305
306---
Cary Clarka560c472017-11-27 10:44:06 -0500307
Cary Clark682c58d2018-05-16 07:07:07 -0400308<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
309bool <a href='#SkIPoint_equals'>equals</a>(int32_t x, int32_t y) const
Cary Clarka560c472017-11-27 10:44:06 -0500310</pre>
311
Cary Clark09d80c02018-10-31 12:14:03 -0400312Returns true if <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> is equivalent to <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> constructed from (<a href='#SkIPoint_equals()_x'>x</a>, <a href='#SkIPoint_equals()_y'>y</a>).
Cary Clarka560c472017-11-27 10:44:06 -0500313
314### Parameters
315
Cary Clark682c58d2018-05-16 07:07:07 -0400316<table> <tr> <td><a name='SkIPoint_equals_x'><code><strong>x</strong></code></a></td>
317 <td>value compared with <a href='#SkIPoint_fX'>fX</a></td>
318 </tr>
319 <tr> <td><a name='SkIPoint_equals_y'><code><strong>y</strong></code></a></td>
320 <td>value compared with <a href='#SkIPoint_fY'>fY</a></td>
Cary Clarka560c472017-11-27 10:44:06 -0500321 </tr>
322</table>
323
324### Return Value
325
Cary Clark09d80c02018-10-31 12:14:03 -0400326true if <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> equals (<a href='#SkIPoint_equals()_x'>x</a>, <a href='#SkIPoint_equals()_y'>y</a>)
Cary Clarka560c472017-11-27 10:44:06 -0500327
328### Example
329
330<div><fiddle-embed name="64f575d36439d5b69aaed14ffeff1cc4">
331
332#### Example Output
333
334~~~~
335pt: 0, 0 == pt
336pt: -1, -2 == pt
337pt: 2147483647, -1 == pt
338pt: -2147483648, -1 == pt
339~~~~
340
341</fiddle-embed></div>
342
343### See Also
344
Cary Clark682c58d2018-05-16 07:07:07 -0400345<a href='#SkIPoint_equal_operator'>operator==(const SkIPoint& a, const SkIPoint& b)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500346
Cary Clark682c58d2018-05-16 07:07:07 -0400347<a name='SkIPoint_equal_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400348
349---
Cary Clarka560c472017-11-27 10:44:06 -0500350
Cary Clark682c58d2018-05-16 07:07:07 -0400351<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
352bool <a href='#SkIPoint_equal_operator'>operator==(const SkIPoint& a, const SkIPoint& b)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500353</pre>
354
Cary Clark09d80c02018-10-31 12:14:03 -0400355Returns true if <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_a'>a</a> is equivalent to <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500356
357### Parameters
358
Cary Clark682c58d2018-05-16 07:07:07 -0400359<table> <tr> <td><a name='SkIPoint_equal_operator_a'><code><strong>a</strong></code></a></td>
Cary Clark09d80c02018-10-31 12:14:03 -0400360 <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
Cary Clark682c58d2018-05-16 07:07:07 -0400361 </tr>
362 <tr> <td><a name='SkIPoint_equal_operator_b'><code><strong>b</strong></code></a></td>
Cary Clark09d80c02018-10-31 12:14:03 -0400363 <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
Cary Clarka560c472017-11-27 10:44:06 -0500364 </tr>
365</table>
366
367### Return Value
368
Cary Clark09d80c02018-10-31 12:14:03 -0400369true if <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> == <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> and <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> == <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
Cary Clarka560c472017-11-27 10:44:06 -0500370
371### Example
372
373<div><fiddle-embed name="37ffe2817d720f99e6c252332ce70460">
374
375#### Example Output
376
377~~~~
378pt: 0, 0 == pt
379pt: -1, -2 == pt
380pt: 2147483647, -1 == pt
381pt: -2147483648, -1 == pt
382~~~~
383
384</fiddle-embed></div>
385
386### See Also
387
Cary Clark61313f32018-10-08 14:57:48 -0400388<a href='#SkIPoint_equals'>equals</a>() <a href='#SkIPoint_notequal_operator'>operator!=(const SkIPoint& a, const SkIPoint& b)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500389
Cary Clark682c58d2018-05-16 07:07:07 -0400390<a name='SkIPoint_notequal_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400391
392---
Cary Clarka560c472017-11-27 10:44:06 -0500393
Cary Clark682c58d2018-05-16 07:07:07 -0400394<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
395bool <a href='#SkIPoint_notequal_operator'>operator!=(const SkIPoint& a, const SkIPoint& b)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500396</pre>
397
Cary Clark09d80c02018-10-31 12:14:03 -0400398Returns true if <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_a'>a</a> is not equivalent to <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500399
400### Parameters
401
Cary Clark682c58d2018-05-16 07:07:07 -0400402<table> <tr> <td><a name='SkIPoint_notequal_operator_a'><code><strong>a</strong></code></a></td>
Cary Clark09d80c02018-10-31 12:14:03 -0400403 <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
Cary Clark682c58d2018-05-16 07:07:07 -0400404 </tr>
405 <tr> <td><a name='SkIPoint_notequal_operator_b'><code><strong>b</strong></code></a></td>
Cary Clark09d80c02018-10-31 12:14:03 -0400406 <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
Cary Clarka560c472017-11-27 10:44:06 -0500407 </tr>
408</table>
409
410### Return Value
411
Cary Clark09d80c02018-10-31 12:14:03 -0400412true if <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> != <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> or <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> != <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
Cary Clarka560c472017-11-27 10:44:06 -0500413
414### Example
415
Cary Clark7f644ec2018-07-19 10:50:44 -0400416<div><fiddle-embed name="dd89dc48dff69b53d99530b120f204bc">
Cary Clarka560c472017-11-27 10:44:06 -0500417
418#### Example Output
419
420~~~~
421pt: 0, 0 == pt
422pt: -1, -2 == pt
423pt: 2147483647, -1 == pt
424pt: -2147483648, -1 == pt
425~~~~
426
427</fiddle-embed></div>
428
429### See Also
430
Cary Clark61313f32018-10-08 14:57:48 -0400431<a href='#SkIPoint_equal_operator'>operator==(const SkIPoint& a, const SkIPoint& b)</a> <a href='#SkIPoint_equals'>equals</a>()
Cary Clarka560c472017-11-27 10:44:06 -0500432
Cary Clark682c58d2018-05-16 07:07:07 -0400433<a name='SkIPoint_subtract_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400434
435---
Cary Clarka560c472017-11-27 10:44:06 -0500436
Cary Clark682c58d2018-05-16 07:07:07 -0400437<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
438<a href='#SkIVector'>SkIVector</a> <a href='#SkIPoint_subtract_operator'>operator-(const SkIPoint& a, const SkIPoint& b)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500439</pre>
440
Cary Clark2be81cf2018-09-13 12:04:30 -0400441Returns <a href='#IVector'>IVector</a> from <a href='#SkIPoint_subtract_operator_b'>b</a> to <a href='#SkIPoint_subtract_operator_a'>a</a>; computed as <code>\(<a href='#SkIPoint_subtract_operator_a'>a</a>\.<a href='#SkIPoint_fX'>fX</a>&nbsp;\-&nbsp;<a href='#SkIPoint_subtract_operator_b'>b</a>\.<a href='#SkIPoint_fX'>fX</a>, <a href='#SkIPoint_subtract_operator_a'>a</a>\.<a href='#SkIPoint_fY'>fY</a>&nbsp;\-&nbsp;<a href='#SkIPoint_subtract_operator_b'>b</a>\.<a href='#SkIPoint_fY'>fY</a>\)</code>.
Cary Clarka560c472017-11-27 10:44:06 -0500442
Cary Clark682c58d2018-05-16 07:07:07 -0400443Can also be used to subtract <a href='#IVector'>IVector</a> from <a href='#IVector'>IVector</a>, returning <a href='#IVector'>IVector</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500444
445### Parameters
446
Cary Clark682c58d2018-05-16 07:07:07 -0400447<table> <tr> <td><a name='SkIPoint_subtract_operator_a'><code><strong>a</strong></code></a></td>
448 <td><a href='#IPoint'>IPoint</a> or <a href='#IVector'>IVector</a> to subtract from</td>
449 </tr>
450 <tr> <td><a name='SkIPoint_subtract_operator_b'><code><strong>b</strong></code></a></td>
451 <td><a href='#IVector'>IVector</a> to subtract</td>
Cary Clarka560c472017-11-27 10:44:06 -0500452 </tr>
453</table>
454
455### Return Value
456
Cary Clark682c58d2018-05-16 07:07:07 -0400457<a href='#IVector'>IVector</a> from <a href='#SkIPoint_subtract_operator_b'>b</a> to <a href='#SkIPoint_subtract_operator_a'>a</a>
Cary Clarka560c472017-11-27 10:44:06 -0500458
459### Example
460
461<div><fiddle-embed name="e626e26bf557857b824aa7d03f723e0f"></fiddle-embed></div>
462
463### See Also
464
Cary Clark682c58d2018-05-16 07:07:07 -0400465<a href='#SkIPoint_subtractfrom_operator'>operator-=(const SkIVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500466
Cary Clark682c58d2018-05-16 07:07:07 -0400467<a name='SkIPoint_add_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400468
469---
Cary Clarka560c472017-11-27 10:44:06 -0500470
Cary Clark682c58d2018-05-16 07:07:07 -0400471<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
472<a href='#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_add_operator'>operator+(const SkIPoint& a, const SkIVector& b)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500473</pre>
474
Cary Clark682c58d2018-05-16 07:07:07 -0400475Returns <a href='#IPoint'>IPoint</a> resulting from <a href='#IPoint'>IPoint</a> <a href='#SkIPoint_add_operator_a'>a</a> offset by <a href='#IVector'>IVector</a> <a href='#SkIPoint_add_operator_b'>b</a>, computed as:
Cary Clark2be81cf2018-09-13 12:04:30 -0400476<code>\(<a href='#SkIPoint_add_operator_a'>a</a>\.<a href='#SkIPoint_fX'>fX</a>&nbsp;\+&nbsp;<a href='#SkIPoint_add_operator_b'>b</a>\.<a href='#SkIPoint_fX'>fX</a>, <a href='#SkIPoint_add_operator_a'>a</a>\.<a href='#SkIPoint_fY'>fY</a>&nbsp;\+&nbsp;<a href='#SkIPoint_add_operator_b'>b</a>\.<a href='#SkIPoint_fY'>fY</a>\)</code>.
Cary Clarka560c472017-11-27 10:44:06 -0500477
Cary Clark682c58d2018-05-16 07:07:07 -0400478Can also be used to offset <a href='#IPoint'>IPoint</a> <a href='#SkIPoint_add_operator_b'>b</a> by <a href='#IVector'>IVector</a> <a href='#SkIPoint_add_operator_a'>a</a>, returning <a href='#IPoint'>IPoint</a>.
479Can also be used to add <a href='#IVector'>IVector</a> to <a href='#IVector'>IVector</a>, returning <a href='#IVector'>IVector</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500480
481### Parameters
482
Cary Clark682c58d2018-05-16 07:07:07 -0400483<table> <tr> <td><a name='SkIPoint_add_operator_a'><code><strong>a</strong></code></a></td>
484 <td><a href='#IPoint'>IPoint</a> or <a href='#IVector'>IVector</a> to add to</td>
485 </tr>
486 <tr> <td><a name='SkIPoint_add_operator_b'><code><strong>b</strong></code></a></td>
487 <td><a href='#IPoint'>IPoint</a> or <a href='#IVector'>IVector</a> to add</td>
Cary Clarka560c472017-11-27 10:44:06 -0500488 </tr>
489</table>
490
491### Return Value
492
Cary Clark682c58d2018-05-16 07:07:07 -0400493<a href='#IPoint'>IPoint</a> equal to <a href='#SkIPoint_add_operator_a'>a</a> offset by <a href='#SkIPoint_add_operator_b'>b</a>
Cary Clarka560c472017-11-27 10:44:06 -0500494
495### Example
496
497<div><fiddle-embed name="63f4cba971c6d8434595906f865b5a29"></fiddle-embed></div>
498
499### See Also
500
Cary Clark682c58d2018-05-16 07:07:07 -0400501<a href='#SkIPoint_addto_operator'>operator+=(const SkIVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500502
Cary Clarka90ea222018-10-16 10:30:28 -0400503<a name='IVector'></a>
504
505<a name='SkIVector'></a>
506
Cary Clarka560c472017-11-27 10:44:06 -0500507---
508
Cary Clark682c58d2018-05-16 07:07:07 -0400509<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
510 typedef <a href='#SkIPoint'>SkIPoint</a> <a href='#SkIVector'>SkIVector</a>;
511</pre>
512
513<a href='#SkIVector'>SkIVector</a> provides an alternative name for <a href='#SkIPoint'>SkIPoint</a>. <a href='#SkIVector'>SkIVector</a> and <a href='#SkIPoint'>SkIPoint</a>
Cary Clark137b8742018-05-30 09:21:49 -0400514can be used interchangeably for all purposes.