@combeenation/3d-viewer 14.0.1-rc1 → 14.1.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 (67) hide show
  1. package/README.md +9 -9
  2. package/dist/lib-cjs/buildinfo.json +3 -3
  3. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  4. package/dist/lib-cjs/index.d.ts +51 -62
  5. package/dist/lib-cjs/index.js +84 -94
  6. package/dist/lib-cjs/index.js.map +1 -1
  7. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.d.ts +10 -10
  8. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.js +131 -131
  9. package/dist/lib-cjs/internal/cloning-helper.d.ts +19 -19
  10. package/dist/lib-cjs/internal/cloning-helper.js +163 -163
  11. package/dist/lib-cjs/internal/device-helper.d.ts +9 -9
  12. package/dist/lib-cjs/internal/device-helper.js +24 -24
  13. package/dist/lib-cjs/internal/geometry-helper.d.ts +21 -21
  14. package/dist/lib-cjs/internal/geometry-helper.js +145 -145
  15. package/dist/lib-cjs/internal/metadata-helper.d.ts +26 -26
  16. package/dist/lib-cjs/internal/metadata-helper.js +50 -50
  17. package/dist/lib-cjs/internal/paintable-helper.d.ts +40 -40
  18. package/dist/lib-cjs/internal/paintable-helper.js +286 -286
  19. package/dist/lib-cjs/internal/tags-helper.d.ts +12 -12
  20. package/dist/lib-cjs/internal/tags-helper.js +37 -37
  21. package/dist/lib-cjs/manager/camera-manager.d.ts +110 -110
  22. package/dist/lib-cjs/manager/camera-manager.js +209 -206
  23. package/dist/lib-cjs/manager/camera-manager.js.map +1 -1
  24. package/dist/lib-cjs/manager/debug-manager.d.ts +60 -60
  25. package/dist/lib-cjs/manager/debug-manager.js +217 -217
  26. package/dist/lib-cjs/manager/event-manager.d.ts +52 -52
  27. package/dist/lib-cjs/manager/event-manager.js +71 -71
  28. package/dist/lib-cjs/manager/gltf-export-manager.d.ts +75 -84
  29. package/dist/lib-cjs/manager/gltf-export-manager.js +286 -290
  30. package/dist/lib-cjs/manager/gltf-export-manager.js.map +1 -1
  31. package/dist/lib-cjs/manager/material-manager.d.ts +35 -35
  32. package/dist/lib-cjs/manager/material-manager.js +125 -125
  33. package/dist/lib-cjs/manager/model-manager.d.ts +145 -145
  34. package/dist/lib-cjs/manager/model-manager.js +382 -382
  35. package/dist/lib-cjs/manager/parameter-manager.d.ts +210 -210
  36. package/dist/lib-cjs/manager/parameter-manager.js +514 -514
  37. package/dist/lib-cjs/manager/scene-manager.d.ts +45 -45
  38. package/dist/lib-cjs/manager/scene-manager.js +64 -64
  39. package/dist/lib-cjs/manager/texture-manager.d.ts +12 -12
  40. package/dist/lib-cjs/manager/texture-manager.js +43 -43
  41. package/dist/lib-cjs/viewer-error.d.ts +48 -48
  42. package/dist/lib-cjs/viewer-error.js +60 -60
  43. package/dist/lib-cjs/viewer.d.ts +115 -115
  44. package/dist/lib-cjs/viewer.js +217 -217
  45. package/package.json +91 -91
  46. package/src/buildinfo.json +3 -3
  47. package/src/dev.ts +47 -47
  48. package/src/global-types.d.ts +39 -39
  49. package/src/index.ts +71 -81
  50. package/src/internal/cbn-custom-babylon-loader-plugin.ts +159 -159
  51. package/src/internal/cloning-helper.ts +225 -225
  52. package/src/internal/device-helper.ts +25 -25
  53. package/src/internal/geometry-helper.ts +181 -181
  54. package/src/internal/metadata-helper.ts +63 -63
  55. package/src/internal/paintable-helper.ts +310 -310
  56. package/src/internal/tags-helper.ts +41 -41
  57. package/src/manager/camera-manager.ts +368 -365
  58. package/src/manager/debug-manager.ts +245 -245
  59. package/src/manager/event-manager.ts +72 -72
  60. package/src/manager/gltf-export-manager.ts +356 -357
  61. package/src/manager/material-manager.ts +135 -135
  62. package/src/manager/model-manager.ts +458 -458
  63. package/src/manager/parameter-manager.ts +652 -652
  64. package/src/manager/scene-manager.ts +101 -101
  65. package/src/manager/texture-manager.ts +32 -32
  66. package/src/viewer-error.ts +68 -68
  67. package/src/viewer.ts +290 -290
package/src/dev.ts CHANGED
@@ -1,47 +1,47 @@
1
- import { Viewer } from '.';
2
- import {
3
- afterViewerSetup,
4
- createUIelements,
5
- getDefaultSceneSettings,
6
- getMaterial,
7
- getViewerSettings,
8
- } from '../assets/index';
9
- import { mockMaterials } from '../assets/mock-materials';
10
- import { set } from 'lodash-es';
11
-
12
- document.addEventListener('DOMContentLoaded', main);
13
-
14
- window.Cbn = {
15
- Assets: {
16
- async getMaterial(materialId: string): Promise<object> {
17
- //! this creates a new function on the object that uses the imported function of the same name..
18
- const material = await getMaterial(materialId);
19
- if (material) return material;
20
-
21
- // Fallback to random mock material
22
- return mockMaterials[Math.floor(Math.random() * mockMaterials.length)];
23
- },
24
- assertMaterialExists(materialId: string): boolean {
25
- return true;
26
- },
27
- },
28
- utils: {
29
- Viewer3dHelper: {
30
- getCfgrParentDomElementForInspector(): HTMLElement | undefined {
31
- // render in parent of viewer
32
- return document.querySelector<HTMLElement>('display-container') ?? undefined;
33
- },
34
- },
35
- },
36
- };
37
-
38
- async function main(): Promise<void> {
39
- const canvas = document.getElementById('babylon-canvas') as HTMLCanvasElement;
40
- const viewer = new Viewer(canvas, getViewerSettings(), getDefaultSceneSettings());
41
-
42
- await afterViewerSetup(viewer);
43
- await createUIelements(viewer);
44
-
45
- // "Export" for console testing...
46
- set(window, 'viewer', viewer);
47
- }
1
+ import { Viewer } from '.';
2
+ import {
3
+ afterViewerSetup,
4
+ createUIelements,
5
+ getDefaultSceneSettings,
6
+ getMaterial,
7
+ getViewerSettings,
8
+ } from '../assets/index';
9
+ import { mockMaterials } from '../assets/utils/mock-materials';
10
+ import { set } from 'lodash-es';
11
+
12
+ document.addEventListener('DOMContentLoaded', main);
13
+
14
+ window.Cbn = {
15
+ Assets: {
16
+ async getMaterial(materialId: string): Promise<object> {
17
+ //! this creates a new function on the object that uses the imported function of the same name..
18
+ const material = await getMaterial(materialId);
19
+ if (material) return material;
20
+
21
+ // Fallback to random mock material
22
+ return mockMaterials[Math.floor(Math.random() * mockMaterials.length)];
23
+ },
24
+ assertMaterialExists(materialId: string): boolean {
25
+ return true;
26
+ },
27
+ },
28
+ utils: {
29
+ Viewer3dHelper: {
30
+ getCfgrParentDomElementForInspector(): HTMLElement | undefined {
31
+ // render in parent of viewer
32
+ return document.querySelector<HTMLElement>('display-container') ?? undefined;
33
+ },
34
+ },
35
+ },
36
+ };
37
+
38
+ async function main(): Promise<void> {
39
+ const canvas = document.getElementById('babylon-canvas') as HTMLCanvasElement;
40
+ const viewer = new Viewer(canvas, getViewerSettings(), getDefaultSceneSettings());
41
+
42
+ await afterViewerSetup(viewer);
43
+ await createUIelements(viewer);
44
+
45
+ // "Export" for console testing...
46
+ set(window, 'viewer', viewer);
47
+ }
@@ -1,39 +1,39 @@
1
- /**
2
- * Enhancement of Typescripts default `Partial` typing, which only creates shallow partials
3
- */
4
- type DeepPartial<T> = {
5
- [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];
6
- };
7
-
8
- interface Window {
9
- Cbn:
10
- | undefined /* window.Cbn is only available when viewer runs inside Combeenation configurator */
11
- | {
12
- Assets: {
13
- /**
14
- * Retrieve material definition from configurator.
15
- * Implementation depends on the Combeenation environment the viewer is used in
16
- * - Configurator: Access pre-fetched material JSON objects from Cbn client => synchronous
17
- * - Asset Editor: Load content from material asset on demand => asynchronous!
18
- *
19
- * @return Undefined if no definition for the given material name exists, otherwise an "JSON object" which can
20
- * be passed to `BABYLON.Material.Parse` to create a runtime material object.
21
- */
22
- getMaterial(materialId: string): Promise<object | undefined>;
23
-
24
- /**
25
- * Checks if a definition for a given material name exists in the configurator and issues a warning if not
26
- */
27
- assertMaterialExists(materialId: string): boolean;
28
- };
29
- utils: {
30
- Viewer3dHelper: {
31
- /**
32
- * Returns parent DOM element of a Combeenation configurator, which can be used as root for the inspector.
33
- * Also adjusts styling of some configurator parent sub elements to fix the inspector layout.
34
- */
35
- getCfgrParentDomElementForInspector(): HTMLElement | undefined;
36
- };
37
- };
38
- };
39
- }
1
+ /**
2
+ * Enhancement of Typescripts default `Partial` typing, which only creates shallow partials
3
+ */
4
+ type DeepPartial<T> = {
5
+ [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];
6
+ };
7
+
8
+ interface Window {
9
+ Cbn:
10
+ | undefined /* window.Cbn is only available when viewer runs inside Combeenation configurator */
11
+ | {
12
+ Assets: {
13
+ /**
14
+ * Retrieve material definition from configurator.
15
+ * Implementation depends on the Combeenation environment the viewer is used in
16
+ * - Configurator: Access pre-fetched material JSON objects from Cbn client => synchronous
17
+ * - Asset Editor: Load content from material asset on demand => asynchronous!
18
+ *
19
+ * @return Undefined if no definition for the given material name exists, otherwise an "JSON object" which can
20
+ * be passed to `BABYLON.Material.Parse` to create a runtime material object.
21
+ */
22
+ getMaterial(materialId: string): Promise<object | undefined>;
23
+
24
+ /**
25
+ * Checks if a definition for a given material name exists in the configurator and issues a warning if not
26
+ */
27
+ assertMaterialExists(materialId: string): boolean;
28
+ };
29
+ utils: {
30
+ Viewer3dHelper: {
31
+ /**
32
+ * Returns parent DOM element of a Combeenation configurator, which can be used as root for the inspector.
33
+ * Also adjusts styling of some configurator parent sub elements to fix the inspector layout.
34
+ */
35
+ getCfgrParentDomElementForInspector(): HTMLElement | undefined;
36
+ };
37
+ };
38
+ };
39
+ }
package/src/index.ts CHANGED
@@ -1,81 +1,71 @@
1
- /// <reference path="global-types.d.ts" />
2
- // Babylon.js extensions
3
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression';
4
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat';
5
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior';
6
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness';
7
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen';
8
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular';
9
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_translucency';
10
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission';
11
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit';
12
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants';
13
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu';
14
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform';
15
- import '@babylonjs/serializers/glTF/2.0/Extensions/KHR_texture_transform';
16
-
17
- // Babylon.js modules
18
- // All used Babylyon.js modules should be re-exported here.
19
- // In this way consumers have access to all of them as well via an import of "@combeenation/3d-viewer" instead of having
20
- // to make single imports from "@babylonjs/..."
21
- // When using Babylon.js modules inside the viewer repo make sure to import from the viewer root as well.
22
- // E.g. `import { BaseTexture, Material, Node } from '../index';`
23
- export * from '@babylonjs/core/abstractScene';
24
- export * from '@babylonjs/core/Animations';
25
- export * from '@babylonjs/core/assetContainer';
26
- export * from '@babylonjs/core/Buffers';
27
- export * from '@babylonjs/core/Cameras/arcRotateCamera';
28
- export * from '@babylonjs/core/Cameras/camera';
29
- export * from '@babylonjs/core/Culling';
30
- export * from '@babylonjs/core/Debug/axesViewer';
31
- export * from '@babylonjs/core/Debug/debugLayer';
32
- export * from '@babylonjs/core/Engines/engine';
33
- export * from '@babylonjs/core/Engines/thinEngine';
34
- export * from '@babylonjs/core/Lights';
35
- export * from '@babylonjs/core/Loading';
36
- export * from '@babylonjs/core/Materials/material';
37
- export * from '@babylonjs/core/Materials/PBR';
38
- export * from '@babylonjs/core/Materials/standardMaterial';
39
- export * from '@babylonjs/core/Materials/Textures';
40
- export * from '@babylonjs/core/Maths';
41
- export * from '@babylonjs/core/Meshes/abstractMesh';
42
- export * from '@babylonjs/core/Meshes/geometry';
43
- export * from '@babylonjs/core/Meshes/instancedMesh';
44
- export * from '@babylonjs/core/Meshes/mesh';
45
- export * from '@babylonjs/core/Meshes/meshBuilder';
46
- export * from '@babylonjs/core/Meshes/transformNode';
47
- export * from '@babylonjs/core/Misc/interfaces/screenshotSize';
48
- export * from '@babylonjs/core/Misc/screenshotTools';
49
- export * from '@babylonjs/core/Morph';
50
- export * from '@babylonjs/core/node';
51
- export * from '@babylonjs/core/Rendering/utilityLayerRenderer';
52
- export * from '@babylonjs/core/scene';
53
- export * from '@babylonjs/core/types';
54
- export * from '@babylonjs/loaders/glTF/2.0/glTFLoader';
55
- export * from '@babylonjs/serializers/glTF/2.0/glTFSerializer';
56
-
57
- // Additional Babylon.js modules
58
- // These are not used in the "@combeenation/3d-viewer" repository directly, but required in consuming code for various
59
- // reasons
60
- // for checking camera collions with ground and wall meshes
61
- export * from '@babylonjs/core/Collisions';
62
- // for Scene.createDefaultEnvironment
63
- export * from '@babylonjs/core/Helpers/sceneHelpers';
64
- // support BackgroundMaterial on Combeenation platform
65
- export * from '@babylonjs/core/Materials/Background';
66
- // support NodeMaterial on Combeenation platform
67
- export * from '@babylonjs/core/Materials/Node';
68
-
69
- // Viewer modules
70
- // all viewer modules that are not located in "internal" should be exported from here
71
- export * from './viewer';
72
- export * from './viewer-error';
73
- export * from './manager/camera-manager';
74
- export * from './manager/debug-manager';
75
- export * from './manager/event-manager';
76
- export * from './manager/gltf-export-manager';
77
- export * from './manager/material-manager';
78
- export * from './manager/model-manager';
79
- export * from './manager/parameter-manager';
80
- export * from './manager/scene-manager';
81
- export * from './manager/texture-manager';
1
+ /// <reference path="global-types.d.ts" />
2
+ // Babylon.js extensions
3
+ // All gltf extensions to support maximum feature set
4
+ import '@babylonjs/loaders/glTF/2.0/Extensions';
5
+ import '@babylonjs/serializers/glTF/2.0/Extensions';
6
+
7
+ // Babylon.js modules
8
+ // All used Babylyon.js modules should be re-exported here.
9
+ // In this way consumers have access to all of them as well via an import of "@combeenation/3d-viewer" instead of having
10
+ // to make single imports from "@babylonjs/..."
11
+ // When using Babylon.js modules inside the viewer repo make sure to import from the viewer root as well.
12
+ // E.g. `import { BaseTexture, Material, Node } from '../index';`
13
+ export * from '@babylonjs/core/abstractScene';
14
+ export * from '@babylonjs/core/Animations';
15
+ export * from '@babylonjs/core/assetContainer';
16
+ export * from '@babylonjs/core/Buffers';
17
+ export * from '@babylonjs/core/Cameras/arcRotateCamera';
18
+ export * from '@babylonjs/core/Cameras/camera';
19
+ export * from '@babylonjs/core/Culling';
20
+ export * from '@babylonjs/core/Debug/axesViewer';
21
+ export * from '@babylonjs/core/Debug/debugLayer';
22
+ export * from '@babylonjs/core/Engines/engine';
23
+ export * from '@babylonjs/core/Engines/thinEngine';
24
+ export * from '@babylonjs/core/Lights';
25
+ export * from '@babylonjs/core/Loading';
26
+ export * from '@babylonjs/core/Materials/material';
27
+ export * from '@babylonjs/core/Materials/PBR';
28
+ export * from '@babylonjs/core/Materials/standardMaterial';
29
+ export * from '@babylonjs/core/Materials/Textures';
30
+ export * from '@babylonjs/core/Maths';
31
+ export * from '@babylonjs/core/Meshes/abstractMesh';
32
+ export * from '@babylonjs/core/Meshes/geometry';
33
+ export * from '@babylonjs/core/Meshes/instancedMesh';
34
+ export * from '@babylonjs/core/Meshes/mesh';
35
+ export * from '@babylonjs/core/Meshes/meshBuilder';
36
+ export * from '@babylonjs/core/Meshes/transformNode';
37
+ export * from '@babylonjs/core/Misc/interfaces/screenshotSize';
38
+ export * from '@babylonjs/core/Misc/screenshotTools';
39
+ export * from '@babylonjs/core/Morph';
40
+ export * from '@babylonjs/core/node';
41
+ export * from '@babylonjs/core/Rendering/utilityLayerRenderer';
42
+ export * from '@babylonjs/core/scene';
43
+ export * from '@babylonjs/core/types';
44
+ export * from '@babylonjs/loaders/glTF/2.0/glTFLoader';
45
+ export * from '@babylonjs/serializers/glTF/2.0/glTFSerializer';
46
+
47
+ // Additional Babylon.js modules
48
+ // These are not used in the "@combeenation/3d-viewer" repository directly, but required in consuming code for various
49
+ // reasons
50
+ // for checking camera collions with ground and wall meshes
51
+ export * from '@babylonjs/core/Collisions';
52
+ // for Scene.createDefaultEnvironment
53
+ export * from '@babylonjs/core/Helpers/sceneHelpers';
54
+ // support BackgroundMaterial on Combeenation platform
55
+ export * from '@babylonjs/core/Materials/Background';
56
+ // support NodeMaterial on Combeenation platform
57
+ export * from '@babylonjs/core/Materials/Node';
58
+
59
+ // Viewer modules
60
+ // all viewer modules that are not located in "internal" should be exported from here
61
+ export * from './viewer';
62
+ export * from './viewer-error';
63
+ export * from './manager/camera-manager';
64
+ export * from './manager/debug-manager';
65
+ export * from './manager/event-manager';
66
+ export * from './manager/gltf-export-manager';
67
+ export * from './manager/material-manager';
68
+ export * from './manager/model-manager';
69
+ export * from './manager/parameter-manager';
70
+ export * from './manager/scene-manager';
71
+ export * from './manager/texture-manager';