12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import {Style} from "./Style";
- import {GradientStyle} from "./GradientStyle";
- import {Vector2} from "../../math/Vector2";
- /**
- * Linear gradient style, represents a gradient of colors from a point to another interpolating in between.
- *
- * Behind the of the two points used the color is solid.
- *
- * The get method returns a CanvasGradient https://developer.mozilla.org/en-US/docs/Web/API/CanvasGradient when generated.
- *
- * @class
- * @extends {GradientStyle}
- */
- function LinearGradientStyle()
- {
- GradientStyle.call(this);
- /**
- * The coordinates of the starting point of the gradient.
- *
- * @type {Vector2}
- */
- this.start = new Vector2(-100, 0);
- /**
- * The coordinates of the ending point of the gradient.
- *
- * @type {Vector2}
- */
- this.end = new Vector2(100, 0);
- }
- LinearGradientStyle.prototype = Object.create(GradientStyle.prototype);
- Style.register(LinearGradientStyle, "LinearGradient");
- LinearGradientStyle.prototype.get = function(context)
- {
- var style = context.createLinearGradient(this.start.x, this.start.y, this.end.x, this.end.y);
- for(var i = 0; i < this.colors.length; i++)
- {
- style.addColorStop(this.colors[i].offset, this.colors[i].color);
- }
- return style;
- };
- LinearGradientStyle.prototype.serialize = function ()
- {
- var data = GradientStyle.prototype.serialize.call(this);
- Object.assign(data, {
- type: "LinearGradient",
- start: this.start.toArray(),
- end: this.end.toArray()
- });
- return data;
- };
- LinearGradientStyle.prototype.parse = function (data)
- {
- GradientStyle.prototype.parse.call(this, data);
- this.start.fromArray(data.start);
- this.end.fromArray(data.end);
- };
- export {LinearGradientStyle};
|