UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

113 lines (112 loc) 4.01 kB
import { __extends } from "../../../tslib/tslib.es6.mjs"; import Displayable from "./Displayable.mjs"; import BoundingRect from "../core/BoundingRect.mjs"; var m = []; var IncrementalDisplayable = function(_super) { __extends(IncrementalDisplayable2, _super); function IncrementalDisplayable2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.notClear = true; _this.incremental = true; _this._displayables = []; _this._temporaryDisplayables = []; _this._cursor = 0; return _this; } IncrementalDisplayable2.prototype.traverse = function(cb, context) { cb.call(context, this); }; IncrementalDisplayable2.prototype.useStyle = function() { this.style = {}; }; IncrementalDisplayable2.prototype.getCursor = function() { return this._cursor; }; IncrementalDisplayable2.prototype.innerAfterBrush = function() { this._cursor = this._displayables.length; }; IncrementalDisplayable2.prototype.clearDisplaybles = function() { this._displayables = []; this._temporaryDisplayables = []; this._cursor = 0; this.markRedraw(); this.notClear = false; }; IncrementalDisplayable2.prototype.clearTemporalDisplayables = function() { this._temporaryDisplayables = []; }; IncrementalDisplayable2.prototype.addDisplayable = function(displayable, notPersistent) { if (notPersistent) { this._temporaryDisplayables.push(displayable); } else { this._displayables.push(displayable); } this.markRedraw(); }; IncrementalDisplayable2.prototype.addDisplayables = function(displayables, notPersistent) { notPersistent = notPersistent || false; for (var i = 0; i < displayables.length; i++) { this.addDisplayable(displayables[i], notPersistent); } }; IncrementalDisplayable2.prototype.getDisplayables = function() { return this._displayables; }; IncrementalDisplayable2.prototype.getTemporalDisplayables = function() { return this._temporaryDisplayables; }; IncrementalDisplayable2.prototype.eachPendingDisplayable = function(cb) { for (var i = this._cursor; i < this._displayables.length; i++) { cb && cb(this._displayables[i]); } for (var i = 0; i < this._temporaryDisplayables.length; i++) { cb && cb(this._temporaryDisplayables[i]); } }; IncrementalDisplayable2.prototype.update = function() { this.updateTransform(); for (var i = this._cursor; i < this._displayables.length; i++) { var displayable = this._displayables[i]; displayable.parent = this; displayable.update(); displayable.parent = null; } for (var i = 0; i < this._temporaryDisplayables.length; i++) { var displayable = this._temporaryDisplayables[i]; displayable.parent = this; displayable.update(); displayable.parent = null; } }; IncrementalDisplayable2.prototype.getBoundingRect = function() { if (!this._rect) { var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity); for (var i = 0; i < this._displayables.length; i++) { var displayable = this._displayables[i]; var childRect = displayable.getBoundingRect().clone(); if (displayable.needLocalTransform()) { childRect.applyTransform(displayable.getLocalTransform(m)); } rect.union(childRect); } this._rect = rect; } return this._rect; }; IncrementalDisplayable2.prototype.contain = function(x, y) { var localPos = this.transformCoordToLocal(x, y); var rect = this.getBoundingRect(); if (rect.contain(localPos[0], localPos[1])) { for (var i = 0; i < this._displayables.length; i++) { var displayable = this._displayables[i]; if (displayable.contain(x, y)) { return true; } } } return false; }; return IncrementalDisplayable2; }(Displayable); var IncrementalDisplayable$1 = IncrementalDisplayable; export { IncrementalDisplayable$1 as default };