@shapediver/viewer.data-engine.data-engine 2.8.5 → 2.9.1
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 +3 -2
- package/dist/DataEngine.d.ts.map +1 -1
- package/dist/DataEngine.js +15 -3
- package/dist/DataEngine.js.map +1 -1
- package/package.json +11 -11
- package/src/DataEngine.ts +18 -5
package/dist/DataEngine.d.ts
CHANGED
|
@@ -3,12 +3,13 @@ import { ShapeDiverResponseOutputContent } from '@shapediver/sdk.geometry-api-sd
|
|
|
3
3
|
export declare class DataEngine {
|
|
4
4
|
private readonly _geometryEngine;
|
|
5
5
|
private readonly _htmlElementAnchorEngine;
|
|
6
|
-
private readonly
|
|
6
|
+
private readonly _eventEngine;
|
|
7
7
|
private readonly _materialEngine;
|
|
8
8
|
private readonly _sdtfEngine;
|
|
9
9
|
private readonly _tag3dEngine;
|
|
10
|
+
private readonly _uuidGenerator;
|
|
10
11
|
private static _instance;
|
|
11
12
|
static get instance(): DataEngine;
|
|
12
|
-
loadContent(content: ShapeDiverResponseOutputContent, jwtToken?: string): Promise<ITreeNode>;
|
|
13
|
+
loadContent(content: ShapeDiverResponseOutputContent, jwtToken?: string, taskEventId?: string): Promise<ITreeNode>;
|
|
13
14
|
}
|
|
14
15
|
//# 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":"AAKA,OAAO,EAAE,SAAS,EAAY,MAAM,qCAAqC,CAAA;AAKzE,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAA;AAErF,qBAAa,UAAU;IAGnB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2C;IAC3E,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA6D;IACtG,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"DataEngine.d.ts","sourceRoot":"","sources":["../src/DataEngine.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAY,MAAM,qCAAqC,CAAA;AAKzE,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAA;AAErF,qBAAa,UAAU;IAGnB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2C;IAC3E,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA6D;IACtG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAClE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2C;IAC3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyC;IAExE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAa;IAMrC,WAAkB,QAAQ,eAEzB;IAMY,WAAW,CAAC,OAAO,EAAE,+BAA+B,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;CAyDlI"}
|
package/dist/DataEngine.js
CHANGED
|
@@ -24,10 +24,11 @@ class DataEngine {
|
|
|
24
24
|
// #region Properties (7)
|
|
25
25
|
this._geometryEngine = viewer_data_engine_geometry_engine_1.GeometryEngine.instance;
|
|
26
26
|
this._htmlElementAnchorEngine = viewer_data_engine_html_element_anchor_engine_1.HTMLElementAnchorEngine.instance;
|
|
27
|
-
this.
|
|
27
|
+
this._eventEngine = viewer_shared_services_1.EventEngine.instance;
|
|
28
28
|
this._materialEngine = viewer_data_engine_material_engine_1.MaterialEngine.instance;
|
|
29
29
|
this._sdtfEngine = viewer_data_engine_sdtf_engine_1.SDTFEngine.instance;
|
|
30
30
|
this._tag3dEngine = viewer_data_engine_tag3d_engine_1.Tag3dEngine.instance;
|
|
31
|
+
this._uuidGenerator = viewer_shared_services_1.UuidGenerator.instance;
|
|
31
32
|
// #endregion Public Methods (1)
|
|
32
33
|
}
|
|
33
34
|
// #endregion Properties (7)
|
|
@@ -37,29 +38,40 @@ class DataEngine {
|
|
|
37
38
|
}
|
|
38
39
|
// #endregion Public Static Accessors (1)
|
|
39
40
|
// #region Public Methods (1)
|
|
40
|
-
loadContent(content, jwtToken) {
|
|
41
|
+
loadContent(content, jwtToken, taskEventId) {
|
|
41
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
42
43
|
if (!content || (content && !content.format))
|
|
43
44
|
throw new viewer_shared_services_1.ShapeDiverViewerDataProcessingError('DataEngine cannot load content.');
|
|
45
|
+
taskEventId = taskEventId || this._uuidGenerator.create();
|
|
44
46
|
let node;
|
|
45
47
|
if (content.format === 'glb' || content.format === 'gltf') {
|
|
46
|
-
node = yield this._geometryEngine.loadContent(content);
|
|
48
|
+
node = yield this._geometryEngine.loadContent(content, taskEventId);
|
|
47
49
|
}
|
|
48
50
|
else if (content.format === 'material') {
|
|
51
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, { type: viewer_shared_types_1.TASK_TYPE.MATERIAL_CONTENT_LOADING, id: taskEventId, progress: 0, status: 'Loading material content.' });
|
|
49
52
|
node = yield this._materialEngine.loadContent(content);
|
|
53
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, { type: viewer_shared_types_1.TASK_TYPE.MATERIAL_CONTENT_LOADING, id: taskEventId, progress: 1, status: 'MATERIAL content loaded.' });
|
|
50
54
|
}
|
|
51
55
|
else if (content.format === 'tag2d' || content.format === 'anchor') {
|
|
56
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, { type: viewer_shared_types_1.TASK_TYPE.TAG_CONTENT_LOADING, id: taskEventId, progress: 0, status: 'Loading tag content.' });
|
|
52
57
|
node = yield this._htmlElementAnchorEngine.loadContent(content);
|
|
58
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, { type: viewer_shared_types_1.TASK_TYPE.TAG_CONTENT_LOADING, id: taskEventId, progress: 1, status: 'Tag content loaded.' });
|
|
53
59
|
}
|
|
54
60
|
else if (content.format === 'tag3d') {
|
|
61
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, { type: viewer_shared_types_1.TASK_TYPE.TAG_CONTENT_LOADING, id: taskEventId, progress: 0, status: 'Loading tag content.' });
|
|
55
62
|
node = yield this._tag3dEngine.loadContent(content);
|
|
63
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, { type: viewer_shared_types_1.TASK_TYPE.TAG_CONTENT_LOADING, id: taskEventId, progress: 1, status: 'Tag content loaded.' });
|
|
56
64
|
}
|
|
57
65
|
else if (content.format === 'sdtf') {
|
|
66
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, { type: viewer_shared_types_1.TASK_TYPE.SDTF_CONTENT_LOADING, id: taskEventId, progress: 0, status: 'Loading sdTF content.' });
|
|
58
67
|
node = yield this._sdtfEngine.loadContent(content, jwtToken);
|
|
68
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, { type: viewer_shared_types_1.TASK_TYPE.SDTF_CONTENT_LOADING, id: taskEventId, progress: 1, status: 'SdTF content loaded.' });
|
|
59
69
|
}
|
|
60
70
|
else {
|
|
71
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, { type: viewer_shared_types_1.TASK_TYPE.CUSTOM_CONTENT_LOADING, id: taskEventId, progress: 0, status: 'Loading custom content.' });
|
|
61
72
|
node = new viewer_shared_node_tree_1.TreeNode('custom');
|
|
62
73
|
node.data.push(new viewer_shared_types_1.CustomData(Object.assign({}, content)));
|
|
74
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, { type: viewer_shared_types_1.TASK_TYPE.CUSTOM_CONTENT_LOADING, id: taskEventId, progress: 1, status: 'Custom content loaded.' });
|
|
63
75
|
}
|
|
64
76
|
const transformationNode = new viewer_shared_node_tree_1.TreeNode('transformation');
|
|
65
77
|
if (content.transformations && Array.isArray(content.transformations)) {
|
package/dist/DataEngine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataEngine.js","sourceRoot":"","sources":["../src/DataEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"DataEngine.js","sourceRoot":"","sources":["../src/DataEngine.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapediver/viewer.data-engine.data-engine",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"author": "Michael Oppitz <michael@shapediver.com>",
|
|
@@ -39,17 +39,17 @@
|
|
|
39
39
|
"testEnvironment": "node"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@shapediver/sdk.geometry-api-sdk-v2": "1.
|
|
43
|
-
"@shapediver/viewer.data-engine.geometry-engine": "2.
|
|
44
|
-
"@shapediver/viewer.data-engine.html-element-anchor-engine": "2.
|
|
45
|
-
"@shapediver/viewer.data-engine.material-engine": "2.
|
|
46
|
-
"@shapediver/viewer.data-engine.sdtf-engine": "2.
|
|
47
|
-
"@shapediver/viewer.data-engine.tag3d-engine": "2.
|
|
48
|
-
"@shapediver/viewer.shared.node-tree": "2.
|
|
49
|
-
"@shapediver/viewer.shared.services": "2.
|
|
50
|
-
"@shapediver/viewer.shared.types": "2.
|
|
42
|
+
"@shapediver/sdk.geometry-api-sdk-v2": "1.4.0",
|
|
43
|
+
"@shapediver/viewer.data-engine.geometry-engine": "2.9.1",
|
|
44
|
+
"@shapediver/viewer.data-engine.html-element-anchor-engine": "2.9.1",
|
|
45
|
+
"@shapediver/viewer.data-engine.material-engine": "2.9.1",
|
|
46
|
+
"@shapediver/viewer.data-engine.sdtf-engine": "2.9.1",
|
|
47
|
+
"@shapediver/viewer.data-engine.tag3d-engine": "2.9.1",
|
|
48
|
+
"@shapediver/viewer.shared.node-tree": "2.9.1",
|
|
49
|
+
"@shapediver/viewer.shared.services": "2.9.1",
|
|
50
|
+
"@shapediver/viewer.shared.types": "2.9.1",
|
|
51
51
|
"axios": "^1.2.6",
|
|
52
52
|
"gl-matrix": "3.3.0"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "c7b6d22d492066831588ca0e9ce66844b921dc6f"
|
|
55
55
|
}
|
package/src/DataEngine.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { CustomData } from '@shapediver/viewer.shared.types'
|
|
1
|
+
import { CustomData, ITaskEvent, TASK_TYPE } from '@shapediver/viewer.shared.types'
|
|
2
2
|
import { GeometryEngine } from '@shapediver/viewer.data-engine.geometry-engine'
|
|
3
3
|
import { MaterialEngine } from '@shapediver/viewer.data-engine.material-engine'
|
|
4
4
|
import { SDTFEngine } from '@shapediver/viewer.data-engine.sdtf-engine'
|
|
5
5
|
import { Tag3dEngine } from '@shapediver/viewer.data-engine.tag3d-engine'
|
|
6
6
|
import { ITreeNode, TreeNode } from '@shapediver/viewer.shared.node-tree'
|
|
7
|
-
import { Logger, ShapeDiverViewerDataProcessingError } from '@shapediver/viewer.shared.services'
|
|
7
|
+
import { EventEngine, EVENTTYPE, Logger, ShapeDiverViewerDataProcessingError, UuidGenerator } from '@shapediver/viewer.shared.services'
|
|
8
8
|
import { HTMLElementAnchorEngine } from '@shapediver/viewer.data-engine.html-element-anchor-engine'
|
|
9
9
|
|
|
10
10
|
import { mat4 } from 'gl-matrix'
|
|
@@ -15,10 +15,11 @@ export class DataEngine {
|
|
|
15
15
|
|
|
16
16
|
private readonly _geometryEngine: GeometryEngine = GeometryEngine.instance;
|
|
17
17
|
private readonly _htmlElementAnchorEngine: HTMLElementAnchorEngine = HTMLElementAnchorEngine.instance;
|
|
18
|
-
private readonly
|
|
18
|
+
private readonly _eventEngine: EventEngine = EventEngine.instance;
|
|
19
19
|
private readonly _materialEngine: MaterialEngine = MaterialEngine.instance;
|
|
20
20
|
private readonly _sdtfEngine: SDTFEngine = SDTFEngine.instance;
|
|
21
21
|
private readonly _tag3dEngine: Tag3dEngine = Tag3dEngine.instance;
|
|
22
|
+
private readonly _uuidGenerator: UuidGenerator = UuidGenerator.instance;
|
|
22
23
|
|
|
23
24
|
private static _instance: DataEngine;
|
|
24
25
|
|
|
@@ -34,25 +35,37 @@ export class DataEngine {
|
|
|
34
35
|
|
|
35
36
|
// #region Public Methods (1)
|
|
36
37
|
|
|
37
|
-
public async loadContent(content: ShapeDiverResponseOutputContent, jwtToken?: string): Promise<ITreeNode> {
|
|
38
|
+
public async loadContent(content: ShapeDiverResponseOutputContent, jwtToken?: string, taskEventId?: string): Promise<ITreeNode> {
|
|
38
39
|
if (!content || (content && !content.format))
|
|
39
40
|
throw new ShapeDiverViewerDataProcessingError('DataEngine cannot load content.');
|
|
40
41
|
|
|
42
|
+
taskEventId = taskEventId || this._uuidGenerator.create();
|
|
43
|
+
|
|
41
44
|
let node: ITreeNode;
|
|
42
45
|
|
|
43
46
|
if (content.format === 'glb' || content.format === 'gltf') {
|
|
44
|
-
node = await this._geometryEngine.loadContent(content);
|
|
47
|
+
node = await this._geometryEngine.loadContent(content, taskEventId);
|
|
45
48
|
} else if (content.format === 'material') {
|
|
49
|
+
this._eventEngine.emitEvent(EVENTTYPE.TASK.TASK_START, { type: TASK_TYPE.MATERIAL_CONTENT_LOADING, id: taskEventId, progress: 0, status: 'Loading material content.' });
|
|
46
50
|
node = await this._materialEngine.loadContent(content);
|
|
51
|
+
this._eventEngine.emitEvent(EVENTTYPE.TASK.TASK_END, { type: TASK_TYPE.MATERIAL_CONTENT_LOADING, id: taskEventId, progress: 1, status: 'MATERIAL content loaded.' });
|
|
47
52
|
} else if (content.format === 'tag2d' || content.format === 'anchor') {
|
|
53
|
+
this._eventEngine.emitEvent(EVENTTYPE.TASK.TASK_START, { type: TASK_TYPE.TAG_CONTENT_LOADING, id: taskEventId, progress: 0, status: 'Loading tag content.' });
|
|
48
54
|
node = await this._htmlElementAnchorEngine.loadContent(content);
|
|
55
|
+
this._eventEngine.emitEvent(EVENTTYPE.TASK.TASK_END, { type: TASK_TYPE.TAG_CONTENT_LOADING, id: taskEventId, progress: 1, status: 'Tag content loaded.' });
|
|
49
56
|
} else if (content.format === 'tag3d') {
|
|
57
|
+
this._eventEngine.emitEvent(EVENTTYPE.TASK.TASK_START, { type: TASK_TYPE.TAG_CONTENT_LOADING, id: taskEventId, progress: 0, status: 'Loading tag content.' });
|
|
50
58
|
node = await this._tag3dEngine.loadContent(content);
|
|
59
|
+
this._eventEngine.emitEvent(EVENTTYPE.TASK.TASK_END, { type: TASK_TYPE.TAG_CONTENT_LOADING, id: taskEventId, progress: 1, status: 'Tag content loaded.' });
|
|
51
60
|
} else if (content.format === 'sdtf') {
|
|
61
|
+
this._eventEngine.emitEvent(EVENTTYPE.TASK.TASK_START, { type: TASK_TYPE.SDTF_CONTENT_LOADING, id: taskEventId, progress: 0, status: 'Loading sdTF content.' });
|
|
52
62
|
node = await this._sdtfEngine.loadContent(content, jwtToken);
|
|
63
|
+
this._eventEngine.emitEvent(EVENTTYPE.TASK.TASK_END, { type: TASK_TYPE.SDTF_CONTENT_LOADING, id: taskEventId, progress: 1, status: 'SdTF content loaded.' });
|
|
53
64
|
} else {
|
|
65
|
+
this._eventEngine.emitEvent(EVENTTYPE.TASK.TASK_START, { type: TASK_TYPE.CUSTOM_CONTENT_LOADING, id: taskEventId, progress: 0, status: 'Loading custom content.' });
|
|
54
66
|
node = new TreeNode('custom');
|
|
55
67
|
node.data.push(new CustomData({ ...content }));
|
|
68
|
+
this._eventEngine.emitEvent(EVENTTYPE.TASK.TASK_END, { type: TASK_TYPE.CUSTOM_CONTENT_LOADING, id: taskEventId, progress: 1, status: 'Custom content loaded.' });
|
|
56
69
|
}
|
|
57
70
|
|
|
58
71
|
const transformationNode = new TreeNode('transformation');
|