blob: 2476bef72faf139dda05aa3c817cd7266b0edfd3 [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">
Cary Clark77b3f3a2018-11-07 14:59:03 -050010struct <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> {
Cary Clarkcb6bef02018-11-29 12:05:25 -050011
Cary Clark777eede2018-11-09 16:04:58 -050012 int32_t <a href='#SkIPoint_fX'>fX</a>;
13 int32_t <a href='#SkIPoint_fY'>fY</a>;
Cary Clarka560c472017-11-27 10:44:06 -050014
Cary Clark777eede2018-11-09 16:04:58 -050015 static constexpr <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_Make'>Make</a>(int32_t x, int32_t y);
16 int32_t <a href='#SkIPoint_x'>x()</a> const;
17 int32_t <a href='#SkIPoint_y'>y()</a> const;
18 bool <a href='#SkIPoint_isZero'>isZero</a>() const;
Cary Clark6ddeaa42018-12-05 10:33:14 -050019 void <a href='#SkIPoint_set'>set</a>(int32_t x, int32_t y);
Cary Clark777eede2018-11-09 16:04:58 -050020 <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> operator-() const;
Cary Clarkcb6bef02018-11-29 12:05:25 -050021 void <a href='#SkIPoint_addto_operator'>operator+=</a>(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& v);
22 void <a href='#SkIPoint_subtractfrom_operator'>operator-=</a>(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& v);
Cary Clark6ddeaa42018-12-05 10:33:14 -050023 bool <a href='#SkIPoint_equals'>equals</a>(int32_t x, int32_t y) const;
Cary Clarkcb6bef02018-11-29 12:05:25 -050024 friend bool <a href='#SkIPoint_equal_operator'>operator==</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b);
25 friend bool <a href='#SkIPoint_notequal_operator'>operator!=</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b);
26 friend <a href='SkIPoint_Reference#SkIVector'>SkIVector</a> <a href='#SkIPoint_subtract_operator'>operator-</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b);
27 friend <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_add_operator'>operator+</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& b);
Cary Clark61313f32018-10-08 14:57:48 -040028};
Cary Clarkcb6bef02018-11-29 12:05:25 -050029
Cary Clark61313f32018-10-08 14:57:48 -040030</pre>
Cary Clarka560c472017-11-27 10:44:06 -050031
Cary Clark777eede2018-11-09 16:04:58 -050032<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> holds two 32-bit integer coordinates.<table style='border-collapse: collapse; width: 62.5em'>
Cary Clark08895c42018-02-01 09:37:32 -050033
Cary Clark682c58d2018-05-16 07:07:07 -040034 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
Cary Clark61313f32018-10-08 14:57:48 -040035<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</th>
Cary Clark682c58d2018-05-16 07:07:07 -040036<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
37 <tr style='background-color: #f0f0f0; '>
38 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td>
39 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIPoint_fX'><code>fX</code></a></td>
40 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
Cary Clark77b3f3a2018-11-07 14:59:03 -050041x-axis value used by <a href='SkIPoint_Reference#IPoint'>IPoint</a>.
Cary Clark682c58d2018-05-16 07:07:07 -040042</td>
43 </tr>
44 <tr>
45 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td>
46 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIPoint_fY'><code>fY</code></a></td>
47 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
Cary Clark77b3f3a2018-11-07 14:59:03 -050048y-axis value used by <a href='SkIPoint_Reference#IPoint'>IPoint</a>.
Cary Clark682c58d2018-05-16 07:07:07 -040049</td>
50 </tr>
Cary Clark682c58d2018-05-16 07:07:07 -040051</table>
52
Cary Clark682c58d2018-05-16 07:07:07 -040053<a name='SkIPoint_Make'></a>
Cary Clarka90ea222018-10-16 10:30:28 -040054
55---
Cary Clarka560c472017-11-27 10:44:06 -050056
Cary Clark682c58d2018-05-16 07:07:07 -040057<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clark777eede2018-11-09 16:04:58 -050058static constexpr <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_Make'>Make</a>(int32_t x, int32_t y)
Cary Clarka560c472017-11-27 10:44:06 -050059</pre>
60
Cary Clark777eede2018-11-09 16:04:58 -050061Sets <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 -050062
63### Parameters
64
Cary Clark682c58d2018-05-16 07:07:07 -040065<table> <tr> <td><a name='SkIPoint_Make_x'><code><strong>x</strong></code></a></td>
Cary Clark09d80c02018-10-31 12:14:03 -040066 <td>integer x-axis value of constructed <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a></td>
Cary Clark682c58d2018-05-16 07:07:07 -040067 </tr>
68 <tr> <td><a name='SkIPoint_Make_y'><code><strong>y</strong></code></a></td>
Cary Clark09d80c02018-10-31 12:14:03 -040069 <td>integer y-axis value of constructed <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a></td>
Cary Clarka560c472017-11-27 10:44:06 -050070 </tr>
71</table>
72
73### Return Value
74
Cary Clark09d80c02018-10-31 12:14:03 -040075<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 -050076
77### Example
78
79<div><fiddle-embed name="e5cf5159525bd3140f288a95fe641fae">
80
81#### Example Output
82
83~~~~
84pt1 == pt2
85~~~~
86
87</fiddle-embed></div>
88
89### See Also
90
Cary Clark77b3f3a2018-11-07 14:59:03 -050091<a href='#SkIPoint_set'>set()</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>::<a href='#SkPoint_iset'>iset()</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>::<a href='#SkPoint_Make'>Make</a>
Cary Clarka560c472017-11-27 10:44:06 -050092
Cary Clarka90ea222018-10-16 10:30:28 -040093<a name='Property'></a>
Cary Clark4855f782018-02-06 09:41:53 -050094
Cary Clark682c58d2018-05-16 07:07:07 -040095<a name='SkIPoint_x'></a>
Cary Clarka90ea222018-10-16 10:30:28 -040096
97---
Cary Clarka560c472017-11-27 10:44:06 -050098
Cary Clark682c58d2018-05-16 07:07:07 -040099<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clarkcb6bef02018-11-29 12:05:25 -0500100int32_t <a href='#SkIPoint_x'>x()</a>const
Cary Clarka560c472017-11-27 10:44:06 -0500101</pre>
102
Cary Clark09d80c02018-10-31 12:14:03 -0400103Returns x-axis value of <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500104
105### Return Value
106
Cary Clark682c58d2018-05-16 07:07:07 -0400107<a href='#SkIPoint_fX'>fX</a>
Cary Clarka560c472017-11-27 10:44:06 -0500108
109### Example
110
111<div><fiddle-embed name="eed4185294f8a8216fc354e6ee6b2e3a">
112
113#### Example Output
114
115~~~~
116pt1.fX == pt1.x()
117~~~~
118
119</fiddle-embed></div>
120
121### See Also
122
Cary Clark77b3f3a2018-11-07 14:59:03 -0500123<a href='#SkIPoint_y'>y()</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>::<a href='#SkPoint_x'>x()</a>
Cary Clarka560c472017-11-27 10:44:06 -0500124
Cary Clark682c58d2018-05-16 07:07:07 -0400125<a name='SkIPoint_y'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400126
127---
Cary Clarka560c472017-11-27 10:44:06 -0500128
Cary Clark682c58d2018-05-16 07:07:07 -0400129<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clarkcb6bef02018-11-29 12:05:25 -0500130int32_t <a href='#SkIPoint_y'>y()</a>const
Cary Clarka560c472017-11-27 10:44:06 -0500131</pre>
132
Cary Clark09d80c02018-10-31 12:14:03 -0400133Returns y-axis value of <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500134
135### Return Value
136
Cary Clark682c58d2018-05-16 07:07:07 -0400137<a href='#SkIPoint_fY'>fY</a>
Cary Clarka560c472017-11-27 10:44:06 -0500138
139### Example
140
141<div><fiddle-embed name="35c41b8ba7cebf8c9a7a8494e610e14d">
142
143#### Example Output
144
145~~~~
146pt1.fY == pt1.y()
147~~~~
148
149</fiddle-embed></div>
150
151### See Also
152
Cary Clark77b3f3a2018-11-07 14:59:03 -0500153<a href='#SkIPoint_x'>x()</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>::<a href='#SkPoint_y'>y()</a>
Cary Clarka560c472017-11-27 10:44:06 -0500154
Cary Clark682c58d2018-05-16 07:07:07 -0400155<a name='SkIPoint_isZero'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400156
157---
Cary Clarka560c472017-11-27 10:44:06 -0500158
Cary Clark682c58d2018-05-16 07:07:07 -0400159<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clarkcb6bef02018-11-29 12:05:25 -0500160bool <a href='#SkIPoint_isZero'>isZero</a>()const
Cary Clarka560c472017-11-27 10:44:06 -0500161</pre>
162
Cary Clark777eede2018-11-09 16:04:58 -0500163Returns 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 -0500164
165### Return Value
166
Cary Clark777eede2018-11-09 16:04:58 -0500167true 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 -0500168
169### Example
170
171<div><fiddle-embed name="658c1df611b4577cc7e0bb384e95737e">
172
173#### Example Output
174
175~~~~
176pt.isZero() == true
177~~~~
178
179</fiddle-embed></div>
180
181### See Also
182
Cary Clark77b3f3a2018-11-07 14:59:03 -0500183<a href='SkPoint_Reference#SkPoint'>SkPoint</a>::<a href='#SkPoint_isZero'>isZero</a>
Cary Clarka560c472017-11-27 10:44:06 -0500184
Cary Clarka90ea222018-10-16 10:30:28 -0400185<a name='Set'></a>
Cary Clark4855f782018-02-06 09:41:53 -0500186
Cary Clark682c58d2018-05-16 07:07:07 -0400187<a name='SkIPoint_set'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400188
189---
Cary Clarka560c472017-11-27 10:44:06 -0500190
Cary Clark682c58d2018-05-16 07:07:07 -0400191<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clark77b3f3a2018-11-07 14:59:03 -0500192void set(int32_t x, int32_t y)
Cary Clarka560c472017-11-27 10:44:06 -0500193</pre>
194
Cary Clark777eede2018-11-09 16:04:58 -0500195Sets <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 -0500196
197### Parameters
198
Cary Clark682c58d2018-05-16 07:07:07 -0400199<table> <tr> <td><a name='SkIPoint_set_x'><code><strong>x</strong></code></a></td>
200 <td>new value for <a href='#SkIPoint_fX'>fX</a></td>
201 </tr>
202 <tr> <td><a name='SkIPoint_set_y'><code><strong>y</strong></code></a></td>
203 <td>new value for <a href='#SkIPoint_fY'>fY</a></td>
Cary Clarka560c472017-11-27 10:44:06 -0500204 </tr>
205</table>
206
207### Example
208
skia-bookmaker61cc9fa2018-07-11 05:28:17 +0000209<div><fiddle-embed name="165418b5718d79d8f1682a8a0ee32ba0">
Cary Clarka560c472017-11-27 10:44:06 -0500210
211#### Example Output
212
213~~~~
214pt1 == pt2
215~~~~
216
217</fiddle-embed></div>
218
219### See Also
220
Cary Clark682c58d2018-05-16 07:07:07 -0400221<a href='#SkIPoint_Make'>Make</a>
Cary Clarka560c472017-11-27 10:44:06 -0500222
Cary Clark682c58d2018-05-16 07:07:07 -0400223<a name='SkIPoint_minus_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400224
225---
Cary Clarka560c472017-11-27 10:44:06 -0500226
Cary Clark682c58d2018-05-16 07:07:07 -0400227<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clarkcb6bef02018-11-29 12:05:25 -0500228<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> operator-()const
Cary Clarka560c472017-11-27 10:44:06 -0500229</pre>
230
Cary Clark777eede2018-11-09 16:04:58 -0500231Returns <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 -0500232
233### Return Value
234
Cary Clark777eede2018-11-09 16:04:58 -0500235<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 -0500236
237### Example
238
Cary Clark681287e2018-03-16 11:34:15 -0400239<div><fiddle-embed name="b30d4780475d113a7fed3637af7f0db1">
Cary Clarka560c472017-11-27 10:44:06 -0500240
241#### Example Output
242
243~~~~
244pt: 0, 0 negate: 0, 0
245pt: -1, -2 negate: 1, 2
246pt: 2147483647, -2147483647 negate: -2147483647, 2147483647
247pt: -2147483648, -2147483648 negate: -2147483648, -2147483648
248~~~~
249
250</fiddle-embed></div>
251
252### See Also
253
Cary Clarkcb6bef02018-11-29 12:05:25 -0500254<a href='#SkIPoint_subtract_operator'>operator-</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b) <a href='#SkIPoint_subtractfrom_operator'>operator-=</a>(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& v) <a href='SkPoint_Reference#SkPoint'>SkPoint</a>::operator-() const
Cary Clarka560c472017-11-27 10:44:06 -0500255
Cary Clark682c58d2018-05-16 07:07:07 -0400256<a name='SkIPoint_addto_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400257
258---
Cary Clarka560c472017-11-27 10:44:06 -0500259
Cary Clark682c58d2018-05-16 07:07:07 -0400260<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clarkcb6bef02018-11-29 12:05:25 -0500261void <a href='#SkIPoint_addto_operator'>operator+=</a>(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& v)
Cary Clarka560c472017-11-27 10:44:06 -0500262</pre>
263
Cary Clark777eede2018-11-09 16:04:58 -0500264Offsets <a href='SkIPoint_Reference#IPoint'>IPoint</a> by <a href='#IPoint_IVector'>IVector</a> <a href='#SkIPoint_addto_operator_v'>v</a>. Sets <a href='SkIPoint_Reference#IPoint'>IPoint</a> to <code>(<a href='#SkIPoint_fX'>fX</a> + <a href='#SkIPoint_addto_operator_v'>v</a>.<a href='#SkIPoint_fX'>fX</a>, <a href='#SkIPoint_fY'>fY</a> + <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>
Cary Clark777eede2018-11-09 16:04:58 -0500269 <td><a href='#IPoint_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 Clarkcb6bef02018-11-29 12:05:25 -0500279<a href='#SkIPoint_add_operator'>operator+</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& b) <a href='SkPoint_Reference#SkPoint'>SkPoint</a>::operator+=(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='#SkIPoint_addto_operator_v'>v</a>)
Cary Clarka560c472017-11-27 10:44:06 -0500280
Cary Clark682c58d2018-05-16 07:07:07 -0400281<a name='SkIPoint_subtractfrom_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400282
283---
Cary Clarka560c472017-11-27 10:44:06 -0500284
Cary Clark682c58d2018-05-16 07:07:07 -0400285<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clarkcb6bef02018-11-29 12:05:25 -0500286void <a href='#SkIPoint_subtractfrom_operator'>operator-=</a>(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& v)
Cary Clarka560c472017-11-27 10:44:06 -0500287</pre>
288
Cary Clark777eede2018-11-09 16:04:58 -0500289Subtracts <a href='#IPoint_IVector'>IVector</a> <a href='#SkIPoint_subtractfrom_operator_v'>v</a> from <a href='SkIPoint_Reference#IPoint'>IPoint</a>. Sets <a href='SkIPoint_Reference#IPoint'>IPoint</a> to: <code>(<a href='#SkIPoint_fX'>fX</a> - <a href='#SkIPoint_subtractfrom_operator_v'>v</a>.<a href='#SkIPoint_fX'>fX</a>, <a href='#SkIPoint_fY'>fY</a> - <a href='#SkIPoint_subtractfrom_operator_v'>v</a>.<a href='#SkIPoint_fY'>fY</a>)</code>.
Cary Clarka560c472017-11-27 10:44:06 -0500290
291### Parameters
292
Cary Clark682c58d2018-05-16 07:07:07 -0400293<table> <tr> <td><a name='SkIPoint_subtractfrom_operator_v'><code><strong>v</strong></code></a></td>
Cary Clark777eede2018-11-09 16:04:58 -0500294 <td><a href='#IPoint_IVector'>IVector</a> to subtract</td>
Cary Clarka560c472017-11-27 10:44:06 -0500295 </tr>
296</table>
297
298### Example
299
300<div><fiddle-embed name="a01e533dc7ab34ed728dc4e7a5f1f0ee"></fiddle-embed></div>
301
302### See Also
303
Cary Clarkcb6bef02018-11-29 12:05:25 -0500304<a href='#SkIPoint_subtract_operator'>operator-</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b) <a href='SkPoint_Reference#SkPoint'>SkPoint</a>::operator-=(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='#SkIPoint_subtractfrom_operator_v'>v</a>)
Cary Clarka560c472017-11-27 10:44:06 -0500305
Cary Clark682c58d2018-05-16 07:07:07 -0400306<a name='SkIPoint_equals'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400307
308---
Cary Clarka560c472017-11-27 10:44:06 -0500309
Cary Clark682c58d2018-05-16 07:07:07 -0400310<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clarkcb6bef02018-11-29 12:05:25 -0500311bool equals(int32_t x, int32_t y)const
Cary Clarka560c472017-11-27 10:44:06 -0500312</pre>
313
Cary Clark777eede2018-11-09 16:04:58 -0500314Returns 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 -0500315
316### Parameters
317
Cary Clark682c58d2018-05-16 07:07:07 -0400318<table> <tr> <td><a name='SkIPoint_equals_x'><code><strong>x</strong></code></a></td>
319 <td>value compared with <a href='#SkIPoint_fX'>fX</a></td>
320 </tr>
321 <tr> <td><a name='SkIPoint_equals_y'><code><strong>y</strong></code></a></td>
322 <td>value compared with <a href='#SkIPoint_fY'>fY</a></td>
Cary Clarka560c472017-11-27 10:44:06 -0500323 </tr>
324</table>
325
326### Return Value
327
Cary Clark777eede2018-11-09 16:04:58 -0500328true 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 -0500329
330### Example
331
332<div><fiddle-embed name="64f575d36439d5b69aaed14ffeff1cc4">
333
334#### Example Output
335
336~~~~
337pt: 0, 0 == pt
338pt: -1, -2 == pt
339pt: 2147483647, -1 == pt
340pt: -2147483648, -1 == pt
341~~~~
342
343</fiddle-embed></div>
344
345### See Also
346
Cary Clarkcb6bef02018-11-29 12:05:25 -0500347<a href='#SkIPoint_equal_operator'>operator==</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b)
Cary Clarka560c472017-11-27 10:44:06 -0500348
Cary Clark682c58d2018-05-16 07:07:07 -0400349<a name='SkIPoint_equal_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400350
351---
Cary Clarka560c472017-11-27 10:44:06 -0500352
Cary Clark682c58d2018-05-16 07:07:07 -0400353<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clarkcb6bef02018-11-29 12:05:25 -0500354bool <a href='#SkIPoint_equal_operator'>operator==</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b)
Cary Clarka560c472017-11-27 10:44:06 -0500355</pre>
356
Cary Clark777eede2018-11-09 16:04:58 -0500357Returns 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 -0500358
359### Parameters
360
Cary Clark682c58d2018-05-16 07:07:07 -0400361<table> <tr> <td><a name='SkIPoint_equal_operator_a'><code><strong>a</strong></code></a></td>
Cary Clark777eede2018-11-09 16:04:58 -0500362 <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
Cary Clark682c58d2018-05-16 07:07:07 -0400363 </tr>
364 <tr> <td><a name='SkIPoint_equal_operator_b'><code><strong>b</strong></code></a></td>
Cary Clark777eede2018-11-09 16:04:58 -0500365 <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
Cary Clarka560c472017-11-27 10:44:06 -0500366 </tr>
367</table>
368
369### Return Value
370
Cary Clark777eede2018-11-09 16:04:58 -0500371true 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 -0500372
373### Example
374
375<div><fiddle-embed name="37ffe2817d720f99e6c252332ce70460">
376
377#### Example Output
378
379~~~~
380pt: 0, 0 == pt
381pt: -1, -2 == pt
382pt: 2147483647, -1 == pt
383pt: -2147483648, -1 == pt
384~~~~
385
386</fiddle-embed></div>
387
388### See Also
389
Cary Clarkcb6bef02018-11-29 12:05:25 -0500390<a href='#SkIPoint_equals'>equals()</a> <a href='#SkIPoint_notequal_operator'>operator!=</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='#SkIPoint_equal_operator_a'>a</a>, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='#SkIPoint_equal_operator_b'>b</a>)
Cary Clarka560c472017-11-27 10:44:06 -0500391
Cary Clark682c58d2018-05-16 07:07:07 -0400392<a name='SkIPoint_notequal_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400393
394---
Cary Clarka560c472017-11-27 10:44:06 -0500395
Cary Clark682c58d2018-05-16 07:07:07 -0400396<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clarkcb6bef02018-11-29 12:05:25 -0500397bool <a href='#SkIPoint_notequal_operator'>operator!=</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b)
Cary Clarka560c472017-11-27 10:44:06 -0500398</pre>
399
Cary Clark777eede2018-11-09 16:04:58 -0500400Returns 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 -0500401
402### Parameters
403
Cary Clark682c58d2018-05-16 07:07:07 -0400404<table> <tr> <td><a name='SkIPoint_notequal_operator_a'><code><strong>a</strong></code></a></td>
Cary Clark777eede2018-11-09 16:04:58 -0500405 <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
Cary Clark682c58d2018-05-16 07:07:07 -0400406 </tr>
407 <tr> <td><a name='SkIPoint_notequal_operator_b'><code><strong>b</strong></code></a></td>
Cary Clark777eede2018-11-09 16:04:58 -0500408 <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
Cary Clarka560c472017-11-27 10:44:06 -0500409 </tr>
410</table>
411
412### Return Value
413
Cary Clark777eede2018-11-09 16:04:58 -0500414true 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 -0500415
416### Example
417
Cary Clark7f644ec2018-07-19 10:50:44 -0400418<div><fiddle-embed name="dd89dc48dff69b53d99530b120f204bc">
Cary Clarka560c472017-11-27 10:44:06 -0500419
420#### Example Output
421
422~~~~
423pt: 0, 0 == pt
424pt: -1, -2 == pt
425pt: 2147483647, -1 == pt
426pt: -2147483648, -1 == pt
427~~~~
428
429</fiddle-embed></div>
430
431### See Also
432
Cary Clarkcb6bef02018-11-29 12:05:25 -0500433<a href='#SkIPoint_equal_operator'>operator==</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='#SkIPoint_notequal_operator_a'>a</a>, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='#SkIPoint_notequal_operator_b'>b</a>) <a href='#SkIPoint_equals'>equals()</a>
Cary Clarka560c472017-11-27 10:44:06 -0500434
Cary Clark682c58d2018-05-16 07:07:07 -0400435<a name='SkIPoint_subtract_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400436
437---
Cary Clarka560c472017-11-27 10:44:06 -0500438
Cary Clark682c58d2018-05-16 07:07:07 -0400439<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clarkcb6bef02018-11-29 12:05:25 -0500440<a href='SkIPoint_Reference#SkIVector'>SkIVector</a> <a href='#SkIPoint_subtract_operator'>operator-</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b)
Cary Clarka560c472017-11-27 10:44:06 -0500441</pre>
442
Cary Clark777eede2018-11-09 16:04:58 -0500443Returns <a href='#IPoint_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> - <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> - <a href='#SkIPoint_subtract_operator_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>)</code>.
Cary Clarka560c472017-11-27 10:44:06 -0500444
Cary Clark777eede2018-11-09 16:04:58 -0500445Can also be used to subtract <a href='#IPoint_IVector'>IVector</a> from <a href='#IPoint_IVector'>IVector</a>, returning <a href='#IPoint_IVector'>IVector</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500446
447### Parameters
448
Cary Clark682c58d2018-05-16 07:07:07 -0400449<table> <tr> <td><a name='SkIPoint_subtract_operator_a'><code><strong>a</strong></code></a></td>
Cary Clark777eede2018-11-09 16:04:58 -0500450 <td><a href='SkIPoint_Reference#IPoint'>IPoint</a> or <a href='#IPoint_IVector'>IVector</a> to subtract from</td>
Cary Clark682c58d2018-05-16 07:07:07 -0400451 </tr>
452 <tr> <td><a name='SkIPoint_subtract_operator_b'><code><strong>b</strong></code></a></td>
Cary Clark777eede2018-11-09 16:04:58 -0500453 <td><a href='#IPoint_IVector'>IVector</a> to subtract</td>
Cary Clarka560c472017-11-27 10:44:06 -0500454 </tr>
455</table>
456
457### Return Value
458
Cary Clark777eede2018-11-09 16:04:58 -0500459<a href='#IPoint_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 -0500460
461### Example
462
463<div><fiddle-embed name="e626e26bf557857b824aa7d03f723e0f"></fiddle-embed></div>
464
465### See Also
466
Cary Clarkcb6bef02018-11-29 12:05:25 -0500467<a href='#SkIPoint_subtractfrom_operator'>operator-=</a>(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& v)
Cary Clarka560c472017-11-27 10:44:06 -0500468
Cary Clark682c58d2018-05-16 07:07:07 -0400469<a name='SkIPoint_add_operator'></a>
Cary Clarka90ea222018-10-16 10:30:28 -0400470
471---
Cary Clarka560c472017-11-27 10:44:06 -0500472
Cary Clark682c58d2018-05-16 07:07:07 -0400473<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
Cary Clarkcb6bef02018-11-29 12:05:25 -0500474<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_add_operator'>operator+</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& b)
Cary Clarka560c472017-11-27 10:44:06 -0500475</pre>
476
Cary Clark777eede2018-11-09 16:04:58 -0500477Returns <a href='SkIPoint_Reference#IPoint'>IPoint</a> resulting from <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='#SkIPoint_add_operator_a'>a</a> offset by <a href='#IPoint_IVector'>IVector</a> <a href='#SkIPoint_add_operator_b'>b</a>, computed as:
Cary Clark77b3f3a2018-11-07 14:59:03 -0500478<code>(<a href='#SkIPoint_add_operator_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> + <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> + <a href='#SkIPoint_add_operator_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>)</code>.
Cary Clarka560c472017-11-27 10:44:06 -0500479
Cary Clark777eede2018-11-09 16:04:58 -0500480Can also be used to offset <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='#SkIPoint_add_operator_b'>b</a> by <a href='#IPoint_IVector'>IVector</a> <a href='#SkIPoint_add_operator_a'>a</a>, returning <a href='SkIPoint_Reference#IPoint'>IPoint</a>.
481Can also be used to add <a href='#IPoint_IVector'>IVector</a> to <a href='#IPoint_IVector'>IVector</a>, returning <a href='#IPoint_IVector'>IVector</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500482
483### Parameters
484
Cary Clark682c58d2018-05-16 07:07:07 -0400485<table> <tr> <td><a name='SkIPoint_add_operator_a'><code><strong>a</strong></code></a></td>
Cary Clark777eede2018-11-09 16:04:58 -0500486 <td><a href='SkIPoint_Reference#IPoint'>IPoint</a> or <a href='#IPoint_IVector'>IVector</a> to add to</td>
Cary Clark682c58d2018-05-16 07:07:07 -0400487 </tr>
488 <tr> <td><a name='SkIPoint_add_operator_b'><code><strong>b</strong></code></a></td>
Cary Clark777eede2018-11-09 16:04:58 -0500489 <td><a href='SkIPoint_Reference#IPoint'>IPoint</a> or <a href='#IPoint_IVector'>IVector</a> to add</td>
Cary Clarka560c472017-11-27 10:44:06 -0500490 </tr>
491</table>
492
493### Return Value
494
Cary Clark777eede2018-11-09 16:04:58 -0500495<a href='SkIPoint_Reference#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 -0500496
497### Example
498
499<div><fiddle-embed name="63f4cba971c6d8434595906f865b5a29"></fiddle-embed></div>
500
501### See Also
502
Cary Clarkcb6bef02018-11-29 12:05:25 -0500503<a href='#SkIPoint_addto_operator'>operator+=</a>(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& v)
Cary Clarka560c472017-11-27 10:44:06 -0500504
Cary Clarka90ea222018-10-16 10:30:28 -0400505<a name='IVector'></a>
506
507<a name='SkIVector'></a>
508
Cary Clarka560c472017-11-27 10:44:06 -0500509---
510
Cary Clark682c58d2018-05-16 07:07:07 -0400511<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
Cary Clark77b3f3a2018-11-07 14:59:03 -0500512 typedef <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>;
Cary Clark682c58d2018-05-16 07:07:07 -0400513</pre>
514
Cary Clark777eede2018-11-09 16:04:58 -0500515<a href='SkIPoint_Reference#SkIVector'>SkIVector</a> provides an alternative name for <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>. <a href='SkIPoint_Reference#SkIVector'>SkIVector</a> and <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>
516can be used interchangeably for all purposes.