P.makeLineSpiralPath = function () {
let path = 'm0,0 m';
let {startRadius, radiusIncrement, radiusIncrementAdjust, startAngle, angleIncrement, angleIncrementAdjust, stepLimit} = this;
let coord = requestCoordinate();
let currentAngle = startAngle,
currentAngleIncrement = angleIncrement,
currentRadius = startRadius,
currentRadiusIncrement = radiusIncrement,
counter = 0;
coord.setFromArray([0, currentRadius]).rotate(currentAngle);
path += `${coord[0].toFixed(1)},${coord[1].toFixed(1)}l`;
while (counter < stepLimit) {
counter ++;
currentAngleIncrement *= angleIncrementAdjust;
currentAngle += currentAngleIncrement;
currentRadiusIncrement *= radiusIncrementAdjust;
currentRadius += currentRadiusIncrement;
coord.setFromArray([0, currentRadius]).rotate(currentAngle);
path += `${coord[0].toFixed(1)},${coord[1].toFixed(1)} `;
}
releaseCoordinate(coord);
return path;
};
P.calculateLocalPathAdditionalActions = function () {
let [x, y, w, h] = this.localBox,
scale = this.scale;
this.pathDefinition = this.pathDefinition.replace('m0,0 ', `m${-x / scale},${-y / scale}`);
this.pathCalculatedOnce = false;