P.makeLineSpiralPath = function () {
let path = `${ZERO_PATH} m`;
const {startRadius, radiusIncrement, radiusIncrementAdjust, startAngle, angleIncrement, angleIncrementAdjust, stepLimit} = this;
const 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 () {
const [x, y] = this.localBox,
scale = this.scale;
this.pathDefinition = this.pathDefinition.replace(`${ZERO_PATH} `, `m${-x / scale},${-y / scale}`);
this.pathCalculatedOnce = false;