Skip to content

Commit

Permalink
extract basicLineGroupController
Browse files Browse the repository at this point in the history
  • Loading branch information
syt123450 committed Sep 14, 2018
1 parent c22da64 commit 9b1f21a
Show file tree
Hide file tree
Showing 6 changed files with 92 additions and 100 deletions.
86 changes: 86 additions & 0 deletions src/layer/abstract/BasicLineGroupController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import { BasicMaterialOpacity } from "../../utils/Constant";
import {LineGroupGeometry} from "../../elements/LineGroupGeometry";

function BasicLineGroupController() {

// store the line group system element
let lineMat = new THREE.LineBasicMaterial( {
color: 0xffffff,
opacity: BasicMaterialOpacity,
transparent:true,
vertexColors: THREE.VertexColors
} );
let lineGeom = new THREE.Geometry();
lineGeom.dynamic = true;
this.lineGroup = new THREE.Line(lineGeom, lineMat);

}

BasicLineGroupController.prototype = {

getLineGroupParameters: function(selectedElement) {

this.scene.updateMatrixWorld();

let lineColors = [];
let lineVertices = [];

let relatedElements = this.getRelativeElements(selectedElement);

let startPosition = selectedElement.getWorldPosition().sub(this.neuralGroup.getWorldPosition());

for (let i = 0; i < relatedElements.length; i++) {

lineColors.push(new THREE.Color(this.color));
lineColors.push(new THREE.Color(this.color));

lineVertices.push(relatedElements[i].getWorldPosition().sub(this.neuralGroup.getWorldPosition()));
lineVertices.push(startPosition);

}

return {
lineColors: lineColors,
lineVertices: lineVertices
}

},

initLineGroup: function(selectedElement) {

let lineGroupParameters = this.getLineGroupParameters(selectedElement);

let lineGroupGeometryHandler = new LineGroupGeometry(
lineGroupParameters.lineVertices,
lineGroupParameters.lineColors
);
this.lineGroup.geometry = lineGroupGeometryHandler.getElement();
this.lineGroup.material.needsUpdate = true;

this.neuralGroup.add(this.lineGroup);

},

disposeLineGroup: function() {

this.lineGroup.geometry.dispose();
this.neuralGroup.remove(this.lineGroup);

},

// override this function to define relative element from previous layer
getRelativeElements: function(selectedElement) {

let relativeElements = [];

if (selectedElement.elementType === "") {

}

return [];

}

};

export { BasicLineGroupController };
69 changes: 6 additions & 63 deletions src/layer/abstract/Layer.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
import { CloseButton } from "../../elements/CloseButton";
import { LineGroupGeometry } from "../../elements/LineGroupGeometry";
import { BasicMaterialOpacity } from "../../utils/Constant";
import { BasicLineGroupController } from "./BasicLineGroupController";

function Layer(config) {

BasicLineGroupController.call(this);

this.scene = undefined;
this.layerIndex = undefined;
this.center = undefined;
Expand Down Expand Up @@ -48,17 +52,6 @@ function Layer(config) {
this.nextHookHandler = undefined;
this.lastHookHandler = undefined;

// store the line group system element
let lineMat = new THREE.LineBasicMaterial( {
color: 0xffffff,
opacity: BasicMaterialOpacity,
transparent:true,
vertexColors: THREE.VertexColors
} );
let lineGeom = new THREE.Geometry();
lineGeom.dynamic = true;
this.lineGroup = new THREE.Line(lineGeom, lineMat);

// handler for element showing text
this.textElementHandler = undefined;

Expand All @@ -78,7 +71,7 @@ function Layer(config) {

}

Layer.prototype = {
Layer.prototype = Object.assign(Object.create(BasicLineGroupController.prototype), {

loadBasicLayerConfig: function(config) {

Expand Down Expand Up @@ -149,59 +142,9 @@ Layer.prototype = {
this.neuralGroup.remove(this.closeButtonHandler.getElement());
this.closeButtonHandler = undefined;

},

getLineGroupParameters: function(selectedElement) {

this.scene.updateMatrixWorld();

let lineColors = [];
let lineVertices = [];

let relatedElements = this.getRelativeElements(selectedElement);

let startPosition = selectedElement.getWorldPosition().sub(this.neuralGroup.getWorldPosition());

for (let i = 0; i < relatedElements.length; i++) {

lineColors.push(new THREE.Color(this.color));
lineColors.push(new THREE.Color(this.color));

lineVertices.push(relatedElements[i].getWorldPosition().sub(this.neuralGroup.getWorldPosition()));
lineVertices.push(startPosition);

}

return {
lineColors: lineColors,
lineVertices: lineVertices
}

},

initLineGroup: function(selectedElement) {

let lineGroupParameters = this.getLineGroupParameters(selectedElement);

let lineGroupGeometryHandler = new LineGroupGeometry(
lineGroupParameters.lineVertices,
lineGroupParameters.lineColors
);
this.lineGroup.geometry = lineGroupGeometryHandler.getElement();
this.lineGroup.material.needsUpdate = true;

this.neuralGroup.add(this.lineGroup);

},

disposeLineGroup: function() {

this.lineGroup.geometry.dispose();
this.neuralGroup.remove(this.lineGroup);

}

};
});


export { Layer };
9 changes: 0 additions & 9 deletions src/layer/abstract/Layer1d.js
Original file line number Diff line number Diff line change
Expand Up @@ -233,15 +233,6 @@ Layer1d.prototype = Object.assign(Object.create(Layer.prototype), {
// override this function to get information from previous layer
assemble: function(layerIndex) {

},

// override this function to define relative element from previous layer
getRelativeElements: function(selectedElement) {

let relativeElements = [];

return [];

}

});
Expand Down
9 changes: 0 additions & 9 deletions src/layer/abstract/Layer2d.js
Original file line number Diff line number Diff line change
Expand Up @@ -297,15 +297,6 @@ Layer2d.prototype = Object.assign(Object.create(Layer.prototype), {
// override this function to get information from previous layer
assemble: function(layerIndex) {

},

// override this function to define relative element from previous layer
getRelativeElements: function(selectedElement) {

let relativeElements = [];

return [];

}

});
Expand Down
10 changes: 0 additions & 10 deletions src/layer/abstract/Layer3d.js
Original file line number Diff line number Diff line change
Expand Up @@ -321,17 +321,7 @@ Layer3d.prototype = Object.assign(Object.create(Layer.prototype), {
// override this function to get information from previous layer
assemble: function(layerIndex) {

},

// override this function to define relative element from previous layer
getRelativeElements: function(selectedElement) {

let relativeElements = [];

return [];

}

});

export { Layer3d };
9 changes: 0 additions & 9 deletions src/layer/merge/MergedLayer3d.js
Original file line number Diff line number Diff line change
Expand Up @@ -385,15 +385,6 @@ MergedLayer3d.prototype = Object.assign(Object.create(MergedLayer.prototype), {
this.textElementHandler = undefined;
}

},

// override this function to define relative element from previous layer
getRelativeElements: function(selectedElement) {

let relativeElements = [];

return [];

}

});
Expand Down

0 comments on commit 9b1f21a

Please sign in to comment.