@shapediver/viewer.data-engine.data-engine 2.7.10 → 2.8.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.
@@ -7,6 +7,8 @@ export declare class DataEngine {
7
7
  private readonly _materialEngine;
8
8
  private readonly _sdtfEngine;
9
9
  private readonly _tag3dEngine;
10
+ private static _instance;
11
+ static get instance(): DataEngine;
10
12
  loadContent(content: ShapeDiverResponseOutputContent, jwtToken?: string): Promise<ITreeNode>;
11
13
  }
12
14
  //# sourceMappingURL=DataEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataEngine.d.ts","sourceRoot":"","sources":["../src/DataEngine.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAY,MAAM,qCAAqC,CAAA;AAKzE,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAA;AAGrF,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,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;CAqD5G"}
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;AAGrF,qBAAa,UAAU;IAGnB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2C;IAC3E,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA6D;IACtG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2C;IAC3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAElE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAa;IAMrC,WAAkB,QAAQ,eAEzB;IAMY,WAAW,CAAC,OAAO,EAAE,+BAA+B,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;CA8C5G"}
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -16,7 +10,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
16
10
  };
17
11
  Object.defineProperty(exports, "__esModule", { value: true });
18
12
  exports.DataEngine = void 0;
19
- const tsyringe_1 = require("tsyringe");
20
13
  const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
21
14
  const viewer_data_engine_geometry_engine_1 = require("@shapediver/viewer.data-engine.geometry-engine");
22
15
  const viewer_data_engine_material_engine_1 = require("@shapediver/viewer.data-engine.material-engine");
@@ -27,75 +20,70 @@ const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
27
20
  const viewer_data_engine_html_element_anchor_engine_1 = require("@shapediver/viewer.data-engine.html-element-anchor-engine");
28
21
  const gl_matrix_1 = require("gl-matrix");
29
22
  const viewer_shared_node_tree_utils_1 = require("@shapediver/viewer.shared.node-tree-utils");
30
- let DataEngine = class DataEngine {
23
+ class DataEngine {
31
24
  constructor() {
32
- // #region Properties (6)
33
- this._geometryEngine = tsyringe_1.container.resolve(viewer_data_engine_geometry_engine_1.GeometryEngine);
34
- this._htmlElementAnchorEngine = tsyringe_1.container.resolve(viewer_data_engine_html_element_anchor_engine_1.HTMLElementAnchorEngine);
35
- this._logger = tsyringe_1.container.resolve(viewer_shared_services_1.Logger);
36
- this._materialEngine = tsyringe_1.container.resolve(viewer_data_engine_material_engine_1.MaterialEngine);
37
- this._sdtfEngine = tsyringe_1.container.resolve(viewer_data_engine_sdtf_engine_1.SDTFEngine);
38
- this._tag3dEngine = tsyringe_1.container.resolve(viewer_data_engine_tag3d_engine_1.Tag3dEngine);
25
+ // #region Properties (7)
26
+ this._geometryEngine = viewer_data_engine_geometry_engine_1.GeometryEngine.instance;
27
+ this._htmlElementAnchorEngine = viewer_data_engine_html_element_anchor_engine_1.HTMLElementAnchorEngine.instance;
28
+ this._logger = viewer_shared_services_1.Logger.instance;
29
+ this._materialEngine = viewer_data_engine_material_engine_1.MaterialEngine.instance;
30
+ this._sdtfEngine = viewer_data_engine_sdtf_engine_1.SDTFEngine.instance;
31
+ this._tag3dEngine = viewer_data_engine_tag3d_engine_1.Tag3dEngine.instance;
39
32
  // #endregion Public Methods (1)
40
33
  }
41
- // #endregion Properties (6)
34
+ // #endregion Properties (7)
35
+ // #region Public Static Accessors (1)
36
+ static get instance() {
37
+ return this._instance || (this._instance = new this());
38
+ }
39
+ // #endregion Public Static Accessors (1)
42
40
  // #region Public Methods (1)
43
41
  loadContent(content, jwtToken) {
44
42
  return __awaiter(this, void 0, void 0, function* () {
45
- if (!content || (content && !content.format)) {
46
- const error = new viewer_shared_services_1.ShapeDiverViewerDataProcessingError('DataEngine cannot load content.');
47
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.DATA_PROCESSING, `DataEngine.loadContent`, error);
43
+ if (!content || (content && !content.format))
44
+ throw new viewer_shared_services_1.ShapeDiverViewerDataProcessingError('DataEngine cannot load content.');
45
+ let node;
46
+ if (content.format === 'glb' || content.format === 'gltf') {
47
+ node = yield this._geometryEngine.loadContent(content);
48
48
  }
49
- try {
50
- let node;
51
- if (content.format === 'glb' || content.format === 'gltf') {
52
- node = yield this._geometryEngine.loadContent(content);
53
- }
54
- else if (content.format === 'material') {
55
- node = yield this._materialEngine.loadContent(content);
56
- }
57
- else if (content.format === 'tag2d' || content.format === 'anchor') {
58
- node = yield this._htmlElementAnchorEngine.loadContent(content);
59
- }
60
- else if (content.format === 'tag3d') {
61
- node = yield this._tag3dEngine.loadContent(content);
62
- }
63
- else if (content.format === 'sdtf') {
64
- node = yield this._sdtfEngine.loadContent(content, jwtToken);
65
- }
66
- else {
67
- node = new viewer_shared_node_tree_1.TreeNode('custom');
68
- node.data.push(new viewer_shared_types_1.CustomData(Object.assign({}, content)));
69
- }
70
- const transformationNode = new viewer_shared_node_tree_1.TreeNode('transformation');
71
- if (content.transformations && Array.isArray(content.transformations)) {
72
- for (let i = 0; i < content.transformations.length; i++) {
73
- const t = content.transformations[i];
74
- if (Array.isArray(t) && t.length === 16) {
75
- const nodeInstance = node.clone();
76
- nodeInstance.transformations = [{
77
- id: 'content_' + i,
78
- matrix: gl_matrix_1.mat4.fromValues(t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], t[10], t[11], t[12], t[13], t[14], t[15])
79
- }].concat(node.transformations);
80
- transformationNode.updateVersion();
81
- transformationNode.addChild(nodeInstance);
82
- viewer_shared_node_tree_utils_1.NodeTreeUtils.cloneSkinData(node, nodeInstance);
83
- }
49
+ else if (content.format === 'material') {
50
+ node = yield this._materialEngine.loadContent(content);
51
+ }
52
+ else if (content.format === 'tag2d' || content.format === 'anchor') {
53
+ node = yield this._htmlElementAnchorEngine.loadContent(content);
54
+ }
55
+ else if (content.format === 'tag3d') {
56
+ node = yield this._tag3dEngine.loadContent(content);
57
+ }
58
+ else if (content.format === 'sdtf') {
59
+ node = yield this._sdtfEngine.loadContent(content, jwtToken);
60
+ }
61
+ else {
62
+ node = new viewer_shared_node_tree_1.TreeNode('custom');
63
+ node.data.push(new viewer_shared_types_1.CustomData(Object.assign({}, content)));
64
+ }
65
+ const transformationNode = new viewer_shared_node_tree_1.TreeNode('transformation');
66
+ if (content.transformations && Array.isArray(content.transformations)) {
67
+ for (let i = 0; i < content.transformations.length; i++) {
68
+ const t = content.transformations[i];
69
+ if (Array.isArray(t) && t.length === 16) {
70
+ const nodeInstance = node.clone();
71
+ nodeInstance.transformations = [{
72
+ id: 'content_' + i,
73
+ matrix: gl_matrix_1.mat4.fromValues(t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], t[10], t[11], t[12], t[13], t[14], t[15])
74
+ }].concat(node.transformations);
75
+ transformationNode.updateVersion();
76
+ transformationNode.addChild(nodeInstance);
77
+ viewer_shared_node_tree_utils_1.NodeTreeUtils.cloneSkinData(node, nodeInstance);
84
78
  }
85
79
  }
86
- else {
87
- transformationNode.addChild(node);
88
- }
89
- return transformationNode;
90
80
  }
91
- catch (e) {
92
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.DATA_PROCESSING, `DataEngine.loadContent`, e);
81
+ else {
82
+ transformationNode.addChild(node);
93
83
  }
84
+ return transformationNode;
94
85
  });
95
86
  }
96
- };
97
- DataEngine = __decorate([
98
- (0, tsyringe_1.singleton)()
99
- ], DataEngine);
87
+ }
100
88
  exports.DataEngine = DataEngine;
101
89
  //# sourceMappingURL=DataEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataEngine.js","sourceRoot":"","sources":["../src/DataEngine.ts"],"names":[],"mappings":"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"}
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.7.10",
3
+ "version": "2.8.1",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "author": "Michael Oppitz <michael@shapediver.com>",
@@ -40,18 +40,17 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@shapediver/sdk.geometry-api-sdk-v2": "1.3.0",
43
- "@shapediver/viewer.data-engine.geometry-engine": "2.7.10",
44
- "@shapediver/viewer.data-engine.html-element-anchor-engine": "2.7.10",
45
- "@shapediver/viewer.data-engine.material-engine": "2.7.10",
46
- "@shapediver/viewer.data-engine.sdtf-engine": "2.7.10",
47
- "@shapediver/viewer.data-engine.tag3d-engine": "2.7.10",
48
- "@shapediver/viewer.shared.node-tree": "2.7.10",
49
- "@shapediver/viewer.shared.node-tree-utils": "2.7.10",
50
- "@shapediver/viewer.shared.services": "2.7.10",
51
- "@shapediver/viewer.shared.types": "2.7.10",
43
+ "@shapediver/viewer.data-engine.geometry-engine": "2.8.1",
44
+ "@shapediver/viewer.data-engine.html-element-anchor-engine": "2.8.1",
45
+ "@shapediver/viewer.data-engine.material-engine": "2.8.1",
46
+ "@shapediver/viewer.data-engine.sdtf-engine": "2.8.1",
47
+ "@shapediver/viewer.data-engine.tag3d-engine": "2.8.1",
48
+ "@shapediver/viewer.shared.node-tree": "2.8.1",
49
+ "@shapediver/viewer.shared.node-tree-utils": "2.8.1",
50
+ "@shapediver/viewer.shared.services": "2.8.1",
51
+ "@shapediver/viewer.shared.types": "2.8.1",
52
52
  "axios": "^1.2.6",
53
- "gl-matrix": "3.3.0",
54
- "tsyringe": "^4.5.0"
53
+ "gl-matrix": "3.3.0"
55
54
  },
56
- "gitHead": "08d9680d3b199406d1c6bedc8fbeed3d1ad6a385"
55
+ "gitHead": "0ec5dfbaed9b9fd24067bf1d64f1a8a925473034"
57
56
  }
package/src/DataEngine.ts CHANGED
@@ -1,82 +1,83 @@
1
- import { container, singleton } from 'tsyringe'
2
1
  import { CustomData } from '@shapediver/viewer.shared.types'
3
2
  import { GeometryEngine } from '@shapediver/viewer.data-engine.geometry-engine'
4
3
  import { MaterialEngine } from '@shapediver/viewer.data-engine.material-engine'
5
4
  import { SDTFEngine } from '@shapediver/viewer.data-engine.sdtf-engine'
6
5
  import { Tag3dEngine } from '@shapediver/viewer.data-engine.tag3d-engine'
7
6
  import { ITreeNode, TreeNode } from '@shapediver/viewer.shared.node-tree'
8
- import { Logger, LOGGING_TOPIC, ShapeDiverViewerDataProcessingError } from '@shapediver/viewer.shared.services'
7
+ import { Logger, ShapeDiverViewerDataProcessingError } from '@shapediver/viewer.shared.services'
9
8
  import { HTMLElementAnchorEngine } from '@shapediver/viewer.data-engine.html-element-anchor-engine'
10
9
 
11
10
  import { mat4 } from 'gl-matrix'
12
11
  import { ShapeDiverResponseOutputContent } from '@shapediver/sdk.geometry-api-sdk-v2'
13
12
  import { NodeTreeUtils } from '@shapediver/viewer.shared.node-tree-utils'
14
13
 
15
- @singleton()
16
14
  export class DataEngine {
17
- // #region Properties (6)
15
+ // #region Properties (7)
18
16
 
19
- private readonly _geometryEngine: GeometryEngine = <GeometryEngine>container.resolve(GeometryEngine);
20
- private readonly _htmlElementAnchorEngine: HTMLElementAnchorEngine = <HTMLElementAnchorEngine>container.resolve(HTMLElementAnchorEngine);
21
- private readonly _logger: Logger = <Logger>container.resolve(Logger);
22
- private readonly _materialEngine: MaterialEngine = <MaterialEngine>container.resolve(MaterialEngine);
23
- private readonly _sdtfEngine: SDTFEngine = <SDTFEngine>container.resolve(SDTFEngine);
24
- private readonly _tag3dEngine: Tag3dEngine = <Tag3dEngine>container.resolve(Tag3dEngine);
17
+ private readonly _geometryEngine: GeometryEngine = GeometryEngine.instance;
18
+ private readonly _htmlElementAnchorEngine: HTMLElementAnchorEngine = HTMLElementAnchorEngine.instance;
19
+ private readonly _logger: Logger = Logger.instance;
20
+ private readonly _materialEngine: MaterialEngine = MaterialEngine.instance;
21
+ private readonly _sdtfEngine: SDTFEngine = SDTFEngine.instance;
22
+ private readonly _tag3dEngine: Tag3dEngine = Tag3dEngine.instance;
25
23
 
26
- // #endregion Properties (6)
24
+ private static _instance: DataEngine;
25
+
26
+ // #endregion Properties (7)
27
+
28
+ // #region Public Static Accessors (1)
29
+
30
+ public static get instance() {
31
+ return this._instance || (this._instance = new this());
32
+ }
33
+
34
+ // #endregion Public Static Accessors (1)
27
35
 
28
36
  // #region Public Methods (1)
29
37
 
30
38
  public async loadContent(content: ShapeDiverResponseOutputContent, jwtToken?: string): Promise<ITreeNode> {
31
- if (!content || (content && !content.format)) {
32
- const error = new ShapeDiverViewerDataProcessingError('DataEngine cannot load content.');
33
- throw this._logger.handleError(LOGGING_TOPIC.DATA_PROCESSING, `DataEngine.loadContent`, error);
34
- }
39
+ if (!content || (content && !content.format))
40
+ throw new ShapeDiverViewerDataProcessingError('DataEngine cannot load content.');
35
41
 
36
- try {
37
- let node: ITreeNode;
42
+ let node: ITreeNode;
38
43
 
39
- if (content.format === 'glb' || content.format === 'gltf') {
40
- node = await this._geometryEngine.loadContent(content);
41
- } else if (content.format === 'material') {
42
- node = await this._materialEngine.loadContent(content);
43
- } else if (content.format === 'tag2d' || content.format === 'anchor') {
44
- node = await this._htmlElementAnchorEngine.loadContent(content);
45
- } else if (content.format === 'tag3d') {
46
- node = await this._tag3dEngine.loadContent(content);
47
- } else if (content.format === 'sdtf') {
48
- node = await this._sdtfEngine.loadContent(content, jwtToken);
49
- } else {
50
- node = new TreeNode('custom');
51
- node.data.push(new CustomData({ ...content }));
52
- }
44
+ if (content.format === 'glb' || content.format === 'gltf') {
45
+ node = await this._geometryEngine.loadContent(content);
46
+ } else if (content.format === 'material') {
47
+ node = await this._materialEngine.loadContent(content);
48
+ } else if (content.format === 'tag2d' || content.format === 'anchor') {
49
+ node = await this._htmlElementAnchorEngine.loadContent(content);
50
+ } else if (content.format === 'tag3d') {
51
+ node = await this._tag3dEngine.loadContent(content);
52
+ } else if (content.format === 'sdtf') {
53
+ node = await this._sdtfEngine.loadContent(content, jwtToken);
54
+ } else {
55
+ node = new TreeNode('custom');
56
+ node.data.push(new CustomData({ ...content }));
57
+ }
53
58
 
54
- const transformationNode = new TreeNode('transformation');
55
- if (content.transformations && Array.isArray(content.transformations)) {
56
- for (let i = 0; i < content.transformations.length; i++) {
57
- const t = content.transformations[i];
58
- if (Array.isArray(t) && t.length === 16) {
59
- const nodeInstance = node.clone();
60
- nodeInstance.transformations = [{
61
- id: 'content_' + i,
62
- matrix: mat4.fromValues(t[0], t[1], t[2], t[3],
63
- t[4], t[5], t[6], t[7],
64
- t[8], t[9], t[10], t[11],
65
- t[12], t[13], t[14], t[15])
66
- }].concat(node.transformations);
67
- transformationNode.updateVersion()
68
- transformationNode.addChild(nodeInstance)
69
- NodeTreeUtils.cloneSkinData(node, nodeInstance)
70
- }
59
+ const transformationNode = new TreeNode('transformation');
60
+ if (content.transformations && Array.isArray(content.transformations)) {
61
+ for (let i = 0; i < content.transformations.length; i++) {
62
+ const t = content.transformations[i];
63
+ if (Array.isArray(t) && t.length === 16) {
64
+ const nodeInstance = node.clone();
65
+ nodeInstance.transformations = [{
66
+ id: 'content_' + i,
67
+ matrix: mat4.fromValues(t[0], t[1], t[2], t[3],
68
+ t[4], t[5], t[6], t[7],
69
+ t[8], t[9], t[10], t[11],
70
+ t[12], t[13], t[14], t[15])
71
+ }].concat(node.transformations);
72
+ transformationNode.updateVersion()
73
+ transformationNode.addChild(nodeInstance)
74
+ NodeTreeUtils.cloneSkinData(node, nodeInstance)
71
75
  }
72
- } else {
73
- transformationNode.addChild(node)
74
76
  }
75
- return transformationNode;
76
-
77
- } catch (e) {
78
- throw this._logger.handleError(LOGGING_TOPIC.DATA_PROCESSING, `DataEngine.loadContent`, e);
77
+ } else {
78
+ transformationNode.addChild(node)
79
79
  }
80
+ return transformationNode;
80
81
  }
81
82
 
82
83
  // #endregion Public Methods (1)