@needle-tools/engine 4.13.1 → 4.14.0-beta

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 (141) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/components.needle.json +1 -1
  3. package/dist/generateMeshBVH.worker-DiCnZlf3.js +21 -0
  4. package/dist/gltf-progressive-Bm_6aEi4.js +1528 -0
  5. package/dist/gltf-progressive-BttGBXw6.umd.cjs +10 -0
  6. package/dist/gltf-progressive-T5WKTux5.min.js +10 -0
  7. package/dist/loader.worker-BqODMeeW.js +23 -0
  8. package/dist/{materialx-B9ddsHcF.min.js → materialx-CJyQZtjt.min.js} +1 -1
  9. package/dist/{materialx-fkoFuRh3.js → materialx-DMs1E08Z.js} +2 -2
  10. package/dist/{materialx-BF23AVE8.umd.cjs → materialx-DaKKOoVk.umd.cjs} +1 -1
  11. package/dist/needle-engine.bundle-BW2VusZV.min.js +1646 -0
  12. package/dist/{needle-engine.bundle-tjI5Fq2c.umd.cjs → needle-engine.bundle-Cb5bKEqa.umd.cjs} +152 -159
  13. package/dist/{needle-engine.bundle-DauZUYl7.js → needle-engine.bundle-D9VPvp5o.js} +7798 -7497
  14. package/dist/needle-engine.d.ts +779 -42
  15. package/dist/needle-engine.js +416 -415
  16. package/dist/needle-engine.min.js +1 -1
  17. package/dist/needle-engine.umd.cjs +1 -1
  18. package/dist/{postprocessing-BVNrgYZK.min.js → postprocessing-CctM1XIO.min.js} +1 -1
  19. package/dist/{postprocessing-DdM-tz1j.js → postprocessing-DGm6qJ-I.js} +2 -2
  20. package/dist/{postprocessing-CI2TjWpu.umd.cjs → postprocessing-Dbl2PJpd.umd.cjs} +1 -1
  21. package/dist/{three-BW2s1Yl-.umd.cjs → three-BjYim-vL.umd.cjs} +4 -4
  22. package/dist/{three-VvRoMeIN.js → three-Bvk2VKbF.js} +4210 -4210
  23. package/dist/{three-I__hSXzr.min.js → three-IG2qPafA.min.js} +33 -33
  24. package/dist/{three-examples-Bpfu6ke_.umd.cjs → three-examples-BMmNgNCN.umd.cjs} +1 -1
  25. package/dist/{three-examples-BhfOE7NG.js → three-examples-CMYCd5nH.js} +1 -1
  26. package/dist/{three-examples-D8zAE_7t.min.js → three-examples-CQl1fFZp.min.js} +1 -1
  27. package/dist/{three-mesh-ui-C3QbemOV.min.js → three-mesh-ui-5HVE2RV-.min.js} +1 -1
  28. package/dist/{three-mesh-ui-CcMp-FQm.js → three-mesh-ui-BlakAItG.js} +1 -1
  29. package/dist/{three-mesh-ui-BU55xDxJ.umd.cjs → three-mesh-ui-D828VbQp.umd.cjs} +1 -1
  30. package/dist/{vendor-DW7zqjuT.min.js → vendor-BxK0WKmT.min.js} +1 -1
  31. package/dist/{vendor-COVQl0b8.umd.cjs → vendor-CIDkyBaO.umd.cjs} +1 -1
  32. package/dist/{vendor-BiyIZ61v.js → vendor-ixwD-vv2.js} +1 -1
  33. package/lib/engine/api.d.ts +1 -0
  34. package/lib/engine/api.js +1 -0
  35. package/lib/engine/api.js.map +1 -1
  36. package/lib/engine/engine_context.js +12 -2
  37. package/lib/engine/engine_context.js.map +1 -1
  38. package/lib/engine/engine_lightdata.js +8 -6
  39. package/lib/engine/engine_lightdata.js.map +1 -1
  40. package/lib/engine/engine_materialpropertyblock.d.ts +259 -0
  41. package/lib/engine/engine_materialpropertyblock.js +682 -0
  42. package/lib/engine/engine_materialpropertyblock.js.map +1 -0
  43. package/lib/engine/engine_utils.d.ts +1 -0
  44. package/lib/engine/engine_utils.js +1 -0
  45. package/lib/engine/engine_utils.js.map +1 -1
  46. package/lib/engine/engine_utils_screenshot.d.ts +171 -14
  47. package/lib/engine/engine_utils_screenshot.js +65 -0
  48. package/lib/engine/engine_utils_screenshot.js.map +1 -1
  49. package/lib/engine/engine_utils_screenshot.xr.d.ts +1 -1
  50. package/lib/engine/engine_utils_screenshot.xr.js +1 -1
  51. package/lib/engine/extensions/NEEDLE_techniques_webgl.js +3 -0
  52. package/lib/engine/extensions/NEEDLE_techniques_webgl.js.map +1 -1
  53. package/lib/engine/xr/NeedleXRSession.d.ts +5 -0
  54. package/lib/engine/xr/NeedleXRSession.js +5 -0
  55. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  56. package/lib/engine-components/Camera.js.map +1 -1
  57. package/lib/engine-components/DropListener.js.map +1 -1
  58. package/lib/engine-components/Duplicatable.js.map +1 -1
  59. package/lib/engine-components/GroundProjection.js.map +1 -1
  60. package/lib/engine-components/NeedleMenu.js.map +1 -1
  61. package/lib/engine-components/NestedGltf.js.map +1 -1
  62. package/lib/engine-components/ReflectionProbe.d.ts +32 -4
  63. package/lib/engine-components/ReflectionProbe.js +58 -88
  64. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  65. package/lib/engine-components/Renderer.d.ts +2 -0
  66. package/lib/engine-components/Renderer.js +30 -6
  67. package/lib/engine-components/Renderer.js.map +1 -1
  68. package/lib/engine-components/RendererLightmap.d.ts +13 -9
  69. package/lib/engine-components/RendererLightmap.js +67 -81
  70. package/lib/engine-components/RendererLightmap.js.map +1 -1
  71. package/lib/engine-components/SeeThrough.d.ts +0 -2
  72. package/lib/engine-components/SeeThrough.js +114 -88
  73. package/lib/engine-components/SeeThrough.js.map +1 -1
  74. package/lib/engine-components/SmoothFollow.js.map +1 -1
  75. package/lib/engine-components/VideoPlayer.js +6 -0
  76. package/lib/engine-components/VideoPlayer.js.map +1 -1
  77. package/lib/engine-components/ui/Button.js.map +1 -1
  78. package/lib/engine-components/ui/Raycaster.js.map +1 -1
  79. package/lib/engine-components/utils/OpenURL.d.ts +1 -0
  80. package/lib/engine-components/utils/OpenURL.js +1 -0
  81. package/lib/engine-components/utils/OpenURL.js.map +1 -1
  82. package/lib/engine-components/web/CursorFollow.d.ts +1 -0
  83. package/lib/engine-components/web/CursorFollow.js +1 -0
  84. package/lib/engine-components/web/CursorFollow.js.map +1 -1
  85. package/lib/engine-components/web/ScrollFollow.d.ts +1 -0
  86. package/lib/engine-components/web/ScrollFollow.js +1 -0
  87. package/lib/engine-components/web/ScrollFollow.js.map +1 -1
  88. package/lib/engine-components/web/ViewBox.d.ts +2 -2
  89. package/lib/engine-components/web/ViewBox.js +2 -2
  90. package/lib/engine-components/web/ViewBox.js.map +1 -1
  91. package/lib/engine-components/webxr/WebARCameraBackground.d.ts +9 -0
  92. package/lib/engine-components/webxr/WebARCameraBackground.js +9 -0
  93. package/lib/engine-components/webxr/WebARCameraBackground.js.map +1 -1
  94. package/lib/engine-components/webxr/WebXR.d.ts +1 -0
  95. package/lib/engine-components/webxr/WebXR.js +1 -0
  96. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  97. package/lib/engine-components/webxr/WebXRPlaneTracking.js.map +1 -1
  98. package/lib/engine-components/webxr/controllers/XRControllerFollow.js.map +1 -1
  99. package/lib/engine-components/webxr/controllers/XRControllerMovement.js.map +1 -1
  100. package/package.json +5 -5
  101. package/plugins/vite/build-pipeline.js +16 -2
  102. package/src/engine/api.ts +1 -0
  103. package/src/engine/engine_context.ts +17 -3
  104. package/src/engine/engine_lightdata.ts +8 -6
  105. package/src/engine/engine_materialpropertyblock.ts +866 -0
  106. package/src/engine/engine_utils.ts +1 -0
  107. package/src/engine/engine_utils_screenshot.ts +241 -17
  108. package/src/engine/engine_utils_screenshot.xr.ts +1 -1
  109. package/src/engine/extensions/NEEDLE_techniques_webgl.ts +3 -0
  110. package/src/engine/xr/NeedleXRSession.ts +5 -0
  111. package/src/engine-components/Camera.ts +2 -2
  112. package/src/engine-components/ContactShadows.ts +1 -1
  113. package/src/engine-components/DropListener.ts +1 -1
  114. package/src/engine-components/Duplicatable.ts +1 -1
  115. package/src/engine-components/GroundProjection.ts +3 -0
  116. package/src/engine-components/NeedleMenu.ts +3 -0
  117. package/src/engine-components/NestedGltf.ts +1 -1
  118. package/src/engine-components/ReflectionProbe.ts +64 -105
  119. package/src/engine-components/Renderer.ts +34 -6
  120. package/src/engine-components/RendererLightmap.ts +75 -87
  121. package/src/engine-components/SeeThrough.ts +124 -109
  122. package/src/engine-components/SmoothFollow.ts +2 -2
  123. package/src/engine-components/VideoPlayer.ts +6 -0
  124. package/src/engine-components/ui/Button.ts +1 -1
  125. package/src/engine-components/ui/Raycaster.ts +1 -1
  126. package/src/engine-components/utils/OpenURL.ts +1 -0
  127. package/src/engine-components/web/CursorFollow.ts +1 -0
  128. package/src/engine-components/web/ScrollFollow.ts +1 -0
  129. package/src/engine-components/web/ViewBox.ts +9 -2
  130. package/src/engine-components/webxr/WebARCameraBackground.ts +12 -3
  131. package/src/engine-components/webxr/WebXR.ts +1 -0
  132. package/src/engine-components/webxr/WebXRPlaneTracking.ts +3 -3
  133. package/src/engine-components/webxr/controllers/XRControllerFollow.ts +1 -1
  134. package/src/engine-components/webxr/controllers/XRControllerMovement.ts +4 -4
  135. package/dist/generateMeshBVH.worker-iyfPIK6R.js +0 -21
  136. package/dist/gltf-progressive-BURrJW0U.umd.cjs +0 -8
  137. package/dist/gltf-progressive-DHLDFNvQ.min.js +0 -8
  138. package/dist/gltf-progressive-eiJCrjLb.js +0 -1400
  139. package/dist/loader.worker-C1GG9A7C.js +0 -23
  140. package/dist/needle-engine.bundle-BNIUpreS.min.js +0 -1653
  141. package/src/include/three/DragControls.js +0 -232
@@ -1,232 +0,0 @@
1
- import {
2
- EventDispatcher,
3
- Matrix4,
4
- Plane,
5
- Raycaster,
6
- Vector2,
7
- Vector3
8
- } from 'three';
9
-
10
- const _plane = new Plane();
11
- const _raycaster = new Raycaster();
12
-
13
- const _pointer = new Vector2();
14
- const _offset = new Vector3();
15
- const _intersection = new Vector3();
16
- const _worldPosition = new Vector3();
17
- const _inverseMatrix = new Matrix4();
18
-
19
- class DragControls extends EventDispatcher {
20
-
21
- constructor(_objects, _camera, _domElement) {
22
-
23
- super();
24
-
25
- _domElement.style.touchAction = 'none'; // disable touch scroll
26
-
27
- let _selected = null, _hovered = null;
28
-
29
- const _intersections = [];
30
-
31
- //
32
-
33
- const scope = this;
34
-
35
- function activate() {
36
-
37
- _domElement.addEventListener('pointermove', onPointerMove);
38
- _domElement.addEventListener('pointerdown', onPointerDown);
39
- _domElement.addEventListener('pointerup', onPointerCancel);
40
- _domElement.addEventListener('pointerleave', onPointerCancel);
41
-
42
- }
43
-
44
- function deactivate() {
45
-
46
- _domElement.removeEventListener('pointermove', onPointerMove);
47
- _domElement.removeEventListener('pointerdown', onPointerDown);
48
- _domElement.removeEventListener('pointerup', onPointerCancel);
49
- _domElement.removeEventListener('pointerleave', onPointerCancel);
50
-
51
- _domElement.style.cursor = '';
52
-
53
- }
54
-
55
- function dispose() {
56
-
57
- deactivate();
58
-
59
- }
60
-
61
- function getObjects() {
62
-
63
- return _objects;
64
-
65
- }
66
-
67
- function getRaycaster() {
68
-
69
- return _raycaster;
70
-
71
- }
72
-
73
- function onPointerMove(event) {
74
-
75
- if (scope.enabled === false) return;
76
-
77
- updatePointer(event);
78
-
79
- _raycaster.setFromCamera(_pointer, _camera);
80
-
81
- if (_selected) {
82
-
83
- if (_raycaster.ray.intersectPlane(_plane, _intersection)) {
84
-
85
- _selected.position.copy(_intersection.sub(_offset).applyMatrix4(_inverseMatrix));
86
-
87
- }
88
-
89
- scope.dispatchEvent({ type: 'drag', object: _selected });
90
-
91
- return;
92
-
93
- }
94
-
95
- // hover support
96
-
97
- if (event.pointerType === 'mouse' || event.pointerType === 'pen') {
98
-
99
- _intersections.length = 0;
100
-
101
- _raycaster.setFromCamera(_pointer, _camera);
102
- _raycaster.intersectObjects(_objects, true, _intersections);
103
-
104
- if (_intersections.length > 0) {
105
-
106
- const object = _intersections[0].object;
107
-
108
- _plane.setFromNormalAndCoplanarPoint(_camera.getWorldDirection(_plane.normal), _worldPosition.setFromMatrixPosition(object.matrixWorld));
109
-
110
- if (_hovered !== object && _hovered !== null) {
111
-
112
- scope.dispatchEvent({ type: 'hoveroff', object: _hovered });
113
-
114
- _domElement.style.cursor = 'auto';
115
- _hovered = null;
116
-
117
- }
118
-
119
- if (_hovered !== object) {
120
-
121
- scope.dispatchEvent({ type: 'hoveron', object: object });
122
-
123
- _domElement.style.cursor = 'pointer';
124
- _hovered = object;
125
-
126
- }
127
-
128
- } else {
129
-
130
- if (_hovered !== null) {
131
-
132
- scope.dispatchEvent({ type: 'hoveroff', object: _hovered });
133
-
134
- _domElement.style.cursor = 'auto';
135
- _hovered = null;
136
-
137
- }
138
-
139
- }
140
-
141
- }
142
-
143
- }
144
-
145
- function onPointerDown(event) {
146
-
147
- if (scope.enabled === false) return;
148
-
149
- updatePointer(event);
150
-
151
- _intersections.length = 0;
152
-
153
- _raycaster.setFromCamera(_pointer, _camera);
154
- _raycaster.intersectObjects(_objects, true, _intersections);
155
-
156
- if (_intersections.length > 0) {
157
-
158
- _selected = (scope.transformGroup === true) ? _objects[0] : _intersections[0].object;
159
-
160
- _plane.setFromNormalAndCoplanarPoint(_camera.getWorldDirection(_plane.normal), _worldPosition.setFromMatrixPosition(_selected.matrixWorld));
161
-
162
- if (_raycaster.ray.intersectPlane(_plane, _intersection)) {
163
-
164
- _inverseMatrix.copy(_selected.parent.matrixWorld).invert();
165
- _offset.copy(_intersection).sub(_worldPosition.setFromMatrixPosition(_selected.matrixWorld));
166
- }
167
-
168
- _domElement.style.cursor = 'move';
169
-
170
- scope.dispatchEvent({ type: 'dragstart', object: _selected });
171
-
172
- }
173
-
174
-
175
- }
176
-
177
- function onPointerCancel() {
178
-
179
- if (scope.enabled === false) return;
180
-
181
- if (_selected) {
182
-
183
- scope.dispatchEvent({ type: 'dragend', object: _selected });
184
-
185
- _selected = null;
186
-
187
- }
188
-
189
- _domElement.style.cursor = _hovered ? 'pointer' : 'auto';
190
-
191
- }
192
-
193
- function updatePointer(event) {
194
-
195
- const rect = _domElement.getBoundingClientRect();
196
-
197
- _pointer.x = (event.clientX - rect.left) / rect.width * 2 - 1;
198
- _pointer.y = - (event.clientY - rect.top) / rect.height * 2 + 1;
199
-
200
- }
201
-
202
- function setSelected(newSelected){
203
- _selected = newSelected;
204
- if(_selected){
205
- _plane.setFromNormalAndCoplanarPoint(_camera.getWorldDirection(_plane.normal), _worldPosition.setFromMatrixPosition(_selected.matrixWorld));
206
- if (_raycaster.ray.intersectPlane(_plane, _intersection)) {
207
-
208
- _inverseMatrix.copy(_selected.parent.matrixWorld).invert();
209
- _offset.copy(_intersection).sub(_worldPosition.setFromMatrixPosition(_selected.matrixWorld));
210
- }
211
- }
212
- }
213
-
214
- activate();
215
-
216
- // API
217
-
218
- this.enabled = true;
219
- this.transformGroup = false;
220
-
221
- this.activate = activate;
222
- this.deactivate = deactivate;
223
- this.dispose = dispose;
224
- this.getObjects = getObjects;
225
- this.getRaycaster = getRaycaster;
226
- this.setSelected = setSelected;
227
-
228
- }
229
-
230
- }
231
-
232
- export { DragControls };