| import { __extends } from "tslib"; | 
| import Path from '../Path.js'; | 
| var cos = Math.cos; | 
| var sin = Math.sin; | 
| var TrochoidShape = (function () { | 
|     function TrochoidShape() { | 
|         this.cx = 0; | 
|         this.cy = 0; | 
|         this.r = 0; | 
|         this.r0 = 0; | 
|         this.d = 0; | 
|         this.location = 'out'; | 
|     } | 
|     return TrochoidShape; | 
| }()); | 
| export { TrochoidShape }; | 
| var Trochoid = (function (_super) { | 
|     __extends(Trochoid, _super); | 
|     function Trochoid(opts) { | 
|         return _super.call(this, opts) || this; | 
|     } | 
|     Trochoid.prototype.getDefaultStyle = function () { | 
|         return { | 
|             stroke: '#000', | 
|             fill: null | 
|         }; | 
|     }; | 
|     Trochoid.prototype.getDefaultShape = function () { | 
|         return new TrochoidShape(); | 
|     }; | 
|     Trochoid.prototype.buildPath = function (ctx, shape) { | 
|         var R = shape.r; | 
|         var r = shape.r0; | 
|         var d = shape.d; | 
|         var offsetX = shape.cx; | 
|         var offsetY = shape.cy; | 
|         var delta = shape.location === 'out' ? 1 : -1; | 
|         var x1; | 
|         var y1; | 
|         var x2; | 
|         var y2; | 
|         if (shape.location && R <= r) { | 
|             return; | 
|         } | 
|         var num = 0; | 
|         var i = 1; | 
|         var theta; | 
|         x1 = (R + delta * r) * cos(0) | 
|             - delta * d * cos(0) + offsetX; | 
|         y1 = (R + delta * r) * sin(0) | 
|             - d * sin(0) + offsetY; | 
|         ctx.moveTo(x1, y1); | 
|         do { | 
|             num++; | 
|         } while ((r * num) % (R + delta * r) !== 0); | 
|         do { | 
|             theta = Math.PI / 180 * i; | 
|             x2 = (R + delta * r) * cos(theta) | 
|                 - delta * d * cos((R / r + delta) * theta) | 
|                 + offsetX; | 
|             y2 = (R + delta * r) * sin(theta) | 
|                 - d * sin((R / r + delta) * theta) | 
|                 + offsetY; | 
|             ctx.lineTo(x2, y2); | 
|             i++; | 
|         } while (i <= (r * num) / (R + delta * r) * 360); | 
|     }; | 
|     return Trochoid; | 
| }(Path)); | 
| Trochoid.prototype.type = 'trochoid'; | 
| export default Trochoid; |