@react-three/drei 9.83.9 → 9.84.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 (255) hide show
  1. package/README.md +116 -5
  2. package/core/AccumulativeShadows.d.ts +3 -3
  3. package/core/AccumulativeShadows.js +30 -36
  4. package/core/AdaptiveDpr.js +4 -4
  5. package/core/ArcballControls.d.ts +1 -1
  6. package/core/ArcballControls.js +0 -1
  7. package/core/AsciiRenderer.d.ts +3 -3
  8. package/core/AsciiRenderer.js +12 -6
  9. package/core/BBAnchor.cjs.js +1 -1
  10. package/core/BBAnchor.d.ts +2 -2
  11. package/core/BBAnchor.js +5 -5
  12. package/core/Backdrop.d.ts +2 -2
  13. package/core/Backdrop.js +0 -3
  14. package/core/Billboard.d.ts +1 -1
  15. package/core/Billboard.js +6 -3
  16. package/core/Bounds.d.ts +5 -5
  17. package/core/Bounds.js +5 -32
  18. package/core/CameraControls.d.ts +2 -2
  19. package/core/CameraControls.js +0 -3
  20. package/core/CameraShake.js +0 -4
  21. package/core/CatmullRomLine.d.ts +1 -1
  22. package/core/CatmullRomLine.js +0 -2
  23. package/core/Caustics.d.ts +1 -1
  24. package/core/Caustics.js +31 -32
  25. package/core/Center.d.ts +2 -2
  26. package/core/Center.js +2 -1
  27. package/core/Clone.d.ts +1 -1
  28. package/core/Clone.js +10 -13
  29. package/core/Cloud.cjs.js +1 -1
  30. package/core/Cloud.d.ts +2 -2
  31. package/core/Cloud.js +1 -2
  32. package/core/ComputedAttribute.d.ts +2 -2
  33. package/core/ComputedAttribute.js +0 -1
  34. package/core/ContactShadows.d.ts +1 -1
  35. package/core/ContactShadows.js +6 -7
  36. package/core/CubeCamera.cjs.js +1 -1
  37. package/core/CubeCamera.d.ts +2 -2
  38. package/core/CubeCamera.js +1 -1
  39. package/core/CubicBezierLine.d.ts +1 -1
  40. package/core/CurveModifier.d.ts +1 -1
  41. package/core/CurveModifier.js +2 -4
  42. package/core/Decal.d.ts +1 -1
  43. package/core/Decal.js +8 -15
  44. package/core/Detailed.d.ts +1 -1
  45. package/core/Detailed.js +0 -1
  46. package/core/DeviceOrientationControls.d.ts +1 -1
  47. package/core/DeviceOrientationControls.js +3 -4
  48. package/core/Edges.d.ts +1 -1
  49. package/core/Edges.js +0 -2
  50. package/core/Effects.d.ts +1 -1
  51. package/core/Effects.js +5 -7
  52. package/core/Environment.d.ts +3 -3
  53. package/core/Environment.js +6 -12
  54. package/core/Example.d.ts +3 -3
  55. package/core/Example.js +2 -1
  56. package/core/FaceControls.cjs.js +1 -1
  57. package/core/FaceControls.d.ts +5 -5
  58. package/core/FaceControls.js +42 -39
  59. package/core/FaceLandmarker.d.ts +3 -2
  60. package/core/FaceLandmarker.js +1 -1
  61. package/core/Facemesh.d.ts +6 -6
  62. package/core/Facemesh.js +47 -53
  63. package/core/FirstPersonControls.d.ts +1 -1
  64. package/core/Float.d.ts +1 -1
  65. package/core/Float.js +0 -1
  66. package/core/FlyControls.d.ts +1 -1
  67. package/core/FlyControls.js +1 -2
  68. package/core/GizmoHelper.cjs.js +1 -1
  69. package/core/GizmoHelper.d.ts +2 -2
  70. package/core/GizmoHelper.js +18 -19
  71. package/core/GizmoViewcube.d.ts +3 -3
  72. package/core/GizmoViewcube.js +0 -14
  73. package/core/GizmoViewport.d.ts +3 -3
  74. package/core/GizmoViewport.js +0 -7
  75. package/core/Gltf.d.ts +1 -1
  76. package/core/GradientTexture.d.ts +3 -3
  77. package/core/GradientTexture.js +2 -5
  78. package/core/Grid.d.ts +2 -2
  79. package/core/Grid.js +2 -6
  80. package/core/Hud.d.ts +2 -2
  81. package/core/Hud.js +6 -9
  82. package/core/Image.d.ts +2 -2
  83. package/core/Image.js +4 -6
  84. package/core/Instances.d.ts +6 -6
  85. package/core/Instances.js +20 -35
  86. package/core/Lightformer.d.ts +1 -1
  87. package/core/Lightformer.js +4 -2
  88. package/core/Line.d.ts +1 -1
  89. package/core/Line.js +0 -3
  90. package/core/MapControls.d.ts +1 -1
  91. package/core/MapControls.js +0 -2
  92. package/core/MarchingCubes.d.ts +3 -3
  93. package/core/Mask.d.ts +1 -1
  94. package/core/MeshDistortMaterial.d.ts +2 -2
  95. package/core/MeshDistortMaterial.js +0 -9
  96. package/core/MeshPortalMaterial.d.ts +4 -4
  97. package/core/MeshPortalMaterial.js +22 -61
  98. package/core/MeshReflectorMaterial.d.ts +1 -1
  99. package/core/MeshReflectorMaterial.js +12 -14
  100. package/core/MeshRefractionMaterial.cjs.js +1 -1
  101. package/core/MeshRefractionMaterial.d.ts +3 -3
  102. package/core/MeshRefractionMaterial.js +9 -14
  103. package/core/MeshTransmissionMaterial.d.ts +2 -2
  104. package/core/MeshTransmissionMaterial.js +32 -33
  105. package/core/MeshWobbleMaterial.d.ts +2 -2
  106. package/core/MeshWobbleMaterial.js +0 -7
  107. package/core/MotionPathControls.cjs.js +1 -0
  108. package/core/MotionPathControls.d.ts +15 -0
  109. package/core/MotionPathControls.js +113 -0
  110. package/core/OrbitControls.d.ts +2 -2
  111. package/core/OrbitControls.js +0 -4
  112. package/core/OrthographicCamera.d.ts +1 -1
  113. package/core/OrthographicCamera.js +2 -3
  114. package/core/Outlines.cjs.js +1 -1
  115. package/core/Outlines.d.ts +3 -3
  116. package/core/Outlines.js +2 -7
  117. package/core/PerformanceMonitor.d.ts +4 -4
  118. package/core/PerformanceMonitor.js +8 -12
  119. package/core/PerspectiveCamera.d.ts +1 -1
  120. package/core/PerspectiveCamera.js +2 -3
  121. package/core/PointMaterial.d.ts +1 -1
  122. package/core/PointMaterial.js +0 -2
  123. package/core/PointerLockControls.d.ts +1 -1
  124. package/core/PointerLockControls.js +4 -6
  125. package/core/Points.d.ts +2 -2
  126. package/core/Points.js +6 -23
  127. package/core/PositionalAudio.d.ts +1 -1
  128. package/core/PositionalAudio.js +0 -5
  129. package/core/Preload.d.ts +1 -1
  130. package/core/Preload.js +8 -9
  131. package/core/QuadraticBezierLine.d.ts +2 -2
  132. package/core/QuadraticBezierLine.js +0 -2
  133. package/core/Reflector.d.ts +1 -1
  134. package/core/Reflector.js +11 -12
  135. package/core/RenderTexture.d.ts +1 -1
  136. package/core/RenderTexture.js +9 -11
  137. package/core/Resize.d.ts +2 -2
  138. package/core/RoundedBox.cjs.js +1 -1
  139. package/core/RoundedBox.d.ts +1 -1
  140. package/core/RoundedBox.js +1 -3
  141. package/core/Sampler.d.ts +5 -5
  142. package/core/Sampler.js +0 -10
  143. package/core/ScreenQuad.d.ts +1 -1
  144. package/core/ScreenQuad.js +0 -1
  145. package/core/ScreenSpace.d.ts +1 -1
  146. package/core/Segments.d.ts +2 -2
  147. package/core/Segments.js +0 -6
  148. package/core/Shadow.d.ts +1 -1
  149. package/core/Sky.d.ts +1 -1
  150. package/core/Sparkles.js +0 -10
  151. package/core/SpotLight.d.ts +2 -2
  152. package/core/SpotLight.js +3 -10
  153. package/core/SpriteAnimator.d.ts +1 -1
  154. package/core/SpriteAnimator.js +16 -34
  155. package/core/Stage.d.ts +4 -4
  156. package/core/Stage.js +2 -4
  157. package/core/Stars.d.ts +1 -1
  158. package/core/Stars.js +2 -11
  159. package/core/Stats.d.ts +1 -1
  160. package/core/Stats.js +2 -2
  161. package/core/StatsGl.d.ts +1 -1
  162. package/core/StatsGl.js +4 -3
  163. package/core/Svg.js +0 -2
  164. package/core/Text.d.ts +1 -1
  165. package/core/Text3D.d.ts +1 -1
  166. package/core/Text3D.js +1 -3
  167. package/core/TrackballControls.d.ts +1 -1
  168. package/core/TrackballControls.js +0 -1
  169. package/core/Trail.d.ts +3 -3
  170. package/core/Trail.js +6 -17
  171. package/core/TransformControls.d.ts +1 -1
  172. package/core/TransformControls.js +3 -9
  173. package/core/Wireframe.d.ts +1 -1
  174. package/core/Wireframe.js +0 -28
  175. package/core/index.cjs.js +1 -1
  176. package/core/index.d.ts +1 -0
  177. package/core/index.js +1 -0
  178. package/core/meshBounds.js +4 -14
  179. package/core/shaderMaterial.js +10 -9
  180. package/core/shapes.d.ts +2 -2
  181. package/core/shapes.js +3 -6
  182. package/core/softShadows.d.ts +1 -1
  183. package/core/softShadows.js +1 -4
  184. package/core/useAnimations.d.ts +1 -1
  185. package/core/useAnimations.js +2 -4
  186. package/core/useBVH.d.ts +1 -1
  187. package/core/useBVH.js +3 -4
  188. package/core/useBoxProjectedEnv.js +15 -22
  189. package/core/useCamera.js +0 -1
  190. package/core/useContextBridge.js +1 -2
  191. package/core/useCubeCamera.d.ts +1 -1
  192. package/core/useCubeTexture.d.ts +1 -1
  193. package/core/useCubeTexture.js +4 -3
  194. package/core/useEnvironment.cjs.js +1 -1
  195. package/core/useEnvironment.d.ts +2 -2
  196. package/core/useEnvironment.js +9 -11
  197. package/core/useFBO.d.ts +1 -1
  198. package/core/useFBO.js +3 -12
  199. package/core/useFBX.js +0 -2
  200. package/core/useFont.d.ts +2 -2
  201. package/core/useFont.js +0 -4
  202. package/core/useGLTF.d.ts +2 -2
  203. package/core/useGLTF.js +0 -8
  204. package/core/useHelper.d.ts +3 -3
  205. package/core/useHelper.js +2 -5
  206. package/core/useIntersect.js +5 -8
  207. package/core/useKTX2.js +3 -5
  208. package/core/useMatcapTexture.js +0 -6
  209. package/core/useNormalTexture.d.ts +1 -1
  210. package/core/useProgress.d.ts +1 -1
  211. package/core/useProgress.js +0 -5
  212. package/core/useTexture.js +4 -6
  213. package/core/useTrailTexture.d.ts +1 -1
  214. package/core/useTrailTexture.js +10 -21
  215. package/helpers/environment-assets.d.ts +1 -1
  216. package/helpers/ts-utils.d.ts +2 -2
  217. package/helpers/useEffectfulState.d.ts +1 -1
  218. package/helpers/useEffectfulState.js +0 -1
  219. package/index.cjs.js +1 -1
  220. package/index.js +1 -0
  221. package/materials/BlurPass.js +2 -5
  222. package/materials/ConvolutionMaterial.js +0 -3
  223. package/materials/MeshReflectorMaterial.d.ts +1 -1
  224. package/materials/MeshReflectorMaterial.js +0 -34
  225. package/materials/MeshRefractionMaterial.js +2 -6
  226. package/materials/SpotLightMaterial.js +2 -7
  227. package/materials/WireframeMaterial.js +7 -25
  228. package/native/index.cjs.js +1 -1
  229. package/native/index.js +1 -0
  230. package/package.json +2 -2
  231. package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
  232. package/web/CycleRaycast.d.ts +1 -1
  233. package/web/CycleRaycast.js +20 -24
  234. package/web/Html.d.ts +2 -2
  235. package/web/Html.js +6 -50
  236. package/web/KeyboardControls.d.ts +10 -10
  237. package/web/KeyboardControls.js +9 -6
  238. package/web/Loader.d.ts +2 -2
  239. package/web/Loader.js +8 -5
  240. package/web/PresentationControls.d.ts +2 -2
  241. package/web/PresentationControls.js +2 -1
  242. package/web/ScrollControls.d.ts +4 -4
  243. package/web/ScrollControls.js +5 -16
  244. package/web/Select.d.ts +3 -3
  245. package/web/Select.js +6 -17
  246. package/web/View.d.ts +5 -5
  247. package/web/View.js +7 -20
  248. package/web/index.cjs.js +1 -1
  249. package/web/index.js +1 -0
  250. package/web/pivotControls/AxisArrow.js +6 -15
  251. package/web/pivotControls/AxisRotator.js +8 -23
  252. package/web/pivotControls/PlaneSlider.js +6 -16
  253. package/web/pivotControls/context.d.ts +2 -2
  254. package/web/pivotControls/index.d.ts +1 -1
  255. package/web/pivotControls/index.js +2 -9
package/index.js CHANGED
@@ -43,6 +43,7 @@ export { PointerLockControls } from './core/PointerLockControls.js';
43
43
  export { FirstPersonControls } from './core/FirstPersonControls.js';
44
44
  export { CameraControls } from './core/CameraControls.js';
45
45
  export { FaceControls, useFaceControls } from './core/FaceControls.js';
46
+ export { MotionPathControls, useMotion } from './core/MotionPathControls.js';
46
47
  export { GizmoHelper, useGizmoContext } from './core/GizmoHelper.js';
47
48
  export { GizmoViewcube } from './core/GizmoViewcube.js';
48
49
  export { GizmoViewport } from './core/GizmoViewport.js';
@@ -40,7 +40,6 @@ class BlurPass {
40
40
  this.screen.frustumCulled = false;
41
41
  this.scene.add(this.screen);
42
42
  }
43
-
44
43
  render(renderer, inputBuffer, outputBuffer) {
45
44
  const scene = this.scene;
46
45
  const camera = this.camera;
@@ -52,8 +51,8 @@ class BlurPass {
52
51
  const kernel = material.kernel;
53
52
  let lastRT = inputBuffer;
54
53
  let destRT;
55
- let i, l; // Apply the multi-pass blur.
56
-
54
+ let i, l;
55
+ // Apply the multi-pass blur.
57
56
  for (i = 0, l = kernel.length - 1; i < l; ++i) {
58
57
  // Alternate between targets.
59
58
  destRT = (i & 1) === 0 ? renderTargetA : renderTargetB;
@@ -63,13 +62,11 @@ class BlurPass {
63
62
  renderer.render(scene, camera);
64
63
  lastRT = destRT;
65
64
  }
66
-
67
65
  uniforms.kernel.value = kernel[i];
68
66
  uniforms.inputBuffer.value = lastRT.texture;
69
67
  renderer.setRenderTarget(this.renderToScreen ? null : outputBuffer);
70
68
  renderer.render(scene, camera);
71
69
  }
72
-
73
70
  }
74
71
 
75
72
  export { BlurPass };
@@ -84,16 +84,13 @@ class ConvolutionMaterial extends THREE.ShaderMaterial {
84
84
  this.setTexelSize(texelSize.x, texelSize.y);
85
85
  this.kernel = new Float32Array([0.0, 1.0, 2.0, 2.0, 3.0]);
86
86
  }
87
-
88
87
  setTexelSize(x, y) {
89
88
  this.uniforms.texelSize.value.set(x, y);
90
89
  this.uniforms.halfTexelSize.value.set(x, y).multiplyScalar(0.5);
91
90
  }
92
-
93
91
  setResolution(resolution) {
94
92
  this.uniforms.resolution.value.copy(resolution);
95
93
  }
96
-
97
94
  }
98
95
 
99
96
  export { ConvolutionMaterial };
@@ -48,7 +48,7 @@ export declare class MeshReflectorMaterial extends MeshStandardMaterial {
48
48
  get mixContrast(): number;
49
49
  set mixContrast(v: number);
50
50
  }
51
- export declare type MeshReflectorMaterialProps = {
51
+ export type MeshReflectorMaterialProps = {
52
52
  mixBlur: number;
53
53
  mixStrength: number;
54
54
  mirror: number;
@@ -50,14 +50,11 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
50
50
  };
51
51
  this.setValues(parameters);
52
52
  }
53
-
54
53
  onBeforeCompile(shader) {
55
54
  var _shader$defines;
56
-
57
55
  if (!((_shader$defines = shader.defines) != null && _shader$defines.USE_UV)) {
58
56
  shader.defines.USE_UV = '';
59
57
  }
60
-
61
58
  shader.uniforms.hasBlur = this._hasBlur;
62
59
  shader.uniforms.tDiffuse = this._tDiffuse;
63
60
  shader.uniforms.tDepth = this._tDepth;
@@ -164,127 +161,96 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
164
161
  diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + newMerge.rgb * mixStrength);
165
162
  `);
166
163
  }
167
-
168
164
  get tDiffuse() {
169
165
  return this._tDiffuse.value;
170
166
  }
171
-
172
167
  set tDiffuse(v) {
173
168
  this._tDiffuse.value = v;
174
169
  }
175
-
176
170
  get tDepth() {
177
171
  return this._tDepth.value;
178
172
  }
179
-
180
173
  set tDepth(v) {
181
174
  this._tDepth.value = v;
182
175
  }
183
-
184
176
  get distortionMap() {
185
177
  return this._distortionMap.value;
186
178
  }
187
-
188
179
  set distortionMap(v) {
189
180
  this._distortionMap.value = v;
190
181
  }
191
-
192
182
  get tDiffuseBlur() {
193
183
  return this._tDiffuseBlur.value;
194
184
  }
195
-
196
185
  set tDiffuseBlur(v) {
197
186
  this._tDiffuseBlur.value = v;
198
187
  }
199
-
200
188
  get textureMatrix() {
201
189
  return this._textureMatrix.value;
202
190
  }
203
-
204
191
  set textureMatrix(v) {
205
192
  this._textureMatrix.value = v;
206
193
  }
207
-
208
194
  get hasBlur() {
209
195
  return this._hasBlur.value;
210
196
  }
211
-
212
197
  set hasBlur(v) {
213
198
  this._hasBlur.value = v;
214
199
  }
215
-
216
200
  get mirror() {
217
201
  return this._mirror.value;
218
202
  }
219
-
220
203
  set mirror(v) {
221
204
  this._mirror.value = v;
222
205
  }
223
-
224
206
  get mixBlur() {
225
207
  return this._mixBlur.value;
226
208
  }
227
-
228
209
  set mixBlur(v) {
229
210
  this._mixBlur.value = v;
230
211
  }
231
-
232
212
  get mixStrength() {
233
213
  return this._blurStrength.value;
234
214
  }
235
-
236
215
  set mixStrength(v) {
237
216
  this._blurStrength.value = v;
238
217
  }
239
-
240
218
  get minDepthThreshold() {
241
219
  return this._minDepthThreshold.value;
242
220
  }
243
-
244
221
  set minDepthThreshold(v) {
245
222
  this._minDepthThreshold.value = v;
246
223
  }
247
-
248
224
  get maxDepthThreshold() {
249
225
  return this._maxDepthThreshold.value;
250
226
  }
251
-
252
227
  set maxDepthThreshold(v) {
253
228
  this._maxDepthThreshold.value = v;
254
229
  }
255
-
256
230
  get depthScale() {
257
231
  return this._depthScale.value;
258
232
  }
259
-
260
233
  set depthScale(v) {
261
234
  this._depthScale.value = v;
262
235
  }
263
-
264
236
  get depthToBlurRatioBias() {
265
237
  return this._depthToBlurRatioBias.value;
266
238
  }
267
-
268
239
  set depthToBlurRatioBias(v) {
269
240
  this._depthToBlurRatioBias.value = v;
270
241
  }
271
-
272
242
  get distortion() {
273
243
  return this._distortion.value;
274
244
  }
275
-
276
245
  set distortion(v) {
277
246
  this._distortion.value = v;
278
247
  }
279
-
280
248
  get mixContrast() {
281
249
  return this._mixContrast.value;
282
250
  }
283
-
284
251
  set mixContrast(v) {
285
252
  this._mixContrast.value = v;
286
253
  }
287
-
288
254
  }
289
255
 
290
256
  export { MeshReflectorMaterial };
@@ -15,9 +15,7 @@ const MeshRefractionMaterial = shaderMaterial({
15
15
  resolution: new THREE.Vector2(),
16
16
  viewMatrixInverse: new THREE.Matrix4(),
17
17
  projectionMatrixInverse: new THREE.Matrix4()
18
- },
19
- /*glsl*/
20
- `
18
+ }, /*glsl*/`
21
19
  uniform mat4 viewMatrixInverse;
22
20
 
23
21
  varying vec3 vWorldPosition;
@@ -49,9 +47,7 @@ const MeshRefractionMaterial = shaderMaterial({
49
47
  vWorldPosition = (modelMatrix * transformedPosition).xyz;
50
48
  vNormal = normalize((viewMatrixInverse * vec4(normalMatrix * transformedNormal.xyz, 0.0)).xyz);
51
49
  gl_Position = projectionMatrix * viewMatrix * modelMatrix * transformedPosition;
52
- }`,
53
- /*glsl*/
54
- `
50
+ }`, /*glsl*/`
55
51
  #define ENVMAP_TYPE_CUBE_UV
56
52
  precision highp isampler2D;
57
53
  precision highp usampler2D;
@@ -34,9 +34,7 @@ class SpotLightMaterial extends THREE.ShaderMaterial {
34
34
  },
35
35
  transparent: true,
36
36
  depthWrite: false,
37
- vertexShader:
38
- /* glsl */
39
- `
37
+ vertexShader: /* glsl */`
40
38
  varying vec3 vNormal;
41
39
  varying vec3 vWorldPosition;
42
40
  varying float vViewZ;
@@ -58,9 +56,7 @@ class SpotLightMaterial extends THREE.ShaderMaterial {
58
56
  gl_Position = projectionMatrix * viewPosition;
59
57
 
60
58
  }`,
61
- fragmentShader:
62
- /* glsl */
63
- `
59
+ fragmentShader: /* glsl */`
64
60
  #include <packing>
65
61
 
66
62
  varying vec3 vNormal;
@@ -105,7 +101,6 @@ class SpotLightMaterial extends THREE.ShaderMaterial {
105
101
  }`
106
102
  });
107
103
  }
108
-
109
104
  }
110
105
 
111
106
  export { SpotLightMaterial };
@@ -20,9 +20,7 @@ const WireframeMaterialShaders = {
20
20
  backfaceStroke: new THREE.Color('#0000ff'),
21
21
  fill: new THREE.Color('#00ff00')
22
22
  },
23
- vertex:
24
- /* glsl */
25
- `
23
+ vertex: /* glsl */`
26
24
  attribute vec3 barycentric;
27
25
 
28
26
  varying vec3 v_edges_Barycentric;
@@ -33,9 +31,7 @@ const WireframeMaterialShaders = {
33
31
  v_edges_Position = position.xyz;
34
32
  }
35
33
  `,
36
- fragment:
37
- /* glsl */
38
- `
34
+ fragment: /* glsl */`
39
35
  #ifndef PI
40
36
  #define PI 3.1415926535897932384626433832795
41
37
  #endif
@@ -122,16 +118,12 @@ const WireframeMaterialShaders = {
122
118
  }
123
119
  `
124
120
  };
125
- const WireframeMaterial = shaderMaterial(WireframeMaterialShaders.uniforms, WireframeMaterialShaders.vertex +
126
- /* glsl */
127
- `
121
+ const WireframeMaterial = shaderMaterial(WireframeMaterialShaders.uniforms, WireframeMaterialShaders.vertex + /* glsl */`
128
122
  void main() {
129
123
  initWireframe();
130
124
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
131
125
  }
132
- `, WireframeMaterialShaders.fragment +
133
- /* glsl */
134
- `
126
+ `, WireframeMaterialShaders.fragment + /* glsl */`
135
127
  void main () {
136
128
  // Compute color
137
129
 
@@ -150,7 +142,8 @@ const WireframeMaterial = shaderMaterial(WireframeMaterialShaders.uniforms, Wire
150
142
  `);
151
143
  function setWireframeOverride(material, uniforms) {
152
144
  material.onBeforeCompile = shader => {
153
- shader.uniforms = { ...shader.uniforms,
145
+ shader.uniforms = {
146
+ ...shader.uniforms,
154
147
  ...uniforms
155
148
  };
156
149
  shader.vertexShader = shader.vertexShader.replace('void main() {', `
@@ -162,9 +155,7 @@ function setWireframeOverride(material, uniforms) {
162
155
  ${WireframeMaterialShaders.fragment}
163
156
  void main() {
164
157
  `);
165
- shader.fragmentShader = shader.fragmentShader.replace('#include <color_fragment>',
166
- /* glsl */
167
- `
158
+ shader.fragmentShader = shader.fragmentShader.replace('#include <color_fragment>', /* glsl */`
168
159
  #include <color_fragment>
169
160
  float edge = getWireframe();
170
161
  vec4 colorStroke = vec4(stroke, edge);
@@ -178,29 +169,24 @@ function setWireframeOverride(material, uniforms) {
178
169
  diffuseColor.a *= outColor.a;
179
170
  `);
180
171
  };
181
-
182
172
  material.side = THREE.DoubleSide;
183
173
  material.transparent = true;
184
174
  }
185
175
  function useWireframeUniforms(uniforms, props) {
186
176
  React.useEffect(() => {
187
177
  var _props$fillOpacity;
188
-
189
178
  return void (uniforms.fillOpacity.value = (_props$fillOpacity = props.fillOpacity) !== null && _props$fillOpacity !== void 0 ? _props$fillOpacity : uniforms.fillOpacity.value);
190
179
  }, [props.fillOpacity]);
191
180
  React.useEffect(() => {
192
181
  var _props$fillMix;
193
-
194
182
  return void (uniforms.fillMix.value = (_props$fillMix = props.fillMix) !== null && _props$fillMix !== void 0 ? _props$fillMix : uniforms.fillMix.value);
195
183
  }, [props.fillMix]);
196
184
  React.useEffect(() => {
197
185
  var _props$strokeOpacity;
198
-
199
186
  return void (uniforms.strokeOpacity.value = (_props$strokeOpacity = props.strokeOpacity) !== null && _props$strokeOpacity !== void 0 ? _props$strokeOpacity : uniforms.strokeOpacity.value);
200
187
  }, [props.strokeOpacity]);
201
188
  React.useEffect(() => {
202
189
  var _props$thickness;
203
-
204
190
  return void (uniforms.thickness.value = (_props$thickness = props.thickness) !== null && _props$thickness !== void 0 ? _props$thickness : uniforms.thickness.value);
205
191
  }, [props.thickness]);
206
192
  React.useEffect(() => void (uniforms.colorBackfaces.value = !!props.colorBackfaces), [props.colorBackfaces]);
@@ -208,23 +194,19 @@ function useWireframeUniforms(uniforms, props) {
208
194
  React.useEffect(() => void (uniforms.dashInvert.value = !!props.dashInvert), [props.dashInvert]);
209
195
  React.useEffect(() => {
210
196
  var _props$dashRepeats;
211
-
212
197
  return void (uniforms.dashRepeats.value = (_props$dashRepeats = props.dashRepeats) !== null && _props$dashRepeats !== void 0 ? _props$dashRepeats : uniforms.dashRepeats.value);
213
198
  }, [props.dashRepeats]);
214
199
  React.useEffect(() => {
215
200
  var _props$dashLength;
216
-
217
201
  return void (uniforms.dashLength.value = (_props$dashLength = props.dashLength) !== null && _props$dashLength !== void 0 ? _props$dashLength : uniforms.dashLength.value);
218
202
  }, [props.dashLength]);
219
203
  React.useEffect(() => void (uniforms.squeeze.value = !!props.squeeze), [props.squeeze]);
220
204
  React.useEffect(() => {
221
205
  var _props$squeezeMin;
222
-
223
206
  return void (uniforms.squeezeMin.value = (_props$squeezeMin = props.squeezeMin) !== null && _props$squeezeMin !== void 0 ? _props$squeezeMin : uniforms.squeezeMin.value);
224
207
  }, [props.squeezeMin]);
225
208
  React.useEffect(() => {
226
209
  var _props$squeezeMax;
227
-
228
210
  return void (uniforms.squeezeMax.value = (_props$squeezeMax = props.squeezeMax) !== null && _props$squeezeMax !== void 0 ? _props$squeezeMax : uniforms.squeezeMax.value);
229
211
  }, [props.squeezeMax]);
230
212
  React.useEffect(() => void (uniforms.stroke.value = props.stroke ? new THREE.Color(props.stroke) : uniforms.stroke.value), [props.stroke]);
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../core/Billboard.cjs.js"),r=require("../core/ScreenSpace.cjs.js"),s=require("../core/QuadraticBezierLine.cjs.js"),o=require("../core/CubicBezierLine.cjs.js"),t=require("../core/CatmullRomLine.cjs.js"),i=require("../core/Line.cjs.js"),a=require("../core/PositionalAudio.cjs.js"),c=require("../core/Text.cjs.js"),u=require("../core/Text3D.cjs.js"),n=require("../core/Effects.cjs.js"),j=require("../core/GradientTexture.cjs.js"),p=require("../core/Image.cjs.js"),l=require("../core/Edges.cjs.js"),x=require("../core/Outlines.cjs.js"),q=require("../core/Trail.cjs.js"),m=require("../core/Sampler.cjs.js"),d=require("../core/ComputedAttribute.cjs.js"),h=require("../core/Clone.cjs.js"),C=require("../core/MarchingCubes.cjs.js"),M=require("../core/Decal.cjs.js"),S=require("../core/Svg.cjs.js"),f=require("../core/Gltf.cjs.js"),T=require("../core/AsciiRenderer.cjs.js"),P=require("../core/OrthographicCamera.cjs.js"),b=require("../core/PerspectiveCamera.cjs.js"),B=require("../core/CubeCamera.cjs.js"),g=require("../core/DeviceOrientationControls.cjs.js"),v=require("../core/FlyControls.cjs.js"),F=require("../core/MapControls.cjs.js"),L=require("../core/OrbitControls.cjs.js"),A=require("../core/TrackballControls.cjs.js"),k=require("../core/ArcballControls.cjs.js"),D=require("../core/TransformControls.cjs.js"),E=require("../core/PointerLockControls.cjs.js"),G=require("../core/FirstPersonControls.cjs.js"),R=require("../core/CameraControls.cjs.js"),w=require("../core/FaceControls.cjs.js"),z=require("../core/GizmoHelper.cjs.js"),O=require("../core/GizmoViewcube.cjs.js"),y=require("../core/GizmoViewport.cjs.js"),I=require("../core/Grid.cjs.js"),H=require("../core/useCubeTexture.cjs.js"),V=require("../core/useFBX.cjs.js"),W=require("../core/useGLTF.cjs.js"),Q=require("../core/useKTX2.cjs.js"),X=require("../core/useProgress.cjs.js"),K=require("../core/useTexture.cjs.js"),N=require("../core/useVideoTexture.cjs.js"),U=require("../core/useFont.cjs.js"),_=require("../core/Stats.cjs.js"),J=require("../core/StatsGl.cjs.js"),Y=require("../core/useDepthBuffer.cjs.js"),Z=require("../core/useAspect.cjs.js"),$=require("../core/useCamera.cjs.js"),ee=require("../core/useDetectGPU.cjs.js"),re=require("../core/useHelper.cjs.js"),se=require("../core/useBVH.cjs.js"),oe=require("../core/useContextBridge.cjs.js"),te=require("../core/useAnimations.cjs.js"),ie=require("../core/useFBO.cjs.js"),ae=require("../core/useIntersect.cjs.js"),ce=require("../core/useBoxProjectedEnv.cjs.js"),ue=require("../core/BBAnchor.cjs.js"),ne=require("../core/useTrailTexture.cjs.js"),je=require("../core/useCubeCamera.cjs.js"),pe=require("../core/Example.cjs.js"),le=require("../core/SpriteAnimator.cjs.js"),xe=require("../core/FaceLandmarker.cjs.js"),qe=require("../core/CurveModifier.cjs.js"),me=require("../core/MeshDistortMaterial.cjs.js"),de=require("../core/MeshWobbleMaterial.cjs.js"),he=require("../core/MeshReflectorMaterial.cjs.js"),Ce=require("../core/MeshRefractionMaterial.cjs.js"),Me=require("../core/MeshTransmissionMaterial.cjs.js"),Se=require("../core/MeshDiscardMaterial.cjs.js"),fe=require("../core/PointMaterial.cjs.js"),Te=require("../core/shaderMaterial.cjs.js"),Pe=require("../core/softShadows.cjs.js"),be=require("../core/shapes.cjs.js"),Be=require("../core/Facemesh.cjs.js"),ge=require("../core/RoundedBox.cjs.js"),ve=require("../core/ScreenQuad.cjs.js"),Fe=require("../core/Center.cjs.js"),Le=require("../core/Resize.cjs.js"),Ae=require("../core/Bounds.cjs.js"),ke=require("../core/CameraShake.cjs.js"),De=require("../core/Float.cjs.js"),Ee=require("../core/Stage.cjs.js"),Ge=require("../core/Backdrop.cjs.js"),Re=require("../core/Shadow.cjs.js"),we=require("../core/Caustics.cjs.js"),ze=require("../core/ContactShadows.cjs.js"),Oe=require("../core/AccumulativeShadows.cjs.js"),ye=require("../core/Reflector.cjs.js"),Ie=require("../core/SpotLight.cjs.js"),He=require("../core/Environment.cjs.js"),Ve=require("../core/Lightformer.cjs.js"),We=require("../core/Sky.cjs.js"),Qe=require("../core/Stars.cjs.js"),Xe=require("../core/Cloud.cjs.js"),Ke=require("../core/Sparkles.cjs.js"),Ne=require("../core/useEnvironment.cjs.js"),Ue=require("../core/useMatcapTexture.cjs.js"),_e=require("../core/useNormalTexture.cjs.js"),Je=require("../core/Wireframe.cjs.js"),Ye=require("../core/Points.cjs.js"),Ze=require("../core/Instances.cjs.js"),$e=require("../core/Segments.cjs.js"),er=require("../core/Detailed.cjs.js"),rr=require("../core/Preload.cjs.js"),sr=require("../core/BakeShadows.cjs.js"),or=require("../core/meshBounds.cjs.js"),tr=require("../core/AdaptiveDpr.cjs.js"),ir=require("../core/AdaptiveEvents.cjs.js"),ar=require("../core/PerformanceMonitor.cjs.js"),cr=require("../core/RenderTexture.cjs.js"),ur=require("../core/Mask.cjs.js"),nr=require("../core/Hud.cjs.js"),jr=require("../core/MeshPortalMaterial.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("three"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("meshline"),require("lodash.pick"),require("lodash.omit"),require("camera-controls"),require("maath"),require("@mediapipe/tasks-vision"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("stats-gl"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../materials/MeshRefractionMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../materials/WireframeMaterial.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.ScreenSpace=r.ScreenSpace,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=o.CubicBezierLine,exports.CatmullRomLine=t.CatmullRomLine,exports.Line=i.Line,exports.PositionalAudio=a.PositionalAudio,exports.Text=c.Text,exports.Text3D=u.Text3D,exports.Effects=n.Effects,exports.isWebGL2Available=n.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.GradientType=j.GradientType,exports.Image=p.Image,exports.Edges=l.Edges,exports.Outlines=x.Outlines,exports.Trail=q.Trail,exports.useTrail=q.useTrail,exports.Sampler=m.Sampler,exports.useSurfaceSampler=m.useSurfaceSampler,exports.ComputedAttribute=d.ComputedAttribute,exports.Clone=h.Clone,exports.MarchingCube=C.MarchingCube,exports.MarchingCubes=C.MarchingCubes,exports.MarchingPlane=C.MarchingPlane,exports.Decal=M.Decal,exports.Svg=S.Svg,exports.Gltf=f.Gltf,exports.AsciiRenderer=T.AsciiRenderer,exports.OrthographicCamera=P.OrthographicCamera,exports.PerspectiveCamera=b.PerspectiveCamera,exports.CubeCamera=B.CubeCamera,exports.DeviceOrientationControls=g.DeviceOrientationControls,exports.FlyControls=v.FlyControls,exports.MapControls=F.MapControls,exports.OrbitControls=L.OrbitControls,exports.TrackballControls=A.TrackballControls,exports.ArcballControls=k.ArcballControls,exports.TransformControls=D.TransformControls,exports.PointerLockControls=E.PointerLockControls,exports.FirstPersonControls=G.FirstPersonControls,exports.CameraControls=R.CameraControls,exports.FaceControls=w.FaceControls,exports.useFaceControls=w.useFaceControls,exports.GizmoHelper=z.GizmoHelper,exports.useGizmoContext=z.useGizmoContext,exports.GizmoViewcube=O.GizmoViewcube,exports.GizmoViewport=y.GizmoViewport,exports.Grid=I.Grid,exports.useCubeTexture=H.useCubeTexture,exports.useFBX=V.useFBX,exports.useGLTF=W.useGLTF,exports.useKTX2=Q.useKTX2,exports.useProgress=X.useProgress,exports.IsObject=K.IsObject,exports.useTexture=K.useTexture,exports.useVideoTexture=N.useVideoTexture,exports.useFont=U.useFont,exports.Stats=_.Stats,exports.StatsGl=J.StatsGl,exports.useDepthBuffer=Y.useDepthBuffer,exports.useAspect=Z.useAspect,exports.useCamera=$.useCamera,exports.useDetectGPU=ee.useDetectGPU,exports.useHelper=re.useHelper,exports.Bvh=se.Bvh,exports.useBVH=se.useBVH,exports.useContextBridge=oe.useContextBridge,exports.useAnimations=te.useAnimations,exports.useFBO=ie.useFBO,exports.useIntersect=ae.useIntersect,exports.useBoxProjectedEnv=ce.useBoxProjectedEnv,exports.BBAnchor=ue.BBAnchor,exports.useTrailTexture=ne.useTrailTexture,exports.useCubeCamera=je.useCubeCamera,exports.Example=pe.Example,exports.SpriteAnimator=le.SpriteAnimator,exports.FaceLandmarker=xe.FaceLandmarker,exports.FaceLandmarkerDefaults=xe.FaceLandmarkerDefaults,exports.useFaceLandmarker=xe.useFaceLandmarker,exports.CurveModifier=qe.CurveModifier,exports.MeshDistortMaterial=me.MeshDistortMaterial,exports.MeshWobbleMaterial=de.MeshWobbleMaterial,exports.MeshReflectorMaterial=he.MeshReflectorMaterial,exports.MeshRefractionMaterial=Ce.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Me.MeshTransmissionMaterial,exports.MeshDiscardMaterial=Se.MeshDiscardMaterial,exports.PointMaterial=fe.PointMaterial,exports.PointMaterialImpl=fe.PointMaterialImpl,exports.shaderMaterial=Te.shaderMaterial,exports.SoftShadows=Pe.SoftShadows,exports.Box=be.Box,exports.Capsule=be.Capsule,exports.Circle=be.Circle,exports.Cone=be.Cone,exports.Cylinder=be.Cylinder,exports.Dodecahedron=be.Dodecahedron,exports.Extrude=be.Extrude,exports.Icosahedron=be.Icosahedron,exports.Lathe=be.Lathe,exports.Octahedron=be.Octahedron,exports.Plane=be.Plane,exports.Polyhedron=be.Polyhedron,exports.Ring=be.Ring,exports.Shape=be.Shape,exports.Sphere=be.Sphere,exports.Tetrahedron=be.Tetrahedron,exports.Torus=be.Torus,exports.TorusKnot=be.TorusKnot,exports.Tube=be.Tube,exports.Facemesh=Be.Facemesh,exports.FacemeshDatas=Be.FacemeshDatas,exports.FacemeshEye=Be.FacemeshEye,exports.FacemeshEyeDefaults=Be.FacemeshEyeDefaults,exports.RoundedBox=ge.RoundedBox,exports.ScreenQuad=ve.ScreenQuad,exports.Center=Fe.Center,exports.Resize=Le.Resize,exports.Bounds=Ae.Bounds,exports.useBounds=Ae.useBounds,exports.CameraShake=ke.CameraShake,exports.Float=De.Float,exports.Stage=Ee.Stage,exports.Backdrop=Ge.Backdrop,exports.Shadow=Re.Shadow,exports.Caustics=we.Caustics,exports.ContactShadows=ze.ContactShadows,exports.AccumulativeShadows=Oe.AccumulativeShadows,exports.RandomizedLight=Oe.RandomizedLight,exports.accumulativeContext=Oe.accumulativeContext,exports.Reflector=ye.Reflector,exports.SpotLight=Ie.SpotLight,exports.SpotLightShadow=Ie.SpotLightShadow,exports.Environment=He.Environment,exports.EnvironmentCube=He.EnvironmentCube,exports.EnvironmentMap=He.EnvironmentMap,exports.EnvironmentPortal=He.EnvironmentPortal,exports.Lightformer=Ve.Lightformer,exports.Sky=We.Sky,exports.calcPosFromAngles=We.calcPosFromAngles,exports.Stars=Qe.Stars,exports.Cloud=Xe.Cloud,exports.Sparkles=Ke.Sparkles,exports.useEnvironment=Ne.useEnvironment,exports.useMatcapTexture=Ue.useMatcapTexture,exports.useNormalTexture=_e.useNormalTexture,exports.Wireframe=Je.Wireframe,exports.Point=Ye.Point,exports.Points=Ye.Points,exports.PointsBuffer=Ye.PointsBuffer,exports.PositionPoint=Ye.PositionPoint,exports.Instance=Ze.Instance,exports.Instances=Ze.Instances,exports.Merged=Ze.Merged,exports.Segment=$e.Segment,exports.SegmentObject=$e.SegmentObject,exports.Segments=$e.Segments,exports.Detailed=er.Detailed,exports.Preload=rr.Preload,exports.BakeShadows=sr.BakeShadows,exports.meshBounds=or.meshBounds,exports.AdaptiveDpr=tr.AdaptiveDpr,exports.AdaptiveEvents=ir.AdaptiveEvents,exports.PerformanceMonitor=ar.PerformanceMonitor,exports.usePerformanceMonitor=ar.usePerformanceMonitor,exports.RenderTexture=cr.RenderTexture,exports.Mask=ur.Mask,exports.useMask=ur.useMask,exports.Hud=nr.Hud,exports.MeshPortalMaterial=jr.MeshPortalMaterial;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../core/Billboard.cjs.js"),r=require("../core/ScreenSpace.cjs.js"),s=require("../core/QuadraticBezierLine.cjs.js"),o=require("../core/CubicBezierLine.cjs.js"),t=require("../core/CatmullRomLine.cjs.js"),i=require("../core/Line.cjs.js"),a=require("../core/PositionalAudio.cjs.js"),c=require("../core/Text.cjs.js"),u=require("../core/Text3D.cjs.js"),n=require("../core/Effects.cjs.js"),j=require("../core/GradientTexture.cjs.js"),p=require("../core/Image.cjs.js"),l=require("../core/Edges.cjs.js"),x=require("../core/Outlines.cjs.js"),q=require("../core/Trail.cjs.js"),m=require("../core/Sampler.cjs.js"),d=require("../core/ComputedAttribute.cjs.js"),h=require("../core/Clone.cjs.js"),C=require("../core/MarchingCubes.cjs.js"),M=require("../core/Decal.cjs.js"),S=require("../core/Svg.cjs.js"),f=require("../core/Gltf.cjs.js"),P=require("../core/AsciiRenderer.cjs.js"),T=require("../core/OrthographicCamera.cjs.js"),b=require("../core/PerspectiveCamera.cjs.js"),B=require("../core/CubeCamera.cjs.js"),g=require("../core/DeviceOrientationControls.cjs.js"),v=require("../core/FlyControls.cjs.js"),F=require("../core/MapControls.cjs.js"),L=require("../core/OrbitControls.cjs.js"),A=require("../core/TrackballControls.cjs.js"),k=require("../core/ArcballControls.cjs.js"),D=require("../core/TransformControls.cjs.js"),E=require("../core/PointerLockControls.cjs.js"),G=require("../core/FirstPersonControls.cjs.js"),R=require("../core/CameraControls.cjs.js"),w=require("../core/FaceControls.cjs.js"),z=require("../core/MotionPathControls.cjs.js"),O=require("../core/GizmoHelper.cjs.js"),y=require("../core/GizmoViewcube.cjs.js"),I=require("../core/GizmoViewport.cjs.js"),H=require("../core/Grid.cjs.js"),V=require("../core/useCubeTexture.cjs.js"),W=require("../core/useFBX.cjs.js"),Q=require("../core/useGLTF.cjs.js"),X=require("../core/useKTX2.cjs.js"),K=require("../core/useProgress.cjs.js"),N=require("../core/useTexture.cjs.js"),U=require("../core/useVideoTexture.cjs.js"),_=require("../core/useFont.cjs.js"),J=require("../core/Stats.cjs.js"),Y=require("../core/StatsGl.cjs.js"),Z=require("../core/useDepthBuffer.cjs.js"),$=require("../core/useAspect.cjs.js"),ee=require("../core/useCamera.cjs.js"),re=require("../core/useDetectGPU.cjs.js"),se=require("../core/useHelper.cjs.js"),oe=require("../core/useBVH.cjs.js"),te=require("../core/useContextBridge.cjs.js"),ie=require("../core/useAnimations.cjs.js"),ae=require("../core/useFBO.cjs.js"),ce=require("../core/useIntersect.cjs.js"),ue=require("../core/useBoxProjectedEnv.cjs.js"),ne=require("../core/BBAnchor.cjs.js"),je=require("../core/useTrailTexture.cjs.js"),pe=require("../core/useCubeCamera.cjs.js"),le=require("../core/Example.cjs.js"),xe=require("../core/SpriteAnimator.cjs.js"),qe=require("../core/FaceLandmarker.cjs.js"),me=require("../core/CurveModifier.cjs.js"),de=require("../core/MeshDistortMaterial.cjs.js"),he=require("../core/MeshWobbleMaterial.cjs.js"),Ce=require("../core/MeshReflectorMaterial.cjs.js"),Me=require("../core/MeshRefractionMaterial.cjs.js"),Se=require("../core/MeshTransmissionMaterial.cjs.js"),fe=require("../core/MeshDiscardMaterial.cjs.js"),Pe=require("../core/PointMaterial.cjs.js"),Te=require("../core/shaderMaterial.cjs.js"),be=require("../core/softShadows.cjs.js"),Be=require("../core/shapes.cjs.js"),ge=require("../core/Facemesh.cjs.js"),ve=require("../core/RoundedBox.cjs.js"),Fe=require("../core/ScreenQuad.cjs.js"),Le=require("../core/Center.cjs.js"),Ae=require("../core/Resize.cjs.js"),ke=require("../core/Bounds.cjs.js"),De=require("../core/CameraShake.cjs.js"),Ee=require("../core/Float.cjs.js"),Ge=require("../core/Stage.cjs.js"),Re=require("../core/Backdrop.cjs.js"),we=require("../core/Shadow.cjs.js"),ze=require("../core/Caustics.cjs.js"),Oe=require("../core/ContactShadows.cjs.js"),ye=require("../core/AccumulativeShadows.cjs.js"),Ie=require("../core/Reflector.cjs.js"),He=require("../core/SpotLight.cjs.js"),Ve=require("../core/Environment.cjs.js"),We=require("../core/Lightformer.cjs.js"),Qe=require("../core/Sky.cjs.js"),Xe=require("../core/Stars.cjs.js"),Ke=require("../core/Cloud.cjs.js"),Ne=require("../core/Sparkles.cjs.js"),Ue=require("../core/useEnvironment.cjs.js"),_e=require("../core/useMatcapTexture.cjs.js"),Je=require("../core/useNormalTexture.cjs.js"),Ye=require("../core/Wireframe.cjs.js"),Ze=require("../core/Points.cjs.js"),$e=require("../core/Instances.cjs.js"),er=require("../core/Segments.cjs.js"),rr=require("../core/Detailed.cjs.js"),sr=require("../core/Preload.cjs.js"),or=require("../core/BakeShadows.cjs.js"),tr=require("../core/meshBounds.cjs.js"),ir=require("../core/AdaptiveDpr.cjs.js"),ar=require("../core/AdaptiveEvents.cjs.js"),cr=require("../core/PerformanceMonitor.cjs.js"),ur=require("../core/RenderTexture.cjs.js"),nr=require("../core/Mask.cjs.js"),jr=require("../core/Hud.cjs.js"),pr=require("../core/MeshPortalMaterial.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("three"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("meshline"),require("lodash.pick"),require("lodash.omit"),require("camera-controls"),require("maath"),require("@mediapipe/tasks-vision"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("stats-gl"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../materials/MeshRefractionMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../materials/WireframeMaterial.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.ScreenSpace=r.ScreenSpace,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=o.CubicBezierLine,exports.CatmullRomLine=t.CatmullRomLine,exports.Line=i.Line,exports.PositionalAudio=a.PositionalAudio,exports.Text=c.Text,exports.Text3D=u.Text3D,exports.Effects=n.Effects,exports.isWebGL2Available=n.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.GradientType=j.GradientType,exports.Image=p.Image,exports.Edges=l.Edges,exports.Outlines=x.Outlines,exports.Trail=q.Trail,exports.useTrail=q.useTrail,exports.Sampler=m.Sampler,exports.useSurfaceSampler=m.useSurfaceSampler,exports.ComputedAttribute=d.ComputedAttribute,exports.Clone=h.Clone,exports.MarchingCube=C.MarchingCube,exports.MarchingCubes=C.MarchingCubes,exports.MarchingPlane=C.MarchingPlane,exports.Decal=M.Decal,exports.Svg=S.Svg,exports.Gltf=f.Gltf,exports.AsciiRenderer=P.AsciiRenderer,exports.OrthographicCamera=T.OrthographicCamera,exports.PerspectiveCamera=b.PerspectiveCamera,exports.CubeCamera=B.CubeCamera,exports.DeviceOrientationControls=g.DeviceOrientationControls,exports.FlyControls=v.FlyControls,exports.MapControls=F.MapControls,exports.OrbitControls=L.OrbitControls,exports.TrackballControls=A.TrackballControls,exports.ArcballControls=k.ArcballControls,exports.TransformControls=D.TransformControls,exports.PointerLockControls=E.PointerLockControls,exports.FirstPersonControls=G.FirstPersonControls,exports.CameraControls=R.CameraControls,exports.FaceControls=w.FaceControls,exports.useFaceControls=w.useFaceControls,exports.MotionPathControls=z.MotionPathControls,exports.useMotion=z.useMotion,exports.GizmoHelper=O.GizmoHelper,exports.useGizmoContext=O.useGizmoContext,exports.GizmoViewcube=y.GizmoViewcube,exports.GizmoViewport=I.GizmoViewport,exports.Grid=H.Grid,exports.useCubeTexture=V.useCubeTexture,exports.useFBX=W.useFBX,exports.useGLTF=Q.useGLTF,exports.useKTX2=X.useKTX2,exports.useProgress=K.useProgress,exports.IsObject=N.IsObject,exports.useTexture=N.useTexture,exports.useVideoTexture=U.useVideoTexture,exports.useFont=_.useFont,exports.Stats=J.Stats,exports.StatsGl=Y.StatsGl,exports.useDepthBuffer=Z.useDepthBuffer,exports.useAspect=$.useAspect,exports.useCamera=ee.useCamera,exports.useDetectGPU=re.useDetectGPU,exports.useHelper=se.useHelper,exports.Bvh=oe.Bvh,exports.useBVH=oe.useBVH,exports.useContextBridge=te.useContextBridge,exports.useAnimations=ie.useAnimations,exports.useFBO=ae.useFBO,exports.useIntersect=ce.useIntersect,exports.useBoxProjectedEnv=ue.useBoxProjectedEnv,exports.BBAnchor=ne.BBAnchor,exports.useTrailTexture=je.useTrailTexture,exports.useCubeCamera=pe.useCubeCamera,exports.Example=le.Example,exports.SpriteAnimator=xe.SpriteAnimator,exports.FaceLandmarker=qe.FaceLandmarker,exports.FaceLandmarkerDefaults=qe.FaceLandmarkerDefaults,exports.useFaceLandmarker=qe.useFaceLandmarker,exports.CurveModifier=me.CurveModifier,exports.MeshDistortMaterial=de.MeshDistortMaterial,exports.MeshWobbleMaterial=he.MeshWobbleMaterial,exports.MeshReflectorMaterial=Ce.MeshReflectorMaterial,exports.MeshRefractionMaterial=Me.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Se.MeshTransmissionMaterial,exports.MeshDiscardMaterial=fe.MeshDiscardMaterial,exports.PointMaterial=Pe.PointMaterial,exports.PointMaterialImpl=Pe.PointMaterialImpl,exports.shaderMaterial=Te.shaderMaterial,exports.SoftShadows=be.SoftShadows,exports.Box=Be.Box,exports.Capsule=Be.Capsule,exports.Circle=Be.Circle,exports.Cone=Be.Cone,exports.Cylinder=Be.Cylinder,exports.Dodecahedron=Be.Dodecahedron,exports.Extrude=Be.Extrude,exports.Icosahedron=Be.Icosahedron,exports.Lathe=Be.Lathe,exports.Octahedron=Be.Octahedron,exports.Plane=Be.Plane,exports.Polyhedron=Be.Polyhedron,exports.Ring=Be.Ring,exports.Shape=Be.Shape,exports.Sphere=Be.Sphere,exports.Tetrahedron=Be.Tetrahedron,exports.Torus=Be.Torus,exports.TorusKnot=Be.TorusKnot,exports.Tube=Be.Tube,exports.Facemesh=ge.Facemesh,exports.FacemeshDatas=ge.FacemeshDatas,exports.FacemeshEye=ge.FacemeshEye,exports.FacemeshEyeDefaults=ge.FacemeshEyeDefaults,exports.RoundedBox=ve.RoundedBox,exports.ScreenQuad=Fe.ScreenQuad,exports.Center=Le.Center,exports.Resize=Ae.Resize,exports.Bounds=ke.Bounds,exports.useBounds=ke.useBounds,exports.CameraShake=De.CameraShake,exports.Float=Ee.Float,exports.Stage=Ge.Stage,exports.Backdrop=Re.Backdrop,exports.Shadow=we.Shadow,exports.Caustics=ze.Caustics,exports.ContactShadows=Oe.ContactShadows,exports.AccumulativeShadows=ye.AccumulativeShadows,exports.RandomizedLight=ye.RandomizedLight,exports.accumulativeContext=ye.accumulativeContext,exports.Reflector=Ie.Reflector,exports.SpotLight=He.SpotLight,exports.SpotLightShadow=He.SpotLightShadow,exports.Environment=Ve.Environment,exports.EnvironmentCube=Ve.EnvironmentCube,exports.EnvironmentMap=Ve.EnvironmentMap,exports.EnvironmentPortal=Ve.EnvironmentPortal,exports.Lightformer=We.Lightformer,exports.Sky=Qe.Sky,exports.calcPosFromAngles=Qe.calcPosFromAngles,exports.Stars=Xe.Stars,exports.Cloud=Ke.Cloud,exports.Sparkles=Ne.Sparkles,exports.useEnvironment=Ue.useEnvironment,exports.useMatcapTexture=_e.useMatcapTexture,exports.useNormalTexture=Je.useNormalTexture,exports.Wireframe=Ye.Wireframe,exports.Point=Ze.Point,exports.Points=Ze.Points,exports.PointsBuffer=Ze.PointsBuffer,exports.PositionPoint=Ze.PositionPoint,exports.Instance=$e.Instance,exports.Instances=$e.Instances,exports.Merged=$e.Merged,exports.Segment=er.Segment,exports.SegmentObject=er.SegmentObject,exports.Segments=er.Segments,exports.Detailed=rr.Detailed,exports.Preload=sr.Preload,exports.BakeShadows=or.BakeShadows,exports.meshBounds=tr.meshBounds,exports.AdaptiveDpr=ir.AdaptiveDpr,exports.AdaptiveEvents=ar.AdaptiveEvents,exports.PerformanceMonitor=cr.PerformanceMonitor,exports.usePerformanceMonitor=cr.usePerformanceMonitor,exports.RenderTexture=ur.RenderTexture,exports.Mask=nr.Mask,exports.useMask=nr.useMask,exports.Hud=jr.Hud,exports.MeshPortalMaterial=pr.MeshPortalMaterial;
package/native/index.js CHANGED
@@ -35,6 +35,7 @@ export { PointerLockControls } from '../core/PointerLockControls.js';
35
35
  export { FirstPersonControls } from '../core/FirstPersonControls.js';
36
36
  export { CameraControls } from '../core/CameraControls.js';
37
37
  export { FaceControls, useFaceControls } from '../core/FaceControls.js';
38
+ export { MotionPathControls, useMotion } from '../core/MotionPathControls.js';
38
39
  export { GizmoHelper, useGizmoContext } from '../core/GizmoHelper.js';
39
40
  export { GizmoViewcube } from '../core/GizmoViewcube.js';
40
41
  export { GizmoViewport } from '../core/GizmoViewport.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-three/drei",
3
- "version": "9.83.9",
3
+ "version": "9.84.1",
4
4
  "private": false,
5
5
  "description": "useful add-ons for react-three-fiber",
6
6
  "keywords": [
@@ -50,7 +50,7 @@
50
50
  "lodash.clamp": "^4.0.3",
51
51
  "lodash.omit": "^4.5.0",
52
52
  "lodash.pick": "^4.4.0",
53
- "maath": "^0.6.0",
53
+ "maath": "^0.9.0",
54
54
  "meshline": "^3.1.6",
55
55
  "react-composer": "^5.0.3",
56
56
  "react-merge-refs": "^1.1.0",
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import * as THREE from 'three';
3
- export declare type CycleRaycastProps = {
3
+ export type CycleRaycastProps = {
4
4
  onChanged?: (hits: THREE.Intersection[], cycle: number) => null;
5
5
  preventDefault?: boolean;
6
6
  scroll?: boolean;
@@ -14,68 +14,64 @@ function CycleRaycast({
14
14
  const gl = useThree(state => state.gl);
15
15
  React.useEffect(() => {
16
16
  var _portal$current;
17
-
18
17
  let hits = [];
19
18
  let lastEvent = undefined;
20
19
  const prev = get().events.filter;
21
- const target = (_portal$current = portal == null ? void 0 : portal.current) !== null && _portal$current !== void 0 ? _portal$current : gl.domElement.parentNode; // Render custom status
22
-
23
- const renderStatus = () => target && onChanged && onChanged(hits, Math.round(cycle.current) % hits.length); // Overwrite the raycasters custom filter (this only exists in r3f)
20
+ const target = (_portal$current = portal == null ? void 0 : portal.current) !== null && _portal$current !== void 0 ? _portal$current : gl.domElement.parentNode;
24
21
 
22
+ // Render custom status
23
+ const renderStatus = () => target && onChanged && onChanged(hits, Math.round(cycle.current) % hits.length);
25
24
 
25
+ // Overwrite the raycasters custom filter (this only exists in r3f)
26
26
  setEvents({
27
27
  filter: (intersections, state) => {
28
28
  // Reset cycle when the intersections change
29
29
  let clone = [...intersections];
30
-
31
30
  if (clone.length !== hits.length || !hits.every(hit => clone.map(e => e.object.uuid).includes(hit.object.uuid))) {
32
31
  cycle.current = 0;
33
32
  hits = clone;
34
33
  renderStatus();
35
- } // Run custom filter if there is one
36
-
37
-
38
- if (prev) clone = prev(clone, state); // Cycle through the actual raycast intersects
39
-
34
+ }
35
+ // Run custom filter if there is one
36
+ if (prev) clone = prev(clone, state);
37
+ // Cycle through the actual raycast intersects
40
38
  for (let i = 0; i < Math.round(cycle.current) % clone.length; i++) {
41
39
  const first = clone.shift();
42
40
  clone = [...clone, first];
43
41
  }
44
-
45
42
  return clone;
46
43
  }
47
- }); // Cycle, refresh events and render status
44
+ });
48
45
 
46
+ // Cycle, refresh events and render status
49
47
  const refresh = fn => {
50
48
  var _get$events$handlers, _get$events$handlers2;
51
-
52
- cycle.current = fn(cycle.current); // Cancel hovered elements and fake a pointer-move
53
-
54
- (_get$events$handlers = get().events.handlers) == null ? void 0 : _get$events$handlers.onPointerCancel(undefined);
55
- (_get$events$handlers2 = get().events.handlers) == null ? void 0 : _get$events$handlers2.onPointerMove(lastEvent);
49
+ cycle.current = fn(cycle.current);
50
+ // Cancel hovered elements and fake a pointer-move
51
+ (_get$events$handlers = get().events.handlers) == null || _get$events$handlers.onPointerCancel(undefined);
52
+ (_get$events$handlers2 = get().events.handlers) == null || _get$events$handlers2.onPointerMove(lastEvent);
56
53
  renderStatus();
57
- }; // Key events
58
-
54
+ };
59
55
 
56
+ // Key events
60
57
  const tabEvent = event => {
61
58
  if (event.keyCode || event.which === keyCode) {
62
59
  if (preventDefault) event.preventDefault();
63
60
  if (hits.length > 1) refresh(current => current + 1);
64
61
  }
65
- }; // Wheel events
66
-
62
+ };
67
63
 
64
+ // Wheel events
68
65
  const wheelEvent = event => {
69
66
  if (preventDefault) event.preventDefault();
70
67
  let delta = 0;
71
68
  if (!event) event = window.event;
72
69
  if (event.wheelDelta) delta = event.wheelDelta / 120;else if (event.detail) delta = -event.detail / 3;
73
70
  if (hits.length > 1) refresh(current => Math.abs(current - delta));
74
- }; // Catch last move event and position custom status
75
-
71
+ };
76
72
 
73
+ // Catch last move event and position custom status
77
74
  const moveEvent = event => lastEvent = event;
78
-
79
75
  document.addEventListener('pointermove', moveEvent, {
80
76
  passive: true
81
77
  });
package/web/Html.d.ts CHANGED
@@ -7,8 +7,8 @@ declare function defaultCalculatePosition(el: Object3D, camera: Camera, size: {
7
7
  width: number;
8
8
  height: number;
9
9
  }): number[];
10
- export declare type CalculatePosition = typeof defaultCalculatePosition;
11
- declare type PointerEventsProperties = 'auto' | 'none' | 'visiblePainted' | 'visibleFill' | 'visibleStroke' | 'visible' | 'painted' | 'fill' | 'stroke' | 'all' | 'inherit';
10
+ export type CalculatePosition = typeof defaultCalculatePosition;
11
+ type PointerEventsProperties = 'auto' | 'none' | 'visiblePainted' | 'visibleFill' | 'visibleStroke' | 'visible' | 'painted' | 'fill' | 'stroke' | 'all' | 'inherit';
12
12
  export interface HtmlProps extends Omit<Assign<React.HTMLAttributes<HTMLDivElement>, ReactThreeFiber.Object3DNode<Group, typeof Group>>, 'ref'> {
13
13
  prepend?: boolean;
14
14
  center?: boolean;