Blame view

node_modules/zrender/lib/graphic/IncrementalDisplayable.js 4.26 KB
bd028579   易尊强   2/28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
  import { __extends } from "tslib";
  import Displayble from './Displayable.js';
  import BoundingRect from '../core/BoundingRect.js';
  var m = [];
  var IncrementalDisplayable = (function (_super) {
      __extends(IncrementalDisplayable, _super);
      function IncrementalDisplayable() {
          var _this = _super !== null && _super.apply(this, arguments) || this;
          _this.notClear = true;
          _this.incremental = true;
          _this._displayables = [];
          _this._temporaryDisplayables = [];
          _this._cursor = 0;
          return _this;
      }
      IncrementalDisplayable.prototype.traverse = function (cb, context) {
          cb.call(context, this);
      };
      IncrementalDisplayable.prototype.useStyle = function () {
          this.style = {};
      };
      IncrementalDisplayable.prototype.getCursor = function () {
          return this._cursor;
      };
      IncrementalDisplayable.prototype.innerAfterBrush = function () {
          this._cursor = this._displayables.length;
      };
      IncrementalDisplayable.prototype.clearDisplaybles = function () {
          this._displayables = [];
          this._temporaryDisplayables = [];
          this._cursor = 0;
          this.markRedraw();
          this.notClear = false;
      };
      IncrementalDisplayable.prototype.clearTemporalDisplayables = function () {
          this._temporaryDisplayables = [];
      };
      IncrementalDisplayable.prototype.addDisplayable = function (displayable, notPersistent) {
          if (notPersistent) {
              this._temporaryDisplayables.push(displayable);
          }
          else {
              this._displayables.push(displayable);
          }
          this.markRedraw();
      };
      IncrementalDisplayable.prototype.addDisplayables = function (displayables, notPersistent) {
          notPersistent = notPersistent || false;
          for (var i = 0; i < displayables.length; i++) {
              this.addDisplayable(displayables[i], notPersistent);
          }
      };
      IncrementalDisplayable.prototype.getDisplayables = function () {
          return this._displayables;
      };
      IncrementalDisplayable.prototype.getTemporalDisplayables = function () {
          return this._temporaryDisplayables;
      };
      IncrementalDisplayable.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]);
          }
      };
      IncrementalDisplayable.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;
          }
      };
      IncrementalDisplayable.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;
      };
      IncrementalDisplayable.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 IncrementalDisplayable;
  }(Displayble));
  export default IncrementalDisplayable;