blob: 4648a6ca4b26a20233128d94fcf0f02daa1c2e78 [file] [log] [blame] [view]
Cary Clarka560c472017-11-27 10:44:06 -05001SkIPoint Reference
2===
3
Cary Clark682c58d2018-05-16 07:07:07 -04004# <a name='IPoint'>IPoint</a>
Cary Clarka560c472017-11-27 10:44:06 -05005
Cary Clark682c58d2018-05-16 07:07:07 -04006# <a name='SkIPoint'>Struct SkIPoint</a>
Cary Clarka560c472017-11-27 10:44:06 -05007
Cary Clark682c58d2018-05-16 07:07:07 -04008## <a name='Typedef'>Typedef</a>
Cary Clarka560c472017-11-27 10:44:06 -05009
Cary Clark08895c42018-02-01 09:37:32 -050010
Cary Clark682c58d2018-05-16 07:07:07 -040011SkIPoint <code>typedef</code> define a data type.
12<table style='border-collapse: collapse; width: 62.5em'>
13 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
14<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
15</table>
16<a href='#SkIPoint'>SkIPoint</a> holds two 32-bit integer coordinates.
Cary Clark5081eed2018-01-22 07:55:48 -050017
Cary Clark682c58d2018-05-16 07:07:07 -040018## Overview
Cary Clark5081eed2018-01-22 07:55:48 -050019
Cary Clark682c58d2018-05-16 07:07:07 -040020<table style='border-collapse: collapse; width: 62.5em'>
21 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
22<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
23 <tr style='background-color: #f0f0f0; '>
24 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Constructor'>Constructors</a></td>
25 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>functions that construct <a href='#SkIPoint'>SkIPoint</a></td>
26 </tr>
27 <tr>
28 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Member_Function'>Functions</a></td>
29 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>global and class member functions</td>
30 </tr>
31 <tr style='background-color: #f0f0f0; '>
32 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Member'>Members</a></td>
33 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>member values</td>
34 </tr>
35 <tr>
36 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Operator'>Operators</a></td>
37 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>operator overloading methods</td>
38 </tr>
39 <tr style='background-color: #f0f0f0; '>
40 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Related_Function'>Related Functions</a></td>
41 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>similar member functions grouped together</td>
42 </tr>
43</table>
Cary Clarka560c472017-11-27 10:44:06 -050044
Cary Clarka560c472017-11-27 10:44:06 -050045
Cary Clark682c58d2018-05-16 07:07:07 -040046## <a name='Related_Function'>Related Function</a>
Cary Clarka560c472017-11-27 10:44:06 -050047
Cary Clark08895c42018-02-01 09:37:32 -050048
Cary Clark682c58d2018-05-16 07:07:07 -040049SkIPoint global, <code>struct</code>, and <code>class</code> related member functions share a topic.
50<table style='border-collapse: collapse; width: 62.5em'>
51 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
52<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
53 <tr style='background-color: #f0f0f0; '>
54 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#IVector'>IVector</a></td>
55 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>alias for <a href='#IPoint'>IPoint</a></td>
56 </tr>
57 <tr>
58 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Property'>Property</a></td>
59 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>member values</td>
60 </tr>
61 <tr style='background-color: #f0f0f0; '>
62 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Set'>Set</a></td>
63 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>replaces all values</td>
64 </tr>
65</table>
Cary Clark08895c42018-02-01 09:37:32 -050066
Cary Clarka560c472017-11-27 10:44:06 -050067
Cary Clark682c58d2018-05-16 07:07:07 -040068## <a name='Member_Function'>Member Function</a>
Cary Clarka560c472017-11-27 10:44:06 -050069
Cary Clarka560c472017-11-27 10:44:06 -050070
Cary Clark682c58d2018-05-16 07:07:07 -040071SkIPoint member functions read and modify the structure properties.
72<table style='border-collapse: collapse; width: 62.5em'>
73 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
74<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
75 <tr style='background-color: #f0f0f0; '>
76 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_Make'>Make</a></td>
77 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>constructs from integer inputs</td>
78 </tr>
79 <tr>
80 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_equals'>equals</a></td>
81 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns true if members are equal</td>
82 </tr>
83 <tr style='background-color: #f0f0f0; '>
84 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_isZero'>isZero</a></td>
85 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns true if both members equal zero</td>
86 </tr>
87 <tr>
88 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_set'>set</a></td>
89 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to integer input</td>
90 </tr>
91 <tr style='background-color: #f0f0f0; '>
92 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_x'>x</a></td>
93 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns <a href='#SkIPoint_fX'>fX</a></td>
94 </tr>
95 <tr>
96 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_y'>y</a></td>
97 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns <a href='#SkIPoint_fY'>fY</a></td>
98 </tr>
99</table>
Cary Clarka560c472017-11-27 10:44:06 -0500100
Cary Clark4855f782018-02-06 09:41:53 -0500101
Cary Clark682c58d2018-05-16 07:07:07 -0400102## <a name='Member'>Member</a>
Cary Clark4855f782018-02-06 09:41:53 -0500103
Cary Clark682c58d2018-05-16 07:07:07 -0400104
105
106### Members
107
108<table style='border-collapse: collapse; width: 62.5em'>
109 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
110<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Name</th>
111<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
112 <tr style='background-color: #f0f0f0; '>
113 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td>
114 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#fX'><code>fX</code></a></td>
115 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>x-axis value</td>
116 </tr>
117 <tr>
118 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td>
119 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#fY'><code>fY</code></a></td>
120 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>y-axis value</td>
121 </tr>
122</table>
123
124
125SkIPoint members may be read and written directly without using a member function.
126<table style='border-collapse: collapse; width: 62.5em'>
127 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
128<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
129 <tr style='background-color: #f0f0f0; '>
130 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_fX'>fX</a></td>
131 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>x-axis value</td>
132 </tr>
133 <tr>
134 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_fY'>fY</a></td>
135 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>y-axis value</td>
136 </tr>
137</table>
138
139
140### Members
141
142<table style='border-collapse: collapse; width: 62.5em'>
143 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
144<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Name</th>
145<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
146 <tr style='background-color: #f0f0f0; '>
147 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td>
148 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIPoint_fX'><code>fX</code></a></td>
149 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
150x-axis value used by <a href='#IPoint'>IPoint</a>.
151</td>
152 </tr>
153 <tr>
154 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int32_t</td>
155 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIPoint_fY'><code>fY</code></a></td>
156 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
157y-axis value used by <a href='#IPoint'>IPoint</a>.
158</td>
159 </tr>
160
161
162## <a name='Constructor'>Constructor</a>
163
164
165SkIPoint can be constructed or initialized by these functions, including C++ class constructors.
166<table style='border-collapse: collapse; width: 62.5em'>
167 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
168<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
169 <tr style='background-color: #f0f0f0; '>
170 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_Make'>Make</a></td>
171 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>constructs from integer inputs</td>
172 </tr>
173</table>
174
175
176<a name='SkIPoint_Make'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500177## Make
178
Cary Clark682c58d2018-05-16 07:07:07 -0400179<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
180static 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 -0500181</pre>
182
Cary Clark682c58d2018-05-16 07:07:07 -0400183Sets <a href='#SkIPoint_fX'>fX</a> to x, <a href='#SkIPoint_fY'>fY</a> to y.
Cary Clarka560c472017-11-27 10:44:06 -0500184
185### Parameters
186
Cary Clark682c58d2018-05-16 07:07:07 -0400187<table> <tr> <td><a name='SkIPoint_Make_x'><code><strong>x</strong></code></a></td>
188 <td>integer x-axis value of constructed <a href='#IPoint'>IPoint</a></td>
189 </tr>
190 <tr> <td><a name='SkIPoint_Make_y'><code><strong>y</strong></code></a></td>
191 <td>integer y-axis value of constructed <a href='#IPoint'>IPoint</a></td>
Cary Clarka560c472017-11-27 10:44:06 -0500192 </tr>
193</table>
194
195### Return Value
196
Cary Clark682c58d2018-05-16 07:07:07 -0400197<a href='#IPoint'>IPoint</a> (x, y)
Cary Clarka560c472017-11-27 10:44:06 -0500198
199### Example
200
201<div><fiddle-embed name="e5cf5159525bd3140f288a95fe641fae">
202
203#### Example Output
204
205~~~~
206pt1 == pt2
207~~~~
208
209</fiddle-embed></div>
210
211### See Also
212
Cary Clark682c58d2018-05-16 07:07:07 -0400213<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 -0500214
215---
216
Cary Clark682c58d2018-05-16 07:07:07 -0400217## <a name='Property'>Property</a>
Cary Clark4855f782018-02-06 09:41:53 -0500218
Cary Clark4855f782018-02-06 09:41:53 -0500219
Cary Clark682c58d2018-05-16 07:07:07 -0400220<table style='border-collapse: collapse; width: 62.5em'>
221 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
222<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
223 <tr style='background-color: #f0f0f0; '>
224 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_isZero'>isZero</a></td>
225 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns true if both members equal zero</td>
226 </tr>
227 <tr>
228 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_x'>x</a></td>
229 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns <a href='#SkIPoint_fX'>fX</a></td>
230 </tr>
231 <tr style='background-color: #f0f0f0; '>
232 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_y'>y</a></td>
233 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns <a href='#SkIPoint_fY'>fY</a></td>
234 </tr>
235</table>
236
237
238<a name='SkIPoint_x'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500239## x
240
Cary Clark682c58d2018-05-16 07:07:07 -0400241<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
242int32_t <a href='#SkIPoint_x'>x</a>() const
Cary Clarka560c472017-11-27 10:44:06 -0500243</pre>
244
Cary Clark682c58d2018-05-16 07:07:07 -0400245Returns x-axis value of <a href='#IPoint'>IPoint</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500246
247### Return Value
248
Cary Clark682c58d2018-05-16 07:07:07 -0400249<a href='#SkIPoint_fX'>fX</a>
Cary Clarka560c472017-11-27 10:44:06 -0500250
251### Example
252
253<div><fiddle-embed name="eed4185294f8a8216fc354e6ee6b2e3a">
254
255#### Example Output
256
257~~~~
258pt1.fX == pt1.x()
259~~~~
260
261</fiddle-embed></div>
262
263### See Also
264
Cary Clark682c58d2018-05-16 07:07:07 -0400265<a href='#SkIPoint_y'>y</a> <a href='SkPoint_Reference#SkPoint_x'>SkPoint::x()</a>
Cary Clarka560c472017-11-27 10:44:06 -0500266
267---
268
Cary Clark682c58d2018-05-16 07:07:07 -0400269<a name='SkIPoint_y'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500270## y
271
Cary Clark682c58d2018-05-16 07:07:07 -0400272<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
273int32_t <a href='#SkIPoint_y'>y</a>() const
Cary Clarka560c472017-11-27 10:44:06 -0500274</pre>
275
Cary Clark682c58d2018-05-16 07:07:07 -0400276Returns y-axis value of <a href='#IPoint'>IPoint</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500277
278### Return Value
279
Cary Clark682c58d2018-05-16 07:07:07 -0400280<a href='#SkIPoint_fY'>fY</a>
Cary Clarka560c472017-11-27 10:44:06 -0500281
282### Example
283
284<div><fiddle-embed name="35c41b8ba7cebf8c9a7a8494e610e14d">
285
286#### Example Output
287
288~~~~
289pt1.fY == pt1.y()
290~~~~
291
292</fiddle-embed></div>
293
294### See Also
295
Cary Clark682c58d2018-05-16 07:07:07 -0400296<a href='#SkIPoint_x'>x</a> <a href='SkPoint_Reference#SkPoint_y'>SkPoint::y()</a>
Cary Clarka560c472017-11-27 10:44:06 -0500297
298---
299
Cary Clark682c58d2018-05-16 07:07:07 -0400300<a name='SkIPoint_isZero'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500301## isZero
302
Cary Clark682c58d2018-05-16 07:07:07 -0400303<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
304bool <a href='#SkIPoint_isZero'>isZero</a>() const
Cary Clarka560c472017-11-27 10:44:06 -0500305</pre>
306
Cary Clark682c58d2018-05-16 07:07:07 -0400307Returns 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 -0500308
309### Return Value
310
Cary Clark682c58d2018-05-16 07:07:07 -0400311true 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 -0500312
313### Example
314
315<div><fiddle-embed name="658c1df611b4577cc7e0bb384e95737e">
316
317#### Example Output
318
319~~~~
320pt.isZero() == true
321~~~~
322
323</fiddle-embed></div>
324
325### See Also
326
Cary Clark682c58d2018-05-16 07:07:07 -0400327<a href='SkPoint_Reference#SkPoint_isZero'>SkPoint::isZero</a>
Cary Clarka560c472017-11-27 10:44:06 -0500328
329---
330
Cary Clark682c58d2018-05-16 07:07:07 -0400331## <a name='Set'>Set</a>
Cary Clark4855f782018-02-06 09:41:53 -0500332
Cary Clark4855f782018-02-06 09:41:53 -0500333
Cary Clark682c58d2018-05-16 07:07:07 -0400334<table style='border-collapse: collapse; width: 62.5em'>
335 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
336<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
337 <tr style='background-color: #f0f0f0; '>
338 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_set'>set</a></td>
339 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets to integer input</td>
340 </tr>
341</table>
342
343
344<a name='SkIPoint_set'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500345## set
346
Cary Clark682c58d2018-05-16 07:07:07 -0400347<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
348void <a href='#SkIPoint_set'>set</a>(int32_t x, int32_t y)
Cary Clarka560c472017-11-27 10:44:06 -0500349</pre>
350
Cary Clark682c58d2018-05-16 07:07:07 -0400351Sets <a href='#SkIPoint_fX'>fX</a> to x and <a href='#SkIPoint_fY'>fY</a> to y.
Cary Clarka560c472017-11-27 10:44:06 -0500352
353### Parameters
354
Cary Clark682c58d2018-05-16 07:07:07 -0400355<table> <tr> <td><a name='SkIPoint_set_x'><code><strong>x</strong></code></a></td>
356 <td>new value for <a href='#SkIPoint_fX'>fX</a></td>
357 </tr>
358 <tr> <td><a name='SkIPoint_set_y'><code><strong>y</strong></code></a></td>
359 <td>new value for <a href='#SkIPoint_fY'>fY</a></td>
Cary Clarka560c472017-11-27 10:44:06 -0500360 </tr>
361</table>
362
363### Example
364
365<div><fiddle-embed name="165418b5718d79d8f1682a8a0ee32ba0">
366
367#### Example Output
368
369~~~~
370pt1 == pt2
371~~~~
372
373</fiddle-embed></div>
374
375### See Also
376
Cary Clark682c58d2018-05-16 07:07:07 -0400377<a href='#SkIPoint_Make'>Make</a>
Cary Clarka560c472017-11-27 10:44:06 -0500378
379---
380
Cary Clark682c58d2018-05-16 07:07:07 -0400381## <a name='Operator'>Operator</a>
Cary Clark4855f782018-02-06 09:41:53 -0500382
Cary Clark4855f782018-02-06 09:41:53 -0500383
Cary Clark682c58d2018-05-16 07:07:07 -0400384SkIPoint operators inline class member functions with arithmetic equivalents.
385<table style='border-collapse: collapse; width: 62.5em'>
386 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
387<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
388 <tr style='background-color: #f0f0f0; '>
389 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_equals'>equals</a></td>
390 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns true if members are equal</td>
391 </tr>
392 <tr>
393 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_notequal_operator'>operator!=(const SkIPoint& a, const SkIPoint& b)</a></td>
394 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns true if <a href='#IPoint'>IPoints</a> are unequal</td>
395 </tr>
396 <tr style='background-color: #f0f0f0; '>
397 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_add_operator'>operator+(const SkIPoint& a, const SkIVector& b)</a></td>
398 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns <a href='#IPoint'>IPoint</a> offset by <a href='#IVector'>IVector</a></td>
399 </tr>
400 <tr>
401 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_addto_operator'>operator+=(const SkIVector& v)</a></td>
402 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>adds <a href='#IVector'>IVector</a> to <a href='#IPoint'>IPoint</a></td>
403 </tr>
404 <tr style='background-color: #f0f0f0; '>
405 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_minus_operator'>operator-() const</a></td>
406 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>reverses sign of <a href='#IPoint'>IPoint</a></td>
407 </tr>
408 <tr>
409 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_subtract_operator'>operator-(const SkIPoint& a, const SkIPoint& b)</a></td>
410 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns <a href='#IVector'>IVector</a> between <a href='#IPoint'>IPoints</a></td>
411 </tr>
412 <tr style='background-color: #f0f0f0; '>
413 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_subtractfrom_operator'>operator-=(const SkIVector& v)</a></td>
414 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>subtracts <a href='#IVector'>IVector</a> from <a href='#IPoint'>IPoint</a></td>
415 </tr>
416 <tr>
417 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkIPoint_equal_operator'>operator==(const SkIPoint& a, const SkIPoint& b)</a></td>
418 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns true if <a href='#IPoint'>IPoints</a> are equal</td>
419 </tr>
420</table>
421
422
423<a name='SkIPoint_minus_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500424## operator-
425
Cary Clark682c58d2018-05-16 07:07:07 -0400426<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
427<a href='#SkIPoint'>SkIPoint</a> operator-() _const
Cary Clarka560c472017-11-27 10:44:06 -0500428</pre>
429
Cary Clark682c58d2018-05-16 07:07:07 -0400430Returns <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 -0500431
432### Return Value
433
Cary Clark682c58d2018-05-16 07:07:07 -0400434<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 -0500435
436### Example
437
Cary Clark681287e2018-03-16 11:34:15 -0400438<div><fiddle-embed name="b30d4780475d113a7fed3637af7f0db1">
Cary Clarka560c472017-11-27 10:44:06 -0500439
440#### Example Output
441
442~~~~
443pt: 0, 0 negate: 0, 0
444pt: -1, -2 negate: 1, 2
445pt: 2147483647, -2147483647 negate: -2147483647, 2147483647
446pt: -2147483648, -2147483648 negate: -2147483648, -2147483648
447~~~~
448
449</fiddle-embed></div>
450
451### See Also
452
Cary Clark682c58d2018-05-16 07:07:07 -0400453<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 -0500454
455---
456
Cary Clark682c58d2018-05-16 07:07:07 -0400457<a name='SkIPoint_addto_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500458## operator+=
459
Cary Clark682c58d2018-05-16 07:07:07 -0400460<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
461void <a href='#SkIPoint_addto_operator'>operator+=(const SkIVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500462</pre>
463
Cary Clark682c58d2018-05-16 07:07:07 -0400464Offsets <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(<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>)
Cary Clark1a8d7622018-03-05 13:26:16 -0500465.
Cary Clarka560c472017-11-27 10:44:06 -0500466
467### Parameters
468
Cary Clark682c58d2018-05-16 07:07:07 -0400469<table> <tr> <td><a name='SkIPoint_addto_operator_v'><code><strong>v</strong></code></a></td>
470 <td><a href='#IVector'>IVector</a> to add</td>
Cary Clarka560c472017-11-27 10:44:06 -0500471 </tr>
472</table>
473
474### Example
475
476<div><fiddle-embed name="4eb2d95c9e9a66f05296e345bb68bd51"></fiddle-embed></div>
477
478### See Also
479
Cary Clark682c58d2018-05-16 07:07:07 -0400480<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 -0500481
482---
483
Cary Clark682c58d2018-05-16 07:07:07 -0400484<a name='SkIPoint_subtractfrom_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500485## operator-=
486
Cary Clark682c58d2018-05-16 07:07:07 -0400487<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
488void <a href='#SkIPoint_subtractfrom_operator'>operator-=(const SkIVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500489</pre>
490
Cary Clark682c58d2018-05-16 07:07:07 -0400491Subtracts <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:
492(<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>)
Cary Clark1a8d7622018-03-05 13:26:16 -0500493.
Cary Clarka560c472017-11-27 10:44:06 -0500494
495### Parameters
496
Cary Clark682c58d2018-05-16 07:07:07 -0400497<table> <tr> <td><a name='SkIPoint_subtractfrom_operator_v'><code><strong>v</strong></code></a></td>
498 <td><a href='#IVector'>IVector</a> to subtract</td>
Cary Clarka560c472017-11-27 10:44:06 -0500499 </tr>
500</table>
501
502### Example
503
504<div><fiddle-embed name="a01e533dc7ab34ed728dc4e7a5f1f0ee"></fiddle-embed></div>
505
506### See Also
507
Cary Clark682c58d2018-05-16 07:07:07 -0400508<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 -0500509
510---
511
Cary Clark682c58d2018-05-16 07:07:07 -0400512<a name='SkIPoint_equals'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500513## equals
514
Cary Clark682c58d2018-05-16 07:07:07 -0400515<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
516bool <a href='#SkIPoint_equals'>equals</a>(int32_t x, int32_t y) const
Cary Clarka560c472017-11-27 10:44:06 -0500517</pre>
518
Cary Clark682c58d2018-05-16 07:07:07 -0400519Returns 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 -0500520
521### Parameters
522
Cary Clark682c58d2018-05-16 07:07:07 -0400523<table> <tr> <td><a name='SkIPoint_equals_x'><code><strong>x</strong></code></a></td>
524 <td>value compared with <a href='#SkIPoint_fX'>fX</a></td>
525 </tr>
526 <tr> <td><a name='SkIPoint_equals_y'><code><strong>y</strong></code></a></td>
527 <td>value compared with <a href='#SkIPoint_fY'>fY</a></td>
Cary Clarka560c472017-11-27 10:44:06 -0500528 </tr>
529</table>
530
531### Return Value
532
Cary Clark682c58d2018-05-16 07:07:07 -0400533true if <a href='#IPoint'>IPoint</a> equals (x, y)
Cary Clarka560c472017-11-27 10:44:06 -0500534
535### Example
536
537<div><fiddle-embed name="64f575d36439d5b69aaed14ffeff1cc4">
538
539#### Example Output
540
541~~~~
542pt: 0, 0 == pt
543pt: -1, -2 == pt
544pt: 2147483647, -1 == pt
545pt: -2147483648, -1 == pt
546~~~~
547
548</fiddle-embed></div>
549
550### See Also
551
Cary Clark682c58d2018-05-16 07:07:07 -0400552<a href='#SkIPoint_equal_operator'>operator==(const SkIPoint& a, const SkIPoint& b)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500553
554---
555
Cary Clark682c58d2018-05-16 07:07:07 -0400556<a name='SkIPoint_equal_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500557## operator==
558
Cary Clark682c58d2018-05-16 07:07:07 -0400559<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
560bool <a href='#SkIPoint_equal_operator'>operator==(const SkIPoint& a, const SkIPoint& b)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500561</pre>
562
Cary Clark682c58d2018-05-16 07:07:07 -0400563Returns 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 -0500564
565### Parameters
566
Cary Clark682c58d2018-05-16 07:07:07 -0400567<table> <tr> <td><a name='SkIPoint_equal_operator_a'><code><strong>a</strong></code></a></td>
568 <td><a href='#IPoint'>IPoint</a> to compare</td>
569 </tr>
570 <tr> <td><a name='SkIPoint_equal_operator_b'><code><strong>b</strong></code></a></td>
571 <td><a href='#IPoint'>IPoint</a> to compare</td>
Cary Clarka560c472017-11-27 10:44:06 -0500572 </tr>
573</table>
574
575### Return Value
576
Cary Clark682c58d2018-05-16 07:07:07 -0400577true 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 -0500578
579### Example
580
581<div><fiddle-embed name="37ffe2817d720f99e6c252332ce70460">
582
583#### Example Output
584
585~~~~
586pt: 0, 0 == pt
587pt: -1, -2 == pt
588pt: 2147483647, -1 == pt
589pt: -2147483648, -1 == pt
590~~~~
591
592</fiddle-embed></div>
593
594### See Also
595
Cary Clark682c58d2018-05-16 07:07:07 -0400596<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 -0500597
598---
599
Cary Clark682c58d2018-05-16 07:07:07 -0400600<a name='SkIPoint_notequal_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500601## operator!=
602
Cary Clark682c58d2018-05-16 07:07:07 -0400603<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
604bool <a href='#SkIPoint_notequal_operator'>operator!=(const SkIPoint& a, const SkIPoint& b)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500605</pre>
606
Cary Clark682c58d2018-05-16 07:07:07 -0400607Returns 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 -0500608
609### Parameters
610
Cary Clark682c58d2018-05-16 07:07:07 -0400611<table> <tr> <td><a name='SkIPoint_notequal_operator_a'><code><strong>a</strong></code></a></td>
612 <td><a href='#IPoint'>IPoint</a> to compare</td>
613 </tr>
614 <tr> <td><a name='SkIPoint_notequal_operator_b'><code><strong>b</strong></code></a></td>
615 <td><a href='#IPoint'>IPoint</a> to compare</td>
Cary Clarka560c472017-11-27 10:44:06 -0500616 </tr>
617</table>
618
619### Return Value
620
Cary Clark682c58d2018-05-16 07:07:07 -0400621true 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 -0500622
623### Example
624
625<div><fiddle-embed name="dd89dc48dff69b53d99530b120f204bc">
626
627#### Example Output
628
629~~~~
630pt: 0, 0 == pt
631pt: -1, -2 == pt
632pt: 2147483647, -1 == pt
633pt: -2147483648, -1 == pt
634~~~~
635
636</fiddle-embed></div>
637
638### See Also
639
Cary Clark682c58d2018-05-16 07:07:07 -0400640<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 -0500641
642---
643
Cary Clark682c58d2018-05-16 07:07:07 -0400644<a name='SkIPoint_subtract_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500645## operator-
646
Cary Clark682c58d2018-05-16 07:07:07 -0400647<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
648<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 -0500649</pre>
650
Cary Clark682c58d2018-05-16 07:07:07 -0400651Returns <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(<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>)
Cary Clark1a8d7622018-03-05 13:26:16 -0500652.
Cary Clarka560c472017-11-27 10:44:06 -0500653
Cary Clark682c58d2018-05-16 07:07:07 -0400654Can 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 -0500655
656### Parameters
657
Cary Clark682c58d2018-05-16 07:07:07 -0400658<table> <tr> <td><a name='SkIPoint_subtract_operator_a'><code><strong>a</strong></code></a></td>
659 <td><a href='#IPoint'>IPoint</a> or <a href='#IVector'>IVector</a> to subtract from</td>
660 </tr>
661 <tr> <td><a name='SkIPoint_subtract_operator_b'><code><strong>b</strong></code></a></td>
662 <td><a href='#IVector'>IVector</a> to subtract</td>
Cary Clarka560c472017-11-27 10:44:06 -0500663 </tr>
664</table>
665
666### Return Value
667
Cary Clark682c58d2018-05-16 07:07:07 -0400668<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 -0500669
670### Example
671
672<div><fiddle-embed name="e626e26bf557857b824aa7d03f723e0f"></fiddle-embed></div>
673
674### See Also
675
Cary Clark682c58d2018-05-16 07:07:07 -0400676<a href='#SkIPoint_subtractfrom_operator'>operator-=(const SkIVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500677
678---
679
Cary Clark682c58d2018-05-16 07:07:07 -0400680<a name='SkIPoint_add_operator'></a>
Cary Clarka560c472017-11-27 10:44:06 -0500681## operator+
682
Cary Clark682c58d2018-05-16 07:07:07 -0400683<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
684<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 -0500685</pre>
686
Cary Clark682c58d2018-05-16 07:07:07 -0400687Returns <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:
688(<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>)
Cary Clark1a8d7622018-03-05 13:26:16 -0500689.
Cary Clarka560c472017-11-27 10:44:06 -0500690
Cary Clark682c58d2018-05-16 07:07:07 -0400691Can 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>.
692Can 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 -0500693
694### Parameters
695
Cary Clark682c58d2018-05-16 07:07:07 -0400696<table> <tr> <td><a name='SkIPoint_add_operator_a'><code><strong>a</strong></code></a></td>
697 <td><a href='#IPoint'>IPoint</a> or <a href='#IVector'>IVector</a> to add to</td>
698 </tr>
699 <tr> <td><a name='SkIPoint_add_operator_b'><code><strong>b</strong></code></a></td>
700 <td><a href='#IPoint'>IPoint</a> or <a href='#IVector'>IVector</a> to add</td>
Cary Clarka560c472017-11-27 10:44:06 -0500701 </tr>
702</table>
703
704### Return Value
705
Cary Clark682c58d2018-05-16 07:07:07 -0400706<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 -0500707
708### Example
709
710<div><fiddle-embed name="63f4cba971c6d8434595906f865b5a29"></fiddle-embed></div>
711
712### See Also
713
Cary Clark682c58d2018-05-16 07:07:07 -0400714<a href='#SkIPoint_addto_operator'>operator+=(const SkIVector& v)</a>
Cary Clarka560c472017-11-27 10:44:06 -0500715
716---
717
Cary Clark682c58d2018-05-16 07:07:07 -0400718## <a name='IVector'>IVector</a>
719
720# <a name='SkIVector'>Typedef SkIVector</a>
721
722<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
723 typedef <a href='#SkIPoint'>SkIPoint</a> <a href='#SkIVector'>SkIVector</a>;
724</pre>
725
726<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>
727can be used interchangably for all purposes.