@shopware-ag/dive 1.19.0 → 1.19.1-beta.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 (197) hide show
  1. package/build/dive.cjs +388 -220
  2. package/build/dive.cjs.map +1 -1
  3. package/build/dive.js +395 -21946
  4. package/build/dive.js.map +1 -1
  5. package/build/dive.mjs +28206 -0
  6. package/build/dive.mjs.map +1 -0
  7. package/build/src/ar/AR.d.ts +37 -14
  8. package/build/src/ar/arquicklook/ARQuickLook.d.ts +5 -6
  9. package/build/src/ar/sceneviewer/SceneViewer.d.ts +42 -6
  10. package/build/src/com/actions/scene/launchar.d.ts +5 -2
  11. package/build/src/converter/Converter.d.ts +21 -0
  12. package/build/src/dive.d.ts +3 -2
  13. package/build/src/exporter/Exporter.d.ts +11 -0
  14. package/build/src/helper/applyMixins/applyMixins.d.ts +22 -6
  15. package/build/src/info/Info.d.ts +37 -13
  16. package/build/src/interface/Movable.d.ts +5 -5
  17. package/build/src/interface/Selectable.d.ts +4 -4
  18. package/build/src/loader/Loader.d.ts +11 -0
  19. package/build/src/model/Model.d.ts +2 -2
  20. package/build/src/node/Node.d.ts +3 -3
  21. package/build/src/scene/root/Root.d.ts +1 -1
  22. package/build/src/types/ExporterOptions.d.ts +15 -0
  23. package/build/src/types/FileTypes.d.ts +27 -0
  24. package/build/src/types/index.d.ts +4 -0
  25. package/build/src/types/info/index.d.ts +66 -0
  26. package/package.json +17 -3
  27. package/build/src/exporters/usdz/USDZExporter.d.ts +0 -15
  28. package/build/src/loadingmanager/LoadingManager.d.ts +0 -14
  29. package/src/__test__/DIVE.test.ts +0 -274
  30. package/src/animation/AnimationSystem.ts +0 -34
  31. package/src/animation/__test__/AnimationSystem.test.ts +0 -40
  32. package/src/ar/AR.ts +0 -98
  33. package/src/ar/__test__/AR.test.ts +0 -187
  34. package/src/ar/arquicklook/ARQuickLook.ts +0 -93
  35. package/src/ar/arquicklook/__test__/ARQuickLook.test.ts +0 -93
  36. package/src/ar/sceneviewer/SceneViewer.ts +0 -74
  37. package/src/ar/sceneviewer/__test__/SceneViewer.test.ts +0 -93
  38. package/src/ar/webxr/WebXR.ts +0 -176
  39. package/src/ar/webxr/controller/WebXRController.ts +0 -340
  40. package/src/ar/webxr/crosshair/WebXRCrosshair.ts +0 -35
  41. package/src/ar/webxr/origin/WebXROrigin.ts +0 -192
  42. package/src/ar/webxr/overlay/Overlay.ts +0 -50
  43. package/src/ar/webxr/raycaster/WebXRRaycaster.ts +0 -131
  44. package/src/ar/webxr/raycaster/ar/WebXRRaycasterAR.ts +0 -102
  45. package/src/ar/webxr/raycaster/three/WebXRRaycasterTHREE.ts +0 -49
  46. package/src/ar/webxr/touchscreencontrols/WebXRTouchscreenControls.ts +0 -356
  47. package/src/axiscamera/AxisCamera.ts +0 -108
  48. package/src/axiscamera/__test__/AxisCamera.test.ts +0 -150
  49. package/src/camera/PerspectiveCamera.ts +0 -63
  50. package/src/camera/__test__/PerspectiveCamera.test.ts +0 -36
  51. package/src/com/Communication.ts +0 -808
  52. package/src/com/__test__/Communication.test.ts +0 -1024
  53. package/src/com/actions/camera/computeencompassingview.ts +0 -10
  54. package/src/com/actions/camera/getcameratransform.ts +0 -10
  55. package/src/com/actions/camera/movecamera.ts +0 -18
  56. package/src/com/actions/camera/resetcamera.ts +0 -5
  57. package/src/com/actions/camera/setcameralayer.ts +0 -5
  58. package/src/com/actions/camera/setcameratransform.ts +0 -10
  59. package/src/com/actions/camera/zoomcamera.ts +0 -5
  60. package/src/com/actions/index.ts +0 -61
  61. package/src/com/actions/media/generatemedia.ts +0 -18
  62. package/src/com/actions/object/addobject.ts +0 -7
  63. package/src/com/actions/object/deleteobject.ts +0 -7
  64. package/src/com/actions/object/deselectobject.ts +0 -7
  65. package/src/com/actions/object/getallobjects.ts +0 -7
  66. package/src/com/actions/object/getobjects.ts +0 -7
  67. package/src/com/actions/object/model/dropit.ts +0 -5
  68. package/src/com/actions/object/model/modelloaded.ts +0 -5
  69. package/src/com/actions/object/model/placeonfloor.ts +0 -5
  70. package/src/com/actions/object/selectobject.ts +0 -7
  71. package/src/com/actions/object/setparent.ts +0 -10
  72. package/src/com/actions/object/updateobject.ts +0 -7
  73. package/src/com/actions/renderer/startrender.ts +0 -5
  74. package/src/com/actions/scene/exportscene.ts +0 -7
  75. package/src/com/actions/scene/getallscenedata.ts +0 -7
  76. package/src/com/actions/scene/launchar.ts +0 -7
  77. package/src/com/actions/scene/setbackground.ts +0 -5
  78. package/src/com/actions/scene/updatescene.ts +0 -11
  79. package/src/com/actions/toolbox/select/setgizmomode.ts +0 -5
  80. package/src/com/actions/toolbox/transform/setgizmoscalelinked.ts +0 -5
  81. package/src/com/actions/toolbox/transform/setgizmovisible.ts +0 -5
  82. package/src/com/actions/toolbox/usetool.ts +0 -7
  83. package/src/com/types/COMBaseEntity.ts +0 -9
  84. package/src/com/types/COMEntity.ts +0 -7
  85. package/src/com/types/COMEntityType.ts +0 -1
  86. package/src/com/types/COMGeometry.ts +0 -8
  87. package/src/com/types/COMGeometryType.ts +0 -9
  88. package/src/com/types/COMGroup.ts +0 -9
  89. package/src/com/types/COMLight.ts +0 -11
  90. package/src/com/types/COMMaterial.ts +0 -12
  91. package/src/com/types/COMModel.ts +0 -12
  92. package/src/com/types/COMPov.ts +0 -8
  93. package/src/com/types/COMPrimitive.ts +0 -12
  94. package/src/com/types/index.ts +0 -23
  95. package/src/constant/AxisHelperColors.ts +0 -7
  96. package/src/constant/GridColors.ts +0 -2
  97. package/src/constant/VisibilityLayerMask.ts +0 -5
  98. package/src/controls/OrbitControls.ts +0 -211
  99. package/src/controls/__test__/OrbitControls.test.ts +0 -256
  100. package/src/dive.ts +0 -363
  101. package/src/events/EventExecutor.ts +0 -35
  102. package/src/exporters/usdz/USDZExporter.ts +0 -21
  103. package/src/exporters/usdz/__test__/USDZExporter.test.ts +0 -57
  104. package/src/gizmo/Gizmo.ts +0 -144
  105. package/src/gizmo/handles/AxisHandle.ts +0 -153
  106. package/src/gizmo/handles/RadialHandle.ts +0 -149
  107. package/src/gizmo/handles/ScaleHandle.ts +0 -195
  108. package/src/gizmo/plane/GizmoPlane.ts +0 -84
  109. package/src/gizmo/rotate/RotateGizmo.ts +0 -143
  110. package/src/gizmo/scale/ScaleGizmo.ts +0 -125
  111. package/src/gizmo/translate/TranslateGizmo.ts +0 -114
  112. package/src/grid/Grid.ts +0 -34
  113. package/src/grid/__test__/Grid.test.ts +0 -28
  114. package/src/group/Group.ts +0 -184
  115. package/src/group/__test__/Group.test.ts +0 -212
  116. package/src/helper/applyMixins/__test__/applyMixins.test.ts +0 -30
  117. package/src/helper/applyMixins/applyMixins.ts +0 -18
  118. package/src/helper/findInterface/__test__/findInterface.test.ts +0 -63
  119. package/src/helper/findInterface/findInterface.ts +0 -13
  120. package/src/helper/findSceneRecursive/__test__/findSceneRecursive.test.ts +0 -40
  121. package/src/helper/findSceneRecursive/findSceneRecursive.ts +0 -16
  122. package/src/helper/getObjectDelta/__test__/getObjectDelta.test.ts +0 -186
  123. package/src/helper/getObjectDelta/getObjectDelta.ts +0 -105
  124. package/src/helper/isInterface/__test__/implementsInterface.test.ts +0 -19
  125. package/src/helper/isInterface/implementsInterface.ts +0 -9
  126. package/src/info/Info.ts +0 -154
  127. package/src/info/__test__/Info.test.ts +0 -338
  128. package/src/interface/Draggable.ts +0 -14
  129. package/src/interface/Hoverable.ts +0 -14
  130. package/src/interface/Movable.ts +0 -12
  131. package/src/interface/Rotatable.ts +0 -10
  132. package/src/interface/Scalable.ts +0 -10
  133. package/src/interface/Selectable.ts +0 -11
  134. package/src/io/IO.ts +0 -62
  135. package/src/io/__test__/IO.test.ts +0 -116
  136. package/src/io/gltf/GLTFIO.ts +0 -56
  137. package/src/io/gltf/__test__/GLTFIO.test.ts +0 -108
  138. package/src/light/AmbientLight.ts +0 -39
  139. package/src/light/PointLight.ts +0 -115
  140. package/src/light/SceneLight.ts +0 -63
  141. package/src/light/__test__/AmbientLight.test.ts +0 -29
  142. package/src/light/__test__/PointLight.test.ts +0 -74
  143. package/src/light/__test__/SceneLight.test.ts +0 -47
  144. package/src/loadingmanager/LoadingManager.ts +0 -50
  145. package/src/loadingmanager/__test__/LoadingManager.test.ts +0 -27
  146. package/src/math/__test__/DIVEMath.test.ts +0 -12
  147. package/src/math/ceil/__test__/ceilExp.test.ts +0 -12
  148. package/src/math/ceil/ceilExp.ts +0 -6
  149. package/src/math/degToRad/__test__/degToRad.test.ts +0 -172
  150. package/src/math/degToRad/degToRad.ts +0 -5
  151. package/src/math/floor/__test__/floorExp.test.ts +0 -14
  152. package/src/math/floor/floorExp.ts +0 -6
  153. package/src/math/helper/__test__/shift.test.ts +0 -12
  154. package/src/math/helper/shift.ts +0 -4
  155. package/src/math/index.ts +0 -28
  156. package/src/math/radToDeg/__test__/radToDeg.test.ts +0 -155
  157. package/src/math/radToDeg/radToDeg.ts +0 -5
  158. package/src/math/round/__test__/roundExp.test.ts +0 -14
  159. package/src/math/round/roundExp.ts +0 -10
  160. package/src/math/signedAngleTo/__test__/signedAngleTo.test.ts +0 -20
  161. package/src/math/signedAngleTo/signedAngleTo.ts +0 -20
  162. package/src/math/toFixed/__test__/toFixedExp.test.ts +0 -14
  163. package/src/math/toFixed/toFixedExp.ts +0 -9
  164. package/src/math/truncate/__test__/truncateExp.test.ts +0 -14
  165. package/src/math/truncate/truncateExp.ts +0 -9
  166. package/src/mediacreator/MediaCreator.ts +0 -75
  167. package/src/mediacreator/__test__/MediaCreator.test.ts +0 -155
  168. package/src/model/Model.ts +0 -185
  169. package/src/model/__test__/Model.test.ts +0 -222
  170. package/src/module/Module.ts +0 -45
  171. package/src/module/__test__/Module.test.ts +0 -54
  172. package/src/node/Node.ts +0 -98
  173. package/src/node/__test__/Node.test.ts +0 -120
  174. package/src/primitive/Primitive.ts +0 -299
  175. package/src/primitive/__test__/Primitive.test.ts +0 -281
  176. package/src/primitive/floor/Floor.ts +0 -45
  177. package/src/primitive/floor/__test__/Floor.test.ts +0 -24
  178. package/src/renderer/Renderer.ts +0 -215
  179. package/src/renderer/__test__/Renderer.test.ts +0 -228
  180. package/src/scene/Scene.ts +0 -106
  181. package/src/scene/__test__/Scene.test.ts +0 -124
  182. package/src/scene/root/Root.ts +0 -426
  183. package/src/scene/root/__test__/Root.test.ts +0 -903
  184. package/src/scene/xrroot/XRRoot.ts +0 -56
  185. package/src/scene/xrroot/xrlightroot/XRLightRoot.ts +0 -80
  186. package/src/toolbox/BaseTool.ts +0 -319
  187. package/src/toolbox/Toolbox.ts +0 -129
  188. package/src/toolbox/__test__/BaseTool.test.ts +0 -627
  189. package/src/toolbox/__test__/Toolbox.test.ts +0 -143
  190. package/src/toolbox/select/SelectTool.ts +0 -92
  191. package/src/toolbox/select/__test__/SelectTool.test.ts +0 -237
  192. package/src/toolbox/transform/TransformTool.ts +0 -166
  193. package/src/toolbox/transform/__test__/TransformTool.test.ts +0 -147
  194. package/src/types/SceneData.ts +0 -26
  195. package/src/types/SceneObjects.ts +0 -14
  196. package/src/types/SceneType.ts +0 -14
  197. package/src/types/index.ts +0 -5
@@ -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
- });