123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- /*
- * iGeom by LInE
- * Free software to student private data
- *
- * http://www.matematica.br/igeom
- * http://www.usp.br/line
- *
- * ./app/core/drawers/layer.js
- * @version 2023/01/27
- */
- import Konva from "konva";
- import { ActionManager } from "../models/application/actions/action-manager";
- export class Layer {
- // @calledby app/core/drawers/stage.js: createLayer(): const layer = new Layer(sequence, new Konva.Layer());
- constructor (id, konvaLayer) {
- console.log("layer.js!constructor(.): id=" + id);
- this.id = id;
- this.name = "new_construction_" + this.id;
- this.konvaLayer = konvaLayer;
- this.aggregators = [];
- this.selectedAggregators = [];
- this.konvaGroup = new Konva.Group({
- draggable: false,
- resizeEnabled: false
- });
- this.konvaLayer.add(this.konvaGroup);
- this.actionManager = new ActionManager();
- }
- getKonvaGroup () {
- return this.konvaGroup;
- }
- getKonvaLayer () {
- return this.konvaLayer;
- }
- addAggregator (aggregator) {
- this.aggregators.push(aggregator);
- }
- getAggregators () {
- return this.aggregators;
- }
- getSelectedAggregators () {
- return this.selectedAggregators;
- }
- setSelectedAggregator (aggregator) {
- if (!this.selectedAggregators.includes(aggregator)) {
- this.selectedAggregators.push(aggregator);
- }
- }
- removeSelectedAggregator (aggregator) {
- if (this.selectedAggregators.includes(aggregator)) {
- let index = this.selectedAggregators.indexOf(aggregator);
- this.selectedAggregators.splice(index, 1);
- }
- }
- removeAggregator (aggregator) {
- console.info("aggregator", aggregator);
- let index = this.aggregators.indexOf(aggregator);
- this.aggregators.splice(index, 1);
- if (this.selectedAggregators.includes(aggregator)) {
- let index = this.selectedAggregators.indexOf(aggregator);
- this.selectedAggregators.splice(index, 1);
- }
- this.actionManager.remove(aggregator.genericObject);
- aggregator.konvaObject.destroy();
- }
- } // export class Layer
|