You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.9 KiB
74 lines
1.9 KiB
import { SVGPathDataTransformer } from "./SVGPathDataTransformer";
|
|
import { TransformFunction } from "./types";
|
|
|
|
export abstract class TransformableSVG {
|
|
round(x?: number) {
|
|
return this.transform(SVGPathDataTransformer.ROUND(x));
|
|
}
|
|
|
|
toAbs() {
|
|
return this.transform(SVGPathDataTransformer.TO_ABS());
|
|
}
|
|
|
|
toRel() {
|
|
return this.transform(SVGPathDataTransformer.TO_REL());
|
|
}
|
|
|
|
normalizeHVZ(a?: boolean, b?: boolean, c?: boolean) {
|
|
return this.transform(SVGPathDataTransformer.NORMALIZE_HVZ(a, b, c));
|
|
}
|
|
|
|
normalizeST() {
|
|
return this.transform(SVGPathDataTransformer.NORMALIZE_ST());
|
|
}
|
|
|
|
qtToC() {
|
|
return this.transform(SVGPathDataTransformer.QT_TO_C());
|
|
}
|
|
|
|
aToC() {
|
|
return this.transform(SVGPathDataTransformer.A_TO_C());
|
|
}
|
|
|
|
sanitize(eps?: number) {
|
|
return this.transform(SVGPathDataTransformer.SANITIZE(eps));
|
|
}
|
|
|
|
translate(x: number, y?: number) {
|
|
return this.transform(SVGPathDataTransformer.TRANSLATE(x, y));
|
|
}
|
|
|
|
scale(x: number, y?: number) {
|
|
return this.transform(SVGPathDataTransformer.SCALE(x, y));
|
|
}
|
|
|
|
rotate(a: number, x?: number, y?: number) {
|
|
return this.transform(SVGPathDataTransformer.ROTATE(a, x, y));
|
|
}
|
|
|
|
matrix(a: number, b: number, c: number, d: number, e: number, f: number) {
|
|
return this.transform(SVGPathDataTransformer.MATRIX(a, b, c, d, e, f));
|
|
}
|
|
|
|
skewX(a: number) {
|
|
return this.transform(SVGPathDataTransformer.SKEW_X(a));
|
|
}
|
|
|
|
skewY(a: number) {
|
|
return this.transform(SVGPathDataTransformer.SKEW_Y(a));
|
|
}
|
|
|
|
xSymmetry(xOffset?: number) {
|
|
return this.transform(SVGPathDataTransformer.X_AXIS_SYMMETRY(xOffset));
|
|
}
|
|
|
|
ySymmetry(yOffset?: number) {
|
|
return this.transform(SVGPathDataTransformer.Y_AXIS_SYMMETRY(yOffset));
|
|
}
|
|
|
|
annotateArcs() {
|
|
return this.transform(SVGPathDataTransformer.ANNOTATE_ARCS());
|
|
}
|
|
|
|
abstract transform(transformFunction: TransformFunction): this;
|
|
}
|