1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- var Path = require("./Path");
- // CompoundPath to improve performance
- var _default = Path.extend({
- type: 'compound',
- shape: {
- paths: null
- },
- _updatePathDirty: function () {
- var dirtyPath = this.__dirtyPath;
- var paths = this.shape.paths;
- for (var i = 0; i < paths.length; i++) {
- // Mark as dirty if any subpath is dirty
- dirtyPath = dirtyPath || paths[i].__dirtyPath;
- }
- this.__dirtyPath = dirtyPath;
- this.__dirty = this.__dirty || dirtyPath;
- },
- beforeBrush: function () {
- this._updatePathDirty();
- var paths = this.shape.paths || [];
- var scale = this.getGlobalScale(); // Update path scale
- for (var 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: function (ctx, shape) {
- var paths = shape.paths || [];
- for (var i = 0; i < paths.length; i++) {
- paths[i].buildPath(ctx, paths[i].shape, true);
- }
- },
- afterBrush: function () {
- var paths = this.shape.paths || [];
- for (var i = 0; i < paths.length; i++) {
- paths[i].__dirtyPath = false;
- }
- },
- getBoundingRect: function () {
- this._updatePathDirty();
- return Path.prototype.getBoundingRect.call(this);
- }
- });
- module.exports = _default;
|