|
@@ -1,56 +1,78 @@
|
|
|
+*
|
|
|
+ * 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 {
|
|
|
- constructor(id, konvaLayer) {
|
|
|
+
|
|
|
+ // @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.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() {
|
|
|
+ }
|
|
|
+
|
|
|
+ getKonvaGroup () {
|
|
|
return this.konvaGroup;
|
|
|
- }
|
|
|
- getKonvaLayer() {
|
|
|
+ }
|
|
|
+
|
|
|
+ getKonvaLayer () {
|
|
|
return this.konvaLayer;
|
|
|
- }
|
|
|
- addAggregator(aggregator) {
|
|
|
+ }
|
|
|
+
|
|
|
+ addAggregator (aggregator) {
|
|
|
this.aggregators.push(aggregator);
|
|
|
- }
|
|
|
- getAggregators() {
|
|
|
+ }
|
|
|
+
|
|
|
+ getAggregators () {
|
|
|
return this.aggregators;
|
|
|
- }
|
|
|
- getSelectedAggregators() {
|
|
|
+ }
|
|
|
+
|
|
|
+ getSelectedAggregators () {
|
|
|
return this.selectedAggregators;
|
|
|
- }
|
|
|
- setSelectedAggregator(aggregator) {
|
|
|
+ }
|
|
|
+
|
|
|
+ setSelectedAggregator (aggregator) {
|
|
|
if (!this.selectedAggregators.includes(aggregator)) {
|
|
|
this.selectedAggregators.push(aggregator);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- removeSelectedAggregator(aggregator) {
|
|
|
+
|
|
|
+ removeSelectedAggregator (aggregator) {
|
|
|
if (this.selectedAggregators.includes(aggregator)) {
|
|
|
let index = this.selectedAggregators.indexOf(aggregator);
|
|
|
this.selectedAggregators.splice(index, 1);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- removeAggregator(aggregator) {
|
|
|
+
|
|
|
+ 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
|