@shapediver/viewer.data-engine.geometry-engine 2.10.0 → 2.11.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.
Files changed (34) hide show
  1. package/dist/GeometryEngine.d.ts.map +1 -1
  2. package/dist/GeometryEngine.js +18 -14
  3. package/dist/GeometryEngine.js.map +1 -1
  4. package/dist/gltfv1/GLTFLoader.d.ts.map +1 -1
  5. package/dist/gltfv1/GLTFLoader.js +53 -49
  6. package/dist/gltfv1/GLTFLoader.js.map +1 -1
  7. package/dist/gltfv1/SDGTFLoader.js +98 -94
  8. package/dist/gltfv1/SDGTFLoader.js.map +1 -1
  9. package/dist/gltfv2/GLTFLoader.d.ts +2 -2
  10. package/dist/gltfv2/GLTFLoader.d.ts.map +1 -1
  11. package/dist/gltfv2/GLTFLoader.js +67 -63
  12. package/dist/gltfv2/GLTFLoader.js.map +1 -1
  13. package/dist/gltfv2/loaders/AccessorLoader.js +15 -11
  14. package/dist/gltfv2/loaders/AccessorLoader.js.map +1 -1
  15. package/dist/gltfv2/loaders/BufferLoader.d.ts.map +1 -1
  16. package/dist/gltfv2/loaders/BufferLoader.js +10 -6
  17. package/dist/gltfv2/loaders/BufferLoader.js.map +1 -1
  18. package/dist/gltfv2/loaders/BufferViewLoader.js +5 -1
  19. package/dist/gltfv2/loaders/BufferViewLoader.js.map +1 -1
  20. package/dist/gltfv2/loaders/GeometryLoader.js +19 -15
  21. package/dist/gltfv2/loaders/GeometryLoader.js.map +1 -1
  22. package/dist/gltfv2/loaders/MaterialLoader.js +55 -51
  23. package/dist/gltfv2/loaders/MaterialLoader.js.map +1 -1
  24. package/dist/gltfv2/loaders/TextureLoader.d.ts.map +1 -1
  25. package/dist/gltfv2/loaders/TextureLoader.js +20 -18
  26. package/dist/gltfv2/loaders/TextureLoader.js.map +1 -1
  27. package/dist/index.js +5 -2
  28. package/dist/index.js.map +1 -1
  29. package/package.json +10 -10
  30. package/src/GeometryEngine.ts +29 -29
  31. package/src/gltfv1/GLTFLoader.ts +31 -31
  32. package/src/gltfv2/GLTFLoader.ts +66 -66
  33. package/src/gltfv2/loaders/BufferLoader.ts +10 -10
  34. package/src/gltfv2/loaders/TextureLoader.ts +24 -25
@@ -1,5 +1,5 @@
1
- import { IGLTF_v2 } from '@shapediver/viewer.data-engine.shared-types'
2
- import { HttpClient } from '@shapediver/viewer.shared.services'
1
+ import { IGLTF_v2 } from '@shapediver/viewer.data-engine.shared-types';
2
+ import { HttpClient, HttpResponse } from '@shapediver/viewer.shared.services';
3
3
 
4
4
  export class BufferLoader {
5
5
  // #region Properties (2)
@@ -21,16 +21,16 @@ export class BufferLoader {
21
21
  // #region Public Methods (2)
22
22
 
23
23
  public getBuffer(bufferId: number): ArrayBuffer {
24
- if (!this._content.buffers) throw new Error('BufferLoader.getBuffer: Buffers not available.')
25
- if (!this._content.buffers[bufferId]) throw new Error('BufferLoader.getBuffer: Buffer not available.')
26
- if (!this._loaded[bufferId]) throw new Error('BufferLoader.getBuffer: Buffer not loaded.')
24
+ if (!this._content.buffers) throw new Error('BufferLoader.getBuffer: Buffers not available.');
25
+ if (!this._content.buffers[bufferId]) throw new Error('BufferLoader.getBuffer: Buffer not available.');
26
+ if (!this._loaded[bufferId]) throw new Error('BufferLoader.getBuffer: Buffer not loaded.');
27
27
  return this._loaded[bufferId];
28
28
  }
29
29
 
30
30
  public async load(): Promise<void> {
31
31
  if (!this._content.buffers) return;
32
32
 
33
- let promises: Promise<void>[] = [];
33
+ const promises: Promise<void>[] = [];
34
34
 
35
35
  for (let i = 0; i < this._content.buffers.length; i++) {
36
36
  const bufferId = i;
@@ -42,7 +42,7 @@ export class BufferLoader {
42
42
 
43
43
  // If present, GLB container is required to be the first buffer.
44
44
  if (buffer.uri === undefined && bufferId === 0) {
45
- if (!this._body) throw new Error(`BufferLoader.load: Buffer not available.`);
45
+ if (!this._body) throw new Error('BufferLoader.load: Buffer not available.');
46
46
  this._loaded[bufferId] = this._body;
47
47
  return;
48
48
  }
@@ -63,10 +63,10 @@ export class BufferLoader {
63
63
  }
64
64
  this._loaded[bufferId] = view.buffer;
65
65
  } else {
66
- let httpResultPromise = this._httpClient.get(this._baseUri + '/' + buffer.uri!, {
66
+ const httpResultPromise = (this._httpClient.get(this._baseUri + '/' + buffer.uri!, {
67
67
  responseType: 'arraybuffer'
68
- }).then(response => { this._loaded[bufferId] = response.data; });
69
- promises.push(httpResultPromise)
68
+ }) as Promise<HttpResponse<ArrayBuffer>>).then(response => { this._loaded[bufferId] = response.data; });
69
+ promises.push(httpResultPromise);
70
70
  }
71
71
  }
72
72
  await Promise.all(promises);
@@ -1,10 +1,10 @@
1
- import { IGLTF_v2 } from '@shapediver/viewer.data-engine.shared-types'
2
- import { Converter, HttpClient } from '@shapediver/viewer.shared.services'
1
+ import { IGLTF_v2 } from '@shapediver/viewer.data-engine.shared-types';
2
+ import { Converter, HttpClient } from '@shapediver/viewer.shared.services';
3
3
 
4
- import { BufferViewLoader } from './BufferViewLoader'
4
+ import { BufferViewLoader } from './BufferViewLoader';
5
5
 
6
6
  export class TextureLoader {
7
- // #region Properties (4)
7
+ // #region Properties (3)
8
8
 
9
9
  private readonly _converter: Converter = Converter.instance;
10
10
  private readonly _httpClient: HttpClient = HttpClient.instance;
@@ -13,7 +13,7 @@ export class TextureLoader {
13
13
  [key: string]: HTMLImageElement
14
14
  } = {};
15
15
 
16
- // #endregion Properties (4)
16
+ // #endregion Properties (3)
17
17
 
18
18
  // #region Constructors (1)
19
19
 
@@ -24,45 +24,45 @@ export class TextureLoader {
24
24
  // #region Public Methods (2)
25
25
 
26
26
  public getTexture(textureId: number): HTMLImageElement {
27
- if (!this._content.textures) throw new Error('TextureLoader.getTexture: Textures not available.')
28
- if (!this._content.textures[textureId]) throw new Error('TextureLoader.getTexture: Texture not available.')
29
- if (!this._loaded[textureId]) throw new Error('TextureLoader.getTexture: Texture not loaded.')
27
+ if (!this._content.textures) throw new Error('TextureLoader.getTexture: Textures not available.');
28
+ if (!this._content.textures[textureId]) throw new Error('TextureLoader.getTexture: Texture not available.');
29
+ if (!this._loaded[textureId]) throw new Error('TextureLoader.getTexture: Texture not loaded.');
30
30
  return this._loaded[textureId];
31
31
  }
32
32
 
33
33
  public async load(): Promise<void> {
34
34
  if (!this._content.textures) return;
35
35
 
36
- let promises: Promise<void>[] = [];
37
- for(let i = 0; i < this._content.textures.length; i++) {
36
+ const promises: Promise<void>[] = [];
37
+ for (let i = 0; i < this._content.textures.length; i++) {
38
38
  const textureId = i;
39
39
  const texture = this._content.textures[textureId];
40
- if (!this._content.images) throw new Error('TextureLoader.load: Images not available.')
40
+ if (!this._content.images) throw new Error('TextureLoader.load: Images not available.');
41
41
  const image = this._content.images[texture.source];
42
-
42
+
43
43
  const DATA_URI_REGEX = /^data:(.*?)(;base64)?,(.*)$/;
44
44
  const HTTPS_URI_REGEX = /^https:\/\//;
45
-
45
+
46
46
  if (image.bufferView !== undefined) {
47
47
  const bufferView = this._bufferViewLoader.getBufferView(image.bufferView);
48
48
  const dataView = new DataView(bufferView);
49
49
  const array: Array<number> = [];
50
50
  for (let i = 0; i < dataView.byteLength; i += 1)
51
51
  array[i] = dataView.getUint8(i);
52
-
52
+
53
53
  const blob = new Blob([new Uint8Array(array)], { type: image.mimeType });
54
54
  const dataUri = URL.createObjectURL(blob);
55
-
55
+
56
56
  promises.push(
57
57
  new Promise<void>((resolve, reject) => {
58
58
  this._httpClient.loadTexture(dataUri)
59
59
  .then(response => {
60
- this._converter.responseToImage(response).then(img => {
61
- this._loaded[textureId] = img;
62
- URL.revokeObjectURL(dataUri)
63
- resolve()
64
- }).catch(e => reject(e));
60
+ this._loaded[textureId] = response.data;
61
+ URL.revokeObjectURL(dataUri);
62
+ resolve();
63
+
65
64
  })
65
+ .catch(e => reject(e));
66
66
  })
67
67
  );
68
68
  } else {
@@ -71,11 +71,10 @@ export class TextureLoader {
71
71
  new Promise<void>((resolve, reject) => {
72
72
  this._httpClient.loadTexture(url!)
73
73
  .then(response => {
74
- this._converter.responseToImage(response).then(img => {
75
- this._loaded[textureId] = img;
76
- resolve()
77
- });
78
- }).catch(e => reject(e));
74
+ this._loaded[textureId] = response.data;
75
+ resolve();
76
+ })
77
+ .catch(e => reject(e));
79
78
  })
80
79
  );
81
80
  }