@combeenation/3d-viewer 7.1.1 → 7.1.2

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 (115) hide show
  1. package/README.md +111 -111
  2. package/dist/lib-cjs/api/classes/animationInterface.d.ts +8 -8
  3. package/dist/lib-cjs/api/classes/animationInterface.js +2 -2
  4. package/dist/lib-cjs/api/classes/dottedPath.d.ts +79 -79
  5. package/dist/lib-cjs/api/classes/dottedPath.js +166 -166
  6. package/dist/lib-cjs/api/classes/element.d.ts +153 -153
  7. package/dist/lib-cjs/api/classes/element.js +672 -670
  8. package/dist/lib-cjs/api/classes/element.js.map +1 -1
  9. package/dist/lib-cjs/api/classes/event.d.ts +401 -396
  10. package/dist/lib-cjs/api/classes/event.js +424 -419
  11. package/dist/lib-cjs/api/classes/event.js.map +1 -1
  12. package/dist/lib-cjs/api/classes/eventBroadcaster.d.ts +26 -26
  13. package/dist/lib-cjs/api/classes/eventBroadcaster.js +49 -49
  14. package/dist/lib-cjs/api/classes/fuzzyMap.d.ts +7 -7
  15. package/dist/lib-cjs/api/classes/fuzzyMap.js +21 -21
  16. package/dist/lib-cjs/api/classes/parameter.d.ts +351 -351
  17. package/dist/lib-cjs/api/classes/parameter.js +524 -517
  18. package/dist/lib-cjs/api/classes/parameter.js.map +1 -1
  19. package/dist/lib-cjs/api/classes/parameterObservable.d.ts +36 -36
  20. package/dist/lib-cjs/api/classes/parameterObservable.js +72 -72
  21. package/dist/lib-cjs/api/classes/parameterizable.d.ts +15 -15
  22. package/dist/lib-cjs/api/classes/parameterizable.js +102 -102
  23. package/dist/lib-cjs/api/classes/placementAnimation.d.ts +45 -45
  24. package/dist/lib-cjs/api/classes/placementAnimation.js +176 -176
  25. package/dist/lib-cjs/api/classes/variant.d.ts +253 -253
  26. package/dist/lib-cjs/api/classes/variant.js +858 -843
  27. package/dist/lib-cjs/api/classes/variant.js.map +1 -1
  28. package/dist/lib-cjs/api/classes/variantInstance.d.ts +53 -53
  29. package/dist/lib-cjs/api/classes/variantInstance.js +125 -125
  30. package/dist/lib-cjs/api/classes/variantParameterizable.d.ts +17 -17
  31. package/dist/lib-cjs/api/classes/variantParameterizable.js +86 -88
  32. package/dist/lib-cjs/api/classes/variantParameterizable.js.map +1 -1
  33. package/dist/lib-cjs/api/classes/viewer.d.ts +204 -200
  34. package/dist/lib-cjs/api/classes/viewer.js +682 -670
  35. package/dist/lib-cjs/api/classes/viewer.js.map +1 -1
  36. package/dist/lib-cjs/api/classes/viewerError.d.ts +43 -0
  37. package/dist/lib-cjs/api/classes/viewerError.js +56 -0
  38. package/dist/lib-cjs/api/classes/viewerError.js.map +1 -0
  39. package/dist/lib-cjs/api/classes/viewerLight.d.ts +66 -66
  40. package/dist/lib-cjs/api/classes/viewerLight.js +348 -348
  41. package/dist/lib-cjs/api/internal/lensRendering.d.ts +8 -8
  42. package/dist/lib-cjs/api/internal/lensRendering.js +11 -11
  43. package/dist/lib-cjs/api/internal/sceneSetup.d.ts +13 -13
  44. package/dist/lib-cjs/api/internal/sceneSetup.js +226 -226
  45. package/dist/lib-cjs/api/manager/animationManager.d.ts +30 -30
  46. package/dist/lib-cjs/api/manager/animationManager.js +126 -126
  47. package/dist/lib-cjs/api/manager/gltfExportManager.d.ts +79 -79
  48. package/dist/lib-cjs/api/manager/gltfExportManager.js +242 -242
  49. package/dist/lib-cjs/api/manager/sceneManager.d.ts +33 -33
  50. package/dist/lib-cjs/api/manager/sceneManager.js +128 -130
  51. package/dist/lib-cjs/api/manager/sceneManager.js.map +1 -1
  52. package/dist/lib-cjs/api/manager/tagManager.d.ts +116 -109
  53. package/dist/lib-cjs/api/manager/tagManager.js +444 -425
  54. package/dist/lib-cjs/api/manager/tagManager.js.map +1 -1
  55. package/dist/lib-cjs/api/manager/textureLoadManager.d.ts +22 -22
  56. package/dist/lib-cjs/api/manager/textureLoadManager.js +97 -97
  57. package/dist/lib-cjs/api/manager/variantInstanceManager.d.ts +106 -106
  58. package/dist/lib-cjs/api/manager/variantInstanceManager.js +292 -292
  59. package/dist/lib-cjs/api/store/specStorage.d.ts +32 -32
  60. package/dist/lib-cjs/api/store/specStorage.js +65 -65
  61. package/dist/lib-cjs/api/util/babylonHelper.d.ts +235 -235
  62. package/dist/lib-cjs/api/util/babylonHelper.js +753 -753
  63. package/dist/lib-cjs/api/util/globalTypes.d.ts +441 -437
  64. package/dist/lib-cjs/api/util/globalTypes.js +1 -1
  65. package/dist/lib-cjs/api/util/resourceHelper.d.ts +58 -58
  66. package/dist/lib-cjs/api/util/resourceHelper.js +203 -203
  67. package/dist/lib-cjs/api/util/sceneLoaderHelper.d.ts +44 -44
  68. package/dist/lib-cjs/api/util/sceneLoaderHelper.js +175 -175
  69. package/dist/lib-cjs/api/util/stringHelper.d.ts +13 -13
  70. package/dist/lib-cjs/api/util/stringHelper.js +32 -32
  71. package/dist/lib-cjs/api/util/structureHelper.d.ts +9 -9
  72. package/dist/lib-cjs/api/util/structureHelper.js +57 -48
  73. package/dist/lib-cjs/api/util/structureHelper.js.map +1 -1
  74. package/dist/lib-cjs/buildinfo.json +3 -3
  75. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  76. package/dist/lib-cjs/index.d.ts +54 -53
  77. package/dist/lib-cjs/index.js +117 -114
  78. package/dist/lib-cjs/index.js.map +1 -1
  79. package/package.json +81 -81
  80. package/src/api/classes/animationInterface.ts +10 -10
  81. package/src/api/classes/dottedPath.ts +181 -181
  82. package/src/api/classes/element.ts +733 -731
  83. package/src/api/classes/event.ts +457 -452
  84. package/src/api/classes/eventBroadcaster.ts +52 -52
  85. package/src/api/classes/fuzzyMap.ts +21 -21
  86. package/src/api/classes/parameter.ts +561 -554
  87. package/src/api/classes/parameterObservable.ts +73 -73
  88. package/src/api/classes/parameterizable.ts +87 -87
  89. package/src/api/classes/placementAnimation.ts +162 -162
  90. package/src/api/classes/variant.ts +949 -933
  91. package/src/api/classes/variantInstance.ts +123 -123
  92. package/src/api/classes/variantParameterizable.ts +83 -85
  93. package/src/api/classes/viewer.ts +760 -744
  94. package/src/api/classes/viewerError.ts +63 -0
  95. package/src/api/classes/viewerLight.ts +339 -339
  96. package/src/api/internal/debugViewer.ts +90 -90
  97. package/src/api/internal/lensRendering.ts +9 -9
  98. package/src/api/internal/sceneSetup.ts +205 -205
  99. package/src/api/manager/animationManager.ts +143 -143
  100. package/src/api/manager/gltfExportManager.ts +237 -237
  101. package/src/api/manager/sceneManager.ts +134 -136
  102. package/src/api/manager/tagManager.ts +477 -457
  103. package/src/api/manager/textureLoadManager.ts +95 -95
  104. package/src/api/manager/variantInstanceManager.ts +309 -309
  105. package/src/api/store/specStorage.ts +68 -68
  106. package/src/api/util/babylonHelper.ts +823 -823
  107. package/src/api/util/globalTypes.ts +508 -504
  108. package/src/api/util/resourceHelper.ts +191 -191
  109. package/src/api/util/sceneLoaderHelper.ts +170 -170
  110. package/src/api/util/stringHelper.ts +30 -30
  111. package/src/api/util/structureHelper.ts +58 -49
  112. package/src/buildinfo.json +3 -3
  113. package/src/dev.ts +62 -62
  114. package/src/index.ts +103 -100
  115. package/src/types.d.ts +38 -38
@@ -1,143 +1,143 @@
1
- import { AnimationInterface } from '../classes/animationInterface';
2
- import { PlacementAnimation } from '../classes/placementAnimation';
3
- import { Animation as BabylonAnimation } from '@babylonjs/core/Animations/animation';
4
- import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera';
5
- import { Scene as BabylonScene } from '@babylonjs/core/scene';
6
- import { Nullable } from '@babylonjs/core/types';
7
- //import { CustomEase } from 'gsap/CustomEase';
8
- //import { ExpoScaleEase, RoughEase, SlowMo } from 'gsap/EasePack';
9
- import { remove } from 'lodash-es';
10
-
11
- //gsap.registerPlugin( CustomEase, ExpoScaleEase, RoughEase, SlowMo );
12
-
13
- export class AnimationManager {
14
- public animations: AnimationInterface[] = [];
15
-
16
- /**
17
- * Constructor.
18
- */
19
- protected constructor(protected scene: BabylonScene) {}
20
-
21
- /**
22
- * Creates an {@link AnimationManager} based on given Babylon.js scene.
23
- */
24
- public static async create(scene: BabylonScene): Promise<AnimationManager> {
25
- return new AnimationManager(scene);
26
- }
27
-
28
- /**
29
- * @deprecated Use viewer.moveCameraTo().
30
- */
31
- public resetCamera(animate: boolean = false) {
32
- //TODO currently only works for arcrotate. are there any other cameras?
33
- const activeCamera = this.scene.activeCamera as Nullable<ArcRotateCamera>;
34
- if (!activeCamera) {
35
- throw new Error('There is no active camera');
36
- }
37
-
38
- const initAlpha = activeCamera.metadata.alpha;
39
- const initBeta = activeCamera.metadata.beta;
40
- const initRadius = activeCamera.metadata.radius;
41
-
42
- if (animate) {
43
- this.animateArcRotateCamera(initAlpha, initBeta, initRadius);
44
- } else {
45
- activeCamera.alpha = initAlpha;
46
- activeCamera.beta = initBeta;
47
- activeCamera.radius = initRadius;
48
- }
49
- }
50
-
51
- /**
52
- * @deprecated Use viewer.moveCameraTo().
53
- */
54
- public animateArcRotateCamera(targetAlpha: number, targetBeta: number, targetRadius: number) {
55
- const activeCamera = this.scene.activeCamera as Nullable<ArcRotateCamera>;
56
- if (!activeCamera) {
57
- throw new Error('There is no active camera');
58
- }
59
- const alphaAnimation = new BabylonAnimation(
60
- 'alphaAnimation',
61
- 'alpha',
62
- 30,
63
- BabylonAnimation.ANIMATIONTYPE_FLOAT,
64
- BabylonAnimation.ANIMATIONLOOPMODE_CONSTANT
65
- );
66
- const betaAnimation = new BabylonAnimation(
67
- 'betaAnimation',
68
- 'beta',
69
- 30,
70
- BabylonAnimation.ANIMATIONTYPE_FLOAT,
71
- BabylonAnimation.ANIMATIONLOOPMODE_CONSTANT
72
- );
73
- const radiusAnimation = new BabylonAnimation(
74
- 'radiusAnimation',
75
- 'radius',
76
- 30,
77
- BabylonAnimation.ANIMATIONTYPE_FLOAT,
78
- BabylonAnimation.ANIMATIONLOOPMODE_CONSTANT
79
- );
80
- alphaAnimation.setKeys([
81
- {
82
- frame: 0,
83
- value: activeCamera.alpha,
84
- },
85
- {
86
- frame: 100,
87
- value: targetAlpha,
88
- },
89
- ]);
90
- betaAnimation.setKeys([
91
- {
92
- frame: 0,
93
- value: activeCamera.beta,
94
- },
95
- {
96
- frame: 100,
97
- value: targetBeta,
98
- },
99
- ]);
100
- radiusAnimation.setKeys([
101
- {
102
- frame: 0,
103
- value: activeCamera.radius,
104
- },
105
- {
106
- frame: 100,
107
- value: targetRadius,
108
- },
109
- ]);
110
- activeCamera.animations.push(alphaAnimation);
111
- activeCamera.animations.push(betaAnimation);
112
- activeCamera.animations.push(radiusAnimation);
113
-
114
- const animation = this.scene.beginAnimation(activeCamera, 0, 100, false, 10);
115
- animation.disposeOnEnd = true;
116
- }
117
-
118
- /**
119
- * Stops and kills all running animations.
120
- */
121
- public killAllAnimations() {
122
- this.animations.forEach(animation => animation.kill());
123
- this.animations = [];
124
- }
125
-
126
- /**
127
- * @see {@link PlacementAnimation.play}
128
- */
129
- public async animateToPlacement(
130
- mutable: object,
131
- placement: PlacementDefinition | string,
132
- animation?: AnimationDefinition | string
133
- ): Promise<AnimationInterface> {
134
- const _animation = new PlacementAnimation(mutable, placement, animation);
135
- this.animations.push(_animation);
136
- const animationPromise = _animation.play();
137
- animationPromise.then(a => {
138
- remove(this.animations, _a => _a === a);
139
- a.kill();
140
- });
141
- return await animationPromise;
142
- }
143
- }
1
+ import { AnimationInterface } from '../classes/animationInterface';
2
+ import { PlacementAnimation } from '../classes/placementAnimation';
3
+ import { Animation as BabylonAnimation } from '@babylonjs/core/Animations/animation';
4
+ import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera';
5
+ import { Scene as BabylonScene } from '@babylonjs/core/scene';
6
+ import { Nullable } from '@babylonjs/core/types';
7
+ //import { CustomEase } from 'gsap/CustomEase';
8
+ //import { ExpoScaleEase, RoughEase, SlowMo } from 'gsap/EasePack';
9
+ import { remove } from 'lodash-es';
10
+
11
+ //gsap.registerPlugin( CustomEase, ExpoScaleEase, RoughEase, SlowMo );
12
+
13
+ export class AnimationManager {
14
+ public animations: AnimationInterface[] = [];
15
+
16
+ /**
17
+ * Constructor.
18
+ */
19
+ protected constructor(protected scene: BabylonScene) {}
20
+
21
+ /**
22
+ * Creates an {@link AnimationManager} based on given Babylon.js scene.
23
+ */
24
+ public static async create(scene: BabylonScene): Promise<AnimationManager> {
25
+ return new AnimationManager(scene);
26
+ }
27
+
28
+ /**
29
+ * @deprecated Use viewer.moveCameraTo().
30
+ */
31
+ public resetCamera(animate: boolean = false) {
32
+ //TODO currently only works for arcrotate. are there any other cameras?
33
+ const activeCamera = this.scene.activeCamera as Nullable<ArcRotateCamera>;
34
+ if (!activeCamera) {
35
+ throw new Error('There is no active camera');
36
+ }
37
+
38
+ const initAlpha = activeCamera.metadata.alpha;
39
+ const initBeta = activeCamera.metadata.beta;
40
+ const initRadius = activeCamera.metadata.radius;
41
+
42
+ if (animate) {
43
+ this.animateArcRotateCamera(initAlpha, initBeta, initRadius);
44
+ } else {
45
+ activeCamera.alpha = initAlpha;
46
+ activeCamera.beta = initBeta;
47
+ activeCamera.radius = initRadius;
48
+ }
49
+ }
50
+
51
+ /**
52
+ * @deprecated Use viewer.moveCameraTo().
53
+ */
54
+ public animateArcRotateCamera(targetAlpha: number, targetBeta: number, targetRadius: number) {
55
+ const activeCamera = this.scene.activeCamera as Nullable<ArcRotateCamera>;
56
+ if (!activeCamera) {
57
+ throw new Error('There is no active camera');
58
+ }
59
+ const alphaAnimation = new BabylonAnimation(
60
+ 'alphaAnimation',
61
+ 'alpha',
62
+ 30,
63
+ BabylonAnimation.ANIMATIONTYPE_FLOAT,
64
+ BabylonAnimation.ANIMATIONLOOPMODE_CONSTANT
65
+ );
66
+ const betaAnimation = new BabylonAnimation(
67
+ 'betaAnimation',
68
+ 'beta',
69
+ 30,
70
+ BabylonAnimation.ANIMATIONTYPE_FLOAT,
71
+ BabylonAnimation.ANIMATIONLOOPMODE_CONSTANT
72
+ );
73
+ const radiusAnimation = new BabylonAnimation(
74
+ 'radiusAnimation',
75
+ 'radius',
76
+ 30,
77
+ BabylonAnimation.ANIMATIONTYPE_FLOAT,
78
+ BabylonAnimation.ANIMATIONLOOPMODE_CONSTANT
79
+ );
80
+ alphaAnimation.setKeys([
81
+ {
82
+ frame: 0,
83
+ value: activeCamera.alpha,
84
+ },
85
+ {
86
+ frame: 100,
87
+ value: targetAlpha,
88
+ },
89
+ ]);
90
+ betaAnimation.setKeys([
91
+ {
92
+ frame: 0,
93
+ value: activeCamera.beta,
94
+ },
95
+ {
96
+ frame: 100,
97
+ value: targetBeta,
98
+ },
99
+ ]);
100
+ radiusAnimation.setKeys([
101
+ {
102
+ frame: 0,
103
+ value: activeCamera.radius,
104
+ },
105
+ {
106
+ frame: 100,
107
+ value: targetRadius,
108
+ },
109
+ ]);
110
+ activeCamera.animations.push(alphaAnimation);
111
+ activeCamera.animations.push(betaAnimation);
112
+ activeCamera.animations.push(radiusAnimation);
113
+
114
+ const animation = this.scene.beginAnimation(activeCamera, 0, 100, false, 10);
115
+ animation.disposeOnEnd = true;
116
+ }
117
+
118
+ /**
119
+ * Stops and kills all running animations.
120
+ */
121
+ public killAllAnimations() {
122
+ this.animations.forEach(animation => animation.kill());
123
+ this.animations = [];
124
+ }
125
+
126
+ /**
127
+ * @see {@link PlacementAnimation.play}
128
+ */
129
+ public async animateToPlacement(
130
+ mutable: object,
131
+ placement: PlacementDefinition | string,
132
+ animation?: AnimationDefinition | string
133
+ ): Promise<AnimationInterface> {
134
+ const _animation = new PlacementAnimation(mutable, placement, animation);
135
+ this.animations.push(_animation);
136
+ const animationPromise = _animation.play();
137
+ animationPromise.then(a => {
138
+ remove(this.animations, _a => _a === a);
139
+ a.kill();
140
+ });
141
+ return await animationPromise;
142
+ }
143
+ }