@combeenation/3d-viewer 12.4.1 → 13.0.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.
Files changed (213) hide show
  1. package/dist/lib-cjs/buildinfo.json +1 -1
  2. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  3. package/dist/lib-cjs/index.d.ts +63 -63
  4. package/dist/lib-cjs/index.js +81 -114
  5. package/dist/lib-cjs/index.js.map +1 -1
  6. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.d.ts +10 -0
  7. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.js +132 -0
  8. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.js.map +1 -0
  9. package/dist/lib-cjs/internal/cloning-helper.d.ts +19 -0
  10. package/dist/lib-cjs/internal/cloning-helper.js +164 -0
  11. package/dist/lib-cjs/internal/cloning-helper.js.map +1 -0
  12. package/dist/lib-cjs/internal/device-helper.d.ts +9 -0
  13. package/dist/lib-cjs/{api/util/deviceHelper.js → internal/device-helper.js} +7 -11
  14. package/dist/lib-cjs/internal/device-helper.js.map +1 -0
  15. package/dist/lib-cjs/internal/geometry-helper.d.ts +21 -0
  16. package/dist/lib-cjs/{api/util/geometryHelper.js → internal/geometry-helper.js} +58 -25
  17. package/dist/lib-cjs/internal/geometry-helper.js.map +1 -0
  18. package/dist/lib-cjs/internal/metadata-helper.d.ts +26 -0
  19. package/dist/lib-cjs/internal/metadata-helper.js +51 -0
  20. package/dist/lib-cjs/internal/metadata-helper.js.map +1 -0
  21. package/dist/lib-cjs/internal/paintable-helper.d.ts +40 -0
  22. package/dist/lib-cjs/internal/paintable-helper.js +287 -0
  23. package/dist/lib-cjs/internal/paintable-helper.js.map +1 -0
  24. package/dist/lib-cjs/internal/tags-helper.d.ts +12 -0
  25. package/dist/lib-cjs/internal/tags-helper.js +38 -0
  26. package/dist/lib-cjs/internal/tags-helper.js.map +1 -0
  27. package/dist/lib-cjs/manager/camera-manager.d.ts +51 -0
  28. package/dist/lib-cjs/manager/camera-manager.js +154 -0
  29. package/dist/lib-cjs/manager/camera-manager.js.map +1 -0
  30. package/dist/lib-cjs/manager/debug-manager.d.ts +60 -0
  31. package/dist/lib-cjs/manager/debug-manager.js +218 -0
  32. package/dist/lib-cjs/manager/debug-manager.js.map +1 -0
  33. package/dist/lib-cjs/manager/event-manager.d.ts +52 -0
  34. package/dist/lib-cjs/manager/event-manager.js +72 -0
  35. package/dist/lib-cjs/manager/event-manager.js.map +1 -0
  36. package/dist/lib-cjs/{api/manager/gltfExportManager.d.ts → manager/gltf-export-manager.d.ts} +29 -34
  37. package/dist/lib-cjs/{api/manager/gltfExportManager.js → manager/gltf-export-manager.js} +103 -124
  38. package/dist/lib-cjs/manager/gltf-export-manager.js.map +1 -0
  39. package/dist/lib-cjs/manager/material-manager.d.ts +35 -0
  40. package/dist/lib-cjs/manager/material-manager.js +126 -0
  41. package/dist/lib-cjs/manager/material-manager.js.map +1 -0
  42. package/dist/lib-cjs/manager/model-manager.d.ts +145 -0
  43. package/dist/lib-cjs/manager/model-manager.js +383 -0
  44. package/dist/lib-cjs/manager/model-manager.js.map +1 -0
  45. package/dist/lib-cjs/manager/parameter-manager.d.ts +210 -0
  46. package/dist/lib-cjs/manager/parameter-manager.js +515 -0
  47. package/dist/lib-cjs/manager/parameter-manager.js.map +1 -0
  48. package/dist/lib-cjs/manager/scene-manager.d.ts +45 -0
  49. package/dist/lib-cjs/manager/scene-manager.js +65 -0
  50. package/dist/lib-cjs/manager/scene-manager.js.map +1 -0
  51. package/dist/lib-cjs/manager/screenshot-manager.d.ts +36 -0
  52. package/dist/lib-cjs/manager/screenshot-manager.js +40 -0
  53. package/dist/lib-cjs/manager/screenshot-manager.js.map +1 -0
  54. package/dist/lib-cjs/manager/texture-manager.d.ts +12 -0
  55. package/dist/lib-cjs/manager/texture-manager.js +44 -0
  56. package/dist/lib-cjs/manager/texture-manager.js.map +1 -0
  57. package/dist/lib-cjs/{api/classes/viewerError.d.ts → viewer-error.d.ts} +6 -1
  58. package/dist/lib-cjs/{api/classes/viewerError.js → viewer-error.js} +7 -2
  59. package/dist/lib-cjs/viewer-error.js.map +1 -0
  60. package/dist/lib-cjs/viewer.d.ts +117 -0
  61. package/dist/lib-cjs/viewer.js +222 -0
  62. package/dist/lib-cjs/viewer.js.map +1 -0
  63. package/package.json +10 -11
  64. package/src/dev.ts +14 -37
  65. package/src/{types.d.ts → global-types.d.ts} +8 -18
  66. package/src/index.ts +79 -113
  67. package/src/internal/cbn-custom-babylon-loader-plugin.ts +159 -0
  68. package/src/internal/cloning-helper.ts +225 -0
  69. package/src/internal/device-helper.ts +25 -0
  70. package/src/{api/util/geometryHelper.ts → internal/geometry-helper.ts} +63 -24
  71. package/src/internal/metadata-helper.ts +63 -0
  72. package/src/internal/paintable-helper.ts +310 -0
  73. package/src/internal/tags-helper.ts +41 -0
  74. package/src/manager/camera-manager.ts +236 -0
  75. package/src/manager/debug-manager.ts +245 -0
  76. package/src/manager/event-manager.ts +72 -0
  77. package/src/{api/manager/gltfExportManager.ts → manager/gltf-export-manager.ts} +132 -125
  78. package/src/manager/material-manager.ts +135 -0
  79. package/src/manager/model-manager.ts +458 -0
  80. package/src/manager/parameter-manager.ts +652 -0
  81. package/src/manager/scene-manager.ts +101 -0
  82. package/src/manager/screenshot-manager.ts +59 -0
  83. package/src/manager/texture-manager.ts +32 -0
  84. package/src/{api/classes/viewerError.ts → viewer-error.ts} +6 -1
  85. package/src/viewer.ts +296 -0
  86. package/dist/lib-cjs/api/classes/animationInterface.d.ts +0 -8
  87. package/dist/lib-cjs/api/classes/animationInterface.js +0 -3
  88. package/dist/lib-cjs/api/classes/animationInterface.js.map +0 -1
  89. package/dist/lib-cjs/api/classes/dottedPath.d.ts +0 -79
  90. package/dist/lib-cjs/api/classes/dottedPath.js +0 -167
  91. package/dist/lib-cjs/api/classes/dottedPath.js.map +0 -1
  92. package/dist/lib-cjs/api/classes/element.d.ts +0 -153
  93. package/dist/lib-cjs/api/classes/element.js +0 -703
  94. package/dist/lib-cjs/api/classes/element.js.map +0 -1
  95. package/dist/lib-cjs/api/classes/event.d.ts +0 -401
  96. package/dist/lib-cjs/api/classes/event.js +0 -425
  97. package/dist/lib-cjs/api/classes/event.js.map +0 -1
  98. package/dist/lib-cjs/api/classes/eventBroadcaster.d.ts +0 -26
  99. package/dist/lib-cjs/api/classes/eventBroadcaster.js +0 -50
  100. package/dist/lib-cjs/api/classes/eventBroadcaster.js.map +0 -1
  101. package/dist/lib-cjs/api/classes/fuzzyMap.d.ts +0 -7
  102. package/dist/lib-cjs/api/classes/fuzzyMap.js +0 -22
  103. package/dist/lib-cjs/api/classes/fuzzyMap.js.map +0 -1
  104. package/dist/lib-cjs/api/classes/parameter.d.ts +0 -410
  105. package/dist/lib-cjs/api/classes/parameter.js +0 -643
  106. package/dist/lib-cjs/api/classes/parameter.js.map +0 -1
  107. package/dist/lib-cjs/api/classes/parameterObservable.d.ts +0 -36
  108. package/dist/lib-cjs/api/classes/parameterObservable.js +0 -73
  109. package/dist/lib-cjs/api/classes/parameterObservable.js.map +0 -1
  110. package/dist/lib-cjs/api/classes/parameterizable.d.ts +0 -15
  111. package/dist/lib-cjs/api/classes/parameterizable.js +0 -103
  112. package/dist/lib-cjs/api/classes/parameterizable.js.map +0 -1
  113. package/dist/lib-cjs/api/classes/placementAnimation.d.ts +0 -45
  114. package/dist/lib-cjs/api/classes/placementAnimation.js +0 -177
  115. package/dist/lib-cjs/api/classes/placementAnimation.js.map +0 -1
  116. package/dist/lib-cjs/api/classes/variant.d.ts +0 -261
  117. package/dist/lib-cjs/api/classes/variant.js +0 -873
  118. package/dist/lib-cjs/api/classes/variant.js.map +0 -1
  119. package/dist/lib-cjs/api/classes/variantInstance.d.ts +0 -53
  120. package/dist/lib-cjs/api/classes/variantInstance.js +0 -126
  121. package/dist/lib-cjs/api/classes/variantInstance.js.map +0 -1
  122. package/dist/lib-cjs/api/classes/variantParameterizable.d.ts +0 -17
  123. package/dist/lib-cjs/api/classes/variantParameterizable.js +0 -87
  124. package/dist/lib-cjs/api/classes/variantParameterizable.js.map +0 -1
  125. package/dist/lib-cjs/api/classes/viewer.d.ts +0 -215
  126. package/dist/lib-cjs/api/classes/viewer.js +0 -709
  127. package/dist/lib-cjs/api/classes/viewer.js.map +0 -1
  128. package/dist/lib-cjs/api/classes/viewerError.js.map +0 -1
  129. package/dist/lib-cjs/api/classes/viewerLight.d.ts +0 -66
  130. package/dist/lib-cjs/api/classes/viewerLight.js +0 -345
  131. package/dist/lib-cjs/api/classes/viewerLight.js.map +0 -1
  132. package/dist/lib-cjs/api/internal/lensRendering.d.ts +0 -8
  133. package/dist/lib-cjs/api/internal/lensRendering.js +0 -12
  134. package/dist/lib-cjs/api/internal/lensRendering.js.map +0 -1
  135. package/dist/lib-cjs/api/internal/sceneSetup.d.ts +0 -13
  136. package/dist/lib-cjs/api/internal/sceneSetup.js +0 -228
  137. package/dist/lib-cjs/api/internal/sceneSetup.js.map +0 -1
  138. package/dist/lib-cjs/api/manager/animationManager.d.ts +0 -30
  139. package/dist/lib-cjs/api/manager/animationManager.js +0 -127
  140. package/dist/lib-cjs/api/manager/animationManager.js.map +0 -1
  141. package/dist/lib-cjs/api/manager/gltfExportManager.js.map +0 -1
  142. package/dist/lib-cjs/api/manager/sceneManager.d.ts +0 -33
  143. package/dist/lib-cjs/api/manager/sceneManager.js +0 -129
  144. package/dist/lib-cjs/api/manager/sceneManager.js.map +0 -1
  145. package/dist/lib-cjs/api/manager/tagManager.d.ts +0 -118
  146. package/dist/lib-cjs/api/manager/tagManager.js +0 -531
  147. package/dist/lib-cjs/api/manager/tagManager.js.map +0 -1
  148. package/dist/lib-cjs/api/manager/textureLoadManager.d.ts +0 -22
  149. package/dist/lib-cjs/api/manager/textureLoadManager.js +0 -108
  150. package/dist/lib-cjs/api/manager/textureLoadManager.js.map +0 -1
  151. package/dist/lib-cjs/api/manager/variantInstanceManager.d.ts +0 -106
  152. package/dist/lib-cjs/api/manager/variantInstanceManager.js +0 -291
  153. package/dist/lib-cjs/api/manager/variantInstanceManager.js.map +0 -1
  154. package/dist/lib-cjs/api/store/specStorage.d.ts +0 -32
  155. package/dist/lib-cjs/api/store/specStorage.js +0 -66
  156. package/dist/lib-cjs/api/store/specStorage.js.map +0 -1
  157. package/dist/lib-cjs/api/util/babylonHelper.d.ts +0 -238
  158. package/dist/lib-cjs/api/util/babylonHelper.js +0 -826
  159. package/dist/lib-cjs/api/util/babylonHelper.js.map +0 -1
  160. package/dist/lib-cjs/api/util/debugHelper.d.ts +0 -9
  161. package/dist/lib-cjs/api/util/debugHelper.js +0 -94
  162. package/dist/lib-cjs/api/util/debugHelper.js.map +0 -1
  163. package/dist/lib-cjs/api/util/deviceHelper.d.ts +0 -9
  164. package/dist/lib-cjs/api/util/deviceHelper.js.map +0 -1
  165. package/dist/lib-cjs/api/util/geometryHelper.d.ts +0 -17
  166. package/dist/lib-cjs/api/util/geometryHelper.js.map +0 -1
  167. package/dist/lib-cjs/api/util/globalTypes.d.ts +0 -490
  168. package/dist/lib-cjs/api/util/globalTypes.js +0 -2
  169. package/dist/lib-cjs/api/util/globalTypes.js.map +0 -1
  170. package/dist/lib-cjs/api/util/resourceHelper.d.ts +0 -58
  171. package/dist/lib-cjs/api/util/resourceHelper.js +0 -215
  172. package/dist/lib-cjs/api/util/resourceHelper.js.map +0 -1
  173. package/dist/lib-cjs/api/util/sceneLoaderHelper.d.ts +0 -58
  174. package/dist/lib-cjs/api/util/sceneLoaderHelper.js +0 -229
  175. package/dist/lib-cjs/api/util/sceneLoaderHelper.js.map +0 -1
  176. package/dist/lib-cjs/api/util/stringHelper.d.ts +0 -13
  177. package/dist/lib-cjs/api/util/stringHelper.js +0 -33
  178. package/dist/lib-cjs/api/util/stringHelper.js.map +0 -1
  179. package/dist/lib-cjs/api/util/structureHelper.d.ts +0 -9
  180. package/dist/lib-cjs/api/util/structureHelper.js +0 -58
  181. package/dist/lib-cjs/api/util/structureHelper.js.map +0 -1
  182. package/src/api/classes/animationInterface.ts +0 -10
  183. package/src/api/classes/dottedPath.ts +0 -181
  184. package/src/api/classes/element.ts +0 -766
  185. package/src/api/classes/event.ts +0 -457
  186. package/src/api/classes/eventBroadcaster.ts +0 -52
  187. package/src/api/classes/fuzzyMap.ts +0 -21
  188. package/src/api/classes/parameter.ts +0 -686
  189. package/src/api/classes/parameterObservable.ts +0 -73
  190. package/src/api/classes/parameterizable.ts +0 -87
  191. package/src/api/classes/placementAnimation.ts +0 -162
  192. package/src/api/classes/variant.ts +0 -965
  193. package/src/api/classes/variantInstance.ts +0 -123
  194. package/src/api/classes/variantParameterizable.ts +0 -83
  195. package/src/api/classes/viewer.ts +0 -751
  196. package/src/api/classes/viewerLight.ts +0 -335
  197. package/src/api/internal/debugViewer.ts +0 -90
  198. package/src/api/internal/lensRendering.ts +0 -9
  199. package/src/api/internal/sceneSetup.ts +0 -208
  200. package/src/api/manager/animationManager.ts +0 -143
  201. package/src/api/manager/sceneManager.ts +0 -134
  202. package/src/api/manager/tagManager.ts +0 -572
  203. package/src/api/manager/textureLoadManager.ts +0 -107
  204. package/src/api/manager/variantInstanceManager.ts +0 -306
  205. package/src/api/store/specStorage.ts +0 -68
  206. package/src/api/util/babylonHelper.ts +0 -915
  207. package/src/api/util/debugHelper.ts +0 -121
  208. package/src/api/util/deviceHelper.ts +0 -31
  209. package/src/api/util/globalTypes.ts +0 -566
  210. package/src/api/util/resourceHelper.ts +0 -201
  211. package/src/api/util/sceneLoaderHelper.ts +0 -247
  212. package/src/api/util/stringHelper.ts +0 -30
  213. package/src/api/util/structureHelper.ts +0 -62
@@ -1,63 +1,63 @@
1
- /// <reference path="api/util/globalTypes.d.ts" />
2
- /// <reference path="../../src/types.d.ts" />
3
- import { AnimationInterface } from './api/classes/animationInterface';
4
- import { Element } from './api/classes/element';
5
- import { Event, emitter } from './api/classes/event';
6
- import { EventBroadcaster } from './api/classes/eventBroadcaster';
7
- import { Parameter } from './api/classes/parameter';
8
- import { ParameterObservable } from './api/classes/parameterObservable';
9
- import { Parameterizable } from './api/classes/parameterizable';
10
- import { PlacementAnimation } from './api/classes/placementAnimation';
11
- import { Variant } from './api/classes/variant';
12
- import { VariantInstance } from './api/classes/variantInstance';
13
- import { VariantParameterizable } from './api/classes/variantParameterizable';
14
- import { Viewer } from './api/classes/viewer';
15
- import { ViewerError, ViewerErrorIds } from './api/classes/viewerError';
16
- import { ViewerLight } from './api/classes/viewerLight';
17
- import { AnimationManager } from './api/manager/animationManager';
18
- import { GltfExportManager } from './api/manager/gltfExportManager';
19
- import { SceneManager } from './api/manager/sceneManager';
20
- import { TagManager } from './api/manager/tagManager';
21
- import { VariantInstanceManager } from './api/manager/variantInstanceManager';
22
- import { SpecStorage } from './api/store/specStorage';
23
- import * as BabylonHelper from './api/util/babylonHelper';
24
- import { Animation as BabylonAnimation } from '@babylonjs/core/Animations/animation';
25
- import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera';
26
- import { Engine } from '@babylonjs/core/Engines/engine';
27
- import { DirectionalLight } from '@babylonjs/core/Lights/directionalLight';
28
- import { HemisphericLight } from '@babylonjs/core/Lights/hemisphericLight';
29
- import { BackgroundMaterial } from '@babylonjs/core/Materials/Background/backgroundMaterial';
30
- import { NodeMaterial } from '@babylonjs/core/Materials/Node';
31
- /**
32
- * Importing from .../PBR covers all PBR material types, also the deprecated ones like `PBRMetallicRoughnessMaterial`.
33
- * In this way we can also load models which contain these PBR materials.
34
- * Still we only actively use `PBRMaterial` in the viewer code base and we also only want to expose this one to the
35
- * consumer.
36
- */
37
- import { PBRMaterial } from '@babylonjs/core/Materials/PBR';
38
- /**
39
- * Same story as for PBR materials, we want to support also textures but only want to expose a few of them
40
- */
41
- import { CubeTexture, DynamicTexture, Texture } from '@babylonjs/core/Materials/Textures';
42
- import { Material } from '@babylonjs/core/Materials/material';
43
- import { StandardMaterial } from '@babylonjs/core/Materials/standardMaterial';
44
- import { Color3, Color4 } from '@babylonjs/core/Maths/math.color';
45
- import { Vector3 } from '@babylonjs/core/Maths/math.vector';
46
- import { AbstractMesh } from '@babylonjs/core/Meshes/abstractMesh';
47
- import { InstancedMesh } from '@babylonjs/core/Meshes/instancedMesh';
48
- import { Mesh } from '@babylonjs/core/Meshes/mesh';
49
- import { MeshBuilder } from '@babylonjs/core/Meshes/meshBuilder';
50
- import { TransformNode } from '@babylonjs/core/Meshes/transformNode';
51
- /**
52
- * Without explicitly importing the "BoundingBoxRenderer", we're getting "scene.getBoundingBoxRenderer is undefined"
53
- * errors when creating HighlightLayer instances. Not sure why but those errors only happen when using the built
54
- * version of the viewer (e.g. when pulling it from NPM etc.)...
55
- */
56
- import '@babylonjs/core/Rendering/boundingBoxRenderer';
57
- import { Node } from '@babylonjs/core/node';
58
- import { Scene } from '@babylonjs/core/scene';
59
- import { EventEmitter } from 'eventemitter3';
60
- /**
61
- * Expose some frequently used babylon modules by our consumers.
62
- */
63
- export { AnimationManager, AnimationInterface, Variant, VariantInstanceManager, Viewer, ParameterObservable, Parameterizable, VariantParameterizable, ViewerLight, emitter as Emitter, EventEmitter, Event, Parameter, VariantInstance, Color3, Color4, Vector3, AbstractMesh, InstancedMesh, Mesh, TransformNode, Node, Material, PBRMaterial, StandardMaterial, NodeMaterial, BackgroundMaterial, Scene, Engine, ArcRotateCamera, DynamicTexture, CubeTexture, MeshBuilder, Texture, BabylonAnimation, HemisphericLight, DirectionalLight, Element, EventBroadcaster, SceneManager, PlacementAnimation, BabylonHelper, GltfExportManager, SpecStorage, TagManager, ViewerError, ViewerErrorIds, };
1
+ /// <reference path="../../src/global-types.d.ts" />
2
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression';
3
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat';
4
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior';
5
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness';
6
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen';
7
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular';
8
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_translucency';
9
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission';
10
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit';
11
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants';
12
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu';
13
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform';
14
+ import '@babylonjs/serializers/glTF/2.0/Extensions/KHR_texture_transform';
15
+ export * from '@babylonjs/core/abstractScene';
16
+ export * from '@babylonjs/core/Animations';
17
+ export * from '@babylonjs/core/assetContainer';
18
+ export * from '@babylonjs/core/Buffers';
19
+ export * from '@babylonjs/core/Cameras/arcRotateCamera';
20
+ export * from '@babylonjs/core/Cameras/camera';
21
+ export * from '@babylonjs/core/Culling';
22
+ export * from '@babylonjs/core/Debug/axesViewer';
23
+ export * from '@babylonjs/core/Debug/debugLayer';
24
+ export * from '@babylonjs/core/Engines/engine';
25
+ export * from '@babylonjs/core/Engines/thinEngine';
26
+ export * from '@babylonjs/core/Lights';
27
+ export * from '@babylonjs/core/Loading';
28
+ export * from '@babylonjs/core/Materials/material';
29
+ export * from '@babylonjs/core/Materials/PBR';
30
+ export * from '@babylonjs/core/Materials/standardMaterial';
31
+ export * from '@babylonjs/core/Materials/Textures';
32
+ export * from '@babylonjs/core/Maths';
33
+ export * from '@babylonjs/core/Meshes/abstractMesh';
34
+ export * from '@babylonjs/core/Meshes/geometry';
35
+ export * from '@babylonjs/core/Meshes/instancedMesh';
36
+ export * from '@babylonjs/core/Meshes/mesh';
37
+ export * from '@babylonjs/core/Meshes/meshBuilder';
38
+ export * from '@babylonjs/core/Meshes/transformNode';
39
+ export * from '@babylonjs/core/Misc/interfaces/screenshotSize';
40
+ export * from '@babylonjs/core/Misc/screenshotTools';
41
+ export * from '@babylonjs/core/Morph';
42
+ export * from '@babylonjs/core/node';
43
+ export * from '@babylonjs/core/Rendering/utilityLayerRenderer';
44
+ export * from '@babylonjs/core/scene';
45
+ export * from '@babylonjs/core/types';
46
+ export * from '@babylonjs/loaders/glTF/2.0/glTFLoader';
47
+ export * from '@babylonjs/serializers/glTF/2.0/glTFSerializer';
48
+ export * from '@babylonjs/core/Collisions';
49
+ export * from '@babylonjs/core/Helpers/sceneHelpers';
50
+ export * from '@babylonjs/core/Materials/Background';
51
+ export * from '@babylonjs/core/Materials/Node';
52
+ export * from './viewer';
53
+ export * from './viewer-error';
54
+ export * from './manager/camera-manager';
55
+ export * from './manager/debug-manager';
56
+ export * from './manager/event-manager';
57
+ export * from './manager/gltf-export-manager';
58
+ export * from './manager/material-manager';
59
+ export * from './manager/model-manager';
60
+ export * from './manager/parameter-manager';
61
+ export * from './manager/scene-manager';
62
+ export * from './manager/screenshot-manager';
63
+ export * from './manager/texture-manager';
@@ -10,120 +10,87 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
12
  }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
24
15
  };
25
16
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.ViewerErrorIds = exports.ViewerError = exports.TagManager = exports.SpecStorage = exports.GltfExportManager = exports.BabylonHelper = exports.PlacementAnimation = exports.SceneManager = exports.EventBroadcaster = exports.Element = exports.DirectionalLight = exports.HemisphericLight = exports.BabylonAnimation = exports.Texture = exports.MeshBuilder = exports.CubeTexture = exports.DynamicTexture = exports.ArcRotateCamera = exports.Engine = exports.Scene = exports.BackgroundMaterial = exports.NodeMaterial = exports.StandardMaterial = exports.PBRMaterial = exports.Material = exports.Node = exports.TransformNode = exports.Mesh = exports.InstancedMesh = exports.AbstractMesh = exports.Vector3 = exports.Color4 = exports.Color3 = exports.VariantInstance = exports.Parameter = exports.Event = exports.EventEmitter = exports.Emitter = exports.ViewerLight = exports.VariantParameterizable = exports.Parameterizable = exports.ParameterObservable = exports.Viewer = exports.VariantInstanceManager = exports.Variant = exports.AnimationManager = void 0;
27
- const element_1 = require("./api/classes/element");
28
- Object.defineProperty(exports, "Element", { enumerable: true, get: function () { return element_1.Element; } });
29
- const event_1 = require("./api/classes/event");
30
- Object.defineProperty(exports, "Event", { enumerable: true, get: function () { return event_1.Event; } });
31
- Object.defineProperty(exports, "Emitter", { enumerable: true, get: function () { return event_1.emitter; } });
32
- const eventBroadcaster_1 = require("./api/classes/eventBroadcaster");
33
- Object.defineProperty(exports, "EventBroadcaster", { enumerable: true, get: function () { return eventBroadcaster_1.EventBroadcaster; } });
34
- const parameter_1 = require("./api/classes/parameter");
35
- Object.defineProperty(exports, "Parameter", { enumerable: true, get: function () { return parameter_1.Parameter; } });
36
- const parameterObservable_1 = require("./api/classes/parameterObservable");
37
- Object.defineProperty(exports, "ParameterObservable", { enumerable: true, get: function () { return parameterObservable_1.ParameterObservable; } });
38
- const parameterizable_1 = require("./api/classes/parameterizable");
39
- Object.defineProperty(exports, "Parameterizable", { enumerable: true, get: function () { return parameterizable_1.Parameterizable; } });
40
- const placementAnimation_1 = require("./api/classes/placementAnimation");
41
- Object.defineProperty(exports, "PlacementAnimation", { enumerable: true, get: function () { return placementAnimation_1.PlacementAnimation; } });
42
- const variant_1 = require("./api/classes/variant");
43
- Object.defineProperty(exports, "Variant", { enumerable: true, get: function () { return variant_1.Variant; } });
44
- const variantInstance_1 = require("./api/classes/variantInstance");
45
- Object.defineProperty(exports, "VariantInstance", { enumerable: true, get: function () { return variantInstance_1.VariantInstance; } });
46
- const variantParameterizable_1 = require("./api/classes/variantParameterizable");
47
- Object.defineProperty(exports, "VariantParameterizable", { enumerable: true, get: function () { return variantParameterizable_1.VariantParameterizable; } });
48
- const viewer_1 = require("./api/classes/viewer");
49
- Object.defineProperty(exports, "Viewer", { enumerable: true, get: function () { return viewer_1.Viewer; } });
50
- const viewerError_1 = require("./api/classes/viewerError");
51
- Object.defineProperty(exports, "ViewerError", { enumerable: true, get: function () { return viewerError_1.ViewerError; } });
52
- Object.defineProperty(exports, "ViewerErrorIds", { enumerable: true, get: function () { return viewerError_1.ViewerErrorIds; } });
53
- const viewerLight_1 = require("./api/classes/viewerLight");
54
- Object.defineProperty(exports, "ViewerLight", { enumerable: true, get: function () { return viewerLight_1.ViewerLight; } });
55
- const animationManager_1 = require("./api/manager/animationManager");
56
- Object.defineProperty(exports, "AnimationManager", { enumerable: true, get: function () { return animationManager_1.AnimationManager; } });
57
- const gltfExportManager_1 = require("./api/manager/gltfExportManager");
58
- Object.defineProperty(exports, "GltfExportManager", { enumerable: true, get: function () { return gltfExportManager_1.GltfExportManager; } });
59
- const sceneManager_1 = require("./api/manager/sceneManager");
60
- Object.defineProperty(exports, "SceneManager", { enumerable: true, get: function () { return sceneManager_1.SceneManager; } });
61
- const tagManager_1 = require("./api/manager/tagManager");
62
- Object.defineProperty(exports, "TagManager", { enumerable: true, get: function () { return tagManager_1.TagManager; } });
63
- const variantInstanceManager_1 = require("./api/manager/variantInstanceManager");
64
- Object.defineProperty(exports, "VariantInstanceManager", { enumerable: true, get: function () { return variantInstanceManager_1.VariantInstanceManager; } });
65
- const specStorage_1 = require("./api/store/specStorage");
66
- Object.defineProperty(exports, "SpecStorage", { enumerable: true, get: function () { return specStorage_1.SpecStorage; } });
67
- const BabylonHelper = __importStar(require("./api/util/babylonHelper"));
68
- exports.BabylonHelper = BabylonHelper;
69
- const animation_1 = require("@babylonjs/core/Animations/animation");
70
- Object.defineProperty(exports, "BabylonAnimation", { enumerable: true, get: function () { return animation_1.Animation; } });
71
- const arcRotateCamera_1 = require("@babylonjs/core/Cameras/arcRotateCamera");
72
- Object.defineProperty(exports, "ArcRotateCamera", { enumerable: true, get: function () { return arcRotateCamera_1.ArcRotateCamera; } });
73
- const engine_1 = require("@babylonjs/core/Engines/engine");
74
- Object.defineProperty(exports, "Engine", { enumerable: true, get: function () { return engine_1.Engine; } });
75
- const directionalLight_1 = require("@babylonjs/core/Lights/directionalLight");
76
- Object.defineProperty(exports, "DirectionalLight", { enumerable: true, get: function () { return directionalLight_1.DirectionalLight; } });
77
- const hemisphericLight_1 = require("@babylonjs/core/Lights/hemisphericLight");
78
- Object.defineProperty(exports, "HemisphericLight", { enumerable: true, get: function () { return hemisphericLight_1.HemisphericLight; } });
79
- const backgroundMaterial_1 = require("@babylonjs/core/Materials/Background/backgroundMaterial");
80
- Object.defineProperty(exports, "BackgroundMaterial", { enumerable: true, get: function () { return backgroundMaterial_1.BackgroundMaterial; } });
81
- const Node_1 = require("@babylonjs/core/Materials/Node");
82
- Object.defineProperty(exports, "NodeMaterial", { enumerable: true, get: function () { return Node_1.NodeMaterial; } });
83
- /**
84
- * Importing from .../PBR covers all PBR material types, also the deprecated ones like `PBRMetallicRoughnessMaterial`.
85
- * In this way we can also load models which contain these PBR materials.
86
- * Still we only actively use `PBRMaterial` in the viewer code base and we also only want to expose this one to the
87
- * consumer.
88
- */
89
- const PBR_1 = require("@babylonjs/core/Materials/PBR");
90
- Object.defineProperty(exports, "PBRMaterial", { enumerable: true, get: function () { return PBR_1.PBRMaterial; } });
91
- /**
92
- * Same story as for PBR materials, we want to support also textures but only want to expose a few of them
93
- */
94
- const Textures_1 = require("@babylonjs/core/Materials/Textures");
95
- Object.defineProperty(exports, "CubeTexture", { enumerable: true, get: function () { return Textures_1.CubeTexture; } });
96
- Object.defineProperty(exports, "DynamicTexture", { enumerable: true, get: function () { return Textures_1.DynamicTexture; } });
97
- Object.defineProperty(exports, "Texture", { enumerable: true, get: function () { return Textures_1.Texture; } });
98
- const material_1 = require("@babylonjs/core/Materials/material");
99
- Object.defineProperty(exports, "Material", { enumerable: true, get: function () { return material_1.Material; } });
100
- const standardMaterial_1 = require("@babylonjs/core/Materials/standardMaterial");
101
- Object.defineProperty(exports, "StandardMaterial", { enumerable: true, get: function () { return standardMaterial_1.StandardMaterial; } });
102
- const math_color_1 = require("@babylonjs/core/Maths/math.color");
103
- Object.defineProperty(exports, "Color3", { enumerable: true, get: function () { return math_color_1.Color3; } });
104
- Object.defineProperty(exports, "Color4", { enumerable: true, get: function () { return math_color_1.Color4; } });
105
- const math_vector_1 = require("@babylonjs/core/Maths/math.vector");
106
- Object.defineProperty(exports, "Vector3", { enumerable: true, get: function () { return math_vector_1.Vector3; } });
107
- const abstractMesh_1 = require("@babylonjs/core/Meshes/abstractMesh");
108
- Object.defineProperty(exports, "AbstractMesh", { enumerable: true, get: function () { return abstractMesh_1.AbstractMesh; } });
109
- const instancedMesh_1 = require("@babylonjs/core/Meshes/instancedMesh");
110
- Object.defineProperty(exports, "InstancedMesh", { enumerable: true, get: function () { return instancedMesh_1.InstancedMesh; } });
111
- const mesh_1 = require("@babylonjs/core/Meshes/mesh");
112
- Object.defineProperty(exports, "Mesh", { enumerable: true, get: function () { return mesh_1.Mesh; } });
113
- const meshBuilder_1 = require("@babylonjs/core/Meshes/meshBuilder");
114
- Object.defineProperty(exports, "MeshBuilder", { enumerable: true, get: function () { return meshBuilder_1.MeshBuilder; } });
115
- const transformNode_1 = require("@babylonjs/core/Meshes/transformNode");
116
- Object.defineProperty(exports, "TransformNode", { enumerable: true, get: function () { return transformNode_1.TransformNode; } });
117
- /**
118
- * Without explicitly importing the "BoundingBoxRenderer", we're getting "scene.getBoundingBoxRenderer is undefined"
119
- * errors when creating HighlightLayer instances. Not sure why but those errors only happen when using the built
120
- * version of the viewer (e.g. when pulling it from NPM etc.)...
121
- */
122
- require("@babylonjs/core/Rendering/boundingBoxRenderer");
123
- const node_1 = require("@babylonjs/core/node");
124
- Object.defineProperty(exports, "Node", { enumerable: true, get: function () { return node_1.Node; } });
125
- const scene_1 = require("@babylonjs/core/scene");
126
- Object.defineProperty(exports, "Scene", { enumerable: true, get: function () { return scene_1.Scene; } });
127
- const eventemitter3_1 = require("eventemitter3");
128
- Object.defineProperty(exports, "EventEmitter", { enumerable: true, get: function () { return eventemitter3_1.EventEmitter; } });
17
+ /// <reference path="global-types.d.ts" />
18
+ // Babylon.js extensions
19
+ require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression");
20
+ require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat");
21
+ require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior");
22
+ require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness");
23
+ require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen");
24
+ require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular");
25
+ require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_translucency");
26
+ require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission");
27
+ require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit");
28
+ require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants");
29
+ require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu");
30
+ require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform");
31
+ require("@babylonjs/serializers/glTF/2.0/Extensions/KHR_texture_transform");
32
+ // Babylon.js modules
33
+ // All used Babylyon.js modules should be re-exported here.
34
+ // In this way consumers have access to all of them as well via an import of "@combeenation/3d-viewer" instead of having
35
+ // to make single imports from "@babylonjs/..."
36
+ // When using Babylon.js modules inside the viewer repo make sure to import from the viewer root as well.
37
+ // E.g. `import { BaseTexture, Material, Node } from '../index';`
38
+ __exportStar(require("@babylonjs/core/abstractScene"), exports);
39
+ __exportStar(require("@babylonjs/core/Animations"), exports);
40
+ __exportStar(require("@babylonjs/core/assetContainer"), exports);
41
+ __exportStar(require("@babylonjs/core/Buffers"), exports);
42
+ __exportStar(require("@babylonjs/core/Cameras/arcRotateCamera"), exports);
43
+ __exportStar(require("@babylonjs/core/Cameras/camera"), exports);
44
+ __exportStar(require("@babylonjs/core/Culling"), exports);
45
+ __exportStar(require("@babylonjs/core/Debug/axesViewer"), exports);
46
+ __exportStar(require("@babylonjs/core/Debug/debugLayer"), exports);
47
+ __exportStar(require("@babylonjs/core/Engines/engine"), exports);
48
+ __exportStar(require("@babylonjs/core/Engines/thinEngine"), exports);
49
+ __exportStar(require("@babylonjs/core/Lights"), exports);
50
+ __exportStar(require("@babylonjs/core/Loading"), exports);
51
+ __exportStar(require("@babylonjs/core/Materials/material"), exports);
52
+ __exportStar(require("@babylonjs/core/Materials/PBR"), exports);
53
+ __exportStar(require("@babylonjs/core/Materials/standardMaterial"), exports);
54
+ __exportStar(require("@babylonjs/core/Materials/Textures"), exports);
55
+ __exportStar(require("@babylonjs/core/Maths"), exports);
56
+ __exportStar(require("@babylonjs/core/Meshes/abstractMesh"), exports);
57
+ __exportStar(require("@babylonjs/core/Meshes/geometry"), exports);
58
+ __exportStar(require("@babylonjs/core/Meshes/instancedMesh"), exports);
59
+ __exportStar(require("@babylonjs/core/Meshes/mesh"), exports);
60
+ __exportStar(require("@babylonjs/core/Meshes/meshBuilder"), exports);
61
+ __exportStar(require("@babylonjs/core/Meshes/transformNode"), exports);
62
+ __exportStar(require("@babylonjs/core/Misc/interfaces/screenshotSize"), exports);
63
+ __exportStar(require("@babylonjs/core/Misc/screenshotTools"), exports);
64
+ __exportStar(require("@babylonjs/core/Morph"), exports);
65
+ __exportStar(require("@babylonjs/core/node"), exports);
66
+ __exportStar(require("@babylonjs/core/Rendering/utilityLayerRenderer"), exports);
67
+ __exportStar(require("@babylonjs/core/scene"), exports);
68
+ __exportStar(require("@babylonjs/core/types"), exports);
69
+ __exportStar(require("@babylonjs/loaders/glTF/2.0/glTFLoader"), exports);
70
+ __exportStar(require("@babylonjs/serializers/glTF/2.0/glTFSerializer"), exports);
71
+ // Additional Babylon.js modules
72
+ // These are not used in the "@combeenation/3d-viewer" repository directly, but required in consuming code for various
73
+ // reasons
74
+ // for checking camera collions with ground and wall meshes
75
+ __exportStar(require("@babylonjs/core/Collisions"), exports);
76
+ // for Scene.createDefaultEnvironment
77
+ __exportStar(require("@babylonjs/core/Helpers/sceneHelpers"), exports);
78
+ // support BackgroundMaterial on Combeenation platform
79
+ __exportStar(require("@babylonjs/core/Materials/Background"), exports);
80
+ // support NodeMaterial on Combeenation platform
81
+ __exportStar(require("@babylonjs/core/Materials/Node"), exports);
82
+ // Viewer modules
83
+ // all viewer modules that are not located in "internal" should be exported from here
84
+ __exportStar(require("./viewer"), exports);
85
+ __exportStar(require("./viewer-error"), exports);
86
+ __exportStar(require("./manager/camera-manager"), exports);
87
+ __exportStar(require("./manager/debug-manager"), exports);
88
+ __exportStar(require("./manager/event-manager"), exports);
89
+ __exportStar(require("./manager/gltf-export-manager"), exports);
90
+ __exportStar(require("./manager/material-manager"), exports);
91
+ __exportStar(require("./manager/model-manager"), exports);
92
+ __exportStar(require("./manager/parameter-manager"), exports);
93
+ __exportStar(require("./manager/scene-manager"), exports);
94
+ __exportStar(require("./manager/screenshot-manager"), exports);
95
+ __exportStar(require("./manager/texture-manager"), exports);
129
96
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mDAAgD;AAqG9C,wFArGO,iBAAO,OAqGP;AApGT,+CAAqD;AA0EnD,sFA1EO,aAAK,OA0EP;AAFM,wFAxEG,eAAO,OAwEH;AAvEpB,qEAAkE;AAoGhE,iGApGO,mCAAgB,OAoGP;AAnGlB,uDAAoD;AAyElD,0FAzEO,qBAAS,OAyEP;AAxEX,2EAAwE;AAiEtE,oGAjEO,yCAAmB,OAiEP;AAhErB,mEAAgE;AAiE9D,gGAjEO,iCAAe,OAiEP;AAhEjB,yEAAsE;AAkGpE,mGAlGO,uCAAkB,OAkGP;AAjGpB,mDAAgD;AA2D9C,wFA3DO,iBAAO,OA2DP;AA1DT,mEAAgE;AAqE9D,gGArEO,iCAAe,OAqEP;AApEjB,iFAA8E;AA8D5E,uGA9DO,+CAAsB,OA8DP;AA7DxB,iDAA8C;AA0D5C,uFA1DO,eAAM,OA0DP;AAzDR,2DAAwE;AAkGtE,4FAlGO,yBAAW,OAkGP;AACX,+FAnGoB,4BAAc,OAmGpB;AAlGhB,2DAAwD;AA4DtD,4FA5DO,yBAAW,OA4DP;AA3Db,qEAAkE;AAmDhE,iGAnDO,mCAAgB,OAmDP;AAlDlB,uEAAoE;AA4FlE,kGA5FO,qCAAiB,OA4FP;AA3FnB,6DAA0D;AAwFxD,6FAxFO,2BAAY,OAwFP;AAvFd,yDAAsD;AA4FpD,2FA5FO,uBAAU,OA4FP;AA3FZ,iFAA8E;AAkD5E,uGAlDO,+CAAsB,OAkDP;AAjDxB,yDAAsD;AAyFpD,4FAzFO,yBAAW,OAyFP;AAxFb,wEAA0D;AAsFxD,sCAAa;AArFf,oEAAqF;AA8EnF,iGA9EoB,qBAAgB,OA8EpB;AA7ElB,6EAA0E;AAwExE,gGAxEO,iCAAe,OAwEP;AAvEjB,2DAAwD;AAsEtD,uFAtEO,eAAM,OAsEP;AArER,8EAA2E;AA6EzE,iGA7EO,mCAAgB,OA6EP;AA5ElB,8EAA2E;AA2EzE,iGA3EO,mCAAgB,OA2EP;AA1ElB,gGAA6F;AAiE3F,mGAjEO,uCAAkB,OAiEP;AAhEpB,yDAA8D;AA+D5D,6FA/DO,mBAAY,OA+DP;AA7Dd;;;;;GAKG;AACH,uDAA4D;AAqD1D,4FArDO,iBAAW,OAqDP;AAnDb;;GAEG;AACH,iEAA0F;AAwDxF,4FAxDO,sBAAW,OAwDP;AADX,+FAvDoB,yBAAc,OAuDpB;AAGd,wFA1DoC,kBAAO,OA0DpC;AAzDT,iEAA8D;AA8C5D,yFA9CO,mBAAQ,OA8CP;AA7CV,iFAA8E;AA+C5E,iGA/CO,mCAAgB,OA+CP;AA9ClB,iEAAkE;AAoChE,uFApCO,mBAAM,OAoCP;AACN,uFArCe,mBAAM,OAqCf;AApCR,mEAA4D;AAqC1D,wFArCO,qBAAO,OAqCP;AApCT,sEAAmE;AAqCjE,6FArCO,2BAAY,OAqCP;AApCd,wEAAqE;AAqCnE,8FArCO,6BAAa,OAqCP;AApCf,sDAAmD;AAqCjD,qFArCO,WAAI,OAqCP;AApCN,oEAAiE;AAiD/D,4FAjDO,yBAAW,OAiDP;AAhDb,wEAAqE;AAoCnE,8FApCO,6BAAa,OAoCP;AAlCf;;;;GAIG;AACH,yDAAuD;AACvD,+CAA4C;AA6B1C,qFA7BO,WAAI,OA6BP;AA5BN,iDAA8C;AAkC5C,sFAlCO,aAAK,OAkCP;AAjCP,iDAA6C;AAgB3C,6FAhBO,4BAAY,OAgBP"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAA0C;AAC1C,wBAAwB;AACxB,6EAA2E;AAC3E,0EAAwE;AACxE,oEAAkE;AAClE,sFAAoF;AACpF,sEAAoE;AACpE,yEAAuE;AACvE,6EAA2E;AAC3E,6EAA2E;AAC3E,sEAAoE;AACpE,yEAAuE;AACvE,qEAAmE;AACnE,wEAAsE;AACtE,4EAA0E;AAE1E,qBAAqB;AACrB,2DAA2D;AAC3D,wHAAwH;AACxH,+CAA+C;AAC/C,yGAAyG;AACzG,iEAAiE;AACjE,gEAA8C;AAC9C,6DAA2C;AAC3C,iEAA+C;AAC/C,0DAAwC;AACxC,0EAAwD;AACxD,iEAA+C;AAC/C,0DAAwC;AACxC,mEAAiD;AACjD,mEAAiD;AACjD,iEAA+C;AAC/C,qEAAmD;AACnD,yDAAuC;AACvC,0DAAwC;AACxC,qEAAmD;AACnD,gEAA8C;AAC9C,6EAA2D;AAC3D,qEAAmD;AACnD,wDAAsC;AACtC,sEAAoD;AACpD,kEAAgD;AAChD,uEAAqD;AACrD,8DAA4C;AAC5C,qEAAmD;AACnD,uEAAqD;AACrD,iFAA+D;AAC/D,uEAAqD;AACrD,wDAAsC;AACtC,uDAAqC;AACrC,iFAA+D;AAC/D,wDAAsC;AACtC,wDAAsC;AACtC,yEAAuD;AACvD,iFAA+D;AAE/D,gCAAgC;AAChC,sHAAsH;AACtH,UAAU;AACV,2DAA2D;AAC3D,6DAA2C;AAC3C,qCAAqC;AACrC,uEAAqD;AACrD,sDAAsD;AACtD,uEAAqD;AACrD,gDAAgD;AAChD,iEAA+C;AAE/C,iBAAiB;AACjB,qFAAqF;AACrF,2CAAyB;AACzB,iDAA+B;AAC/B,2DAAyC;AACzC,0DAAwC;AACxC,0DAAwC;AACxC,gEAA8C;AAC9C,6DAA2C;AAC3C,0DAAwC;AACxC,8DAA4C;AAC5C,0DAAwC;AACxC,+DAA6C;AAC7C,4DAA0C"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Create and return a custom loader plugin to be registered with SceneLoader, that allows
3
+ * us to run our own code against the input data before using the standard procedure to
4
+ * import.
5
+ * The main use case is to mark missing material in meshes, which will get loaded on demand at the first time the
6
+ * dedicated mesh gets visible.
7
+ * This is the case if the babylon file is a Combeenation "3d asset" which comes without materials, as the materials
8
+ * are defined as "material assets".
9
+ */
10
+ export declare function registerCustomCbnBabylonLoaderPlugin(): void;
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerCustomCbnBabylonLoaderPlugin = void 0;
4
+ const index_1 = require("../index");
5
+ const cloning_helper_1 = require("./cloning-helper");
6
+ const metadata_helper_1 = require("./metadata-helper");
7
+ const tags_helper_1 = require("./tags-helper");
8
+ const lodash_es_1 = require("lodash-es");
9
+ /**
10
+ * Create and return a custom loader plugin to be registered with SceneLoader, that allows
11
+ * us to run our own code against the input data before using the standard procedure to
12
+ * import.
13
+ * The main use case is to mark missing material in meshes, which will get loaded on demand at the first time the
14
+ * dedicated mesh gets visible.
15
+ * This is the case if the babylon file is a Combeenation "3d asset" which comes without materials, as the materials
16
+ * are defined as "material assets".
17
+ */
18
+ function registerCustomCbnBabylonLoaderPlugin() {
19
+ // get original plugin for babylon files
20
+ // we only want to manipulate Combeenation 3d assets, which are represented as babylon files
21
+ // the plugin is not used for GLB files, "local" babylon are also not really affected by this plugin
22
+ const previousLoaderPlugin = index_1.SceneLoader.GetPluginForExtension('.babylon');
23
+ const customLoader = {
24
+ name: 'cbnCustomBabylonLoader',
25
+ extensions: '.babylon',
26
+ importMesh: previousLoaderPlugin.importMesh,
27
+ load: previousLoaderPlugin.load,
28
+ loadAssetContainer: function (scene, data, rootUrl, onError) {
29
+ // temporarily remove all morph target managers from scene before loading the model to avoid clashes with existing
30
+ // unique ids => see CB-9928
31
+ // NOTE: morph target managers still exist on the dedicated mesh when getting removed from the scene, only
32
+ // `scene.getMorphTargetManagerById` is affected, which is used internally in the `loadAssetContainer` function
33
+ const curMorphTargetManagers = scene.morphTargetManagers;
34
+ scene.morphTargetManagers = [];
35
+ const dataParsed = JSON.parse(data);
36
+ const importedContainer = previousLoaderPlugin.loadAssetContainer(scene, data, rootUrl);
37
+ _addMissingMaterialMetadata(dataParsed, importedContainer);
38
+ _reconstructTagsForInstancedMeshes(dataParsed, importedContainer);
39
+ _unifyMorphTargetManagerIds(importedContainer, scene);
40
+ // restore existing morph target managers
41
+ scene.morphTargetManagers.push(...curMorphTargetManagers);
42
+ return importedContainer;
43
+ },
44
+ };
45
+ index_1.SceneLoader.RegisterPlugin(customLoader);
46
+ }
47
+ exports.registerCustomCbnBabylonLoaderPlugin = registerCustomCbnBabylonLoaderPlugin;
48
+ function _isMeshInstanceData(data) {
49
+ const hasName = (0, lodash_es_1.isString)(data.name);
50
+ const hasValidTags = !data.tags || (0, lodash_es_1.isString)(data.tags);
51
+ return hasName && hasValidTags;
52
+ }
53
+ function _isMeshData(data) {
54
+ const hasName = (0, lodash_es_1.isString)(data.name);
55
+ const hasValidMaterialId = !data.materialId || (0, lodash_es_1.isString)(data.materialId);
56
+ return hasName && hasValidMaterialId;
57
+ }
58
+ function _isDataWithMeshes(data) {
59
+ return data && (0, lodash_es_1.isArray)(data.meshes);
60
+ }
61
+ /**
62
+ * Internal function that compares the original meshes on a .babylon file with what was loaded,
63
+ * and tags missing materials with respective metadata on respective meshes.
64
+ * @param dataParsed original data
65
+ * @param container loaded data
66
+ */
67
+ function _addMissingMaterialMetadata(dataParsed, container) {
68
+ if (!_isDataWithMeshes(dataParsed))
69
+ return;
70
+ const validatedMeshes = dataParsed.meshes.filter(_isMeshData);
71
+ container.meshes.forEach(importedMesh => {
72
+ var _a, _b;
73
+ const parsedMesh = validatedMeshes.find(mesh => mesh.name === importedMesh.name);
74
+ const materialOnImportedMesh = (_a = importedMesh.material) === null || _a === void 0 ? void 0 : _a.id;
75
+ const materialOnOriginalMesh = parsedMesh === null || parsedMesh === void 0 ? void 0 : parsedMesh.materialId;
76
+ if (materialOnOriginalMesh && materialOnImportedMesh !== materialOnOriginalMesh) {
77
+ (_b = window.Cbn) === null || _b === void 0 ? void 0 : _b.Assets.assertMaterialExists(materialOnOriginalMesh);
78
+ (0, metadata_helper_1.setInternalMetadataValue)(importedMesh, 'deferredMaterial', materialOnOriginalMesh);
79
+ }
80
+ });
81
+ }
82
+ /**
83
+ * Help function for manipulating tags of instances meshes after parsing.
84
+ * Per default babylon attaches the tags of the source mesh to the instance, **but only** if no tags are set for the
85
+ * instanced mesh. If the instanced mesh has dedicated tags set, the ones from the source mesh are **not** copied over.
86
+ * In this case it's not possible to have tags on the source mesh but not on the instance, which is a problem with our
87
+ * tagging system in the viewer and the Combeenation asset editor as well.
88
+ * This function rejects the default tag import algorithm and just copies the tags of the original parsed node without
89
+ * any parent synchronization.
90
+ *
91
+ * @param dataParsed original data
92
+ * @param container loaded data
93
+ */
94
+ function _reconstructTagsForInstancedMeshes(dataParsed, container) {
95
+ if (!_isDataWithMeshes(dataParsed))
96
+ return;
97
+ const validatedMeshes = dataParsed.meshes.filter(_isMeshData);
98
+ container.meshes.forEach(importedMesh => {
99
+ var _a;
100
+ if (importedMesh instanceof index_1.InstancedMesh) {
101
+ // remove all tags from the imported mesh if there are some, since these tags are probably coming from the
102
+ // source mesh, if no tags are set there is no need for further operation though
103
+ const hasTags = (0, tags_helper_1.getTags)(importedMesh);
104
+ if (hasTags) {
105
+ (0, tags_helper_1.deleteAllTags)(importedMesh);
106
+ // get tags of parsed instanced mesh and set them on the imported instanced mesh
107
+ const parsedSourceMesh = validatedMeshes.find(mesh => mesh.name === importedMesh.sourceMesh.name);
108
+ const validatedSourceMeshInstances = (_a = parsedSourceMesh === null || parsedSourceMesh === void 0 ? void 0 : parsedSourceMesh.instances) === null || _a === void 0 ? void 0 : _a.filter(_isMeshInstanceData);
109
+ const parsedInstancedMesh = validatedSourceMeshInstances === null || validatedSourceMeshInstances === void 0 ? void 0 : validatedSourceMeshInstances.find(mesh => mesh.name === importedMesh.name);
110
+ const parsedTags = parsedInstancedMesh === null || parsedInstancedMesh === void 0 ? void 0 : parsedInstancedMesh.tags;
111
+ if (parsedTags) {
112
+ (0, tags_helper_1.setTagsAsString)(importedMesh, parsedTags);
113
+ }
114
+ }
115
+ }
116
+ });
117
+ }
118
+ /**
119
+ * Morph target managers from different assets may receive the same id, which leads to erroneous morph target
120
+ * assignments. We can't change the id, but we can create a clone which then creates a new unique id.
121
+ */
122
+ function _unifyMorphTargetManagerIds(container, scene) {
123
+ [...container.morphTargetManagers].forEach(sourceMTM => {
124
+ const clonedMTM = (0, cloning_helper_1.cloneMorphTargetManager)(sourceMTM, container);
125
+ // clone function adds morph target manager to scene right, which we don't want here as we are only loading the
126
+ // asset container
127
+ scene.removeMorphTargetManager(clonedMTM);
128
+ // original morph target manager with bad id is not needed anymore and can be disposed
129
+ sourceMTM.dispose();
130
+ });
131
+ }
132
+ //# sourceMappingURL=cbn-custom-babylon-loader-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cbn-custom-babylon-loader-plugin.js","sourceRoot":"","sources":["../../../src/internal/cbn-custom-babylon-loader-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { AssetContainer, MorphTargetManager, NodeNamingStrategy, Scene, TagNamingStrategy } from '../index';
2
+ /**
3
+ * Clones the node hierarchy of the asset container with some special treatment that differs from Babylon.js default
4
+ * cloning behaviour, such as:
5
+ * - create new instances of morph target manager
6
+ * - deep cloning internal metadata
7
+ * - deep cloning metadata and tags for instanced meshes
8
+ * - reassigns source meshes in cloned asset container
9
+ * Furthermore there is the possibility to adjust naming of nodes and tags in the cloned asset container
10
+ */
11
+ export declare function cloneModelAssetContainer(sourceAssetContainer: AssetContainer, newModelName: string, renaming: {
12
+ nodeNamingStrategy?: NodeNamingStrategy;
13
+ tagNamingStrategy?: TagNamingStrategy;
14
+ }, scene: Scene): AssetContainer;
15
+ /**
16
+ * Helper function for cloning a morph target manager and updating all the mesh assignments.
17
+ * Meshes need to be already available in the target asset container.
18
+ */
19
+ export declare function cloneMorphTargetManager(sourceMTM: MorphTargetManager, targetAssetContainer: AssetContainer): MorphTargetManager;