@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,627 +0,0 @@
1
- import { DIVEBaseTool } from '../BaseTool';
2
- import type DIVEOrbitControls from '../../controls/OrbitControls';
3
- import type { DIVEScene } from '../../scene/Scene';
4
- import { Vector3, type Intersection, type Object3D } from 'three';
5
- import { type DIVEHoverable } from '../../interface/Hoverable';
6
- import { type DIVEDraggable } from '../../interface/Draggable';
7
- import { RaycasterIntersectObjectMock } from '../../../__mocks__/three';
8
-
9
- /**
10
- * @jest-environment jsdom
11
- */
12
-
13
- const mock_Canvas = {
14
- width: 0,
15
- height: 0,
16
- getContext: jest.fn(),
17
- clientWidth: 1000,
18
- clientHeight: 1000,
19
- offsetLeft: 0,
20
- offsetTop: 0,
21
- };
22
-
23
- const mockController = {
24
- domElement: mock_Canvas,
25
- object: {
26
- isPerspectiveCamera: true,
27
- type: 'cameraP',
28
- },
29
- } as unknown as DIVEOrbitControls;
30
-
31
- const mockScene = {
32
- children: [],
33
- } as unknown as DIVEScene;
34
-
35
- const abstractWrapper = class Wrapper extends DIVEBaseTool {
36
- constructor(scene: DIVEScene, controller: DIVEOrbitControls) {
37
- super(scene, controller);
38
- this.name = 'DIVEBaseTool';
39
- }
40
- };
41
-
42
- describe('dive/toolbox/DIVEBaseTool', () => {
43
- afterEach(() => {
44
- jest.clearAllMocks();
45
- });
46
-
47
- it('should instantiate', () => {
48
- const baseTool = new abstractWrapper(mockScene, mockController);
49
- expect(baseTool).toBeDefined();
50
- });
51
-
52
- it('should Activate', () => {
53
- const baseTool = new abstractWrapper(mockScene, mockController);
54
- expect(() => baseTool.Activate()).not.toThrow();
55
- });
56
-
57
- it('should Deactivate', () => {
58
- const baseTool = new abstractWrapper(mockScene, mockController);
59
- expect(() => baseTool.Deactivate()).not.toThrow();
60
- });
61
-
62
- it('should raycast', () => {
63
- const toolBox = new abstractWrapper(mockScene, mockController);
64
- RaycasterIntersectObjectMock.mockImplementationOnce(() => {
65
- return [
66
- {
67
- object: {
68
- visible: true,
69
- },
70
- } as unknown as Intersection,
71
- ];
72
- });
73
- expect(() => toolBox['raycast']()).not.toThrow();
74
- expect(RaycasterIntersectObjectMock).toHaveBeenCalled();
75
- });
76
-
77
- it('should raycast with selection of objects', () => {
78
- const toolBox = new abstractWrapper(mockScene, mockController);
79
- const spy = jest
80
- .spyOn(toolBox['_raycaster'], 'intersectObjects')
81
- .mockImplementationOnce(() => {
82
- return [
83
- {
84
- object: {
85
- visible: true,
86
- },
87
- } as unknown as Intersection,
88
- ];
89
- });
90
- expect(() => toolBox['raycast']([])).not.toThrow();
91
- expect(spy).toHaveBeenCalled();
92
- });
93
-
94
- it('should return correct pointerAnyDown', () => {
95
- const toolBox = new abstractWrapper(mockScene, mockController);
96
- expect(toolBox).toBeDefined();
97
- expect(toolBox['_pointerAnyDown']).toBeDefined();
98
- expect(toolBox['_pointerAnyDown']).toBe(false);
99
-
100
- toolBox['_pointerPrimaryDown'] = false;
101
- toolBox['_pointerMiddleDown'] = false;
102
- toolBox['_pointerSecondaryDown'] = false;
103
- expect(toolBox['_pointerAnyDown']).toBe(false);
104
-
105
- toolBox['_pointerPrimaryDown'] = true;
106
- toolBox['_pointerMiddleDown'] = false;
107
- toolBox['_pointerSecondaryDown'] = false;
108
- expect(toolBox['_pointerAnyDown']).toBe(true);
109
-
110
- toolBox['_pointerPrimaryDown'] = false;
111
- toolBox['_pointerMiddleDown'] = true;
112
- toolBox['_pointerSecondaryDown'] = false;
113
- expect(toolBox['_pointerAnyDown']).toBe(true);
114
-
115
- toolBox['_pointerPrimaryDown'] = false;
116
- toolBox['_pointerMiddleDown'] = false;
117
- toolBox['_pointerSecondaryDown'] = true;
118
- expect(toolBox['_pointerAnyDown']).toBe(true);
119
- });
120
-
121
- it('should execute onPointerDown correctly', () => {
122
- const toolBox = new abstractWrapper(mockScene, mockController);
123
- expect(() =>
124
- toolBox.onPointerDown({ button: 0 } as PointerEvent),
125
- ).not.toThrow();
126
-
127
- expect(() =>
128
- toolBox.onPointerDown({ button: 1 } as PointerEvent),
129
- ).not.toThrow();
130
-
131
- expect(() =>
132
- toolBox.onPointerDown({ button: 2 } as PointerEvent),
133
- ).not.toThrow();
134
-
135
- const spy = jest.spyOn(console, 'warn').mockImplementation();
136
- expect(() =>
137
- toolBox.onPointerDown({ button: 666 } as PointerEvent),
138
- ).not.toThrow();
139
- expect(spy).toHaveBeenCalled();
140
-
141
- toolBox['_intersects'] = [
142
- {
143
- distance: 1,
144
- point: {
145
- clone() {
146
- return {
147
- x: 1,
148
- y: 1,
149
- z: 1,
150
- } as unknown as Vector3;
151
- },
152
- x: 1,
153
- y: 1,
154
- z: 1,
155
- } as unknown as Vector3,
156
- object: {
157
- uuid: 'uuid2',
158
- isHoverable: true,
159
- onPointerEnter() {
160
- return;
161
- },
162
- } as unknown as Object3D & DIVEHoverable,
163
- },
164
- ];
165
-
166
- expect(() =>
167
- toolBox.onPointerDown({ button: 0 } as PointerEvent),
168
- ).not.toThrow();
169
- expect(() =>
170
- toolBox.onPointerDown({ button: 1 } as PointerEvent),
171
- ).not.toThrow();
172
- expect(() =>
173
- toolBox.onPointerDown({ button: 2 } as PointerEvent),
174
- ).not.toThrow();
175
- });
176
-
177
- it('should execute onPointerMove correctly', () => {
178
- const toolBox = new abstractWrapper(mockScene, mockController);
179
- jest.spyOn(toolBox['_raycaster'], 'setFromCamera').mockImplementation();
180
-
181
- const spy = jest.spyOn(toolBox['_raycaster'], 'intersectObjects');
182
-
183
- // test with no hit with hovered object before
184
- spy.mockReturnValue([]);
185
-
186
- toolBox['_hovered'] = {
187
- uuid: 'uuid',
188
- onPointerLeave() {
189
- return;
190
- },
191
- } as Object3D & DIVEHoverable;
192
-
193
- expect(() =>
194
- toolBox.onPointerMove({
195
- button: 0,
196
- offsetX: 100,
197
- offsetY: 100,
198
- } as PointerEvent),
199
- ).not.toThrow();
200
- expect(() =>
201
- toolBox.onPointerMove({
202
- button: 1,
203
- offsetX: 100,
204
- offsetY: 100,
205
- } as PointerEvent),
206
- ).not.toThrow();
207
- expect(() =>
208
- toolBox.onPointerMove({
209
- button: 2,
210
- offsetX: 100,
211
- offsetY: 100,
212
- } as PointerEvent),
213
- ).not.toThrow();
214
-
215
- // test with no hovered object
216
- spy.mockReturnValue([
217
- {
218
- distance: 1,
219
- point: {
220
- x: 1,
221
- y: 1,
222
- z: 1,
223
- } as unknown as Vector3,
224
- object: {
225
- uuid: 'uuid',
226
- isHoverable: true,
227
- visible: true,
228
- } as Object3D & DIVEHoverable,
229
- },
230
- ]);
231
-
232
- toolBox['_hovered'] = null;
233
-
234
- expect(() =>
235
- toolBox.onPointerMove({
236
- button: 0,
237
- offsetX: 100,
238
- offsetY: 100,
239
- } as PointerEvent),
240
- ).not.toThrow();
241
- expect(() =>
242
- toolBox.onPointerMove({
243
- button: 1,
244
- offsetX: 100,
245
- offsetY: 100,
246
- } as PointerEvent),
247
- ).not.toThrow();
248
- expect(() =>
249
- toolBox.onPointerMove({
250
- button: 2,
251
- offsetX: 100,
252
- offsetY: 100,
253
- } as PointerEvent),
254
- ).not.toThrow();
255
-
256
- // test with no hovered object with onPointerEnter
257
- spy.mockReturnValue([
258
- {
259
- distance: 1,
260
- point: {
261
- x: 1,
262
- y: 1,
263
- z: 1,
264
- } as unknown as Vector3,
265
- object: {
266
- uuid: 'uuid',
267
- isHoverable: true,
268
- visible: true,
269
- onPointerEnter() {
270
- return;
271
- },
272
- } as unknown as Object3D & DIVEHoverable,
273
- },
274
- ]);
275
-
276
- expect(() =>
277
- toolBox.onPointerMove({
278
- button: 0,
279
- offsetX: 100,
280
- offsetY: 100,
281
- } as PointerEvent),
282
- ).not.toThrow();
283
- expect(() =>
284
- toolBox.onPointerMove({
285
- button: 1,
286
- offsetX: 100,
287
- offsetY: 100,
288
- } as PointerEvent),
289
- ).not.toThrow();
290
- expect(() =>
291
- toolBox.onPointerMove({
292
- button: 2,
293
- offsetX: 100,
294
- offsetY: 100,
295
- } as PointerEvent),
296
- ).not.toThrow();
297
-
298
- // test with same hovered object
299
- spy.mockReturnValue([
300
- {
301
- distance: 1,
302
- point: {
303
- x: 1,
304
- y: 1,
305
- z: 1,
306
- } as unknown as Vector3,
307
- object: {
308
- uuid: 'uuid',
309
- isHoverable: true,
310
- visible: true,
311
- onPointerOver() {
312
- return;
313
- },
314
- } as unknown as Object3D & DIVEHoverable,
315
- },
316
- ]);
317
-
318
- toolBox['_hovered'] = {
319
- uuid: 'uuid',
320
- visible: true,
321
- onPointerLeave() {
322
- return;
323
- },
324
- } as Object3D & DIVEHoverable;
325
-
326
- expect(() =>
327
- toolBox.onPointerMove({
328
- button: 0,
329
- offsetX: 100,
330
- offsetY: 100,
331
- } as PointerEvent),
332
- ).not.toThrow();
333
- expect(() =>
334
- toolBox.onPointerMove({
335
- button: 1,
336
- offsetX: 100,
337
- offsetY: 100,
338
- } as PointerEvent),
339
- ).not.toThrow();
340
- expect(() =>
341
- toolBox.onPointerMove({
342
- button: 2,
343
- offsetX: 100,
344
- offsetY: 100,
345
- } as PointerEvent),
346
- ).not.toThrow();
347
-
348
- // test with different hovered object
349
- spy.mockReturnValue([
350
- {
351
- distance: 1,
352
- point: new Vector3(1, 1, 1),
353
- object: {
354
- uuid: 'uuid2',
355
- isHoverable: true,
356
- visible: true,
357
- onPointerEnter() {
358
- return;
359
- },
360
- } as unknown as Object3D & DIVEHoverable,
361
- },
362
- ]);
363
-
364
- toolBox['_hovered'] = {
365
- uuid: 'uuid',
366
- visible: true,
367
- onPointerLeave() {
368
- return;
369
- },
370
- } as Object3D & DIVEHoverable;
371
-
372
- expect(() =>
373
- toolBox.onPointerMove({
374
- button: 0,
375
- offsetX: 100,
376
- offsetY: 100,
377
- } as PointerEvent),
378
- ).not.toThrow();
379
- expect(() =>
380
- toolBox.onPointerMove({
381
- button: 1,
382
- offsetX: 100,
383
- offsetY: 100,
384
- } as PointerEvent),
385
- ).not.toThrow();
386
- expect(() =>
387
- toolBox.onPointerMove({
388
- button: 2,
389
- offsetX: 100,
390
- offsetY: 100,
391
- } as PointerEvent),
392
- ).not.toThrow();
393
-
394
- // test with pointer down
395
- toolBox['_pointerPrimaryDown'] = true;
396
- expect(() =>
397
- toolBox.onPointerMove({
398
- button: 0,
399
- offsetX: 100,
400
- offsetY: 100,
401
- } as PointerEvent),
402
- ).not.toThrow();
403
- expect(() =>
404
- toolBox.onPointerMove({
405
- button: 1,
406
- offsetX: 100,
407
- offsetY: 100,
408
- } as PointerEvent),
409
- ).not.toThrow();
410
- expect(() =>
411
- toolBox.onPointerMove({
412
- button: 2,
413
- offsetX: 100,
414
- offsetY: 100,
415
- } as PointerEvent),
416
- ).not.toThrow();
417
-
418
- // test with pointer down while already dragging
419
- toolBox['_pointerPrimaryDown'] = true;
420
- toolBox['_dragging'] = true;
421
- expect(() =>
422
- toolBox.onPointerMove({
423
- button: 0,
424
- offsetX: 100,
425
- offsetY: 100,
426
- } as PointerEvent),
427
- ).not.toThrow();
428
- expect(() =>
429
- toolBox.onPointerMove({
430
- button: 1,
431
- offsetX: 100,
432
- offsetY: 100,
433
- } as PointerEvent),
434
- ).not.toThrow();
435
- expect(() =>
436
- toolBox.onPointerMove({
437
- button: 2,
438
- offsetX: 100,
439
- offsetY: 100,
440
- } as PointerEvent),
441
- ).not.toThrow();
442
-
443
- spy.mockRestore();
444
- });
445
-
446
- it('should execute onPointerUp correctly', () => {
447
- const toolBox = new abstractWrapper(mockScene, mockController);
448
- expect(() =>
449
- toolBox.onPointerUp({ button: 0 } as PointerEvent),
450
- ).not.toThrow();
451
- expect(() =>
452
- toolBox.onPointerUp({ button: 1 } as PointerEvent),
453
- ).not.toThrow();
454
- expect(() =>
455
- toolBox.onPointerUp({ button: 2 } as PointerEvent),
456
- ).not.toThrow();
457
-
458
- toolBox['pointerWasDragged'] = () => {
459
- return true;
460
- };
461
- toolBox['_dragging'] = true;
462
- toolBox['_intersects'] = [
463
- {
464
- distance: 1,
465
- point: {
466
- clone() {
467
- return {
468
- x: 1,
469
- y: 1,
470
- z: 1,
471
- } as unknown as Vector3;
472
- },
473
- x: 1,
474
- y: 1,
475
- z: 1,
476
- } as unknown as Vector3,
477
- object: {
478
- uuid: 'uuid2',
479
- isHoverable: true,
480
- onPointerEnter() {
481
- return;
482
- },
483
- } as unknown as Object3D & DIVEHoverable,
484
- },
485
- ];
486
- toolBox['_draggable'] = {
487
- onDragEnd() {
488
- return;
489
- },
490
- } as unknown as Object3D & DIVEDraggable;
491
- expect(() =>
492
- toolBox.onPointerUp({ button: 0 } as PointerEvent),
493
- ).not.toThrow();
494
- expect(() =>
495
- toolBox.onPointerUp({ button: 1 } as PointerEvent),
496
- ).not.toThrow();
497
- expect(() =>
498
- toolBox.onPointerUp({ button: 2 } as PointerEvent),
499
- ).not.toThrow();
500
- });
501
-
502
- it('should execute onDragStart correctly', () => {
503
- const toolBox = new abstractWrapper(mockScene, mockController);
504
- expect(() => toolBox.onDragStart({} as PointerEvent)).not.toThrow();
505
-
506
- toolBox['_draggable'] = {
507
- onDragStart() {
508
- return;
509
- },
510
- } as unknown as Object3D & DIVEDraggable;
511
- expect(() => toolBox.onDragStart({} as PointerEvent)).not.toThrow();
512
-
513
- toolBox['_dragRaycastOnObjects'] = [];
514
- jest.spyOn(
515
- toolBox['_raycaster'],
516
- 'intersectObjects',
517
- ).mockReturnValueOnce([]);
518
- expect(() => toolBox.onDragStart({} as PointerEvent)).not.toThrow();
519
-
520
- jest.spyOn(
521
- toolBox['_raycaster'],
522
- 'intersectObjects',
523
- ).mockReturnValueOnce([]);
524
- expect(() => toolBox.onDragStart({} as PointerEvent)).not.toThrow();
525
-
526
- jest.spyOn(
527
- toolBox['_raycaster'],
528
- 'intersectObjects',
529
- ).mockReturnValueOnce([
530
- {
531
- distance: 1,
532
- point: {
533
- clone() {
534
- return {
535
- x: 1,
536
- y: 1,
537
- z: 1,
538
- } as unknown as Vector3;
539
- },
540
- x: 1,
541
- y: 1,
542
- z: 1,
543
- } as unknown as Vector3,
544
- object: {
545
- uuid: 'uuid2',
546
- isHoverable: true,
547
- onPointerEnter() {
548
- return;
549
- },
550
- } as unknown as Object3D & DIVEHoverable,
551
- },
552
- ]);
553
- expect(() => toolBox.onDragStart({} as PointerEvent)).not.toThrow();
554
-
555
- toolBox['_draggable'] = {
556
- onDragStart() {
557
- return;
558
- },
559
- } as unknown as Object3D & DIVEDraggable;
560
- jest.spyOn(
561
- toolBox['_raycaster'],
562
- 'intersectObjects',
563
- ).mockReturnValueOnce([]);
564
- expect(() => toolBox.onDragStart({} as PointerEvent)).not.toThrow();
565
- });
566
-
567
- it('should execute onDrag correctly', () => {
568
- const toolBox = new abstractWrapper(mockScene, mockController);
569
- expect(() => toolBox.onDrag({} as PointerEvent)).not.toThrow();
570
-
571
- toolBox['_dragRaycastOnObjects'] = [];
572
- jest.spyOn(
573
- toolBox['_raycaster'],
574
- 'intersectObjects',
575
- ).mockReturnValueOnce([]);
576
- expect(() => toolBox.onDrag({} as PointerEvent)).not.toThrow();
577
-
578
- toolBox['_draggable'] = {
579
- onDrag() {
580
- return;
581
- },
582
- } as unknown as Object3D & DIVEDraggable;
583
- jest.spyOn(
584
- toolBox['_raycaster'],
585
- 'intersectObjects',
586
- ).mockReturnValueOnce([
587
- {
588
- distance: 1,
589
- point: {
590
- clone() {
591
- return {
592
- x: 1,
593
- y: 1,
594
- z: 1,
595
- } as unknown as Vector3;
596
- },
597
- x: 1,
598
- y: 1,
599
- z: 1,
600
- } as unknown as Vector3,
601
- object: {
602
- uuid: 'uuid2',
603
- isHoverable: true,
604
- onPointerEnter() {
605
- return;
606
- },
607
- } as unknown as Object3D & DIVEHoverable,
608
- },
609
- ]);
610
- expect(() => toolBox.onDrag({} as PointerEvent)).not.toThrow();
611
- });
612
-
613
- it('should execute onCLick correctly', () => {
614
- const toolBox = new abstractWrapper(mockScene, mockController);
615
- expect(() => toolBox.onClick({} as PointerEvent)).not.toThrow();
616
- });
617
-
618
- it('should execute onDragEnd correctly', () => {
619
- const toolBox = new abstractWrapper(mockScene, mockController);
620
- expect(() => toolBox.onDragEnd({} as PointerEvent)).not.toThrow();
621
- });
622
-
623
- it('should execute onWheel correctly', () => {
624
- const toolBox = new abstractWrapper(mockScene, mockController);
625
- expect(() => toolBox.onWheel({} as WheelEvent)).not.toThrow();
626
- });
627
- });