import Gradient, {GradientObject, GradientColorStop} from './Gradient'; export interface LinearGradientObject extends GradientObject { type: 'linear' x: number y: number x2: number y2: number } /** * x, y, x2, y2 are all percent from 0 to 1 when globalCoord is false */ export default class LinearGradient extends Gradient { type: 'linear' x: number y: number x2: number y2: number constructor( x: number, y: number, x2: number, y2: number, colorStops?: GradientColorStop[], globalCoord?: boolean ) { super(colorStops); // Should do nothing more in this constructor. Because gradient can be // declard by `color: {type: 'linear', colorStops: ...}`, where // this constructor will not be called. this.x = x == null ? 0 : x; this.y = y == null ? 0 : y; this.x2 = x2 == null ? 1 : x2; this.y2 = y2 == null ? 0 : y2; // Can be cloned this.type = 'linear'; // If use global coord this.global = globalCoord || false; } };