@shopware-ag/dive 1.19.1-beta.0 → 1.19.1-beta.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 (188) hide show
  1. package/build/dive.cjs +362 -199
  2. package/build/dive.cjs.map +1 -1
  3. package/build/dive.js +330 -167
  4. package/build/dive.js.map +1 -1
  5. package/build/dive.mjs +10803 -8714
  6. package/build/dive.mjs.map +1 -1
  7. package/build/src/converter/Converter.d.ts +3 -12
  8. package/build/src/dive.d.ts +1 -0
  9. package/build/src/exporter/Exporter.d.ts +20 -2
  10. package/build/src/loader/Loader.d.ts +0 -4
  11. package/build/src/types/error/index.d.ts +12 -0
  12. package/build/src/types/file/FileTypes.d.ts +17 -0
  13. package/build/src/types/file/index.d.ts +1 -0
  14. package/build/src/types/index.d.ts +5 -8
  15. package/package.json +2 -3
  16. package/build/src/types/ExporterOptions.d.ts +0 -15
  17. package/build/src/types/FileTypes.d.ts +0 -27
  18. package/src/__test__/DIVE.test.ts +0 -274
  19. package/src/animation/AnimationSystem.ts +0 -34
  20. package/src/animation/__test__/AnimationSystem.test.ts +0 -40
  21. package/src/ar/AR.ts +0 -101
  22. package/src/ar/__test__/AR.test.ts +0 -276
  23. package/src/ar/arquicklook/ARQuickLook.ts +0 -53
  24. package/src/ar/arquicklook/__test__/ARQuickLook.test.ts +0 -144
  25. package/src/ar/sceneviewer/SceneViewer.ts +0 -119
  26. package/src/ar/sceneviewer/__test__/SceneViewer.test.ts +0 -190
  27. package/src/ar/webxr/WebXR.ts +0 -177
  28. package/src/ar/webxr/controller/WebXRController.ts +0 -340
  29. package/src/ar/webxr/crosshair/WebXRCrosshair.ts +0 -35
  30. package/src/ar/webxr/origin/WebXROrigin.ts +0 -192
  31. package/src/ar/webxr/overlay/Overlay.ts +0 -50
  32. package/src/ar/webxr/raycaster/WebXRRaycaster.ts +0 -131
  33. package/src/ar/webxr/raycaster/ar/WebXRRaycasterAR.ts +0 -102
  34. package/src/ar/webxr/raycaster/three/WebXRRaycasterTHREE.ts +0 -49
  35. package/src/ar/webxr/touchscreencontrols/WebXRTouchscreenControls.ts +0 -356
  36. package/src/axiscamera/AxisCamera.ts +0 -108
  37. package/src/axiscamera/__test__/AxisCamera.test.ts +0 -150
  38. package/src/camera/PerspectiveCamera.ts +0 -63
  39. package/src/camera/__test__/PerspectiveCamera.test.ts +0 -36
  40. package/src/com/Communication.ts +0 -806
  41. package/src/com/__test__/Communication.test.ts +0 -1030
  42. package/src/com/actions/camera/computeencompassingview.ts +0 -10
  43. package/src/com/actions/camera/getcameratransform.ts +0 -10
  44. package/src/com/actions/camera/movecamera.ts +0 -18
  45. package/src/com/actions/camera/resetcamera.ts +0 -5
  46. package/src/com/actions/camera/setcameralayer.ts +0 -5
  47. package/src/com/actions/camera/setcameratransform.ts +0 -10
  48. package/src/com/actions/camera/zoomcamera.ts +0 -5
  49. package/src/com/actions/index.ts +0 -61
  50. package/src/com/actions/media/generatemedia.ts +0 -18
  51. package/src/com/actions/object/addobject.ts +0 -7
  52. package/src/com/actions/object/deleteobject.ts +0 -7
  53. package/src/com/actions/object/deselectobject.ts +0 -7
  54. package/src/com/actions/object/getallobjects.ts +0 -7
  55. package/src/com/actions/object/getobjects.ts +0 -7
  56. package/src/com/actions/object/model/dropit.ts +0 -5
  57. package/src/com/actions/object/model/modelloaded.ts +0 -5
  58. package/src/com/actions/object/model/placeonfloor.ts +0 -5
  59. package/src/com/actions/object/selectobject.ts +0 -7
  60. package/src/com/actions/object/setparent.ts +0 -10
  61. package/src/com/actions/object/updateobject.ts +0 -7
  62. package/src/com/actions/renderer/startrender.ts +0 -5
  63. package/src/com/actions/scene/exportscene.ts +0 -7
  64. package/src/com/actions/scene/getallscenedata.ts +0 -7
  65. package/src/com/actions/scene/launchar.ts +0 -7
  66. package/src/com/actions/scene/setbackground.ts +0 -5
  67. package/src/com/actions/scene/updatescene.ts +0 -11
  68. package/src/com/actions/toolbox/select/setgizmomode.ts +0 -5
  69. package/src/com/actions/toolbox/transform/setgizmoscalelinked.ts +0 -5
  70. package/src/com/actions/toolbox/transform/setgizmovisible.ts +0 -5
  71. package/src/com/actions/toolbox/usetool.ts +0 -7
  72. package/src/com/types/COMBaseEntity.ts +0 -9
  73. package/src/com/types/COMEntity.ts +0 -7
  74. package/src/com/types/COMEntityType.ts +0 -1
  75. package/src/com/types/COMGeometry.ts +0 -8
  76. package/src/com/types/COMGeometryType.ts +0 -9
  77. package/src/com/types/COMGroup.ts +0 -9
  78. package/src/com/types/COMLight.ts +0 -11
  79. package/src/com/types/COMMaterial.ts +0 -12
  80. package/src/com/types/COMModel.ts +0 -12
  81. package/src/com/types/COMPov.ts +0 -8
  82. package/src/com/types/COMPrimitive.ts +0 -12
  83. package/src/com/types/index.ts +0 -23
  84. package/src/constant/AxisHelperColors.ts +0 -7
  85. package/src/constant/GridColors.ts +0 -2
  86. package/src/constant/VisibilityLayerMask.ts +0 -5
  87. package/src/controls/OrbitControls.ts +0 -211
  88. package/src/controls/__test__/OrbitControls.test.ts +0 -256
  89. package/src/converter/Converter.ts +0 -117
  90. package/src/dive.ts +0 -363
  91. package/src/events/EventExecutor.ts +0 -35
  92. package/src/exporter/Exporter.ts +0 -75
  93. package/src/gizmo/Gizmo.ts +0 -144
  94. package/src/gizmo/handles/AxisHandle.ts +0 -153
  95. package/src/gizmo/handles/RadialHandle.ts +0 -149
  96. package/src/gizmo/handles/ScaleHandle.ts +0 -195
  97. package/src/gizmo/plane/GizmoPlane.ts +0 -84
  98. package/src/gizmo/rotate/RotateGizmo.ts +0 -143
  99. package/src/gizmo/scale/ScaleGizmo.ts +0 -125
  100. package/src/gizmo/translate/TranslateGizmo.ts +0 -114
  101. package/src/grid/Grid.ts +0 -34
  102. package/src/grid/__test__/Grid.test.ts +0 -28
  103. package/src/group/Group.ts +0 -184
  104. package/src/group/__test__/Group.test.ts +0 -212
  105. package/src/helper/applyMixins/__test__/applyMixins.test.ts +0 -30
  106. package/src/helper/applyMixins/applyMixins.ts +0 -70
  107. package/src/helper/findInterface/__test__/findInterface.test.ts +0 -63
  108. package/src/helper/findInterface/findInterface.ts +0 -13
  109. package/src/helper/findSceneRecursive/__test__/findSceneRecursive.test.ts +0 -40
  110. package/src/helper/findSceneRecursive/findSceneRecursive.ts +0 -16
  111. package/src/helper/getObjectDelta/__test__/getObjectDelta.test.ts +0 -186
  112. package/src/helper/getObjectDelta/getObjectDelta.ts +0 -105
  113. package/src/helper/isInterface/__test__/implementsInterface.test.ts +0 -19
  114. package/src/helper/isInterface/implementsInterface.ts +0 -9
  115. package/src/info/Info.ts +0 -178
  116. package/src/info/__test__/Info.test.ts +0 -346
  117. package/src/interface/Draggable.ts +0 -14
  118. package/src/interface/Hoverable.ts +0 -14
  119. package/src/interface/Movable.ts +0 -12
  120. package/src/interface/Rotatable.ts +0 -10
  121. package/src/interface/Scalable.ts +0 -10
  122. package/src/interface/Selectable.ts +0 -11
  123. package/src/io/IO.ts +0 -62
  124. package/src/io/__test__/IO.test.ts +0 -116
  125. package/src/io/gltf/GLTFIO.ts +0 -56
  126. package/src/io/gltf/__test__/GLTFIO.test.ts +0 -108
  127. package/src/light/AmbientLight.ts +0 -39
  128. package/src/light/PointLight.ts +0 -115
  129. package/src/light/SceneLight.ts +0 -63
  130. package/src/light/__test__/AmbientLight.test.ts +0 -29
  131. package/src/light/__test__/PointLight.test.ts +0 -74
  132. package/src/light/__test__/SceneLight.test.ts +0 -47
  133. package/src/loader/Loader.ts +0 -48
  134. package/src/math/__test__/DIVEMath.test.ts +0 -12
  135. package/src/math/ceil/__test__/ceilExp.test.ts +0 -12
  136. package/src/math/ceil/ceilExp.ts +0 -6
  137. package/src/math/degToRad/__test__/degToRad.test.ts +0 -172
  138. package/src/math/degToRad/degToRad.ts +0 -5
  139. package/src/math/floor/__test__/floorExp.test.ts +0 -14
  140. package/src/math/floor/floorExp.ts +0 -6
  141. package/src/math/helper/__test__/shift.test.ts +0 -12
  142. package/src/math/helper/shift.ts +0 -4
  143. package/src/math/index.ts +0 -28
  144. package/src/math/radToDeg/__test__/radToDeg.test.ts +0 -155
  145. package/src/math/radToDeg/radToDeg.ts +0 -5
  146. package/src/math/round/__test__/roundExp.test.ts +0 -14
  147. package/src/math/round/roundExp.ts +0 -10
  148. package/src/math/signedAngleTo/__test__/signedAngleTo.test.ts +0 -20
  149. package/src/math/signedAngleTo/signedAngleTo.ts +0 -20
  150. package/src/math/toFixed/__test__/toFixedExp.test.ts +0 -14
  151. package/src/math/toFixed/toFixedExp.ts +0 -9
  152. package/src/math/truncate/__test__/truncateExp.test.ts +0 -14
  153. package/src/math/truncate/truncateExp.ts +0 -9
  154. package/src/mediacreator/MediaCreator.ts +0 -75
  155. package/src/mediacreator/__test__/MediaCreator.test.ts +0 -155
  156. package/src/model/Model.ts +0 -190
  157. package/src/model/__test__/Model.test.ts +0 -215
  158. package/src/module/Module.ts +0 -45
  159. package/src/module/__test__/Module.test.ts +0 -54
  160. package/src/node/Node.ts +0 -100
  161. package/src/node/__test__/Node.test.ts +0 -120
  162. package/src/primitive/Primitive.ts +0 -299
  163. package/src/primitive/__test__/Primitive.test.ts +0 -281
  164. package/src/primitive/floor/Floor.ts +0 -45
  165. package/src/primitive/floor/__test__/Floor.test.ts +0 -24
  166. package/src/renderer/Renderer.ts +0 -215
  167. package/src/renderer/__test__/Renderer.test.ts +0 -228
  168. package/src/scene/Scene.ts +0 -106
  169. package/src/scene/__test__/Scene.test.ts +0 -124
  170. package/src/scene/root/Root.ts +0 -426
  171. package/src/scene/root/__test__/Root.test.ts +0 -903
  172. package/src/scene/xrroot/XRRoot.ts +0 -56
  173. package/src/scene/xrroot/xrlightroot/XRLightRoot.ts +0 -80
  174. package/src/toolbox/BaseTool.ts +0 -319
  175. package/src/toolbox/Toolbox.ts +0 -129
  176. package/src/toolbox/__test__/BaseTool.test.ts +0 -627
  177. package/src/toolbox/__test__/Toolbox.test.ts +0 -143
  178. package/src/toolbox/select/SelectTool.ts +0 -92
  179. package/src/toolbox/select/__test__/SelectTool.test.ts +0 -237
  180. package/src/toolbox/transform/TransformTool.ts +0 -166
  181. package/src/toolbox/transform/__test__/TransformTool.test.ts +0 -147
  182. package/src/types/ExporterOptions.ts +0 -14
  183. package/src/types/FileTypes.ts +0 -37
  184. package/src/types/SceneData.ts +0 -26
  185. package/src/types/SceneObjects.ts +0 -14
  186. package/src/types/SceneType.ts +0 -14
  187. package/src/types/index.ts +0 -31
  188. package/src/types/info/index.ts +0 -76
@@ -1,228 +0,0 @@
1
- import {
2
- WebGLRendererRenderMock,
3
- WebGLRendererSetSizeMock,
4
- } from '../../../__mocks__/three';
5
- import type DIVEPerspectiveCamera from '../../camera/PerspectiveCamera';
6
- import { type DIVEScene } from '../../scene/Scene';
7
- import { DIVERenderer, DIVERendererDefaultSettings } from '../Renderer';
8
-
9
- /**
10
- * @jest-environment jsdom
11
- */
12
-
13
- const test_uuid = 'test_uuid';
14
-
15
- let renderer: DIVERenderer;
16
-
17
- describe('dive/renderer/DIVERenderer', () => {
18
- beforeEach(() => {
19
- jest.clearAllMocks();
20
- renderer = new DIVERenderer();
21
- });
22
-
23
- it('should instantiate', () => {
24
- renderer = new DIVERenderer({});
25
- expect(renderer).toBeDefined();
26
- });
27
-
28
- it('should instantiate', () => {
29
- renderer = new DIVERenderer({
30
- alpha: true,
31
- shadowMapEnabled: true,
32
- shadowMapType: 1,
33
- toneMapping: 1,
34
- antialias: true,
35
- });
36
- });
37
-
38
- it('should instantiate with settings parameter', () => {
39
- renderer = new DIVERenderer(DIVERendererDefaultSettings);
40
- expect(renderer).toBeDefined();
41
- });
42
-
43
- it('should dispose', () => {
44
- renderer.Dispose();
45
- });
46
-
47
- it('should start render', () => {
48
- expect(() => {
49
- renderer.StartRenderer(
50
- {} as DIVEScene,
51
- {} as DIVEPerspectiveCamera,
52
- );
53
- }).not.toThrow();
54
- expect(renderer['running']).toBe(true);
55
- });
56
-
57
- it('should pause render', () => {
58
- renderer.StartRenderer({} as DIVEScene, {} as DIVEPerspectiveCamera);
59
- expect(() => {
60
- renderer.PauseRenderer();
61
- }).not.toThrow();
62
- expect(renderer['paused']).toBe(true);
63
- });
64
-
65
- it('should resume render', () => {
66
- renderer.StartRenderer({} as DIVEScene, {} as DIVEPerspectiveCamera);
67
- renderer.PauseRenderer();
68
- expect(() => {
69
- renderer.ResumeRenderer();
70
- }).not.toThrow();
71
- expect(renderer['paused']).toBe(false);
72
- });
73
-
74
- it('should stop render', () => {
75
- expect(() => {
76
- renderer.StopRenderer();
77
- }).not.toThrow();
78
- expect(renderer['running']).toBe(false);
79
- });
80
-
81
- it('should resize renderer', () => {
82
- expect(() => {
83
- renderer.OnResize(500, 500);
84
- }).not.toThrow();
85
- expect(WebGLRendererSetSizeMock).toHaveBeenCalledTimes(1);
86
- });
87
-
88
- it('should render', () => {
89
- expect(WebGLRendererRenderMock).toHaveBeenCalledTimes(0);
90
-
91
- renderer.StartRenderer({} as DIVEScene, {} as DIVEPerspectiveCamera);
92
- expect(() => {
93
- renderer['internal_render'](
94
- {} as DIVEScene,
95
- {} as DIVEPerspectiveCamera,
96
- 0.016,
97
- {} as XRFrame,
98
- );
99
- }).not.toThrow();
100
- expect(WebGLRendererRenderMock).toHaveBeenCalledTimes(1);
101
- });
102
-
103
- it('should force render', () => {
104
- expect(() => {
105
- renderer.ForceRendering();
106
- }).not.toThrow();
107
- });
108
-
109
- it('should not render when not started', () => {
110
- expect(WebGLRendererRenderMock).toHaveBeenCalledTimes(0);
111
- renderer['internal_render'](
112
- {} as DIVEScene,
113
- {} as DIVEPerspectiveCamera,
114
- 0.016,
115
- {} as XRFrame,
116
- );
117
- expect(WebGLRendererRenderMock).toHaveBeenCalledTimes(0);
118
- });
119
-
120
- it('should not render when stopped', () => {
121
- renderer.StartRenderer({} as DIVEScene, {} as DIVEPerspectiveCamera);
122
- renderer['internal_render'](
123
- {} as DIVEScene,
124
- {} as DIVEPerspectiveCamera,
125
- 0.016,
126
- {} as XRFrame,
127
- );
128
- expect(WebGLRendererRenderMock).toHaveBeenCalledTimes(1);
129
-
130
- renderer.StopRenderer();
131
- renderer['internal_render'](
132
- {} as DIVEScene,
133
- {} as DIVEPerspectiveCamera,
134
- 0.016,
135
- {} as XRFrame,
136
- );
137
- expect(WebGLRendererRenderMock).toHaveBeenCalledTimes(1);
138
- });
139
-
140
- it('should not render when paused', () => {
141
- renderer.StartRenderer({} as DIVEScene, {} as DIVEPerspectiveCamera);
142
- renderer['internal_render'](
143
- {} as DIVEScene,
144
- {} as DIVEPerspectiveCamera,
145
- 0.016,
146
- {} as XRFrame,
147
- );
148
- expect(WebGLRendererRenderMock).toHaveBeenCalledTimes(1);
149
-
150
- renderer.PauseRenderer();
151
- renderer['internal_render'](
152
- {} as DIVEScene,
153
- {} as DIVEPerspectiveCamera,
154
- 0.016,
155
- {} as XRFrame,
156
- );
157
- expect(WebGLRendererRenderMock).toHaveBeenCalledTimes(1);
158
- });
159
-
160
- it('should resume render when running', () => {
161
- renderer.StartRenderer({} as DIVEScene, {} as DIVEPerspectiveCamera);
162
- renderer.PauseRenderer();
163
- renderer['internal_render'](
164
- {} as DIVEScene,
165
- {} as DIVEPerspectiveCamera,
166
- 0.016,
167
- {} as XRFrame,
168
- );
169
- expect(WebGLRendererRenderMock).toHaveBeenCalledTimes(0);
170
-
171
- renderer.ResumeRenderer();
172
- renderer['internal_render'](
173
- {} as DIVEScene,
174
- {} as DIVEPerspectiveCamera,
175
- 0.016,
176
- {} as XRFrame,
177
- );
178
- expect(WebGLRendererRenderMock).toHaveBeenCalledTimes(1);
179
- });
180
-
181
- it('should add pre render callback', () => {
182
- expect(renderer.AddPreRenderCallback(() => {})).toBe(test_uuid);
183
- expect(renderer['preRenderCallbacks'].size).toBe(1);
184
- });
185
-
186
- it('should remove pre render callback', () => {
187
- const uuid = renderer.AddPreRenderCallback(() => {});
188
- expect(renderer.RemovePreRenderCallback(uuid)).toBe(true);
189
- });
190
-
191
- it('should not crash while removing non-existing pre render callback', () => {
192
- expect(() => {
193
- renderer.RemovePreRenderCallback(test_uuid);
194
- }).not.toThrow();
195
- });
196
-
197
- it('should add post render callback', () => {
198
- expect(renderer.AddPostRenderCallback(() => {})).toBe(test_uuid);
199
- expect(renderer['postRenderCallbacks'].size).toBe(1);
200
- });
201
-
202
- it('should remove post render callback', () => {
203
- const uuid = renderer.AddPostRenderCallback(() => {});
204
- expect(renderer.RemovePostRenderCallback(uuid)).toBe(true);
205
- });
206
-
207
- it('should not crash while removing non-existing post render callback', () => {
208
- expect(() => {
209
- renderer.RemovePostRenderCallback(test_uuid);
210
- }).not.toThrow();
211
- });
212
-
213
- it('should execute pre and post render callbacks', () => {
214
- renderer.StartRenderer({} as DIVEScene, {} as DIVEPerspectiveCamera);
215
- const precallback = jest.fn();
216
- const postcallback = jest.fn();
217
- renderer.AddPreRenderCallback(precallback);
218
- renderer.AddPostRenderCallback(postcallback);
219
- renderer['internal_render'](
220
- {} as DIVEScene,
221
- {} as DIVEPerspectiveCamera,
222
- 0.016,
223
- {} as XRFrame,
224
- );
225
- expect(precallback).toHaveBeenCalledTimes(1);
226
- expect(postcallback).toHaveBeenCalledTimes(1);
227
- });
228
- });
@@ -1,106 +0,0 @@
1
- import { Color, Scene, type Box3, type ColorRepresentation } from 'three';
2
- import { type COMModel, type COMEntity } from '../com/types';
3
- import { DIVERoot } from './root/Root';
4
- import { DIVEGrid } from '../grid/Grid';
5
- import { DIVEFloor } from '../primitive/floor/Floor';
6
- import { type DIVESceneObject } from '../types';
7
- import { DIVEXRRoot } from './xrroot/XRRoot';
8
- import { type DIVERenderer } from '../renderer/Renderer';
9
-
10
- /**
11
- * A basic scene class.
12
- *
13
- * Comes with a root object that contains all the scene objects.
14
- *
15
- * @module
16
- */
17
-
18
- export class DIVEScene extends Scene {
19
- private _root: DIVERoot;
20
- private _floor: DIVEFloor;
21
- private _grid: DIVEGrid;
22
-
23
- public get Root(): DIVERoot {
24
- return this._root;
25
- }
26
-
27
- private _xrRoot: DIVEXRRoot;
28
- public get XRRoot(): DIVEXRRoot {
29
- return this._xrRoot;
30
- }
31
-
32
- public get Floor(): DIVEFloor {
33
- return this._floor;
34
- }
35
-
36
- public get Grid(): DIVEGrid {
37
- return this._grid;
38
- }
39
-
40
- constructor() {
41
- super();
42
-
43
- this.background = new Color(0xffffff);
44
-
45
- this._root = new DIVERoot();
46
- this.add(this._root);
47
-
48
- this._floor = new DIVEFloor();
49
- this.add(this._floor);
50
-
51
- this._grid = new DIVEGrid();
52
- this.add(this._grid);
53
-
54
- this._xrRoot = new DIVEXRRoot(this);
55
- this._xrRoot.visible = false;
56
- this.add(this._xrRoot);
57
- }
58
-
59
- public InitXR(renderer: DIVERenderer): void {
60
- this._root.visible = false;
61
- this._xrRoot.visible = true;
62
- this._xrRoot.InitLightEstimation(renderer);
63
- }
64
-
65
- public DisposeXR(): void {
66
- this._root.visible = true;
67
- this._xrRoot.visible = false;
68
- this._xrRoot.DisposeLightEstimation();
69
- }
70
-
71
- public SetBackground(color: ColorRepresentation): void {
72
- this.background = new Color(color);
73
- }
74
-
75
- public ComputeSceneBB(): Box3 {
76
- return this.Root.ComputeSceneBB();
77
- }
78
-
79
- public GetSceneObject<T extends DIVESceneObject>(
80
- object: Partial<COMEntity> & { id: string },
81
- ): T | undefined {
82
- return this.Root.GetSceneObject<T>(object);
83
- }
84
-
85
- public AddSceneObject(object: COMEntity): void {
86
- this.Root.AddSceneObject(object);
87
- }
88
-
89
- public UpdateSceneObject(
90
- object: Partial<COMEntity> & { id: string; entityType: string },
91
- ): void {
92
- this.Root.UpdateSceneObject(object);
93
- }
94
-
95
- public DeleteSceneObject(
96
- object: Partial<COMEntity> & { id: string; entityType: string },
97
- ): void {
98
- this.Root.DeleteSceneObject(object);
99
- }
100
-
101
- public PlaceOnFloor(
102
- object: Partial<COMModel> & { id: string; entityType: string },
103
- ): void {
104
- this.Root.PlaceOnFloor(object);
105
- }
106
- }
@@ -1,124 +0,0 @@
1
- import { DIVEScene } from '../Scene';
2
- import { type Color } from 'three';
3
- import { type COMEntity } from '../../com/types';
4
- import { DIVERenderer } from '../../renderer/Renderer';
5
-
6
- const mock_AddSceneObject = jest.fn();
7
- const mock_UpdateSceneObject = jest.fn();
8
- const mock_DeleteSceneObject = jest.fn();
9
- const mock_PlaceOnFloor = jest.fn();
10
- const mock_GetSceneObject = jest.fn();
11
-
12
- jest.mock('../root/Root', () => {
13
- return {
14
- DIVERoot: jest.fn(function () {
15
- this.isObject3D = true;
16
- this.parent = null;
17
- this.dispatchEvent = jest.fn();
18
- this.AddSceneObject = mock_AddSceneObject;
19
- this.UpdateSceneObject = mock_UpdateSceneObject;
20
- this.DeleteSceneObject = mock_DeleteSceneObject;
21
- this.PlaceOnFloor = mock_PlaceOnFloor;
22
- this.GetSceneObject = mock_GetSceneObject;
23
- this.removeFromParent = jest.fn();
24
- this.ComputeSceneBB = jest.fn();
25
- return this;
26
- }),
27
- };
28
- });
29
-
30
- jest.mock('../xrroot/XRRoot', () => {
31
- return {
32
- DIVEXRRoot: jest.fn(function (scene: DIVEScene) {
33
- this.visible = true;
34
- this.isObject3D = true;
35
- this.parent = null;
36
- this.dispatchEvent = jest.fn();
37
- this.removeFromParent = jest.fn();
38
- this.visible = true;
39
- this.InitLightEstimation = jest.fn();
40
- this.DisposeLightEstimation = jest.fn();
41
- return this;
42
- }),
43
- };
44
- });
45
-
46
- jest.mock('../../renderer/Renderer.ts', () => {
47
- return {
48
- DIVERenderer: jest.fn(function () {}),
49
- };
50
- });
51
-
52
- const mockRenderer = new DIVERenderer();
53
- let scene: DIVEScene;
54
-
55
- describe('dive/scene/DIVEScene', () => {
56
- beforeEach(() => {
57
- scene = new DIVEScene();
58
- });
59
-
60
- afterEach(() => {
61
- jest.clearAllMocks();
62
- });
63
-
64
- it('should instantiate', () => {
65
- expect(scene).toBeDefined();
66
- });
67
-
68
- it('should have Root', () => {
69
- expect(scene.Root).toBeDefined();
70
- });
71
-
72
- it('should have XRRoot', () => {
73
- expect(scene.XRRoot).toBeDefined();
74
- });
75
-
76
- it('should have Floor', () => {
77
- expect(scene.Floor).toBeDefined();
78
- });
79
-
80
- it('should have Grid', () => {
81
- expect(scene.Grid).toBeDefined();
82
- });
83
-
84
- it('should InitXR', () => {
85
- expect(() => scene.InitXR(mockRenderer)).not.toThrow();
86
- });
87
-
88
- it('should DisposeXR', () => {
89
- expect(() => scene.DisposeXR()).not.toThrow();
90
- });
91
-
92
- it('should set background color', () => {
93
- expect(() => scene.SetBackground(0x123456)).not.toThrow();
94
- });
95
-
96
- it('should ComputeSceneBB', () => {
97
- expect(() => scene.ComputeSceneBB()).not.toThrow();
98
- });
99
-
100
- it('should add object', () => {
101
- scene.AddSceneObject({} as COMEntity);
102
- expect(mock_AddSceneObject).toHaveBeenCalledTimes(1);
103
- });
104
-
105
- it('should update object', () => {
106
- scene.UpdateSceneObject({} as COMEntity);
107
- expect(mock_UpdateSceneObject).toHaveBeenCalledTimes(1);
108
- });
109
-
110
- it('should remove object', () => {
111
- scene.DeleteSceneObject({} as COMEntity);
112
- expect(mock_DeleteSceneObject).toHaveBeenCalledTimes(1);
113
- });
114
-
115
- it('should place object on floor', () => {
116
- scene.PlaceOnFloor({} as COMEntity);
117
- expect(mock_PlaceOnFloor).toHaveBeenCalledTimes(1);
118
- });
119
-
120
- it('should get scene object', () => {
121
- scene.GetSceneObject({} as COMEntity);
122
- expect(mock_GetSceneObject).toHaveBeenCalledTimes(1);
123
- });
124
- });