@react-three/drei 9.0.0-beta.1 → 9.0.0-beta.4

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 (149) hide show
  1. package/README.md +461 -48
  2. package/core/ArcballControls.cjs.js +1 -1
  3. package/core/ArcballControls.d.ts +8 -8
  4. package/core/ArcballControls.js +19 -30
  5. package/core/Bounds.cjs.js +1 -1
  6. package/core/Bounds.d.ts +2 -1
  7. package/core/Bounds.js +25 -14
  8. package/core/Clone.cjs.js +1 -0
  9. package/core/Clone.d.ts +11 -0
  10. package/core/Clone.js +92 -0
  11. package/core/Cloud.cjs.js +1 -1
  12. package/core/Cloud.d.ts +4 -1
  13. package/core/Cloud.js +7 -3
  14. package/core/ComputedAttribute.cjs.js +1 -0
  15. package/core/ComputedAttribute.d.ts +9 -0
  16. package/core/ComputedAttribute.js +34 -0
  17. package/core/ContactShadows.cjs.js +1 -1
  18. package/core/ContactShadows.d.ts +4 -1
  19. package/core/ContactShadows.js +33 -13
  20. package/core/CubeCamera.cjs.js +1 -1
  21. package/core/CubeCamera.js +6 -7
  22. package/core/CurveModifier.cjs.js +1 -1
  23. package/core/CurveModifier.js +18 -22
  24. package/core/Detailed.d.ts +1 -1
  25. package/core/DeviceOrientationControls.cjs.js +1 -1
  26. package/core/DeviceOrientationControls.js +2 -6
  27. package/core/Effects.cjs.js +1 -1
  28. package/core/Effects.d.ts +3 -2
  29. package/core/Effects.js +2 -2
  30. package/core/Environment.cjs.js +1 -1
  31. package/core/Environment.d.ts +13 -3
  32. package/core/Environment.js +100 -56
  33. package/core/FirstPersonControls.cjs.js +1 -1
  34. package/core/FirstPersonControls.d.ts +1 -1
  35. package/core/FirstPersonControls.js +2 -6
  36. package/core/Float.cjs.js +1 -1
  37. package/core/Float.d.ts +1 -1
  38. package/core/Float.js +5 -4
  39. package/core/GizmoHelper.cjs.js +1 -1
  40. package/core/GizmoHelper.d.ts +2 -1
  41. package/core/GizmoHelper.js +31 -41
  42. package/core/GizmoViewcube.cjs.js +1 -1
  43. package/core/GizmoViewcube.js +1 -1
  44. package/core/GradientTexture.cjs.js +1 -1
  45. package/core/GradientTexture.js +5 -2
  46. package/core/Image.cjs.js +1 -1
  47. package/core/Image.d.ts +6 -4
  48. package/core/Image.js +6 -1
  49. package/core/Instances.cjs.js +1 -1
  50. package/core/Instances.d.ts +2 -2
  51. package/core/Instances.js +5 -11
  52. package/core/Lightformer.cjs.js +1 -0
  53. package/core/Lightformer.d.ts +41 -0
  54. package/core/Lightformer.js +51 -0
  55. package/core/Line.d.ts +1 -1
  56. package/core/MapControls.d.ts +1 -1
  57. package/core/MeshDistortMaterial.d.ts +2 -4
  58. package/core/MeshReflectorMaterial.cjs.js +1 -1
  59. package/core/MeshReflectorMaterial.d.ts +2 -2
  60. package/core/MeshReflectorMaterial.js +7 -7
  61. package/core/MeshWobbleMaterial.d.ts +2 -4
  62. package/core/OrbitControls.cjs.js +1 -1
  63. package/core/OrbitControls.d.ts +10 -10
  64. package/core/OrbitControls.js +14 -26
  65. package/core/OrthographicCamera.d.ts +1 -1
  66. package/core/PerspectiveCamera.d.ts +1 -1
  67. package/core/PointMaterial.cjs.js +1 -1
  68. package/core/PointMaterial.d.ts +5 -8
  69. package/core/PointMaterial.js +16 -34
  70. package/core/PointerLockControls.cjs.js +1 -1
  71. package/core/PointerLockControls.d.ts +3 -1
  72. package/core/PointerLockControls.js +36 -22
  73. package/core/Points.cjs.js +1 -1
  74. package/core/Points.d.ts +3 -3
  75. package/core/Points.js +11 -30
  76. package/core/PositionalAudio.d.ts +1 -1
  77. package/core/Reflector.cjs.js +1 -1
  78. package/core/Reflector.d.ts +1 -1
  79. package/core/Reflector.js +1 -2
  80. package/core/RoundedBox.cjs.js +1 -1
  81. package/core/RoundedBox.d.ts +2 -1
  82. package/core/RoundedBox.js +2 -1
  83. package/core/Sampler.cjs.js +1 -0
  84. package/core/Sampler.d.ts +21 -0
  85. package/core/Sampler.js +65 -0
  86. package/core/Shadow.d.ts +1 -1
  87. package/core/SpotLight.d.ts +20 -4
  88. package/core/Stage.cjs.js +1 -1
  89. package/core/Stage.d.ts +1 -1
  90. package/core/Stage.js +1 -2
  91. package/core/Stars.cjs.js +1 -1
  92. package/core/Stars.js +3 -0
  93. package/core/Stats.cjs.js +1 -1
  94. package/core/Stats.js +2 -2
  95. package/core/Text.cjs.js +1 -1
  96. package/core/Text.d.ts +3 -2
  97. package/core/Text.js +9 -1
  98. package/core/TrackballControls.cjs.js +1 -1
  99. package/core/TrackballControls.js +7 -5
  100. package/core/Trail.cjs.js +1 -0
  101. package/core/Trail.d.ts +21 -0
  102. package/core/Trail.js +160 -0
  103. package/core/TransformControls.cjs.js +1 -1
  104. package/core/TransformControls.d.ts +1 -1
  105. package/core/TransformControls.js +13 -11
  106. package/core/index.cjs.js +1 -1
  107. package/core/index.d.ts +6 -0
  108. package/core/index.js +11 -4
  109. package/core/shaderMaterial.d.ts +1 -1
  110. package/core/useBoxProjectedEnv.cjs.js +1 -0
  111. package/core/useBoxProjectedEnv.d.ts +8 -0
  112. package/core/useBoxProjectedEnv.js +98 -0
  113. package/core/useDetectGPU.cjs.js +1 -1
  114. package/core/useDetectGPU.js +2 -2
  115. package/core/useFBO.cjs.js +1 -1
  116. package/core/useFBO.d.ts +1 -1
  117. package/core/useFBO.js +22 -24
  118. package/core/useHelper.cjs.js +1 -1
  119. package/core/useHelper.d.ts +4 -1
  120. package/core/useHelper.js +16 -6
  121. package/core/useMatcapTexture.cjs.js +1 -1
  122. package/core/useMatcapTexture.js +2 -5
  123. package/core/useNormalTexture.cjs.js +1 -1
  124. package/core/useNormalTexture.js +2 -5
  125. package/helpers/Position.cjs.js +1 -1
  126. package/helpers/Position.js +3 -2
  127. package/helpers/environment-assets.cjs.js +1 -1
  128. package/helpers/environment-assets.js +10 -10
  129. package/index.cjs.js +1 -1
  130. package/index.js +7 -1
  131. package/materials/ConvolutionMaterial.cjs.js +1 -1
  132. package/materials/ConvolutionMaterial.js +2 -0
  133. package/materials/MeshReflectorMaterial.cjs.js +1 -1
  134. package/materials/MeshReflectorMaterial.d.ts +0 -3
  135. package/materials/MeshReflectorMaterial.js +8 -35
  136. package/materials/SpotLightMaterial.cjs.js +1 -1
  137. package/materials/SpotLightMaterial.js +3 -0
  138. package/native/index.cjs.js +1 -1
  139. package/native/index.js +11 -4
  140. package/package.json +8 -7
  141. package/web/Html.cjs.js +1 -1
  142. package/web/Html.js +4 -5
  143. package/web/ScrollControls.cjs.js +1 -1
  144. package/web/ScrollControls.js +6 -5
  145. package/web/Select.cjs.js +1 -1
  146. package/web/Select.d.ts +2 -1
  147. package/web/Select.js +3 -2
  148. package/web/index.cjs.js +1 -1
  149. package/web/index.js +12 -5
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class n extends e.ShaderMaterial{constructor(n=new e.Vector2){super({uniforms:{inputBuffer:new e.Uniform(null),depthBuffer:new e.Uniform(null),resolution:new e.Uniform(new e.Vector2),texelSize:new e.Uniform(new e.Vector2),halfTexelSize:new e.Uniform(new e.Vector2),kernel:new e.Uniform(0),scale:new e.Uniform(1),cameraNear:new e.Uniform(0),cameraFar:new e.Uniform(1),minDepthThreshold:new e.Uniform(0),maxDepthThreshold:new e.Uniform(1),depthScale:new e.Uniform(0),depthToBlurRatioBias:new e.Uniform(.25)},fragmentShader:"#include <common>\n #include <dithering_pars_fragment> \n uniform sampler2D inputBuffer;\n uniform sampler2D depthBuffer;\n uniform float cameraNear;\n uniform float cameraFar;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec2 vUv;\n varying vec2 vUv0;\n varying vec2 vUv1;\n varying vec2 vUv2;\n varying vec2 vUv3;\n\n void main() {\n float depthFactor = 0.0;\n \n #ifdef USE_DEPTH\n vec4 depth = texture2D(depthBuffer, vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0, min(1.0, depthFactor + 0.25));\n #endif\n \n vec4 sum = texture2D(inputBuffer, mix(vUv0, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv1, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv2, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv3, vUv, depthFactor));\n gl_FragColor = sum * 0.25 ;\n\n #include <dithering_fragment>\n }",vertexShader:"uniform vec2 texelSize;\n uniform vec2 halfTexelSize;\n uniform float kernel;\n uniform float scale;\n varying vec2 vUv;\n varying vec2 vUv0;\n varying vec2 vUv1;\n varying vec2 vUv2;\n varying vec2 vUv3;\n\n void main() {\n vec2 uv = position.xy * 0.5 + 0.5;\n vUv = uv;\n\n vec2 dUv = (texelSize * vec2(kernel) + halfTexelSize) * scale;\n vUv0 = vec2(uv.x - dUv.x, uv.y + dUv.y);\n vUv1 = vec2(uv.x + dUv.x, uv.y + dUv.y);\n vUv2 = vec2(uv.x + dUv.x, uv.y - dUv.y);\n vUv3 = vec2(uv.x - dUv.x, uv.y - dUv.y);\n\n gl_Position = vec4(position.xy, 1.0, 1.0);\n }",blending:e.NoBlending,depthWrite:!1,depthTest:!1}),this.toneMapped=!1,this.setTexelSize(n.x,n.y),this.kernel=new Float32Array([0,1,2,2,3])}setTexelSize(e,n){this.uniforms.texelSize.value.set(e,n),this.uniforms.halfTexelSize.value.set(e,n).multiplyScalar(.5)}setResolution(e){this.uniforms.resolution.value.copy(e)}}exports.ConvolutionMaterial=n;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class n extends e.ShaderMaterial{constructor(n=new e.Vector2){super({uniforms:{inputBuffer:new e.Uniform(null),depthBuffer:new e.Uniform(null),resolution:new e.Uniform(new e.Vector2),texelSize:new e.Uniform(new e.Vector2),halfTexelSize:new e.Uniform(new e.Vector2),kernel:new e.Uniform(0),scale:new e.Uniform(1),cameraNear:new e.Uniform(0),cameraFar:new e.Uniform(1),minDepthThreshold:new e.Uniform(0),maxDepthThreshold:new e.Uniform(1),depthScale:new e.Uniform(0),depthToBlurRatioBias:new e.Uniform(.25)},fragmentShader:"#include <common>\n #include <dithering_pars_fragment> \n uniform sampler2D inputBuffer;\n uniform sampler2D depthBuffer;\n uniform float cameraNear;\n uniform float cameraFar;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec2 vUv;\n varying vec2 vUv0;\n varying vec2 vUv1;\n varying vec2 vUv2;\n varying vec2 vUv3;\n\n void main() {\n float depthFactor = 0.0;\n \n #ifdef USE_DEPTH\n vec4 depth = texture2D(depthBuffer, vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0, min(1.0, depthFactor + 0.25));\n #endif\n \n vec4 sum = texture2D(inputBuffer, mix(vUv0, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv1, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv2, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv3, vUv, depthFactor));\n gl_FragColor = sum * 0.25 ;\n\n #include <dithering_fragment>\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }",vertexShader:"uniform vec2 texelSize;\n uniform vec2 halfTexelSize;\n uniform float kernel;\n uniform float scale;\n varying vec2 vUv;\n varying vec2 vUv0;\n varying vec2 vUv1;\n varying vec2 vUv2;\n varying vec2 vUv3;\n\n void main() {\n vec2 uv = position.xy * 0.5 + 0.5;\n vUv = uv;\n\n vec2 dUv = (texelSize * vec2(kernel) + halfTexelSize) * scale;\n vUv0 = vec2(uv.x - dUv.x, uv.y + dUv.y);\n vUv1 = vec2(uv.x + dUv.x, uv.y + dUv.y);\n vUv2 = vec2(uv.x + dUv.x, uv.y - dUv.y);\n vUv3 = vec2(uv.x - dUv.x, uv.y - dUv.y);\n\n gl_Position = vec4(position.xy, 1.0, 1.0);\n }",blending:e.NoBlending,depthWrite:!1,depthTest:!1}),this.toneMapped=!1,this.setTexelSize(n.x,n.y),this.kernel=new Float32Array([0,1,2,2,3])}setTexelSize(e,n){this.uniforms.texelSize.value.set(e,n),this.uniforms.halfTexelSize.value.set(e,n).multiplyScalar(.5)}setResolution(e){this.uniforms.resolution.value.copy(e)}}exports.ConvolutionMaterial=n;
@@ -51,6 +51,8 @@ class ConvolutionMaterial extends ShaderMaterial {
51
51
  gl_FragColor = sum * 0.25 ;
52
52
 
53
53
  #include <dithering_fragment>
54
+ #include <tonemapping_fragment>
55
+ #include <encodings_fragment>
54
56
  }`,
55
57
  vertexShader: `uniform vec2 texelSize;
56
58
  uniform vec2 halfTexelSize;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.MeshStandardMaterial{constructor(e={}){super(e),this._debug={value:0},this._tDepth={value:null},this._distortionMap={value:null},this._tDiffuse={value:null},this._tDiffuseBlur={value:null},this._textureMatrix={value:null},this._hasBlur={value:!1},this._mirror={value:0},this._mixBlur={value:0},this._blurStrength={value:.5},this._minDepthThreshold={value:.9},this._maxDepthThreshold={value:1},this._depthScale={value:0},this._depthToBlurRatioBias={value:.25},this._distortion={value:1},this._mixContrast={value:1},this.setValues(e)}onBeforeCompile(e){var t;null!=(t=e.defines)&&t.USE_UV||(e.defines.USE_UV=""),e.uniforms.debug=this._debug,e.uniforms.hasBlur=this._hasBlur,e.uniforms.tDiffuse=this._tDiffuse,e.uniforms.tDepth=this._tDepth,e.uniforms.distortionMap=this._distortionMap,e.uniforms.tDiffuseBlur=this._tDiffuseBlur,e.uniforms.textureMatrix=this._textureMatrix,e.uniforms.mirror=this._mirror,e.uniforms.mixBlur=this._mixBlur,e.uniforms.mixStrength=this._blurStrength,e.uniforms.minDepthThreshold=this._minDepthThreshold,e.uniforms.maxDepthThreshold=this._maxDepthThreshold,e.uniforms.depthScale=this._depthScale,e.uniforms.depthToBlurRatioBias=this._depthToBlurRatioBias,e.uniforms.distortion=this._distortion,e.uniforms.mixContrast=this._mixContrast,e.vertexShader=`\n uniform mat4 textureMatrix;\n varying vec4 my_vUv; \n ${e.vertexShader}`,e.vertexShader=e.vertexShader.replace("#include <project_vertex>","#include <project_vertex>\n my_vUv = textureMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"),e.fragmentShader=`\n uniform int debug;\n uniform sampler2D tDiffuse;\n uniform sampler2D tDiffuseBlur;\n uniform sampler2D tDepth;\n uniform sampler2D distortionMap;\n uniform float distortion;\n uniform float cameraNear;\n\t\t\t uniform float cameraFar;\n uniform bool hasBlur;\n uniform float mixBlur;\n uniform float mirror;\n uniform float mixStrength;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float mixContrast;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec4 my_vUv; \n ${e.fragmentShader}`,e.fragmentShader=e.fragmentShader.replace("#include <emissivemap_fragment>","#include <emissivemap_fragment>\n \n float distortionFactor = 0.0;\n #ifdef USE_DISTORTION\n distortionFactor = texture2D(distortionMap, vUv).r * distortion;\n #endif\n\n vec4 new_vUv = my_vUv;\n new_vUv.x += distortionFactor;\n new_vUv.y += distortionFactor;\n\n vec4 base = texture2DProj(tDiffuse, new_vUv);\n vec4 blur = texture2DProj(tDiffuseBlur, new_vUv);\n \n vec4 merge = base;\n \n #ifdef USE_NORMALMAP\n vec2 normal_uv = vec2(0.0);\n vec4 normalColor = texture2D(normalMap, vUv * normalScale);\n vec3 my_normal = normalize( vec3( normalColor.r * 2.0 - 1.0, normalColor.b, normalColor.g * 2.0 - 1.0 ) );\n vec3 coord = new_vUv.xyz / new_vUv.w;\n normal_uv = coord.xy + coord.z * my_normal.xz * 0.05;\n vec4 base_normal = texture2D(tDiffuse, normal_uv);\n vec4 blur_normal = texture2D(tDiffuseBlur, normal_uv);\n merge = base_normal;\n blur = blur_normal;\n #endif\n\n float depthFactor = 0.0001;\n float blurFactor = 0.0;\n\n #ifdef USE_DEPTH\n vec4 depth = texture2DProj(tDepth, new_vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0001, min(1.0, depthFactor));\n\n #ifdef USE_BLUR\n blur = blur * min(1.0, depthFactor + depthToBlurRatioBias);\n merge = merge * min(1.0, depthFactor + 0.5);\n #else\n merge = merge * depthFactor;\n #endif\n \n #endif\n\n float reflectorRoughnessFactor = roughness;\n #ifdef USE_ROUGHNESSMAP\n vec4 reflectorTexelRoughness = texture2D( roughnessMap, vUv );\n reflectorRoughnessFactor *= reflectorTexelRoughness.g;\n #endif\n \n #ifdef USE_BLUR\n blurFactor = min(1.0, mixBlur * reflectorRoughnessFactor);\n merge = mix(merge, blur, blurFactor);\n #endif\n\n vec4 newMerge = vec4(0.0, 0.0, 0.0, 1.0);\n newMerge.r = (merge.r - 0.5) * mixContrast + 0.5;\n newMerge.g = (merge.g - 0.5) * mixContrast + 0.5;\n newMerge.b = (merge.b - 0.5) * mixContrast + 0.5;\n\n diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + newMerge.rgb * mixStrength); \n diffuseColor = sRGBToLinear(diffuseColor);\n \n if (debug == 1) {\n diffuseColor = sRGBToLinear(vec4(vec3(depthFactor), 1.0));\n }\n if (debug == 2) {\n diffuseColor = sRGBToLinear(vec4(vec3(blurFactor), 1.0));\n }\n if (debug == 3) {\n diffuseColor = sRGBToLinear(texture2DProj(tDiffuse, new_vUv));\n }\n if (debug == 4) {\n diffuseColor = sRGBToLinear(texture2DProj(tDiffuseBlur, new_vUv));\n }\n ")}get tDiffuse(){return this._tDiffuse.value}set tDiffuse(e){this._tDiffuse.value=e}get tDepth(){return this._tDepth.value}set tDepth(e){this._tDepth.value=e}get distortionMap(){return this._distortionMap.value}set distortionMap(e){this._distortionMap.value=e}get tDiffuseBlur(){return this._tDiffuseBlur.value}set tDiffuseBlur(e){this._tDiffuseBlur.value=e}get textureMatrix(){return this._textureMatrix.value}set textureMatrix(e){this._textureMatrix.value=e}get hasBlur(){return this._hasBlur.value}set hasBlur(e){this._hasBlur.value=e}get mirror(){return this._mirror.value}set mirror(e){this._mirror.value=e}get mixBlur(){return this._mixBlur.value}set mixBlur(e){this._mixBlur.value=e}get mixStrength(){return this._blurStrength.value}set mixStrength(e){this._blurStrength.value=e}get minDepthThreshold(){return this._minDepthThreshold.value}set minDepthThreshold(e){this._minDepthThreshold.value=e}get maxDepthThreshold(){return this._maxDepthThreshold.value}set maxDepthThreshold(e){this._maxDepthThreshold.value=e}get depthScale(){return this._depthScale.value}set depthScale(e){this._depthScale.value=e}get debug(){return this._debug.value}set debug(e){this._debug.value=e}get depthToBlurRatioBias(){return this._depthToBlurRatioBias.value}set depthToBlurRatioBias(e){this._depthToBlurRatioBias.value=e}get distortion(){return this._distortion.value}set distortion(e){this._distortion.value=e}get mixContrast(){return this._mixContrast.value}set mixContrast(e){this._mixContrast.value=e}}exports.MeshReflectorMaterial=t;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.MeshStandardMaterial{constructor(e={}){super(e),this._tDepth={value:null},this._distortionMap={value:null},this._tDiffuse={value:null},this._tDiffuseBlur={value:null},this._textureMatrix={value:null},this._hasBlur={value:!1},this._mirror={value:0},this._mixBlur={value:0},this._blurStrength={value:.5},this._minDepthThreshold={value:.9},this._maxDepthThreshold={value:1},this._depthScale={value:0},this._depthToBlurRatioBias={value:.25},this._distortion={value:1},this._mixContrast={value:1},this.setValues(e)}onBeforeCompile(e){var t;null!=(t=e.defines)&&t.USE_UV||(e.defines.USE_UV=""),e.uniforms.hasBlur=this._hasBlur,e.uniforms.tDiffuse=this._tDiffuse,e.uniforms.tDepth=this._tDepth,e.uniforms.distortionMap=this._distortionMap,e.uniforms.tDiffuseBlur=this._tDiffuseBlur,e.uniforms.textureMatrix=this._textureMatrix,e.uniforms.mirror=this._mirror,e.uniforms.mixBlur=this._mixBlur,e.uniforms.mixStrength=this._blurStrength,e.uniforms.minDepthThreshold=this._minDepthThreshold,e.uniforms.maxDepthThreshold=this._maxDepthThreshold,e.uniforms.depthScale=this._depthScale,e.uniforms.depthToBlurRatioBias=this._depthToBlurRatioBias,e.uniforms.distortion=this._distortion,e.uniforms.mixContrast=this._mixContrast,e.vertexShader=`\n uniform mat4 textureMatrix;\n varying vec4 my_vUv;\n ${e.vertexShader}`,e.vertexShader=e.vertexShader.replace("#include <project_vertex>","#include <project_vertex>\n my_vUv = textureMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"),e.fragmentShader=`\n uniform sampler2D tDiffuse;\n uniform sampler2D tDiffuseBlur;\n uniform sampler2D tDepth;\n uniform sampler2D distortionMap;\n uniform float distortion;\n uniform float cameraNear;\n\t\t\t uniform float cameraFar;\n uniform bool hasBlur;\n uniform float mixBlur;\n uniform float mirror;\n uniform float mixStrength;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float mixContrast;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec4 my_vUv;\n ${e.fragmentShader}`,e.fragmentShader=e.fragmentShader.replace("#include <emissivemap_fragment>","#include <emissivemap_fragment>\n\n float distortionFactor = 0.0;\n #ifdef USE_DISTORTION\n distortionFactor = texture2D(distortionMap, vUv).r * distortion;\n #endif\n\n vec4 new_vUv = my_vUv;\n new_vUv.x += distortionFactor;\n new_vUv.y += distortionFactor;\n\n vec4 base = texture2DProj(tDiffuse, new_vUv);\n vec4 blur = texture2DProj(tDiffuseBlur, new_vUv);\n\n vec4 merge = base;\n\n #ifdef USE_NORMALMAP\n vec2 normal_uv = vec2(0.0);\n vec4 normalColor = texture2D(normalMap, vUv * normalScale);\n vec3 my_normal = normalize( vec3( normalColor.r * 2.0 - 1.0, normalColor.b, normalColor.g * 2.0 - 1.0 ) );\n vec3 coord = new_vUv.xyz / new_vUv.w;\n normal_uv = coord.xy + coord.z * my_normal.xz * 0.05;\n vec4 base_normal = texture2D(tDiffuse, normal_uv);\n vec4 blur_normal = texture2D(tDiffuseBlur, normal_uv);\n merge = base_normal;\n blur = blur_normal;\n #endif\n\n float depthFactor = 0.0001;\n float blurFactor = 0.0;\n\n #ifdef USE_DEPTH\n vec4 depth = texture2DProj(tDepth, new_vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0001, min(1.0, depthFactor));\n\n #ifdef USE_BLUR\n blur = blur * min(1.0, depthFactor + depthToBlurRatioBias);\n merge = merge * min(1.0, depthFactor + 0.5);\n #else\n merge = merge * depthFactor;\n #endif\n\n #endif\n\n float reflectorRoughnessFactor = roughness;\n #ifdef USE_ROUGHNESSMAP\n vec4 reflectorTexelRoughness = texture2D( roughnessMap, vUv );\n reflectorRoughnessFactor *= reflectorTexelRoughness.g;\n #endif\n\n #ifdef USE_BLUR\n blurFactor = min(1.0, mixBlur * reflectorRoughnessFactor);\n merge = mix(merge, blur, blurFactor);\n #endif\n\n vec4 newMerge = vec4(0.0, 0.0, 0.0, 1.0);\n newMerge.r = (merge.r - 0.5) * mixContrast + 0.5;\n newMerge.g = (merge.g - 0.5) * mixContrast + 0.5;\n newMerge.b = (merge.b - 0.5) * mixContrast + 0.5;\n\n diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + newMerge.rgb * mixStrength);\n ")}get tDiffuse(){return this._tDiffuse.value}set tDiffuse(e){this._tDiffuse.value=e}get tDepth(){return this._tDepth.value}set tDepth(e){this._tDepth.value=e}get distortionMap(){return this._distortionMap.value}set distortionMap(e){this._distortionMap.value=e}get tDiffuseBlur(){return this._tDiffuseBlur.value}set tDiffuseBlur(e){this._tDiffuseBlur.value=e}get textureMatrix(){return this._textureMatrix.value}set textureMatrix(e){this._textureMatrix.value=e}get hasBlur(){return this._hasBlur.value}set hasBlur(e){this._hasBlur.value=e}get mirror(){return this._mirror.value}set mirror(e){this._mirror.value=e}get mixBlur(){return this._mixBlur.value}set mixBlur(e){this._mixBlur.value=e}get mixStrength(){return this._blurStrength.value}set mixStrength(e){this._blurStrength.value=e}get minDepthThreshold(){return this._minDepthThreshold.value}set minDepthThreshold(e){this._minDepthThreshold.value=e}get maxDepthThreshold(){return this._maxDepthThreshold.value}set maxDepthThreshold(e){this._maxDepthThreshold.value=e}get depthScale(){return this._depthScale.value}set depthScale(e){this._depthScale.value=e}get depthToBlurRatioBias(){return this._depthToBlurRatioBias.value}set depthToBlurRatioBias(e){this._depthToBlurRatioBias.value=e}get distortion(){return this._distortion.value}set distortion(e){this._distortion.value=e}get mixContrast(){return this._mixContrast.value}set mixContrast(e){this._mixContrast.value=e}}exports.MeshReflectorMaterial=t;
@@ -1,6 +1,5 @@
1
1
  import { Matrix4, MeshStandardMaterial, Texture } from 'three';
2
2
  export declare class MeshReflectorMaterial extends MeshStandardMaterial {
3
- private _debug;
4
3
  private _tDepth;
5
4
  private _distortionMap;
6
5
  private _tDiffuse;
@@ -42,8 +41,6 @@ export declare class MeshReflectorMaterial extends MeshStandardMaterial {
42
41
  set maxDepthThreshold(v: number);
43
42
  get depthScale(): number;
44
43
  set depthScale(v: number);
45
- get debug(): number;
46
- set debug(v: number);
47
44
  get depthToBlurRatioBias(): number;
48
45
  set depthToBlurRatioBias(v: number);
49
46
  get distortion(): number;
@@ -3,9 +3,6 @@ import { MeshStandardMaterial } from 'three';
3
3
  class MeshReflectorMaterial extends MeshStandardMaterial {
4
4
  constructor(parameters = {}) {
5
5
  super(parameters);
6
- this._debug = {
7
- value: 0
8
- };
9
6
  this._tDepth = {
10
7
  value: null
11
8
  };
@@ -61,7 +58,6 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
61
58
  shader.defines.USE_UV = '';
62
59
  }
63
60
 
64
- shader.uniforms.debug = this._debug;
65
61
  shader.uniforms.hasBlur = this._hasBlur;
66
62
  shader.uniforms.tDiffuse = this._tDiffuse;
67
63
  shader.uniforms.tDepth = this._tDepth;
@@ -79,13 +75,12 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
79
75
  shader.uniforms.mixContrast = this._mixContrast;
80
76
  shader.vertexShader = `
81
77
  uniform mat4 textureMatrix;
82
- varying vec4 my_vUv;
78
+ varying vec4 my_vUv;
83
79
  ${shader.vertexShader}`;
84
80
  shader.vertexShader = shader.vertexShader.replace('#include <project_vertex>', `#include <project_vertex>
85
81
  my_vUv = textureMatrix * vec4( position, 1.0 );
86
82
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );`);
87
83
  shader.fragmentShader = `
88
- uniform int debug;
89
84
  uniform sampler2D tDiffuse;
90
85
  uniform sampler2D tDiffuseBlur;
91
86
  uniform sampler2D tDepth;
@@ -102,10 +97,10 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
102
97
  uniform float mixContrast;
103
98
  uniform float depthScale;
104
99
  uniform float depthToBlurRatioBias;
105
- varying vec4 my_vUv;
100
+ varying vec4 my_vUv;
106
101
  ${shader.fragmentShader}`;
107
102
  shader.fragmentShader = shader.fragmentShader.replace('#include <emissivemap_fragment>', `#include <emissivemap_fragment>
108
-
103
+
109
104
  float distortionFactor = 0.0;
110
105
  #ifdef USE_DISTORTION
111
106
  distortionFactor = texture2D(distortionMap, vUv).r * distortion;
@@ -117,9 +112,9 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
117
112
 
118
113
  vec4 base = texture2DProj(tDiffuse, new_vUv);
119
114
  vec4 blur = texture2DProj(tDiffuseBlur, new_vUv);
120
-
115
+
121
116
  vec4 merge = base;
122
-
117
+
123
118
  #ifdef USE_NORMALMAP
124
119
  vec2 normal_uv = vec2(0.0);
125
120
  vec4 normalColor = texture2D(normalMap, vUv * normalScale);
@@ -147,7 +142,7 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
147
142
  #else
148
143
  merge = merge * depthFactor;
149
144
  #endif
150
-
145
+
151
146
  #endif
152
147
 
153
148
  float reflectorRoughnessFactor = roughness;
@@ -155,7 +150,7 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
155
150
  vec4 reflectorTexelRoughness = texture2D( roughnessMap, vUv );
156
151
  reflectorRoughnessFactor *= reflectorTexelRoughness.g;
157
152
  #endif
158
-
153
+
159
154
  #ifdef USE_BLUR
160
155
  blurFactor = min(1.0, mixBlur * reflectorRoughnessFactor);
161
156
  merge = mix(merge, blur, blurFactor);
@@ -166,21 +161,7 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
166
161
  newMerge.g = (merge.g - 0.5) * mixContrast + 0.5;
167
162
  newMerge.b = (merge.b - 0.5) * mixContrast + 0.5;
168
163
 
169
- diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + newMerge.rgb * mixStrength);
170
- diffuseColor = sRGBToLinear(diffuseColor);
171
-
172
- if (debug == 1) {
173
- diffuseColor = sRGBToLinear(vec4(vec3(depthFactor), 1.0));
174
- }
175
- if (debug == 2) {
176
- diffuseColor = sRGBToLinear(vec4(vec3(blurFactor), 1.0));
177
- }
178
- if (debug == 3) {
179
- diffuseColor = sRGBToLinear(texture2DProj(tDiffuse, new_vUv));
180
- }
181
- if (debug == 4) {
182
- diffuseColor = sRGBToLinear(texture2DProj(tDiffuseBlur, new_vUv));
183
- }
164
+ diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + newMerge.rgb * mixStrength);
184
165
  `);
185
166
  }
186
167
 
@@ -280,14 +261,6 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
280
261
  this._depthScale.value = v;
281
262
  }
282
263
 
283
- get debug() {
284
- return this._debug.value;
285
- }
286
-
287
- set debug(v) {
288
- this._debug.value = v;
289
- }
290
-
291
264
  get depthToBlurRatioBias() {
292
265
  return this._depthToBlurRatioBias.value;
293
266
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("three");class t extends n.ShaderMaterial{constructor(){super({uniforms:{depth:{value:null},opacity:{value:1},attenuation:{value:2.5},anglePower:{value:12},spotPosition:{value:new n.Vector3(0,0,0)},lightColor:{value:new n.Color("white")},cameraNear:{value:0},cameraFar:{value:1},resolution:{value:new n.Vector2(0,0)}},transparent:!0,depthWrite:!1,vertexShader:"\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n varying float vViewZ;\n varying float vIntensity;\n uniform vec3 spotPosition;\n uniform float attenuation; \n\n void main() {\n // compute intensity\n vNormal = normalize( normalMatrix * normal );\n vec4 worldPosition\t= modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n vec4 viewPosition = viewMatrix * worldPosition;\n vViewZ = viewPosition.z;\n float intensity\t= distance(worldPosition.xyz, spotPosition) / attenuation;\n intensity\t= 1.0 - clamp(intensity, 0.0, 1.0);\n vIntensity = intensity; \n // set gl_Position\n gl_Position\t= projectionMatrix * viewPosition;\n\n }",fragmentShader:"\n #include <packing>\n\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n uniform vec3 lightColor;\n uniform vec3 spotPosition;\n uniform float attenuation;\n uniform float anglePower;\n uniform sampler2D depth;\n uniform vec2 resolution;\n uniform float cameraNear;\n uniform float cameraFar;\n varying float vViewZ;\n varying float vIntensity;\n uniform float opacity;\n\n float readDepth( sampler2D depthSampler, vec2 coord ) {\n float fragCoordZ = texture2D( depthSampler, coord ).x;\n float viewZ = perspectiveDepthToViewZ(fragCoordZ, cameraNear, cameraFar);\n return viewZ;\n }\n\n void main() {\n float d = 1.0;\n bool isSoft = resolution[0] > 0.0 && resolution[1] > 0.0;\n if (isSoft) {\n vec2 sUv = gl_FragCoord.xy / resolution;\n d = readDepth(depth, sUv);\n }\n float intensity = vIntensity;\n vec3 normal\t= vec3(vNormal.x, vNormal.y, abs(vNormal.z));\n float angleIntensity\t= pow( dot(normal, vec3(0.0, 0.0, 1.0)), anglePower );\n intensity\t*= angleIntensity;\n // fades when z is close to sampled depth, meaning the cone is intersecting existing geometry\n if (isSoft) {\n intensity\t*= smoothstep(0., 1., vViewZ - d);\n }\n gl_FragColor = vec4(lightColor, intensity * opacity);\n }"})}}exports.SpotLightMaterial=t;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("three");class e extends n.ShaderMaterial{constructor(){super({uniforms:{depth:{value:null},opacity:{value:1},attenuation:{value:2.5},anglePower:{value:12},spotPosition:{value:new n.Vector3(0,0,0)},lightColor:{value:new n.Color("white")},cameraNear:{value:0},cameraFar:{value:1},resolution:{value:new n.Vector2(0,0)}},transparent:!0,depthWrite:!1,vertexShader:"\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n varying float vViewZ;\n varying float vIntensity;\n uniform vec3 spotPosition;\n uniform float attenuation; \n\n void main() {\n // compute intensity\n vNormal = normalize( normalMatrix * normal );\n vec4 worldPosition\t= modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n vec4 viewPosition = viewMatrix * worldPosition;\n vViewZ = viewPosition.z;\n float intensity\t= distance(worldPosition.xyz, spotPosition) / attenuation;\n intensity\t= 1.0 - clamp(intensity, 0.0, 1.0);\n vIntensity = intensity; \n // set gl_Position\n gl_Position\t= projectionMatrix * viewPosition;\n\n }",fragmentShader:"\n #include <packing>\n\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n uniform vec3 lightColor;\n uniform vec3 spotPosition;\n uniform float attenuation;\n uniform float anglePower;\n uniform sampler2D depth;\n uniform vec2 resolution;\n uniform float cameraNear;\n uniform float cameraFar;\n varying float vViewZ;\n varying float vIntensity;\n uniform float opacity;\n\n float readDepth( sampler2D depthSampler, vec2 coord ) {\n float fragCoordZ = texture2D( depthSampler, coord ).x;\n float viewZ = perspectiveDepthToViewZ(fragCoordZ, cameraNear, cameraFar);\n return viewZ;\n }\n\n void main() {\n float d = 1.0;\n bool isSoft = resolution[0] > 0.0 && resolution[1] > 0.0;\n if (isSoft) {\n vec2 sUv = gl_FragCoord.xy / resolution;\n d = readDepth(depth, sUv);\n }\n float intensity = vIntensity;\n vec3 normal\t= vec3(vNormal.x, vNormal.y, abs(vNormal.z));\n float angleIntensity\t= pow( dot(normal, vec3(0.0, 0.0, 1.0)), anglePower );\n intensity\t*= angleIntensity;\n // fades when z is close to sampled depth, meaning the cone is intersecting existing geometry\n if (isSoft) {\n intensity\t*= smoothstep(0., 1., vViewZ - d);\n }\n gl_FragColor = vec4(lightColor, intensity * opacity);\n\n #include <tonemapping_fragment>\n\t #include <encodings_fragment>\n }"})}}exports.SpotLightMaterial=e;
@@ -99,6 +99,9 @@ class SpotLightMaterial extends ShaderMaterial {
99
99
  intensity *= smoothstep(0., 1., vViewZ - d);
100
100
  }
101
101
  gl_FragColor = vec4(lightColor, intensity * opacity);
102
+
103
+ #include <tonemapping_fragment>
104
+ #include <encodings_fragment>
102
105
  }`
103
106
  });
104
107
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../core/Billboard.cjs.js"),r=require("../core/QuadraticBezierLine.cjs.js"),s=require("../core/CubicBezierLine.cjs.js"),o=require("../core/Line.cjs.js"),t=require("../core/PositionalAudio.cjs.js"),i=require("../core/Text.cjs.js"),c=require("../core/Effects.cjs.js"),u=require("../core/GradientTexture.cjs.js"),a=require("../core/Image.cjs.js"),j=require("../core/Edges.cjs.js"),n=require("../core/OrthographicCamera.cjs.js"),p=require("../core/PerspectiveCamera.cjs.js"),l=require("../core/CubeCamera.cjs.js"),x=require("../core/DeviceOrientationControls.cjs.js"),q=require("../core/FlyControls.cjs.js"),d=require("../core/MapControls.cjs.js"),C=require("../core/OrbitControls.cjs.js"),h=require("../core/TrackballControls.cjs.js"),m=require("../core/ArcballControls.cjs.js"),B=require("../core/TransformControls.cjs.js"),b=require("../core/PointerLockControls.cjs.js"),M=require("../core/FirstPersonControls.cjs.js"),P=require("../core/GizmoHelper.cjs.js"),S=require("../core/GizmoViewcube.cjs.js"),f=require("../core/GizmoViewport.cjs.js"),T=require("../core/useCubeTexture.cjs.js"),g=require("../core/useFBX.cjs.js"),v=require("../core/useGLTF.cjs.js"),L=require("../core/useProgress.cjs.js"),A=require("../core/useTexture.cjs.js"),G=require("../core/useKTX2.cjs.js"),k=require("../core/Stats.cjs.js"),D=require("../core/useDepthBuffer.cjs.js"),F=require("../core/useAspect.cjs.js"),w=require("../core/useCamera.cjs.js"),z=require("../core/useDetectGPU.cjs.js"),I=require("../core/useHelper.cjs.js"),O=require("../core/useBVH.cjs.js"),E=require("../core/useContextBridge.cjs.js"),R=require("../core/useAnimations.cjs.js"),y=require("../core/useFBO.cjs.js"),H=require("../core/useIntersect.cjs.js"),V=require("../core/CurveModifier.cjs.js"),Q=require("../core/MeshDistortMaterial.cjs.js"),X=require("../core/MeshWobbleMaterial.cjs.js"),K=require("../core/MeshReflectorMaterial.cjs.js"),W=require("../core/PointMaterial.cjs.js"),N=require("../core/shaderMaterial.cjs.js"),U=require("../core/softShadows.cjs.js"),_=require("../core/shapes.cjs.js"),J=require("../core/RoundedBox.cjs.js"),Y=require("../core/ScreenQuad.cjs.js"),Z=require("../core/Center.cjs.js"),$=require("../core/Bounds.cjs.js"),ee=require("../core/CameraShake.cjs.js"),re=require("../core/Float.cjs.js"),se=require("../core/Stage.cjs.js"),oe=require("../core/Backdrop.cjs.js"),te=require("../core/Shadow.cjs.js"),ie=require("../core/ContactShadows.cjs.js"),ce=require("../core/Reflector.cjs.js"),ue=require("../core/SpotLight.cjs.js"),ae=require("../core/Environment.cjs.js"),je=require("../core/Sky.cjs.js"),ne=require("../core/Stars.cjs.js"),pe=require("../core/Cloud.cjs.js"),le=require("../core/useMatcapTexture.cjs.js"),xe=require("../core/useNormalTexture.cjs.js"),qe=require("../core/Points.cjs.js"),de=require("../core/Instances.cjs.js"),Ce=require("../core/Segments.cjs.js"),he=require("../core/Detailed.cjs.js"),me=require("../core/Preload.cjs.js"),Be=require("../core/BakeShadows.cjs.js"),be=require("../core/meshBounds.cjs.js"),Me=require("../core/AdaptiveDpr.cjs.js"),Pe=require("../core/AdaptiveEvents.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("lodash.omit"),require("lodash.pick"),require("zustand"),require("three/examples/js/libs/stats.min"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("use-asset"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.QuadraticBezierLine=r.QuadraticBezierLine,exports.CubicBezierLine=s.CubicBezierLine,exports.Line=o.Line,exports.PositionalAudio=t.PositionalAudio,exports.Text=i.Text,exports.Effects=c.Effects,exports.isWebGL2Available=c.isWebGL2Available,exports.GradientTexture=u.GradientTexture,exports.Image=a.Image,exports.Edges=j.Edges,exports.OrthographicCamera=n.OrthographicCamera,exports.PerspectiveCamera=p.PerspectiveCamera,exports.CubeCamera=l.CubeCamera,exports.DeviceOrientationControls=x.DeviceOrientationControls,exports.FlyControls=q.FlyControls,exports.MapControls=d.MapControls,exports.OrbitControls=C.OrbitControls,exports.TrackballControls=h.TrackballControls,exports.ArcballControls=m.ArcballControls,exports.TransformControls=B.TransformControls,exports.PointerLockControls=b.PointerLockControls,exports.FirstPersonControls=M.FirstPersonControls,exports.GizmoHelper=P.GizmoHelper,exports.useGizmoContext=P.useGizmoContext,exports.GizmoViewcube=S.GizmoViewcube,exports.GizmoViewport=f.GizmoViewport,exports.useCubeTexture=T.useCubeTexture,exports.useFBX=g.useFBX,exports.useGLTF=v.useGLTF,exports.useProgress=L.useProgress,exports.IsObject=A.IsObject,exports.useTexture=A.useTexture,exports.useKTX2=G.useKTX2,exports.Stats=k.Stats,exports.useDepthBuffer=D.useDepthBuffer,exports.useAspect=F.useAspect,exports.useCamera=w.useCamera,exports.useDetectGPU=z.useDetectGPU,exports.useHelper=I.useHelper,exports.useBVH=O.useBVH,exports.useContextBridge=E.useContextBridge,exports.useAnimations=R.useAnimations,exports.useFBO=y.useFBO,exports.useIntersect=H.useIntersect,exports.CurveModifier=V.CurveModifier,exports.MeshDistortMaterial=Q.MeshDistortMaterial,exports.MeshWobbleMaterial=X.MeshWobbleMaterial,exports.MeshReflectorMaterial=K.MeshReflectorMaterial,exports.PointMaterial=W.PointMaterial,exports.PointMaterialImpl=W.PointMaterialImpl,exports.shaderMaterial=N.shaderMaterial,exports.softShadows=U.softShadows,exports.Box=_.Box,exports.Circle=_.Circle,exports.Cone=_.Cone,exports.Cylinder=_.Cylinder,exports.Dodecahedron=_.Dodecahedron,exports.Extrude=_.Extrude,exports.Icosahedron=_.Icosahedron,exports.Lathe=_.Lathe,exports.Octahedron=_.Octahedron,exports.Plane=_.Plane,exports.Polyhedron=_.Polyhedron,exports.Ring=_.Ring,exports.Sphere=_.Sphere,exports.Tetrahedron=_.Tetrahedron,exports.Torus=_.Torus,exports.TorusKnot=_.TorusKnot,exports.Tube=_.Tube,exports.RoundedBox=J.RoundedBox,exports.ScreenQuad=Y.ScreenQuad,exports.Center=Z.Center,exports.Bounds=$.Bounds,exports.useBounds=$.useBounds,exports.CameraShake=ee.CameraShake,exports.Float=re.Float,exports.Stage=se.Stage,exports.Backdrop=oe.Backdrop,exports.Shadow=te.Shadow,exports.ContactShadows=ie.ContactShadows,exports.Reflector=ce.Reflector,exports.SpotLight=ue.SpotLight,exports.Environment=ae.Environment,exports.Sky=je.Sky,exports.calcPosFromAngles=je.calcPosFromAngles,exports.Stars=ne.Stars,exports.Cloud=pe.Cloud,exports.useMatcapTexture=le.useMatcapTexture,exports.useNormalTexture=xe.useNormalTexture,exports.Point=qe.Point,exports.Points=qe.Points,exports.PointsBuffer=qe.PointsBuffer,exports.Instance=de.Instance,exports.Instances=de.Instances,exports.Merged=de.Merged,exports.Segment=Ce.Segment,exports.Segments=Ce.Segments,exports.Detailed=he.Detailed,exports.Preload=me.Preload,exports.BakeShadows=Be.BakeShadows,exports.meshBounds=be.meshBounds,exports.AdaptiveDpr=Me.AdaptiveDpr,exports.AdaptiveEvents=Pe.AdaptiveEvents;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../core/Billboard.cjs.js"),r=require("../core/QuadraticBezierLine.cjs.js"),s=require("../core/CubicBezierLine.cjs.js"),o=require("../core/Line.cjs.js"),t=require("../core/PositionalAudio.cjs.js"),i=require("../core/Text.cjs.js"),c=require("../core/Effects.cjs.js"),u=require("../core/GradientTexture.cjs.js"),a=require("../core/Image.cjs.js"),n=require("../core/Edges.cjs.js"),j=require("../core/Trail.cjs.js"),p=require("../core/Sampler.cjs.js"),l=require("../core/ComputedAttribute.cjs.js"),x=require("../core/Clone.cjs.js"),q=require("../core/OrthographicCamera.cjs.js"),d=require("../core/PerspectiveCamera.cjs.js"),C=require("../core/CubeCamera.cjs.js"),m=require("../core/DeviceOrientationControls.cjs.js"),h=require("../core/FlyControls.cjs.js"),b=require("../core/MapControls.cjs.js"),B=require("../core/OrbitControls.cjs.js"),P=require("../core/TrackballControls.cjs.js"),S=require("../core/ArcballControls.cjs.js"),M=require("../core/TransformControls.cjs.js"),T=require("../core/PointerLockControls.cjs.js"),f=require("../core/FirstPersonControls.cjs.js"),g=require("../core/GizmoHelper.cjs.js"),v=require("../core/GizmoViewcube.cjs.js"),L=require("../core/GizmoViewport.cjs.js"),A=require("../core/useCubeTexture.cjs.js"),E=require("../core/useFBX.cjs.js"),G=require("../core/useGLTF.cjs.js"),k=require("../core/useProgress.cjs.js"),D=require("../core/useTexture.cjs.js"),F=require("../core/useKTX2.cjs.js"),w=require("../core/Stats.cjs.js"),z=require("../core/useDepthBuffer.cjs.js"),I=require("../core/useAspect.cjs.js"),O=require("../core/useCamera.cjs.js"),R=require("../core/useDetectGPU.cjs.js"),y=require("../core/useHelper.cjs.js"),H=require("../core/useBVH.cjs.js"),V=require("../core/useContextBridge.cjs.js"),Q=require("../core/useAnimations.cjs.js"),X=require("../core/useFBO.cjs.js"),K=require("../core/useIntersect.cjs.js"),W=require("../core/useBoxProjectedEnv.cjs.js"),N=require("../core/CurveModifier.cjs.js"),U=require("../core/MeshDistortMaterial.cjs.js"),_=require("../core/MeshWobbleMaterial.cjs.js"),J=require("../core/MeshReflectorMaterial.cjs.js"),Y=require("../core/PointMaterial.cjs.js"),Z=require("../core/shaderMaterial.cjs.js"),$=require("../core/softShadows.cjs.js"),ee=require("../core/shapes.cjs.js"),re=require("../core/RoundedBox.cjs.js"),se=require("../core/ScreenQuad.cjs.js"),oe=require("../core/Center.cjs.js"),te=require("../core/Bounds.cjs.js"),ie=require("../core/CameraShake.cjs.js"),ce=require("../core/Float.cjs.js"),ue=require("../core/Stage.cjs.js"),ae=require("../core/Backdrop.cjs.js"),ne=require("../core/Shadow.cjs.js"),je=require("../core/ContactShadows.cjs.js"),pe=require("../core/Reflector.cjs.js"),le=require("../core/SpotLight.cjs.js"),xe=require("../core/Environment.cjs.js"),qe=require("../core/Lightformer.cjs.js"),de=require("../core/Sky.cjs.js"),Ce=require("../core/Stars.cjs.js"),me=require("../core/Cloud.cjs.js"),he=require("../core/useMatcapTexture.cjs.js"),be=require("../core/useNormalTexture.cjs.js"),Be=require("../core/Points.cjs.js"),Pe=require("../core/Instances.cjs.js"),Se=require("../core/Segments.cjs.js"),Me=require("../core/Detailed.cjs.js"),Te=require("../core/Preload.cjs.js"),fe=require("../core/BakeShadows.cjs.js"),ge=require("../core/meshBounds.cjs.js"),ve=require("../core/AdaptiveDpr.cjs.js"),Le=require("../core/AdaptiveEvents.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("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.QuadraticBezierLine=r.QuadraticBezierLine,exports.CubicBezierLine=s.CubicBezierLine,exports.Line=o.Line,exports.PositionalAudio=t.PositionalAudio,exports.Text=i.Text,exports.Effects=c.Effects,exports.isWebGL2Available=c.isWebGL2Available,exports.GradientTexture=u.GradientTexture,exports.Image=a.Image,exports.Edges=n.Edges,exports.Trail=j.Trail,exports.useTrail=j.useTrail,exports.Sampler=p.Sampler,exports.ComputedAttribute=l.ComputedAttribute,exports.Clone=x.Clone,exports.OrthographicCamera=q.OrthographicCamera,exports.PerspectiveCamera=d.PerspectiveCamera,exports.CubeCamera=C.CubeCamera,exports.DeviceOrientationControls=m.DeviceOrientationControls,exports.FlyControls=h.FlyControls,exports.MapControls=b.MapControls,exports.OrbitControls=B.OrbitControls,exports.TrackballControls=P.TrackballControls,exports.ArcballControls=S.ArcballControls,exports.TransformControls=M.TransformControls,exports.PointerLockControls=T.PointerLockControls,exports.FirstPersonControls=f.FirstPersonControls,exports.GizmoHelper=g.GizmoHelper,exports.useGizmoContext=g.useGizmoContext,exports.GizmoViewcube=v.GizmoViewcube,exports.GizmoViewport=L.GizmoViewport,exports.useCubeTexture=A.useCubeTexture,exports.useFBX=E.useFBX,exports.useGLTF=G.useGLTF,exports.useProgress=k.useProgress,exports.IsObject=D.IsObject,exports.useTexture=D.useTexture,exports.useKTX2=F.useKTX2,exports.Stats=w.Stats,exports.useDepthBuffer=z.useDepthBuffer,exports.useAspect=I.useAspect,exports.useCamera=O.useCamera,exports.useDetectGPU=R.useDetectGPU,exports.useHelper=y.useHelper,exports.useBVH=H.useBVH,exports.useContextBridge=V.useContextBridge,exports.useAnimations=Q.useAnimations,exports.useFBO=X.useFBO,exports.useIntersect=K.useIntersect,exports.useBoxProjectedEnv=W.useBoxProjectedEnv,exports.CurveModifier=N.CurveModifier,exports.MeshDistortMaterial=U.MeshDistortMaterial,exports.MeshWobbleMaterial=_.MeshWobbleMaterial,exports.MeshReflectorMaterial=J.MeshReflectorMaterial,exports.PointMaterial=Y.PointMaterial,exports.PointMaterialImpl=Y.PointMaterialImpl,exports.shaderMaterial=Z.shaderMaterial,exports.softShadows=$.softShadows,exports.Box=ee.Box,exports.Circle=ee.Circle,exports.Cone=ee.Cone,exports.Cylinder=ee.Cylinder,exports.Dodecahedron=ee.Dodecahedron,exports.Extrude=ee.Extrude,exports.Icosahedron=ee.Icosahedron,exports.Lathe=ee.Lathe,exports.Octahedron=ee.Octahedron,exports.Plane=ee.Plane,exports.Polyhedron=ee.Polyhedron,exports.Ring=ee.Ring,exports.Sphere=ee.Sphere,exports.Tetrahedron=ee.Tetrahedron,exports.Torus=ee.Torus,exports.TorusKnot=ee.TorusKnot,exports.Tube=ee.Tube,exports.RoundedBox=re.RoundedBox,exports.ScreenQuad=se.ScreenQuad,exports.Center=oe.Center,exports.Bounds=te.Bounds,exports.useBounds=te.useBounds,exports.CameraShake=ie.CameraShake,exports.Float=ce.Float,exports.Stage=ue.Stage,exports.Backdrop=ae.Backdrop,exports.Shadow=ne.Shadow,exports.ContactShadows=je.ContactShadows,exports.Reflector=pe.Reflector,exports.SpotLight=le.SpotLight,exports.Environment=xe.Environment,exports.EnvironmentCube=xe.EnvironmentCube,exports.EnvironmentMap=xe.EnvironmentMap,exports.EnvironmentPortal=xe.EnvironmentPortal,exports.Lightformer=qe.Lightformer,exports.Sky=de.Sky,exports.calcPosFromAngles=de.calcPosFromAngles,exports.Stars=Ce.Stars,exports.Cloud=me.Cloud,exports.useMatcapTexture=he.useMatcapTexture,exports.useNormalTexture=be.useNormalTexture,exports.Point=Be.Point,exports.Points=Be.Points,exports.PointsBuffer=Be.PointsBuffer,exports.Instance=Pe.Instance,exports.Instances=Pe.Instances,exports.Merged=Pe.Merged,exports.Segment=Se.Segment,exports.Segments=Se.Segments,exports.Detailed=Me.Detailed,exports.Preload=Te.Preload,exports.BakeShadows=fe.BakeShadows,exports.meshBounds=ge.meshBounds,exports.AdaptiveDpr=ve.AdaptiveDpr,exports.AdaptiveEvents=Le.AdaptiveEvents;
package/native/index.js CHANGED
@@ -8,6 +8,10 @@ export { Effects, isWebGL2Available } from '../core/Effects.js';
8
8
  export { GradientTexture } from '../core/GradientTexture.js';
9
9
  export { Image } from '../core/Image.js';
10
10
  export { Edges } from '../core/Edges.js';
11
+ export { Trail, useTrail } from '../core/Trail.js';
12
+ export { Sampler } from '../core/Sampler.js';
13
+ export { ComputedAttribute } from '../core/ComputedAttribute.js';
14
+ export { Clone } from '../core/Clone.js';
11
15
  export { OrthographicCamera } from '../core/OrthographicCamera.js';
12
16
  export { PerspectiveCamera } from '../core/PerspectiveCamera.js';
13
17
  export { CubeCamera } from '../core/CubeCamera.js';
@@ -40,6 +44,7 @@ export { useContextBridge } from '../core/useContextBridge.js';
40
44
  export { useAnimations } from '../core/useAnimations.js';
41
45
  export { useFBO } from '../core/useFBO.js';
42
46
  export { useIntersect } from '../core/useIntersect.js';
47
+ export { useBoxProjectedEnv } from '../core/useBoxProjectedEnv.js';
43
48
  export { CurveModifier } from '../core/CurveModifier.js';
44
49
  export { MeshDistortMaterial } from '../core/MeshDistortMaterial.js';
45
50
  export { MeshWobbleMaterial } from '../core/MeshWobbleMaterial.js';
@@ -60,7 +65,8 @@ export { Shadow } from '../core/Shadow.js';
60
65
  export { ContactShadows } from '../core/ContactShadows.js';
61
66
  export { Reflector } from '../core/Reflector.js';
62
67
  export { SpotLight } from '../core/SpotLight.js';
63
- export { Environment } from '../core/Environment.js';
68
+ export { Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal } from '../core/Environment.js';
69
+ export { Lightformer } from '../core/Lightformer.js';
64
70
  export { Sky, calcPosFromAngles } from '../core/Sky.js';
65
71
  export { Stars } from '../core/Stars.js';
66
72
  export { Cloud } from '../core/Cloud.js';
@@ -82,13 +88,14 @@ import 'react-merge-refs';
82
88
  import 'three';
83
89
  import 'three-stdlib';
84
90
  import 'troika-three-text';
85
- import 'lodash.omit';
91
+ import 'suspend-react';
92
+ import 'meshline';
86
93
  import 'lodash.pick';
94
+ import 'lodash.omit';
87
95
  import 'zustand';
88
- import 'three/examples/js/libs/stats.min';
96
+ import 'stats.js';
89
97
  import '../helpers/useEffectfulState.js';
90
98
  import 'detect-gpu';
91
- import 'use-asset';
92
99
  import 'three-mesh-bvh';
93
100
  import '../materials/BlurPass.js';
94
101
  import '../materials/ConvolutionMaterial.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-three/drei",
3
- "version": "9.0.0-beta.1",
3
+ "version": "9.0.0-beta.4",
4
4
  "private": false,
5
5
  "description": "useful add-ons for react-three-fiber",
6
6
  "keywords": [
@@ -42,17 +42,18 @@
42
42
  "@babel/runtime": "^7.11.2",
43
43
  "@react-spring/three": "^9.3.1",
44
44
  "@use-gesture/react": "^10.2.0",
45
- "detect-gpu": "^3.1.28",
45
+ "detect-gpu": "^4.0.14",
46
46
  "glsl-noise": "^0.0.0",
47
47
  "lodash.omit": "^4.5.0",
48
48
  "lodash.pick": "^4.4.0",
49
+ "meshline": "^2.0.4",
49
50
  "react-composer": "^5.0.2",
50
51
  "react-merge-refs": "^1.1.0",
51
52
  "stats.js": "^0.17.0",
52
- "three-mesh-bvh": "^0.5.2",
53
- "three-stdlib": "^2.6.1",
54
- "troika-three-text": "^0.44.0",
55
- "use-asset": "^1.0.4",
53
+ "suspend-react": "^0.0.8",
54
+ "three-mesh-bvh": "^0.5.7",
55
+ "three-stdlib": "^2.8.9",
56
+ "troika-three-text": "^0.46.3",
56
57
  "utility-types": "^3.10.0",
57
58
  "zustand": "^3.5.13"
58
59
  },
@@ -60,7 +61,7 @@
60
61
  "@react-three/fiber": ">=8.0",
61
62
  "react": ">=18.0",
62
63
  "react-dom": ">=18.0",
63
- "three": ">=0.134"
64
+ "three": ">=0.137"
64
65
  },
65
66
  "peerDependenciesMeta": {
66
67
  "react-dom": {
package/web/Html.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("react-dom"),n=require("three"),o=require("@react-three/fiber");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var i=s(e),c=a(t),l=a(r);const u=new n.Vector3,d=new n.Vector3,f=new n.Vector3;function m(e,t,r){const n=u.setFromMatrixPosition(e.matrixWorld);n.project(t);const o=r.width/2,s=r.height/2;return[n.x*o+o,-n.y*s+s]}const p=e=>Math.abs(e)<1e-10?0:e;function h(e,t,r=""){let n="matrix3d(";for(let r=0;16!==r;r++)n+=p(t[r]*e.elements[r])+(15!==r?",":")");return r+n}const x=(y=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>h(e,y));var y;const v=(e,t)=>{return h(e,[1/(r=t),1/r,1/r,1,-1/r,-1/r,-1/r,-1,1/r,1/r,1/r,1,1,1,1,1],"translate(-50%,-50%)");var r},b=c.forwardRef((({children:e,eps:t=.001,style:r,className:s,prepend:a,center:h,fullscreen:y,portal:b,distanceFactor:M,sprite:g=!1,transform:P=!1,occlude:w,onOcclude:W,zIndexRange:$=[16777271,0],calculatePosition:E=m,as:O="div",wrapperClass:j,pointerEvents:F="auto",...T},C)=>{var R;const z=o.useThree((({gl:e})=>e)),I=o.useThree((({camera:e})=>e)),q=o.useThree((({scene:e})=>e)),N=o.useThree((({size:e})=>e)),_=o.useThree((({raycaster:e})=>e)),[V]=c.useState((()=>document.createElement(O))),k=c.useMemo((()=>l.createRoot(V)),[V]),A=c.useRef(null),D=c.useRef(0),L=c.useRef([0,0]),S=c.useRef(null),H=c.useRef(null),Z=null!==(R=null==b?void 0:b.current)&&void 0!==R?R:z.domElement.parentNode;c.useEffect((()=>{if(A.current){if(q.updateMatrixWorld(),P)V.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const e=E(A.current,I,N);V.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return Z&&(a?Z.prepend(V):Z.appendChild(V)),()=>{Z&&Z.removeChild(V),k.unmount()}}}),[Z,P]),c.useLayoutEffect((()=>{j&&(V.className=j)}),[j]);const B=c.useMemo((()=>P?{position:"absolute",top:0,left:0,width:N.width,height:N.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:h?"translate3d(-50%,-50%,0)":"none",...y&&{top:-N.height/2,left:-N.width/2,width:N.width,height:N.height},...r}),[r,h,y,N,P]),G=c.useMemo((()=>({position:"absolute",pointerEvents:F})),[F]);c.useLayoutEffect((()=>{P?k.render(c.createElement("div",{ref:S,style:B},c.createElement("div",{ref:H,style:G},c.createElement("div",{ref:C,className:s,style:r,children:e}))),V):k.render(c.createElement("div",{ref:C,style:B,className:s,children:e}),V)}));const J=c.useRef(!0);return o.useFrame((()=>{if(A.current){I.updateMatrixWorld(),A.current.updateWorldMatrix(!0,!1);const e=P?L.current:E(A.current,I,N);if(P||Math.abs(D.current-I.zoom)>t||Math.abs(L.current[0]-e[0])>t||Math.abs(L.current[1]-e[1])>t){const t=function(e,t){const r=u.setFromMatrixPosition(e.matrixWorld),n=d.setFromMatrixPosition(t.matrixWorld),o=r.sub(n),s=t.getWorldDirection(f);return o.angleTo(s)>Math.PI/2}(A.current,I);let r=!1;"boolean"==typeof w?!0===w&&(r=[q]):Array.isArray(w)&&(r=w.map((e=>e.current)));const o=J.current;if(r){const e=function(e,t,r,n){const o=u.setFromMatrixPosition(e.matrixWorld),s=o.clone();s.project(t),r.setFromCamera(s,t);const a=r.intersectObjects(n,!0);if(a.length){const e=a[0].distance;return o.distanceTo(r.ray.origin)<e}return!0}(A.current,I,_,r);J.current=e&&!t}else J.current=!t;if(o!==J.current&&(W?W(!J.current):V.style.display=J.current?"block":"none"),V.style.zIndex=`${function(e,t,r){if(t instanceof n.PerspectiveCamera||t instanceof n.OrthographicCamera){const n=u.setFromMatrixPosition(e.matrixWorld),o=d.setFromMatrixPosition(t.matrixWorld),s=n.distanceTo(o),a=(r[1]-r[0])/(t.far-t.near),i=r[1]-a*t.far;return Math.round(a*s+i)}}(A.current,I,$)}`,P){const[e,t]=[N.width/2,N.height/2],r=I.projectionMatrix.elements[5]*t,{isOrthographicCamera:n,top:o,left:s,bottom:a,right:i}=I,c=x(I.matrixWorldInverse),l=n?`scale(${r})translate(${p(-(i+s)/2)}px,${p((o+a)/2)}px)`:`translateZ(${r}px)`;let u=A.current.matrixWorld;g&&(u=I.matrixWorldInverse.clone().transpose().copyPosition(u).scale(A.current.scale),u.elements[3]=u.elements[7]=u.elements[11]=0,u.elements[15]=1),V.style.width=N.width+"px",V.style.height=N.height+"px",V.style.perspective=n?"":`${r}px`,S.current&&H.current&&(S.current.style.transform=`${l}${c}translate(${e}px,${t}px)`,H.current.style.transform=v(u,1/((M||10)/400)))}else{const t=void 0===M?1:function(e,t){if(t instanceof n.OrthographicCamera)return t.zoom;if(t instanceof n.PerspectiveCamera){const r=u.setFromMatrixPosition(e.matrixWorld),n=d.setFromMatrixPosition(t.matrixWorld),o=t.fov*Math.PI/180,s=r.distanceTo(n);return 1/(2*Math.tan(o/2)*s)}return 1}(A.current,I)*M;V.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}L.current=e,D.current=I.zoom}}})),c.createElement("group",i.default({},T,{ref:A}))}));exports.Html=b;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("react-dom/client"),n=require("three"),o=require("@react-three/fiber");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var i=s(e),c=a(t),l=a(r);const u=new n.Vector3,d=new n.Vector3,f=new n.Vector3;function m(e,t,r){const n=u.setFromMatrixPosition(e.matrixWorld);n.project(t);const o=r.width/2,s=r.height/2;return[n.x*o+o,-n.y*s+s]}const p=e=>Math.abs(e)<1e-10?0:e;function h(e,t,r=""){let n="matrix3d(";for(let r=0;16!==r;r++)n+=p(t[r]*e.elements[r])+(15!==r?",":")");return r+n}const x=(y=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>h(e,y));var y;const v=(e,t)=>{return h(e,[1/(r=t),1/r,1/r,1,-1/r,-1/r,-1/r,-1,1/r,1/r,1/r,1,1,1,1,1],"translate(-50%,-50%)");var r},b=c.forwardRef((({children:e,eps:t=.001,style:r,className:s,prepend:a,center:h,fullscreen:y,portal:b,distanceFactor:M,sprite:g=!1,transform:P=!1,occlude:w,onOcclude:W,zIndexRange:$=[16777271,0],calculatePosition:E=m,as:O="div",wrapperClass:j,pointerEvents:F="auto",...T},C)=>{var R;const z=o.useThree((({gl:e})=>e)),I=o.useThree((({camera:e})=>e)),q=o.useThree((({scene:e})=>e)),N=o.useThree((({size:e})=>e)),_=o.useThree((({raycaster:e})=>e)),[V]=c.useState((()=>document.createElement(O))),k=c.useMemo((()=>l.createRoot(V)),[V]),A=c.useRef(null),D=c.useRef(0),L=c.useRef([0,0]),S=c.useRef(null),H=c.useRef(null),Z=null!==(R=null==b?void 0:b.current)&&void 0!==R?R:z.domElement.parentNode;c.useEffect((()=>{if(A.current){if(q.updateMatrixWorld(),P)V.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const e=E(A.current,I,N);V.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return Z&&(a?Z.prepend(V):Z.appendChild(V)),()=>{Z&&Z.removeChild(V),k.unmount()}}}),[Z,P]),c.useLayoutEffect((()=>{j&&(V.className=j)}),[j]);const B=c.useMemo((()=>P?{position:"absolute",top:0,left:0,width:N.width,height:N.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:h?"translate3d(-50%,-50%,0)":"none",...y&&{top:-N.height/2,left:-N.width/2,width:N.width,height:N.height},...r}),[r,h,y,N,P]),G=c.useMemo((()=>({position:"absolute",pointerEvents:F})),[F]);c.useLayoutEffect((()=>{P?k.render(c.createElement("div",{ref:S,style:B},c.createElement("div",{ref:H,style:G},c.createElement("div",{ref:C,className:s,style:r,children:e})))):k.render(c.createElement("div",{ref:C,style:B,className:s,children:e}))}));const J=c.useRef(!0);return o.useFrame((()=>{if(A.current){I.updateMatrixWorld(),A.current.updateWorldMatrix(!0,!1);const e=P?L.current:E(A.current,I,N);if(P||Math.abs(D.current-I.zoom)>t||Math.abs(L.current[0]-e[0])>t||Math.abs(L.current[1]-e[1])>t){const t=function(e,t){const r=u.setFromMatrixPosition(e.matrixWorld),n=d.setFromMatrixPosition(t.matrixWorld),o=r.sub(n),s=t.getWorldDirection(f);return o.angleTo(s)>Math.PI/2}(A.current,I);let r=!1;"boolean"==typeof w?!0===w&&(r=[q]):Array.isArray(w)&&(r=w.map((e=>e.current)));const o=J.current;if(r){const e=function(e,t,r,n){const o=u.setFromMatrixPosition(e.matrixWorld),s=o.clone();s.project(t),r.setFromCamera(s,t);const a=r.intersectObjects(n,!0);if(a.length){const e=a[0].distance;return o.distanceTo(r.ray.origin)<e}return!0}(A.current,I,_,r);J.current=e&&!t}else J.current=!t;if(o!==J.current&&(W?W(!J.current):V.style.display=J.current?"block":"none"),V.style.zIndex=`${function(e,t,r){if(t instanceof n.PerspectiveCamera||t instanceof n.OrthographicCamera){const n=u.setFromMatrixPosition(e.matrixWorld),o=d.setFromMatrixPosition(t.matrixWorld),s=n.distanceTo(o),a=(r[1]-r[0])/(t.far-t.near),i=r[1]-a*t.far;return Math.round(a*s+i)}}(A.current,I,$)}`,P){const[e,t]=[N.width/2,N.height/2],r=I.projectionMatrix.elements[5]*t,{isOrthographicCamera:n,top:o,left:s,bottom:a,right:i}=I,c=x(I.matrixWorldInverse),l=n?`scale(${r})translate(${p(-(i+s)/2)}px,${p((o+a)/2)}px)`:`translateZ(${r}px)`;let u=A.current.matrixWorld;g&&(u=I.matrixWorldInverse.clone().transpose().copyPosition(u).scale(A.current.scale),u.elements[3]=u.elements[7]=u.elements[11]=0,u.elements[15]=1),V.style.width=N.width+"px",V.style.height=N.height+"px",V.style.perspective=n?"":`${r}px`,S.current&&H.current&&(S.current.style.transform=`${l}${c}translate(${e}px,${t}px)`,H.current.style.transform=v(u,1/((M||10)/400)))}else{const t=void 0===M?1:function(e,t){if(t instanceof n.OrthographicCamera)return t.zoom;if(t instanceof n.PerspectiveCamera){const r=u.setFromMatrixPosition(e.matrixWorld),n=d.setFromMatrixPosition(t.matrixWorld),o=t.fov*Math.PI/180,s=r.distanceTo(n);return 1/(2*Math.tan(o/2)*s)}return 1}(A.current,I)*M;V.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}L.current=e,D.current=I.zoom}}})),c.createElement("group",i.default({},T,{ref:A}))}));exports.Html=b;
package/web/Html.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import _extends from '@babel/runtime/helpers/esm/extends';
2
2
  import * as React from 'react';
3
- import * as ReactDOM from 'react-dom';
3
+ import * as ReactDOM from 'react-dom/client';
4
4
  import { Vector3, OrthographicCamera, PerspectiveCamera } from 'three';
5
5
  import { useThree, useFrame } from '@react-three/fiber';
6
6
 
@@ -126,8 +126,7 @@ const Html = /*#__PURE__*/React.forwardRef(({
126
126
  const raycaster = useThree(({
127
127
  raycaster
128
128
  }) => raycaster);
129
- const [el] = React.useState(() => document.createElement(as)); // @ts-expect-error React 18 types aren't available yet
130
-
129
+ const [el] = React.useState(() => document.createElement(as));
131
130
  const root = React.useMemo(() => ReactDOM.createRoot(el), [el]);
132
131
  const group = React.useRef(null);
133
132
  const oldZoom = React.useRef(0);
@@ -201,14 +200,14 @@ const Html = /*#__PURE__*/React.forwardRef(({
201
200
  className: className,
202
201
  style: style,
203
202
  children: children
204
- }))), el);
203
+ }))));
205
204
  } else {
206
205
  root.render( /*#__PURE__*/React.createElement("div", {
207
206
  ref: ref,
208
207
  style: styles,
209
208
  className: className,
210
209
  children: children
211
- }), el);
210
+ }));
212
211
  }
213
212
  });
214
213
  const visible = React.useRef(true);
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),o=require("react-dom"),s=require("@react-three/fiber"),n=require("react-merge-refs");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var f=l(e),c=i(t),a=i(r),u=i(o),d=l(n);const p=a.createContext(null);function h(){return a.useContext(p)}const m=a.forwardRef((({children:e},t)=>{const r=a.useRef(null),o=h(),{width:n,height:l}=s.useThree((e=>e.viewport));return s.useFrame((()=>{r.current.position.x=o.horizontal?-n*(o.pages-1)*o.offset:0,r.current.position.y=o.horizontal?0:l*(o.pages-1)*o.offset})),a.createElement("group",{ref:d.default([t,r])},e)})),v=a.forwardRef((({children:e,style:t,...r},o)=>{const n=h(),l=a.useRef(null),{width:i,height:c}=s.useThree((e=>e.size)),m=a.useContext(s.context);return s.useFrame((()=>{n.delta>n.eps&&(l.current.style.transform=`translate3d(${n.horizontal?-i*(n.pages-1)*n.offset:0}px,${n.horizontal?0:c*(n.pages-1)*-n.offset}px,0)`)})),u.render(a.createElement("div",f.default({ref:d.default([o,l]),style:{...t,position:"absolute",top:0,left:0,willChange:"transform"}},r),a.createElement(p.Provider,{value:n},a.createElement(s.context.Provider,{value:m},e))),n.fixed),null})),y=a.forwardRef((({html:e,...t},r)=>{const o=e?v:m;return a.createElement(o,f.default({ref:r},t))}));exports.Scroll=y,exports.ScrollControls=function({eps:e=1e-5,enabled:t=!0,infinite:r,horizontal:o,pages:n=1,distance:l=1,damping:i=4,style:f={},children:u}){const{gl:d,size:h,invalidate:m,events:v,raycaster:y}=s.useThree(),[g]=a.useState((()=>document.createElement("div"))),[w]=a.useState((()=>document.createElement("div"))),[x]=a.useState((()=>document.createElement("div"))),E=d.domElement.parentNode,b=a.useRef(0),L=a.useMemo((()=>({el:g,eps:e,fill:w,fixed:x,horizontal:o,damping:i,offset:0,delta:0,scroll:b,pages:n,range(e,t,r=0){const o=e-r,s=o+t+2*r;return this.offset<o?0:this.offset>s?1:(this.offset-o)/(s-o)},curve(e,t,r=0){return Math.sin(this.range(e,t,r)*Math.PI)},visible(e,t,r=0){const o=e-r,s=o+t+2*r;return this.offset>=o&&this.offset<=s}})),[e,i,o,n]);a.useEffect((()=>{g.style.position="absolute",g.style.width="100%",g.style.height="100%",g.style[o?"overflowX":"overflowY"]="auto",g.style[o?"overflowY":"overflowX"]="hidden",g.style.top="0px",g.style.left="0px";for(const e in f)g.style[e]=f[e];x.style.position="sticky",x.style.top="0px",x.style.left="0px",x.style.width="100%",x.style.height="100%",x.style.overflow="hidden",g.appendChild(x),w.style.height=o?"100%":n*l*100+"%",w.style.width=o?n*l*100+"%":"100%",w.style.pointerEvents="none",g.appendChild(w),E.appendChild(g),g[o?"scrollLeft":"scrollTop"]=1;const e="boolean"!=typeof v.connected?v.connected:d.domElement;requestAnimationFrame((()=>null==v.connect?void 0:v.connect(g)));const t=y.computeOffsets;return y.computeOffsets=({clientX:e,clientY:t})=>({offsetX:e-E.offsetLeft,offsetY:t-E.offsetTop}),()=>{E.removeChild(g),y.computeOffsets=t,null==v.connect||v.connect(e)}}),[n,l,o,g,w,x,E]),a.useEffect((()=>{const e=h[o?"width":"height"],s=g[o?"scrollWidth":"scrollHeight"],n=s-e;let l=0,i=!0,f=!0;const c=()=>{if(t&&!f&&(m(),l=g[o?"scrollLeft":"scrollTop"],b.current=l/n,r)){if(!i)if(l>=n){const e=1-L.offset;g[o?"scrollLeft":"scrollTop"]=1,b.current=L.offset=-e,i=!0}else if(l<=0){const e=1+L.offset;g[o?"scrollLeft":"scrollTop"]=s,b.current=L.offset=e,i=!0}i&&setTimeout((()=>i=!1),40)}};g.addEventListener("scroll",c,{passive:!0}),requestAnimationFrame((()=>f=!1));const a=e=>g.scrollLeft+=e.deltaY/2;return o&&g.addEventListener("wheel",a,{passive:!0}),()=>{g.removeEventListener("scroll",c),o&&g.removeEventListener("wheel",a)}}),[g,h,r,L,m,o]);let O=0;return s.useFrame(((t,r)=>{L.offset=c.MathUtils.damp(O=L.offset,b.current,i,r),L.delta=c.MathUtils.damp(L.delta,Math.abs(O-L.offset),i,r),L.delta>e&&m()})),a.createElement(p.Provider,{value:L},u)},exports.useScroll=h;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),o=require("react-dom/client"),s=require("@react-three/fiber"),n=require("react-merge-refs");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var f=l(e),c=i(t),a=i(r),u=i(o),d=l(n);const h=a.createContext(null);function p(){return a.useContext(h)}const m=a.forwardRef((({children:e},t)=>{const r=a.useRef(null),o=p(),{width:n,height:l}=s.useThree((e=>e.viewport));return s.useFrame((()=>{r.current.position.x=o.horizontal?-n*(o.pages-1)*o.offset:0,r.current.position.y=o.horizontal?0:l*(o.pages-1)*o.offset})),a.createElement("group",{ref:d.default([t,r])},e)})),v=a.forwardRef((({children:e,style:t,...r},o)=>{const n=p(),l=a.useRef(null),{width:i,height:c}=s.useThree((e=>e.size)),m=a.useContext(s.context),v=a.useMemo((()=>u.createRoot(n.fixed)),[n.fixed]);return s.useFrame((()=>{n.delta>n.eps&&(l.current.style.transform=`translate3d(${n.horizontal?-i*(n.pages-1)*n.offset:0}px,${n.horizontal?0:c*(n.pages-1)*-n.offset}px,0)`)})),v.render(a.createElement("div",f.default({ref:d.default([o,l]),style:{...t,position:"absolute",top:0,left:0,willChange:"transform"}},r),a.createElement(h.Provider,{value:n},a.createElement(s.context.Provider,{value:m},e)))),null})),y=a.forwardRef((({html:e,...t},r)=>{const o=e?v:m;return a.createElement(o,f.default({ref:r},t))}));exports.Scroll=y,exports.ScrollControls=function({eps:e=1e-5,enabled:t=!0,infinite:r,horizontal:o,pages:n=1,distance:l=1,damping:i=4,style:f={},children:u}){const{gl:d,size:p,invalidate:m,events:v,raycaster:y}=s.useThree(),[g]=a.useState((()=>document.createElement("div"))),[x]=a.useState((()=>document.createElement("div"))),[w]=a.useState((()=>document.createElement("div"))),E=d.domElement.parentNode,b=a.useRef(0),L=a.useMemo((()=>({el:g,eps:e,fill:x,fixed:w,horizontal:o,damping:i,offset:0,delta:0,scroll:b,pages:n,range(e,t,r=0){const o=e-r,s=o+t+2*r;return this.offset<o?0:this.offset>s?1:(this.offset-o)/(s-o)},curve(e,t,r=0){return Math.sin(this.range(e,t,r)*Math.PI)},visible(e,t,r=0){const o=e-r,s=o+t+2*r;return this.offset>=o&&this.offset<=s}})),[e,i,o,n]);a.useEffect((()=>{g.style.position="absolute",g.style.width="100%",g.style.height="100%",g.style[o?"overflowX":"overflowY"]="auto",g.style[o?"overflowY":"overflowX"]="hidden",g.style.top="0px",g.style.left="0px";for(const e in f)g.style[e]=f[e];w.style.position="sticky",w.style.top="0px",w.style.left="0px",w.style.width="100%",w.style.height="100%",w.style.overflow="hidden",g.appendChild(w),x.style.height=o?"100%":n*l*100+"%",x.style.width=o?n*l*100+"%":"100%",x.style.pointerEvents="none",g.appendChild(x),E.appendChild(g),g[o?"scrollLeft":"scrollTop"]=1;const e=v.connected||d.domElement;requestAnimationFrame((()=>null==v.connect?void 0:v.connect(g)));const t=y.computeOffsets;return y.computeOffsets=({clientX:e,clientY:t})=>({offsetX:e-E.offsetLeft,offsetY:t-E.offsetTop}),()=>{E.removeChild(g),y.computeOffsets=t,null==v.connect||v.connect(e)}}),[n,l,o,g,x,w,E]),a.useEffect((()=>{const e=p[o?"width":"height"],s=g[o?"scrollWidth":"scrollHeight"],n=s-e;let l=0,i=!0,f=!0;const c=()=>{if(t&&!f&&(m(),l=g[o?"scrollLeft":"scrollTop"],b.current=l/n,r)){if(!i)if(l>=n){const e=1-L.offset;g[o?"scrollLeft":"scrollTop"]=1,b.current=L.offset=-e,i=!0}else if(l<=0){const e=1+L.offset;g[o?"scrollLeft":"scrollTop"]=s,b.current=L.offset=e,i=!0}i&&setTimeout((()=>i=!1),40)}};g.addEventListener("scroll",c,{passive:!0}),requestAnimationFrame((()=>f=!1));const a=e=>g.scrollLeft+=e.deltaY/2;return o&&g.addEventListener("wheel",a,{passive:!0}),()=>{g.removeEventListener("scroll",c),o&&g.removeEventListener("wheel",a)}}),[g,p,r,L,m,o,t]);let O=0;return s.useFrame(((t,r)=>{L.offset=c.MathUtils.damp(O=L.offset,b.current,i,r),L.delta=c.MathUtils.damp(L.delta,Math.abs(O-L.offset),i,r),L.delta>e&&m()})),a.createElement(h.Provider,{value:L},u)},exports.useScroll=p;
@@ -1,7 +1,7 @@
1
1
  import _extends from '@babel/runtime/helpers/esm/extends';
2
2
  import * as THREE from 'three';
3
3
  import * as React from 'react';
4
- import * as ReactDOM from 'react-dom';
4
+ import * as ReactDOM from 'react-dom/client';
5
5
  import { useThree, useFrame, context as context$1 } from '@react-three/fiber';
6
6
  import mergeRefs from 'react-merge-refs';
7
7
 
@@ -94,7 +94,7 @@ function ScrollControls({
94
94
  target.appendChild(el); // Init scroll one pixel in to allow upward/leftward scroll
95
95
 
96
96
  el[horizontal ? 'scrollLeft' : 'scrollTop'] = 1;
97
- const oldTarget = typeof events.connected !== 'boolean' ? events.connected : gl.domElement;
97
+ const oldTarget = events.connected || gl.domElement;
98
98
  requestAnimationFrame(() => events.connect == null ? void 0 : events.connect(el));
99
99
  const oldCompute = raycaster.computeOffsets;
100
100
 
@@ -160,7 +160,7 @@ function ScrollControls({
160
160
  el.removeEventListener('scroll', onScroll);
161
161
  if (horizontal) el.removeEventListener('wheel', onWheel);
162
162
  };
163
- }, [el, size, infinite, state, invalidate, horizontal]);
163
+ }, [el, size, infinite, state, invalidate, horizontal, enabled]);
164
164
  let last = 0;
165
165
  useFrame((_, delta) => {
166
166
  state.offset = THREE.MathUtils.damp(last = state.offset, scroll.current, damping, delta);
@@ -200,12 +200,13 @@ const ScrollHtml = /*#__PURE__*/React.forwardRef(({
200
200
  height
201
201
  } = useThree(state => state.size);
202
202
  const fiberState = React.useContext(context$1);
203
+ const root = React.useMemo(() => ReactDOM.createRoot(state.fixed), [state.fixed]);
203
204
  useFrame(() => {
204
205
  if (state.delta > state.eps) {
205
206
  group.current.style.transform = `translate3d(${state.horizontal ? -width * (state.pages - 1) * state.offset : 0}px,${state.horizontal ? 0 : height * (state.pages - 1) * -state.offset}px,0)`;
206
207
  }
207
208
  });
208
- ReactDOM.render( /*#__PURE__*/React.createElement("div", _extends({
209
+ root.render( /*#__PURE__*/React.createElement("div", _extends({
209
210
  ref: mergeRefs([ref, group]),
210
211
  style: { ...style,
211
212
  position: 'absolute',
@@ -217,7 +218,7 @@ const ScrollHtml = /*#__PURE__*/React.forwardRef(({
217
218
  value: state
218
219
  }, /*#__PURE__*/React.createElement(context$1.Provider, {
219
220
  value: fiberState
220
- }, children))), state.fixed);
221
+ }, children))));
221
222
  return null;
222
223
  });
223
224
  const Scroll = /*#__PURE__*/React.forwardRef(({
package/web/Select.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),n=require("three"),r=require("three-stdlib"),o=require("@react-three/fiber"),i=require("zustand/shallow");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u=l(e),c=s(t),a=s(n),d=l(i);const f=c.createContext([]);exports.Select=function({box:e,multiple:t,children:n,onChange:i,border:l="1px solid #55aaff",backgroundColor:s="rgba(75, 160, 255, 0.1)",...p}){const{camera:v,raycaster:b,gl:m,controls:y,size:h,get:x}=o.useThree(),[E,g]=c.useState(!1),[j,w]=c.useReducer(((e,{object:t,shift:n})=>void 0===t?[]:Array.isArray(t)?t:n?e.includes(t)?e.filter((e=>e!==t)):[t,...e]:e[0]===t?[]:[t]),[]);c.useEffect((()=>{null==i||i(j)}),[j]);const O=c.useCallback((e=>{e.stopPropagation(),w({object:e.object,shift:t&&e.shiftKey})}),[]),C=c.useCallback((e=>!E&&w({})),[E]),P=c.useRef(null);return c.useEffect((()=>{if(!e||!t)return;const n=new r.SelectionBox(v,P.current),o=document.createElement("div");o.style.pointerEvents="none",o.style.border=l,o.style.backgroundColor=s,o.style.position="fixed";const i=new a.Vector2,u=new a.Vector2,c=new a.Vector2,f=b.enabled,p=null==y?void 0:y.enabled;let E=!1;function g(e,t){var n;const{offsetX:r,offsetY:o}=null!==(n=null==b.computeOffsets?void 0:b.computeOffsets(e,x()))&&void 0!==n?n:e,{width:i,height:l}=h;t.set(r/i*2-1,-o/l*2+1)}function j(e){e.shiftKey&&(!function(e){var t;y&&(y.enabled=!1),b.enabled=!1,E=!0,null==(t=m.domElement.parentElement)||t.appendChild(o),o.style.left=`${e.clientX}px`,o.style.top=`${e.clientY}px`,o.style.width="0px",o.style.height="0px",i.x=e.clientX,i.y=e.clientY}(e),g(e,n.startPoint))}let O=[];function C(e){if(E){!function(e){c.x=Math.max(i.x,e.clientX),c.y=Math.max(i.y,e.clientY),u.x=Math.min(i.x,e.clientX),u.y=Math.min(i.y,e.clientY),o.style.left=`${u.x}px`,o.style.top=`${u.y}px`,o.style.width=c.x-u.x+"px",o.style.height=c.y-u.y+"px"}(e),g(e,n.endPoint);const t=n.select().sort((e=>e.uuid)).filter((e=>e.isMesh));d.default(t,O)||(O=t,w({object:t}))}}function M(e){var t;E&&E&&(y&&(y.enabled=p),b.enabled=f,E=!1,null==(t=o.parentElement)||t.removeChild(o))}return document.addEventListener("pointerdown",j,{passive:!0}),document.addEventListener("pointermove",C,{passive:!0,capture:!0}),document.addEventListener("pointerup",M,{passive:!0}),()=>{document.removeEventListener("pointerdown",j),document.removeEventListener("pointermove",C),document.removeEventListener("pointerup",M)}}),[h,b,v,y,m]),c.createElement("group",u.default({ref:P,onClick:O,onPointerOver:()=>g(!0),onPointerOut:()=>g(!1),onPointerMissed:C},p),c.createElement(f.Provider,{value:j},n))},exports.useSelect=function(){return c.useContext(f)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),n=require("three"),r=require("three-stdlib"),o=require("@react-three/fiber"),i=require("zustand/shallow");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u=l(e),c=s(t),a=s(n),d=l(i);const f=c.createContext([]);exports.Select=function({box:e,multiple:t,children:n,onChange:i,border:l="1px solid #55aaff",backgroundColor:s="rgba(75, 160, 255, 0.1)",filter:p=(e=>e),...v}){const{camera:b,raycaster:m,gl:y,controls:h,size:x,get:E}=o.useThree(),[g,j]=c.useState(!1),[w,O]=c.useReducer(((e,{object:t,shift:n})=>void 0===t?[]:Array.isArray(t)?t:n?e.includes(t)?e.filter((e=>e!==t)):[t,...e]:e[0]===t?[]:[t]),[]);c.useEffect((()=>{null==i||i(w)}),[w]);const C=c.useCallback((e=>{e.stopPropagation(),O({object:p([e.object])[0],shift:t&&e.shiftKey})}),[]),P=c.useCallback((e=>!g&&O({})),[g]),M=c.useRef(null);return c.useEffect((()=>{if(!e||!t)return;const n=new r.SelectionBox(b,M.current),o=document.createElement("div");o.style.pointerEvents="none",o.style.border=l,o.style.backgroundColor=s,o.style.position="fixed";const i=new a.Vector2,u=new a.Vector2,c=new a.Vector2,f=m.enabled,v=null==h?void 0:h.enabled;let g=!1;function j(e,t){var n;const{offsetX:r,offsetY:o}=null!==(n=null==m.computeOffsets?void 0:m.computeOffsets(e,E()))&&void 0!==n?n:e,{width:i,height:l}=x;t.set(r/i*2-1,-o/l*2+1)}function w(e){e.shiftKey&&(!function(e){var t;h&&(h.enabled=!1),m.enabled=!1,g=!0,null==(t=y.domElement.parentElement)||t.appendChild(o),o.style.left=`${e.clientX}px`,o.style.top=`${e.clientY}px`,o.style.width="0px",o.style.height="0px",i.x=e.clientX,i.y=e.clientY}(e),j(e,n.startPoint))}let C=[];function P(e){if(g){!function(e){c.x=Math.max(i.x,e.clientX),c.y=Math.max(i.y,e.clientY),u.x=Math.min(i.x,e.clientX),u.y=Math.min(i.y,e.clientY),o.style.left=`${u.x}px`,o.style.top=`${u.y}px`,o.style.width=c.x-u.x+"px",o.style.height=c.y-u.y+"px"}(e),j(e,n.endPoint);const t=n.select().sort((e=>e.uuid)).filter((e=>e.isMesh));d.default(t,C)||(C=t,O({object:p(t)}))}}function k(e){var t;g&&g&&(h&&(h.enabled=v),m.enabled=f,g=!1,null==(t=o.parentElement)||t.removeChild(o))}return document.addEventListener("pointerdown",w,{passive:!0}),document.addEventListener("pointermove",P,{passive:!0,capture:!0}),document.addEventListener("pointerup",k,{passive:!0}),()=>{document.removeEventListener("pointerdown",w),document.removeEventListener("pointermove",P),document.removeEventListener("pointerup",k)}}),[x,m,b,h,y]),c.createElement("group",u.default({ref:M,onClick:C,onPointerOver:()=>j(!0),onPointerOut:()=>j(!1),onPointerMissed:P},v),c.createElement(f.Provider,{value:w},n))},exports.useSelect=function(){return c.useContext(f)};
package/web/Select.d.ts CHANGED
@@ -6,7 +6,8 @@ declare type Props = JSX.IntrinsicElements['group'] & {
6
6
  border?: string;
7
7
  backgroundColor?: string;
8
8
  onChange?: (selected: THREE.Object3D[]) => void;
9
+ filter?: (selected: THREE.Object3D[]) => THREE.Object3D[];
9
10
  };
10
- export declare function Select({ box, multiple, children, onChange, border, backgroundColor, ...props }: Props): JSX.Element;
11
+ export declare function Select({ box, multiple, children, onChange, border, backgroundColor, filter: customFilter, ...props }: Props): JSX.Element;
11
12
  export declare function useSelect(): THREE.Object3D<THREE.Event>[];
12
13
  export {};
package/web/Select.js CHANGED
@@ -13,6 +13,7 @@ function Select({
13
13
  onChange,
14
14
  border = '1px solid #55aaff',
15
15
  backgroundColor = 'rgba(75, 160, 255, 0.1)',
16
+ filter: customFilter = item => item,
16
17
  ...props
17
18
  }) {
18
19
  const {
@@ -34,7 +35,7 @@ function Select({
34
35
  const onClick = React.useCallback(e => {
35
36
  e.stopPropagation();
36
37
  dispatch({
37
- object: e.object,
38
+ object: customFilter([e.object])[0],
38
39
  shift: multiple && e.shiftKey
39
40
  });
40
41
  }, []);
@@ -126,7 +127,7 @@ function Select({
126
127
  if (!shallow(allSelected, previous)) {
127
128
  previous = allSelected;
128
129
  dispatch({
129
- object: allSelected
130
+ object: customFilter(allSelected)
130
131
  });
131
132
  }
132
133
  }
package/web/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Html.cjs.js"),r=require("./CycleRaycast.cjs.js"),s=require("./useCursor.cjs.js"),o=require("./Loader.cjs.js"),t=require("./ScrollControls.cjs.js"),i=require("./PresentationControls.cjs.js"),c=require("./Select.cjs.js"),u=require("../core/Billboard.cjs.js"),a=require("../core/QuadraticBezierLine.cjs.js"),j=require("../core/CubicBezierLine.cjs.js"),n=require("../core/Line.cjs.js"),p=require("../core/PositionalAudio.cjs.js"),l=require("../core/Text.cjs.js"),x=require("../core/Effects.cjs.js"),q=require("../core/GradientTexture.cjs.js"),d=require("../core/Image.cjs.js"),C=require("../core/Edges.cjs.js"),h=require("../core/OrthographicCamera.cjs.js"),m=require("../core/PerspectiveCamera.cjs.js"),S=require("../core/CubeCamera.cjs.js"),B=require("../core/DeviceOrientationControls.cjs.js"),b=require("../core/FlyControls.cjs.js"),P=require("../core/MapControls.cjs.js"),M=require("../core/OrbitControls.cjs.js"),f=require("../core/TrackballControls.cjs.js"),T=require("../core/ArcballControls.cjs.js"),g=require("../core/TransformControls.cjs.js"),v=require("../core/PointerLockControls.cjs.js"),L=require("../core/FirstPersonControls.cjs.js"),A=require("../core/GizmoHelper.cjs.js"),G=require("../core/GizmoViewcube.cjs.js"),k=require("../core/GizmoViewport.cjs.js"),D=require("../core/useCubeTexture.cjs.js"),F=require("../core/useFBX.cjs.js"),w=require("../core/useGLTF.cjs.js"),z=require("../core/useProgress.cjs.js"),y=require("../core/useTexture.cjs.js"),I=require("../core/useKTX2.cjs.js"),O=require("../core/Stats.cjs.js"),E=require("../core/useDepthBuffer.cjs.js"),R=require("../core/useAspect.cjs.js"),H=require("../core/useCamera.cjs.js"),V=require("../core/useDetectGPU.cjs.js"),Q=require("../core/useHelper.cjs.js"),X=require("../core/useBVH.cjs.js"),K=require("../core/useContextBridge.cjs.js"),W=require("../core/useAnimations.cjs.js"),N=require("../core/useFBO.cjs.js"),U=require("../core/useIntersect.cjs.js"),_=require("../core/CurveModifier.cjs.js"),J=require("../core/MeshDistortMaterial.cjs.js"),Y=require("../core/MeshWobbleMaterial.cjs.js"),Z=require("../core/MeshReflectorMaterial.cjs.js"),$=require("../core/PointMaterial.cjs.js"),ee=require("../core/shaderMaterial.cjs.js"),re=require("../core/softShadows.cjs.js"),se=require("../core/shapes.cjs.js"),oe=require("../core/RoundedBox.cjs.js"),te=require("../core/ScreenQuad.cjs.js"),ie=require("../core/Center.cjs.js"),ce=require("../core/Bounds.cjs.js"),ue=require("../core/CameraShake.cjs.js"),ae=require("../core/Float.cjs.js"),je=require("../core/Stage.cjs.js"),ne=require("../core/Backdrop.cjs.js"),pe=require("../core/Shadow.cjs.js"),le=require("../core/ContactShadows.cjs.js"),xe=require("../core/Reflector.cjs.js"),qe=require("../core/SpotLight.cjs.js"),de=require("../core/Environment.cjs.js"),Ce=require("../core/Sky.cjs.js"),he=require("../core/Stars.cjs.js"),me=require("../core/Cloud.cjs.js"),Se=require("../core/useMatcapTexture.cjs.js"),Be=require("../core/useNormalTexture.cjs.js"),be=require("../core/Points.cjs.js"),Pe=require("../core/Instances.cjs.js"),Me=require("../core/Segments.cjs.js"),fe=require("../core/Detailed.cjs.js"),Te=require("../core/Preload.cjs.js"),ge=require("../core/BakeShadows.cjs.js"),ve=require("../core/meshBounds.cjs.js"),Le=require("../core/AdaptiveDpr.cjs.js"),Ae=require("../core/AdaptiveEvents.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("react-dom"),require("three"),require("@react-three/fiber"),require("zustand"),require("react-merge-refs"),require("@react-spring/three"),require("@use-gesture/react"),require("three-stdlib"),require("zustand/shallow"),require("troika-three-text"),require("lodash.omit"),require("lodash.pick"),require("three/examples/js/libs/stats.min"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("use-asset"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Html=e.Html,exports.CycleRaycast=r.CycleRaycast,exports.useCursor=s.useCursor,exports.Loader=o.Loader,exports.Scroll=t.Scroll,exports.ScrollControls=t.ScrollControls,exports.useScroll=t.useScroll,exports.PresentationControls=i.PresentationControls,exports.Select=c.Select,exports.useSelect=c.useSelect,exports.Billboard=u.Billboard,exports.QuadraticBezierLine=a.QuadraticBezierLine,exports.CubicBezierLine=j.CubicBezierLine,exports.Line=n.Line,exports.PositionalAudio=p.PositionalAudio,exports.Text=l.Text,exports.Effects=x.Effects,exports.isWebGL2Available=x.isWebGL2Available,exports.GradientTexture=q.GradientTexture,exports.Image=d.Image,exports.Edges=C.Edges,exports.OrthographicCamera=h.OrthographicCamera,exports.PerspectiveCamera=m.PerspectiveCamera,exports.CubeCamera=S.CubeCamera,exports.DeviceOrientationControls=B.DeviceOrientationControls,exports.FlyControls=b.FlyControls,exports.MapControls=P.MapControls,exports.OrbitControls=M.OrbitControls,exports.TrackballControls=f.TrackballControls,exports.ArcballControls=T.ArcballControls,exports.TransformControls=g.TransformControls,exports.PointerLockControls=v.PointerLockControls,exports.FirstPersonControls=L.FirstPersonControls,exports.GizmoHelper=A.GizmoHelper,exports.useGizmoContext=A.useGizmoContext,exports.GizmoViewcube=G.GizmoViewcube,exports.GizmoViewport=k.GizmoViewport,exports.useCubeTexture=D.useCubeTexture,exports.useFBX=F.useFBX,exports.useGLTF=w.useGLTF,exports.useProgress=z.useProgress,exports.IsObject=y.IsObject,exports.useTexture=y.useTexture,exports.useKTX2=I.useKTX2,exports.Stats=O.Stats,exports.useDepthBuffer=E.useDepthBuffer,exports.useAspect=R.useAspect,exports.useCamera=H.useCamera,exports.useDetectGPU=V.useDetectGPU,exports.useHelper=Q.useHelper,exports.useBVH=X.useBVH,exports.useContextBridge=K.useContextBridge,exports.useAnimations=W.useAnimations,exports.useFBO=N.useFBO,exports.useIntersect=U.useIntersect,exports.CurveModifier=_.CurveModifier,exports.MeshDistortMaterial=J.MeshDistortMaterial,exports.MeshWobbleMaterial=Y.MeshWobbleMaterial,exports.MeshReflectorMaterial=Z.MeshReflectorMaterial,exports.PointMaterial=$.PointMaterial,exports.PointMaterialImpl=$.PointMaterialImpl,exports.shaderMaterial=ee.shaderMaterial,exports.softShadows=re.softShadows,exports.Box=se.Box,exports.Circle=se.Circle,exports.Cone=se.Cone,exports.Cylinder=se.Cylinder,exports.Dodecahedron=se.Dodecahedron,exports.Extrude=se.Extrude,exports.Icosahedron=se.Icosahedron,exports.Lathe=se.Lathe,exports.Octahedron=se.Octahedron,exports.Plane=se.Plane,exports.Polyhedron=se.Polyhedron,exports.Ring=se.Ring,exports.Sphere=se.Sphere,exports.Tetrahedron=se.Tetrahedron,exports.Torus=se.Torus,exports.TorusKnot=se.TorusKnot,exports.Tube=se.Tube,exports.RoundedBox=oe.RoundedBox,exports.ScreenQuad=te.ScreenQuad,exports.Center=ie.Center,exports.Bounds=ce.Bounds,exports.useBounds=ce.useBounds,exports.CameraShake=ue.CameraShake,exports.Float=ae.Float,exports.Stage=je.Stage,exports.Backdrop=ne.Backdrop,exports.Shadow=pe.Shadow,exports.ContactShadows=le.ContactShadows,exports.Reflector=xe.Reflector,exports.SpotLight=qe.SpotLight,exports.Environment=de.Environment,exports.Sky=Ce.Sky,exports.calcPosFromAngles=Ce.calcPosFromAngles,exports.Stars=he.Stars,exports.Cloud=me.Cloud,exports.useMatcapTexture=Se.useMatcapTexture,exports.useNormalTexture=Be.useNormalTexture,exports.Point=be.Point,exports.Points=be.Points,exports.PointsBuffer=be.PointsBuffer,exports.Instance=Pe.Instance,exports.Instances=Pe.Instances,exports.Merged=Pe.Merged,exports.Segment=Me.Segment,exports.Segments=Me.Segments,exports.Detailed=fe.Detailed,exports.Preload=Te.Preload,exports.BakeShadows=ge.BakeShadows,exports.meshBounds=ve.meshBounds,exports.AdaptiveDpr=Le.AdaptiveDpr,exports.AdaptiveEvents=Ae.AdaptiveEvents;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Html.cjs.js"),r=require("./CycleRaycast.cjs.js"),s=require("./useCursor.cjs.js"),o=require("./Loader.cjs.js"),t=require("./ScrollControls.cjs.js"),i=require("./PresentationControls.cjs.js"),c=require("./Select.cjs.js"),u=require("../core/Billboard.cjs.js"),a=require("../core/QuadraticBezierLine.cjs.js"),n=require("../core/CubicBezierLine.cjs.js"),j=require("../core/Line.cjs.js"),p=require("../core/PositionalAudio.cjs.js"),l=require("../core/Text.cjs.js"),x=require("../core/Effects.cjs.js"),q=require("../core/GradientTexture.cjs.js"),d=require("../core/Image.cjs.js"),C=require("../core/Edges.cjs.js"),m=require("../core/Trail.cjs.js"),h=require("../core/Sampler.cjs.js"),S=require("../core/ComputedAttribute.cjs.js"),P=require("../core/Clone.cjs.js"),b=require("../core/OrthographicCamera.cjs.js"),B=require("../core/PerspectiveCamera.cjs.js"),M=require("../core/CubeCamera.cjs.js"),T=require("../core/DeviceOrientationControls.cjs.js"),f=require("../core/FlyControls.cjs.js"),g=require("../core/MapControls.cjs.js"),v=require("../core/OrbitControls.cjs.js"),L=require("../core/TrackballControls.cjs.js"),A=require("../core/ArcballControls.cjs.js"),E=require("../core/TransformControls.cjs.js"),G=require("../core/PointerLockControls.cjs.js"),k=require("../core/FirstPersonControls.cjs.js"),D=require("../core/GizmoHelper.cjs.js"),F=require("../core/GizmoViewcube.cjs.js"),w=require("../core/GizmoViewport.cjs.js"),z=require("../core/useCubeTexture.cjs.js"),y=require("../core/useFBX.cjs.js"),I=require("../core/useGLTF.cjs.js"),O=require("../core/useProgress.cjs.js"),R=require("../core/useTexture.cjs.js"),H=require("../core/useKTX2.cjs.js"),V=require("../core/Stats.cjs.js"),Q=require("../core/useDepthBuffer.cjs.js"),X=require("../core/useAspect.cjs.js"),K=require("../core/useCamera.cjs.js"),W=require("../core/useDetectGPU.cjs.js"),N=require("../core/useHelper.cjs.js"),U=require("../core/useBVH.cjs.js"),_=require("../core/useContextBridge.cjs.js"),J=require("../core/useAnimations.cjs.js"),Y=require("../core/useFBO.cjs.js"),Z=require("../core/useIntersect.cjs.js"),$=require("../core/useBoxProjectedEnv.cjs.js"),ee=require("../core/CurveModifier.cjs.js"),re=require("../core/MeshDistortMaterial.cjs.js"),se=require("../core/MeshWobbleMaterial.cjs.js"),oe=require("../core/MeshReflectorMaterial.cjs.js"),te=require("../core/PointMaterial.cjs.js"),ie=require("../core/shaderMaterial.cjs.js"),ce=require("../core/softShadows.cjs.js"),ue=require("../core/shapes.cjs.js"),ae=require("../core/RoundedBox.cjs.js"),ne=require("../core/ScreenQuad.cjs.js"),je=require("../core/Center.cjs.js"),pe=require("../core/Bounds.cjs.js"),le=require("../core/CameraShake.cjs.js"),xe=require("../core/Float.cjs.js"),qe=require("../core/Stage.cjs.js"),de=require("../core/Backdrop.cjs.js"),Ce=require("../core/Shadow.cjs.js"),me=require("../core/ContactShadows.cjs.js"),he=require("../core/Reflector.cjs.js"),Se=require("../core/SpotLight.cjs.js"),Pe=require("../core/Environment.cjs.js"),be=require("../core/Lightformer.cjs.js"),Be=require("../core/Sky.cjs.js"),Me=require("../core/Stars.cjs.js"),Te=require("../core/Cloud.cjs.js"),fe=require("../core/useMatcapTexture.cjs.js"),ge=require("../core/useNormalTexture.cjs.js"),ve=require("../core/Points.cjs.js"),Le=require("../core/Instances.cjs.js"),Ae=require("../core/Segments.cjs.js"),Ee=require("../core/Detailed.cjs.js"),Ge=require("../core/Preload.cjs.js"),ke=require("../core/BakeShadows.cjs.js"),De=require("../core/meshBounds.cjs.js"),Fe=require("../core/AdaptiveDpr.cjs.js"),we=require("../core/AdaptiveEvents.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("react-dom/client"),require("three"),require("@react-three/fiber"),require("zustand"),require("react-merge-refs"),require("@react-spring/three"),require("@use-gesture/react"),require("three-stdlib"),require("zustand/shallow"),require("troika-three-text"),require("suspend-react"),require("meshline"),require("lodash.pick"),require("lodash.omit"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Html=e.Html,exports.CycleRaycast=r.CycleRaycast,exports.useCursor=s.useCursor,exports.Loader=o.Loader,exports.Scroll=t.Scroll,exports.ScrollControls=t.ScrollControls,exports.useScroll=t.useScroll,exports.PresentationControls=i.PresentationControls,exports.Select=c.Select,exports.useSelect=c.useSelect,exports.Billboard=u.Billboard,exports.QuadraticBezierLine=a.QuadraticBezierLine,exports.CubicBezierLine=n.CubicBezierLine,exports.Line=j.Line,exports.PositionalAudio=p.PositionalAudio,exports.Text=l.Text,exports.Effects=x.Effects,exports.isWebGL2Available=x.isWebGL2Available,exports.GradientTexture=q.GradientTexture,exports.Image=d.Image,exports.Edges=C.Edges,exports.Trail=m.Trail,exports.useTrail=m.useTrail,exports.Sampler=h.Sampler,exports.ComputedAttribute=S.ComputedAttribute,exports.Clone=P.Clone,exports.OrthographicCamera=b.OrthographicCamera,exports.PerspectiveCamera=B.PerspectiveCamera,exports.CubeCamera=M.CubeCamera,exports.DeviceOrientationControls=T.DeviceOrientationControls,exports.FlyControls=f.FlyControls,exports.MapControls=g.MapControls,exports.OrbitControls=v.OrbitControls,exports.TrackballControls=L.TrackballControls,exports.ArcballControls=A.ArcballControls,exports.TransformControls=E.TransformControls,exports.PointerLockControls=G.PointerLockControls,exports.FirstPersonControls=k.FirstPersonControls,exports.GizmoHelper=D.GizmoHelper,exports.useGizmoContext=D.useGizmoContext,exports.GizmoViewcube=F.GizmoViewcube,exports.GizmoViewport=w.GizmoViewport,exports.useCubeTexture=z.useCubeTexture,exports.useFBX=y.useFBX,exports.useGLTF=I.useGLTF,exports.useProgress=O.useProgress,exports.IsObject=R.IsObject,exports.useTexture=R.useTexture,exports.useKTX2=H.useKTX2,exports.Stats=V.Stats,exports.useDepthBuffer=Q.useDepthBuffer,exports.useAspect=X.useAspect,exports.useCamera=K.useCamera,exports.useDetectGPU=W.useDetectGPU,exports.useHelper=N.useHelper,exports.useBVH=U.useBVH,exports.useContextBridge=_.useContextBridge,exports.useAnimations=J.useAnimations,exports.useFBO=Y.useFBO,exports.useIntersect=Z.useIntersect,exports.useBoxProjectedEnv=$.useBoxProjectedEnv,exports.CurveModifier=ee.CurveModifier,exports.MeshDistortMaterial=re.MeshDistortMaterial,exports.MeshWobbleMaterial=se.MeshWobbleMaterial,exports.MeshReflectorMaterial=oe.MeshReflectorMaterial,exports.PointMaterial=te.PointMaterial,exports.PointMaterialImpl=te.PointMaterialImpl,exports.shaderMaterial=ie.shaderMaterial,exports.softShadows=ce.softShadows,exports.Box=ue.Box,exports.Circle=ue.Circle,exports.Cone=ue.Cone,exports.Cylinder=ue.Cylinder,exports.Dodecahedron=ue.Dodecahedron,exports.Extrude=ue.Extrude,exports.Icosahedron=ue.Icosahedron,exports.Lathe=ue.Lathe,exports.Octahedron=ue.Octahedron,exports.Plane=ue.Plane,exports.Polyhedron=ue.Polyhedron,exports.Ring=ue.Ring,exports.Sphere=ue.Sphere,exports.Tetrahedron=ue.Tetrahedron,exports.Torus=ue.Torus,exports.TorusKnot=ue.TorusKnot,exports.Tube=ue.Tube,exports.RoundedBox=ae.RoundedBox,exports.ScreenQuad=ne.ScreenQuad,exports.Center=je.Center,exports.Bounds=pe.Bounds,exports.useBounds=pe.useBounds,exports.CameraShake=le.CameraShake,exports.Float=xe.Float,exports.Stage=qe.Stage,exports.Backdrop=de.Backdrop,exports.Shadow=Ce.Shadow,exports.ContactShadows=me.ContactShadows,exports.Reflector=he.Reflector,exports.SpotLight=Se.SpotLight,exports.Environment=Pe.Environment,exports.EnvironmentCube=Pe.EnvironmentCube,exports.EnvironmentMap=Pe.EnvironmentMap,exports.EnvironmentPortal=Pe.EnvironmentPortal,exports.Lightformer=be.Lightformer,exports.Sky=Be.Sky,exports.calcPosFromAngles=Be.calcPosFromAngles,exports.Stars=Me.Stars,exports.Cloud=Te.Cloud,exports.useMatcapTexture=fe.useMatcapTexture,exports.useNormalTexture=ge.useNormalTexture,exports.Point=ve.Point,exports.Points=ve.Points,exports.PointsBuffer=ve.PointsBuffer,exports.Instance=Le.Instance,exports.Instances=Le.Instances,exports.Merged=Le.Merged,exports.Segment=Ae.Segment,exports.Segments=Ae.Segments,exports.Detailed=Ee.Detailed,exports.Preload=Ge.Preload,exports.BakeShadows=ke.BakeShadows,exports.meshBounds=De.meshBounds,exports.AdaptiveDpr=Fe.AdaptiveDpr,exports.AdaptiveEvents=we.AdaptiveEvents;