1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- export class DrawerAggregator {
- constructor(drawer, geometricObject, konvaObject, elementClass) {
- this.drawer = drawer;
- this.genericObject = geometricObject;
- this.konvaObject = konvaObject;
- this.aggregators = [];
- this.visible = true;
- if (elementClass != undefined) this.elementClass = elementClass;
- else {
- if (
- konvaObject.attrs != undefined &&
- konvaObject.attrs.class != undefined
- )
- this.elementClass = konvaObject.attrs.class;
- }
- }
- setGeometricObject(genericObject) {
- this.genericObject = genericObject;
- }
- setDrawer(drawer) {
- this.drawer = drawer;
- }
- setKonvaObject(konvaObject) {
- this.konvaObject = konvaObject;
- }
- setElementClass(elementClass) {
- this.elementClass = elementClass;
- }
- addAggregator(aggregator) {
- if (!this.aggregators.includes(aggregator)) {
- this.aggregators.push(aggregator);
- }
- }
- update(e) {
- this.drawer.update(this, e);
- this.updateAggregators(this.aggregators, e);
- }
- updateAggregators(aggregators, e) {
- aggregators.forEach(aggregator => {
- aggregator.drawer.update(aggregator, e);
- if (
- aggregator.aggregators == undefined ||
- aggregator.aggregators.length == 0
- ) {
- return;
- }
- this.updateAggregators(aggregator.aggregators, e);
- });
- }
- }
|