@foblex/2d
Version:
An Angular library for 2D geometric computations, providing classes and utilities for manipulating points, lines, vectors, rectangles, arcs, and transformations.
16 lines • 2.66 kB
JavaScript
import { parseTransformModel } from './parse-transform-model';
import { defaultTransformModel } from './default-transform-model';
import { PointExtensions } from '../point';
export class TransformModelExtensions {
static toString(transform) {
const position = PointExtensions.sum(transform.position, transform.scaledPosition);
return `matrix(${transform.scale}, 0, 0, ${transform.scale}, ${position.x}, ${position.y})`;
}
static fromString(value) {
return parseTransformModel(value);
}
static default() {
return defaultTransformModel();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLW1vZGVsLmV4dGVuc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mb2JsZXgyZC9zcmMvdHJhbnNmb3JtLW1vZGVsL3RyYW5zZm9ybS1tb2RlbC5leHRlbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFM0MsTUFBTSxPQUFPLHdCQUF3QjtJQUU1QixNQUFNLENBQUMsUUFBUSxDQUFDLFNBQTBCO1FBQy9DLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkYsT0FBTyxVQUFXLFNBQVMsQ0FBQyxLQUFNLFdBQVksU0FBUyxDQUFDLEtBQU0sS0FBTSxRQUFRLENBQUMsQ0FBRSxLQUFNLFFBQVEsQ0FBQyxDQUFFLEdBQUcsQ0FBQztJQUN0RyxDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFvQjtRQUMzQyxPQUFPLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTztRQUNuQixPQUFPLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVRyYW5zZm9ybU1vZGVsIH0gZnJvbSAnLi9pLXRyYW5zZm9ybS1tb2RlbCc7XG5pbXBvcnQgeyBwYXJzZVRyYW5zZm9ybU1vZGVsIH0gZnJvbSAnLi9wYXJzZS10cmFuc2Zvcm0tbW9kZWwnO1xuaW1wb3J0IHsgZGVmYXVsdFRyYW5zZm9ybU1vZGVsIH0gZnJvbSAnLi9kZWZhdWx0LXRyYW5zZm9ybS1tb2RlbCc7XG5pbXBvcnQgeyBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICcuLi9wb2ludCc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMge1xuXG4gIHB1YmxpYyBzdGF0aWMgdG9TdHJpbmcodHJhbnNmb3JtOiBJVHJhbnNmb3JtTW9kZWwpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLnN1bSh0cmFuc2Zvcm0ucG9zaXRpb24sIHRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbik7XG4gICAgcmV0dXJuIGBtYXRyaXgoJHsgdHJhbnNmb3JtLnNjYWxlIH0sIDAsIDAsICR7IHRyYW5zZm9ybS5zY2FsZSB9LCAkeyBwb3NpdGlvbi54IH0sICR7IHBvc2l0aW9uLnkgfSlgO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RyaW5nKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogSVRyYW5zZm9ybU1vZGVsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gcGFyc2VUcmFuc2Zvcm1Nb2RlbCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGRlZmF1bHQoKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gZGVmYXVsdFRyYW5zZm9ybU1vZGVsKCk7XG4gIH1cbn1cblxuXG5cblxuXG4iXX0=