c28f21aa85a0558726c97d3d7a43e80512ac5ba703ad46aef620404e35974cd41a086d795bc110bcb872faf8ed0498d010e6949e45943963cd3b8bdf834ea6 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import Gradient, {GradientObject, GradientColorStop} from './Gradient';
  2. export interface LinearGradientObject extends GradientObject {
  3. type: 'linear'
  4. x: number
  5. y: number
  6. x2: number
  7. y2: number
  8. }
  9. /**
  10. * x, y, x2, y2 are all percent from 0 to 1 when globalCoord is false
  11. */
  12. export default class LinearGradient extends Gradient {
  13. type: 'linear'
  14. x: number
  15. y: number
  16. x2: number
  17. y2: number
  18. constructor(
  19. x: number, y: number, x2: number, y2: number,
  20. colorStops?: GradientColorStop[], globalCoord?: boolean
  21. ) {
  22. super(colorStops);
  23. // Should do nothing more in this constructor. Because gradient can be
  24. // declard by `color: {type: 'linear', colorStops: ...}`, where
  25. // this constructor will not be called.
  26. this.x = x == null ? 0 : x;
  27. this.y = y == null ? 0 : y;
  28. this.x2 = x2 == null ? 1 : x2;
  29. this.y2 = y2 == null ? 0 : y2;
  30. // Can be cloned
  31. this.type = 'linear';
  32. // If use global coord
  33. this.global = globalCoord || false;
  34. }
  35. };