import { __extends } from "tslib"; 
 | 
import Path from '../Path.js'; 
 | 
var sin = Math.sin; 
 | 
var cos = Math.cos; 
 | 
var radian = Math.PI / 180; 
 | 
var RoseShape = (function () { 
 | 
    function RoseShape() { 
 | 
        this.cx = 0; 
 | 
        this.cy = 0; 
 | 
        this.r = []; 
 | 
        this.k = 0; 
 | 
        this.n = 1; 
 | 
    } 
 | 
    return RoseShape; 
 | 
}()); 
 | 
export { RoseShape }; 
 | 
var Rose = (function (_super) { 
 | 
    __extends(Rose, _super); 
 | 
    function Rose(opts) { 
 | 
        return _super.call(this, opts) || this; 
 | 
    } 
 | 
    Rose.prototype.getDefaultStyle = function () { 
 | 
        return { 
 | 
            stroke: '#000', 
 | 
            fill: null 
 | 
        }; 
 | 
    }; 
 | 
    Rose.prototype.getDefaultShape = function () { 
 | 
        return new RoseShape(); 
 | 
    }; 
 | 
    Rose.prototype.buildPath = function (ctx, shape) { 
 | 
        var R = shape.r; 
 | 
        var k = shape.k; 
 | 
        var n = shape.n; 
 | 
        var x0 = shape.cx; 
 | 
        var y0 = shape.cy; 
 | 
        var x; 
 | 
        var y; 
 | 
        var r; 
 | 
        ctx.moveTo(x0, y0); 
 | 
        for (var i = 0, len = R.length; i < len; i++) { 
 | 
            r = R[i]; 
 | 
            for (var j = 0; j <= 360 * n; j++) { 
 | 
                x = r 
 | 
                    * sin(k / n * j % 360 * radian) 
 | 
                    * cos(j * radian) 
 | 
                    + x0; 
 | 
                y = r 
 | 
                    * sin(k / n * j % 360 * radian) 
 | 
                    * sin(j * radian) 
 | 
                    + y0; 
 | 
                ctx.lineTo(x, y); 
 | 
            } 
 | 
        } 
 | 
    }; 
 | 
    return Rose; 
 | 
}(Path)); 
 | 
Rose.prototype.type = 'rose'; 
 | 
export default Rose; 
 |