@react-three/drei 9.96.4 → 9.96.5

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 (166) hide show
  1. package/core/AccumulativeShadows.cjs.js +1 -1
  2. package/core/AdaptiveDpr.cjs.js +1 -1
  3. package/core/AdaptiveEvents.cjs.js +1 -1
  4. package/core/ArcballControls.cjs.js +1 -1
  5. package/core/AsciiRenderer.cjs.js +1 -1
  6. package/core/BBAnchor.cjs.js +1 -1
  7. package/core/Backdrop.cjs.js +1 -1
  8. package/core/BakeShadows.cjs.js +1 -1
  9. package/core/Billboard.cjs.js +1 -1
  10. package/core/Bounds.cjs.js +1 -1
  11. package/core/CameraControls.cjs.js +1 -1
  12. package/core/CameraShake.cjs.js +1 -1
  13. package/core/CatmullRomLine.cjs.js +1 -1
  14. package/core/Caustics.cjs.js +1 -1
  15. package/core/Center.cjs.js +1 -1
  16. package/core/Clone.cjs.js +1 -1
  17. package/core/Cloud.cjs.js +1 -1
  18. package/core/ComputedAttribute.cjs.js +1 -1
  19. package/core/ContactShadows.cjs.js +1 -1
  20. package/core/CubeCamera.cjs.js +1 -1
  21. package/core/CubicBezierLine.cjs.js +1 -1
  22. package/core/CurveModifier.cjs.js +1 -1
  23. package/core/Decal.cjs.js +1 -1
  24. package/core/Detailed.cjs.js +1 -1
  25. package/core/DeviceOrientationControls.cjs.js +1 -1
  26. package/core/Edges.cjs.js +1 -1
  27. package/core/Effects.cjs.js +1 -1
  28. package/core/Environment.cjs.js +1 -1
  29. package/core/Example.cjs.js +1 -1
  30. package/core/FirstPersonControls.cjs.js +1 -1
  31. package/core/Fisheye.cjs.js +1 -1
  32. package/core/Float.cjs.js +1 -1
  33. package/core/FlyControls.cjs.js +1 -1
  34. package/core/GizmoHelper.cjs.js +1 -1
  35. package/core/GizmoViewcube.cjs.js +1 -1
  36. package/core/GizmoViewport.cjs.js +1 -1
  37. package/core/Gltf.cjs.js +1 -1
  38. package/core/GradientTexture.cjs.js +1 -1
  39. package/core/Grid.cjs.js +1 -1
  40. package/core/Hud.cjs.js +1 -1
  41. package/core/Image.cjs.js +1 -1
  42. package/core/Instances.cjs.js +1 -1
  43. package/core/Lightformer.cjs.js +1 -1
  44. package/core/Line.cjs.js +1 -1
  45. package/core/MapControls.cjs.js +1 -1
  46. package/core/MarchingCubes.cjs.js +1 -1
  47. package/core/Mask.cjs.js +1 -1
  48. package/core/MeshDiscardMaterial.cjs.js +1 -1
  49. package/core/MeshDistortMaterial.cjs.js +1 -1
  50. package/core/MeshPortalMaterial.cjs.js +1 -1
  51. package/core/MeshReflectorMaterial.cjs.js +1 -1
  52. package/core/MeshRefractionMaterial.cjs.js +1 -1
  53. package/core/MeshTransmissionMaterial.cjs.js +1 -1
  54. package/core/MeshWobbleMaterial.cjs.js +1 -1
  55. package/core/MotionPathControls.cjs.js +1 -1
  56. package/core/OrbitControls.cjs.js +1 -1
  57. package/core/OrthographicCamera.cjs.js +1 -1
  58. package/core/Outlines.cjs.js +1 -1
  59. package/core/PerformanceMonitor.cjs.js +1 -1
  60. package/core/PerspectiveCamera.cjs.js +1 -1
  61. package/core/PointMaterial.cjs.js +1 -1
  62. package/core/PointerLockControls.cjs.js +1 -1
  63. package/core/Points.cjs.js +1 -1
  64. package/core/PositionalAudio.cjs.js +1 -1
  65. package/core/Preload.cjs.js +1 -1
  66. package/core/QuadraticBezierLine.cjs.js +1 -1
  67. package/core/Reflector.cjs.js +1 -1
  68. package/core/RenderCubeTexture.cjs.js +1 -1
  69. package/core/RenderTexture.cjs.js +1 -1
  70. package/core/Resize.cjs.js +1 -1
  71. package/core/RoundedBox.cjs.js +1 -1
  72. package/core/Sampler.cjs.js +1 -1
  73. package/core/ScreenQuad.cjs.js +1 -1
  74. package/core/ScreenSpace.cjs.js +1 -1
  75. package/core/Segments.cjs.js +1 -1
  76. package/core/Shadow.cjs.js +1 -1
  77. package/core/ShadowAlpha.cjs.js +1 -1
  78. package/core/ShadowAlpha.js +0 -1
  79. package/core/Sky.cjs.js +1 -1
  80. package/core/Sparkles.cjs.js +1 -1
  81. package/core/Splat.cjs.js +1 -1
  82. package/core/SpotLight.cjs.js +1 -1
  83. package/core/SpriteAnimator.cjs.js +1 -1
  84. package/core/Stage.cjs.js +1 -1
  85. package/core/Stars.cjs.js +1 -1
  86. package/core/Stats.cjs.js +1 -1
  87. package/core/StatsGl.cjs.js +1 -1
  88. package/core/Svg.cjs.js +1 -1
  89. package/core/Text.cjs.js +1 -1
  90. package/core/Text3D.cjs.js +1 -1
  91. package/core/TrackballControls.cjs.js +1 -1
  92. package/core/Trail.cjs.js +1 -1
  93. package/core/TransformControls.cjs.js +1 -1
  94. package/core/Wireframe.cjs.js +1 -1
  95. package/core/index.cjs.js +1 -1
  96. package/core/index.js +150 -0
  97. package/core/meshBounds.cjs.js +1 -1
  98. package/core/shaderMaterial.cjs.js +1 -1
  99. package/core/shapes.cjs.js +1 -1
  100. package/core/softShadows.cjs.js +1 -1
  101. package/core/softShadows.js +0 -1
  102. package/core/useAnimations.cjs.js +1 -1
  103. package/core/useAspect.cjs.js +1 -1
  104. package/core/useBVH.cjs.js +1 -1
  105. package/core/useBoxProjectedEnv.cjs.js +1 -1
  106. package/core/useCamera.cjs.js +1 -1
  107. package/core/useContextBridge.cjs.js +1 -1
  108. package/core/useCubeCamera.cjs.js +1 -1
  109. package/core/useCubeTexture.cjs.js +1 -1
  110. package/core/useDepthBuffer.cjs.js +1 -1
  111. package/core/useDetectGPU.cjs.js +1 -1
  112. package/core/useEnvironment.cjs.js +1 -1
  113. package/core/useFBO.cjs.js +1 -1
  114. package/core/useFBX.cjs.js +1 -1
  115. package/core/useFont.cjs.js +1 -1
  116. package/core/useGLTF.cjs.js +1 -1
  117. package/core/useHelper.cjs.js +1 -1
  118. package/core/useIntersect.cjs.js +1 -1
  119. package/core/useKTX2.cjs.js +1 -1
  120. package/core/useMatcapTexture.cjs.js +1 -1
  121. package/core/useNormalTexture.cjs.js +1 -1
  122. package/core/useProgress.cjs.js +1 -1
  123. package/core/useTexture.cjs.js +1 -1
  124. package/core/useTrailTexture.cjs.js +1 -1
  125. package/core/useVideoTexture.cjs.js +1 -1
  126. package/helpers/constants.cjs.js +1 -1
  127. package/helpers/deprecated.cjs.js +1 -1
  128. package/helpers/environment-assets.cjs.js +1 -1
  129. package/helpers/glsl/DefaultSpotlightShadowShadows.glsl.js +3 -1
  130. package/helpers/glsl/distort.vert.glsl.js +3 -1
  131. package/helpers/ts-utils.js +1 -0
  132. package/helpers/useEffectfulState.cjs.js +1 -1
  133. package/index.cjs.js +1 -1
  134. package/index.js +0 -1
  135. package/materials/BlurPass.cjs.js +1 -1
  136. package/materials/ConvolutionMaterial.cjs.js +1 -1
  137. package/materials/DiscardMaterial.cjs.js +1 -1
  138. package/materials/MeshReflectorMaterial.cjs.js +1 -1
  139. package/materials/MeshRefractionMaterial.cjs.js +1 -1
  140. package/materials/MeshRefractionMaterial.js +0 -2
  141. package/materials/SpotLightMaterial.cjs.js +1 -1
  142. package/materials/WireframeMaterial.cjs.js +1 -1
  143. package/native/index.cjs.js +1 -1
  144. package/native/index.js +150 -0
  145. package/package.json +1 -1
  146. package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
  147. package/web/CycleRaycast.cjs.js +1 -1
  148. package/web/FaceControls.cjs.js +1 -1
  149. package/web/FaceLandmarker.cjs.js +1 -1
  150. package/web/Facemesh.cjs.js +1 -1
  151. package/web/Html.cjs.js +1 -1
  152. package/web/KeyboardControls.cjs.js +1 -1
  153. package/web/Loader.cjs.js +1 -1
  154. package/web/PresentationControls.cjs.js +1 -1
  155. package/web/ScrollControls.cjs.js +1 -1
  156. package/web/Select.cjs.js +1 -1
  157. package/web/View.cjs.js +1 -2
  158. package/web/View.js +0 -1
  159. package/web/index.cjs.js +1 -1
  160. package/web/index.js +173 -0
  161. package/web/pivotControls/AxisArrow.cjs.js +1 -1
  162. package/web/pivotControls/AxisRotator.cjs.js +1 -1
  163. package/web/pivotControls/PlaneSlider.cjs.js +1 -1
  164. package/web/pivotControls/context.cjs.js +1 -1
  165. package/web/pivotControls/index.cjs.js +1 -1
  166. package/web/useCursor.cjs.js +1 -1
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),a=require("@react-three/fiber"),i=require("./shaderMaterial.cjs.js"),s=require("../materials/DiscardMaterial.cjs.js"),n=require("../helpers/constants.cjs.js");function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var l=o(t),h=o(r);const c=h.createContext(null),u=i.shaderMaterial({color:new l.Color,blend:2,alphaTest:.75,opacity:0,map:null},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }",`varying vec2 vUv;\n uniform sampler2D map;\n uniform vec3 color;\n uniform float opacity;\n uniform float alphaTest;\n uniform float blend;\n void main() {\n vec4 sampledDiffuseColor = texture2D(map, vUv);\n gl_FragColor = vec4(color * sampledDiffuseColor.r * blend, max(0.0, (1.0 - (sampledDiffuseColor.r + sampledDiffuseColor.g + sampledDiffuseColor.b) / alphaTest)) * opacity);\n #include <tonemapping_fragment>\n #include <${n.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`),d=h.forwardRef((({children:e,temporal:t,frames:r=40,limit:i=1/0,blend:s=20,scale:n=10,opacity:o=1,alphaTest:l=.75,color:d="black",colorBlend:p=2,resolution:m=1024,toneMapped:f=!0,...v},M)=>{a.extend({SoftShadowMaterial:u});const b=a.useThree((e=>e.gl)),w=a.useThree((e=>e.scene)),y=a.useThree((e=>e.camera)),C=a.useThree((e=>e.invalidate)),x=h.useRef(null),S=h.useRef(null),[j]=h.useState((()=>new g(b,w,m)));h.useLayoutEffect((()=>{j.configure(x.current)}),[]);const T=h.useMemo((()=>({lights:new Map,temporal:!!t,frames:Math.max(2,r),blend:Math.max(2,r===1/0?s:r),count:0,getMesh:()=>x.current,reset:()=>{j.clear();const e=x.current.material;e.opacity=0,e.alphaTest=0,T.count=0},update:(e=1)=>{const t=x.current.material;T.temporal?(t.opacity=Math.min(o,t.opacity+o/T.blend),t.alphaTest=Math.min(l,t.alphaTest+l/T.blend)):(t.opacity=o,t.alphaTest=l),S.current.visible=!0,j.prepare();for(let t=0;t<e;t++)T.lights.forEach((e=>e.update())),j.update(y,T.blend);S.current.visible=!1,j.finish()}})),[j,y,w,t,r,s,o,l]);return h.useLayoutEffect((()=>{T.reset(),T.temporal||T.frames===1/0||T.update(T.blend)})),h.useImperativeHandle(M,(()=>T),[T]),a.useFrame((()=>{(T.temporal||T.frames===1/0)&&T.count<T.frames&&T.count<i&&(C(),T.update(),T.count++)})),h.createElement("group",v,h.createElement("group",{traverse:()=>null,ref:S},h.createElement(c.Provider,{value:T},e)),h.createElement("mesh",{receiveShadow:!0,ref:x,scale:n,rotation:[-Math.PI/2,0,0]},h.createElement("planeGeometry",null),h.createElement("softShadowMaterial",{transparent:!0,depthWrite:!1,toneMapped:f,color:d,blend:p,map:j.progressiveLightMap2.texture})))})),p=h.forwardRef((({castShadow:t=!0,bias:r=.001,mapSize:a=512,size:i=5,near:s=.5,far:o=500,frames:u=1,position:d=[0,0,0],radius:p=1,amount:g=8,intensity:m=(n.version>=155?Math.PI:1),ambient:f=.5,...v},M)=>{const b=h.useRef(null),w=new l.Vector3(...d).length(),y=h.useContext(c),C=h.useCallback((()=>{let e;if(b.current)for(let t=0;t<b.current.children.length;t++)if(e=b.current.children[t],Math.random()>f)e.position.set(d[0]+l.MathUtils.randFloatSpread(p),d[1]+l.MathUtils.randFloatSpread(p),d[2]+l.MathUtils.randFloatSpread(p));else{let t=Math.acos(2*Math.random()-1)-Math.PI/2,r=2*Math.PI*Math.random();e.position.set(Math.cos(t)*Math.cos(r)*w,Math.abs(Math.cos(t)*Math.sin(r)*w),Math.sin(t)*w)}}),[p,f,w,...d]),x=h.useMemo((()=>({update:C})),[C]);return h.useImperativeHandle(M,(()=>x),[x]),h.useLayoutEffect((()=>{var e;const t=b.current;return y&&(null==(e=y.lights)||e.set(t.uuid,x)),()=>{var e;null==y||null==(e=y.lights)||e.delete(t.uuid)}}),[y,x]),h.createElement("group",e({ref:b},v),Array.from({length:g},((e,n)=>h.createElement("directionalLight",{key:n,castShadow:t,"shadow-bias":r,"shadow-mapSize":[a,a],intensity:m/g},h.createElement("orthographicCamera",{attach:"shadow-camera",args:[-i,i,i,-i,s,o]})))))}));class g{constructor(e,t,r=1024){this.renderer=e,this.res=r,this.scene=t,this.buffer1Active=!1,this.lights=[],this.meshes=[],this.object=null,this.clearColor=new l.Color,this.clearAlpha=0;const a={type:l.HalfFloatType,magFilter:l.NearestFilter,minFilter:l.NearestFilter};this.progressiveLightMap1=new l.WebGLRenderTarget(this.res,this.res,a),this.progressiveLightMap2=new l.WebGLRenderTarget(this.res,this.res,a),this.discardMat=new s.DiscardMaterial,this.targetMat=new l.MeshLambertMaterial({fog:!1}),this.previousShadowMap={value:this.progressiveLightMap1.texture},this.averagingWindow={value:100},this.targetMat.onBeforeCompile=e=>{e.vertexShader="varying vec2 vUv;\n"+e.vertexShader.slice(0,-1)+"vUv = uv; gl_Position = vec4((uv - 0.5) * 2.0, 1.0, 1.0); }";const t=e.fragmentShader.indexOf("void main() {");e.fragmentShader="varying vec2 vUv;\n"+e.fragmentShader.slice(0,t)+"uniform sampler2D previousShadowMap;\n\tuniform float averagingWindow;\n"+e.fragmentShader.slice(t-1,-1)+"\nvec3 texelOld = texture2D(previousShadowMap, vUv).rgb;\n gl_FragColor.rgb = mix(texelOld, gl_FragColor.rgb, 1.0/ averagingWindow);\n }",e.uniforms.previousShadowMap=this.previousShadowMap,e.uniforms.averagingWindow=this.averagingWindow}}clear(){this.renderer.getClearColor(this.clearColor),this.clearAlpha=this.renderer.getClearAlpha(),this.renderer.setClearColor("black",1),this.renderer.setRenderTarget(this.progressiveLightMap1),this.renderer.clear(),this.renderer.setRenderTarget(this.progressiveLightMap2),this.renderer.clear(),this.renderer.setRenderTarget(null),this.renderer.setClearColor(this.clearColor,this.clearAlpha),this.lights=[],this.meshes=[],this.scene.traverse((e=>{!function(e){return!!e.geometry}(e)?function(e){return e.isLight}(e)&&this.lights.push({object:e,intensity:e.intensity}):this.meshes.push({object:e,material:e.material})}))}prepare(){this.lights.forEach((e=>e.object.intensity=0)),this.meshes.forEach((e=>e.object.material=this.discardMat))}finish(){this.lights.forEach((e=>e.object.intensity=e.intensity)),this.meshes.forEach((e=>e.object.material=e.material))}configure(e){this.object=e}update(e,t=100){if(!this.object)return;this.averagingWindow.value=t,this.object.material=this.targetMat;const r=this.buffer1Active?this.progressiveLightMap1:this.progressiveLightMap2,a=this.buffer1Active?this.progressiveLightMap2:this.progressiveLightMap1,i=this.scene.background;this.scene.background=null,this.renderer.setRenderTarget(r),this.previousShadowMap.value=a.texture,this.buffer1Active=!this.buffer1Active,this.renderer.render(this.scene,e),this.renderer.setRenderTarget(null),this.scene.background=i}}exports.AccumulativeShadows=d,exports.RandomizedLight=p,exports.accumulativeContext=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),a=require("@react-three/fiber"),i=require("./shaderMaterial.cjs.js"),s=require("../materials/DiscardMaterial.cjs.js"),n=require("../helpers/constants.cjs.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var h=o(e),c=l(t),u=l(r);const d=u.createContext(null),p=i.shaderMaterial({color:new c.Color,blend:2,alphaTest:.75,opacity:0,map:null},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }",`varying vec2 vUv;\n uniform sampler2D map;\n uniform vec3 color;\n uniform float opacity;\n uniform float alphaTest;\n uniform float blend;\n void main() {\n vec4 sampledDiffuseColor = texture2D(map, vUv);\n gl_FragColor = vec4(color * sampledDiffuseColor.r * blend, max(0.0, (1.0 - (sampledDiffuseColor.r + sampledDiffuseColor.g + sampledDiffuseColor.b) / alphaTest)) * opacity);\n #include <tonemapping_fragment>\n #include <${n.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`),f=u.forwardRef((({children:e,temporal:t,frames:r=40,limit:i=1/0,blend:s=20,scale:n=10,opacity:o=1,alphaTest:l=.75,color:h="black",colorBlend:c=2,resolution:f=1024,toneMapped:g=!0,...v},M)=>{a.extend({SoftShadowMaterial:p});const b=a.useThree((e=>e.gl)),w=a.useThree((e=>e.scene)),y=a.useThree((e=>e.camera)),x=a.useThree((e=>e.invalidate)),C=u.useRef(null),S=u.useRef(null),[j]=u.useState((()=>new m(b,w,f)));u.useLayoutEffect((()=>{j.configure(C.current)}),[]);const T=u.useMemo((()=>({lights:new Map,temporal:!!t,frames:Math.max(2,r),blend:Math.max(2,r===1/0?s:r),count:0,getMesh:()=>C.current,reset:()=>{j.clear();const e=C.current.material;e.opacity=0,e.alphaTest=0,T.count=0},update:(e=1)=>{const t=C.current.material;T.temporal?(t.opacity=Math.min(o,t.opacity+o/T.blend),t.alphaTest=Math.min(l,t.alphaTest+l/T.blend)):(t.opacity=o,t.alphaTest=l),S.current.visible=!0,j.prepare();for(let t=0;t<e;t++)T.lights.forEach((e=>e.update())),j.update(y,T.blend);S.current.visible=!1,j.finish()}})),[j,y,w,t,r,s,o,l]);return u.useLayoutEffect((()=>{T.reset(),T.temporal||T.frames===1/0||T.update(T.blend)})),u.useImperativeHandle(M,(()=>T),[T]),a.useFrame((()=>{(T.temporal||T.frames===1/0)&&T.count<T.frames&&T.count<i&&(x(),T.update(),T.count++)})),u.createElement("group",v,u.createElement("group",{traverse:()=>null,ref:S},u.createElement(d.Provider,{value:T},e)),u.createElement("mesh",{receiveShadow:!0,ref:C,scale:n,rotation:[-Math.PI/2,0,0]},u.createElement("planeGeometry",null),u.createElement("softShadowMaterial",{transparent:!0,depthWrite:!1,toneMapped:g,color:h,blend:c,map:j.progressiveLightMap2.texture})))})),g=u.forwardRef((({castShadow:e=!0,bias:t=.001,mapSize:r=512,size:a=5,near:i=.5,far:s=500,frames:o=1,position:l=[0,0,0],radius:p=1,amount:f=8,intensity:g=(n.version>=155?Math.PI:1),ambient:m=.5,...v},M)=>{const b=u.useRef(null),w=new c.Vector3(...l).length(),y=u.useContext(d),x=u.useCallback((()=>{let e;if(b.current)for(let t=0;t<b.current.children.length;t++)if(e=b.current.children[t],Math.random()>m)e.position.set(l[0]+c.MathUtils.randFloatSpread(p),l[1]+c.MathUtils.randFloatSpread(p),l[2]+c.MathUtils.randFloatSpread(p));else{let t=Math.acos(2*Math.random()-1)-Math.PI/2,r=2*Math.PI*Math.random();e.position.set(Math.cos(t)*Math.cos(r)*w,Math.abs(Math.cos(t)*Math.sin(r)*w),Math.sin(t)*w)}}),[p,m,w,...l]),C=u.useMemo((()=>({update:x})),[x]);return u.useImperativeHandle(M,(()=>C),[C]),u.useLayoutEffect((()=>{var e;const t=b.current;return y&&(null==(e=y.lights)||e.set(t.uuid,C)),()=>{var e;null==y||null==(e=y.lights)||e.delete(t.uuid)}}),[y,C]),u.createElement("group",h.default({ref:b},v),Array.from({length:f},((n,o)=>u.createElement("directionalLight",{key:o,castShadow:e,"shadow-bias":t,"shadow-mapSize":[r,r],intensity:g/f},u.createElement("orthographicCamera",{attach:"shadow-camera",args:[-a,a,a,-a,i,s]})))))}));class m{constructor(e,t,r=1024){this.renderer=e,this.res=r,this.scene=t,this.buffer1Active=!1,this.lights=[],this.meshes=[],this.object=null,this.clearColor=new c.Color,this.clearAlpha=0;const a={type:c.HalfFloatType,magFilter:c.NearestFilter,minFilter:c.NearestFilter};this.progressiveLightMap1=new c.WebGLRenderTarget(this.res,this.res,a),this.progressiveLightMap2=new c.WebGLRenderTarget(this.res,this.res,a),this.discardMat=new s.DiscardMaterial,this.targetMat=new c.MeshLambertMaterial({fog:!1}),this.previousShadowMap={value:this.progressiveLightMap1.texture},this.averagingWindow={value:100},this.targetMat.onBeforeCompile=e=>{e.vertexShader="varying vec2 vUv;\n"+e.vertexShader.slice(0,-1)+"vUv = uv; gl_Position = vec4((uv - 0.5) * 2.0, 1.0, 1.0); }";const t=e.fragmentShader.indexOf("void main() {");e.fragmentShader="varying vec2 vUv;\n"+e.fragmentShader.slice(0,t)+"uniform sampler2D previousShadowMap;\n\tuniform float averagingWindow;\n"+e.fragmentShader.slice(t-1,-1)+"\nvec3 texelOld = texture2D(previousShadowMap, vUv).rgb;\n gl_FragColor.rgb = mix(texelOld, gl_FragColor.rgb, 1.0/ averagingWindow);\n }",e.uniforms.previousShadowMap=this.previousShadowMap,e.uniforms.averagingWindow=this.averagingWindow}}clear(){this.renderer.getClearColor(this.clearColor),this.clearAlpha=this.renderer.getClearAlpha(),this.renderer.setClearColor("black",1),this.renderer.setRenderTarget(this.progressiveLightMap1),this.renderer.clear(),this.renderer.setRenderTarget(this.progressiveLightMap2),this.renderer.clear(),this.renderer.setRenderTarget(null),this.renderer.setClearColor(this.clearColor,this.clearAlpha),this.lights=[],this.meshes=[],this.scene.traverse((e=>{!function(e){return!!e.geometry}(e)?function(e){return e.isLight}(e)&&this.lights.push({object:e,intensity:e.intensity}):this.meshes.push({object:e,material:e.material})}))}prepare(){this.lights.forEach((e=>e.object.intensity=0)),this.meshes.forEach((e=>e.object.material=this.discardMat))}finish(){this.lights.forEach((e=>e.object.intensity=e.intensity)),this.meshes.forEach((e=>e.object.material=e.material))}configure(e){this.object=e}update(e,t=100){if(!this.object)return;this.averagingWindow.value=t,this.object.material=this.targetMat;const r=this.buffer1Active?this.progressiveLightMap1:this.progressiveLightMap2,a=this.buffer1Active?this.progressiveLightMap2:this.progressiveLightMap1,i=this.scene.background;this.scene.background=null,this.renderer.setRenderTarget(r),this.previousShadowMap.value=a.texture,this.buffer1Active=!this.buffer1Active,this.renderer.render(this.scene,e),this.renderer.setRenderTarget(null),this.scene.background=i}}exports.AccumulativeShadows=f,exports.RandomizedLight=g,exports.accumulativeContext=d;
@@ -1 +1 @@
1
- "use strict";var e=require("react"),r=require("@react-three/fiber");function t(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var n=t(e);exports.AdaptiveDpr=function({pixelated:e}){const t=r.useThree((e=>e.gl)),u=r.useThree((e=>e.internal.active)),i=r.useThree((e=>e.performance.current)),a=r.useThree((e=>e.viewport.initialDpr)),c=r.useThree((e=>e.setDpr));return n.useEffect((()=>{const r=t.domElement;return()=>{u&&c(a),e&&r&&(r.style.imageRendering="auto")}}),[]),n.useEffect((()=>{c(i*a),e&&t.domElement&&(t.domElement.style.imageRendering=1===i?"auto":"pixelated")}),[i]),null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber");function t(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var n=t(e);exports.AdaptiveDpr=function({pixelated:e}){const t=r.useThree((e=>e.gl)),u=r.useThree((e=>e.internal.active)),i=r.useThree((e=>e.performance.current)),a=r.useThree((e=>e.viewport.initialDpr)),c=r.useThree((e=>e.setDpr));return n.useEffect((()=>{const r=t.domElement;return()=>{u&&c(a),e&&r&&(r.style.imageRendering="auto")}}),[]),n.useEffect((()=>{c(i*a),e&&t.domElement&&(t.domElement.style.imageRendering=1===i?"auto":"pixelated")}),[i]),null};
@@ -1 +1 @@
1
- "use strict";var e=require("react"),r=require("@react-three/fiber");function t(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var n=t(e);exports.AdaptiveEvents=function(){const e=r.useThree((e=>e.get)),t=r.useThree((e=>e.setEvents)),u=r.useThree((e=>e.performance.current));return n.useEffect((()=>{const r=e().events.enabled;return()=>t({enabled:r})}),[]),n.useEffect((()=>t({enabled:1===u})),[u]),null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber");function t(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var n=t(e);exports.AdaptiveEvents=function(){const e=r.useThree((e=>e.get)),t=r.useThree((e=>e.setEvents)),u=r.useThree((e=>e.performance.current));return n.useEffect((()=>{const r=e().events.enabled;return()=>t({enabled:r})}),[]),n.useEffect((()=>t({enabled:1===u})),[u]),null};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),n=require("three-stdlib");function s(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var a=s(t);const c=t.forwardRef((({camera:s,makeDefault:c,regress:o,domElement:u,onChange:i,onStart:l,onEnd:d,...f},m)=>{const v=r.useThree((e=>e.invalidate)),b=r.useThree((e=>e.camera)),h=r.useThree((e=>e.gl)),E=r.useThree((e=>e.events)),g=r.useThree((e=>e.set)),p=r.useThree((e=>e.get)),T=r.useThree((e=>e.performance)),j=s||b,L=u||E.connected||h.domElement,O=t.useMemo((()=>new n.ArcballControls(j)),[j]);return r.useFrame((()=>{O.enabled&&O.update()}),-1),t.useEffect((()=>(O.connect(L),()=>{O.dispose()})),[L,o,O,v]),t.useEffect((()=>{const e=e=>{v(),o&&T.regress(),i&&i(e)};return O.addEventListener("change",e),l&&O.addEventListener("start",l),d&&O.addEventListener("end",d),()=>{O.removeEventListener("change",e),l&&O.removeEventListener("start",l),d&&O.removeEventListener("end",d)}}),[i,l,d]),t.useEffect((()=>{if(c){const e=p().controls;return g({controls:O}),()=>g({controls:e})}}),[c,O]),a.createElement("primitive",e({ref:m,object:O},f))}));exports.ArcballControls=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),n=require("three-stdlib");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var a=s(e),u=o(t);const c=t.forwardRef((({camera:e,makeDefault:s,regress:o,domElement:c,onChange:i,onStart:l,onEnd:f,...d},m)=>{const v=r.useThree((e=>e.invalidate)),b=r.useThree((e=>e.camera)),h=r.useThree((e=>e.gl)),E=r.useThree((e=>e.events)),p=r.useThree((e=>e.set)),g=r.useThree((e=>e.get)),j=r.useThree((e=>e.performance)),O=e||b,T=c||E.connected||h.domElement,L=t.useMemo((()=>new n.ArcballControls(O)),[O]);return r.useFrame((()=>{L.enabled&&L.update()}),-1),t.useEffect((()=>(L.connect(T),()=>{L.dispose()})),[T,o,L,v]),t.useEffect((()=>{const e=e=>{v(),o&&j.regress(),i&&i(e)};return L.addEventListener("change",e),l&&L.addEventListener("start",l),f&&L.addEventListener("end",f),()=>{L.removeEventListener("change",e),l&&L.removeEventListener("start",l),f&&L.removeEventListener("end",f)}}),[i,l,f]),t.useEffect((()=>{if(s){const e=g().controls;return p({controls:L}),()=>p({controls:e})}}),[s,L]),u.createElement("primitive",a.default({ref:m,object:L},d))}));exports.ArcballControls=c;
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("@react-three/fiber"),r=require("three-stdlib");function o(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 n=o(e);exports.AsciiRenderer=function({renderIndex:e=1,bgColor:o="black",fgColor:l="white",characters:c=" .:-+*=%@#",invert:i=!0,color:s=!1,resolution:m=.15}){const{size:u,gl:a,scene:d,camera:f}=t.useThree(),E=n.useMemo((()=>{const e=new r.AsciiEffect(a,c,{invert:i,color:s,resolution:m});return e.domElement.style.position="absolute",e.domElement.style.top="0px",e.domElement.style.left="0px",e.domElement.style.pointerEvents="none",e}),[c,i,s,m]);return n.useLayoutEffect((()=>{E.domElement.style.color=l,E.domElement.style.backgroundColor=o}),[l,o]),n.useEffect((()=>(a.domElement.style.opacity="0",a.domElement.parentNode.appendChild(E.domElement),()=>{a.domElement.style.opacity="1",a.domElement.parentNode.removeChild(E.domElement)})),[E]),n.useEffect((()=>{E.setSize(u.width,u.height)}),[E,u]),t.useFrame((e=>{E.render(d,f)}),e),n.createElement(n.Fragment,null)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber"),r=require("three-stdlib");function o(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 n=o(e);exports.AsciiRenderer=function({renderIndex:e=1,bgColor:o="black",fgColor:l="white",characters:c=" .:-+*=%@#",invert:s=!0,color:i=!1,resolution:u=.15}){const{size:m,gl:d,scene:a,camera:f}=t.useThree(),E=n.useMemo((()=>{const e=new r.AsciiEffect(d,c,{invert:s,color:i,resolution:u});return e.domElement.style.position="absolute",e.domElement.style.top="0px",e.domElement.style.left="0px",e.domElement.style.pointerEvents="none",e}),[c,s,i,u]);return n.useLayoutEffect((()=>{E.domElement.style.color=l,E.domElement.style.backgroundColor=o}),[l,o]),n.useEffect((()=>(d.domElement.style.opacity="0",d.domElement.parentNode.appendChild(E.domElement),()=>{d.domElement.style.opacity="1",d.domElement.parentNode.removeChild(E.domElement)})),[E]),n.useEffect((()=>{E.setSize(m.width,m.height)}),[E,m]),t.useFrame((e=>{E.render(a,f)}),e),n.createElement(n.Fragment,null)};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("@react-three/fiber");function u(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=u(r),a=u(t);const i=new a.Box3,o=new a.Vector3;exports.BBAnchor=({anchor:r,...t})=>{const u=c.useRef(null),a=c.useRef(null);return c.useEffect((()=>{var e;null!=(e=u.current)&&null!=(e=e.parent)&&e.parent&&(a.current=u.current.parent,u.current.parent.parent.add(u.current))}),[]),n.useFrame((()=>{a.current&&(i.setFromObject(a.current),i.getSize(o),u.current.position.set(a.current.position.x+o.x*(Array.isArray(r)?r[0]:r.x)/2,a.current.position.y+o.y*(Array.isArray(r)?r[1]:r.y)/2,a.current.position.z+o.z*(Array.isArray(r)?r[2]:r.z)/2))})),c.createElement("group",e({ref:u},t))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("@react-three/fiber");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var a=u(e),o=c(r),i=c(t);const s=new i.Box3,f=new i.Vector3;exports.BBAnchor=({anchor:e,...r})=>{const t=o.useRef(null),u=o.useRef(null);return o.useEffect((()=>{var e;null!=(e=t.current)&&null!=(e=e.parent)&&e.parent&&(u.current=t.current.parent,t.current.parent.parent.add(t.current))}),[]),n.useFrame((()=>{u.current&&(s.setFromObject(u.current),s.getSize(f),t.current.position.set(u.current.position.x+f.x*(Array.isArray(e)?e[0]:e.x)/2,u.current.position.y+f.y*(Array.isArray(e)?e[1]:e.y)/2,u.current.position.z+f.z*(Array.isArray(e)?e[2]:e.z)/2))})),o.createElement("group",a.default({ref:t},r))};
@@ -1 +1 @@
1
- "use strict";function e(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 t=e(require("react"));const r=e=>0===e?0:Math.pow(2,10*e-10);exports.Backdrop=function({children:e,floor:n=.25,segments:o=20,receiveShadow:c,...a}){const u=t.useRef(null);return t.useLayoutEffect((()=>{let e=0;const t=o/o/2,c=u.current.attributes.position;for(let a=0;a<o+1;a++)for(let u=0;u<o+1;u++)c.setXYZ(e++,a/o-t+(0===a?-n:0),u/o-t,r(a/o));c.needsUpdate=!0,u.current.computeVertexNormals()}),[o,n]),t.createElement("group",a,t.createElement("mesh",{receiveShadow:c,rotation:[-Math.PI/2,0,Math.PI/2]},t.createElement("planeGeometry",{ref:u,args:[1,1,o,o]}),e))};
1
+ "use strict";function e(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)}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("react"));const r=e=>0===e?0:Math.pow(2,10*e-10);exports.Backdrop=function({children:e,floor:o=.25,segments:n=20,receiveShadow:c,...a}){const u=t.useRef(null);return t.useLayoutEffect((()=>{let e=0;const t=n/n/2,c=u.current.attributes.position;for(let a=0;a<n+1;a++)for(let u=0;u<n+1;u++)c.setXYZ(e++,a/n-t+(0===a?-o:0),u/n-t,r(a/n));c.needsUpdate=!0,u.current.computeVertexNormals()}),[n,o]),t.createElement("group",a,t.createElement("mesh",{receiveShadow:c,rotation:[-Math.PI/2,0,Math.PI/2]},t.createElement("planeGeometry",{ref:u,args:[1,1,n,n]}),e))};
@@ -1 +1 @@
1
- "use strict";var e=require("react"),a=require("@react-three/fiber");exports.BakeShadows=function(){const t=a.useThree((e=>e.gl));return e.useEffect((()=>(t.shadowMap.autoUpdate=!1,t.shadowMap.needsUpdate=!0,()=>{t.shadowMap.autoUpdate=t.shadowMap.needsUpdate=!0})),[t.shadowMap]),null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),a=require("@react-three/fiber");exports.BakeShadows=function(){const t=a.useThree((e=>e.gl));return e.useEffect((()=>(t.shadowMap.autoUpdate=!1,t.shadowMap.needsUpdate=!0,()=>{t.shadowMap.autoUpdate=t.shadowMap.needsUpdate=!0})),[t.shadowMap]),null};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("@react-three/fiber");function u(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var o=u(r);const a=o.forwardRef((function({children:r,follow:u=!0,lockX:a=!1,lockY:c=!1,lockZ:i=!1,...l},f){const d=o.useRef(null),p=o.useRef(null),s=new t.Quaternion;return n.useFrame((({camera:e})=>{if(!u||!p.current)return;const r=p.current.rotation.clone();p.current.updateMatrix(),p.current.updateWorldMatrix(!1,!1),p.current.getWorldQuaternion(s),e.getWorldQuaternion(d.current.quaternion).premultiply(s.invert()),a&&(p.current.rotation.x=r.x),c&&(p.current.rotation.y=r.y),i&&(p.current.rotation.z=r.z)})),o.useImperativeHandle(f,(()=>p.current),[]),o.createElement("group",e({ref:p,matrixAutoUpdate:!1,matrixWorldAutoUpdate:!1},l),o.createElement("group",{ref:d},r))}));exports.Billboard=a;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("@react-three/fiber");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var a=u(e),c=o(r);const i=c.forwardRef((function({children:e,follow:r=!0,lockX:u=!1,lockY:o=!1,lockZ:i=!1,...l},f){const d=c.useRef(null),p=c.useRef(null),s=new t.Quaternion;return n.useFrame((({camera:e})=>{if(!r||!p.current)return;const t=p.current.rotation.clone();p.current.updateMatrix(),p.current.updateWorldMatrix(!1,!1),p.current.getWorldQuaternion(s),e.getWorldQuaternion(d.current.quaternion).premultiply(s.invert()),u&&(p.current.rotation.x=t.x),o&&(p.current.rotation.y=t.y),i&&(p.current.rotation.z=t.z)})),c.useImperativeHandle(f,(()=>p.current),[]),c.createElement("group",a.default({ref:p,matrixAutoUpdate:!1,matrixWorldAutoUpdate:!1},l),c.createElement("group",{ref:d},e))}));exports.Billboard=i;
@@ -1 +1 @@
1
- "use strict";var t=require("react"),e=require("three"),r=require("@react-three/fiber");function n(t){var e=Object.create(null);return t&&Object.keys(t).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:function(){return t[r]}})}})),e.default=t,Object.freeze(e)}var o=n(t),c=n(e),a=function(t){return t[t.NONE=0]="NONE",t[t.START=1]="START",t[t.ACTIVE=2]="ACTIVE",t}(a||{});const u=t=>t&&t.isOrthographicCamera,i=t=>1-Math.exp(-5*t)+.007*t,s=o.createContext(null);exports.Bounds=function({children:t,maxDuration:e=1,margin:n=1.2,observe:m,fit:p,clip:l,interpolateFunc:x=i,onFit:d}){const f=o.useRef(null),{camera:h,size:y,invalidate:g}=r.useThree(),v=r.useThree((t=>t.controls)),R=o.useRef(d);R.current=d;const w=o.useRef({camPos:new c.Vector3,camRot:new c.Quaternion,camZoom:1}),P=o.useRef({camPos:void 0,camRot:void 0,camZoom:void 0,camUp:void 0,target:void 0}),M=o.useRef(a.NONE),T=o.useRef(0),[V]=o.useState((()=>new c.Box3)),A=o.useMemo((()=>{function t(){const t=V.getSize(new c.Vector3),e=V.getCenter(new c.Vector3),r=Math.max(t.x,t.y,t.z),o=u(h)?4*r:r/(2*Math.atan(Math.PI*h.fov/360)),a=u(h)?4*r:o/h.aspect,i=n*Math.max(o,a);return{box:V,size:t,center:e,distance:i}}return{getSize:t,refresh(t){if((e=t)&&e.isBox3)V.copy(t);else{const e=t||f.current;if(!e)return this;e.updateWorldMatrix(!0,!0),V.setFromObject(e)}var e;if(V.isEmpty()){const t=h.position.length()||10;V.setFromCenterAndSize(new c.Vector3,new c.Vector3(t,t,t))}return w.current.camPos.copy(h.position),w.current.camRot.copy(h.quaternion),u(h)&&(w.current.camZoom=h.zoom),P.current.camPos=void 0,P.current.camRot=void 0,P.current.camZoom=void 0,P.current.camUp=void 0,P.current.target=void 0,this},reset(){const{center:e,distance:r}=t(),n=h.position.clone().sub(e).normalize();P.current.camPos=e.clone().addScaledVector(n,r),P.current.target=e.clone();const o=(new c.Matrix4).lookAt(P.current.camPos,P.current.target,h.up);return P.current.camRot=(new c.Quaternion).setFromRotationMatrix(o),M.current=a.START,T.current=0,this},moveTo(t){return P.current.camPos=Array.isArray(t)?new c.Vector3(...t):t.clone(),M.current=a.START,T.current=0,this},lookAt({target:t,up:e}){P.current.target=Array.isArray(t)?new c.Vector3(...t):t.clone(),P.current.camUp=e?Array.isArray(e)?new c.Vector3(...e):e.clone():h.up.clone();const r=(new c.Matrix4).lookAt(P.current.camPos||h.position,P.current.target,P.current.camUp);return P.current.camRot=(new c.Quaternion).setFromRotationMatrix(r),M.current=a.START,T.current=0,this},to({position:t,target:e}){return this.moveTo(t).lookAt({target:e})},fit(){if(!u(h))return this.reset();let t=0,e=0;const r=[new c.Vector3(V.min.x,V.min.y,V.min.z),new c.Vector3(V.min.x,V.max.y,V.min.z),new c.Vector3(V.min.x,V.min.y,V.max.z),new c.Vector3(V.min.x,V.max.y,V.max.z),new c.Vector3(V.max.x,V.max.y,V.max.z),new c.Vector3(V.max.x,V.max.y,V.min.z),new c.Vector3(V.max.x,V.min.y,V.max.z),new c.Vector3(V.max.x,V.min.y,V.min.z)],o=P.current.camPos||h.position,i=P.current.target||(null==v?void 0:v.target),s=P.current.camUp||h.up,m=i?(new c.Matrix4).lookAt(o,i,s).setPosition(o).invert():h.matrixWorldInverse;for(const n of r)n.applyMatrix4(m),t=Math.max(t,Math.abs(n.y)),e=Math.max(e,Math.abs(n.x));t*=2,e*=2;const p=(h.top-h.bottom)/t,l=(h.right-h.left)/e;return P.current.camZoom=Math.min(p,l)/n,M.current=a.START,T.current=0,R.current&&R.current(this.getSize()),this},clip(){const{distance:e}=t();return h.near=e/100,h.far=100*e,h.updateProjectionMatrix(),v&&(v.maxDistance=10*e,v.update()),g(),this}}}),[V,h,v,n,g]);o.useLayoutEffect((()=>{if(v){const t=()=>{if(v&&P.current.target&&M.current!==a.NONE){const t=(new c.Vector3).setFromMatrixColumn(h.matrix,2),e=w.current.camPos.distanceTo(v.target),r=(P.current.camPos||w.current.camPos).distanceTo(P.current.target),n=(1-T.current)*e+T.current*r;v.target.copy(h.position).addScaledVector(t,-n),v.update()}M.current=a.NONE};return v.addEventListener("start",t),()=>v.removeEventListener("start",t)}}),[v]);const z=o.useRef(0);return o.useLayoutEffect((()=>{(m||0==z.current++)&&(A.refresh(),p&&A.reset().fit(),l&&A.clip())}),[y,l,p,m,h,v]),r.useFrame(((t,r)=>{if(M.current===a.START)M.current=a.ACTIVE,g();else if(M.current===a.ACTIVE){if(T.current+=r/e,T.current>=1)P.current.camPos&&h.position.copy(P.current.camPos),P.current.camRot&&h.quaternion.copy(P.current.camRot),P.current.camUp&&h.up.copy(P.current.camUp),P.current.camZoom&&u(h)&&(h.zoom=P.current.camZoom),h.updateMatrixWorld(),h.updateProjectionMatrix(),v&&P.current.target&&(v.target.copy(P.current.target),v.update()),M.current=a.NONE;else{const t=x(T.current);P.current.camPos&&h.position.lerpVectors(w.current.camPos,P.current.camPos,t),P.current.camRot&&h.quaternion.slerpQuaternions(w.current.camRot,P.current.camRot,t),P.current.camUp&&h.up.set(0,1,0).applyQuaternion(h.quaternion),P.current.camZoom&&u(h)&&(h.zoom=(1-t)*w.current.camZoom+t*P.current.camZoom),h.updateMatrixWorld(),h.updateProjectionMatrix()}g()}})),o.createElement("group",{ref:f},o.createElement(s.Provider,{value:A},t))},exports.useBounds=function(){return o.useContext(s)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("three"),r=require("@react-three/fiber");function n(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 o=n(e),c=n(t),a=function(e){return e[e.NONE=0]="NONE",e[e.START=1]="START",e[e.ACTIVE=2]="ACTIVE",e}(a||{});const u=e=>e&&e.isOrthographicCamera,i=e=>1-Math.exp(-5*e)+.007*e,s=o.createContext(null);exports.Bounds=function({children:e,maxDuration:t=1,margin:n=1.2,observe:m,fit:p,clip:l,interpolateFunc:x=i,onFit:d}){const f=o.useRef(null),{camera:y,size:h,invalidate:g}=r.useThree(),v=r.useThree((e=>e.controls)),R=o.useRef(d);R.current=d;const M=o.useRef({camPos:new c.Vector3,camRot:new c.Quaternion,camZoom:1}),P=o.useRef({camPos:void 0,camRot:void 0,camZoom:void 0,camUp:void 0,target:void 0}),w=o.useRef(a.NONE),T=o.useRef(0),[V]=o.useState((()=>new c.Box3)),A=o.useMemo((()=>{function e(){const e=V.getSize(new c.Vector3),t=V.getCenter(new c.Vector3),r=Math.max(e.x,e.y,e.z),o=u(y)?4*r:r/(2*Math.atan(Math.PI*y.fov/360)),a=u(y)?4*r:o/y.aspect,i=n*Math.max(o,a);return{box:V,size:e,center:t,distance:i}}return{getSize:e,refresh(e){if((t=e)&&t.isBox3)V.copy(e);else{const t=e||f.current;if(!t)return this;t.updateWorldMatrix(!0,!0),V.setFromObject(t)}var t;if(V.isEmpty()){const e=y.position.length()||10;V.setFromCenterAndSize(new c.Vector3,new c.Vector3(e,e,e))}return M.current.camPos.copy(y.position),M.current.camRot.copy(y.quaternion),u(y)&&(M.current.camZoom=y.zoom),P.current.camPos=void 0,P.current.camRot=void 0,P.current.camZoom=void 0,P.current.camUp=void 0,P.current.target=void 0,this},reset(){const{center:t,distance:r}=e(),n=y.position.clone().sub(t).normalize();P.current.camPos=t.clone().addScaledVector(n,r),P.current.target=t.clone();const o=(new c.Matrix4).lookAt(P.current.camPos,P.current.target,y.up);return P.current.camRot=(new c.Quaternion).setFromRotationMatrix(o),w.current=a.START,T.current=0,this},moveTo(e){return P.current.camPos=Array.isArray(e)?new c.Vector3(...e):e.clone(),w.current=a.START,T.current=0,this},lookAt({target:e,up:t}){P.current.target=Array.isArray(e)?new c.Vector3(...e):e.clone(),P.current.camUp=t?Array.isArray(t)?new c.Vector3(...t):t.clone():y.up.clone();const r=(new c.Matrix4).lookAt(P.current.camPos||y.position,P.current.target,P.current.camUp);return P.current.camRot=(new c.Quaternion).setFromRotationMatrix(r),w.current=a.START,T.current=0,this},to({position:e,target:t}){return this.moveTo(e).lookAt({target:t})},fit(){if(!u(y))return this.reset();let e=0,t=0;const r=[new c.Vector3(V.min.x,V.min.y,V.min.z),new c.Vector3(V.min.x,V.max.y,V.min.z),new c.Vector3(V.min.x,V.min.y,V.max.z),new c.Vector3(V.min.x,V.max.y,V.max.z),new c.Vector3(V.max.x,V.max.y,V.max.z),new c.Vector3(V.max.x,V.max.y,V.min.z),new c.Vector3(V.max.x,V.min.y,V.max.z),new c.Vector3(V.max.x,V.min.y,V.min.z)],o=P.current.camPos||y.position,i=P.current.target||(null==v?void 0:v.target),s=P.current.camUp||y.up,m=i?(new c.Matrix4).lookAt(o,i,s).setPosition(o).invert():y.matrixWorldInverse;for(const n of r)n.applyMatrix4(m),e=Math.max(e,Math.abs(n.y)),t=Math.max(t,Math.abs(n.x));e*=2,t*=2;const p=(y.top-y.bottom)/e,l=(y.right-y.left)/t;return P.current.camZoom=Math.min(p,l)/n,w.current=a.START,T.current=0,R.current&&R.current(this.getSize()),this},clip(){const{distance:t}=e();return y.near=t/100,y.far=100*t,y.updateProjectionMatrix(),v&&(v.maxDistance=10*t,v.update()),g(),this}}}),[V,y,v,n,g]);o.useLayoutEffect((()=>{if(v){const e=()=>{if(v&&P.current.target&&w.current!==a.NONE){const e=(new c.Vector3).setFromMatrixColumn(y.matrix,2),t=M.current.camPos.distanceTo(v.target),r=(P.current.camPos||M.current.camPos).distanceTo(P.current.target),n=(1-T.current)*t+T.current*r;v.target.copy(y.position).addScaledVector(e,-n),v.update()}w.current=a.NONE};return v.addEventListener("start",e),()=>v.removeEventListener("start",e)}}),[v]);const z=o.useRef(0);return o.useLayoutEffect((()=>{(m||0==z.current++)&&(A.refresh(),p&&A.reset().fit(),l&&A.clip())}),[h,l,p,m,y,v]),r.useFrame(((e,r)=>{if(w.current===a.START)w.current=a.ACTIVE,g();else if(w.current===a.ACTIVE){if(T.current+=r/t,T.current>=1)P.current.camPos&&y.position.copy(P.current.camPos),P.current.camRot&&y.quaternion.copy(P.current.camRot),P.current.camUp&&y.up.copy(P.current.camUp),P.current.camZoom&&u(y)&&(y.zoom=P.current.camZoom),y.updateMatrixWorld(),y.updateProjectionMatrix(),v&&P.current.target&&(v.target.copy(P.current.target),v.update()),w.current=a.NONE;else{const e=x(T.current);P.current.camPos&&y.position.lerpVectors(M.current.camPos,P.current.camPos,e),P.current.camRot&&y.quaternion.slerpQuaternions(M.current.camRot,P.current.camRot,e),P.current.camUp&&y.up.set(0,1,0).applyQuaternion(y.quaternion),P.current.camZoom&&u(y)&&(y.zoom=(1-e)*M.current.camZoom+e*P.current.camZoom),y.updateMatrixWorld(),y.updateProjectionMatrix()}g()}})),o.createElement("group",{ref:f},o.createElement(s.Provider,{value:A},e))},exports.useBounds=function(){return o.useContext(s)};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),o=require("camera-controls");function a(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 s=a(r);const c=r.forwardRef(((a,c)=>{r.useMemo((()=>{const e={Box3:t.Box3,MathUtils:{clamp:t.MathUtils.clamp},Matrix4:t.Matrix4,Quaternion:t.Quaternion,Raycaster:t.Raycaster,Sphere:t.Sphere,Spherical:t.Spherical,Vector2:t.Vector2,Vector3:t.Vector3,Vector4:t.Vector4};o.install({THREE:e}),n.extend({CameraControlsImpl:o})}),[]);const{camera:i,domElement:u,makeDefault:l,onStart:d,onEnd:m,onChange:v,regress:E,...f}=a,h=n.useThree((e=>e.camera)),p=n.useThree((e=>e.gl)),L=n.useThree((e=>e.invalidate)),b=n.useThree((e=>e.events)),T=n.useThree((e=>e.setEvents)),g=n.useThree((e=>e.set)),x=n.useThree((e=>e.get)),j=n.useThree((e=>e.performance)),M=i||h,O=u||b.connected||p.domElement,V=r.useMemo((()=>new o(M)),[M]);return n.useFrame(((e,t)=>{V.enabled&&V.update(t)}),-1),r.useEffect((()=>(V.connect(O),()=>{V.disconnect()})),[O,V]),r.useEffect((()=>{const e=e=>{L(),E&&j.regress(),v&&v(e)},t=e=>{d&&d(e)},r=e=>{m&&m(e)};return V.addEventListener("update",e),V.addEventListener("controlstart",t),V.addEventListener("controlend",r),V.addEventListener("control",e),V.addEventListener("transitionstart",e),V.addEventListener("wake",e),()=>{V.removeEventListener("update",e),V.removeEventListener("controlstart",t),V.removeEventListener("controlend",r),V.removeEventListener("control",e),V.removeEventListener("transitionstart",e),V.removeEventListener("wake",e)}}),[V,d,m,L,T,E,v]),r.useEffect((()=>{if(l){const e=x().controls;return g({controls:V}),()=>g({controls:e})}}),[l,V]),s.createElement("primitive",e({ref:c,object:V},f))}));exports.CameraControls=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),o=require("camera-controls");function a(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(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 c=a(e),u=s(r),i=a(o);const l=r.forwardRef(((e,o)=>{r.useMemo((()=>{const e={Box3:t.Box3,MathUtils:{clamp:t.MathUtils.clamp},Matrix4:t.Matrix4,Quaternion:t.Quaternion,Raycaster:t.Raycaster,Sphere:t.Sphere,Spherical:t.Spherical,Vector2:t.Vector2,Vector3:t.Vector3,Vector4:t.Vector4};i.default.install({THREE:e}),n.extend({CameraControlsImpl:i.default})}),[]);const{camera:a,domElement:s,makeDefault:l,onStart:d,onEnd:f,onChange:m,regress:v,...E}=e,p=n.useThree((e=>e.camera)),h=n.useThree((e=>e.gl)),b=n.useThree((e=>e.invalidate)),L=n.useThree((e=>e.events)),T=n.useThree((e=>e.setEvents)),g=n.useThree((e=>e.set)),j=n.useThree((e=>e.get)),x=n.useThree((e=>e.performance)),M=a||p,y=s||L.connected||h.domElement,O=r.useMemo((()=>new i.default(M)),[M]);return n.useFrame(((e,t)=>{O.enabled&&O.update(t)}),-1),r.useEffect((()=>(O.connect(y),()=>{O.disconnect()})),[y,O]),r.useEffect((()=>{const e=e=>{b(),v&&x.regress(),m&&m(e)},t=e=>{d&&d(e)},r=e=>{f&&f(e)};return O.addEventListener("update",e),O.addEventListener("controlstart",t),O.addEventListener("controlend",r),O.addEventListener("control",e),O.addEventListener("transitionstart",e),O.addEventListener("wake",e),()=>{O.removeEventListener("update",e),O.removeEventListener("controlstart",t),O.removeEventListener("controlend",r),O.removeEventListener("control",e),O.removeEventListener("transitionstart",e),O.removeEventListener("wake",e)}}),[O,d,f,b,T,v,m]),r.useEffect((()=>{if(l){const e=j().controls;return g({controls:O}),()=>g({controls:e})}}),[l,O]),u.createElement("primitive",c.default({ref:o,object:O},E))}));exports.CameraControls=l;
@@ -1 +1 @@
1
- "use strict";var e=require("react"),r=require("@react-three/fiber"),t=require("three-stdlib");function n(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=n(e);const u=c.forwardRef((({intensity:e=1,decay:n,decayRate:u=.65,maxYaw:a=.1,maxPitch:i=.1,maxRoll:s=.1,yawFrequency:o=.1,pitchFrequency:l=.1,rollFrequency:f=.1},m)=>{const d=r.useThree((e=>e.camera)),p=r.useThree((e=>e.controls)),y=c.useRef(e),h=c.useRef(d.rotation.clone()),[b]=c.useState((()=>new t.SimplexNoise)),[v]=c.useState((()=>new t.SimplexNoise)),[w]=c.useState((()=>new t.SimplexNoise)),x=()=>{(y.current<0||y.current>1)&&(y.current=y.current<0?0:1)};return c.useImperativeHandle(m,(()=>({getIntensity:()=>y.current,setIntensity:e=>{y.current=e,x()}})),[]),c.useEffect((()=>{if(p){const e=()=>{h.current=d.rotation.clone()};return p.addEventListener("change",e),e(),()=>{p.removeEventListener("change",e)}}}),[d,p]),r.useFrame(((e,r)=>{const t=Math.pow(y.current,2),c=a*t*b.noise(e.clock.elapsedTime*o,1),m=i*t*v.noise(e.clock.elapsedTime*l,1),p=s*t*w.noise(e.clock.elapsedTime*f,1);d.rotation.set(h.current.x+m,h.current.y+c,h.current.z+p),n&&y.current>0&&(y.current-=u*r,x())})),null}));exports.CameraShake=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber"),t=require("three-stdlib");function n(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=n(e);const u=c.forwardRef((({intensity:e=1,decay:n,decayRate:u=.65,maxYaw:a=.1,maxPitch:o=.1,maxRoll:s=.1,yawFrequency:i=.1,pitchFrequency:l=.1,rollFrequency:f=.1},d)=>{const m=r.useThree((e=>e.camera)),p=r.useThree((e=>e.controls)),y=c.useRef(e),h=c.useRef(m.rotation.clone()),[b]=c.useState((()=>new t.SimplexNoise)),[v]=c.useState((()=>new t.SimplexNoise)),[x]=c.useState((()=>new t.SimplexNoise)),w=()=>{(y.current<0||y.current>1)&&(y.current=y.current<0?0:1)};return c.useImperativeHandle(d,(()=>({getIntensity:()=>y.current,setIntensity:e=>{y.current=e,w()}})),[]),c.useEffect((()=>{if(p){const e=()=>{h.current=m.rotation.clone()};return p.addEventListener("change",e),e(),()=>{p.removeEventListener("change",e)}}}),[m,p]),r.useFrame(((e,r)=>{const t=Math.pow(y.current,2),c=a*t*b.noise(e.clock.elapsedTime*i,1),d=o*t*v.noise(e.clock.elapsedTime*l,1),p=s*t*x.noise(e.clock.elapsedTime*f,1);m.rotation.set(h.current.x+d,h.current.y+c,h.current.z+p),n&&y.current>0&&(y.current-=u*r,w())})),null}));exports.CameraShake=u;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("./Line.cjs.js");function o(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 s=o(t);const c=s.forwardRef((function({points:t,closed:o=!1,curveType:c="centripetal",tension:u=.5,segments:l=20,vertexColors:i,...a},f){const p=s.useMemo((()=>{const e=t.map((e=>e instanceof r.Vector3?e:new r.Vector3(...e)));return new r.CatmullRomCurve3(e,o,c,u)}),[t,o,c,u]),m=s.useMemo((()=>p.getPoints(l)),[p,l]),h=s.useMemo((()=>{if(!i||i.length<2)return;if(i.length===l+1)return i;const e=i.map((e=>e instanceof r.Color?e:new r.Color(...e)));o&&e.push(e[0].clone());const t=[e[0]],n=l/(e.length-1);for(let r=1;r<l;r++){const o=r%n/n,s=Math.floor(r/n);t.push(e[s].clone().lerp(e[s+1],o))}return t.push(e[e.length-1]),t}),[i,l]);return s.createElement(n.Line,e({ref:f,points:m,vertexColors:h},a))}));exports.CatmullRomLine=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("./Line.cjs.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(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)}require("@react-three/fiber"),require("three-stdlib");var s=o(e),c=u(t);const l=c.forwardRef((function({points:e,closed:t=!1,curveType:o="centripetal",tension:u=.5,segments:l=20,vertexColors:i,...f},a){const p=c.useMemo((()=>{const n=e.map((e=>e instanceof r.Vector3?e:new r.Vector3(...e)));return new r.CatmullRomCurve3(n,t,o,u)}),[e,t,o,u]),d=c.useMemo((()=>p.getPoints(l)),[p,l]),h=c.useMemo((()=>{if(!i||i.length<2)return;if(i.length===l+1)return i;const e=i.map((e=>e instanceof r.Color?e:new r.Color(...e)));t&&e.push(e[0].clone());const n=[e[0]],o=l/(e.length-1);for(let t=1;t<l;t++){const r=t%o/o,u=Math.floor(t/o);n.push(e[u].clone().lerp(e[u+1],r))}return n.push(e[e.length-1]),n}),[i,l]);return c.createElement(n.Line,s.default({ref:a,points:d,vertexColors:h},f))}));exports.CatmullRomLine=l;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),o=require("./useFBO.cjs.js"),i=require("./useHelper.cjs.js"),a=require("./shaderMaterial.cjs.js"),l=require("./Edges.cjs.js"),c=require("three-stdlib"),s=require("../helpers/constants.cjs.js");function u(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var d=u(r),m=u(t);function p(e=d.FrontSide){const r={value:new d.Matrix4};return Object.assign(new d.MeshNormalMaterial({side:e}),{viewMatrix:r,onBeforeCompile:e=>{e.uniforms.viewMatrix=r,e.fragmentShader="vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n }\n"+e.fragmentShader.replace("#include <normal_fragment_maps>","#include <normal_fragment_maps>\n normal = inverseTransformDirection( normal, viewMatrix );\n")}})}const v=a.shaderMaterial({causticsTexture:null,causticsTextureB:null,color:new d.Color,lightProjMatrix:new d.Matrix4,lightViewMatrix:new d.Matrix4},"varying vec3 vWorldPosition; \n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vec4 worldPosition = modelMatrix * vec4(position, 1.);\n vWorldPosition = worldPosition.xyz;\n }",`varying vec3 vWorldPosition;\n uniform vec3 color;\n uniform sampler2D causticsTexture; \n uniform sampler2D causticsTextureB; \n uniform mat4 lightProjMatrix;\n uniform mat4 lightViewMatrix;\n void main() {\n // Apply caustics \n vec4 lightSpacePos = lightProjMatrix * lightViewMatrix * vec4(vWorldPosition, 1.0);\n lightSpacePos.xyz /= lightSpacePos.w;\n lightSpacePos.xyz = lightSpacePos.xyz * 0.5 + 0.5; \n vec3 front = texture2D(causticsTexture, lightSpacePos.xy).rgb;\n vec3 back = texture2D(causticsTextureB, lightSpacePos.xy).rgb;\n gl_FragColor = vec4((front + back) * color, 1.0);\n #include <tonemapping_fragment>\n #include <${s.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`),f=a.shaderMaterial({cameraMatrixWorld:new d.Matrix4,cameraProjectionMatrixInv:new d.Matrix4,normalTexture:null,depthTexture:null,lightDir:new d.Vector3(0,1,0),lightPlaneNormal:new d.Vector3(0,1,0),lightPlaneConstant:0,near:.1,far:100,modelMatrix:new d.Matrix4,worldRadius:1/40,ior:1.1,bounces:0,resolution:1024,size:10,intensity:.5},"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }"," \n uniform mat4 cameraMatrixWorld;\n uniform mat4 cameraProjectionMatrixInv;\n uniform vec3 lightDir;\n uniform vec3 lightPlaneNormal;\n uniform float lightPlaneConstant;\n uniform float near;\n uniform float far;\n uniform float time;\n uniform float worldRadius;\n uniform float resolution;\n uniform float size;\n uniform float intensity;\n uniform float ior;\n precision highp isampler2D;\n precision highp usampler2D;\n uniform sampler2D normalTexture;\n uniform sampler2D depthTexture;\n uniform float bounces;\n varying vec2 vUv;\n vec3 WorldPosFromDepth(float depth, vec2 coord) {\n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = cameraProjectionMatrixInv * clipSpacePosition;\n // Perspective division\n viewSpacePosition /= viewSpacePosition.w;\n vec4 worldSpacePosition = cameraMatrixWorld * viewSpacePosition;\n return worldSpacePosition.xyz;\n } \n float sdPlane( vec3 p, vec3 n, float h ) {\n // n must be normalized\n return dot(p,n) + h;\n }\n float planeIntersect( vec3 ro, vec3 rd, vec4 p ) {\n return -(dot(ro,p.xyz)+p.w)/dot(rd,p.xyz);\n }\n vec3 totalInternalReflection(vec3 ro, vec3 rd, vec3 pos, vec3 normal, float ior, out vec3 rayOrigin, out vec3 rayDirection) {\n rayOrigin = ro;\n rayDirection = rd;\n rayDirection = refract(rayDirection, normal, 1.0 / ior);\n rayOrigin = pos + rayDirection * 0.1;\n return rayDirection;\n }\n void main() {\n // Each sample consists of random offset in the x and y direction\n float caustic = 0.0;\n float causticTexelSize = (1.0 / resolution) * size * 2.0;\n float texelsNeeded = worldRadius / causticTexelSize;\n float sampleRadius = texelsNeeded / resolution;\n float sum = 0.0;\n if (texture2D(depthTexture, vUv).x == 1.0) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n return;\n }\n vec2 offset1 = vec2(-0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset2 = vec2(-0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset3 = vec2(0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset4 = vec2(0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 uv1 = vUv + offset1 * sampleRadius;\n vec2 uv2 = vUv + offset2 * sampleRadius;\n vec2 uv3 = vUv + offset3 * sampleRadius;\n vec2 uv4 = vUv + offset4 * sampleRadius;\n vec3 normal1 = texture2D(normalTexture, uv1, -10.0).rgb * 2.0 - 1.0;\n vec3 normal2 = texture2D(normalTexture, uv2, -10.0).rgb * 2.0 - 1.0;\n vec3 normal3 = texture2D(normalTexture, uv3, -10.0).rgb * 2.0 - 1.0;\n vec3 normal4 = texture2D(normalTexture, uv4, -10.0).rgb * 2.0 - 1.0;\n float depth1 = texture2D(depthTexture, uv1, -10.0).x;\n float depth2 = texture2D(depthTexture, uv2, -10.0).x;\n float depth3 = texture2D(depthTexture, uv3, -10.0).x;\n float depth4 = texture2D(depthTexture, uv4, -10.0).x;\n // Sanity check the depths\n if (depth1 == 1.0 || depth2 == 1.0 || depth3 == 1.0 || depth4 == 1.0) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n return;\n }\n vec3 pos1 = WorldPosFromDepth(depth1, uv1);\n vec3 pos2 = WorldPosFromDepth(depth2, uv2);\n vec3 pos3 = WorldPosFromDepth(depth3, uv3);\n vec3 pos4 = WorldPosFromDepth(depth4, uv4);\n vec3 originPos1 = WorldPosFromDepth(0.0, uv1);\n vec3 originPos2 = WorldPosFromDepth(0.0, uv2);\n vec3 originPos3 = WorldPosFromDepth(0.0, uv3);\n vec3 originPos4 = WorldPosFromDepth(0.0, uv4);\n vec3 endPos1, endPos2, endPos3, endPos4;\n vec3 endDir1, endDir2, endDir3, endDir4;\n totalInternalReflection(originPos1, lightDir, pos1, normal1, ior, endPos1, endDir1);\n totalInternalReflection(originPos2, lightDir, pos2, normal2, ior, endPos2, endDir2);\n totalInternalReflection(originPos3, lightDir, pos3, normal3, ior, endPos3, endDir3);\n totalInternalReflection(originPos4, lightDir, pos4, normal4, ior, endPos4, endDir4);\n float lightPosArea = length(cross(originPos2 - originPos1, originPos3 - originPos1)) + length(cross(originPos3 - originPos1, originPos4 - originPos1));\n float t1 = planeIntersect(endPos1, endDir1, vec4(lightPlaneNormal, lightPlaneConstant));\n float t2 = planeIntersect(endPos2, endDir2, vec4(lightPlaneNormal, lightPlaneConstant));\n float t3 = planeIntersect(endPos3, endDir3, vec4(lightPlaneNormal, lightPlaneConstant));\n float t4 = planeIntersect(endPos4, endDir4, vec4(lightPlaneNormal, lightPlaneConstant));\n vec3 finalPos1 = endPos1 + endDir1 * t1;\n vec3 finalPos2 = endPos2 + endDir2 * t2;\n vec3 finalPos3 = endPos3 + endDir3 * t3;\n vec3 finalPos4 = endPos4 + endDir4 * t4;\n float finalArea = length(cross(finalPos2 - finalPos1, finalPos3 - finalPos1)) + length(cross(finalPos3 - finalPos1, finalPos4 - finalPos1));\n caustic += intensity * (lightPosArea / finalArea);\n // Calculate the area of the triangle in light spaces\n gl_FragColor = vec4(vec3(max(caustic, 0.0)), 1.0);\n }"),x={depth:!0,minFilter:d.LinearFilter,magFilter:d.LinearFilter,type:d.UnsignedByteType},h={minFilter:d.LinearMipmapLinearFilter,magFilter:d.LinearFilter,type:d.FloatType,generateMipmaps:!0},g=m.forwardRef((({debug:r,children:t,frames:a=1,ior:s=1.1,color:u="white",causticsOnly:g=!1,backside:P=!1,backsideIOR:y=1.1,worldRadius:M=.3125,intensity:D=.05,resolution:w=2024,lightSource:T=[5,5,5],...S},j)=>{n.extend({CausticsProjectionMaterial:v});const F=m.useRef(null),b=m.useRef(null),z=m.useRef(null),W=m.useRef(null),R=n.useThree((e=>e.gl)),I=i.useHelper(r&&b,d.CameraHelper),C=o.useFBO(w,w,x),O=o.useFBO(w,w,x),V=o.useFBO(w,w,h),B=o.useFBO(w,w,h),[E]=m.useState((()=>p())),[_]=m.useState((()=>p(d.BackSide))),[A]=m.useState((()=>new f)),[q]=m.useState((()=>new c.FullScreenQuad(A)));m.useLayoutEffect((()=>{F.current.updateWorldMatrix(!1,!0)}));let N=0;const k=new d.Vector3,U=new d.Frustum,L=new d.Matrix4,H=new d.Plane,G=new d.Vector3,Q=new d.Vector3,$=new d.Box3,J=new d.Vector3,K=[],X=[],Y=[],Z=[],ee=new d.Vector3;for(let e=0;e<8;e++)K.push(new d.Vector3),X.push(new d.Vector3),Y.push(new d.Vector3),Z.push(new d.Vector3);return n.useFrame((()=>{if(a===1/0||N++<a){var e,t;Array.isArray(T)?G.fromArray(T).normalize():G.copy(F.current.worldToLocal(T.current.getWorldPosition(k)).normalize()),Q.copy(G).multiplyScalar(-1),null==(e=z.current.parent)||e.matrixWorld.identity(),$.setFromObject(z.current,!0),K[0].set($.min.x,$.min.y,$.min.z),K[1].set($.min.x,$.min.y,$.max.z),K[2].set($.min.x,$.max.y,$.min.z),K[3].set($.min.x,$.max.y,$.max.z),K[4].set($.max.x,$.min.y,$.min.z),K[5].set($.max.x,$.min.y,$.max.z),K[6].set($.max.x,$.max.y,$.min.z),K[7].set($.max.x,$.max.y,$.max.z);for(let e=0;e<8;e++)X[e].copy(K[e]);$.getCenter(J),K.map((e=>e.sub(J)));const n=H.set(Q,0);K.map(((e,r)=>n.projectPoint(e,Y[r])));const o=Y.reduce(((e,r)=>e.add(r)),k.set(0,0,0)).divideScalar(Y.length),i=Y.map((e=>e.distanceTo(o))).reduce(((e,r)=>Math.max(e,r))),a=K.map((e=>e.dot(G))).reduce(((e,r)=>Math.max(e,r)));b.current.position.copy(ee.copy(G).multiplyScalar(a).add(J)),b.current.lookAt(z.current.localToWorld(J));const l=L.lookAt(b.current.position,J,k.set(0,1,0));b.current.left=-i,b.current.right=i,b.current.top=i,b.current.bottom=-i;const c=k.set(0,i,0).applyMatrix4(l),u=(b.current.position.y+c.y)/G.y;b.current.near=.1,b.current.far=u,b.current.updateProjectionMatrix(),b.current.updateMatrixWorld();const d=X.map(((e,r)=>e.add(Z[r].copy(G).multiplyScalar(-e.y/G.y)))),m=d.reduce(((e,r)=>e.add(r)),k.set(0,0,0)).divideScalar(d.length),p=2*d.map((e=>Math.hypot(e.x-m.x,e.z-m.z))).reduce(((e,r)=>Math.max(e,r)));W.current.scale.setScalar(p),W.current.position.copy(m),r&&(null==(t=I.current)||t.update()),_.viewMatrix.value=E.viewMatrix.value=b.current.matrixWorldInverse;const v=U.setFromProjectionMatrix(L.multiplyMatrices(b.current.projectionMatrix,b.current.matrixWorldInverse)).planes[4];A.cameraMatrixWorld=b.current.matrixWorld,A.cameraProjectionMatrixInv=b.current.projectionMatrixInverse,A.lightDir=Q,A.lightPlaneNormal=v.normal,A.lightPlaneConstant=v.constant,A.near=b.current.near,A.far=b.current.far,A.resolution=w,A.size=i,A.intensity=D,A.worldRadius=M,z.current.visible=!0,R.setRenderTarget(C),R.clear(),z.current.overrideMaterial=E,R.render(z.current,b.current),R.setRenderTarget(O),R.clear(),P&&(z.current.overrideMaterial=_,R.render(z.current,b.current)),z.current.overrideMaterial=null,A.ior=s,W.current.material.lightProjMatrix=b.current.projectionMatrix,W.current.material.lightViewMatrix=b.current.matrixWorldInverse,A.normalTexture=C.texture,A.depthTexture=C.depthTexture,R.setRenderTarget(V),R.clear(),q.render(R),A.ior=y,A.normalTexture=O.texture,A.depthTexture=O.depthTexture,R.setRenderTarget(B),R.clear(),P&&q.render(R),R.setRenderTarget(null),g&&(z.current.visible=!1)}})),m.useImperativeHandle(j,(()=>F.current),[]),m.createElement("group",e({ref:F},S),m.createElement("scene",{ref:z},m.createElement("orthographicCamera",{ref:b,up:[0,1,0]}),t),m.createElement("mesh",{renderOrder:2,ref:W,"rotation-x":-Math.PI/2},m.createElement("planeGeometry",null),m.createElement("causticsProjectionMaterial",{transparent:!0,color:u,causticsTexture:V.texture,causticsTextureB:B.texture,blending:d.CustomBlending,blendSrc:d.OneFactor,blendDst:d.SrcAlphaFactor,depthWrite:!1}),r&&m.createElement(l.Edges,null,m.createElement("lineBasicMaterial",{color:"#ffff00",toneMapped:!1}))))}));exports.Caustics=g;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),o=require("./useFBO.cjs.js"),i=require("./useHelper.cjs.js"),a=require("./shaderMaterial.cjs.js"),l=require("./Edges.cjs.js"),c=require("three-stdlib"),s=require("../helpers/constants.cjs.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function d(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var m=u(e),p=d(r),v=d(t);function f(e=p.FrontSide){const r={value:new p.Matrix4};return Object.assign(new p.MeshNormalMaterial({side:e}),{viewMatrix:r,onBeforeCompile:e=>{e.uniforms.viewMatrix=r,e.fragmentShader="vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n }\n"+e.fragmentShader.replace("#include <normal_fragment_maps>","#include <normal_fragment_maps>\n normal = inverseTransformDirection( normal, viewMatrix );\n")}})}const x=a.shaderMaterial({causticsTexture:null,causticsTextureB:null,color:new p.Color,lightProjMatrix:new p.Matrix4,lightViewMatrix:new p.Matrix4},"varying vec3 vWorldPosition; \n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vec4 worldPosition = modelMatrix * vec4(position, 1.);\n vWorldPosition = worldPosition.xyz;\n }",`varying vec3 vWorldPosition;\n uniform vec3 color;\n uniform sampler2D causticsTexture; \n uniform sampler2D causticsTextureB; \n uniform mat4 lightProjMatrix;\n uniform mat4 lightViewMatrix;\n void main() {\n // Apply caustics \n vec4 lightSpacePos = lightProjMatrix * lightViewMatrix * vec4(vWorldPosition, 1.0);\n lightSpacePos.xyz /= lightSpacePos.w;\n lightSpacePos.xyz = lightSpacePos.xyz * 0.5 + 0.5; \n vec3 front = texture2D(causticsTexture, lightSpacePos.xy).rgb;\n vec3 back = texture2D(causticsTextureB, lightSpacePos.xy).rgb;\n gl_FragColor = vec4((front + back) * color, 1.0);\n #include <tonemapping_fragment>\n #include <${s.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`),h=a.shaderMaterial({cameraMatrixWorld:new p.Matrix4,cameraProjectionMatrixInv:new p.Matrix4,normalTexture:null,depthTexture:null,lightDir:new p.Vector3(0,1,0),lightPlaneNormal:new p.Vector3(0,1,0),lightPlaneConstant:0,near:.1,far:100,modelMatrix:new p.Matrix4,worldRadius:1/40,ior:1.1,bounces:0,resolution:1024,size:10,intensity:.5},"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }"," \n uniform mat4 cameraMatrixWorld;\n uniform mat4 cameraProjectionMatrixInv;\n uniform vec3 lightDir;\n uniform vec3 lightPlaneNormal;\n uniform float lightPlaneConstant;\n uniform float near;\n uniform float far;\n uniform float time;\n uniform float worldRadius;\n uniform float resolution;\n uniform float size;\n uniform float intensity;\n uniform float ior;\n precision highp isampler2D;\n precision highp usampler2D;\n uniform sampler2D normalTexture;\n uniform sampler2D depthTexture;\n uniform float bounces;\n varying vec2 vUv;\n vec3 WorldPosFromDepth(float depth, vec2 coord) {\n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = cameraProjectionMatrixInv * clipSpacePosition;\n // Perspective division\n viewSpacePosition /= viewSpacePosition.w;\n vec4 worldSpacePosition = cameraMatrixWorld * viewSpacePosition;\n return worldSpacePosition.xyz;\n } \n float sdPlane( vec3 p, vec3 n, float h ) {\n // n must be normalized\n return dot(p,n) + h;\n }\n float planeIntersect( vec3 ro, vec3 rd, vec4 p ) {\n return -(dot(ro,p.xyz)+p.w)/dot(rd,p.xyz);\n }\n vec3 totalInternalReflection(vec3 ro, vec3 rd, vec3 pos, vec3 normal, float ior, out vec3 rayOrigin, out vec3 rayDirection) {\n rayOrigin = ro;\n rayDirection = rd;\n rayDirection = refract(rayDirection, normal, 1.0 / ior);\n rayOrigin = pos + rayDirection * 0.1;\n return rayDirection;\n }\n void main() {\n // Each sample consists of random offset in the x and y direction\n float caustic = 0.0;\n float causticTexelSize = (1.0 / resolution) * size * 2.0;\n float texelsNeeded = worldRadius / causticTexelSize;\n float sampleRadius = texelsNeeded / resolution;\n float sum = 0.0;\n if (texture2D(depthTexture, vUv).x == 1.0) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n return;\n }\n vec2 offset1 = vec2(-0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset2 = vec2(-0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset3 = vec2(0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset4 = vec2(0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 uv1 = vUv + offset1 * sampleRadius;\n vec2 uv2 = vUv + offset2 * sampleRadius;\n vec2 uv3 = vUv + offset3 * sampleRadius;\n vec2 uv4 = vUv + offset4 * sampleRadius;\n vec3 normal1 = texture2D(normalTexture, uv1, -10.0).rgb * 2.0 - 1.0;\n vec3 normal2 = texture2D(normalTexture, uv2, -10.0).rgb * 2.0 - 1.0;\n vec3 normal3 = texture2D(normalTexture, uv3, -10.0).rgb * 2.0 - 1.0;\n vec3 normal4 = texture2D(normalTexture, uv4, -10.0).rgb * 2.0 - 1.0;\n float depth1 = texture2D(depthTexture, uv1, -10.0).x;\n float depth2 = texture2D(depthTexture, uv2, -10.0).x;\n float depth3 = texture2D(depthTexture, uv3, -10.0).x;\n float depth4 = texture2D(depthTexture, uv4, -10.0).x;\n // Sanity check the depths\n if (depth1 == 1.0 || depth2 == 1.0 || depth3 == 1.0 || depth4 == 1.0) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n return;\n }\n vec3 pos1 = WorldPosFromDepth(depth1, uv1);\n vec3 pos2 = WorldPosFromDepth(depth2, uv2);\n vec3 pos3 = WorldPosFromDepth(depth3, uv3);\n vec3 pos4 = WorldPosFromDepth(depth4, uv4);\n vec3 originPos1 = WorldPosFromDepth(0.0, uv1);\n vec3 originPos2 = WorldPosFromDepth(0.0, uv2);\n vec3 originPos3 = WorldPosFromDepth(0.0, uv3);\n vec3 originPos4 = WorldPosFromDepth(0.0, uv4);\n vec3 endPos1, endPos2, endPos3, endPos4;\n vec3 endDir1, endDir2, endDir3, endDir4;\n totalInternalReflection(originPos1, lightDir, pos1, normal1, ior, endPos1, endDir1);\n totalInternalReflection(originPos2, lightDir, pos2, normal2, ior, endPos2, endDir2);\n totalInternalReflection(originPos3, lightDir, pos3, normal3, ior, endPos3, endDir3);\n totalInternalReflection(originPos4, lightDir, pos4, normal4, ior, endPos4, endDir4);\n float lightPosArea = length(cross(originPos2 - originPos1, originPos3 - originPos1)) + length(cross(originPos3 - originPos1, originPos4 - originPos1));\n float t1 = planeIntersect(endPos1, endDir1, vec4(lightPlaneNormal, lightPlaneConstant));\n float t2 = planeIntersect(endPos2, endDir2, vec4(lightPlaneNormal, lightPlaneConstant));\n float t3 = planeIntersect(endPos3, endDir3, vec4(lightPlaneNormal, lightPlaneConstant));\n float t4 = planeIntersect(endPos4, endDir4, vec4(lightPlaneNormal, lightPlaneConstant));\n vec3 finalPos1 = endPos1 + endDir1 * t1;\n vec3 finalPos2 = endPos2 + endDir2 * t2;\n vec3 finalPos3 = endPos3 + endDir3 * t3;\n vec3 finalPos4 = endPos4 + endDir4 * t4;\n float finalArea = length(cross(finalPos2 - finalPos1, finalPos3 - finalPos1)) + length(cross(finalPos3 - finalPos1, finalPos4 - finalPos1));\n caustic += intensity * (lightPosArea / finalArea);\n // Calculate the area of the triangle in light spaces\n gl_FragColor = vec4(vec3(max(caustic, 0.0)), 1.0);\n }"),g={depth:!0,minFilter:p.LinearFilter,magFilter:p.LinearFilter,type:p.UnsignedByteType},P={minFilter:p.LinearMipmapLinearFilter,magFilter:p.LinearFilter,type:p.FloatType,generateMipmaps:!0},y=v.forwardRef((({debug:e,children:r,frames:t=1,ior:a=1.1,color:s="white",causticsOnly:u=!1,backside:d=!1,backsideIOR:y=1.1,worldRadius:M=.3125,intensity:D=.05,resolution:w=2024,lightSource:T=[5,5,5],...j},S)=>{n.extend({CausticsProjectionMaterial:x});const b=v.useRef(null),F=v.useRef(null),z=v.useRef(null),W=v.useRef(null),R=n.useThree((e=>e.gl)),I=i.useHelper(e&&F,p.CameraHelper),O=o.useFBO(w,w,g),C=o.useFBO(w,w,g),_=o.useFBO(w,w,P),V=o.useFBO(w,w,P),[B]=v.useState((()=>f())),[E]=v.useState((()=>f(p.BackSide))),[A]=v.useState((()=>new h)),[q]=v.useState((()=>new c.FullScreenQuad(A)));v.useLayoutEffect((()=>{b.current.updateWorldMatrix(!1,!0)}));let N=0;const k=new p.Vector3,U=new p.Frustum,L=new p.Matrix4,H=new p.Plane,G=new p.Vector3,Q=new p.Vector3,$=new p.Box3,J=new p.Vector3,K=[],X=[],Y=[],Z=[],ee=new p.Vector3;for(let e=0;e<8;e++)K.push(new p.Vector3),X.push(new p.Vector3),Y.push(new p.Vector3),Z.push(new p.Vector3);return n.useFrame((()=>{if(t===1/0||N++<t){var r,n;Array.isArray(T)?G.fromArray(T).normalize():G.copy(b.current.worldToLocal(T.current.getWorldPosition(k)).normalize()),Q.copy(G).multiplyScalar(-1),null==(r=z.current.parent)||r.matrixWorld.identity(),$.setFromObject(z.current,!0),K[0].set($.min.x,$.min.y,$.min.z),K[1].set($.min.x,$.min.y,$.max.z),K[2].set($.min.x,$.max.y,$.min.z),K[3].set($.min.x,$.max.y,$.max.z),K[4].set($.max.x,$.min.y,$.min.z),K[5].set($.max.x,$.min.y,$.max.z),K[6].set($.max.x,$.max.y,$.min.z),K[7].set($.max.x,$.max.y,$.max.z);for(let e=0;e<8;e++)X[e].copy(K[e]);$.getCenter(J),K.map((e=>e.sub(J)));const t=H.set(Q,0);K.map(((e,r)=>t.projectPoint(e,Y[r])));const o=Y.reduce(((e,r)=>e.add(r)),k.set(0,0,0)).divideScalar(Y.length),i=Y.map((e=>e.distanceTo(o))).reduce(((e,r)=>Math.max(e,r))),l=K.map((e=>e.dot(G))).reduce(((e,r)=>Math.max(e,r)));F.current.position.copy(ee.copy(G).multiplyScalar(l).add(J)),F.current.lookAt(z.current.localToWorld(J));const c=L.lookAt(F.current.position,J,k.set(0,1,0));F.current.left=-i,F.current.right=i,F.current.top=i,F.current.bottom=-i;const s=k.set(0,i,0).applyMatrix4(c),m=(F.current.position.y+s.y)/G.y;F.current.near=.1,F.current.far=m,F.current.updateProjectionMatrix(),F.current.updateMatrixWorld();const p=X.map(((e,r)=>e.add(Z[r].copy(G).multiplyScalar(-e.y/G.y)))),v=p.reduce(((e,r)=>e.add(r)),k.set(0,0,0)).divideScalar(p.length),f=2*p.map((e=>Math.hypot(e.x-v.x,e.z-v.z))).reduce(((e,r)=>Math.max(e,r)));W.current.scale.setScalar(f),W.current.position.copy(v),e&&(null==(n=I.current)||n.update()),E.viewMatrix.value=B.viewMatrix.value=F.current.matrixWorldInverse;const x=U.setFromProjectionMatrix(L.multiplyMatrices(F.current.projectionMatrix,F.current.matrixWorldInverse)).planes[4];A.cameraMatrixWorld=F.current.matrixWorld,A.cameraProjectionMatrixInv=F.current.projectionMatrixInverse,A.lightDir=Q,A.lightPlaneNormal=x.normal,A.lightPlaneConstant=x.constant,A.near=F.current.near,A.far=F.current.far,A.resolution=w,A.size=i,A.intensity=D,A.worldRadius=M,z.current.visible=!0,R.setRenderTarget(O),R.clear(),z.current.overrideMaterial=B,R.render(z.current,F.current),R.setRenderTarget(C),R.clear(),d&&(z.current.overrideMaterial=E,R.render(z.current,F.current)),z.current.overrideMaterial=null,A.ior=a,W.current.material.lightProjMatrix=F.current.projectionMatrix,W.current.material.lightViewMatrix=F.current.matrixWorldInverse,A.normalTexture=O.texture,A.depthTexture=O.depthTexture,R.setRenderTarget(_),R.clear(),q.render(R),A.ior=y,A.normalTexture=C.texture,A.depthTexture=C.depthTexture,R.setRenderTarget(V),R.clear(),d&&q.render(R),R.setRenderTarget(null),u&&(z.current.visible=!1)}})),v.useImperativeHandle(S,(()=>b.current),[]),v.createElement("group",m.default({ref:b},j),v.createElement("scene",{ref:z},v.createElement("orthographicCamera",{ref:F,up:[0,1,0]}),r),v.createElement("mesh",{renderOrder:2,ref:W,"rotation-x":-Math.PI/2},v.createElement("planeGeometry",null),v.createElement("causticsProjectionMaterial",{transparent:!0,color:s,causticsTexture:_.texture,causticsTextureB:V.texture,blending:p.CustomBlending,blendSrc:p.OneFactor,blendDst:p.SrcAlphaFactor,depthWrite:!1}),e&&v.createElement(l.Edges,null,v.createElement("lineBasicMaterial",{color:"#ffff00",toneMapped:!1}))))}));exports.Caustics=y;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three");function r(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 n=r(require("react"));const i=n.forwardRef((function({children:r,disable:i,disableX:c,disableY:o,disableZ:u,left:a,right:l,top:s,bottom:f,front:d,back:p,onCentered:m,precise:b=!0,cacheKey:g=0,...h},x){const y=n.useRef(null),v=n.useRef(null),O=n.useRef(null);return n.useLayoutEffect((()=>{v.current.matrixWorld.identity();const e=(new t.Box3).setFromObject(O.current,b),r=new t.Vector3,n=new t.Sphere,g=e.max.x-e.min.x,h=e.max.y-e.min.y,x=e.max.z-e.min.z;e.getCenter(r),e.getBoundingSphere(n);const j=s?h/2:f?-h/2:0,w=a?-g/2:l?g/2:0,z=d?x/2:p?-x/2:0;v.current.position.set(i||c?0:-r.x+w,i||o?0:-r.y+j,i||u?0:-r.z+z),void 0!==m&&m({parent:y.current.parent,container:y.current,width:g,height:h,depth:x,boundingBox:e,boundingSphere:n,center:r,verticalAlignment:j,horizontalAlignment:w,depthAlignment:z})}),[g,m,s,a,d,i,c,o,u,b,l,f,p]),n.useImperativeHandle(x,(()=>y.current),[]),n.createElement("group",e({ref:y},h),n.createElement("group",{ref:v},n.createElement("group",{ref:O},r)))}));exports.Center=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(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=n(e),o=u(r);const c=o.forwardRef((function({children:e,disable:r,disableX:n,disableY:u,disableZ:c,left:a,right:l,top:f,bottom:d,front:s,back:p,onCentered:b,precise:m=!0,cacheKey:g=0,...h},x){const y=o.useRef(null),j=o.useRef(null),v=o.useRef(null);return o.useLayoutEffect((()=>{j.current.matrixWorld.identity();const e=(new t.Box3).setFromObject(v.current,m),i=new t.Vector3,o=new t.Sphere,g=e.max.x-e.min.x,h=e.max.y-e.min.y,x=e.max.z-e.min.z;e.getCenter(i),e.getBoundingSphere(o);const O=f?h/2:d?-h/2:0,w=a?-g/2:l?g/2:0,z=s?x/2:p?-x/2:0;j.current.position.set(r||n?0:-i.x+w,r||u?0:-i.y+O,r||c?0:-i.z+z),void 0!==b&&b({parent:y.current.parent,container:y.current,width:g,height:h,depth:x,boundingBox:e,boundingSphere:o,center:i,verticalAlignment:O,horizontalAlignment:w,depthAlignment:z})}),[g,b,f,a,s,r,n,u,c,m,l,d,p]),o.useImperativeHandle(x,(()=>y.current),[]),o.createElement("group",i.default({ref:y},h),o.createElement("group",{ref:j},o.createElement("group",{ref:v},e)))}));exports.Center=c;
package/core/Clone.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),i=require("three-stdlib");function n(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,i.get?i:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var a=n(r),o=n(t);const c=o.forwardRef((({isChild:r=!1,object:t,children:n,deep:s,castShadow:l,receiveShadow:d,inject:u,keys:m,...y},h)=>{const f={keys:m,deep:s,inject:u,castShadow:l,receiveShadow:d};if(t=o.useMemo((()=>{if(!1===r&&!Array.isArray(t)){let e=!1;if(t.traverse((r=>{r.isSkinnedMesh&&(e=!0)})),e)return i.SkeletonUtils.clone(t)}return t}),[t,r]),Array.isArray(t))return o.createElement("group",e({},y,{ref:h}),t.map((r=>o.createElement(c,e({key:r.uuid,object:r},f)))),n);const{children:p,...b}=function(e,{keys:r=["near","far","color","distance","decay","penumbra","angle","intensity","skeleton","visible","castShadow","receiveShadow","morphTargetDictionary","morphTargetInfluences","name","geometry","material","position","rotation","scale","up","userData","bindMode","bindMatrix","bindMatrixInverse","skeleton"],deep:t,inject:i,castShadow:n,receiveShadow:c}){let s={};for(const t of r)s[t]=e[t];return t&&(s.geometry&&"materialsOnly"!==t&&(s.geometry=s.geometry.clone()),s.material&&"geometriesOnly"!==t&&(s.material=s.material.clone())),i&&(s="function"==typeof i?{...s,children:i(e)}:o.isValidElement(i)?{...s,children:i}:{...s,...i}),e instanceof a.Mesh&&(n&&(s.castShadow=!0),c&&(s.receiveShadow=!0)),s}(t,f),v=t.type[0].toLowerCase()+t.type.slice(1);return o.createElement(v,e({},b,y,{ref:h}),t.children.map((r=>"Bone"===r.type?o.createElement("primitive",e({key:r.uuid,object:r},f)):o.createElement(c,e({key:r.uuid,object:r},f,{isChild:!0})))),n,p)}));exports.Clone=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("three-stdlib");function a(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 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 o=a(e),c=i(t),l=i(r);const s=l.forwardRef((({isChild:e=!1,object:t,children:r,deep:a,castShadow:i,receiveShadow:d,inject:u,keys:f,...y},m)=>{const h={keys:f,deep:a,inject:u,castShadow:i,receiveShadow:d};if(t=l.useMemo((()=>{if(!1===e&&!Array.isArray(t)){let e=!1;if(t.traverse((t=>{t.isSkinnedMesh&&(e=!0)})),e)return n.SkeletonUtils.clone(t)}return t}),[t,e]),Array.isArray(t))return l.createElement("group",o.default({},y,{ref:m}),t.map((e=>l.createElement(s,o.default({key:e.uuid,object:e},h)))),r);const{children:p,...b}=function(e,{keys:t=["near","far","color","distance","decay","penumbra","angle","intensity","skeleton","visible","castShadow","receiveShadow","morphTargetDictionary","morphTargetInfluences","name","geometry","material","position","rotation","scale","up","userData","bindMode","bindMatrix","bindMatrixInverse","skeleton"],deep:r,inject:n,castShadow:a,receiveShadow:i}){let o={};for(const r of t)o[r]=e[r];return r&&(o.geometry&&"materialsOnly"!==r&&(o.geometry=o.geometry.clone()),o.material&&"geometriesOnly"!==r&&(o.material=o.material.clone())),n&&(o="function"==typeof n?{...o,children:n(e)}:l.isValidElement(n)?{...o,children:n}:{...o,...n}),e instanceof c.Mesh&&(a&&(o.castShadow=!0),i&&(o.receiveShadow=!0)),o}(t,h),j=t.type[0].toLowerCase()+t.type.slice(1);return l.createElement(j,o.default({},b,y,{ref:m}),t.children.map((e=>"Bone"===e.type?l.createElement("primitive",o.default({key:e.uuid,object:e},h)):l.createElement(s,o.default({key:e.uuid,object:e},h,{isChild:!0})))),r,p)}));exports.Clone=s;
package/core/Cloud.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("@react-three/fiber"),a=require("./useTexture.cjs.js"),o=require("uuid"),u=require("../helpers/deprecated.cjs.js");function c(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=c(t);const s=new r.Matrix4,l=new r.Vector3,d=new r.Quaternion,m=new r.Vector3,f=new r.Quaternion,p=new r.Vector3,g=i.createContext(null),h=i.forwardRef((({children:t,material:o=r.MeshLambertMaterial,texture:c="https://rawcdn.githack.com/pmndrs/drei-assets/9225a9f1fbd449d9411125c2f419b843d0308c9f/cloud.png",range:h,limit:y=200,...x},v)=>{var b,M;const w=i.useMemo((()=>class extends o{constructor(){super();const e=parseInt(r.REVISION.replace(/\D+/g,""))>=154?"opaque_fragment":"output_fragment";this.onBeforeCompile=t=>{t.vertexShader="attribute float opacity;\n varying float vOpacity;\n "+t.vertexShader.replace("#include <fog_vertex>","#include <fog_vertex>\n vOpacity = opacity;\n "),t.fragmentShader="varying float vOpacity;\n "+t.fragmentShader.replace(`#include <${e}>`,`#include <${e}>\n gl_FragColor = vec4(outgoingLight, diffuseColor.a * vOpacity);\n `)}}}),[o]);n.extend({CloudMaterial:w});const E=i.useRef(null),C=i.useRef([]),A=i.useMemo((()=>new Float32Array(Array.from({length:y},(()=>1)))),[y]),O=i.useMemo((()=>new Float32Array(Array.from({length:y},(()=>[1,1,1])).flat())),[y]),R=a.useTexture(c);let j,U=0,V=0;const q=new r.Quaternion,F=new r.Vector3(0,0,1),S=new r.Vector3;n.useFrame(((e,t)=>{for(U=e.clock.getElapsedTime(),s.copy(E.current.matrixWorld).invert(),e.camera.matrixWorld.decompose(m,f,p),V=0;V<C.current.length;V++)j=C.current[V],j.ref.current.matrixWorld.decompose(l,d,p),l.add(S.copy(j.position).applyQuaternion(d).multiply(p)),d.copy(f).multiply(q.setFromAxisAngle(F,j.rotation+=t*j.rotationFactor)),p.multiplyScalar(j.volume+(1+Math.sin(U*j.density*j.speed))/2*j.growth),j.matrix.compose(l,d,p).premultiply(s),j.dist=l.distanceTo(m);for(C.current.sort(((e,t)=>t.dist-e.dist)),V=0;V<C.current.length;V++)j=C.current[V],A[V]=j.opacity*(j.dist<j.fade-1?j.dist/j.fade:1),E.current.setMatrixAt(V,j.matrix),E.current.setColorAt(V,j.color);E.current.geometry.attributes.opacity.needsUpdate=!0,E.current.instanceMatrix.needsUpdate=!0,E.current.instanceColor&&(E.current.instanceColor.needsUpdate=!0)})),i.useLayoutEffect((()=>{const e=Math.min(y,void 0!==h?h:y,C.current.length);E.current.count=e,u.setUpdateRange(E.current.instanceMatrix,{offset:0,count:16*e}),E.current.instanceColor&&u.setUpdateRange(E.current.instanceColor,{offset:0,count:3*e}),u.setUpdateRange(E.current.geometry.attributes.opacity,{offset:0,count:e})}));let D=[null!==(b=R.image.width)&&void 0!==b?b:1,null!==(M=R.image.height)&&void 0!==M?M:1],I=Math.max(D[0],D[1]);return D=[D[0]/I,D[1]/I],i.createElement("group",e({ref:v},x),i.createElement(g.Provider,{value:C},t,i.createElement("instancedMesh",{matrixAutoUpdate:!1,ref:E,args:[null,null,y]},i.createElement("instancedBufferAttribute",{usage:r.DynamicDrawUsage,attach:"instanceColor",args:[O,3]}),i.createElement("planeGeometry",{args:[...D]},i.createElement("instancedBufferAttribute",{usage:r.DynamicDrawUsage,attach:"attributes-opacity",args:[A,1]})),i.createElement("cloudMaterial",{key:o.name,map:R,transparent:!0,depthWrite:!1}))))})),y=i.forwardRef((({opacity:t=1,speed:a=0,bounds:u=[5,1,1],segments:c=20,color:s="#ffffff",fade:l=10,volume:d=6,smallestVolume:m=.25,distribute:f=null,growth:p=4,concentrate:h="inside",seed:y=Math.random(),...x},v)=>{function b(){const e=1e4*Math.sin(y++);return e-Math.floor(e)}const M=i.useContext(g),w=i.useRef(null),[E]=i.useState((()=>o.v4())),C=i.useMemo((()=>[...new Array(c)].map(((e,t)=>({segments:c,bounds:new r.Vector3(1,1,1),position:new r.Vector3,uuid:E,index:t,ref:w,dist:0,matrix:new r.Matrix4,color:new r.Color,rotation:t*(Math.PI/c)})))),[c,E]);return i.useLayoutEffect((()=>{C.forEach(((e,r)=>{var o;n.applyProps(e,{volume:d,color:s,speed:a,growth:p,opacity:t,fade:l,bounds:u,density:Math.max(.5,b()),rotationFactor:Math.max(.2,.5*b())*a});const i=null==f?void 0:f(e,r);(i||c>1)&&e.position.copy(e.bounds).multiply(null!==(o=null==i?void 0:i.point)&&void 0!==o?o:{x:2*b()-1,y:2*b()-1,z:2*b()-1});const g=Math.abs(e.position.x),y=Math.abs(e.position.y),x=Math.abs(e.position.z),v=Math.max(g,y,x);e.length=1,g===v&&(e.length-=g/e.bounds.x),y===v&&(e.length-=y/e.bounds.y),x===v&&(e.length-=x/e.bounds.z),e.volume=(void 0!==(null==i?void 0:i.volume)?i.volume:Math.max(Math.max(0,m),"random"===h?b():"inside"===h?e.length:1-e.length))*d}))}),[h,u,l,s,t,p,d,y,c,a]),i.useLayoutEffect((()=>{const e=C;return M.current=[...M.current,...e],()=>{M.current=M.current.filter((e=>e.uuid!==E))}}),[C]),i.useImperativeHandle(v,(()=>w.current),[]),i.createElement("group",e({ref:w},x))})),x=i.forwardRef(((t,r)=>i.useContext(g)?i.createElement(y,e({ref:r},t)):i.createElement(h,null,i.createElement(y,e({ref:r},t)))));exports.Cloud=x,exports.CloudInstance=y,exports.Clouds=h;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("@react-three/fiber"),a=require("./useTexture.cjs.js"),o=require("uuid"),u=require("../helpers/deprecated.cjs.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(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 s=i(e),l=c(t);const d=new r.Matrix4,f=new r.Vector3,p=new r.Quaternion,m=new r.Vector3,g=new r.Quaternion,h=new r.Vector3,y=l.createContext(null),x=l.forwardRef((({children:e,material:t=r.MeshLambertMaterial,texture:o="https://rawcdn.githack.com/pmndrs/drei-assets/9225a9f1fbd449d9411125c2f419b843d0308c9f/cloud.png",range:i,limit:c=200,...x},v)=>{var b,M;const w=l.useMemo((()=>class extends t{constructor(){super();const e=parseInt(r.REVISION.replace(/\D+/g,""))>=154?"opaque_fragment":"output_fragment";this.onBeforeCompile=t=>{t.vertexShader="attribute float opacity;\n varying float vOpacity;\n "+t.vertexShader.replace("#include <fog_vertex>","#include <fog_vertex>\n vOpacity = opacity;\n "),t.fragmentShader="varying float vOpacity;\n "+t.fragmentShader.replace(`#include <${e}>`,`#include <${e}>\n gl_FragColor = vec4(outgoingLight, diffuseColor.a * vOpacity);\n `)}}}),[t]);n.extend({CloudMaterial:w});const E=l.useRef(null),C=l.useRef([]),A=l.useMemo((()=>new Float32Array(Array.from({length:c},(()=>1)))),[c]),O=l.useMemo((()=>new Float32Array(Array.from({length:c},(()=>[1,1,1])).flat())),[c]),j=a.useTexture(o);let R,U=0,V=0;const _=new r.Quaternion,q=new r.Vector3(0,0,1),F=new r.Vector3;n.useFrame(((e,t)=>{for(U=e.clock.getElapsedTime(),d.copy(E.current.matrixWorld).invert(),e.camera.matrixWorld.decompose(m,g,h),V=0;V<C.current.length;V++)R=C.current[V],R.ref.current.matrixWorld.decompose(f,p,h),f.add(F.copy(R.position).applyQuaternion(p).multiply(h)),p.copy(g).multiply(_.setFromAxisAngle(q,R.rotation+=t*R.rotationFactor)),h.multiplyScalar(R.volume+(1+Math.sin(U*R.density*R.speed))/2*R.growth),R.matrix.compose(f,p,h).premultiply(d),R.dist=f.distanceTo(m);for(C.current.sort(((e,t)=>t.dist-e.dist)),V=0;V<C.current.length;V++)R=C.current[V],A[V]=R.opacity*(R.dist<R.fade-1?R.dist/R.fade:1),E.current.setMatrixAt(V,R.matrix),E.current.setColorAt(V,R.color);E.current.geometry.attributes.opacity.needsUpdate=!0,E.current.instanceMatrix.needsUpdate=!0,E.current.instanceColor&&(E.current.instanceColor.needsUpdate=!0)})),l.useLayoutEffect((()=>{const e=Math.min(c,void 0!==i?i:c,C.current.length);E.current.count=e,u.setUpdateRange(E.current.instanceMatrix,{offset:0,count:16*e}),E.current.instanceColor&&u.setUpdateRange(E.current.instanceColor,{offset:0,count:3*e}),u.setUpdateRange(E.current.geometry.attributes.opacity,{offset:0,count:e})}));let S=[null!==(b=j.image.width)&&void 0!==b?b:1,null!==(M=j.image.height)&&void 0!==M?M:1],D=Math.max(S[0],S[1]);return S=[S[0]/D,S[1]/D],l.createElement("group",s.default({ref:v},x),l.createElement(y.Provider,{value:C},e,l.createElement("instancedMesh",{matrixAutoUpdate:!1,ref:E,args:[null,null,c]},l.createElement("instancedBufferAttribute",{usage:r.DynamicDrawUsage,attach:"instanceColor",args:[O,3]}),l.createElement("planeGeometry",{args:[...S]},l.createElement("instancedBufferAttribute",{usage:r.DynamicDrawUsage,attach:"attributes-opacity",args:[A,1]})),l.createElement("cloudMaterial",{key:t.name,map:j,transparent:!0,depthWrite:!1}))))})),v=l.forwardRef((({opacity:e=1,speed:t=0,bounds:a=[5,1,1],segments:u=20,color:i="#ffffff",fade:c=10,volume:d=6,smallestVolume:f=.25,distribute:p=null,growth:m=4,concentrate:g="inside",seed:h=Math.random(),...x},v)=>{function b(){const e=1e4*Math.sin(h++);return e-Math.floor(e)}const M=l.useContext(y),w=l.useRef(null),[E]=l.useState((()=>o.v4())),C=l.useMemo((()=>[...new Array(u)].map(((e,t)=>({segments:u,bounds:new r.Vector3(1,1,1),position:new r.Vector3,uuid:E,index:t,ref:w,dist:0,matrix:new r.Matrix4,color:new r.Color,rotation:t*(Math.PI/u)})))),[u,E]);return l.useLayoutEffect((()=>{C.forEach(((r,o)=>{var s;n.applyProps(r,{volume:d,color:i,speed:t,growth:m,opacity:e,fade:c,bounds:a,density:Math.max(.5,b()),rotationFactor:Math.max(.2,.5*b())*t});const l=null==p?void 0:p(r,o);(l||u>1)&&r.position.copy(r.bounds).multiply(null!==(s=null==l?void 0:l.point)&&void 0!==s?s:{x:2*b()-1,y:2*b()-1,z:2*b()-1});const h=Math.abs(r.position.x),y=Math.abs(r.position.y),x=Math.abs(r.position.z),v=Math.max(h,y,x);r.length=1,h===v&&(r.length-=h/r.bounds.x),y===v&&(r.length-=y/r.bounds.y),x===v&&(r.length-=x/r.bounds.z),r.volume=(void 0!==(null==l?void 0:l.volume)?l.volume:Math.max(Math.max(0,f),"random"===g?b():"inside"===g?r.length:1-r.length))*d}))}),[g,a,c,i,e,m,d,h,u,t]),l.useLayoutEffect((()=>{const e=C;return M.current=[...M.current,...e],()=>{M.current=M.current.filter((e=>e.uuid!==E))}}),[C]),l.useImperativeHandle(v,(()=>w.current),[]),l.createElement("group",s.default({ref:w},x))})),b=l.forwardRef(((e,t)=>l.useContext(y)?l.createElement(v,s.default({ref:t},e)):l.createElement(x,null,l.createElement(v,s.default({ref:t},e)))));exports.Cloud=b,exports.CloudInstance=v,exports.Clouds=x;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three");function u(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var u=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,u.get?u:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=u(t);exports.ComputedAttribute=({compute:t,name:u,...c})=>{const[a]=n.useState((()=>new r.BufferAttribute(new Float32Array(0),1))),i=n.useRef(null);return n.useLayoutEffect((()=>{if(i.current){var e;const r=null!==(e=i.current.parent)&&void 0!==e?e:i.current.__r3f.parent,u=t(r);i.current.copy(u)}}),[t]),n.createElement("primitive",e({ref:i,object:a,attach:`attributes-${u}`},c))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var u=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,u.get?u:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=u(e),a=n(t);exports.ComputedAttribute=({compute:e,name:t,...u})=>{const[n]=a.useState((()=>new r.BufferAttribute(new Float32Array(0),1))),f=a.useRef(null);return a.useLayoutEffect((()=>{if(f.current){var t;const r=null!==(t=f.current.parent)&&void 0!==t?t:f.current.__r3f.parent,u=e(r);f.current.copy(u)}}),[e]),a.createElement("primitive",c.default({ref:f,object:n,attach:`attributes-${t}`},u))};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),a=require("@react-three/fiber"),n=require("three-stdlib");function o(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var i=o(r),u=o(t);const l=i.forwardRef((({scale:r=10,frames:t=1/0,opacity:o=1,width:l=1,height:s=1,blur:c=1,near:d=0,far:f=10,resolution:h=512,smooth:m=!0,color:g="#000000",depthWrite:p=!1,renderOrder:v,...b},M)=>{const w=i.useRef(null),y=a.useThree((e=>e.scene)),T=a.useThree((e=>e.gl)),R=i.useRef(null);l*=Array.isArray(r)?r[0]:r||1,s*=Array.isArray(r)?r[1]:r||1;const[S,x,O,C,P,j,q]=i.useMemo((()=>{const e=new u.WebGLRenderTarget(h,h),r=new u.WebGLRenderTarget(h,h);r.texture.generateMipmaps=e.texture.generateMipmaps=!1;const t=new u.PlaneGeometry(l,s).rotateX(Math.PI/2),a=new u.Mesh(t),o=new u.MeshDepthMaterial;o.depthTest=o.depthWrite=!1,o.onBeforeCompile=e=>{e.uniforms={...e.uniforms,ucolor:{value:new u.Color(g)}},e.fragmentShader=e.fragmentShader.replace("void main() {","uniform vec3 ucolor;\n void main() {\n "),e.fragmentShader=e.fragmentShader.replace("vec4( vec3( 1.0 - fragCoordZ ), opacity );","vec4( ucolor * fragCoordZ * 2.0, ( 1.0 - fragCoordZ ) * 1.0 );")};const i=new u.ShaderMaterial(n.HorizontalBlurShader),c=new u.ShaderMaterial(n.VerticalBlurShader);return c.depthTest=i.depthTest=!1,[e,t,o,a,i,c,r]}),[h,l,s,r,g]),E=e=>{C.visible=!0,C.material=P,P.uniforms.tDiffuse.value=S.texture,P.uniforms.h.value=1*e/256,T.setRenderTarget(q),T.render(C,R.current),C.material=j,j.uniforms.tDiffuse.value=q.texture,j.uniforms.v.value=1*e/256,T.setRenderTarget(S),T.render(C,R.current),C.visible=!1};let W,k,A=0;return a.useFrame((()=>{R.current&&(t===1/0||A<t)&&(A++,W=y.background,k=y.overrideMaterial,w.current.visible=!1,y.background=null,y.overrideMaterial=O,T.setRenderTarget(S),T.render(y,R.current),E(c),m&&E(.4*c),T.setRenderTarget(null),w.current.visible=!0,y.overrideMaterial=k,y.background=W)})),i.useImperativeHandle(M,(()=>w.current),[]),i.createElement("group",e({"rotation-x":Math.PI/2},b,{ref:w}),i.createElement("mesh",{renderOrder:v,geometry:x,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},i.createElement("meshBasicMaterial",{transparent:!0,map:S.texture,opacity:o,depthWrite:p})),i.createElement("orthographicCamera",{ref:R,args:[-l/2,l/2,s/2,-s/2,d,f]}))}));exports.ContactShadows=l;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),a=require("@react-three/fiber"),n=require("three-stdlib");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var i=o(e),l=u(r),s=u(t);const c=l.forwardRef((({scale:e=10,frames:r=1/0,opacity:t=1,width:o=1,height:u=1,blur:c=1,near:d=0,far:f=10,resolution:h=512,smooth:m=!0,color:p="#000000",depthWrite:g=!1,renderOrder:v,...b},M)=>{const y=l.useRef(null),w=a.useThree((e=>e.scene)),T=a.useThree((e=>e.gl)),x=l.useRef(null);o*=Array.isArray(e)?e[0]:e||1,u*=Array.isArray(e)?e[1]:e||1;const[O,R,S,j,C,P,q]=l.useMemo((()=>{const e=new s.WebGLRenderTarget(h,h),r=new s.WebGLRenderTarget(h,h);r.texture.generateMipmaps=e.texture.generateMipmaps=!1;const t=new s.PlaneGeometry(o,u).rotateX(Math.PI/2),a=new s.Mesh(t),i=new s.MeshDepthMaterial;i.depthTest=i.depthWrite=!1,i.onBeforeCompile=e=>{e.uniforms={...e.uniforms,ucolor:{value:new s.Color(p)}},e.fragmentShader=e.fragmentShader.replace("void main() {","uniform vec3 ucolor;\n void main() {\n "),e.fragmentShader=e.fragmentShader.replace("vec4( vec3( 1.0 - fragCoordZ ), opacity );","vec4( ucolor * fragCoordZ * 2.0, ( 1.0 - fragCoordZ ) * 1.0 );")};const l=new s.ShaderMaterial(n.HorizontalBlurShader),c=new s.ShaderMaterial(n.VerticalBlurShader);return c.depthTest=l.depthTest=!1,[e,t,i,a,l,c,r]}),[h,o,u,e,p]),E=e=>{j.visible=!0,j.material=C,C.uniforms.tDiffuse.value=O.texture,C.uniforms.h.value=1*e/256,T.setRenderTarget(q),T.render(j,x.current),j.material=P,P.uniforms.tDiffuse.value=q.texture,P.uniforms.v.value=1*e/256,T.setRenderTarget(O),T.render(j,x.current),j.visible=!1};let W,k,A=0;return a.useFrame((()=>{x.current&&(r===1/0||A<r)&&(A++,W=w.background,k=w.overrideMaterial,y.current.visible=!1,w.background=null,w.overrideMaterial=S,T.setRenderTarget(O),T.render(w,x.current),E(c),m&&E(.4*c),T.setRenderTarget(null),y.current.visible=!0,w.overrideMaterial=k,w.background=W)})),l.useImperativeHandle(M,(()=>y.current),[]),l.createElement("group",i.default({"rotation-x":Math.PI/2},b,{ref:y}),l.createElement("mesh",{renderOrder:v,geometry:R,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},l.createElement("meshBasicMaterial",{transparent:!0,map:O.texture,opacity:t,depthWrite:g})),l.createElement("orthographicCamera",{ref:x,args:[-o/2,o/2,u/2,-u/2,d,f]}))}));exports.ContactShadows=c;
@@ -1 +1 @@
1
- "use strict";var e=require("react"),r=require("@react-three/fiber"),t=require("./useCubeCamera.cjs.js");function u(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var a=u(e);exports.CubeCamera=function({children:e,frames:u=1/0,resolution:n,near:c,far:i,envMap:o,fog:f,...s}){const l=a.useRef(null),{fbo:b,camera:m,update:p}=t.useCubeCamera({resolution:n,near:c,far:i,envMap:o,fog:f});let v=0;return r.useFrame((()=>{l.current&&(u===1/0||v<u)&&(l.current.visible=!1,p(),l.current.visible=!0,v++)})),a.createElement("group",s,a.createElement("primitive",{object:m}),a.createElement("group",{ref:l},e(b.texture)))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber"),t=require("./useCubeCamera.cjs.js");function u(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("three");var a=u(e);exports.CubeCamera=function({children:e,frames:u=1/0,resolution:n,near:c,far:i,envMap:o,fog:f,...s}){const l=a.useRef(null),{fbo:b,camera:p,update:m}=t.useCubeCamera({resolution:n,near:c,far:i,envMap:o,fog:f});let v=0;return r.useFrame((()=>{l.current&&(u===1/0||v<u)&&(l.current.visible=!1,m(),l.current.visible=!0,v++)})),a.createElement("group",s,a.createElement("primitive",{object:p}),a.createElement("group",{ref:l},e(b.texture)))};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("./Line.cjs.js");function c(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var i=c(r);const o=i.forwardRef((function({start:r,end:c,midA:o,midB:s,segments:u=20,...a},f){const b=i.useMemo((()=>{const e=r instanceof t.Vector3?r:new t.Vector3(...r),n=c instanceof t.Vector3?c:new t.Vector3(...c),i=o instanceof t.Vector3?o:new t.Vector3(...o),a=s instanceof t.Vector3?s:new t.Vector3(...s);return new t.CubicBezierCurve3(e,i,a,n).getPoints(u)}),[r,c,o,s,u]);return i.createElement(n.Line,e({ref:f,points:b},a))}));exports.CubicBezierLine=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("./Line.cjs.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("@react-three/fiber"),require("three-stdlib");var o=c(e),u=i(r);const s=u.forwardRef((function({start:e,end:r,midA:c,midB:i,segments:s=20,...f},a){const d=u.useMemo((()=>{const n=e instanceof t.Vector3?e:new t.Vector3(...e),o=r instanceof t.Vector3?r:new t.Vector3(...r),u=c instanceof t.Vector3?c:new t.Vector3(...c),f=i instanceof t.Vector3?i:new t.Vector3(...i);return new t.CubicBezierCurve3(n,u,f,o).getPoints(s)}),[e,r,c,i,s]);return u.createElement(n.Line,o.default({ref:a,points:d},f))}));exports.CubicBezierLine=s;
@@ -1 +1 @@
1
- "use strict";var e=require("react"),r=require("three"),t=require("@react-three/fiber"),u=require("three-stdlib");function n(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=n(e),a=n(r);const i=c.forwardRef((({children:e,curve:r},n)=>{const[i]=c.useState((()=>new a.Scene)),[l,o]=c.useState(),f=c.useRef();return c.useEffect((()=>{f.current=new u.Flow(i.children[0]),o(f.current.object3D)}),[e]),c.useEffect((()=>{var e;r&&(null==(e=f.current)||e.updateCurve(0,r))}),[r]),c.useImperativeHandle(n,(()=>({moveAlongCurve:e=>{var r;null==(r=f.current)||r.moveAlongCurve(e)}}))),c.createElement(c.Fragment,null,t.createPortal(e,i),l&&c.createElement("primitive",{object:l}))}));exports.CurveModifier=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("three"),t=require("@react-three/fiber"),u=require("three-stdlib");function n(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=n(e),a=n(r);const l=c.forwardRef((({children:e,curve:r},n)=>{const[l]=c.useState((()=>new a.Scene)),[o,i]=c.useState(),f=c.useRef();return c.useEffect((()=>{f.current=new u.Flow(l.children[0]),i(f.current.object3D)}),[e]),c.useEffect((()=>{var e;r&&(null==(e=f.current)||e.updateCurve(0,r))}),[r]),c.useImperativeHandle(n,(()=>({moveAlongCurve:e=>{var r;null==(r=f.current)||r.moveAlongCurve(e)}}))),c.createElement(c.Fragment,null,t.createPortal(e,l),o&&c.createElement("primitive",{object:o}))}));exports.CurveModifier=l;
package/core/Decal.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("@react-three/fiber"),o=require("three-stdlib");function a(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var i=a(r),s=a(t);function c(e=[0,0,0]){return function(e){return Array.isArray(e)}(e)?e:e instanceof s.Vector3||e instanceof s.Euler?[e.x,e.y,e.z]:[e,e,e]}const l=i.forwardRef((function({debug:r,depthTest:t=!1,polygonOffsetFactor:a=-10,map:l,mesh:u,children:p,position:f,rotation:m,scale:y,...d},h){const b=i.useRef(null);i.useImperativeHandle(h,(()=>b.current));const w=i.useRef(null);return i.useLayoutEffect((()=>{const e=(null==u?void 0:u.current)||b.current.parent,r=b.current;if(!(e instanceof s.Mesh))throw new Error('Decal must have a Mesh as parent or specify its "mesh" prop');const t={position:new s.Vector3,rotation:new s.Euler,scale:new s.Vector3(1,1,1)};if(e){n.applyProps(t,{position:f,scale:y});const a=e.matrixWorld.clone();if(e.matrixWorld.identity(),m&&"number"!=typeof m)n.applyProps(t,{rotation:m});else{const r=new s.Object3D;r.position.copy(t.position),r.lookAt(e.position),"number"==typeof m&&r.rotateZ(m),n.applyProps(t,{rotation:r.rotation})}return r.geometry=new o.DecalGeometry(e,t.position,t.rotation,t.scale),w.current&&(n.applyProps(w.current,t),w.current.traverse((e=>e.raycast=()=>null))),e.matrixWorld=a,()=>{r.geometry.dispose()}}}),[u,...c(f),...c(y),...c(m)]),i.createElement("mesh",e({ref:b,"material-transparent":!0,"material-polygonOffset":!0,"material-polygonOffsetFactor":a,"material-depthTest":t,"material-map":l},d),p,r&&i.createElement("mesh",{ref:w},i.createElement("boxGeometry",null),i.createElement("meshNormalMaterial",{wireframe:!0}),i.createElement("axesHelper",null)))}));exports.Decal=l;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("@react-three/fiber"),o=require("three-stdlib");function a(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 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 s=a(e),l=i(t),c=i(r);function u(e=[0,0,0]){return function(e){return Array.isArray(e)}(e)?e:e instanceof c.Vector3||e instanceof c.Euler?[e.x,e.y,e.z]:[e,e,e]}const p=l.forwardRef((function({debug:e,depthTest:t=!1,polygonOffsetFactor:r=-10,map:a,mesh:i,children:p,position:f,rotation:m,scale:y,...d},b){const h=l.useRef(null);l.useImperativeHandle(b,(()=>h.current));const O=l.useRef(null);return l.useLayoutEffect((()=>{const e=(null==i?void 0:i.current)||h.current.parent,t=h.current;if(!(e instanceof c.Mesh))throw new Error('Decal must have a Mesh as parent or specify its "mesh" prop');const r={position:new c.Vector3,rotation:new c.Euler,scale:new c.Vector3(1,1,1)};if(e){n.applyProps(r,{position:f,scale:y});const a=e.matrixWorld.clone();if(e.matrixWorld.identity(),m&&"number"!=typeof m)n.applyProps(r,{rotation:m});else{const t=new c.Object3D;t.position.copy(r.position),t.lookAt(e.position),"number"==typeof m&&t.rotateZ(m),n.applyProps(r,{rotation:t.rotation})}return t.geometry=new o.DecalGeometry(e,r.position,r.rotation,r.scale),O.current&&(n.applyProps(O.current,r),O.current.traverse((e=>e.raycast=()=>null))),e.matrixWorld=a,()=>{t.geometry.dispose()}}}),[i,...u(f),...u(y),...u(m)]),l.createElement("mesh",s.default({ref:h,"material-transparent":!0,"material-polygonOffset":!0,"material-polygonOffsetFactor":r,"material-depthTest":t,"material-map":a},d),p,e&&l.createElement("mesh",{ref:O},l.createElement("boxGeometry",null),l.createElement("meshNormalMaterial",{wireframe:!0}),l.createElement("axesHelper",null)))}));exports.Decal=p;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),c=require("react-merge-refs");function n(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var c=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,c.get?c:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var u=n(r);const s=u.forwardRef((({children:r,hysteresis:n=0,distances:s,...a},i)=>{const l=u.useRef(null);return u.useLayoutEffect((()=>{const{current:e}=l;e.levels.length=0,e.children.forEach(((r,t)=>e.levels.push({object:r,hysteresis:n,distance:s[t]})))})),t.useFrame((e=>{var r;return null==(r=l.current)?void 0:r.update(e.camera)})),u.createElement("lOD",e({ref:c([l,i])},a),r)}));exports.Detailed=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),u=require("react-merge-refs");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var a=n(e),s=c(r),l=n(u);const f=s.forwardRef((({children:e,hysteresis:r=0,distances:u,...n},c)=>{const f=s.useRef(null);return s.useLayoutEffect((()=>{const{current:e}=f;e.levels.length=0,e.children.forEach(((t,n)=>e.levels.push({object:t,hysteresis:r,distance:u[n]})))})),t.useFrame((e=>{var r;return null==(r=f.current)?void 0:r.update(e.camera)})),s.createElement("lOD",a.default({ref:l.default([f,c])},n),e)}));exports.Detailed=f;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),n=require("three-stdlib");function u(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var o=u(t);const c=o.forwardRef(((t,u)=>{const{camera:c,onChange:i,makeDefault:s,...l}=t,a=r.useThree((e=>e.camera)),f=r.useThree((e=>e.invalidate)),v=r.useThree((e=>e.get)),d=r.useThree((e=>e.set)),b=c||a,h=o.useMemo((()=>new n.DeviceOrientationControls(b)),[b]);return o.useEffect((()=>{const e=e=>{f(),i&&i(e)};return null==h||null==h.addEventListener||h.addEventListener("change",e),()=>null==h||null==h.removeEventListener?void 0:h.removeEventListener("change",e)}),[i,h,f]),r.useFrame((()=>null==h?void 0:h.update()),-1),o.useEffect((()=>{const e=h;return null==e||e.connect(),()=>null==e?void 0:e.dispose()}),[h]),o.useEffect((()=>{if(s){const e=v().controls;return d({controls:h}),()=>d({controls:e})}}),[s,h]),h?o.createElement("primitive",e({ref:u,object:h},l)):null}));exports.DeviceOrientationControls=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(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 c=u(e),i=o(r);const l=i.forwardRef(((e,r)=>{const{camera:u,onChange:o,makeDefault:l,...s}=e,a=t.useThree((e=>e.camera)),f=t.useThree((e=>e.invalidate)),d=t.useThree((e=>e.get)),v=t.useThree((e=>e.set)),b=u||a,h=i.useMemo((()=>new n.DeviceOrientationControls(b)),[b]);return i.useEffect((()=>{const e=e=>{f(),o&&o(e)};return null==h||null==h.addEventListener||h.addEventListener("change",e),()=>null==h||null==h.removeEventListener?void 0:h.removeEventListener("change",e)}),[o,h,f]),t.useFrame((()=>null==h?void 0:h.update()),-1),i.useEffect((()=>{const e=h;return null==e||e.connect(),()=>null==e?void 0:e.dispose()}),[h]),i.useEffect((()=>{if(l){const e=d().controls;return v({controls:h}),()=>v({controls:e})}}),[l,h]),h?i.createElement("primitive",c.default({ref:r,object:h},s)):null}));exports.DeviceOrientationControls=l;
package/core/Edges.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three");function n(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=n(r),u=n(t);const a=c.forwardRef((({userData:r,children:t,geometry:n,threshold:a=15,color:o="black",...s},l)=>{const i=c.useRef(null);return c.useLayoutEffect((()=>{const e=i.current.parent;if(e){const r=n||e.geometry;r===i.current.userData.currentGeom&&a===i.current.userData.currentThreshold||(i.current.userData.currentGeom=r,i.current.userData.currentThreshold=a,i.current.geometry=new u.EdgesGeometry(r,a))}})),c.useImperativeHandle(l,(()=>i.current)),c.createElement("lineSegments",e({ref:i,raycast:()=>null},s),t||c.createElement("lineBasicMaterial",{color:o}))}));exports.Edges=a;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=n(e),a=u(r),o=u(t);const l=a.forwardRef((({userData:e,children:r,geometry:t,threshold:n=15,color:u="black",...l},s)=>{const f=a.useRef(null);return a.useLayoutEffect((()=>{const e=f.current.parent;if(e){const r=t||e.geometry;r===f.current.userData.currentGeom&&n===f.current.userData.currentThreshold||(f.current.userData.currentGeom=r,f.current.userData.currentThreshold=n,f.current.geometry=new o.EdgesGeometry(r,n))}})),a.useImperativeHandle(s,(()=>f.current)),a.createElement("lineSegments",c.default({ref:f,raycast:()=>null},l),r||a.createElement("lineBasicMaterial",{color:u}))}));exports.Edges=l;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),a=require("@react-three/fiber"),s=require("three-stdlib"),n=require("react-merge-refs");function c(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var i=c(r);const u=i.forwardRef((({children:r,multisamping:c=8,renderIndex:u=1,disableRender:l,disableGamma:o,disableRenderPass:d,depthBuffer:f=!0,stencilBuffer:h=!1,anisotropy:p=1,encoding:m,type:g,...b},y)=>{i.useMemo((()=>a.extend({EffectComposer:s.EffectComposer,RenderPass:s.RenderPass,ShaderPass:s.ShaderPass})),[]);const E=i.useRef(),{scene:v,camera:x,gl:P,size:R,viewport:w}=a.useThree(),[C]=i.useState((()=>{const e=new t.WebGLRenderTarget(R.width,R.height,{type:g||t.HalfFloatType,format:t.RGBAFormat,depthBuffer:f,stencilBuffer:h,anisotropy:p});return g===t.UnsignedByteType&&null!=m&&("colorSpace"in e?e.texture.colorSpace=m:e.texture.encoding=m),e.samples=c,e}));i.useEffect((()=>{var e,r;null==(e=E.current)||e.setSize(R.width,R.height),null==(r=E.current)||r.setPixelRatio(w.dpr)}),[P,R,w.dpr]),a.useFrame((()=>{var e;l||null==(e=E.current)||e.render()}),u);const S=[];return d||S.push(i.createElement("renderPass",{key:"renderpass",attach:`passes-${S.length}`,args:[v,x]})),o||S.push(i.createElement("shaderPass",{attach:`passes-${S.length}`,key:"gammapass",args:[s.GammaCorrectionShader]})),i.Children.forEach(r,(e=>{e&&S.push(i.cloneElement(e,{key:S.length,attach:`passes-${S.length}`}))})),i.createElement("effectComposer",e({ref:n([y,E]),args:[P,C]},b),S)}));exports.Effects=u,exports.isWebGL2Available=()=>{try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(e){return!1}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),a=require("@react-three/fiber"),n=require("three-stdlib"),s=require("react-merge-refs");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var l=c(e),o=u(r),i=c(s);const d=o.forwardRef((({children:e,multisamping:r=8,renderIndex:s=1,disableRender:c,disableGamma:u,disableRenderPass:d,depthBuffer:f=!0,stencilBuffer:p=!1,anisotropy:h=1,encoding:m,type:g,...b},y)=>{o.useMemo((()=>a.extend({EffectComposer:n.EffectComposer,RenderPass:n.RenderPass,ShaderPass:n.ShaderPass})),[]);const v=o.useRef(),{scene:x,camera:E,gl:P,size:R,viewport:w}=a.useThree(),[j]=o.useState((()=>{const e=new t.WebGLRenderTarget(R.width,R.height,{type:g||t.HalfFloatType,format:t.RGBAFormat,depthBuffer:f,stencilBuffer:p,anisotropy:h});return g===t.UnsignedByteType&&null!=m&&("colorSpace"in e?e.texture.colorSpace=m:e.texture.encoding=m),e.samples=r,e}));o.useEffect((()=>{var e,r;null==(e=v.current)||e.setSize(R.width,R.height),null==(r=v.current)||r.setPixelRatio(w.dpr)}),[P,R,w.dpr]),a.useFrame((()=>{var e;c||null==(e=v.current)||e.render()}),s);const C=[];return d||C.push(o.createElement("renderPass",{key:"renderpass",attach:`passes-${C.length}`,args:[x,E]})),u||C.push(o.createElement("shaderPass",{attach:`passes-${C.length}`,key:"gammapass",args:[n.GammaCorrectionShader]})),o.Children.forEach(e,(e=>{e&&C.push(o.cloneElement(e,{key:C.length,attach:`passes-${C.length}`}))})),o.createElement("effectComposer",l.default({ref:i.default([y,v]),args:[P,j]},b),C)}));exports.Effects=d,exports.isWebGL2Available=()=>{try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(e){return!1}};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),n=require("@react-three/fiber"),t=require("three"),u=require("three-stdlib"),o=require("./useEnvironment.cjs.js");function c(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var t=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,t.get?t:{enumerable:!0,get:function(){return e[n]}})}})),r.default=e,Object.freeze(r)}var a=c(r);const s=e=>{return(r=e).current&&r.current.isScene?e.current:e;var r};function l(e,r,n,t,u=0){const o=s(r||n),c=o.background,a=o.environment,l=o.backgroundBlurriness||0;return"only"!==e&&(o.environment=t),e&&(o.background=t),e&&void 0!==o.backgroundBlurriness&&(o.backgroundBlurriness=u),()=>{"only"!==e&&(o.environment=a),e&&(o.background=c),e&&void 0!==o.backgroundBlurriness&&(o.backgroundBlurriness=l)}}function i({scene:e,background:r=!1,blur:t,map:u}){const o=n.useThree((e=>e.scene));return a.useLayoutEffect((()=>{if(u)return l(r,e,o,u,t)}),[o,e,u,r,t]),null}function d({background:e=!1,scene:r,blur:t,...u}){const c=o.useEnvironment(u),s=n.useThree((e=>e.scene));return a.useLayoutEffect((()=>l(e,r,s,c,t)),[c,e,r,s,t]),null}function m({children:e,near:r=1,far:u=1e3,resolution:o=256,frames:c=1,map:s,background:m=!1,blur:b,scene:f,files:g,path:E,preset:p,extensions:v}){const h=n.useThree((e=>e.gl)),k=n.useThree((e=>e.scene)),x=a.useRef(null),[j]=a.useState((()=>new t.Scene)),y=a.useMemo((()=>{const e=new t.WebGLCubeRenderTarget(o);return e.texture.type=t.HalfFloatType,e}),[o]);a.useLayoutEffect((()=>(1===c&&x.current.update(h,j),l(m,f,k,y.texture,b))),[e,j,y.texture,f,k,m,c,h]);let P=1;return n.useFrame((()=>{(c===1/0||P<c)&&(x.current.update(h,j),P++)})),a.createElement(a.Fragment,null,n.createPortal(a.createElement(a.Fragment,null,e,a.createElement("cubeCamera",{ref:x,args:[r,u,y]}),g||p?a.createElement(d,{background:!0,files:g,preset:p,path:E,extensions:v}):s?a.createElement(i,{background:!0,map:s,extensions:v}):null),j))}function b(r){var t,c,s,l;const d=o.useEnvironment(r),m=r.map||d;a.useMemo((()=>n.extend({GroundProjectedEnvImpl:u.GroundProjectedEnv})),[]);const b=a.useMemo((()=>[m]),[m]),f=null==(t=r.ground)?void 0:t.height,g=null==(c=r.ground)?void 0:c.radius,E=null!==(s=null==(l=r.ground)?void 0:l.scale)&&void 0!==s?s:1e3;return a.createElement(a.Fragment,null,a.createElement(i,e({},r,{map:m})),a.createElement("groundProjectedEnvImpl",{args:b,scale:E,height:f,radius:g}))}exports.Environment=function(e){return e.ground?a.createElement(b,e):e.map?a.createElement(i,e):e.children?a.createElement(m,e):a.createElement(d,e)},exports.EnvironmentCube=d,exports.EnvironmentMap=i,exports.EnvironmentPortal=m;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),n=require("@react-three/fiber"),t=require("three"),u=require("three-stdlib"),o=require("./useEnvironment.cjs.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var t=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,t.get?t:{enumerable:!0,get:function(){return e[n]}})}})),r.default=e,Object.freeze(r)}require("../helpers/environment-assets.cjs.js");var a=c(e),l=s(r);const i=e=>{return(r=e).current&&r.current.isScene?e.current:e;var r};function d(e,r,n,t,u=0){const o=i(r||n),c=o.background,s=o.environment,a=o.backgroundBlurriness||0;return"only"!==e&&(o.environment=t),e&&(o.background=t),e&&void 0!==o.backgroundBlurriness&&(o.backgroundBlurriness=u),()=>{"only"!==e&&(o.environment=s),e&&(o.background=c),e&&void 0!==o.backgroundBlurriness&&(o.backgroundBlurriness=a)}}function m({scene:e,background:r=!1,blur:t,map:u}){const o=n.useThree((e=>e.scene));return l.useLayoutEffect((()=>{if(u)return d(r,e,o,u,t)}),[o,e,u,r,t]),null}function f({background:e=!1,scene:r,blur:t,...u}){const c=o.useEnvironment(u),s=n.useThree((e=>e.scene));return l.useLayoutEffect((()=>d(e,r,s,c,t)),[c,e,r,s,t]),null}function b({children:e,near:r=1,far:u=1e3,resolution:o=256,frames:c=1,map:s,background:a=!1,blur:i,scene:b,files:g,path:p,preset:v,extensions:E}){const h=n.useThree((e=>e.gl)),j=n.useThree((e=>e.scene)),k=l.useRef(null),[x]=l.useState((()=>new t.Scene)),y=l.useMemo((()=>{const e=new t.WebGLCubeRenderTarget(o);return e.texture.type=t.HalfFloatType,e}),[o]);l.useLayoutEffect((()=>(1===c&&k.current.update(h,x),d(a,b,j,y.texture,i))),[e,x,y.texture,b,j,a,c,h]);let P=1;return n.useFrame((()=>{(c===1/0||P<c)&&(k.current.update(h,x),P++)})),l.createElement(l.Fragment,null,n.createPortal(l.createElement(l.Fragment,null,e,l.createElement("cubeCamera",{ref:k,args:[r,u,y]}),g||v?l.createElement(f,{background:!0,files:g,preset:v,path:p,extensions:E}):s?l.createElement(m,{background:!0,map:s,extensions:E}):null),x))}function g(e){var r,t,c,s;const i=o.useEnvironment(e),d=e.map||i;l.useMemo((()=>n.extend({GroundProjectedEnvImpl:u.GroundProjectedEnv})),[]);const f=l.useMemo((()=>[d]),[d]),b=null==(r=e.ground)?void 0:r.height,g=null==(t=e.ground)?void 0:t.radius,p=null!==(c=null==(s=e.ground)?void 0:s.scale)&&void 0!==c?c:1e3;return l.createElement(l.Fragment,null,l.createElement(m,a.default({},e,{map:d})),l.createElement("groundProjectedEnvImpl",{args:f,scale:p,height:b,radius:g}))}exports.Environment=function(e){return e.ground?l.createElement(g,e):e.map?l.createElement(m,e):e.children?l.createElement(b,e):l.createElement(f,e)},exports.EnvironmentCube=f,exports.EnvironmentMap=m,exports.EnvironmentPortal=b;
@@ -1 +1 @@
1
- "use strict";var e=require("react"),r=require("./Text3D.cjs.js"),t=require("./Center.cjs.js");function a(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=a(e);const n=c.forwardRef((({font:e,color:a="#cbcbcb",bevelSize:n=.04,debug:l=!1,children:u,...o},s)=>{const[i,b]=c.useState(0),f=c.useCallback(((e=1)=>b(i+e)),[i]),m=c.useCallback(((e=1)=>b(i-e)),[i]),d=c.useMemo((()=>({incr:f,decr:m})),[f,m]);return c.useImperativeHandle(s,(()=>d),[d]),c.createElement("group",o,c.createElement(c.Suspense,{fallback:null},c.createElement(t.Center,{top:!0,cacheKey:JSON.stringify({counter:i,font:e})},c.createElement(r.Text3D,{bevelEnabled:!0,bevelSize:n,font:e},l?c.createElement("meshNormalMaterial",{wireframe:!0}):c.createElement("meshStandardMaterial",{color:a}),i))),u)}));exports.Example=n;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("./Text3D.cjs.js"),t=require("./Center.cjs.js");function a(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("@babel/runtime/helpers/extends"),require("@react-three/fiber"),require("three-stdlib"),require("./useFont.cjs.js"),require("suspend-react"),require("three");var c=a(e);const n=c.forwardRef((({font:e,color:a="#cbcbcb",bevelSize:n=.04,debug:l=!1,children:u,...s},i)=>{const[o,b]=c.useState(0),f=c.useCallback(((e=1)=>b(o+e)),[o]),d=c.useCallback(((e=1)=>b(o-e)),[o]),m=c.useMemo((()=>({incr:f,decr:d})),[f,d]);return c.useImperativeHandle(i,(()=>m),[m]),c.createElement("group",s,c.createElement(c.Suspense,{fallback:null},c.createElement(t.Center,{top:!0,cacheKey:JSON.stringify({counter:o,font:e})},c.createElement(r.Text3D,{bevelEnabled:!0,bevelSize:n,font:e},l?c.createElement("meshNormalMaterial",{wireframe:!0}):c.createElement("meshStandardMaterial",{color:a}),o))),u)}));exports.Example=n;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),n=require("three-stdlib");function s(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var o=s(r);const u=o.forwardRef((({domElement:r,makeDefault:s,...u},c)=>{const a=t.useThree((e=>e.camera)),i=t.useThree((e=>e.gl)),l=t.useThree((e=>e.events)),f=t.useThree((e=>e.get)),b=t.useThree((e=>e.set)),m=r||l.connected||i.domElement,[d]=o.useState((()=>new n.FirstPersonControls(a,m)));return o.useEffect((()=>{if(s){const e=f().controls;return b({controls:d}),()=>b({controls:e})}}),[s,d]),t.useFrame(((e,r)=>{d.update(r)}),-1),d?o.createElement("primitive",e({ref:c,object:d},u)):null}));exports.FirstPersonControls=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),n=require("three-stdlib");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var s=u(e),c=o(r);const l=c.forwardRef((({domElement:e,makeDefault:r,...u},o)=>{const l=t.useThree((e=>e.camera)),a=t.useThree((e=>e.gl)),f=t.useThree((e=>e.events)),i=t.useThree((e=>e.get)),d=t.useThree((e=>e.set)),b=e||f.connected||a.domElement,[m]=c.useState((()=>new n.FirstPersonControls(l,b)));return c.useEffect((()=>{if(r){const e=i().controls;return d({controls:m}),()=>d({controls:e})}}),[r,m]),t.useFrame(((e,r)=>{m.update(r)}),-1),m?c.createElement("primitive",s.default({ref:o,object:m},u)):null}));exports.FirstPersonControls=l;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),a=require("@react-three/fiber"),n=require("./RenderCubeTexture.cjs.js");function i(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=i(r),o=i(t);function s({api:e}){const r=new c.Vector3,t=new c.Quaternion,n=new c.Vector3,i=new c.Euler(0,Math.PI,0);return a.useFrame((a=>{a.camera.matrixWorld.decompose(r,t,n),e.current.camera.position.copy(r),e.current.camera.quaternion.setFromEuler(i).premultiply(t)})),null}exports.Fisheye=function({renderPriority:r=1,zoom:t=0,segments:i=64,children:u,resolution:l=896,...m}){const p=o.useRef(null),f=o.useRef(null),{width:h,height:y}=a.useThree((e=>e.size)),[d]=o.useState((()=>new c.OrthographicCamera));o.useLayoutEffect((()=>{d.position.set(0,0,100),d.zoom=100,d.left=h/-2,d.right=h/2,d.top=y/2,d.bottom=y/-2,d.updateProjectionMatrix()}),[h,y]);const g=Math.sqrt(h*h+y*y)/100*(.5+t/2),b=new c.Vector3,w=new c.Sphere(new c.Vector3,g),x=new c.Matrix3,E=o.useCallback(((e,r,t)=>{r.pointer.set(e.offsetX/r.size.width*2-1,-e.offsetY/r.size.height*2+1),r.raycaster.setFromCamera(r.pointer,d),r.raycaster.ray.intersectSphere(w,b)&&(b.normalize(),x.getNormalMatrix(f.current.camera.matrixWorld),f.current.camera.getWorldPosition(r.raycaster.ray.origin),r.raycaster.ray.direction.set(0,0,1).reflect(b),r.raycaster.ray.direction.x*=-1,r.raycaster.ray.direction.applyNormalMatrix(x).multiplyScalar(-1))}),[]);return a.useFrame((e=>{r&&e.gl.render(p.current,d)}),r),o.createElement(o.Fragment,null,o.createElement("mesh",e({ref:p},m,{scale:g}),o.createElement("sphereGeometry",{args:[1,i,i]}),o.createElement("meshBasicMaterial",null,o.createElement(n.RenderCubeTexture,{compute:E,attach:"envMap",flip:!0,resolution:l,ref:f},u,o.createElement(s,{api:f})))))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),a=require("@react-three/fiber"),n=require("./RenderCubeTexture.cjs.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=i(e),u=o(r),s=o(t);function l({api:e}){const r=new u.Vector3,t=new u.Quaternion,n=new u.Vector3,i=new u.Euler(0,Math.PI,0);return a.useFrame((a=>{a.camera.matrixWorld.decompose(r,t,n),e.current.camera.position.copy(r),e.current.camera.quaternion.setFromEuler(i).premultiply(t)})),null}exports.Fisheye=function({renderPriority:e=1,zoom:r=0,segments:t=64,children:i,resolution:o=896,...m}){const f=s.useRef(null),p=s.useRef(null),{width:d,height:h}=a.useThree((e=>e.size)),[y]=s.useState((()=>new u.OrthographicCamera));s.useLayoutEffect((()=>{y.position.set(0,0,100),y.zoom=100,y.left=d/-2,y.right=d/2,y.top=h/2,y.bottom=h/-2,y.updateProjectionMatrix()}),[d,h]);const b=Math.sqrt(d*d+h*h)/100*(.5+r/2),g=new u.Vector3,w=new u.Sphere(new u.Vector3,b),x=new u.Matrix3,j=s.useCallback(((e,r,t)=>{r.pointer.set(e.offsetX/r.size.width*2-1,-e.offsetY/r.size.height*2+1),r.raycaster.setFromCamera(r.pointer,y),r.raycaster.ray.intersectSphere(w,g)&&(g.normalize(),x.getNormalMatrix(p.current.camera.matrixWorld),p.current.camera.getWorldPosition(r.raycaster.ray.origin),r.raycaster.ray.direction.set(0,0,1).reflect(g),r.raycaster.ray.direction.x*=-1,r.raycaster.ray.direction.applyNormalMatrix(x).multiplyScalar(-1))}),[]);return a.useFrame((r=>{e&&r.gl.render(f.current,y)}),e),s.createElement(s.Fragment,null,s.createElement("mesh",c.default({ref:f},m,{scale:b}),s.createElement("sphereGeometry",{args:[1,t,t]}),s.createElement("meshBasicMaterial",null,s.createElement(n.RenderCubeTexture,{compute:j,attach:"envMap",flip:!0,resolution:o,ref:p},i,s.createElement(l,{api:p})))))};
package/core/Float.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("@react-three/fiber"),r=require("react-merge-refs"),n=require("three");function a(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=a(e),o=a(n);const u=i.forwardRef((({children:e,enabled:n=!0,speed:a=1,rotationIntensity:u=1,floatIntensity:c=1,floatingRange:l=[-.1,.1],...s},f)=>{const d=i.useRef(null),p=i.useRef(1e4*Math.random());return t.useFrame((e=>{var t,r;if(!n||0===a)return;const i=p.current+e.clock.getElapsedTime();d.current.rotation.x=Math.cos(i/4*a)/8*u,d.current.rotation.y=Math.sin(i/4*a)/8*u,d.current.rotation.z=Math.sin(i/4*a)/20*u;let s=Math.sin(i/4*a)/10;s=o.MathUtils.mapLinear(s,-.1,.1,null!==(t=null==l?void 0:l[0])&&void 0!==t?t:-.1,null!==(r=null==l?void 0:l[1])&&void 0!==r?r:.1),d.current.position.y=s*c,d.current.updateMatrix()})),i.createElement("group",s,i.createElement("group",{ref:r([d,f]),matrixAutoUpdate:!1},e))}));exports.Float=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber"),r=require("react-merge-refs"),n=require("three");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(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 o=u(e),i=a(r),c=u(n);const l=o.forwardRef((({children:e,enabled:r=!0,speed:n=1,rotationIntensity:a=1,floatIntensity:u=1,floatingRange:l=[-.1,.1],...f},s)=>{const d=o.useRef(null),p=o.useRef(1e4*Math.random());return t.useFrame((e=>{var t,o;if(!r||0===n)return;const i=p.current+e.clock.getElapsedTime();d.current.rotation.x=Math.cos(i/4*n)/8*a,d.current.rotation.y=Math.sin(i/4*n)/8*a,d.current.rotation.z=Math.sin(i/4*n)/20*a;let f=Math.sin(i/4*n)/10;f=c.MathUtils.mapLinear(f,-.1,.1,null!==(t=null==l?void 0:l[0])&&void 0!==t?t:-.1,null!==(o=null==l?void 0:l[1])&&void 0!==o?o:.1),d.current.position.y=f*u,d.current.updateMatrix()})),o.createElement("group",f,o.createElement("group",{ref:i.default([d,s]),matrixAutoUpdate:!1},e))}));exports.Float=l;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),n=require("three-stdlib");function s(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var o=s(t);const c=o.forwardRef((({domElement:t,...s},c)=>{const{onChange:u,makeDefault:a,...i}=s,l=r.useThree((e=>e.invalidate)),f=r.useThree((e=>e.camera)),d=r.useThree((e=>e.gl)),m=r.useThree((e=>e.events)),v=r.useThree((e=>e.get)),h=r.useThree((e=>e.set)),b=t||m.connected||d.domElement,E=o.useMemo((()=>new n.FlyControls(f)),[f]);return o.useEffect((()=>(E.connect(b),()=>{E.dispose()})),[b,E,l]),o.useEffect((()=>{const e=e=>{l(),u&&u(e)};return null==E.addEventListener||E.addEventListener("change",e),()=>null==E.removeEventListener?void 0:E.removeEventListener("change",e)}),[u,l]),o.useEffect((()=>{if(a){const e=v().controls;return h({controls:E}),()=>h({controls:e})}}),[a,E]),r.useFrame(((e,r)=>E.update(r))),o.createElement("primitive",e({ref:c,object:E,args:[f,b]},i))}));exports.FlyControls=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(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 s=u(e),c=o(r);const a=c.forwardRef((({domElement:e,...r},u)=>{const{onChange:o,makeDefault:a,...l}=r,i=t.useThree((e=>e.invalidate)),f=t.useThree((e=>e.camera)),d=t.useThree((e=>e.gl)),v=t.useThree((e=>e.events)),m=t.useThree((e=>e.get)),b=t.useThree((e=>e.set)),h=e||v.connected||d.domElement,p=c.useMemo((()=>new n.FlyControls(f)),[f]);return c.useEffect((()=>(p.connect(h),()=>{p.dispose()})),[h,p,i]),c.useEffect((()=>{const e=e=>{i(),o&&o(e)};return null==p.addEventListener||p.addEventListener("change",e),()=>null==p.removeEventListener?void 0:p.removeEventListener("change",e)}),[o,i]),c.useEffect((()=>{if(a){const e=m().controls;return b({controls:p}),()=>b({controls:e})}}),[a,p]),t.useFrame(((e,t)=>p.update(t))),c.createElement("primitive",s.default({ref:u,object:p,args:[f,h]},l))}));exports.FlyControls=a;
@@ -1 +1 @@
1
- "use strict";var e=require("react"),r=require("@react-three/fiber"),t=require("three"),n=require("./OrthographicCamera.cjs.js"),o=require("./Hud.cjs.js");function u(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var a=u(e);const i=a.createContext({}),c=2*Math.PI,s=new t.Object3D,l=new t.Matrix4,[p,f]=[new t.Quaternion,new t.Quaternion],d=new t.Vector3,h=new t.Vector3;exports.GizmoHelper=({alignment:e="bottom-right",margin:u=[80,80],renderPriority:m=1,onUpdate:y,onTarget:g,children:w})=>{const v=r.useThree((e=>e.size)),b=r.useThree((e=>e.camera)),j=r.useThree((e=>e.controls)),q=r.useThree((e=>e.invalidate)),O=a.useRef(null),x=a.useRef(null),T=a.useRef(!1),C=a.useRef(0),P=a.useRef(new t.Vector3(0,0,0)),R=a.useRef(new t.Vector3(0,0,0));a.useEffect((()=>{R.current.copy(b.up)}),[b]);const E=a.useCallback((e=>{T.current=!0,(j||g)&&(P.current=(null==j?void 0:j.target)||(null==g?void 0:g())),C.current=b.position.distanceTo(d),p.copy(b.quaternion),h.copy(e).multiplyScalar(C.current).add(d),s.lookAt(h),s.up.copy(b.up),f.copy(s.quaternion),q()}),[j,b,g,q]);r.useFrame(((e,r)=>{if(x.current&&O.current){var t;if(T.current)if(p.angleTo(f)<.01)T.current=!1,"minPolarAngle"in j&&b.up.copy(R.current);else{const e=r*c;p.rotateTowards(f,e),b.position.set(0,0,1).applyQuaternion(p).multiplyScalar(C.current).add(P.current),b.up.set(0,1,0).applyQuaternion(p).normalize(),b.quaternion.copy(p),y?y():j&&j.update(),q()}l.copy(b.matrix).invert(),null==(t=O.current)||t.quaternion.setFromRotationMatrix(l)}}));const z=a.useMemo((()=>({tweenCamera:E})),[E]),[k,M]=u,Q=e.endsWith("-center")?0:e.endsWith("-left")?-v.width/2+k:v.width/2-k,V=e.startsWith("center-")?0:e.startsWith("top-")?v.height/2-M:-v.height/2+M;return a.createElement(o.Hud,{renderPriority:m},a.createElement(i.Provider,{value:z},a.createElement(n.OrthographicCamera,{makeDefault:!0,ref:x,position:[0,0,200]}),a.createElement("group",{ref:O,position:[Q,V,0]},w)))},exports.useGizmoContext=()=>a.useContext(i);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber"),t=require("three"),n=require("./OrthographicCamera.cjs.js"),u=require("./Hud.cjs.js");function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("@babel/runtime/helpers/extends"),require("react-merge-refs"),require("./useFBO.cjs.js");var i=o(e);const a=i.createContext({}),c=2*Math.PI,s=new t.Object3D,l=new t.Matrix4,[p,d]=[new t.Quaternion,new t.Quaternion],f=new t.Vector3,h=new t.Vector3;exports.GizmoHelper=({alignment:e="bottom-right",margin:o=[80,80],renderPriority:m=1,onUpdate:y,onTarget:g,children:b})=>{const j=r.useThree((e=>e.size)),w=r.useThree((e=>e.camera)),q=r.useThree((e=>e.controls)),v=r.useThree((e=>e.invalidate)),O=i.useRef(null),x=i.useRef(null),P=i.useRef(!1),T=i.useRef(0),C=i.useRef(new t.Vector3(0,0,0)),R=i.useRef(new t.Vector3(0,0,0));i.useEffect((()=>{R.current.copy(w.up)}),[w]);const E=i.useCallback((e=>{P.current=!0,(q||g)&&(C.current=(null==q?void 0:q.target)||(null==g?void 0:g())),T.current=w.position.distanceTo(f),p.copy(w.quaternion),h.copy(e).multiplyScalar(T.current).add(f),s.lookAt(h),s.up.copy(w.up),d.copy(s.quaternion),v()}),[q,w,g,v]);r.useFrame(((e,r)=>{if(x.current&&O.current){var t;if(P.current)if(p.angleTo(d)<.01)P.current=!1,"minPolarAngle"in q&&w.up.copy(R.current);else{const e=r*c;p.rotateTowards(d,e),w.position.set(0,0,1).applyQuaternion(p).multiplyScalar(T.current).add(C.current),w.up.set(0,1,0).applyQuaternion(p).normalize(),w.quaternion.copy(p),y?y():q&&q.update(),v()}l.copy(w.matrix).invert(),null==(t=O.current)||t.quaternion.setFromRotationMatrix(l)}}));const M=i.useMemo((()=>({tweenCamera:E})),[E]),[z,k]=o,Q=e.endsWith("-center")?0:e.endsWith("-left")?-j.width/2+z:j.width/2-z,V=e.startsWith("center-")?0:e.startsWith("top-")?j.height/2-k:-j.height/2+k;return i.createElement(u.Hud,{renderPriority:m},i.createElement(a.Provider,{value:M},i.createElement(n.OrthographicCamera,{makeDefault:!0,ref:x,position:[0,0,200]}),i.createElement("group",{ref:O,position:[Q,V,0]},b)))},exports.useGizmoContext=()=>i.useContext(a);