illustrator.js
Version:
JavaScript image processing library
59 lines (58 loc) • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TransformTool = void 0;
const ToolBox_1 = require("../base/ToolBox");
class TransformTool extends ToolBox_1.ToolBox {
translate(x, y) {
this.history.push((ctx) => {
ctx.translate(x, y);
});
return this;
}
transform(options) {
this.history.push((ctx) => {
options.horizontalScaling ?? (options.horizontalScaling = 1);
options.verticalScaling ?? (options.verticalScaling = 1);
ctx.transform(options.horizontalScaling, options.verticalSkewing, options.horizontalSkewing, options.verticalScaling, options.horizontalTranslation, options.verticalTranslation);
});
return this;
}
setTransform(options) {
this.history.push((ctx) => {
options.horizontalScaling ?? (options.horizontalScaling = 1);
options.verticalScaling ?? (options.verticalScaling = 1);
ctx.setTransform(options.horizontalScaling, options.verticalSkewing, options.horizontalSkewing, options.verticalScaling, options.horizontalTranslation, options.verticalTranslation);
});
return this;
}
resetTransform() {
this.history.push((ctx) => {
ctx.resetTransform();
});
return this;
}
getTransform() {
const transformation = this.layer.utils.getLayerTransformation();
return {
horizontalScaling: transformation.a,
verticalSkewing: transformation.b,
horizontalSkewing: transformation.c,
verticalScaling: transformation.d,
horizontalTranslation: transformation.e,
verticalTranslation: transformation.f
};
}
rotate(angle) {
this.history.push((ctx) => {
ctx.rotate(angle);
});
return this;
}
scale(x, y) {
this.history.push((ctx) => {
ctx.scale(x, y);
});
return this;
}
}
exports.TransformTool = TransformTool;