@combeenation/3d-viewer 8.1.0-alpha1 → 9.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 (113) 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 +667 -672
  8. package/dist/lib-cjs/api/classes/element.js.map +1 -1
  9. package/dist/lib-cjs/api/classes/event.d.ts +401 -401
  10. package/dist/lib-cjs/api/classes/event.js +424 -424
  11. package/dist/lib-cjs/api/classes/eventBroadcaster.d.ts +26 -26
  12. package/dist/lib-cjs/api/classes/eventBroadcaster.js +49 -49
  13. package/dist/lib-cjs/api/classes/fuzzyMap.d.ts +7 -7
  14. package/dist/lib-cjs/api/classes/fuzzyMap.js +21 -21
  15. package/dist/lib-cjs/api/classes/parameter.d.ts +410 -378
  16. package/dist/lib-cjs/api/classes/parameter.js +642 -551
  17. package/dist/lib-cjs/api/classes/parameter.js.map +1 -1
  18. package/dist/lib-cjs/api/classes/parameterObservable.d.ts +36 -36
  19. package/dist/lib-cjs/api/classes/parameterObservable.js +72 -72
  20. package/dist/lib-cjs/api/classes/parameterizable.d.ts +15 -15
  21. package/dist/lib-cjs/api/classes/parameterizable.js +102 -102
  22. package/dist/lib-cjs/api/classes/placementAnimation.d.ts +45 -45
  23. package/dist/lib-cjs/api/classes/placementAnimation.js +176 -176
  24. package/dist/lib-cjs/api/classes/variant.d.ts +261 -261
  25. package/dist/lib-cjs/api/classes/variant.js +870 -870
  26. package/dist/lib-cjs/api/classes/variant.js.map +1 -1
  27. package/dist/lib-cjs/api/classes/variantInstance.d.ts +53 -53
  28. package/dist/lib-cjs/api/classes/variantInstance.js +125 -125
  29. package/dist/lib-cjs/api/classes/variantParameterizable.d.ts +17 -17
  30. package/dist/lib-cjs/api/classes/variantParameterizable.js +86 -86
  31. package/dist/lib-cjs/api/classes/viewer.d.ts +213 -213
  32. package/dist/lib-cjs/api/classes/viewer.js +717 -717
  33. package/dist/lib-cjs/api/classes/viewerError.d.ts +43 -43
  34. package/dist/lib-cjs/api/classes/viewerError.js +55 -55
  35. package/dist/lib-cjs/api/classes/viewerLight.d.ts +66 -66
  36. package/dist/lib-cjs/api/classes/viewerLight.js +348 -348
  37. package/dist/lib-cjs/api/classes/viewerLight.js.map +1 -1
  38. package/dist/lib-cjs/api/internal/lensRendering.d.ts +8 -8
  39. package/dist/lib-cjs/api/internal/lensRendering.js +11 -11
  40. package/dist/lib-cjs/api/internal/sceneSetup.d.ts +13 -13
  41. package/dist/lib-cjs/api/internal/sceneSetup.js +226 -226
  42. package/dist/lib-cjs/api/manager/animationManager.d.ts +30 -30
  43. package/dist/lib-cjs/api/manager/animationManager.js +126 -126
  44. package/dist/lib-cjs/api/manager/gltfExportManager.d.ts +103 -103
  45. package/dist/lib-cjs/api/manager/gltfExportManager.js +325 -325
  46. package/dist/lib-cjs/api/manager/gltfExportManager.js.map +1 -1
  47. package/dist/lib-cjs/api/manager/sceneManager.d.ts +33 -33
  48. package/dist/lib-cjs/api/manager/sceneManager.js +128 -128
  49. package/dist/lib-cjs/api/manager/tagManager.d.ts +118 -118
  50. package/dist/lib-cjs/api/manager/tagManager.js +522 -508
  51. package/dist/lib-cjs/api/manager/tagManager.js.map +1 -1
  52. package/dist/lib-cjs/api/manager/textureLoadManager.d.ts +22 -22
  53. package/dist/lib-cjs/api/manager/textureLoadManager.js +97 -97
  54. package/dist/lib-cjs/api/manager/variantInstanceManager.d.ts +106 -106
  55. package/dist/lib-cjs/api/manager/variantInstanceManager.js +290 -290
  56. package/dist/lib-cjs/api/store/specStorage.d.ts +32 -32
  57. package/dist/lib-cjs/api/store/specStorage.js +65 -65
  58. package/dist/lib-cjs/api/util/babylonHelper.d.ts +237 -235
  59. package/dist/lib-cjs/api/util/babylonHelper.js +825 -753
  60. package/dist/lib-cjs/api/util/babylonHelper.js.map +1 -1
  61. package/dist/lib-cjs/api/util/globalTypes.d.ts +479 -469
  62. package/dist/lib-cjs/api/util/globalTypes.js +1 -1
  63. package/dist/lib-cjs/api/util/resourceHelper.d.ts +58 -58
  64. package/dist/lib-cjs/api/util/resourceHelper.js +211 -203
  65. package/dist/lib-cjs/api/util/resourceHelper.js.map +1 -1
  66. package/dist/lib-cjs/api/util/sceneLoaderHelper.d.ts +44 -44
  67. package/dist/lib-cjs/api/util/sceneLoaderHelper.js +175 -175
  68. package/dist/lib-cjs/api/util/sceneLoaderHelper.js.map +1 -1
  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 +60 -60
  73. package/dist/lib-cjs/buildinfo.json +3 -3
  74. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  75. package/dist/lib-cjs/index.d.ts +54 -54
  76. package/dist/lib-cjs/index.js +117 -117
  77. package/package.json +82 -81
  78. package/src/api/classes/animationInterface.ts +10 -10
  79. package/src/api/classes/dottedPath.ts +181 -181
  80. package/src/api/classes/element.ts +723 -733
  81. package/src/api/classes/event.ts +457 -457
  82. package/src/api/classes/eventBroadcaster.ts +52 -52
  83. package/src/api/classes/fuzzyMap.ts +21 -21
  84. package/src/api/classes/parameter.ts +686 -591
  85. package/src/api/classes/parameterObservable.ts +73 -73
  86. package/src/api/classes/parameterizable.ts +87 -87
  87. package/src/api/classes/placementAnimation.ts +162 -162
  88. package/src/api/classes/variant.ts +963 -963
  89. package/src/api/classes/variantInstance.ts +123 -123
  90. package/src/api/classes/variantParameterizable.ts +83 -83
  91. package/src/api/classes/viewer.ts +770 -770
  92. package/src/api/classes/viewerError.ts +63 -63
  93. package/src/api/classes/viewerLight.ts +339 -339
  94. package/src/api/internal/debugViewer.ts +90 -90
  95. package/src/api/internal/lensRendering.ts +9 -9
  96. package/src/api/internal/sceneSetup.ts +205 -205
  97. package/src/api/manager/animationManager.ts +143 -143
  98. package/src/api/manager/gltfExportManager.ts +302 -302
  99. package/src/api/manager/sceneManager.ts +134 -134
  100. package/src/api/manager/tagManager.ts +564 -536
  101. package/src/api/manager/textureLoadManager.ts +95 -95
  102. package/src/api/manager/variantInstanceManager.ts +306 -306
  103. package/src/api/store/specStorage.ts +68 -68
  104. package/src/api/util/babylonHelper.ts +913 -823
  105. package/src/api/util/globalTypes.ts +555 -543
  106. package/src/api/util/resourceHelper.ts +198 -191
  107. package/src/api/util/sceneLoaderHelper.ts +170 -170
  108. package/src/api/util/stringHelper.ts +30 -30
  109. package/src/api/util/structureHelper.ts +60 -60
  110. package/src/buildinfo.json +3 -3
  111. package/src/dev.ts +62 -62
  112. package/src/index.ts +103 -103
  113. 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
+ }