Skip to content

Commit 81eaedb

Browse files
committed
optimize add merge function for concatenate function
1 parent d0f85eb commit 81eaedb

File tree

9 files changed

+62
-99
lines changed

9 files changed

+62
-99
lines changed

src/assets/image/Concatenate.js

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/assets/image/concatenate.png

8.31 KB
Loading

src/layer/merge/Add.js

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,52 @@
1-
import { BasicLayer1d } from "../prime/BasicLayer1d";
2-
import { BasicLayer2d } from "../prime/BasicLayer2d";
3-
import { BasicLayer3d } from "../prime/BasicLayer3d";
41
import {MergedLayer3d} from "./MergedLayer3d";
52

63
function Add(layerList) {
74

8-
let mergedElements = [];
5+
let operatorType = "add";
96

10-
let depth;
7+
validate(layerList);
118

12-
if (layerList.length > 0) {
13-
depth = layerList[0].layerDimension;
14-
} else {
15-
console.error("Merge Layer missing elements.");
16-
}
9+
return createMergedLayer(layerList);
10+
11+
function validate(layerList) {
12+
13+
let depth;
14+
15+
if (layerList.length > 0) {
16+
depth = layerList[0].layerDimension;
17+
} else {
18+
console.error("Merge Layer missing elements.");
19+
}
20+
21+
for (let i = 0; i < layerList.length; i++) {
1722

18-
for (let i = 0; i < layerList.length; i++) {
23+
if (layerList[i].layerDimension !== depth) {
24+
console.error("Can not add layer with different depth.");
25+
}
1926

20-
if (layerList[i].layerDimension !== depth) {
21-
console.error("Can not add layer with different depth.");
2227
}
2328

24-
mergedElements.push(layerList[i]);
2529
}
2630

27-
if (mergedElements[0].layerDimension === 1) {
28-
return ;
29-
} else if (mergedElements[0].layerDimension === 2) {
30-
return new BasicLayer2d({shape: [100, 100]});
31-
} else if (mergedElements[0].layerDimension === 3) {
31+
function createMergedLayer(layerList) {
3232

33-
let mergedLayer = new MergedLayer3d({
34-
operator: "add",
35-
mergedElements: mergedElements
36-
});
33+
if (layerList[0].layerDimension === 1) {
3734

38-
return mergedLayer;
39-
} else {
35+
} else if (layerList[0].layerDimension === 2) {
4036

41-
}
37+
} else if (layerList[0].layerDimension === 3) {
4238

43-
}
39+
return new MergedLayer3d({
40+
operator: operatorType,
41+
mergedElements: layerList
42+
});
43+
44+
} else {
45+
console.error("Do not support layer add operation more than 4 dimension.");
46+
}
4447

45-
Add.prototype = {
48+
}
4649

47-
};
50+
}
4851

4952
export { Add };

src/layer/merge/Concatenate.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
function Concatenate(layerList) {
2+
3+
4+
5+
}
6+
7+
Concatenate.prototype = {
8+
9+
};
10+
11+
export { Concatenate };

src/layer/merge/MergeLineGroupController.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,18 @@ MergeLineGroupController.prototype = {
6363
for (let i = 0; i < curveElements.length; i++) {
6464

6565
let startPos = startPosition;
66-
let firstControlPointPos = startPos.clone().add(new THREE.Vector3(1.5 * this.actualWidth, 0, 0));
66+
67+
let controlTranslateXVector;
68+
if (startPos.x >= 0) {
69+
controlTranslateXVector = new THREE.Vector3(1.5 * this.actualWidth, 0, 0)
70+
} else {
71+
controlTranslateXVector = new THREE.Vector3(-1.5 * this.actualWidth, 0, 0)
72+
}
73+
74+
let firstControlPointPos = startPos.clone().add(controlTranslateXVector);
6775

6876
let endPos = curveElements[i].getWorldPosition().sub(this.neuralGroup.getWorldPosition());
69-
let secondControlPointPos = endPos.clone().add(new THREE.Vector3(1.5 * this.actualWidth, 0, 0));
77+
let secondControlPointPos = endPos.clone().add(controlTranslateXVector);
7078

7179
let curve = new THREE.CubicBezierCurve3(
7280
startPos,
@@ -75,6 +83,7 @@ MergeLineGroupController.prototype = {
7583
endPos
7684
);
7785

86+
7887
let points = curve.getPoints( 50 );
7988

8089
if (forward) {

src/layer/merge/strategy/ConcatenateStrategy.js

Whitespace-only changes.

src/utils/MergedLayerValidator.js

Lines changed: 0 additions & 43 deletions
This file was deleted.

src/utils/MergedShapeGenerator.js

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/utils/TextureProvider.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { CloseData } from "../assets/image/CloseData";
22
import { PlusData } from "../assets/image/Plus";
3+
import { ConcatenateData } from "../assets/image/Concatenate";
34

45
let TextureProvider = (function() {
56

@@ -9,6 +10,8 @@ let TextureProvider = (function() {
910
return CloseData;
1011
} else if (name === "add") {
1112
return PlusData;
13+
} else if (name === "concatenate") {
14+
return ConcatenateData;
1215
}
1316

1417
}

0 commit comments

Comments
 (0)