/
Alcatraz
/
Wagomon
Обзор
Документация
Войти
/
Alcatraz
/
Wagomon
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
node_modules/zrender/src/graphic/CompoundPath.ts
59 строк
2 KB
saitgalineu
fix
27 фев 2026, 12:39
27 фев 2026, 12:39
a5092f1
Код
Авторство
О чём код?
// CompoundPath to improve performance import Path from './Path'; import PathProxy from '../core/PathProxy'; export interface CompoundPathShape { paths: Path[] } export default class CompoundPath extends Path { type = 'compound' shape: CompoundPathShape private _updatePathDirty() { const paths = this.shape.paths; let dirtyPath = this.shapeChanged(); for (let i = 0; i < paths.length; i++) { // Mark as dirty if any subpath is dirty dirtyPath = dirtyPath || paths[i].shapeChanged(); } if (dirtyPath) { this.dirtyShape(); } } beforeBrush() { this._updatePathDirty(); const paths = this.shape.paths || []; const scale = this.getGlobalScale(); // Update path scale for (let i = 0; i < paths.length; i++) { if (!paths[i].path) { paths[i].createPathProxy(); } paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold); } } buildPath(ctx: PathProxy | CanvasRenderingContext2D, shape: CompoundPathShape) { const paths = shape.paths || []; for (let i = 0; i < paths.length; i++) { paths[i].buildPath(ctx, paths[i].shape, true); } } afterBrush() { const paths = this.shape.paths || []; for (let i = 0; i < paths.length; i++) { paths[i].pathUpdated(); } } getBoundingRect() { this._updatePathDirty.call(this); return Path.prototype.getBoundingRect.call(this); } }