@shapediver/viewer.data-engine.data-engine 1.15.7 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DataEngine.d.ts +2 -2
- package/dist/DataEngine.d.ts.map +1 -1
- package/dist/DataEngine.js +3 -3
- package/dist/DataEngine.js.map +1 -1
- package/package.json +18 -15
- package/src/DataEngine.ts +80 -0
- package/src/index.ts +5 -0
- package/tsconfig.json +17 -0
package/dist/DataEngine.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ITreeNode } from '@shapediver/viewer.shared.node-tree';
|
|
2
2
|
import { ShapeDiverResponseOutputContent } from '@shapediver/sdk.geometry-api-sdk-v2';
|
|
3
3
|
export declare class DataEngine {
|
|
4
4
|
private readonly _geometryEngine;
|
|
@@ -7,6 +7,6 @@ export declare class DataEngine {
|
|
|
7
7
|
private readonly _materialEngine;
|
|
8
8
|
private readonly _sdtfEngine;
|
|
9
9
|
private readonly _tag3dEngine;
|
|
10
|
-
loadContent(content: ShapeDiverResponseOutputContent): Promise<
|
|
10
|
+
loadContent(content: ShapeDiverResponseOutputContent): Promise<ITreeNode>;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=DataEngine.d.ts.map
|
package/dist/DataEngine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataEngine.d.ts","sourceRoot":"","sources":["../src/DataEngine.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,
|
|
1
|
+
{"version":3,"file":"DataEngine.d.ts","sourceRoot":"","sources":["../src/DataEngine.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,SAAS,EAAY,MAAM,qCAAqC,CAAA;AAK1F,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAA;AAErF,qBACa,UAAU;IAGnB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqE;IACrG,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAgG;IACzI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqE;IACrG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyD;IACrF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4D;IAM5E,WAAW,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC,SAAS,CAAC;CAmDzF"}
|
package/dist/DataEngine.js
CHANGED
|
@@ -43,7 +43,7 @@ let DataEngine = class DataEngine {
|
|
|
43
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
44
|
if (!content || (content && !content.format)) {
|
|
45
45
|
const error = new viewer_shared_services_1.ShapeDiverViewerDataProcessingError('DataEngine cannot load content.');
|
|
46
|
-
throw this._logger.handleError(viewer_shared_services_1.
|
|
46
|
+
throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.DATA_PROCESSING, `DataEngine.loadContent`, error);
|
|
47
47
|
}
|
|
48
48
|
try {
|
|
49
49
|
let node;
|
|
@@ -86,13 +86,13 @@ let DataEngine = class DataEngine {
|
|
|
86
86
|
return transformationNode;
|
|
87
87
|
}
|
|
88
88
|
catch (e) {
|
|
89
|
-
throw this._logger.handleError(viewer_shared_services_1.
|
|
89
|
+
throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.DATA_PROCESSING, `DataEngine.loadContent`, e);
|
|
90
90
|
}
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
};
|
|
94
94
|
DataEngine = __decorate([
|
|
95
|
-
tsyringe_1.singleton()
|
|
95
|
+
(0, tsyringe_1.singleton)()
|
|
96
96
|
], DataEngine);
|
|
97
97
|
exports.DataEngine = DataEngine;
|
|
98
98
|
//# sourceMappingURL=DataEngine.js.map
|
package/dist/DataEngine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataEngine.js","sourceRoot":"","sources":["../src/DataEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAA+C;AAC/C,yEAA4D;AAC5D,uGAA+E;AAC/E,uGAA+E;AAC/E,+FAAuE;AACvE,iGAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"DataEngine.js","sourceRoot":"","sources":["../src/DataEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAA+C;AAC/C,yEAA4D;AAC5D,uGAA+E;AAC/E,uGAA+E;AAC/E,+FAAuE;AACvE,iGAAyE;AACzE,iFAA0F;AAC1F,+EAA2H;AAC3H,6HAAmG;AAEnG,yCAAgC;AAIhC,IAAa,UAAU,GAAvB,MAAa,UAAU;IAAvB;QACI,yBAAyB;QAER,oBAAe,GAAmC,oBAAS,CAAC,OAAO,CAAC,mDAAc,CAAC,CAAC;QACpF,6BAAwB,GAAqD,oBAAS,CAAC,OAAO,CAAC,uEAAuB,CAAC,CAAC;QACxH,YAAO,GAAmB,oBAAS,CAAC,OAAO,CAAC,+BAAM,CAAC,CAAC;QACpD,oBAAe,GAAmC,oBAAS,CAAC,OAAO,CAAC,mDAAc,CAAC,CAAC;QACpF,gBAAW,GAA2B,oBAAS,CAAC,OAAO,CAAC,2CAAU,CAAC,CAAC;QACpE,iBAAY,GAA6B,oBAAS,CAAC,OAAO,CAAC,6CAAW,CAAC,CAAC;QAwDzF,gCAAgC;IACpC,CAAC;IAvDG,4BAA4B;IAE5B,6BAA6B;IAEhB,WAAW,CAAC,OAAwC;;YAC7D,IAAG,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACzC,MAAM,KAAK,GAAG,IAAI,4DAAmC,CAAC,iCAAiC,CAAC,CAAC;gBACzF,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,sCAAa,CAAC,eAAe,EAAE,wBAAwB,EAAE,KAAK,CAAC,CAAC;aAClG;YAED,IAAI;gBACA,IAAI,IAAe,CAAC;gBAEpB,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;oBACvD,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;iBAC1D;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;oBACtC,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;iBAC1D;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;oBAClE,IAAI,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;iBACnE;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;oBACnC,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;iBACvD;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;oBAClC,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;iBACtD;qBAAM;oBACH,IAAI,GAAG,IAAI,kCAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gCAAU,mBAAM,OAAO,EAAG,CAAC,CAAC;iBAClD;gBAED,MAAM,kBAAkB,GAAG,IAAI,kCAAQ,CAAC,gBAAgB,CAAC,CAAC;gBAC1D,IAAI,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;oBACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACrD,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;wBACrC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,EAAE;4BACrC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;4BAC1C,YAAY,CAAC,eAAe,GAAG,CAAC;oCAC5B,EAAE,EAAE,UAAU,GAAG,CAAC;oCAClB,MAAM,EAAE,gBAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAC1C,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EACtB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EACxB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;iCAClC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;4BAChC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;yBAC5C;qBACJ;iBACJ;qBAAM;oBACH,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;iBACpC;gBACD,OAAO,kBAAkB,CAAC;aAE7B;YAAC,OAAO,CAAC,EAAE;gBACR,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,sCAAa,CAAC,eAAe,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC;aAC9F;QACL,CAAC;KAAA;CAGJ,CAAA;AAjEY,UAAU;IADtB,IAAA,oBAAS,GAAE;GACC,UAAU,CAiEtB;AAjEY,gCAAU"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapediver/viewer.data-engine.data-engine",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"author": "Michael Oppitz <michael@shapediver.com>",
|
|
@@ -10,7 +10,11 @@
|
|
|
10
10
|
"test": "__tests__"
|
|
11
11
|
},
|
|
12
12
|
"files": [
|
|
13
|
-
"dist"
|
|
13
|
+
"dist",
|
|
14
|
+
"src",
|
|
15
|
+
"package.json",
|
|
16
|
+
"README.md",
|
|
17
|
+
"tsconfig.json"
|
|
14
18
|
],
|
|
15
19
|
"publishConfig": {
|
|
16
20
|
"access": "public"
|
|
@@ -20,11 +24,10 @@
|
|
|
20
24
|
"url": "git+https://github.com/shapediver/Viewer.git"
|
|
21
25
|
},
|
|
22
26
|
"scripts": {
|
|
23
|
-
"test": "bash ../../scripts/test.sh",
|
|
24
27
|
"check": "tsc --noEmit",
|
|
25
|
-
"build": "bash ../../scripts/build.sh",
|
|
26
|
-
"build-watch": "bash ../../scripts/build-watch.sh",
|
|
27
|
-
"build-dep": "bash ../../scripts/build-dep.sh"
|
|
28
|
+
"build": "bash ../../scripts/building/build.sh",
|
|
29
|
+
"build-watch": "bash ../../scripts/building/build-watch.sh",
|
|
30
|
+
"build-dep": "bash ../../scripts/building/build-dep.sh"
|
|
28
31
|
},
|
|
29
32
|
"bugs": {
|
|
30
33
|
"url": "https://github.com/shapediver/Viewer/issues"
|
|
@@ -37,17 +40,17 @@
|
|
|
37
40
|
},
|
|
38
41
|
"dependencies": {
|
|
39
42
|
"@shapediver/sdk.geometry-api-sdk-v2": "^1.0.24",
|
|
40
|
-
"@shapediver/viewer.data-engine.geometry-engine": "
|
|
41
|
-
"@shapediver/viewer.data-engine.html-element-anchor-engine": "
|
|
42
|
-
"@shapediver/viewer.data-engine.material-engine": "
|
|
43
|
-
"@shapediver/viewer.data-engine.sdtf-engine": "
|
|
44
|
-
"@shapediver/viewer.data-engine.tag3d-engine": "
|
|
45
|
-
"@shapediver/viewer.shared.node-tree": "
|
|
46
|
-
"@shapediver/viewer.shared.services": "
|
|
47
|
-
"@shapediver/viewer.shared.types": "
|
|
43
|
+
"@shapediver/viewer.data-engine.geometry-engine": "2.0.0",
|
|
44
|
+
"@shapediver/viewer.data-engine.html-element-anchor-engine": "2.0.0",
|
|
45
|
+
"@shapediver/viewer.data-engine.material-engine": "2.0.0",
|
|
46
|
+
"@shapediver/viewer.data-engine.sdtf-engine": "2.0.0",
|
|
47
|
+
"@shapediver/viewer.data-engine.tag3d-engine": "2.0.0",
|
|
48
|
+
"@shapediver/viewer.shared.node-tree": "2.0.0",
|
|
49
|
+
"@shapediver/viewer.shared.services": "2.0.0",
|
|
50
|
+
"@shapediver/viewer.shared.types": "2.0.0",
|
|
48
51
|
"axios": "^0.21.1",
|
|
49
52
|
"gl-matrix": "3.3.0",
|
|
50
53
|
"tsyringe": "^4.5.0"
|
|
51
54
|
},
|
|
52
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "bb53f1f23dcf3b1d76e786bdc8eb20e485c029f2"
|
|
53
56
|
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { container, singleton } from 'tsyringe'
|
|
2
|
+
import { CustomData } from '@shapediver/viewer.shared.types'
|
|
3
|
+
import { GeometryEngine } from '@shapediver/viewer.data-engine.geometry-engine'
|
|
4
|
+
import { MaterialEngine } from '@shapediver/viewer.data-engine.material-engine'
|
|
5
|
+
import { SDTFEngine } from '@shapediver/viewer.data-engine.sdtf-engine'
|
|
6
|
+
import { Tag3dEngine } from '@shapediver/viewer.data-engine.tag3d-engine'
|
|
7
|
+
import { ITransformation, ITreeNode, TreeNode } from '@shapediver/viewer.shared.node-tree'
|
|
8
|
+
import { HttpClient, Logger, LOGGING_TOPIC, ShapeDiverViewerDataProcessingError } from '@shapediver/viewer.shared.services'
|
|
9
|
+
import { HTMLElementAnchorEngine } from '@shapediver/viewer.data-engine.html-element-anchor-engine'
|
|
10
|
+
|
|
11
|
+
import { mat4 } from 'gl-matrix'
|
|
12
|
+
import { ShapeDiverResponseOutputContent } from '@shapediver/sdk.geometry-api-sdk-v2'
|
|
13
|
+
|
|
14
|
+
@singleton()
|
|
15
|
+
export class DataEngine {
|
|
16
|
+
// #region Properties (6)
|
|
17
|
+
|
|
18
|
+
private readonly _geometryEngine: GeometryEngine = <GeometryEngine>container.resolve(GeometryEngine);
|
|
19
|
+
private readonly _htmlElementAnchorEngine: HTMLElementAnchorEngine = <HTMLElementAnchorEngine>container.resolve(HTMLElementAnchorEngine);
|
|
20
|
+
private readonly _logger: Logger = <Logger>container.resolve(Logger);
|
|
21
|
+
private readonly _materialEngine: MaterialEngine = <MaterialEngine>container.resolve(MaterialEngine);
|
|
22
|
+
private readonly _sdtfEngine: SDTFEngine = <SDTFEngine>container.resolve(SDTFEngine);
|
|
23
|
+
private readonly _tag3dEngine: Tag3dEngine = <Tag3dEngine>container.resolve(Tag3dEngine);
|
|
24
|
+
|
|
25
|
+
// #endregion Properties (6)
|
|
26
|
+
|
|
27
|
+
// #region Public Methods (1)
|
|
28
|
+
|
|
29
|
+
public async loadContent(content: ShapeDiverResponseOutputContent): Promise<ITreeNode> {
|
|
30
|
+
if(!content || (content && !content.format)) {
|
|
31
|
+
const error = new ShapeDiverViewerDataProcessingError('DataEngine cannot load content.');
|
|
32
|
+
throw this._logger.handleError(LOGGING_TOPIC.DATA_PROCESSING, `DataEngine.loadContent`, error);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
try {
|
|
36
|
+
let node: ITreeNode;
|
|
37
|
+
|
|
38
|
+
if (content.format === 'glb' || content.format === 'gltf') {
|
|
39
|
+
node = await this._geometryEngine.loadContent(content);
|
|
40
|
+
} else if (content.format === 'material') {
|
|
41
|
+
node = await this._materialEngine.loadContent(content);
|
|
42
|
+
} else if (content.format === 'tag2d' || content.format === 'anchor') {
|
|
43
|
+
node = await this._htmlElementAnchorEngine.loadContent(content);
|
|
44
|
+
} else if (content.format === 'tag3d') {
|
|
45
|
+
node = await this._tag3dEngine.loadContent(content);
|
|
46
|
+
} else if (content.format === 'sdtf') {
|
|
47
|
+
node = await this._sdtfEngine.loadContent(content);
|
|
48
|
+
} else {
|
|
49
|
+
node = new TreeNode('custom');
|
|
50
|
+
node.data.push(new CustomData({ ...content }));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const transformationNode = new TreeNode('transformation');
|
|
54
|
+
if (content.transformations && Array.isArray(content.transformations)) {
|
|
55
|
+
for (let i = 0; i < content.transformations.length; i++) {
|
|
56
|
+
const t = content.transformations[i];
|
|
57
|
+
if (Array.isArray(t) && t.length === 16) {
|
|
58
|
+
const nodeInstance = node.cloneInstance();
|
|
59
|
+
nodeInstance.transformations = [{
|
|
60
|
+
id: 'content_' + i,
|
|
61
|
+
matrix: mat4.fromValues(t[0], t[1], t[2], t[3],
|
|
62
|
+
t[4], t[5], t[6], t[7],
|
|
63
|
+
t[8], t[9], t[10], t[11],
|
|
64
|
+
t[12], t[13], t[14], t[15])
|
|
65
|
+
}].concat(node.transformations);
|
|
66
|
+
transformationNode.addChild(nodeInstance)
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
transformationNode.addChild(node)
|
|
71
|
+
}
|
|
72
|
+
return transformationNode;
|
|
73
|
+
|
|
74
|
+
} catch (e) {
|
|
75
|
+
throw this._logger.handleError(LOGGING_TOPIC.DATA_PROCESSING, `DataEngine.loadContent`, e);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// #endregion Public Methods (1)
|
|
80
|
+
}
|
package/src/index.ts
ADDED
package/tsconfig.json
ADDED