1 /* 2 * Copyright 2018 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SkIPoint16_DEFINED 9 #define SkIPoint16_DEFINED 10 11 #include "SkTo.h" 12 #include "SkTypes.h" 13 14 /** \struct SkIPoint16 15 SkIPoint16 holds two 16 bit integer coordinates. 16 */ 17 struct SkIPoint16 { 18 int16_t fX; //!< x-axis value used by SkIPoint16 19 20 int16_t fY; //!< y-axis value used by SkIPoint16 21 22 /** Sets fX to x, fY to y. If SK_DEBUG is defined, asserts 23 if x or y does not fit in 16 bits. 24 25 @param x integer x-axis value of constructed SkIPoint 26 @param y integer y-axis value of constructed SkIPoint 27 @return SkIPoint16 (x, y) 28 */ MakeSkIPoint1629 static constexpr SkIPoint16 Make(int x, int y) { 30 return {SkToS16(x), SkToS16(y)}; 31 } 32 33 /** Returns x-axis value of SkIPoint16. 34 35 @return fX 36 */ xSkIPoint1637 int16_t x() const { return fX; } 38 39 /** Returns y-axis value of SkIPoint. 40 41 @return fY 42 */ ySkIPoint1643 int16_t y() const { return fY; } 44 45 /** Sets fX to x and fY to y. 46 47 @param x new value for fX 48 @param y new value for fY 49 */ setSkIPoint1650 void set(int x, int y) { 51 fX = SkToS16(x); 52 fY = SkToS16(y); 53 } 54 }; 55 56 #endif 57 58