@combeenation/3d-viewer 12.4.1 → 13.0.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 (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/cbnCustomBabylonLoaderPlugin.d.ts +10 -0
  7. package/dist/lib-cjs/internal/cbnCustomBabylonLoaderPlugin.js +124 -0
  8. package/dist/lib-cjs/internal/cbnCustomBabylonLoaderPlugin.js.map +1 -0
  9. package/dist/lib-cjs/internal/cloningHelper.d.ts +19 -0
  10. package/dist/lib-cjs/internal/cloningHelper.js +165 -0
  11. package/dist/lib-cjs/internal/cloningHelper.js.map +1 -0
  12. package/dist/lib-cjs/internal/deviceHelper.d.ts +9 -0
  13. package/dist/lib-cjs/{api/util → internal}/deviceHelper.js +6 -10
  14. package/dist/lib-cjs/internal/deviceHelper.js.map +1 -0
  15. package/dist/lib-cjs/internal/geometryHelper.d.ts +21 -0
  16. package/dist/lib-cjs/{api/util → internal}/geometryHelper.js +57 -24
  17. package/dist/lib-cjs/internal/geometryHelper.js.map +1 -0
  18. package/dist/lib-cjs/internal/metadataHelper.d.ts +26 -0
  19. package/dist/lib-cjs/internal/metadataHelper.js +51 -0
  20. package/dist/lib-cjs/internal/metadataHelper.js.map +1 -0
  21. package/dist/lib-cjs/internal/paintableHelper.d.ts +40 -0
  22. package/dist/lib-cjs/internal/paintableHelper.js +287 -0
  23. package/dist/lib-cjs/internal/paintableHelper.js.map +1 -0
  24. package/dist/lib-cjs/internal/tagsHelper.d.ts +12 -0
  25. package/dist/lib-cjs/internal/tagsHelper.js +38 -0
  26. package/dist/lib-cjs/internal/tagsHelper.js.map +1 -0
  27. package/dist/lib-cjs/manager/cameraManager.d.ts +51 -0
  28. package/dist/lib-cjs/manager/cameraManager.js +154 -0
  29. package/dist/lib-cjs/manager/cameraManager.js.map +1 -0
  30. package/dist/lib-cjs/manager/debugManager.d.ts +60 -0
  31. package/dist/lib-cjs/manager/debugManager.js +218 -0
  32. package/dist/lib-cjs/manager/debugManager.js.map +1 -0
  33. package/dist/lib-cjs/manager/eventManager.d.ts +52 -0
  34. package/dist/lib-cjs/manager/eventManager.js +72 -0
  35. package/dist/lib-cjs/manager/eventManager.js.map +1 -0
  36. package/dist/lib-cjs/{api/manager → manager}/gltfExportManager.d.ts +29 -34
  37. package/dist/lib-cjs/{api/manager → manager}/gltfExportManager.js +99 -120
  38. package/dist/lib-cjs/manager/gltfExportManager.js.map +1 -0
  39. package/dist/lib-cjs/manager/materialManager.d.ts +35 -0
  40. package/dist/lib-cjs/manager/materialManager.js +126 -0
  41. package/dist/lib-cjs/manager/materialManager.js.map +1 -0
  42. package/dist/lib-cjs/manager/modelManager.d.ts +145 -0
  43. package/dist/lib-cjs/manager/modelManager.js +381 -0
  44. package/dist/lib-cjs/manager/modelManager.js.map +1 -0
  45. package/dist/lib-cjs/manager/parameterManager.d.ts +210 -0
  46. package/dist/lib-cjs/manager/parameterManager.js +515 -0
  47. package/dist/lib-cjs/manager/parameterManager.js.map +1 -0
  48. package/dist/lib-cjs/manager/sceneManager.d.ts +45 -0
  49. package/dist/lib-cjs/manager/sceneManager.js +65 -0
  50. package/dist/lib-cjs/manager/sceneManager.js.map +1 -0
  51. package/dist/lib-cjs/manager/screenshotManager.d.ts +36 -0
  52. package/dist/lib-cjs/manager/screenshotManager.js +40 -0
  53. package/dist/lib-cjs/manager/screenshotManager.js.map +1 -0
  54. package/dist/lib-cjs/manager/textureManager.d.ts +12 -0
  55. package/dist/lib-cjs/manager/textureManager.js +44 -0
  56. package/dist/lib-cjs/manager/textureManager.js.map +1 -0
  57. package/dist/lib-cjs/viewer.d.ts +117 -0
  58. package/dist/lib-cjs/viewer.js +222 -0
  59. package/dist/lib-cjs/viewer.js.map +1 -0
  60. package/dist/lib-cjs/{api/classes/viewerError.d.ts → viewerError.d.ts} +6 -1
  61. package/dist/lib-cjs/{api/classes/viewerError.js → viewerError.js} +6 -1
  62. package/dist/lib-cjs/viewerError.js.map +1 -0
  63. package/package.json +10 -11
  64. package/src/dev.ts +14 -37
  65. package/src/{types.d.ts → globalTypes.d.ts} +8 -18
  66. package/src/index.ts +79 -113
  67. package/src/internal/cbnCustomBabylonLoaderPlugin.ts +149 -0
  68. package/src/internal/cloningHelper.ts +225 -0
  69. package/src/internal/deviceHelper.ts +25 -0
  70. package/src/{api/util → internal}/geometryHelper.ts +63 -24
  71. package/src/internal/metadataHelper.ts +63 -0
  72. package/src/internal/paintableHelper.ts +310 -0
  73. package/src/internal/tagsHelper.ts +41 -0
  74. package/src/manager/cameraManager.ts +236 -0
  75. package/src/manager/debugManager.ts +245 -0
  76. package/src/manager/eventManager.ts +72 -0
  77. package/src/{api/manager → manager}/gltfExportManager.ts +132 -125
  78. package/src/manager/materialManager.ts +135 -0
  79. package/src/manager/modelManager.ts +456 -0
  80. package/src/manager/parameterManager.ts +652 -0
  81. package/src/manager/sceneManager.ts +101 -0
  82. package/src/manager/screenshotManager.ts +59 -0
  83. package/src/manager/textureManager.ts +32 -0
  84. package/src/viewer.ts +296 -0
  85. package/src/{api/classes/viewerError.ts → viewerError.ts} +6 -1
  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
@@ -0,0 +1,36 @@
1
+ import { IScreenshotSize, Viewer } from '../index';
2
+ export declare type ScreenshotSettings = {
3
+ /** Defaults to canvas width & height */
4
+ size?: IScreenshotSize;
5
+ /**
6
+ * Default `image/png`
7
+ *
8
+ * **Info regarding JPEG:** \
9
+ * Use mimeType `image/jpeg` (**not** `image/jpg`) when creating jpeg's. \
10
+ * Also ensure that the viewer scenes `clearColor` has an alpha value of `1` as jpeg's don't
11
+ * support transparency. Otherwise background will always be black for jpeg's.
12
+ */
13
+ mimeType?: string;
14
+ /** Default `1` */
15
+ samples?: number;
16
+ /** Default `false` */
17
+ antialiasing?: boolean;
18
+ /** NOTE: after update to Babylon.js V6: if file name is given, the screenshot image will be downloaded and the base64
19
+ * string will NOT be returned! */
20
+ fileName?: string;
21
+ /** Default `false` */
22
+ renderSprites?: boolean;
23
+ };
24
+ /**
25
+ * Manager for tasks related to screenshots
26
+ */
27
+ export declare class ScreenshotManager {
28
+ protected viewer: Viewer;
29
+ /** @internal */
30
+ constructor(viewer: Viewer);
31
+ /**
32
+ * Takes a sceenshot the the current scene.\
33
+ * The result is a string containing a base64 encoded image.
34
+ */
35
+ takeScreenshot(settings?: ScreenshotSettings): Promise<string>;
36
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ScreenshotManager = void 0;
13
+ const index_1 = require("../index");
14
+ /**
15
+ * Manager for tasks related to screenshots
16
+ */
17
+ class ScreenshotManager {
18
+ /** @internal */
19
+ constructor(viewer) {
20
+ this.viewer = viewer;
21
+ }
22
+ /**
23
+ * Takes a sceenshot the the current scene.\
24
+ * The result is a string containing a base64 encoded image.
25
+ */
26
+ takeScreenshot(settings) {
27
+ var _a;
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ // in combination with a render target, we need to refresh the scene manually to get the latest view
30
+ this.viewer.scene.render();
31
+ const size = (_a = settings === null || settings === void 0 ? void 0 : settings.size) !== null && _a !== void 0 ? _a : { width: this.viewer.canvas.clientWidth, height: this.viewer.canvas.clientHeight };
32
+ const imageStr = yield index_1.ScreenshotTools.CreateScreenshotUsingRenderTargetAsync(this.viewer.engine,
33
+ // mark as non-nullable as we wouldn't come this far if no camera is active anyway
34
+ this.viewer.scene.activeCamera, size, settings === null || settings === void 0 ? void 0 : settings.mimeType, settings === null || settings === void 0 ? void 0 : settings.samples, settings === null || settings === void 0 ? void 0 : settings.antialiasing, settings === null || settings === void 0 ? void 0 : settings.fileName, settings === null || settings === void 0 ? void 0 : settings.renderSprites);
35
+ return imageStr;
36
+ });
37
+ }
38
+ }
39
+ exports.ScreenshotManager = ScreenshotManager;
40
+ //# sourceMappingURL=screenshotManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenshotManager.js","sourceRoot":"","sources":["../../../src/manager/screenshotManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAAoE;AA2BpE;;GAEG;AACH,MAAa,iBAAiB;IAC5B,gBAAgB;IAChB,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C;;;OAGG;IACU,cAAc,CAAC,QAA6B;;;YACvD,oGAAoG;YACpG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAE3B,MAAM,IAAI,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,mCAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAElH,MAAM,QAAQ,GAAG,MAAM,uBAAe,CAAC,sCAAsC,CAC3E,IAAI,CAAC,MAAM,CAAC,MAAM;YAClB,kFAAkF;YAClF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAa,EAC/B,IAAI,EACJ,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,EAClB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,EACjB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,EACtB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,EAClB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,aAAa,CACxB,CAAC;YAEF,OAAO,QAAQ,CAAC;;KACjB;CACF;AA5BD,8CA4BC"}
@@ -0,0 +1,12 @@
1
+ import { BaseTexture, Viewer } from '../index';
2
+ /**
3
+ * Manager for texture related tasks, like renaming textures that are based on Combeenation image assets.\
4
+ * Doesn't have any public functionalities ATM.
5
+ *
6
+ * @internal
7
+ */
8
+ export declare class TextureManager {
9
+ protected viewer: Viewer;
10
+ constructor(viewer: Viewer);
11
+ protected _onTextureAdded(texture: BaseTexture): Promise<void>;
12
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TextureManager = void 0;
13
+ /**
14
+ * Manager for texture related tasks, like renaming textures that are based on Combeenation image assets.\
15
+ * Doesn't have any public functionalities ATM.
16
+ *
17
+ * @internal
18
+ */
19
+ class TextureManager {
20
+ constructor(viewer) {
21
+ this.viewer = viewer;
22
+ this.viewer.scene.onNewTextureAddedObservable.add(texture => this._onTextureAdded(texture));
23
+ }
24
+ _onTextureAdded(texture) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ // Workaround:
27
+ // The texture object is not fully created when the "added observable" is called. E.g. the function
28
+ // `onLoadObservable` is not there at that point and the name is not even set.
29
+ // More details: https://forum.babylonjs.com/t/basetexture-whenallready-returns-too-early/34501/4
30
+ yield new Promise(resolve => window.setTimeout(resolve, 0));
31
+ // textures based CBN image assets are hard to analyse in the inspector, since the asset url is set as name
32
+ // with this functionality we try to find these CBN image assets and crop the name accordingly
33
+ // => see CB-9558
34
+ const isUrl = texture.name.startsWith('https://');
35
+ const textureQueryString = '?name=';
36
+ const indexOfTextureQueryParam = texture.name.lastIndexOf(textureQueryString);
37
+ if (isUrl && indexOfTextureQueryParam > -1) {
38
+ texture.name = texture.name.substring(indexOfTextureQueryParam + textureQueryString.length);
39
+ }
40
+ });
41
+ }
42
+ }
43
+ exports.TextureManager = TextureManager;
44
+ //# sourceMappingURL=textureManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textureManager.js","sourceRoot":"","sources":["../../../src/manager/textureManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA;;;;;GAKG;AACH,MAAa,cAAc;IACzB,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC;IAEe,eAAe,CAAC,OAAoB;;YAClD,cAAc;YACd,mGAAmG;YACnG,8EAA8E;YAC9E,iGAAiG;YACjG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAE5D,2GAA2G;YAC3G,8FAA8F;YAC9F,iBAAiB;YACjB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,kBAAkB,GAAG,QAAQ,CAAC;YACpC,MAAM,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YAE9E,IAAI,KAAK,IAAI,wBAAwB,GAAG,CAAC,CAAC,EAAE;gBAC1C,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;aAC7F;QACH,CAAC;KAAA;CACF;AAvBD,wCAuBC"}
@@ -0,0 +1,117 @@
1
+ import * as Index from './index';
2
+ import { BoundingInfo, CameraManager, DebugManager, DefaultSceneSettings, Engine, EngineOptions, EventManager, GltfExportManager, MaterialManager, ModelManager, ParameterManager, ParameterSubject, Scene, SceneManager, ScreenshotManager, TextureManager, TransformNode } from './index';
3
+ /**
4
+ * Use this to define geometry to be excluded from autofocus, GLB export, etc.
5
+ */
6
+ export declare type ExcludedGeometry = TransformNode | ParameterSubject;
7
+ export declare type ExcludedGeometryList = ExcludedGeometry[];
8
+ export declare type LimitTextureSizeConfig = {
9
+ size: 512 | 1024;
10
+ devices: 'iPhone' | 'all';
11
+ };
12
+ export declare type ViewerSettings = {
13
+ antialiasing: boolean;
14
+ engineOptions: EngineOptions;
15
+ /**
16
+ * Important for visual quality on iOS devices, this setting will set the hardware scaling proportional to the devices
17
+ * pixel ratio
18
+ */
19
+ adaptToDeviceRatio: boolean;
20
+ /**
21
+ * Possibility to limit the size of textures when getting loaded by the engine.\
22
+ * Activating this feature potentially saves a lot of memory and can be used to avoid crashes when loading expensive
23
+ * models on weaker devices.\
24
+ * In praxis this has been an issue with iPhones a lot, therefore it's possible to activate this feature for iPhones
25
+ * only as well.
26
+ */
27
+ limitTextureSize: LimitTextureSizeConfig | false;
28
+ /**
29
+ * See this forum entry for description of parallel shader compilition effect:
30
+ * https://forum.babylonjs.com/t/scene-flickering-when-turning-off-light/48733.\
31
+ * Parallel shading compilition generally improves the speed of material compilition and helps when switching
32
+ * materials while objects are moving (eg: animations).\
33
+ * Deactivating parallel shading compilition is benefitial when switching lights and materials in static scenarios.\
34
+ * It's activated by default due to compatibility reasons but can be overwritten with this flag.
35
+ */
36
+ useParallelShaderCompile: boolean;
37
+ };
38
+ /**
39
+ * This is the entry point into the application.\
40
+ * Create an instance to set up the viewer on your canvas.
41
+ * ```js
42
+ * const canvas = document.getElementById('babylon-canvas');
43
+ * const viewer = Viewer(canvas, viewerSettings, defaultSceneSettings);
44
+ * ```
45
+ * Use "manager" sub classes for interacting with the Babylon.js engine.
46
+ * (e.g. `modelManager` for loading models into the scene)
47
+ */
48
+ export declare class Viewer {
49
+ readonly canvas: HTMLCanvasElement;
50
+ static readonly version: string;
51
+ protected _scene: Scene;
52
+ protected _cameraManager: CameraManager;
53
+ protected _debugManager: DebugManager;
54
+ protected _eventManager: EventManager;
55
+ protected _gltfExportManager: GltfExportManager;
56
+ protected _materialManager: MaterialManager;
57
+ protected _modelManager: ModelManager;
58
+ protected _parameterManager: ParameterManager;
59
+ protected _sceneManager: SceneManager;
60
+ protected _screenshotManager: ScreenshotManager;
61
+ protected _textureManager: TextureManager;
62
+ protected _viewerSettings: ViewerSettings;
63
+ protected _isRenderLoopPaused: boolean;
64
+ get scene(): Scene;
65
+ get engine(): Engine;
66
+ get cameraManager(): CameraManager;
67
+ get debugManager(): DebugManager;
68
+ get eventManager(): EventManager;
69
+ get gltfExportManager(): GltfExportManager;
70
+ get materialManager(): MaterialManager;
71
+ get modelManager(): ModelManager;
72
+ get parameterManager(): ParameterManager;
73
+ /** @internal */
74
+ get sceneManager(): SceneManager;
75
+ get screenshotManager(): ScreenshotManager;
76
+ /** @internal */
77
+ get textureManager(): TextureManager;
78
+ get viewerSettings(): ViewerSettings;
79
+ /**
80
+ * Returns all modules which are exported by the viewers index file.\
81
+ * Needed by the [Combeenation viewer control](https://docs.combeenation.com/docs/3d-viewer-control) in situations where the viewer is injected from external code.\
82
+ * See [Combeenation docs](https://docs.combeenation.com/docs/3d-viewer-control-with-custom-js) for more details.
83
+ */
84
+ static getAllViewerModules(): typeof Index;
85
+ /**
86
+ * @param viewerSettings Can be overwritten to tweak settings for the Babylon.js engine or viewer internal
87
+ * functionalities like "texture downscaling mode"
88
+ * @param defaultSceneSettings Can be overwritten to tweak settings for the automatically create Babylon.js scene.\
89
+ * This scene contains a camera and an environment per default.
90
+ */
91
+ constructor(canvas: HTMLCanvasElement, viewerSettings?: DeepPartial<ViewerSettings>, defaultSceneSettings?: DeepPartial<DefaultSceneSettings>);
92
+ /**
93
+ * Pause rendering can be usefull when doing internal scene processings that should not be visible to the user,
94
+ * e.g. cloning meshes for gltf export
95
+ */
96
+ pauseRendering(): void;
97
+ /**
98
+ * Resume render loop when paused by {@link pauseRendering} function
99
+ */
100
+ resumeRendering(): void;
101
+ /**
102
+ * Destroys this viewer instance and disposes Babylon.js engine and all scene content
103
+ */
104
+ destroy(): void;
105
+ /**
106
+ * Calculates size of the current scene.\
107
+ * Only takes meshes into considerations that:
108
+ * - are visible
109
+ * - are not excluded by "excludeGeometry" parameter
110
+ * - do not have an infinite distance (like sky boxes)
111
+ */
112
+ calculateBoundingInfo(excludeGeometry?: ExcludedGeometryList): BoundingInfo;
113
+ /**
114
+ * Set up viewer (engine and scene) and initialize all managers
115
+ */
116
+ protected _init(defaultSceneSettings?: DeepPartial<DefaultSceneSettings>): void;
117
+ }
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
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;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.Viewer = void 0;
30
+ const buildinfo_json_1 = __importDefault(require("./buildinfo.json"));
31
+ const Index = __importStar(require("./index"));
32
+ const index_1 = require("./index");
33
+ const cbnCustomBabylonLoaderPlugin_1 = require("./internal/cbnCustomBabylonLoaderPlugin");
34
+ const deviceHelper_1 = require("./internal/deviceHelper");
35
+ const geometryHelper_1 = require("./internal/geometryHelper");
36
+ const lodash_es_1 = require("lodash-es");
37
+ /**
38
+ * This is the entry point into the application.\
39
+ * Create an instance to set up the viewer on your canvas.
40
+ * ```js
41
+ * const canvas = document.getElementById('babylon-canvas');
42
+ * const viewer = Viewer(canvas, viewerSettings, defaultSceneSettings);
43
+ * ```
44
+ * Use "manager" sub classes for interacting with the Babylon.js engine.
45
+ * (e.g. `modelManager` for loading models into the scene)
46
+ */
47
+ class Viewer {
48
+ /**
49
+ * @param viewerSettings Can be overwritten to tweak settings for the Babylon.js engine or viewer internal
50
+ * functionalities like "texture downscaling mode"
51
+ * @param defaultSceneSettings Can be overwritten to tweak settings for the automatically create Babylon.js scene.\
52
+ * This scene contains a camera and an environment per default.
53
+ */
54
+ constructor(canvas, viewerSettings, defaultSceneSettings) {
55
+ this.canvas = canvas;
56
+ // default viewer settings
57
+ // will be overwritten in the viewer constructor
58
+ this._viewerSettings = {
59
+ antialiasing: true,
60
+ engineOptions: {
61
+ preserveDrawingBuffer: true,
62
+ stencil: true,
63
+ xrCompatible: false,
64
+ },
65
+ adaptToDeviceRatio: true,
66
+ limitTextureSize: {
67
+ devices: 'iPhone',
68
+ size: 1024,
69
+ },
70
+ useParallelShaderCompile: true,
71
+ };
72
+ this._isRenderLoopPaused = false;
73
+ (0, lodash_es_1.merge)(this._viewerSettings, viewerSettings);
74
+ this._init(defaultSceneSettings);
75
+ }
76
+ get scene() {
77
+ return this._scene;
78
+ }
79
+ get engine() {
80
+ return this.scene.getEngine();
81
+ }
82
+ get cameraManager() {
83
+ return this._cameraManager;
84
+ }
85
+ get debugManager() {
86
+ return this._debugManager;
87
+ }
88
+ get eventManager() {
89
+ return this._eventManager;
90
+ }
91
+ get gltfExportManager() {
92
+ return this._gltfExportManager;
93
+ }
94
+ get materialManager() {
95
+ return this._materialManager;
96
+ }
97
+ get modelManager() {
98
+ return this._modelManager;
99
+ }
100
+ get parameterManager() {
101
+ return this._parameterManager;
102
+ }
103
+ /** @internal */
104
+ get sceneManager() {
105
+ return this._sceneManager;
106
+ }
107
+ get screenshotManager() {
108
+ return this._screenshotManager;
109
+ }
110
+ /** @internal */
111
+ get textureManager() {
112
+ return this._textureManager;
113
+ }
114
+ get viewerSettings() {
115
+ return this._viewerSettings;
116
+ }
117
+ /**
118
+ * Returns all modules which are exported by the viewers index file.\
119
+ * Needed by the [Combeenation viewer control](https://docs.combeenation.com/docs/3d-viewer-control) in situations where the viewer is injected from external code.\
120
+ * See [Combeenation docs](https://docs.combeenation.com/docs/3d-viewer-control-with-custom-js) for more details.
121
+ */
122
+ static getAllViewerModules() {
123
+ return Index;
124
+ }
125
+ /**
126
+ * Pause rendering can be usefull when doing internal scene processings that should not be visible to the user,
127
+ * e.g. cloning meshes for gltf export
128
+ */
129
+ pauseRendering() {
130
+ this._isRenderLoopPaused = true;
131
+ }
132
+ /**
133
+ * Resume render loop when paused by {@link pauseRendering} function
134
+ */
135
+ resumeRendering() {
136
+ this._isRenderLoopPaused = false;
137
+ }
138
+ /**
139
+ * Destroys this viewer instance and disposes Babylon.js engine and all scene content
140
+ */
141
+ destroy() {
142
+ this.eventManager.removeAllListeners();
143
+ this.engine.dispose();
144
+ }
145
+ /**
146
+ * Calculates size of the current scene.\
147
+ * Only takes meshes into considerations that:
148
+ * - are visible
149
+ * - are not excluded by "excludeGeometry" parameter
150
+ * - do not have an infinite distance (like sky boxes)
151
+ */
152
+ calculateBoundingInfo(excludeGeometry) {
153
+ // CB-6062: workaround for BoundingBox not respecting render loop
154
+ this.scene.render();
155
+ const { max, min } = this.scene.meshes
156
+ .filter(mesh => {
157
+ const isEnabled = mesh.isEnabled();
158
+ // ignore meshes with invalid bounding infos
159
+ const hasValidBBoxInfo = mesh.getBoundingInfo().boundingSphere.radius > 0;
160
+ // ignore meshes with infinite distance, typically these are sky boxes
161
+ const hasInfiniteDistance = mesh.infiniteDistance;
162
+ // ignore excluded meshes
163
+ const isExcluded = excludeGeometry ? (0, geometryHelper_1.isNodeExcluded)(mesh, excludeGeometry) : false;
164
+ return isEnabled && hasValidBBoxInfo && !hasInfiniteDistance && !isExcluded;
165
+ })
166
+ .reduce((accBBoxMinMax, curMesh, idx) => {
167
+ curMesh.refreshBoundingInfo(true, true);
168
+ const bBox = curMesh.getBoundingInfo().boundingBox;
169
+ // use the first entry in the array as default value and get the resulting maximum/minimum values
170
+ const max = idx === 0 ? bBox.maximumWorld : index_1.Vector3.Maximize(accBBoxMinMax.max, bBox.maximumWorld);
171
+ const min = idx === 0 ? bBox.minimumWorld : index_1.Vector3.Minimize(accBBoxMinMax.min, bBox.minimumWorld);
172
+ return { max, min };
173
+ }, { max: new index_1.Vector3(), min: new index_1.Vector3() });
174
+ const boundingInfo = new index_1.BoundingInfo(min, max);
175
+ return boundingInfo;
176
+ }
177
+ /**
178
+ * Set up viewer (engine and scene) and initialize all managers
179
+ */
180
+ _init(defaultSceneSettings) {
181
+ // we use a custom plugin for ".babylon" files to be able to lazy load materials that were cropped by the CBN
182
+ // asset manager
183
+ (0, cbnCustomBabylonLoaderPlugin_1.registerCustomCbnBabylonLoaderPlugin)();
184
+ const engine = new index_1.Engine(this.canvas, this._viewerSettings.antialiasing, (0, lodash_es_1.cloneDeep)(this._viewerSettings.engineOptions), this._viewerSettings.adaptToDeviceRatio);
185
+ const isScaledDownDevice = (0, deviceHelper_1.getIsScaledDownDevice)(this._viewerSettings.limitTextureSize);
186
+ if (this._viewerSettings.limitTextureSize && isScaledDownDevice) {
187
+ engine.getCaps().maxTextureSize = this._viewerSettings.limitTextureSize.size;
188
+ }
189
+ if (this._viewerSettings.useParallelShaderCompile === false) {
190
+ engine.getCaps().parallelShaderCompile = undefined;
191
+ }
192
+ this._scene = new index_1.Scene(engine);
193
+ // NOTE: order of manage seems to be a bit counter intuitive as it's sorted alphabetically
194
+ // semantically one would start with scene manager, etc...
195
+ // still this is a good test as the order of manager constructors should not matter
196
+ this._cameraManager = new index_1.CameraManager(this);
197
+ this._debugManager = new index_1.DebugManager(this);
198
+ this._eventManager = new index_1.EventManager(this);
199
+ this._gltfExportManager = new index_1.GltfExportManager(this);
200
+ this._materialManager = new index_1.MaterialManager(this);
201
+ this._modelManager = new index_1.ModelManager(this);
202
+ this._parameterManager = new index_1.ParameterManager(this);
203
+ this._sceneManager = new index_1.SceneManager(this, defaultSceneSettings);
204
+ this._screenshotManager = new index_1.ScreenshotManager(this);
205
+ this._textureManager = new index_1.TextureManager(this);
206
+ // creates black cube
207
+ // this model is not based on an URL and can be targeted by the Combeenation backend as fallback model
208
+ this._modelManager.createFallbackModel();
209
+ // NOTE: ATM creating the default scene required, as otherwise no camera would be available and the first render
210
+ // call would already throw
211
+ this._sceneManager.applyDefaultSettingsToScene();
212
+ this._debugManager.registerAutofocusStartListener();
213
+ engine.runRenderLoop(() => {
214
+ if (!this._isRenderLoopPaused) {
215
+ this.scene.render();
216
+ }
217
+ });
218
+ }
219
+ }
220
+ exports.Viewer = Viewer;
221
+ Viewer.version = buildinfo_json_1.default.version;
222
+ //# sourceMappingURL=viewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/viewer.ts"],"names":[],"mappings":"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"}
@@ -15,12 +15,17 @@ declare type ViewerErrorData = {
15
15
  *
16
16
  * IDs here shall only include "word characters" (`/w` in RegEx) as `GetViewerErrorIdFromMsg` wouldn't work correctly
17
17
  * otherwise.
18
+ * @internal
18
19
  */
19
20
  export declare const ViewerErrorIds: {
20
21
  InvalidParameterValue: string;
21
- UnknownParameterOption: string;
22
+ ModelNotRegistered: string;
23
+ ModelAlreadyExists: string;
24
+ ModelIsNotAClone: string;
22
25
  AssetLoadingFailed: string;
26
+ MaterialCouldNotBeParsed: string;
23
27
  };
28
+ /** @internal */
24
29
  export declare class ViewerError extends Error {
25
30
  viewerErrorId: string;
26
31
  constructor(data: ViewerErrorData);
@@ -13,12 +13,17 @@ exports.ViewerError = exports.ViewerErrorIds = void 0;
13
13
  *
14
14
  * IDs here shall only include "word characters" (`/w` in RegEx) as `GetViewerErrorIdFromMsg` wouldn't work correctly
15
15
  * otherwise.
16
+ * @internal
16
17
  */
17
18
  exports.ViewerErrorIds = {
18
19
  InvalidParameterValue: 'InvalidParameterValue',
19
- UnknownParameterOption: 'UnknownParameterOption',
20
+ ModelNotRegistered: 'ModelNotRegistered',
21
+ ModelAlreadyExists: 'ModelAlreadyExists',
22
+ ModelIsNotAClone: 'ModelIsNotAClone',
20
23
  AssetLoadingFailed: 'AssetLoadingFailed',
24
+ MaterialCouldNotBeParsed: 'MaterialCouldNotBeParsed',
21
25
  };
26
+ /** @internal */
22
27
  class ViewerError extends Error {
23
28
  constructor(data) {
24
29
  // Unfortunately we can't access the custom `viewerErrorId` property when catching global errors in Combeenation so
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewerError.js","sourceRoot":"","sources":["../../src/viewerError.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAQH;;;;;;;;GAQG;AACU,QAAA,cAAc,GAAG;IAC5B,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,gBAAgB,EAAE,kBAAkB;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,wBAAwB,EAAE,0BAA0B;CACrD,CAAC;AAEF,gBAAgB;AAChB,MAAa,WAAY,SAAQ,KAAK;IAGpC,YAAY,IAAqB;QAC/B,mHAAmH;QACnH,oDAAoD;QACpD,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,mBAAmB,CAAC,OAAe;;QACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzD,SAAS;QACT,2CAA2C;QAC3C,uCAAuC;QACvC,kGAAkG;QAClG,wCAAwC;QACxC,2GAA2G;QAC3G,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,GAAG,QAAQ,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnF,MAAM,EAAE,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,GAAG,KAAI,OAAO,CAAC;QAE3C,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;IACrB,CAAC;CACF;AApCD,kCAoCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@combeenation/3d-viewer",
3
- "version": "12.4.1",
3
+ "version": "13.0.0",
4
4
  "description": "Combeenation 3D Viewer",
5
5
  "homepage": "https://github.com/Combeenation/3d-viewer#readme",
6
6
  "bugs": {
@@ -46,11 +46,10 @@
46
46
  },
47
47
  "prettier": "@combeenation/prettier-config",
48
48
  "dependencies": {
49
- "@babylonjs/core": "6.27.1",
50
- "@babylonjs/loaders": "6.27.1",
51
- "@babylonjs/serializers": "6.27.1",
49
+ "@babylonjs/core": "7.0.0",
50
+ "@babylonjs/loaders": "7.0.0",
51
+ "@babylonjs/serializers": "7.0.0",
52
52
  "eventemitter3": "4.0.7",
53
- "gsap": "3.11.2",
54
53
  "is-svg": "^5.0.0",
55
54
  "lodash-es": "4.17.21"
56
55
  },
@@ -79,12 +78,12 @@
79
78
  "webpack-merge": "5.8.0"
80
79
  },
81
80
  "optionalDependencies": {
82
- "@babylonjs/gui": "6.27.1",
83
- "@babylonjs/gui-editor": "6.27.1",
84
- "@babylonjs/inspector": "6.27.1",
85
- "@babylonjs/materials": "6.27.1",
86
- "@babylonjs/node-editor": "6.27.1",
87
- "@babylonjs/node-geometry-editor": "6.27.1"
81
+ "@babylonjs/gui": "7.0.0",
82
+ "@babylonjs/gui-editor": "7.0.0",
83
+ "@babylonjs/inspector": "7.0.0",
84
+ "@babylonjs/materials": "7.0.0",
85
+ "@babylonjs/node-editor": "7.0.0",
86
+ "@babylonjs/node-geometry-editor": "7.0.0"
88
87
  },
89
88
  "optionalDependenciesComments": {
90
89
  "@babylonjs": "Defining the inspector package (and it's dependencies) as optional is required to omit these packages in the production build of the CBN react-app (see CB-9269)"