blob: 1edeaeed5fe3b94a1e5cf97013f1cebc8d32c243 [file] [log] [blame] [view]
Cary Clarka560c472017-11-27 10:44:06 -05001SkIPoint Reference
2===
3
Cary Clarka560c472017-11-27 10:44:06 -05004# <a name="IPoint"></a> IPoint
5
Cary Clark08895c42018-02-01 09:37:32 -05006## <a name="Overview"></a> Overview
Cary Clarka560c472017-11-27 10:44:06 -05007
Cary Clark2a8c48b2018-02-15 17:31:24 -05008## <a name="Overview_Subtopic"></a> Overview Subtopic
Cary Clarka560c472017-11-27 10:44:06 -05009
Cary Clark5081eed2018-01-22 07:55:48 -050010| name | description |
Cary Clark08895c42018-02-01 09:37:32 -050011| --- | --- |
Cary Clark2a8c48b2018-02-15 17:31:24 -050012| <a href="#Constructor">Constructor</a> | functions that construct <a href="#SkIPoint">SkIPoint</a> |
Cary Clark4855f782018-02-06 09:41:53 -050013| <a href="#Member_Function">Member Function</a> | static functions and member methods |
14| <a href="#Member">Member</a> | member values |
15| <a href="#Operator">Operator</a> | operator overloading methods |
Cary Clark78de7512018-02-07 07:27:09 -050016| <a href="#Related_Function">Related Function</a> | similar methods grouped together |
Cary Clark08895c42018-02-01 09:37:32 -050017
18# <a name="SkIPoint"></a> Struct SkIPoint
19<a href="#SkIPoint">SkIPoint</a> holds two 32 bit integer coordinates.
Cary Clark5081eed2018-01-22 07:55:48 -050020
Cary Clark4855f782018-02-06 09:41:53 -050021## <a name="Related_Function"></a> Related Function
Cary Clark5081eed2018-01-22 07:55:48 -050022
23| name | description |
Cary Clark08895c42018-02-01 09:37:32 -050024| --- | --- |
Cary Clark78de7512018-02-07 07:27:09 -050025| <a href="#Property">Property</a> | member values |
26| <a href="#Set">Set</a> | replaces all values |
Cary Clarka560c472017-11-27 10:44:06 -050027
Cary Clark4855f782018-02-06 09:41:53 -050028## <a name="Member_Function"></a> Member Function
Cary Clarka560c472017-11-27 10:44:06 -050029
Cary Clark5081eed2018-01-22 07:55:48 -050030| name | description |
Cary Clark08895c42018-02-01 09:37:32 -050031| --- | --- |
Cary Clark5081eed2018-01-22 07:55:48 -050032| <a href="#SkIPoint_Make">Make</a> | constructs from integer inputs |
33| <a href="#SkIPoint_equals">equals</a> | returns true if members are equal |
34| <a href="#SkIPoint_isZero">isZero</a> | returns true if both members equal zero |
35| <a href="#SkIPoint_set">set</a> | sets to integer input |
36| <a href="#SkIPoint_x">x</a> | returns <a href="#SkIPoint_fX">fX</a> |
37| <a href="#SkIPoint_y">y</a> | returns <a href="#SkIPoint_fY">fY</a> |
Cary Clarka560c472017-11-27 10:44:06 -050038
Cary Clark4855f782018-02-06 09:41:53 -050039## <a name="Member"></a> Member
Cary Clark08895c42018-02-01 09:37:32 -050040
41| name | description |
42| --- | --- |
43| <a href="#SkIPoint_fX">fX</a> | x-axis value |
44| <a href="#SkIPoint_fY">fY</a> | y-axis value |
45
Cary Clarka560c472017-11-27 10:44:06 -050046<a name="SkIPoint_fX"> <code><strong>int32_t fX</strong></code> </a>
47
Cary Clark2dc84ad2018-01-26 12:56:22 -050048x-axis value used by <a href="#IPoint">IPoint</a>.
Cary Clarka560c472017-11-27 10:44:06 -050049
50<a name="SkIPoint_fY"> <code><strong>int32_t fY</strong></code> </a>
51
Cary Clark2dc84ad2018-01-26 12:56:22 -050052y-axis value used by <a href="#IPoint">IPoint</a>.
Cary Clarka560c472017-11-27 10:44:06 -050053
Cary Clark4855f782018-02-06 09:41:53 -050054## <a name="Constructor"></a> Constructor
55
56| name | description |
57| --- | --- |
58| <a href="#SkIPoint_Make">Make</a> | constructs from integer inputs |
59
Cary Clarka560c472017-11-27 10:44:06 -050060<a name="SkIPoint_Make"></a>
61## Make
62
63<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
64static constexpr SkIPoint Make(int32_t x, int32_t y)
65</pre>
66
Cary Clark2dc84ad2018-01-26 12:56:22 -050067Sets <a href="#SkIPoint_fX">fX</a> to x, <a href="#SkIPoint_fY">fY</a> to y.
Cary Clarka560c472017-11-27 10:44:06 -050068
69### Parameters
70
71<table> <tr> <td><a name="SkIPoint_Make_x"> <code><strong>x </strong></code> </a></td> <td>
Cary Clark2dc84ad2018-01-26 12:56:22 -050072integer x-axis value of constructed <a href="#IPoint">IPoint</a></td>
Cary Clarka560c472017-11-27 10:44:06 -050073 </tr> <tr> <td><a name="SkIPoint_Make_y"> <code><strong>y </strong></code> </a></td> <td>
Cary Clark2dc84ad2018-01-26 12:56:22 -050074integer y-axis value of constructed <a href="#IPoint">IPoint</a></td>
Cary Clarka560c472017-11-27 10:44:06 -050075 </tr>
76</table>
77
78### Return Value
79
Cary Clark2dc84ad2018-01-26 12:56:22 -050080<a href="#IPoint">IPoint</a> (x, y)
Cary Clarka560c472017-11-27 10:44:06 -050081
82### Example
83
84<div><fiddle-embed name="e5cf5159525bd3140f288a95fe641fae">
85
86#### Example Output
87
88~~~~
89pt1 == pt2
90~~~~
91
92</fiddle-embed></div>
93
94### See Also
95
Cary Clark2a8c48b2018-02-15 17:31:24 -050096<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> <a href="SkIPoint16_Reference#SkIPoint16_Make">SkIPoint16::Make</a>
Cary Clarka560c472017-11-27 10:44:06 -050097
98---
99
Cary Clark4855f782018-02-06 09:41:53 -0500100## <a name="Property"></a> Property
101
102| name | description |
103| --- | --- |
104| <a href="#SkIPoint_isZero">isZero</a> | returns true if both members equal zero |
105| <a href="#SkIPoint_x">x</a> | returns <a href="#SkIPoint_fX">fX</a> |
106| <a href="#SkIPoint_y">y</a> | returns <a href="#SkIPoint_fY">fY</a> |
107
Cary Clarka560c472017-11-27 10:44:06 -0500108<a name="SkIPoint_x"></a>
109## x
110
111<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
112int32_t x() const
113</pre>
114
Cary Clark2dc84ad2018-01-26 12:56:22 -0500115Returns x-axis value of <a href="#IPoint">IPoint</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500116
117### Return Value
118
119<a href="#SkIPoint_fX">fX</a>
120
121### Example
122
123<div><fiddle-embed name="eed4185294f8a8216fc354e6ee6b2e3a">
124
125#### Example Output
126
127~~~~
128pt1.fX == pt1.x()
129~~~~
130
131</fiddle-embed></div>
132
133### See Also
134
Cary Clark2a8c48b2018-02-15 17:31:24 -0500135<a href="#SkIPoint_y">y</a> <a href="SkPoint_Reference#SkPoint_x">SkPoint::x()</a> <a href="SkIPoint16_Reference#SkIPoint16_x">SkIPoint16::x()</a>
Cary Clarka560c472017-11-27 10:44:06 -0500136
137---
138
139<a name="SkIPoint_y"></a>
140## y
141
142<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
143int32_t y() const
144</pre>
145
Cary Clark2dc84ad2018-01-26 12:56:22 -0500146Returns y-axis value of <a href="#IPoint">IPoint</a>.
Cary Clarka560c472017-11-27 10:44:06 -0500147
148### Return Value
149
150<a href="#SkIPoint_fY">fY</a>
151
152### Example
153
154<div><fiddle-embed name="35c41b8ba7cebf8c9a7a8494e610e14d">
155
156#### Example Output
157
158~~~~
159pt1.fY == pt1.y()
160~~~~
161
162</fiddle-embed></div>
163
164### See Also
165
Cary Clark2a8c48b2018-02-15 17:31:24 -0500166<a href="#SkIPoint_x">x</a> <a href="SkPoint_Reference#SkPoint_y">SkPoint::y()</a> <a href="SkIPoint16_Reference#SkIPoint16_y">SkIPoint16::y()</a>
Cary Clarka560c472017-11-27 10:44:06 -0500167
168---
169
170<a name="SkIPoint_isZero"></a>
171## isZero
172
173<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
174bool isZero() const
175</pre>
176
177Returns true if <a href="#SkIPoint_fX">fX</a> and <a href="#SkIPoint_fY">fY</a> are both zero.
178
179### Return Value
180
181true if <a href="#SkIPoint_fX">fX</a> is zero and <a href="#SkIPoint_fY">fY</a> is zero
182
183### Example
184
185<div><fiddle-embed name="658c1df611b4577cc7e0bb384e95737e">
186
187#### Example Output
188
189~~~~
190pt.isZero() == true
191~~~~
192
193</fiddle-embed></div>
194
195### See Also
196
Cary Clark2a8c48b2018-02-15 17:31:24 -0500197<a href="SkPoint_Reference#SkPoint_isZero">SkPoint::isZero</a>
Cary Clarka560c472017-11-27 10:44:06 -0500198
199---
200
Cary Clark4855f782018-02-06 09:41:53 -0500201## <a name="Set"></a> Set
202
203| name | description |
204| --- | --- |
205| <a href="#SkIPoint_set">set</a> | sets to integer input |
206
Cary Clarka560c472017-11-27 10:44:06 -0500207<a name="SkIPoint_set"></a>
208## set
209
210<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
211void set(int32_t x, int32_t y)
212</pre>
213
Cary Clark2dc84ad2018-01-26 12:56:22 -0500214Sets <a href="#SkIPoint_fX">fX</a> to x and <a href="#SkIPoint_fY">fY</a> to y.
Cary Clarka560c472017-11-27 10:44:06 -0500215
216### Parameters
217
218<table> <tr> <td><a name="SkIPoint_set_x"> <code><strong>x </strong></code> </a></td> <td>
219new value for <a href="#SkIPoint_fX">fX</a></td>
220 </tr> <tr> <td><a name="SkIPoint_set_y"> <code><strong>y </strong></code> </a></td> <td>
221new value for <a href="#SkIPoint_fY">fY</a></td>
222 </tr>
223</table>
224
225### Example
226
227<div><fiddle-embed name="165418b5718d79d8f1682a8a0ee32ba0">
228
229#### Example Output
230
231~~~~
232pt1 == pt2
233~~~~
234
235</fiddle-embed></div>
236
237### See Also
238
Cary Clark2a8c48b2018-02-15 17:31:24 -0500239<a href="#SkIPoint_Make">Make</a> <a href="SkIPoint16_Reference#SkIPoint16_set">SkIPoint16::set</a>
Cary Clarka560c472017-11-27 10:44:06 -0500240
241---
242
Cary Clark4855f782018-02-06 09:41:53 -0500243## <a name="Operator"></a> Operator
244
245| name | description |
246| --- | --- |
247| <a href="#SkIPoint_equals">equals</a> | returns true if members are equal |
248| <a href="#SkIPoint_notequal_operator">operator!=(const SkIPoint& a, const SkIPoint& b)</a> | returns true if <a href="#IPoint">IPoints</a> are unequal |
Cary Clark2a8c48b2018-02-15 17:31:24 -0500249| <a href="#SkIPoint_add_operator">operator+(const SkIPoint& a, const SkIVector& b)</a> | returns <a href="#IPoint">IPoint</a> offset by <a href="#IVector">IVector</a> |
250| <a href="#SkIPoint_addto_operator">operator+=(const SkIVector& v)</a> | adds <a href="#IVector">IVector</a> to <a href="#IPoint">IPoint</a> |
Cary Clark4855f782018-02-06 09:41:53 -0500251| <a href="#SkIPoint_minus_operator">operator-() const</a> | reverses sign of <a href="#IPoint">IPoint</a> |
Cary Clark2a8c48b2018-02-15 17:31:24 -0500252| <a href="#SkIPoint_subtract_operator">operator-(const SkIPoint& a, const SkIPoint& b)</a> | returns <a href="#IVector">IVector</a> between <a href="#IPoint">IPoints</a> |
253| <a href="#SkIPoint_subtractfrom_operator">operator-=(const SkIVector& v)</a> | subtracts <a href="#IVector">IVector</a> from <a href="#IPoint">IPoint</a> |
Cary Clark4855f782018-02-06 09:41:53 -0500254| <a href="#SkIPoint_equal_operator">operator==(const SkIPoint& a, const SkIPoint& b)</a> | returns true if <a href="#IPoint">IPoints</a> are equal |
255
Cary Clarka560c472017-11-27 10:44:06 -0500256<a name="SkIPoint_minus_operator"></a>
257## operator-
258
259<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
260SkIPoint operator-() _const
261</pre>
262
263Returns <a href="#IPoint">IPoint</a> changing the signs of <a href="#SkIPoint_fX">fX</a> and <a href="#SkIPoint_fY">fY</a>.
264
265### Return Value
266
267<a href="#IPoint">IPoint</a> as (-<a href="#SkIPoint_fX">fX</a>, -<a href="#SkIPoint_fY">fY</a>)
268
269### Example
270
271<div><fiddle-embed name="d283e8876366349aedd85b65cadb3706">
272
273#### Example Output
274
275~~~~
276pt: 0, 0 negate: 0, 0
277pt: -1, -2 negate: 1, 2
278pt: 2147483647, -2147483647 negate: -2147483647, 2147483647
279pt: -2147483648, -2147483648 negate: -2147483648, -2147483648
280~~~~
281
282</fiddle-embed></div>
283
284### See Also
285
Cary Clark2a8c48b2018-02-15 17:31:24 -0500286<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 -0500287
288---
289
290<a name="SkIPoint_addto_operator"></a>
291## operator+=
292
293<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
294void operator+=(const SkIVector& v)
295</pre>
296
Cary Clark1a8d7622018-03-05 13:26:16 -0500297Offsets <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>)
298.
Cary Clarka560c472017-11-27 10:44:06 -0500299
300### Parameters
301
302<table> <tr> <td><a name="SkIPoint_addto_operator_v"> <code><strong>v </strong></code> </a></td> <td>
Cary Clark2a8c48b2018-02-15 17:31:24 -0500303<a href="#IVector">IVector</a> to add</td>
Cary Clarka560c472017-11-27 10:44:06 -0500304 </tr>
305</table>
306
307### Example
308
309<div><fiddle-embed name="4eb2d95c9e9a66f05296e345bb68bd51"></fiddle-embed></div>
310
311### See Also
312
Cary Clark2a8c48b2018-02-15 17:31:24 -0500313<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 -0500314
315---
316
317<a name="SkIPoint_subtractfrom_operator"></a>
318## operator-=
319
320<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
321void operator-=(const SkIVector& v)
322</pre>
323
Cary Clark2a8c48b2018-02-15 17:31:24 -0500324Subtracts <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:
Cary Clark1a8d7622018-03-05 13:26:16 -0500325(<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>)
326.
Cary Clarka560c472017-11-27 10:44:06 -0500327
328### Parameters
329
330<table> <tr> <td><a name="SkIPoint_subtractfrom_operator_v"> <code><strong>v </strong></code> </a></td> <td>
Cary Clark2a8c48b2018-02-15 17:31:24 -0500331<a href="#IVector">IVector</a> to subtract</td>
Cary Clarka560c472017-11-27 10:44:06 -0500332 </tr>
333</table>
334
335### Example
336
337<div><fiddle-embed name="a01e533dc7ab34ed728dc4e7a5f1f0ee"></fiddle-embed></div>
338
339### See Also
340
Cary Clark2a8c48b2018-02-15 17:31:24 -0500341<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 -0500342
343---
344
345<a name="SkIPoint_equals"></a>
346## equals
347
348<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
349bool equals(int32_t x, int32_t y) const
350</pre>
351
Cary Clark2dc84ad2018-01-26 12:56:22 -0500352Returns 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 -0500353
354### Parameters
355
356<table> <tr> <td><a name="SkIPoint_equals_x"> <code><strong>x </strong></code> </a></td> <td>
357value compared with <a href="#SkIPoint_fX">fX</a></td>
358 </tr> <tr> <td><a name="SkIPoint_equals_y"> <code><strong>y </strong></code> </a></td> <td>
359value compared with <a href="#SkIPoint_fY">fY</a></td>
360 </tr>
361</table>
362
363### Return Value
364
Cary Clark2dc84ad2018-01-26 12:56:22 -0500365true if <a href="#IPoint">IPoint</a> equals (x, y)
Cary Clarka560c472017-11-27 10:44:06 -0500366
367### Example
368
369<div><fiddle-embed name="64f575d36439d5b69aaed14ffeff1cc4">
370
371#### Example Output
372
373~~~~
374pt: 0, 0 == pt
375pt: -1, -2 == pt
376pt: 2147483647, -1 == pt
377pt: -2147483648, -1 == pt
378~~~~
379
380</fiddle-embed></div>
381
382### See Also
383
384<a href="#SkIPoint_equal_operator">operator==(const SkIPoint& a, const SkIPoint& b)</a>
385
386---
387
388<a name="SkIPoint_equal_operator"></a>
389## operator==
390
391<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
392bool operator==(const SkIPoint& a, const SkIPoint& b)
393</pre>
394
395Returns true if <a href="#SkIPoint_equal_operator_a">a</a> is equivalent to <a href="#SkIPoint_equal_operator_b">b</a>.
396
397### Parameters
398
399<table> <tr> <td><a name="SkIPoint_equal_operator_a"> <code><strong>a </strong></code> </a></td> <td>
400<a href="#IPoint">IPoint</a> to compare</td>
401 </tr> <tr> <td><a name="SkIPoint_equal_operator_b"> <code><strong>b </strong></code> </a></td> <td>
402<a href="#IPoint">IPoint</a> to compare</td>
403 </tr>
404</table>
405
406### Return Value
407
408true 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>
409
410### Example
411
412<div><fiddle-embed name="37ffe2817d720f99e6c252332ce70460">
413
414#### Example Output
415
416~~~~
417pt: 0, 0 == pt
418pt: -1, -2 == pt
419pt: 2147483647, -1 == pt
420pt: -2147483648, -1 == pt
421~~~~
422
423</fiddle-embed></div>
424
425### See Also
426
427<a href="#SkIPoint_equals">equals</a> <a href="#SkIPoint_notequal_operator">operator!=(const SkIPoint& a, const SkIPoint& b)</a>
428
429---
430
431<a name="SkIPoint_notequal_operator"></a>
432## operator!=
433
434<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
435bool operator!=(const SkIPoint& a, const SkIPoint& b)
436</pre>
437
438Returns true if <a href="#SkIPoint_notequal_operator_a">a</a> is not equivalent to <a href="#SkIPoint_notequal_operator_b">b</a>.
439
440### Parameters
441
442<table> <tr> <td><a name="SkIPoint_notequal_operator_a"> <code><strong>a </strong></code> </a></td> <td>
443<a href="#IPoint">IPoint</a> to compare</td>
444 </tr> <tr> <td><a name="SkIPoint_notequal_operator_b"> <code><strong>b </strong></code> </a></td> <td>
445<a href="#IPoint">IPoint</a> to compare</td>
446 </tr>
447</table>
448
449### Return Value
450
451true 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>
452
453### Example
454
455<div><fiddle-embed name="dd89dc48dff69b53d99530b120f204bc">
456
457#### Example Output
458
459~~~~
460pt: 0, 0 == pt
461pt: -1, -2 == pt
462pt: 2147483647, -1 == pt
463pt: -2147483648, -1 == pt
464~~~~
465
466</fiddle-embed></div>
467
468### See Also
469
470<a href="#SkIPoint_equal_operator">operator==(const SkIPoint& a, const SkIPoint& b)</a> <a href="#SkIPoint_equals">equals</a>
471
472---
473
474<a name="SkIPoint_subtract_operator"></a>
475## operator-
476
477<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
478SkIVector operator-(const SkIPoint& a, const SkIPoint& b)
479</pre>
480
Cary Clark1a8d7622018-03-05 13:26:16 -0500481Returns <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>)
482.
Cary Clarka560c472017-11-27 10:44:06 -0500483
Cary Clark2a8c48b2018-02-15 17:31:24 -0500484Can 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 -0500485
486### Parameters
487
488<table> <tr> <td><a name="SkIPoint_subtract_operator_a"> <code><strong>a </strong></code> </a></td> <td>
Cary Clark2a8c48b2018-02-15 17:31:24 -0500489<a href="#IPoint">IPoint</a> or <a href="#IVector">IVector</a> to subtract from</td>
Cary Clarka560c472017-11-27 10:44:06 -0500490 </tr> <tr> <td><a name="SkIPoint_subtract_operator_b"> <code><strong>b </strong></code> </a></td> <td>
Cary Clark2a8c48b2018-02-15 17:31:24 -0500491<a href="#IVector">IVector</a> to subtract</td>
Cary Clarka560c472017-11-27 10:44:06 -0500492 </tr>
493</table>
494
495### Return Value
496
Cary Clark2a8c48b2018-02-15 17:31:24 -0500497<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 -0500498
499### Example
500
501<div><fiddle-embed name="e626e26bf557857b824aa7d03f723e0f"></fiddle-embed></div>
502
503### See Also
504
505<a href="#SkIPoint_subtractfrom_operator">operator-=(const SkIVector& v)</a>
506
507---
508
509<a name="SkIPoint_add_operator"></a>
510## operator+
511
512<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
513SkIPoint operator+(const SkIPoint& a, const SkIVector& b)
514</pre>
515
Cary Clark2a8c48b2018-02-15 17:31:24 -0500516Returns <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 Clark1a8d7622018-03-05 13:26:16 -0500517(<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>)
518.
Cary Clarka560c472017-11-27 10:44:06 -0500519
Cary Clark2a8c48b2018-02-15 17:31:24 -0500520Can 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>.
521Can 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 -0500522
523### Parameters
524
525<table> <tr> <td><a name="SkIPoint_add_operator_a"> <code><strong>a </strong></code> </a></td> <td>
Cary Clark2a8c48b2018-02-15 17:31:24 -0500526<a href="#IPoint">IPoint</a> or <a href="#IVector">IVector</a> to add to</td>
Cary Clarka560c472017-11-27 10:44:06 -0500527 </tr> <tr> <td><a name="SkIPoint_add_operator_b"> <code><strong>b </strong></code> </a></td> <td>
Cary Clark2a8c48b2018-02-15 17:31:24 -0500528<a href="#IPoint">IPoint</a> or <a href="#IVector">IVector</a> to add</td>
Cary Clarka560c472017-11-27 10:44:06 -0500529 </tr>
530</table>
531
532### Return Value
533
534<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>
535
536### Example
537
538<div><fiddle-embed name="63f4cba971c6d8434595906f865b5a29"></fiddle-embed></div>
539
540### See Also
541
542<a href="#SkIPoint_addto_operator">operator+=(const SkIVector& v)</a>
543
544---
545
Cary Clark2f466242017-12-11 16:03:17 -0500546# <a name="IVector"></a> IVector