blob: b88588e51fcf82c84c11499c7ccf7602002c2ce2 [file] [log] [blame] [view]
Cary Clarka560c472017-11-27 10:44:06 -05001SkIPoint Reference
2===
3
Cary Clark61313f32018-10-08 14:57:48 -04004<a name='SkIPoint'></a>
Cary Clarka560c472017-11-27 10:44:06 -05005
Cary Clark61313f32018-10-08 14:57:48 -04006<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
7struct <a href='#SkIPoint'>SkIPoint</a> {
8 int32_t <a href='#SkIPoint_fX'>fX</a>;
9 int32_t <a href='#SkIPoint_fY'>fY</a>;
Cary Clarka560c472017-11-27 10:44:06 -050010
Cary Clark61313f32018-10-08 14:57:48 -040011 static constexpr <a href='#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_Make'>Make</a>(int32_t x, int32_t y);
12 int32_t <a href='#SkIPoint_x'>x</a>() const;
13 int32_t <a href='#SkIPoint_y'>y</a>() const;
14 bool <a href='#SkIPoint_isZero'>isZero</a>() const;
15 void <a href='#SkIPoint_set'>set</a>(int32_t x, int32_t y);
16 <a href='#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_minus_operator'>operator-()_const</a>;
17 void <a href='#SkIPoint_addto_operator'>operator+=(const SkIVector& v)</a>;
18 void <a href='#SkIPoint_subtractfrom_operator'>operator-=(const SkIVector& v)</a>;
19 bool <a href='#SkIPoint_equals'>equals</a>(int32_t x, int32_t y) const;
20 friend bool <a href='#SkIPoint_equal_operator'>operator==(const SkIPoint& a, const SkIPoint& b)</a>;
21 friend bool <a href='#SkIPoint_notequal_operator'>operator!=(const SkIPoint& a, const SkIPoint& b)</a>;
22 friend <a href='#SkIVector'>SkIVector</a> <a href='#SkIPoint_subtract_operator'>operator-(const SkIPoint& a, const SkIPoint& b)</a>;
23 friend <a href='#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_add_operator'>operator+(const SkIPoint& a, const SkIVector& b)</a>;
24};
25</pre>
Cary Clarka560c472017-11-27 10:44:06 -050026
Cary Clark61313f32018-10-08 14:57:48 -040027<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 -050028
Cary Clark682c58d2018-05-16 07:07:07 -040029 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
Cary Clark61313f32018-10-08 14:57:48 -040030<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</th>
Cary Clark682c58d2018-05-16 07:07:07 -040031<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
32 <tr style='background-color: #f0f0f0; '>
33 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td>
34 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIPoint_fX'><code>fX</code></a></td>
35 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
36x-axis value used by <a href='#IPoint'>IPoint</a>.
37</td>
38 </tr>
39 <tr>
40 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td>
41 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIPoint_fY'><code>fY</code></a></td>
42 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
43y-axis value used by <a href='#IPoint'>IPoint</a>.
44</td>
45 </tr>
Cary Clark682c58d2018-05-16 07:07:07 -040046</table>
47
Cary Clark682c58d2018-05-16 07:07:07 -040048<a name='SkIPoint_Make'></a>
Cary Clarka560c472017-11-27 10:44:06 -050049## Make
50
Cary Clark682c58d2018-05-16 07:07:07 -040051<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
52static 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 -050053</pre>
54
Cary Clark682c58d2018-05-16 07:07:07 -040055Sets <a href='#SkIPoint_fX'>fX</a> to x, <a href='#SkIPoint_fY'>fY</a> to y.
Cary Clarka560c472017-11-27 10:44:06 -050056
57### Parameters
58
Cary Clark682c58d2018-05-16 07:07:07 -040059<table> <tr> <td><a name='SkIPoint_Make_x'><code><strong>x</strong></code></a></td>
60 <td>integer x-axis value of constructed <a href='#IPoint'>IPoint</a></td>
61 </tr>
62 <tr> <td><a name='SkIPoint_Make_y'><code><strong>y</strong></code></a></td>
63 <td>integer y-axis value of constructed <a href='#IPoint'>IPoint</a></td>
Cary Clarka560c472017-11-27 10:44:06 -050064 </tr>
65</table>
66
67### Return Value
68
Cary Clark682c58d2018-05-16 07:07:07 -040069<a href='#IPoint'>IPoint</a> (x, y)
Cary Clarka560c472017-11-27 10:44:06 -050070
71### Example
72
73<div><fiddle-embed name="e5cf5159525bd3140f288a95fe641fae">
74
75#### Example Output
76
77~~~~
78pt1 == pt2
79~~~~
80
81</fiddle-embed></div>
82
83### See Also
84
Cary Clark61313f32018-10-08 14:57:48 -040085<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 -050086
87---
88
Cary Clark682c58d2018-05-16 07:07:07 -040089## <a name='Property'>Property</a>
Cary Clark4855f782018-02-06 09:41:53 -050090
Cary Clark682c58d2018-05-16 07:07:07 -040091<a name='SkIPoint_x'></a>
Cary Clarka560c472017-11-27 10:44:06 -050092## x
93
Cary Clark682c58d2018-05-16 07:07:07 -040094<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
95int32_t <a href='#SkIPoint_x'>x</a>() const
Cary Clarka560c472017-11-27 10:44:06 -050096</pre>
97
Cary Clark682c58d2018-05-16 07:07:07 -040098Returns x-axis value of <a href='#IPoint'>IPoint</a>.
Cary Clarka560c472017-11-27 10:44:06 -050099
100### Return Value
101
Cary Clark682c58d2018-05-16 07:07:07 -0400102<a href='#SkIPoint_fX'>fX</a>
Cary Clarka560c472017-11-27 10:44:06 -0500103
104### Example
105
106<div><fiddle-embed name="eed4185294f8a8216fc354e6ee6b2e3a">
107
108#### Example Output
109
110~~~~
111pt1.fX == pt1.x()
112~~~~
113
114</fiddle-embed></div>
115
116### See Also
117
Cary Clark61313f32018-10-08 14:57:48 -0400118<a href='#SkIPoint_y'>y</a>() <a href='SkPoint_Reference#SkPoint_x'>SkPoint::x</a>()
Cary Clarka560c472017-11-27 10:44:06 -0500119
120---
121
Cary Clark682c58d2018-05-16 07:07:07 -0400122<a name='SkIPoint_y'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500123## y
124
Cary Clark682c58d2018-05-16 07:07:07 -0400125<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
126int32_t <a href='#SkIPoint_y'>y</a>() const
Cary Clarka560c472017-11-27 10:44:06 -0500127</pre>
128
Cary Clark682c58d2018-05-16 07:07:07 -0400129Returns y-axis value of <a href='#IPoint'>IPoint</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500130
131### Return Value
132
Cary Clark682c58d2018-05-16 07:07:07 -0400133<a href='#SkIPoint_fY'>fY</a>
Cary Clarka560c472017-11-27 10:44:06 -0500134
135### Example
136
137<div><fiddle-embed name="35c41b8ba7cebf8c9a7a8494e610e14d">
138
139#### Example Output
140
141~~~~
142pt1.fY == pt1.y()
143~~~~
144
145</fiddle-embed></div>
146
147### See Also
148
Cary Clark61313f32018-10-08 14:57:48 -0400149<a href='#SkIPoint_x'>x</a>() <a href='SkPoint_Reference#SkPoint_y'>SkPoint::y</a>()
Cary Clarka560c472017-11-27 10:44:06 -0500150
151---
152
Cary Clark682c58d2018-05-16 07:07:07 -0400153<a name='SkIPoint_isZero'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500154## isZero
155
Cary Clark682c58d2018-05-16 07:07:07 -0400156<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
157bool <a href='#SkIPoint_isZero'>isZero</a>() const
Cary Clarka560c472017-11-27 10:44:06 -0500158</pre>
159
Cary Clark682c58d2018-05-16 07:07:07 -0400160Returns 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 -0500161
162### Return Value
163
Cary Clark682c58d2018-05-16 07:07:07 -0400164true 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 -0500165
166### Example
167
168<div><fiddle-embed name="658c1df611b4577cc7e0bb384e95737e">
169
170#### Example Output
171
172~~~~
173pt.isZero() == true
174~~~~
175
176</fiddle-embed></div>
177
178### See Also
179
Cary Clark682c58d2018-05-16 07:07:07 -0400180<a href='SkPoint_Reference#SkPoint_isZero'>SkPoint::isZero</a>
Cary Clarka560c472017-11-27 10:44:06 -0500181
182---
183
Cary Clark682c58d2018-05-16 07:07:07 -0400184## <a name='Set'>Set</a>
Cary Clark4855f782018-02-06 09:41:53 -0500185
Cary Clark682c58d2018-05-16 07:07:07 -0400186<a name='SkIPoint_set'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500187## set
188
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 Clark682c58d2018-05-16 07:07:07 -0400193Sets <a href='#SkIPoint_fX'>fX</a> to x and <a href='#SkIPoint_fY'>fY</a> to y.
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
221---
222
Cary Clark682c58d2018-05-16 07:07:07 -0400223<a name='SkIPoint_minus_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500224## operator-
225
Cary Clark682c58d2018-05-16 07:07:07 -0400226<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clark61313f32018-10-08 14:57:48 -0400227<a href='#SkIPoint'>SkIPoint</a> operator-() const
Cary Clarka560c472017-11-27 10:44:06 -0500228</pre>
229
Cary Clark682c58d2018-05-16 07:07:07 -0400230Returns <a href='#IPoint'>IPoint</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 -0500231
232### Return Value
233
Cary Clark682c58d2018-05-16 07:07:07 -0400234<a href='#IPoint'>IPoint</a> as (-<a href='#SkIPoint_fX'>fX</a>, -<a href='#SkIPoint_fY'>fY</a>)
Cary Clarka560c472017-11-27 10:44:06 -0500235
236### Example
237
Cary Clark681287e2018-03-16 11:34:15 -0400238<div><fiddle-embed name="b30d4780475d113a7fed3637af7f0db1">
Cary Clarka560c472017-11-27 10:44:06 -0500239
240#### Example Output
241
242~~~~
243pt: 0, 0 negate: 0, 0
244pt: -1, -2 negate: 1, 2
245pt: 2147483647, -2147483647 negate: -2147483647, 2147483647
246pt: -2147483648, -2147483648 negate: -2147483648, -2147483648
247~~~~
248
249</fiddle-embed></div>
250
251### See Also
252
Cary Clark682c58d2018-05-16 07:07:07 -0400253<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 -0500254
255---
256
Cary Clark682c58d2018-05-16 07:07:07 -0400257<a name='SkIPoint_addto_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500258## operator+=
259
Cary Clark682c58d2018-05-16 07:07:07 -0400260<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
261void <a href='#SkIPoint_addto_operator'>operator+=(const SkIVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500262</pre>
263
Cary Clark2be81cf2018-09-13 12:04:30 -0400264Offsets <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 -0500265
266### Parameters
267
Cary Clark682c58d2018-05-16 07:07:07 -0400268<table> <tr> <td><a name='SkIPoint_addto_operator_v'><code><strong>v</strong></code></a></td>
269 <td><a href='#IVector'>IVector</a> to add</td>
Cary Clarka560c472017-11-27 10:44:06 -0500270 </tr>
271</table>
272
273### Example
274
275<div><fiddle-embed name="4eb2d95c9e9a66f05296e345bb68bd51"></fiddle-embed></div>
276
277### See Also
278
Cary Clark682c58d2018-05-16 07:07:07 -0400279<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 -0500280
281---
282
Cary Clark682c58d2018-05-16 07:07:07 -0400283<a name='SkIPoint_subtractfrom_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500284## operator-=
285
Cary Clark682c58d2018-05-16 07:07:07 -0400286<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
287void <a href='#SkIPoint_subtractfrom_operator'>operator-=(const SkIVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500288</pre>
289
Cary Clark2be81cf2018-09-13 12:04:30 -0400290Subtracts <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 -0500291
292### Parameters
293
Cary Clark682c58d2018-05-16 07:07:07 -0400294<table> <tr> <td><a name='SkIPoint_subtractfrom_operator_v'><code><strong>v</strong></code></a></td>
295 <td><a href='#IVector'>IVector</a> to subtract</td>
Cary Clarka560c472017-11-27 10:44:06 -0500296 </tr>
297</table>
298
299### Example
300
301<div><fiddle-embed name="a01e533dc7ab34ed728dc4e7a5f1f0ee"></fiddle-embed></div>
302
303### See Also
304
Cary Clark682c58d2018-05-16 07:07:07 -0400305<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 -0500306
307---
308
Cary Clark682c58d2018-05-16 07:07:07 -0400309<a name='SkIPoint_equals'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500310## equals
311
Cary Clark682c58d2018-05-16 07:07:07 -0400312<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
313bool <a href='#SkIPoint_equals'>equals</a>(int32_t x, int32_t y) const
Cary Clarka560c472017-11-27 10:44:06 -0500314</pre>
315
Cary Clark682c58d2018-05-16 07:07:07 -0400316Returns true if <a href='#IPoint'>IPoint</a> is equivalent to <a href='#IPoint'>IPoint</a> constructed from (x, y).
Cary Clarka560c472017-11-27 10:44:06 -0500317
318### Parameters
319
Cary Clark682c58d2018-05-16 07:07:07 -0400320<table> <tr> <td><a name='SkIPoint_equals_x'><code><strong>x</strong></code></a></td>
321 <td>value compared with <a href='#SkIPoint_fX'>fX</a></td>
322 </tr>
323 <tr> <td><a name='SkIPoint_equals_y'><code><strong>y</strong></code></a></td>
324 <td>value compared with <a href='#SkIPoint_fY'>fY</a></td>
Cary Clarka560c472017-11-27 10:44:06 -0500325 </tr>
326</table>
327
328### Return Value
329
Cary Clark682c58d2018-05-16 07:07:07 -0400330true if <a href='#IPoint'>IPoint</a> equals (x, y)
Cary Clarka560c472017-11-27 10:44:06 -0500331
332### Example
333
334<div><fiddle-embed name="64f575d36439d5b69aaed14ffeff1cc4">
335
336#### Example Output
337
338~~~~
339pt: 0, 0 == pt
340pt: -1, -2 == pt
341pt: 2147483647, -1 == pt
342pt: -2147483648, -1 == pt
343~~~~
344
345</fiddle-embed></div>
346
347### See Also
348
Cary Clark682c58d2018-05-16 07:07:07 -0400349<a href='#SkIPoint_equal_operator'>operator==(const SkIPoint& a, const SkIPoint& b)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500350
351---
352
Cary Clark682c58d2018-05-16 07:07:07 -0400353<a name='SkIPoint_equal_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500354## operator==
355
Cary Clark682c58d2018-05-16 07:07:07 -0400356<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
357bool <a href='#SkIPoint_equal_operator'>operator==(const SkIPoint& a, const SkIPoint& b)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500358</pre>
359
Cary Clark682c58d2018-05-16 07:07:07 -0400360Returns true if <a href='#SkIPoint_equal_operator_a'>a</a> is equivalent to <a href='#SkIPoint_equal_operator_b'>b</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500361
362### Parameters
363
Cary Clark682c58d2018-05-16 07:07:07 -0400364<table> <tr> <td><a name='SkIPoint_equal_operator_a'><code><strong>a</strong></code></a></td>
365 <td><a href='#IPoint'>IPoint</a> to compare</td>
366 </tr>
367 <tr> <td><a name='SkIPoint_equal_operator_b'><code><strong>b</strong></code></a></td>
368 <td><a href='#IPoint'>IPoint</a> to compare</td>
Cary Clarka560c472017-11-27 10:44:06 -0500369 </tr>
370</table>
371
372### Return Value
373
Cary Clark682c58d2018-05-16 07:07:07 -0400374true if <a href='#SkIPoint_equal_operator_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> == <a href='#SkIPoint_equal_operator_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> and <a href='#SkIPoint_equal_operator_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> == <a href='#SkIPoint_equal_operator_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
Cary Clarka560c472017-11-27 10:44:06 -0500375
376### Example
377
378<div><fiddle-embed name="37ffe2817d720f99e6c252332ce70460">
379
380#### Example Output
381
382~~~~
383pt: 0, 0 == pt
384pt: -1, -2 == pt
385pt: 2147483647, -1 == pt
386pt: -2147483648, -1 == pt
387~~~~
388
389</fiddle-embed></div>
390
391### See Also
392
Cary Clark61313f32018-10-08 14:57:48 -0400393<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 -0500394
395---
396
Cary Clark682c58d2018-05-16 07:07:07 -0400397<a name='SkIPoint_notequal_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500398## operator!=
399
Cary Clark682c58d2018-05-16 07:07:07 -0400400<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
401bool <a href='#SkIPoint_notequal_operator'>operator!=(const SkIPoint& a, const SkIPoint& b)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500402</pre>
403
Cary Clark682c58d2018-05-16 07:07:07 -0400404Returns true if <a href='#SkIPoint_notequal_operator_a'>a</a> is not equivalent to <a href='#SkIPoint_notequal_operator_b'>b</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500405
406### Parameters
407
Cary Clark682c58d2018-05-16 07:07:07 -0400408<table> <tr> <td><a name='SkIPoint_notequal_operator_a'><code><strong>a</strong></code></a></td>
409 <td><a href='#IPoint'>IPoint</a> to compare</td>
410 </tr>
411 <tr> <td><a name='SkIPoint_notequal_operator_b'><code><strong>b</strong></code></a></td>
412 <td><a href='#IPoint'>IPoint</a> to compare</td>
Cary Clarka560c472017-11-27 10:44:06 -0500413 </tr>
414</table>
415
416### Return Value
417
Cary Clark682c58d2018-05-16 07:07:07 -0400418true if <a href='#SkIPoint_notequal_operator_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> != <a href='#SkIPoint_notequal_operator_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> or <a href='#SkIPoint_notequal_operator_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> != <a href='#SkIPoint_notequal_operator_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
Cary Clarka560c472017-11-27 10:44:06 -0500419
420### Example
421
Cary Clark7f644ec2018-07-19 10:50:44 -0400422<div><fiddle-embed name="dd89dc48dff69b53d99530b120f204bc">
Cary Clarka560c472017-11-27 10:44:06 -0500423
424#### Example Output
425
426~~~~
427pt: 0, 0 == pt
428pt: -1, -2 == pt
429pt: 2147483647, -1 == pt
430pt: -2147483648, -1 == pt
431~~~~
432
433</fiddle-embed></div>
434
435### See Also
436
Cary Clark61313f32018-10-08 14:57:48 -0400437<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 -0500438
439---
440
Cary Clark682c58d2018-05-16 07:07:07 -0400441<a name='SkIPoint_subtract_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500442## operator-
443
Cary Clark682c58d2018-05-16 07:07:07 -0400444<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
445<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 -0500446</pre>
447
Cary Clark2be81cf2018-09-13 12:04:30 -0400448Returns <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 -0500449
Cary Clark682c58d2018-05-16 07:07:07 -0400450Can 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 -0500451
452### Parameters
453
Cary Clark682c58d2018-05-16 07:07:07 -0400454<table> <tr> <td><a name='SkIPoint_subtract_operator_a'><code><strong>a</strong></code></a></td>
455 <td><a href='#IPoint'>IPoint</a> or <a href='#IVector'>IVector</a> to subtract from</td>
456 </tr>
457 <tr> <td><a name='SkIPoint_subtract_operator_b'><code><strong>b</strong></code></a></td>
458 <td><a href='#IVector'>IVector</a> to subtract</td>
Cary Clarka560c472017-11-27 10:44:06 -0500459 </tr>
460</table>
461
462### Return Value
463
Cary Clark682c58d2018-05-16 07:07:07 -0400464<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 -0500465
466### Example
467
468<div><fiddle-embed name="e626e26bf557857b824aa7d03f723e0f"></fiddle-embed></div>
469
470### See Also
471
Cary Clark682c58d2018-05-16 07:07:07 -0400472<a href='#SkIPoint_subtractfrom_operator'>operator-=(const SkIVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500473
474---
475
Cary Clark682c58d2018-05-16 07:07:07 -0400476<a name='SkIPoint_add_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500477## operator+
478
Cary Clark682c58d2018-05-16 07:07:07 -0400479<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
480<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 -0500481</pre>
482
Cary Clark682c58d2018-05-16 07:07:07 -0400483Returns <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 -0400484<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 -0500485
Cary Clark682c58d2018-05-16 07:07:07 -0400486Can 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>.
487Can 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 -0500488
489### Parameters
490
Cary Clark682c58d2018-05-16 07:07:07 -0400491<table> <tr> <td><a name='SkIPoint_add_operator_a'><code><strong>a</strong></code></a></td>
492 <td><a href='#IPoint'>IPoint</a> or <a href='#IVector'>IVector</a> to add to</td>
493 </tr>
494 <tr> <td><a name='SkIPoint_add_operator_b'><code><strong>b</strong></code></a></td>
495 <td><a href='#IPoint'>IPoint</a> or <a href='#IVector'>IVector</a> to add</td>
Cary Clarka560c472017-11-27 10:44:06 -0500496 </tr>
497</table>
498
499### Return Value
500
Cary Clark682c58d2018-05-16 07:07:07 -0400501<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 -0500502
503### Example
504
505<div><fiddle-embed name="63f4cba971c6d8434595906f865b5a29"></fiddle-embed></div>
506
507### See Also
508
Cary Clark682c58d2018-05-16 07:07:07 -0400509<a href='#SkIPoint_addto_operator'>operator+=(const SkIVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500510
511---
512
Cary Clark682c58d2018-05-16 07:07:07 -0400513## <a name='IVector'>IVector</a>
514
Cary Clarkffb3d682018-05-17 12:17:28 -0400515## <a name='SkIVector'>Typedef SkIVector</a>
Cary Clark682c58d2018-05-16 07:07:07 -0400516
517<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
518 typedef <a href='#SkIPoint'>SkIPoint</a> <a href='#SkIVector'>SkIVector</a>;
519</pre>
520
521<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 -0400522can be used interchangeably for all purposes.