@react-three/drei 9.96.4 → 9.97.0

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 (183) hide show
  1. package/README.md +82 -9
  2. package/core/AccumulativeShadows.cjs.js +1 -1
  3. package/core/AdaptiveDpr.cjs.js +1 -1
  4. package/core/AdaptiveEvents.cjs.js +1 -1
  5. package/core/ArcballControls.cjs.js +1 -1
  6. package/core/AsciiRenderer.cjs.js +1 -1
  7. package/core/BBAnchor.cjs.js +1 -1
  8. package/core/Backdrop.cjs.js +1 -1
  9. package/core/BakeShadows.cjs.js +1 -1
  10. package/core/Billboard.cjs.js +1 -1
  11. package/core/Bounds.cjs.js +1 -1
  12. package/core/CameraControls.cjs.js +1 -1
  13. package/core/CameraControls.d.ts +2 -2
  14. package/core/CameraShake.cjs.js +1 -1
  15. package/core/CatmullRomLine.cjs.js +1 -1
  16. package/core/Caustics.cjs.js +1 -1
  17. package/core/Center.cjs.js +1 -1
  18. package/core/Clone.cjs.js +1 -1
  19. package/core/Cloud.cjs.js +1 -1
  20. package/core/ComputedAttribute.cjs.js +1 -1
  21. package/core/ContactShadows.cjs.js +1 -1
  22. package/core/CubeCamera.cjs.js +1 -1
  23. package/core/CubicBezierLine.cjs.js +1 -1
  24. package/core/CurveModifier.cjs.js +1 -1
  25. package/core/Decal.cjs.js +1 -1
  26. package/core/Detailed.cjs.js +1 -1
  27. package/core/DeviceOrientationControls.cjs.js +1 -1
  28. package/core/Edges.cjs.js +1 -1
  29. package/core/Effects.cjs.js +1 -1
  30. package/core/Environment.cjs.js +1 -1
  31. package/core/Example.cjs.js +1 -1
  32. package/core/FirstPersonControls.cjs.js +1 -1
  33. package/core/Fisheye.cjs.js +1 -1
  34. package/core/Float.cjs.js +1 -1
  35. package/core/FlyControls.cjs.js +1 -1
  36. package/core/GizmoHelper.cjs.js +1 -1
  37. package/core/GizmoViewcube.cjs.js +1 -1
  38. package/core/GizmoViewport.cjs.js +1 -1
  39. package/core/Gltf.cjs.js +1 -1
  40. package/core/GradientTexture.cjs.js +1 -1
  41. package/core/Grid.cjs.js +1 -1
  42. package/core/Hud.cjs.js +1 -1
  43. package/core/Image.cjs.js +1 -1
  44. package/core/Instances.cjs.js +1 -1
  45. package/core/Lightformer.cjs.js +1 -1
  46. package/core/Line.cjs.js +1 -1
  47. package/core/MapControls.cjs.js +1 -1
  48. package/core/MarchingCubes.cjs.js +1 -1
  49. package/core/Mask.cjs.js +1 -1
  50. package/core/MeshDiscardMaterial.cjs.js +1 -1
  51. package/core/MeshDistortMaterial.cjs.js +1 -1
  52. package/core/MeshPortalMaterial.cjs.js +1 -1
  53. package/core/MeshReflectorMaterial.cjs.js +1 -1
  54. package/core/MeshRefractionMaterial.cjs.js +1 -1
  55. package/core/MeshTransmissionMaterial.cjs.js +1 -1
  56. package/core/MeshTransmissionMaterial.d.ts +2 -2
  57. package/core/MeshWobbleMaterial.cjs.js +1 -1
  58. package/core/MotionPathControls.cjs.js +1 -1
  59. package/core/OrbitControls.cjs.js +1 -1
  60. package/core/OrthographicCamera.cjs.js +1 -1
  61. package/core/Outlines.cjs.js +1 -1
  62. package/core/PerformanceMonitor.cjs.js +1 -1
  63. package/core/PerspectiveCamera.cjs.js +1 -1
  64. package/core/PointMaterial.cjs.js +1 -1
  65. package/core/PointerLockControls.cjs.js +1 -1
  66. package/core/Points.cjs.js +1 -1
  67. package/core/PositionalAudio.cjs.js +1 -1
  68. package/core/Preload.cjs.js +1 -1
  69. package/core/QuadraticBezierLine.cjs.js +1 -1
  70. package/core/Reflector.cjs.js +1 -1
  71. package/core/RenderCubeTexture.cjs.js +1 -1
  72. package/core/RenderTexture.cjs.js +1 -1
  73. package/core/Resize.cjs.js +1 -1
  74. package/core/RoundedBox.cjs.js +1 -1
  75. package/core/Sampler.cjs.js +1 -1
  76. package/core/ScreenQuad.cjs.js +1 -1
  77. package/core/ScreenSizer.cjs.js +1 -0
  78. package/core/ScreenSizer.d.ts +7 -0
  79. package/core/ScreenSizer.js +39 -0
  80. package/core/ScreenSpace.cjs.js +1 -1
  81. package/core/Segments.cjs.js +1 -1
  82. package/core/Shadow.cjs.js +1 -1
  83. package/core/ShadowAlpha.cjs.js +1 -1
  84. package/core/ShadowAlpha.js +0 -1
  85. package/core/Sky.cjs.js +1 -1
  86. package/core/Sparkles.cjs.js +1 -1
  87. package/core/Splat.cjs.js +1 -1
  88. package/core/SpotLight.cjs.js +1 -1
  89. package/core/SpriteAnimator.cjs.js +1 -1
  90. package/core/SpriteAnimator.d.ts +2 -1
  91. package/core/SpriteAnimator.js +34 -123
  92. package/core/Stage.cjs.js +1 -1
  93. package/core/Stars.cjs.js +1 -1
  94. package/core/Stats.cjs.js +1 -1
  95. package/core/StatsGl.cjs.js +1 -1
  96. package/core/Svg.cjs.js +1 -1
  97. package/core/Text.cjs.js +1 -1
  98. package/core/Text3D.cjs.js +1 -1
  99. package/core/TrackballControls.cjs.js +1 -1
  100. package/core/Trail.cjs.js +1 -1
  101. package/core/TransformControls.cjs.js +1 -1
  102. package/core/Wireframe.cjs.js +1 -1
  103. package/core/calculateScaleFactor.cjs.js +1 -0
  104. package/core/calculateScaleFactor.d.ts +3 -0
  105. package/core/calculateScaleFactor.js +31 -0
  106. package/core/index.cjs.js +1 -1
  107. package/core/index.d.ts +3 -0
  108. package/core/index.js +153 -0
  109. package/core/meshBounds.cjs.js +1 -1
  110. package/core/shaderMaterial.cjs.js +1 -1
  111. package/core/shapes.cjs.js +1 -1
  112. package/core/softShadows.cjs.js +1 -1
  113. package/core/softShadows.js +0 -1
  114. package/core/useAnimations.cjs.js +1 -1
  115. package/core/useAspect.cjs.js +1 -1
  116. package/core/useBVH.cjs.js +1 -1
  117. package/core/useBoxProjectedEnv.cjs.js +1 -1
  118. package/core/useCamera.cjs.js +1 -1
  119. package/core/useContextBridge.cjs.js +1 -1
  120. package/core/useCubeCamera.cjs.js +1 -1
  121. package/core/useCubeTexture.cjs.js +1 -1
  122. package/core/useDepthBuffer.cjs.js +1 -1
  123. package/core/useDetectGPU.cjs.js +1 -1
  124. package/core/useEnvironment.cjs.js +1 -1
  125. package/core/useFBO.cjs.js +1 -1
  126. package/core/useFBX.cjs.js +1 -1
  127. package/core/useFont.cjs.js +1 -1
  128. package/core/useGLTF.cjs.js +1 -1
  129. package/core/useHelper.cjs.js +1 -1
  130. package/core/useIntersect.cjs.js +1 -1
  131. package/core/useKTX2.cjs.js +1 -1
  132. package/core/useMatcapTexture.cjs.js +1 -1
  133. package/core/useNormalTexture.cjs.js +1 -1
  134. package/core/useProgress.cjs.js +1 -1
  135. package/core/useSpriteLoader.cjs.js +1 -0
  136. package/core/useSpriteLoader.d.ts +9 -0
  137. package/core/useSpriteLoader.js +215 -0
  138. package/core/useTexture.cjs.js +1 -1
  139. package/core/useTrailTexture.cjs.js +1 -1
  140. package/core/useVideoTexture.cjs.js +1 -1
  141. package/helpers/constants.cjs.js +1 -1
  142. package/helpers/deprecated.cjs.js +1 -1
  143. package/helpers/environment-assets.cjs.js +1 -1
  144. package/helpers/glsl/DefaultSpotlightShadowShadows.glsl.js +3 -1
  145. package/helpers/glsl/distort.vert.glsl.js +3 -1
  146. package/helpers/ts-utils.js +1 -0
  147. package/helpers/useEffectfulState.cjs.js +1 -1
  148. package/index.cjs.js +1 -1
  149. package/index.js +4 -2
  150. package/materials/BlurPass.cjs.js +1 -1
  151. package/materials/ConvolutionMaterial.cjs.js +1 -1
  152. package/materials/DiscardMaterial.cjs.js +1 -1
  153. package/materials/MeshReflectorMaterial.cjs.js +1 -1
  154. package/materials/MeshRefractionMaterial.cjs.js +1 -1
  155. package/materials/MeshRefractionMaterial.js +0 -2
  156. package/materials/SpotLightMaterial.cjs.js +1 -1
  157. package/materials/WireframeMaterial.cjs.js +1 -1
  158. package/native/index.cjs.js +1 -1
  159. package/native/index.js +153 -0
  160. package/package.json +1 -1
  161. package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
  162. package/web/CycleRaycast.cjs.js +1 -1
  163. package/web/FaceControls.cjs.js +1 -1
  164. package/web/FaceLandmarker.cjs.js +1 -1
  165. package/web/Facemesh.cjs.js +1 -1
  166. package/web/Html.cjs.js +1 -1
  167. package/web/KeyboardControls.cjs.js +1 -1
  168. package/web/Loader.cjs.js +1 -1
  169. package/web/PresentationControls.cjs.js +1 -1
  170. package/web/ScrollControls.cjs.js +1 -1
  171. package/web/Select.cjs.js +1 -1
  172. package/web/View.cjs.js +1 -2
  173. package/web/View.js +0 -1
  174. package/web/index.cjs.js +1 -1
  175. package/web/index.js +176 -0
  176. package/web/pivotControls/AxisArrow.cjs.js +1 -1
  177. package/web/pivotControls/AxisRotator.cjs.js +1 -1
  178. package/web/pivotControls/PlaneSlider.cjs.js +1 -1
  179. package/web/pivotControls/context.cjs.js +1 -1
  180. package/web/pivotControls/index.cjs.js +1 -1
  181. package/web/pivotControls/index.d.ts +2 -4
  182. package/web/pivotControls/index.js +5 -31
  183. package/web/useCursor.cjs.js +1 -1
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);
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),o=require("./GizmoHelper.cjs.js"),a=require("three");function n(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 i=n(t);const l="#f0f0f0",c="#999",s="black",p="black",m=["Right","Left","Top","Bottom","Front","Back"],u=e=>new a.Vector3(...e).multiplyScalar(.38),h=[[1,1,1],[1,1,-1],[1,-1,1],[1,-1,-1],[-1,1,1],[-1,1,-1],[-1,-1,1],[-1,-1,-1]].map(u),f=[.25,.25,.25],g=[[1,1,0],[1,0,1],[1,0,-1],[1,-1,0],[0,1,1],[0,1,-1],[0,-1,1],[0,-1,-1],[-1,1,0],[-1,0,1],[-1,0,-1],[-1,-1,0]].map(u),y=g.map((e=>e.toArray().map((e=>0==e?.5:.25)))),b=({hover:e,index:t,font:o="20px Inter var, Arial, sans-serif",faces:n=m,color:u=l,hoverColor:h=c,textColor:f=s,strokeColor:g=p,opacity:y=1})=>{const b=r.useThree((e=>e.gl)),x=i.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const r=e.getContext("2d");return r.fillStyle=u,r.fillRect(0,0,e.width,e.height),r.strokeStyle=g,r.strokeRect(0,0,e.width,e.height),r.font=o,r.textAlign="center",r.fillStyle=f,r.fillText(n[t].toUpperCase(),64,76),new a.CanvasTexture(e)}),[t,n,o,u,f,g]);return i.createElement("meshBasicMaterial",{map:x,"map-anisotropy":b.capabilities.getMaxAnisotropy()||1,attach:`material-${t}`,color:e?h:"white",transparent:!0,opacity:y})},x=t=>{const{tweenCamera:r}=o.useGizmoContext(),[a,n]=i.useState(null);return i.createElement("mesh",{onPointerOut:e=>{e.stopPropagation(),n(null)},onPointerMove:e=>{e.stopPropagation(),n(Math.floor(e.faceIndex/2))},onClick:t.onClick||(e=>{e.stopPropagation(),r(e.face.normal)})},[...Array(6)].map(((r,o)=>i.createElement(b,e({key:o,index:o,hover:a===o},t)))),i.createElement("boxGeometry",null))},d=({onClick:e,dimensions:t,position:r,hoverColor:a=c})=>{const{tweenCamera:n}=o.useGizmoContext(),[l,s]=i.useState(!1);return i.createElement("mesh",{scale:1.01,position:r,onPointerOver:e=>{e.stopPropagation(),s(!0)},onPointerOut:e=>{e.stopPropagation(),s(!1)},onClick:e||(e=>{e.stopPropagation(),n(r)})},i.createElement("meshBasicMaterial",{color:l?a:"white",transparent:!0,opacity:.6,visible:l}),i.createElement("boxGeometry",{args:t}))};exports.GizmoViewcube=t=>i.createElement("group",{scale:[60,60,60]},i.createElement(x,t),g.map(((r,o)=>i.createElement(d,e({key:o,position:r,dimensions:y[o]},t)))),h.map(((r,o)=>i.createElement(d,e({key:o,position:r,dimensions:f},t)))));
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),o=require("./GizmoHelper.cjs.js"),a=require("three");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("./OrthographicCamera.cjs.js"),require("react-merge-refs"),require("./useFBO.cjs.js"),require("./Hud.cjs.js");var l=n(e),s=i(t);const c="#f0f0f0",u="#999",p="black",m="black",f=["Right","Left","Top","Bottom","Front","Back"],h=e=>new a.Vector3(...e).multiplyScalar(.38),d=[[1,1,1],[1,1,-1],[1,-1,1],[1,-1,-1],[-1,1,1],[-1,1,-1],[-1,-1,1],[-1,-1,-1]].map(h),g=[.25,.25,.25],y=[[1,1,0],[1,0,1],[1,0,-1],[1,-1,0],[0,1,1],[0,1,-1],[0,-1,1],[0,-1,-1],[-1,1,0],[-1,0,1],[-1,0,-1],[-1,-1,0]].map(h),b=y.map((e=>e.toArray().map((e=>0==e?.5:.25)))),x=({hover:e,index:t,font:o="20px Inter var, Arial, sans-serif",faces:n=f,color:i=c,hoverColor:l=u,textColor:h=p,strokeColor:d=m,opacity:g=1})=>{const y=r.useThree((e=>e.gl)),b=s.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const r=e.getContext("2d");return r.fillStyle=i,r.fillRect(0,0,e.width,e.height),r.strokeStyle=d,r.strokeRect(0,0,e.width,e.height),r.font=o,r.textAlign="center",r.fillStyle=h,r.fillText(n[t].toUpperCase(),64,76),new a.CanvasTexture(e)}),[t,n,o,i,h,d]);return s.createElement("meshBasicMaterial",{map:b,"map-anisotropy":y.capabilities.getMaxAnisotropy()||1,attach:`material-${t}`,color:e?l:"white",transparent:!0,opacity:g})},C=e=>{const{tweenCamera:t}=o.useGizmoContext(),[r,a]=s.useState(null);return s.createElement("mesh",{onPointerOut:e=>{e.stopPropagation(),a(null)},onPointerMove:e=>{e.stopPropagation(),a(Math.floor(e.faceIndex/2))},onClick:e.onClick||(e=>{e.stopPropagation(),t(e.face.normal)})},[...Array(6)].map(((t,o)=>s.createElement(x,l.default({key:o,index:o,hover:r===o},e)))),s.createElement("boxGeometry",null))},j=({onClick:e,dimensions:t,position:r,hoverColor:a=u})=>{const{tweenCamera:n}=o.useGizmoContext(),[i,l]=s.useState(!1);return s.createElement("mesh",{scale:1.01,position:r,onPointerOver:e=>{e.stopPropagation(),l(!0)},onPointerOut:e=>{e.stopPropagation(),l(!1)},onClick:e||(e=>{e.stopPropagation(),n(r)})},s.createElement("meshBasicMaterial",{color:i?a:"white",transparent:!0,opacity:.6,visible:i}),s.createElement("boxGeometry",{args:t}))};exports.GizmoViewcube=e=>s.createElement("group",{scale:[60,60,60]},s.createElement(C,e),y.map(((t,r)=>s.createElement(j,l.default({key:r,position:t,dimensions:b[r]},e)))),d.map(((t,r)=>s.createElement(j,l.default({key:r,position:t,dimensions:g},e)))));
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),a=require("@react-three/fiber"),r=require("three"),o=require("./GizmoHelper.cjs.js");function l(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var r=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,r.get?r:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}var n=l(t);function i({scale:e=[.8,.05,.05],color:t,rotation:a}){return n.createElement("group",{rotation:a},n.createElement("mesh",{position:[.4,0,0]},n.createElement("boxGeometry",{args:e}),n.createElement("meshBasicMaterial",{color:t,toneMapped:!1})))}function c({onClick:t,font:o,disabled:l,arcStyle:i,label:c,labelColor:s,axisHeadScale:p=1,...m}){const u=a.useThree((e=>e.gl)),f=n.useMemo((()=>{const e=document.createElement("canvas");e.width=64,e.height=64;const t=e.getContext("2d");return t.beginPath(),t.arc(32,32,16,0,2*Math.PI),t.closePath(),t.fillStyle=i,t.fill(),c&&(t.font=o,t.textAlign="center",t.fillStyle=s,t.fillText(c,32,41)),new r.CanvasTexture(e)}),[i,c,s,o]),[d,b]=n.useState(!1),E=(c?1:.75)*(d?1.2:1)*p;return n.createElement("sprite",e({scale:E,onPointerOver:l?void 0:e=>{e.stopPropagation(),b(!0)},onPointerOut:l?void 0:t||(e=>{e.stopPropagation(),b(!1)})},m),n.createElement("spriteMaterial",{map:f,"map-anisotropy":u.capabilities.getMaxAnisotropy()||1,alphaTest:.3,opacity:c?1:.75,toneMapped:!1}))}exports.GizmoViewport=({hideNegativeAxes:t,hideAxisHeads:a,disabled:r,font:l="18px Inter var, Arial, sans-serif",axisColors:s=["#ff2060","#20df80","#2080ff"],axisHeadScale:p=1,axisScale:m,labels:u=["X","Y","Z"],labelColor:f="#000",onClick:d,...b})=>{const[E,g,h]=s,{tweenCamera:x}=o.useGizmoContext(),y={font:l,disabled:r,labelColor:f,onClick:d,axisHeadScale:p,onPointerDown:r?void 0:e=>{x(e.object.position),e.stopPropagation()}};return n.createElement("group",e({scale:40},b),n.createElement(i,{color:E,rotation:[0,0,0],scale:m}),n.createElement(i,{color:g,rotation:[0,0,Math.PI/2],scale:m}),n.createElement(i,{color:h,rotation:[0,-Math.PI/2,0],scale:m}),!a&&n.createElement(n.Fragment,null,n.createElement(c,e({arcStyle:E,position:[1,0,0],label:u[0]},y)),n.createElement(c,e({arcStyle:g,position:[0,1,0],label:u[1]},y)),n.createElement(c,e({arcStyle:h,position:[0,0,1],label:u[2]},y)),!t&&n.createElement(n.Fragment,null,n.createElement(c,e({arcStyle:E,position:[-1,0,0]},y)),n.createElement(c,e({arcStyle:g,position:[0,-1,0]},y)),n.createElement(c,e({arcStyle:h,position:[0,0,-1]},y)))))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),a=require("three"),o=require("./GizmoHelper.cjs.js");function l(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 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)}require("./OrthographicCamera.cjs.js"),require("react-merge-refs"),require("./useFBO.cjs.js"),require("./Hud.cjs.js");var i=l(e),c=n(t);function s({scale:e=[.8,.05,.05],color:t,rotation:r}){return c.createElement("group",{rotation:r},c.createElement("mesh",{position:[.4,0,0]},c.createElement("boxGeometry",{args:e}),c.createElement("meshBasicMaterial",{color:t,toneMapped:!1})))}function u({onClick:e,font:t,disabled:o,arcStyle:l,label:n,labelColor:s,axisHeadScale:u=1,...f}){const p=r.useThree((e=>e.gl)),d=c.useMemo((()=>{const e=document.createElement("canvas");e.width=64,e.height=64;const r=e.getContext("2d");return r.beginPath(),r.arc(32,32,16,0,2*Math.PI),r.closePath(),r.fillStyle=l,r.fill(),n&&(r.font=t,r.textAlign="center",r.fillStyle=s,r.fillText(n,32,41)),new a.CanvasTexture(e)}),[l,n,s,t]),[m,b]=c.useState(!1),g=(n?1:.75)*(m?1.2:1)*u;return c.createElement("sprite",i.default({scale:g,onPointerOver:o?void 0:e=>{e.stopPropagation(),b(!0)},onPointerOut:o?void 0:e||(e=>{e.stopPropagation(),b(!1)})},f),c.createElement("spriteMaterial",{map:d,"map-anisotropy":p.capabilities.getMaxAnisotropy()||1,alphaTest:.3,opacity:n?1:.75,toneMapped:!1}))}exports.GizmoViewport=({hideNegativeAxes:e,hideAxisHeads:t,disabled:r,font:a="18px Inter var, Arial, sans-serif",axisColors:l=["#ff2060","#20df80","#2080ff"],axisHeadScale:n=1,axisScale:f,labels:p=["X","Y","Z"],labelColor:d="#000",onClick:m,...b})=>{const[g,h,E]=l,{tweenCamera:x}=o.useGizmoContext(),y={font:a,disabled:r,labelColor:d,onClick:m,axisHeadScale:n,onPointerDown:r?void 0:e=>{x(e.object.position),e.stopPropagation()}};return c.createElement("group",i.default({scale:40},b),c.createElement(s,{color:g,rotation:[0,0,0],scale:f}),c.createElement(s,{color:h,rotation:[0,0,Math.PI/2],scale:f}),c.createElement(s,{color:E,rotation:[0,-Math.PI/2,0],scale:f}),!t&&c.createElement(c.Fragment,null,c.createElement(u,i.default({arcStyle:g,position:[1,0,0],label:p[0]},y)),c.createElement(u,i.default({arcStyle:h,position:[0,1,0],label:p[1]},y)),c.createElement(u,i.default({arcStyle:E,position:[0,0,1],label:p[2]},y)),!e&&c.createElement(c.Fragment,null,c.createElement(u,i.default({arcStyle:g,position:[-1,0,0]},y)),c.createElement(u,i.default({arcStyle:h,position:[0,-1,0]},y)),c.createElement(u,i.default({arcStyle:E,position:[0,0,-1]},y)))))};
package/core/Gltf.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("./useGLTF.cjs.js"),c=require("./Clone.cjs.js");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((({src:r,...n},s)=>{const{scene:o}=t.useGLTF(r);return u.createElement(c.Clone,e({ref:s},n,{object:o}))}));exports.Gltf=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("./useGLTF.cjs.js"),u=require("./Clone.cjs.js");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)}require("three-stdlib"),require("@react-three/fiber"),require("three");var f=n(e),i=c(r);const o=i.forwardRef((({src:e,...r},n)=>{const{scene:c}=t.useGLTF(e);return i.createElement(u.Clone,f.default({ref:n},r,{object:c}))}));exports.Gltf=o;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber");function a(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 n=a(t);let i=function(e){return e.Linear="linear",e.Radial="radial",e}({});exports.GradientTexture=function({stops:t,colors:a,size:c=1024,width:o=16,type:u=i.Linear,innerCircleRadius:l=0,outerCircleRadius:s="auto",...d}){const f=r.useThree((e=>e.gl)),h=n.useMemo((()=>{const e=document.createElement("canvas"),r=e.getContext("2d");let n;if(e.width=o,e.height=c,u===i.Linear)n=r.createLinearGradient(0,0,0,c);else{const t=e.width/2,a=e.height/2,i="auto"!==s?Math.abs(Number(s)):Math.sqrt(t**2+a**2);n=r.createRadialGradient(t,a,Math.abs(l),t,a,i)}let d=t.length;for(;d--;)n.addColorStop(t[d],a[d]);return r.save(),r.fillStyle=n,r.fillRect(0,0,o,c),r.restore(),e}),[t]);return n.createElement("canvasTexture",e({colorSpace:f.outputColorSpace,args:[h],attach:"map"},d))},exports.GradientType=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber");function a(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 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 i=a(e),u=n(t);let o=function(e){return e.Linear="linear",e.Radial="radial",e}({});exports.GradientTexture=function({stops:e,colors:t,size:a=1024,width:n=16,type:c=o.Linear,innerCircleRadius:l=0,outerCircleRadius:s="auto",...d}){const f=r.useThree((e=>e.gl)),p=u.useMemo((()=>{const r=document.createElement("canvas"),i=r.getContext("2d");let u;if(r.width=n,r.height=a,c===o.Linear)u=i.createLinearGradient(0,0,0,a);else{const e=r.width/2,t=r.height/2,a="auto"!==s?Math.abs(Number(s)):Math.sqrt(e**2+t**2);u=i.createRadialGradient(e,t,Math.abs(l),e,t,a)}let d=e.length;for(;d--;)u.addColorStop(e[d],t[d]);return i.save(),i.fillStyle=u,i.fillRect(0,0,n,a),i.restore(),r}),[e]);return u.createElement("canvasTexture",i.default({colorSpace:f.outputColorSpace,args:[p],attach:"map"},d))},exports.GradientType=o;
package/core/Grid.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),n=require("react"),o=require("three"),i=require("react-merge-refs"),r=require("@react-three/fiber"),t=require("./shaderMaterial.cjs.js"),l=require("../helpers/constants.cjs.js");function a(e){var n=Object.create(null);return e&&Object.keys(e).forEach((function(o){if("default"!==o){var i=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,i.get?i:{enumerable:!0,get:function(){return e[o]}})}})),n.default=e,Object.freeze(n)}var s=a(n),c=a(o);const f=t.shaderMaterial({cellSize:.5,sectionSize:1,fadeDistance:100,fadeStrength:1,cellThickness:.5,sectionThickness:1,cellColor:new c.Color,sectionColor:new c.Color,infiniteGrid:!1,followCamera:!1,worldCamProjPosition:new c.Vector3,worldPlanePosition:new c.Vector3},"\n varying vec3 localPosition;\n varying vec4 worldPosition;\n\n uniform vec3 worldCamProjPosition;\n uniform vec3 worldPlanePosition;\n uniform float fadeDistance;\n uniform bool infiniteGrid;\n uniform bool followCamera;\n\n void main() {\n localPosition = position.xzy;\n if (infiniteGrid) localPosition *= 1.0 + fadeDistance;\n \n worldPosition = modelMatrix * vec4(localPosition, 1.0);\n if (followCamera) {\n worldPosition.xyz += (worldCamProjPosition - worldPlanePosition);\n localPosition = (inverse(modelMatrix) * worldPosition).xyz;\n }\n\n gl_Position = projectionMatrix * viewMatrix * worldPosition;\n }\n ",`\n varying vec3 localPosition;\n varying vec4 worldPosition;\n\n uniform vec3 worldCamProjPosition;\n uniform float cellSize;\n uniform float sectionSize;\n uniform vec3 cellColor;\n uniform vec3 sectionColor;\n uniform float fadeDistance;\n uniform float fadeStrength;\n uniform float cellThickness;\n uniform float sectionThickness;\n\n float getGrid(float size, float thickness) {\n vec2 r = localPosition.xz / size;\n vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);\n float line = min(grid.x, grid.y) + 1.0 - thickness;\n return 1.0 - min(line, 1.0);\n }\n\n void main() {\n float g1 = getGrid(cellSize, cellThickness);\n float g2 = getGrid(sectionSize, sectionThickness);\n\n float dist = distance(worldCamProjPosition, worldPosition.xyz);\n float d = 1.0 - min(dist / fadeDistance, 1.0);\n vec3 color = mix(cellColor, sectionColor, min(1.0, sectionThickness * g2));\n\n gl_FragColor = vec4(color, (g1 + g2) * pow(d, fadeStrength));\n gl_FragColor.a = mix(0.75 * gl_FragColor.a, gl_FragColor.a, g2);\n if (gl_FragColor.a <= 0.0) discard;\n\n #include <tonemapping_fragment>\n #include <${l.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }\n `),d=s.forwardRef((({args:n,cellColor:o="#000000",sectionColor:t="#2080ff",cellSize:l=.5,sectionSize:a=1,followCamera:d=!1,infiniteGrid:m=!1,fadeDistance:u=100,fadeStrength:g=1,cellThickness:P=.5,sectionThickness:w=1,side:v=c.BackSide,...C},h)=>{r.extend({GridMaterial:f});const p=s.useRef(null),x=new c.Plane,z=new c.Vector3(0,1,0),j=new c.Vector3(0,0,0);r.useFrame((e=>{x.setFromNormalAndCoplanarPoint(z,j).applyMatrix4(p.current.matrixWorld);const n=p.current.material,o=n.uniforms.worldCamProjPosition,i=n.uniforms.worldPlanePosition;x.projectPoint(e.camera.position,o.value),i.value.set(0,0,0).applyMatrix4(p.current.matrixWorld)}));const S={cellSize:l,sectionSize:a,cellColor:o,sectionColor:t,cellThickness:P,sectionThickness:w},k={fadeDistance:u,fadeStrength:g,infiniteGrid:m,followCamera:d};return s.createElement("mesh",e({ref:i([p,h]),frustumCulled:!1},C),s.createElement("gridMaterial",e({transparent:!0,"extensions-derivatives":!0,side:v},S,k)),s.createElement("planeGeometry",{args:n}))}));exports.Grid=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),n=require("react"),o=require("three"),i=require("react-merge-refs"),r=require("@react-three/fiber"),t=require("./shaderMaterial.cjs.js"),l=require("../helpers/constants.cjs.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(o){if("default"!==o){var i=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,i.get?i:{enumerable:!0,get:function(){return e[o]}})}})),n.default=e,Object.freeze(n)}var c=a(e),f=s(n),d=s(o),u=a(i);const m=t.shaderMaterial({cellSize:.5,sectionSize:1,fadeDistance:100,fadeStrength:1,cellThickness:.5,sectionThickness:1,cellColor:new d.Color,sectionColor:new d.Color,infiniteGrid:!1,followCamera:!1,worldCamProjPosition:new d.Vector3,worldPlanePosition:new d.Vector3},"\n varying vec3 localPosition;\n varying vec4 worldPosition;\n\n uniform vec3 worldCamProjPosition;\n uniform vec3 worldPlanePosition;\n uniform float fadeDistance;\n uniform bool infiniteGrid;\n uniform bool followCamera;\n\n void main() {\n localPosition = position.xzy;\n if (infiniteGrid) localPosition *= 1.0 + fadeDistance;\n \n worldPosition = modelMatrix * vec4(localPosition, 1.0);\n if (followCamera) {\n worldPosition.xyz += (worldCamProjPosition - worldPlanePosition);\n localPosition = (inverse(modelMatrix) * worldPosition).xyz;\n }\n\n gl_Position = projectionMatrix * viewMatrix * worldPosition;\n }\n ",`\n varying vec3 localPosition;\n varying vec4 worldPosition;\n\n uniform vec3 worldCamProjPosition;\n uniform float cellSize;\n uniform float sectionSize;\n uniform vec3 cellColor;\n uniform vec3 sectionColor;\n uniform float fadeDistance;\n uniform float fadeStrength;\n uniform float cellThickness;\n uniform float sectionThickness;\n\n float getGrid(float size, float thickness) {\n vec2 r = localPosition.xz / size;\n vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);\n float line = min(grid.x, grid.y) + 1.0 - thickness;\n return 1.0 - min(line, 1.0);\n }\n\n void main() {\n float g1 = getGrid(cellSize, cellThickness);\n float g2 = getGrid(sectionSize, sectionThickness);\n\n float dist = distance(worldCamProjPosition, worldPosition.xyz);\n float d = 1.0 - min(dist / fadeDistance, 1.0);\n vec3 color = mix(cellColor, sectionColor, min(1.0, sectionThickness * g2));\n\n gl_FragColor = vec4(color, (g1 + g2) * pow(d, fadeStrength));\n gl_FragColor.a = mix(0.75 * gl_FragColor.a, gl_FragColor.a, g2);\n if (gl_FragColor.a <= 0.0) discard;\n\n #include <tonemapping_fragment>\n #include <${l.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }\n `),g=f.forwardRef((({args:e,cellColor:n="#000000",sectionColor:o="#2080ff",cellSize:i=.5,sectionSize:t=1,followCamera:l=!1,infiniteGrid:a=!1,fadeDistance:s=100,fadeStrength:g=1,cellThickness:P=.5,sectionThickness:w=1,side:v=d.BackSide,...C},h)=>{r.extend({GridMaterial:m});const p=f.useRef(null),x=new d.Plane,j=new d.Vector3(0,1,0),z=new d.Vector3(0,0,0);r.useFrame((e=>{x.setFromNormalAndCoplanarPoint(j,z).applyMatrix4(p.current.matrixWorld);const n=p.current.material,o=n.uniforms.worldCamProjPosition,i=n.uniforms.worldPlanePosition;x.projectPoint(e.camera.position,o.value),i.value.set(0,0,0).applyMatrix4(p.current.matrixWorld)}));const y={cellSize:i,sectionSize:t,cellColor:n,sectionColor:o,cellThickness:P,sectionThickness:w},S={fadeDistance:s,fadeStrength:g,infiniteGrid:a,followCamera:l};return f.createElement("mesh",c.default({ref:u.default([p,h]),frustumCulled:!1},C),f.createElement("gridMaterial",c.default({transparent:!0,"extensions-derivatives":!0,side:v},y,S)),f.createElement("planeGeometry",{args:e}))}));exports.Grid=g;
package/core/Hud.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("three"),r=require("react"),t=require("@react-three/fiber");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 a=n(e),u=n(r);function c({defaultScene:e,defaultCamera:r,renderPriority:n=1}){const{gl:a,scene:c,camera:l}=t.useThree();let o;return t.useFrame((()=>{o=a.autoClear,1===n&&(a.autoClear=!0,a.render(e,r)),a.autoClear=!1,a.clearDepth(),a.render(c,l),a.autoClear=o}),n),u.createElement("group",{onPointerOver:()=>null})}exports.Hud=function({children:e,renderPriority:r=1}){const{scene:n,camera:l}=t.useThree(),[o]=u.useState((()=>new a.Scene));return u.createElement(u.Fragment,null,t.createPortal(u.createElement(u.Fragment,null,e,u.createElement(c,{defaultScene:n,defaultCamera:l,renderPriority:r})),o,{events:{priority:r+1}}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("react"),t=require("@react-three/fiber");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 a=n(e),u=n(r);function c({defaultScene:e,defaultCamera:r,renderPriority:n=1}){const{gl:a,scene:c,camera:l}=t.useThree();let o;return t.useFrame((()=>{o=a.autoClear,1===n&&(a.autoClear=!0,a.render(e,r)),a.autoClear=!1,a.clearDepth(),a.render(c,l),a.autoClear=o}),n),u.createElement("group",{onPointerOver:()=>null})}exports.Hud=function({children:e,renderPriority:r=1}){const{scene:n,camera:l}=t.useThree(),[o]=u.useState((()=>new a.Scene));return u.createElement(u.Fragment,null,t.createPortal(u.createElement(u.Fragment,null,e,u.createElement(c,{defaultScene:n,defaultCamera:l,renderPriority:r})),o,{events:{priority:r+1}}))};
package/core/Image.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"),a=require("./shaderMaterial.cjs.js"),o=require("./useTexture.cjs.js"),s=require("../helpers/constants.cjs.js");function i(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=i(r),l=i(t);const u=a.shaderMaterial({color:new l.Color("white"),scale:new l.Vector2(1,1),imageBounds:new l.Vector2(1,1),resolution:1024,map:null,zoom:1,radius:0,grayscale:0,opacity:1},"\n varying vec2 vUv;\n varying vec2 vPos;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n vPos = position.xy;\n }\n",`\n // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44\n varying vec2 vUv;\n varying vec2 vPos;\n uniform vec2 scale;\n uniform vec2 imageBounds;\n uniform float resolution;\n uniform vec3 color;\n uniform sampler2D map;\n uniform float radius;\n uniform float zoom;\n uniform float grayscale;\n uniform float opacity;\n const vec3 luma = vec3(.299, 0.587, 0.114);\n vec4 toGrayscale(vec4 color, float intensity) {\n return vec4(mix(color.rgb, vec3(dot(color.rgb, luma)), intensity), color.a);\n }\n vec2 aspect(vec2 size) {\n return size / min(size.x, size.y);\n }\n \n const float PI = 3.14159265;\n \n // from https://iquilezles.org/articles/distfunctions\n float udRoundBox( vec2 p, vec2 b, float r ) {\n return length(max(abs(p)-b+r,0.0))-r;\n }\n\n void main() {\n vec2 s = aspect(scale);\n vec2 i = aspect(imageBounds);\n float rs = s.x / s.y;\n float ri = i.x / i.y;\n vec2 new = rs < ri ? vec2(i.x * s.y / i.y, s.y) : vec2(s.x, i.y * s.x / i.x);\n vec2 offset = (rs < ri ? vec2((new.x - s.x) / 2.0, 0.0) : vec2(0.0, (new.y - s.y) / 2.0)) / new;\n vec2 uv = vUv * s / new + offset;\n vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5);\n\n vec2 res = vec2(scale * resolution);\n vec2 halfRes = 0.5 * res;\n float b = udRoundBox(vUv.xy * res - halfRes, halfRes, resolution * radius); \n\t vec3 a = mix(vec3(1.0,0.0,0.0), vec3(0.0,0.0,0.0), smoothstep(0.0, 1.0, b));\n gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, opacity * a), grayscale);\n \n #include <tonemapping_fragment>\n #include <${s.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }\n`),m=c.forwardRef((({children:r,color:t,segments:a=1,scale:o=1,zoom:s=1,grayscale:i=0,opacity:l=1,radius:m=0,texture:v,toneMapped:f,transparent:g,side:y,...d},p)=>{n.extend({ImageMaterial:u});const h=c.useRef(null),x=n.useThree((e=>e.size)),w=Array.isArray(o)?[o[0],o[1]]:[o,o],b=[v.image.width,v.image.height],z=Math.max(x.width,x.height);return c.useImperativeHandle(p,(()=>h.current),[]),c.useLayoutEffect((()=>{h.current.geometry.parameters&&h.current.material.scale.set(w[0]*h.current.geometry.parameters.width,w[1]*h.current.geometry.parameters.height)}),[]),c.createElement("mesh",e({ref:h,scale:Array.isArray(o)?[...o,1]:o},d),c.createElement("planeGeometry",{args:[1,1,a,a]}),c.createElement("imageMaterial",{color:t,map:v,zoom:s,grayscale:i,opacity:l,scale:w,imageBounds:b,resolution:z,radius:m,toneMapped:f,transparent:g,side:y,key:u.key}),r)})),v=c.forwardRef((({url:r,...t},n)=>{const a=o.useTexture(r);return c.createElement(m,e({},t,{texture:a,ref:n}))})),f=c.forwardRef((({url:r,...t},n)=>c.createElement(m,e({},t,{ref:n})))),g=c.forwardRef(((r,t)=>{if(r.url)return c.createElement(v,e({},r,{ref:t}));if(r.texture)return c.createElement(f,e({},r,{ref:t}));throw new Error("<Image /> requires a url or texture")}));exports.Image=g;
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"),a=require("./shaderMaterial.cjs.js"),o=require("./useTexture.cjs.js"),s=require("../helpers/constants.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 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 l=i(e),u=c(r),f=c(t);const v=a.shaderMaterial({color:new f.Color("white"),scale:new f.Vector2(1,1),imageBounds:new f.Vector2(1,1),resolution:1024,map:null,zoom:1,radius:0,grayscale:0,opacity:1},"\n varying vec2 vUv;\n varying vec2 vPos;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n vPos = position.xy;\n }\n",`\n // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44\n varying vec2 vUv;\n varying vec2 vPos;\n uniform vec2 scale;\n uniform vec2 imageBounds;\n uniform float resolution;\n uniform vec3 color;\n uniform sampler2D map;\n uniform float radius;\n uniform float zoom;\n uniform float grayscale;\n uniform float opacity;\n const vec3 luma = vec3(.299, 0.587, 0.114);\n vec4 toGrayscale(vec4 color, float intensity) {\n return vec4(mix(color.rgb, vec3(dot(color.rgb, luma)), intensity), color.a);\n }\n vec2 aspect(vec2 size) {\n return size / min(size.x, size.y);\n }\n \n const float PI = 3.14159265;\n \n // from https://iquilezles.org/articles/distfunctions\n float udRoundBox( vec2 p, vec2 b, float r ) {\n return length(max(abs(p)-b+r,0.0))-r;\n }\n\n void main() {\n vec2 s = aspect(scale);\n vec2 i = aspect(imageBounds);\n float rs = s.x / s.y;\n float ri = i.x / i.y;\n vec2 new = rs < ri ? vec2(i.x * s.y / i.y, s.y) : vec2(s.x, i.y * s.x / i.x);\n vec2 offset = (rs < ri ? vec2((new.x - s.x) / 2.0, 0.0) : vec2(0.0, (new.y - s.y) / 2.0)) / new;\n vec2 uv = vUv * s / new + offset;\n vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5);\n\n vec2 res = vec2(scale * resolution);\n vec2 halfRes = 0.5 * res;\n float b = udRoundBox(vUv.xy * res - halfRes, halfRes, resolution * radius); \n\t vec3 a = mix(vec3(1.0,0.0,0.0), vec3(0.0,0.0,0.0), smoothstep(0.0, 1.0, b));\n gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, opacity * a), grayscale);\n \n #include <tonemapping_fragment>\n #include <${s.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }\n`),m=u.forwardRef((({children:e,color:r,segments:t=1,scale:a=1,zoom:o=1,grayscale:s=0,opacity:i=1,radius:c=0,texture:f,toneMapped:m,transparent:d,side:y,...g},p)=>{n.extend({ImageMaterial:v});const x=u.useRef(null),h=n.useThree((e=>e.size)),b=Array.isArray(a)?[a[0],a[1]]:[a,a],w=[f.image.width,f.image.height],j=Math.max(h.width,h.height);return u.useImperativeHandle(p,(()=>x.current),[]),u.useLayoutEffect((()=>{x.current.geometry.parameters&&x.current.material.scale.set(b[0]*x.current.geometry.parameters.width,b[1]*x.current.geometry.parameters.height)}),[]),u.createElement("mesh",l.default({ref:x,scale:Array.isArray(a)?[...a,1]:a},g),u.createElement("planeGeometry",{args:[1,1,t,t]}),u.createElement("imageMaterial",{color:r,map:f,zoom:o,grayscale:s,opacity:i,scale:b,imageBounds:w,resolution:j,radius:c,toneMapped:m,transparent:d,side:y,key:v.key}),e)})),d=u.forwardRef((({url:e,...r},t)=>{const n=o.useTexture(e);return u.createElement(m,l.default({},r,{texture:n,ref:t}))})),y=u.forwardRef((({url:e,...r},t)=>u.createElement(m,l.default({},r,{ref:t})))),g=u.forwardRef(((e,r)=>{if(e.url)return u.createElement(d,l.default({},e,{ref:r}));if(e.texture)return u.createElement(y,l.default({},e,{ref:r}));throw new Error("<Image /> requires a url or texture")}));exports.Image=g;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),a=require("react-merge-refs"),c=require("react-composer"),s=require("../helpers/deprecated.cjs.js");function i(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=i(t),u=i(r);const l=new o.Matrix4,f=new o.Matrix4,d=[],m=new o.Mesh;class y extends o.Group{constructor(){super(),this.color=new o.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){const r=this.instance.current;if(!r)return;if(!r.geometry||!r.material)return;m.geometry=r.geometry;const n=r.matrixWorld,a=r.userData.instances.indexOf(this.instanceKey);if(!(-1===a||a>r.count)){r.getMatrixAt(a,l),f.multiplyMatrices(n,l),m.matrixWorld=f,r.material instanceof o.Material?m.material.side=r.material.side:m.material.side=r.material[0].side,m.raycast(e,d);for(let e=0,r=d.length;e<r;e++){const r=d[e];r.instanceId=a,r.object=this,t.push(r)}d.length=0}}}const h=u.createContext(null),p=new o.Matrix4,g=new o.Matrix4,x=new o.Matrix4,M=new o.Vector3,w=new o.Quaternion,b=new o.Vector3,v=u.forwardRef((({context:t,children:r,...c},s)=>{u.useMemo((()=>n.extend({PositionMesh:y})),[]);const i=u.useRef(),{subscribe:o,getParent:l}=u.useContext(t||h);return u.useLayoutEffect((()=>o(i)),[]),u.createElement("positionMesh",e({instance:l(),instanceKey:i,ref:a([s,i])},c),r)})),E=u.forwardRef((({children:t,range:r,limit:c=1e3,frames:i=1/0,...l},f)=>{const[{context:d,instance:m}]=u.useState((()=>{const t=u.createContext(null);return{context:t,instance:u.forwardRef(((r,n)=>u.createElement(v,e({context:t},r,{ref:n}))))}})),y=u.useRef(null),[E,A]=u.useState([]),[[j,O]]=u.useState((()=>{const e=new Float32Array(16*c);for(let t=0;t<c;t++)x.identity().toArray(e,16*t);return[e,new Float32Array([...new Array(3*c)].map((()=>1)))]}));u.useEffect((()=>{y.current.instanceMatrix.needsUpdate=!0}));let R=0,U=0;n.useFrame((()=>{if(i===1/0||R<i){y.current.updateMatrix(),y.current.updateMatrixWorld(),p.copy(y.current.matrixWorld).invert(),U=Math.min(c,void 0!==r?r:c,E.length),y.current.count=U,s.setUpdateRange(y.current.instanceMatrix,{offset:0,count:16*U}),s.setUpdateRange(y.current.instanceColor,{offset:0,count:3*U});for(let e=0;e<E.length;e++){const t=E[e].current;t.matrixWorld.decompose(M,w,b),g.compose(M,w,b).premultiply(p),g.toArray(j,16*e),y.current.instanceMatrix.needsUpdate=!0,t.color.toArray(O,3*e),y.current.instanceColor.needsUpdate=!0}R++}}));const q=u.useMemo((()=>({getParent:()=>y,subscribe:e=>(A((t=>[...t,e])),()=>A((t=>t.filter((t=>t.current!==e.current)))))})),[]);return u.createElement("instancedMesh",e({userData:{instances:E},matrixAutoUpdate:!1,ref:a([f,y]),args:[null,null,0],raycast:()=>null},l),u.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:j.length/16,array:j,itemSize:16,usage:o.DynamicDrawUsage}),u.createElement("instancedBufferAttribute",{attach:"instanceColor",count:O.length/3,array:O,itemSize:3,usage:o.DynamicDrawUsage}),"function"==typeof t?u.createElement(d.Provider,{value:q},t(m)):u.createElement(h.Provider,{value:q},t))})),A=u.forwardRef((function({meshes:t,children:r,...n},a){const s=Array.isArray(t);if(!s)for(const e of Object.keys(t))t[e].isMesh||delete t[e];return u.createElement("group",{ref:a},u.createElement(c,{components:(s?t:Object.values(t)).map((({geometry:t,material:r})=>u.createElement(E,e({key:t.uuid,geometry:t,material:r},n))))},(e=>s?r(...e):r(Object.keys(t).filter((e=>t[e].isMesh)).reduce(((t,r,n)=>({...t,[r]:e[n]})),{})))))}));exports.Instance=v,exports.Instances=E,exports.Merged=A;
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"),a=require("react-merge-refs"),c=require("react-composer"),i=require("../helpers/deprecated.cjs.js");function s(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 u=s(e),l=o(t),f=o(r),d=s(a),m=s(c);const y=new l.Matrix4,p=new l.Matrix4,h=[],x=new l.Mesh;class g extends l.Group{constructor(){super(),this.color=new l.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){const r=this.instance.current;if(!r)return;if(!r.geometry||!r.material)return;x.geometry=r.geometry;const n=r.matrixWorld,a=r.userData.instances.indexOf(this.instanceKey);if(!(-1===a||a>r.count)){r.getMatrixAt(a,y),p.multiplyMatrices(n,y),x.matrixWorld=p,r.material instanceof l.Material?x.material.side=r.material.side:x.material.side=r.material[0].side,x.raycast(e,h);for(let e=0,r=h.length;e<r;e++){const r=h[e];r.instanceId=a,r.object=this,t.push(r)}h.length=0}}}const M=f.createContext(null),b=new l.Matrix4,w=new l.Matrix4,v=new l.Matrix4,j=new l.Vector3,E=new l.Quaternion,A=new l.Vector3,O=f.forwardRef((({context:e,children:t,...r},a)=>{f.useMemo((()=>n.extend({PositionMesh:g})),[]);const c=f.useRef(),{subscribe:i,getParent:s}=f.useContext(e||M);return f.useLayoutEffect((()=>i(c)),[]),f.createElement("positionMesh",u.default({instance:s(),instanceKey:c,ref:d.default([a,c])},r),t)})),P=f.forwardRef((({children:e,range:t,limit:r=1e3,frames:a=1/0,...c},s)=>{const[{context:o,instance:m}]=f.useState((()=>{const e=f.createContext(null);return{context:e,instance:f.forwardRef(((t,r)=>f.createElement(O,u.default({context:e},t,{ref:r}))))}})),y=f.useRef(null),[p,h]=f.useState([]),[[x,g]]=f.useState((()=>{const e=new Float32Array(16*r);for(let t=0;t<r;t++)v.identity().toArray(e,16*t);return[e,new Float32Array([...new Array(3*r)].map((()=>1)))]}));f.useEffect((()=>{y.current.instanceMatrix.needsUpdate=!0}));let P=0,R=0;n.useFrame((()=>{if(a===1/0||P<a){y.current.updateMatrix(),y.current.updateMatrixWorld(),b.copy(y.current.matrixWorld).invert(),R=Math.min(r,void 0!==t?t:r,p.length),y.current.count=R,i.setUpdateRange(y.current.instanceMatrix,{offset:0,count:16*R}),i.setUpdateRange(y.current.instanceColor,{offset:0,count:3*R});for(let e=0;e<p.length;e++){const t=p[e].current;t.matrixWorld.decompose(j,E,A),w.compose(j,E,A).premultiply(b),w.toArray(x,16*e),y.current.instanceMatrix.needsUpdate=!0,t.color.toArray(g,3*e),y.current.instanceColor.needsUpdate=!0}P++}}));const U=f.useMemo((()=>({getParent:()=>y,subscribe:e=>(h((t=>[...t,e])),()=>h((t=>t.filter((t=>t.current!==e.current)))))})),[]);return f.createElement("instancedMesh",u.default({userData:{instances:p},matrixAutoUpdate:!1,ref:d.default([s,y]),args:[null,null,0],raycast:()=>null},c),f.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:x.length/16,array:x,itemSize:16,usage:l.DynamicDrawUsage}),f.createElement("instancedBufferAttribute",{attach:"instanceColor",count:g.length/3,array:g,itemSize:3,usage:l.DynamicDrawUsage}),"function"==typeof e?f.createElement(o.Provider,{value:U},e(m)):f.createElement(M.Provider,{value:U},e))})),R=f.forwardRef((function({meshes:e,children:t,...r},n){const a=Array.isArray(e);if(!a)for(const t of Object.keys(e))e[t].isMesh||delete e[t];return f.createElement("group",{ref:n},f.createElement(m.default,{components:(a?e:Object.values(e)).map((({geometry:e,material:t})=>f.createElement(P,u.default({key:e.uuid,geometry:e,material:t},r))))},(r=>a?t(...r):t(Object.keys(e).filter((t=>e[t].isMesh)).reduce(((e,t,n)=>({...e,[t]:r[n]})),{})))))}));exports.Instance=O,exports.Instances=P,exports.Merged=R;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),a=require("three"),c=require("react-merge-refs");function l(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 n=l(t),i=l(a);const o=n.forwardRef((({args:t,map:a,toneMapped:l=!1,color:o="white",form:u="rect",intensity:s=1,scale:m=1,target:f,children:p,...y},g)=>{const b=n.useRef(null);return n.useLayoutEffect((()=>{p||y.material||(r.applyProps(b.current.material,{color:o}),b.current.material.color.multiplyScalar(s))}),[o,s,p,y.material]),n.useLayoutEffect((()=>{f&&b.current.lookAt(Array.isArray(f)?new i.Vector3(...f):f)}),[f]),m=Array.isArray(m)&&2===m.length?[m[0],m[1],1]:m,n.createElement("mesh",e({ref:c([b,g]),scale:m},y),"circle"===u?n.createElement("ringGeometry",{args:[0,1,64]}):"ring"===u?n.createElement("ringGeometry",{args:[.5,1,64]}):"rect"===u?n.createElement("planeGeometry",null):n.createElement(u,{args:t}),p||(y.material?null:n.createElement("meshBasicMaterial",{toneMapped:l,map:a,side:i.DoubleSide})))}));exports.Lightformer=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),a=require("three"),l=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 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 u=n(e),i=c(t),o=c(a),s=n(l);const f=i.forwardRef((({args:e,map:t,toneMapped:a=!1,color:l="white",form:n="rect",intensity:c=1,scale:f=1,target:m,children:p,...d},y)=>{const g=i.useRef(null);return i.useLayoutEffect((()=>{p||d.material||(r.applyProps(g.current.material,{color:l}),g.current.material.color.multiplyScalar(c))}),[l,c,p,d.material]),i.useLayoutEffect((()=>{m&&g.current.lookAt(Array.isArray(m)?new o.Vector3(...m):m)}),[m]),f=Array.isArray(f)&&2===f.length?[f[0],f[1],1]:f,i.createElement("mesh",u.default({ref:s.default([g,y]),scale:f},d),"circle"===n?i.createElement("ringGeometry",{args:[0,1,64]}):"ring"===n?i.createElement("ringGeometry",{args:[.5,1,64]}):"rect"===n?i.createElement("planeGeometry",null):i.createElement(n,{args:e}),p||(d.material?null:i.createElement("meshBasicMaterial",{toneMapped:a,map:t,side:o.DoubleSide})))}));exports.Lightformer=f;
package/core/Line.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"),i=require("three-stdlib");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 a=s.forwardRef((function({points:t,color:o="black",vertexColors:a,linewidth:c,lineWidth:l,segments:u,dashed:f,...d},m){var h;const p=n.useThree((e=>e.size)),b=s.useMemo((()=>u?new i.LineSegments2:new i.Line2),[u]),[y]=s.useState((()=>new i.LineMaterial)),g=4===(null==a||null==(h=a[0])?void 0:h.length)?4:3,v=s.useMemo((()=>{const e=u?new i.LineSegmentsGeometry:new i.LineGeometry,n=t.map((e=>{const t=Array.isArray(e);return e instanceof r.Vector3||e instanceof r.Vector4?[e.x,e.y,e.z]:e instanceof r.Vector2?[e.x,e.y,0]:t&&3===e.length?[e[0],e[1],e[2]]:t&&2===e.length?[e[0],e[1],0]:e}));if(e.setPositions(n.flat()),a){const t=a.map((e=>e instanceof r.Color?e.toArray():e));e.setColors(t.flat(),g)}return e}),[t,u,a,g]);return s.useLayoutEffect((()=>{b.computeLineDistances()}),[t,b]),s.useLayoutEffect((()=>{f?y.defines.USE_DASH="":delete y.defines.USE_DASH,y.needsUpdate=!0}),[f,y]),s.useEffect((()=>()=>v.dispose()),[v]),s.createElement("primitive",e({object:b,ref:m},d),s.createElement("primitive",{object:v,attach:"geometry"}),s.createElement("primitive",e({object:y,attach:"material",color:o,vertexColors:Boolean(a),resolution:[p.width,p.height],linewidth:null!=c?c:l,dashed:f,transparent:4===g},d)))}));exports.Line=a;
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"),i=require("three-stdlib");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=o(e),c=a(t);const l=c.forwardRef((function({points:e,color:t="black",vertexColors:o,linewidth:a,lineWidth:l,segments:u,dashed:f,...d},m){var h;const p=n.useThree((e=>e.size)),b=c.useMemo((()=>u?new i.LineSegments2:new i.Line2),[u]),[y]=c.useState((()=>new i.LineMaterial)),v=4===(null==o||null==(h=o[0])?void 0:h.length)?4:3,g=c.useMemo((()=>{const t=u?new i.LineSegmentsGeometry:new i.LineGeometry,n=e.map((e=>{const t=Array.isArray(e);return e instanceof r.Vector3||e instanceof r.Vector4?[e.x,e.y,e.z]:e instanceof r.Vector2?[e.x,e.y,0]:t&&3===e.length?[e[0],e[1],e[2]]:t&&2===e.length?[e[0],e[1],0]:e}));if(t.setPositions(n.flat()),o){const e=o.map((e=>e instanceof r.Color?e.toArray():e));t.setColors(e.flat(),v)}return t}),[e,u,o,v]);return c.useLayoutEffect((()=>{b.computeLineDistances()}),[e,b]),c.useLayoutEffect((()=>{f?y.defines.USE_DASH="":delete y.defines.USE_DASH,y.needsUpdate=!0}),[f,y]),c.useEffect((()=>()=>g.dispose()),[g]),c.createElement("primitive",s.default({object:b,ref:m},d),c.createElement("primitive",{object:g,attach:"geometry"}),c.createElement("primitive",s.default({object:y,attach:"material",color:t,vertexColors:Boolean(o),resolution:[p.width,p.height],linewidth:null!=a?a:l,dashed:f,transparent:4===v},d)))}));exports.Line=l;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");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 o=s.forwardRef(((r={enableDamping:!0},a)=>{const{domElement:o,camera:c,makeDefault:u,onChange:i,onStart:d,onEnd:l,...f}=r,m=t.useThree((e=>e.invalidate)),v=t.useThree((e=>e.camera)),b=t.useThree((e=>e.gl)),h=t.useThree((e=>e.events)),E=t.useThree((e=>e.set)),p=t.useThree((e=>e.get)),g=o||h.connected||b.domElement,j=c||v,L=s.useMemo((()=>new n.MapControls(j)),[j]);return s.useEffect((()=>{L.connect(g);const e=e=>{m(),i&&i(e)};return L.addEventListener("change",e),d&&L.addEventListener("start",d),l&&L.addEventListener("end",l),()=>{L.dispose(),L.removeEventListener("change",e),d&&L.removeEventListener("start",d),l&&L.removeEventListener("end",l)}}),[i,d,l,L,m,g]),s.useEffect((()=>{if(u){const e=p().controls;return E({controls:L}),()=>E({controls:e})}}),[u,L]),t.useFrame((()=>L.update()),-1),s.createElement("primitive",e({ref:a,object:L,enableDamping:!0},f))}));exports.MapControls=o;
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 a(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=a(e),u=o(r);const c=u.forwardRef(((e={enableDamping:!0},r)=>{const{domElement:a,camera:o,makeDefault:c,onChange:i,onStart:d,onEnd:l,...f}=e,m=t.useThree((e=>e.invalidate)),v=t.useThree((e=>e.camera)),b=t.useThree((e=>e.gl)),p=t.useThree((e=>e.events)),h=t.useThree((e=>e.set)),E=t.useThree((e=>e.get)),g=a||p.connected||b.domElement,j=o||v,O=u.useMemo((()=>new n.MapControls(j)),[j]);return u.useEffect((()=>{O.connect(g);const e=e=>{m(),i&&i(e)};return O.addEventListener("change",e),d&&O.addEventListener("start",d),l&&O.addEventListener("end",l),()=>{O.dispose(),O.removeEventListener("change",e),d&&O.removeEventListener("start",d),l&&O.removeEventListener("end",l)}}),[i,d,l,O,m,g]),u.useEffect((()=>{if(c){const e=E().controls;return h({controls:O}),()=>h({controls:e})}}),[c,O]),t.useFrame((()=>O.update()),-1),u.createElement("primitive",s.default({ref:r,object:O,enableDamping:!0},f))}));exports.MapControls=c;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("react-merge-refs"),u=require("three-stdlib"),a=require("@react-three/fiber");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 o=c(r),s=c(t);const l=s.createContext(null),i=s.forwardRef((({resolution:r=28,maxPolyCount:t=1e4,enableUvs:c=!1,enableColors:o=!1,children:i,...f},d)=>{const m=s.useRef(null),b=s.useMemo((()=>new u.MarchingCubes(r,null,c,o,t)),[r,t,c,o]),g=s.useMemo((()=>({getParent:()=>m})),[]);return a.useFrame((()=>{b.update(),b.reset()}),-1),s.createElement(s.Fragment,null,s.createElement("primitive",e({object:b,ref:n([m,d])},f),s.createElement(l.Provider,{value:g},i)))})),f=s.forwardRef((({strength:r=.5,subtract:t=12,color:u,...c},i)=>{const{getParent:f}=s.useContext(l),d=s.useMemo((()=>f()),[f]),m=s.useRef(),b=new o.Vector3;return a.useFrame((e=>{d.current&&m.current&&(m.current.getWorldPosition(b),d.current.addBall(.5+.5*b.x,.5+.5*b.y,.5+.5*b.z,r,t,u))})),s.createElement("group",e({ref:n([i,m])},c))})),d=s.forwardRef((({planeType:r="x",strength:t=.5,subtract:u=12,...c},o)=>{const{getParent:i}=s.useContext(l),f=s.useMemo((()=>i()),[i]),d=s.useRef(),m=s.useMemo((()=>"x"===r?"addPlaneX":"y"===r?"addPlaneY":"addPlaneZ"),[r]);return a.useFrame((()=>{f.current&&d.current&&f.current[m](t,u)})),s.createElement("group",e({ref:n([o,d])},c))}));exports.MarchingCube=f,exports.MarchingCubes=i,exports.MarchingPlane=d;
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-merge-refs"),u=require("three-stdlib"),a=require("@react-three/fiber");function l(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 c=l(e),s=o(r),f=o(t),i=l(n);const d=f.createContext(null),b=f.forwardRef((({resolution:e=28,maxPolyCount:r=1e4,enableUvs:t=!1,enableColors:n=!1,children:l,...o},s)=>{const b=f.useRef(null),m=f.useMemo((()=>new u.MarchingCubes(e,null,t,n,r)),[e,r,t,n]),g=f.useMemo((()=>({getParent:()=>b})),[]);return a.useFrame((()=>{m.update(),m.reset()}),-1),f.createElement(f.Fragment,null,f.createElement("primitive",c.default({object:m,ref:i.default([b,s])},o),f.createElement(d.Provider,{value:g},l)))})),m=f.forwardRef((({strength:e=.5,subtract:r=12,color:t,...n},u)=>{const{getParent:l}=f.useContext(d),o=f.useMemo((()=>l()),[l]),b=f.useRef(),m=new s.Vector3;return a.useFrame((n=>{o.current&&b.current&&(b.current.getWorldPosition(m),o.current.addBall(.5+.5*m.x,.5+.5*m.y,.5+.5*m.z,e,r,t))})),f.createElement("group",c.default({ref:i.default([u,b])},n))})),g=f.forwardRef((({planeType:e="x",strength:r=.5,subtract:t=12,...n},u)=>{const{getParent:l}=f.useContext(d),o=f.useMemo((()=>l()),[l]),s=f.useRef(),b=f.useMemo((()=>"x"===e?"addPlaneX":"y"===e?"addPlaneY":"addPlaneZ"),[e]);return a.useFrame((()=>{o.current&&s.current&&o.current[b](r,t)})),f.createElement("group",c.default({ref:i.default([u,s])},n))}));exports.MarchingCube=m,exports.MarchingCubes=b,exports.MarchingPlane=g;
package/core/Mask.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react");function n(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=n(t),i=n(r);const l=i.forwardRef((({id:t=1,colorWrite:r=!1,depthWrite:n=!1,...l},s)=>{const a=i.useRef(null),u=i.useMemo((()=>({colorWrite:r,depthWrite:n,stencilWrite:!0,stencilRef:t,stencilFunc:c.AlwaysStencilFunc,stencilFail:c.ReplaceStencilOp,stencilZFail:c.ReplaceStencilOp,stencilZPass:c.ReplaceStencilOp})),[t,r,n]);return i.useLayoutEffect((()=>{Object.assign(a.current.material,u)})),i.useImperativeHandle(s,(()=>a.current),[]),i.createElement("mesh",e({ref:a,renderOrder:-t},l))}));exports.Mask=l,exports.useMask=function(e,t=!1){return{stencilWrite:!0,stencilRef:e,stencilFunc:t?c.NotEqualStencilFunc:c.EqualStencilFunc,stencilFail:c.KeepStencilOp,stencilZFail:c.KeepStencilOp,stencilZPass:c.KeepStencilOp}};
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 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 i=n(e),l=c(t),u=c(r);const s=u.forwardRef((({id:e=1,colorWrite:t=!1,depthWrite:r=!1,...n},c)=>{const s=u.useRef(null),a=u.useMemo((()=>({colorWrite:t,depthWrite:r,stencilWrite:!0,stencilRef:e,stencilFunc:l.AlwaysStencilFunc,stencilFail:l.ReplaceStencilOp,stencilZFail:l.ReplaceStencilOp,stencilZPass:l.ReplaceStencilOp})),[e,t,r]);return u.useLayoutEffect((()=>{Object.assign(s.current.material,a)})),u.useImperativeHandle(c,(()=>s.current),[]),u.createElement("mesh",i.default({ref:s,renderOrder:-e},n))}));exports.Mask=s,exports.useMask=function(e,t=!1){return{stencilWrite:!0,stencilRef:e,stencilFunc:t?l.NotEqualStencilFunc:l.EqualStencilFunc,stencilFail:l.KeepStencilOp,stencilZFail:l.KeepStencilOp,stencilZPass:l.KeepStencilOp}};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),a=require("../materials/DiscardMaterial.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);const n=c.forwardRef(((r,i)=>(t.extend({DiscardMaterialImpl:a.DiscardMaterial}),c.createElement("discardMaterialImpl",e({ref:i},r)))));exports.MeshDiscardMaterial=n;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),a=require("../materials/DiscardMaterial.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 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("./shaderMaterial.cjs.js"),require("three");var u=i(e),l=c(r);const n=l.forwardRef(((e,r)=>(t.extend({DiscardMaterialImpl:a.DiscardMaterial}),l.createElement("discardMaterialImpl",u.default({ref:r},e)))));exports.MeshDiscardMaterial=n;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),i=require("@react-three/fiber"),s=require("../helpers/glsl/distort.vert.glsl.js");function a(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var u=a(t);class n extends r.MeshPhysicalMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._distort={value:.4},this._radius={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.radius=this._radius,e.uniforms.distort=this._distort,e.vertexShader=`\n uniform float time;\n uniform float radius;\n uniform float distort;\n ${s}\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","\n float updateTime = time / 50.0;\n float noise = snoise(vec3(position / 2.0 + updateTime * 5.0));\n vec3 transformed = vec3(position * (noise * pow(distort, 2.0) + radius));\n ")}get time(){return this._time.value}set time(e){this._time.value=e}get distort(){return this._distort.value}set distort(e){this._distort.value=e}get radius(){return this._radius.value}set radius(e){this._radius.value=e}}const o=u.forwardRef((({speed:t=1,...r},s)=>{const[a]=u.useState((()=>new n));return i.useFrame((e=>a&&(a.time=e.clock.getElapsedTime()*t))),u.createElement("primitive",e({object:a,ref:s,attach:"material"},r))}));exports.MeshDistortMaterial=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),i=require("@react-three/fiber");function o(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 i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=o(e),v=s(t);class n extends r.MeshPhysicalMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._distort={value:.4},this._radius={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.radius=this._radius,e.uniforms.distort=this._distort,e.vertexShader=`\n uniform float time;\n uniform float radius;\n uniform float distort;\n #define GLSLIFY 1\nvec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 permute(vec4 x){return mod289(((x*34.0)+1.0)*x);}vec4 taylorInvSqrt(vec4 r){return 1.79284291400159-0.85373472095314*r;}float snoise(vec3 v){const vec2 C=vec2(1.0/6.0,1.0/3.0);const vec4 D=vec4(0.0,0.5,1.0,2.0);vec3 i=floor(v+dot(v,C.yyy));vec3 x0=v-i+dot(i,C.xxx);vec3 g=step(x0.yzx,x0.xyz);vec3 l=1.0-g;vec3 i1=min(g.xyz,l.zxy);vec3 i2=max(g.xyz,l.zxy);vec3 x1=x0-i1+C.xxx;vec3 x2=x0-i2+C.yyy;vec3 x3=x0-D.yyy;i=mod289(i);vec4 p=permute(permute(permute(i.z+vec4(0.0,i1.z,i2.z,1.0))+i.y+vec4(0.0,i1.y,i2.y,1.0))+i.x+vec4(0.0,i1.x,i2.x,1.0));float n_=0.142857142857;vec3 ns=n_*D.wyz-D.xzx;vec4 j=p-49.0*floor(p*ns.z*ns.z);vec4 x_=floor(j*ns.z);vec4 y_=floor(j-7.0*x_);vec4 x=x_*ns.x+ns.yyyy;vec4 y=y_*ns.x+ns.yyyy;vec4 h=1.0-abs(x)-abs(y);vec4 b0=vec4(x.xy,y.xy);vec4 b1=vec4(x.zw,y.zw);vec4 s0=floor(b0)*2.0+1.0;vec4 s1=floor(b1)*2.0+1.0;vec4 sh=-step(h,vec4(0.0));vec4 a0=b0.xzyw+s0.xzyw*sh.xxyy;vec4 a1=b1.xzyw+s1.xzyw*sh.zzww;vec3 p0=vec3(a0.xy,h.x);vec3 p1=vec3(a0.zw,h.y);vec3 p2=vec3(a1.xy,h.z);vec3 p3=vec3(a1.zw,h.w);vec4 norm=taylorInvSqrt(vec4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;vec4 m=max(0.6-vec4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);m=m*m;return 42.0*dot(m*m,vec4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));}\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","\n float updateTime = time / 50.0;\n float noise = snoise(vec3(position / 2.0 + updateTime * 5.0));\n vec3 transformed = vec3(position * (noise * pow(distort, 2.0) + radius));\n ")}get time(){return this._time.value}set time(e){this._time.value=e}get distort(){return this._distort.value}set distort(e){this._distort.value=e}get radius(){return this._radius.value}set radius(e){this._radius.value=e}}const x=v.forwardRef((({speed:e=1,...t},r)=>{const[o]=v.useState((()=>new n));return i.useFrame((t=>o&&(o.time=t.clock.getElapsedTime()*e))),v.createElement("primitive",c.default({object:o,ref:r,attach:"material"},t))}));exports.MeshDistortMaterial=x;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),a=require("./useIntersect.cjs.js"),i=require("./useFBO.cjs.js"),l=require("./RenderTexture.cjs.js"),o=require("./shaderMaterial.cjs.js"),s=require("three-stdlib"),u=require("../helpers/constants.cjs.js");function v(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=v(r),m=v(t);const d=o.shaderMaterial({blur:0,map:null,sdf:null,blend:0,size:0,resolution:new c.Vector2},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vUv = uv;\n }",`uniform sampler2D sdf;\n uniform sampler2D map;\n uniform float blur;\n uniform float size;\n uniform float time;\n uniform vec2 resolution;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec4 t = texture2D(map, uv);\n float k = blur;\n float d = texture2D(sdf, vUv).r/size;\n float alpha = 1.0 - smoothstep(0.0, 1.0, clamp(d/k + 1.0, 0.0, 1.0));\n gl_FragColor = vec4(t.rgb, blur == 0.0 ? t.a : t.a * alpha);\n #include <tonemapping_fragment>\n #include <${u.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`),f=m.forwardRef((({children:r,events:t,blur:o=0,eventPriority:s=0,renderPriority:u=0,worldUnits:v=!1,resolution:f=512,...p},F)=>{n.extend({PortalMaterialImpl:d});const h=m.useRef(null),{scene:y,gl:b,size:w,viewport:M,setEvents:U}=n.useThree(),T=i.useFBO(f,f),[R,S]=m.useState(0);n.useFrame((()=>{const e=h.current.blend>0?Math.max(1,u):0;R!==e&&S(e)})),m.useEffect((()=>{void 0!==t&&U({enabled:!t})}),[t]);const[D,_]=m.useState(!0),j=a.useIntersect(_);m.useLayoutEffect((()=>{var e;j.current=null==(e=h.current)?void 0:e.__r3f.parent}),[]),m.useLayoutEffect((()=>{if(j.current&&o&&null===h.current.sdf){const e=new c.Mesh(j.current.geometry,new c.MeshBasicMaterial),r=(new c.Box3).setFromBufferAttribute(e.geometry.attributes.position),t=new c.OrthographicCamera(r.min.x*(1+2/f),r.max.x*(1+2/f),r.max.y*(1+2/f),r.min.y*(1+2/f),.1,1e3);t.position.set(0,0,1),t.lookAt(0,0,0),b.setRenderTarget(T),b.render(e,t);const n=x(f,f,b)(T.texture),a=new Float32Array(f*f);b.readRenderTargetPixels(n,0,0,f,f,a);let i=1/0;for(let e=0;e<a.length;e++)a[e]<i&&(i=a[e]);i=-i,h.current.size=i,h.current.sdf=n.texture,b.setRenderTarget(null)}}),[f,o]),m.useImperativeHandle(F,(()=>h.current));const P=m.useCallback(((e,r,t)=>{var n;if(!j.current)return!1;if(r.pointer.set(e.offsetX/r.size.width*2-1,-e.offsetY/r.size.height*2+1),r.raycaster.setFromCamera(r.pointer,r.camera),0===(null==(n=h.current)?void 0:n.blend)){const[e]=r.raycaster.intersectObject(j.current);if(!e)return r.raycaster.camera=void 0,!1}}),[]);return m.createElement("portalMaterialImpl",e({ref:h,blur:o,blend:0,resolution:[w.width*M.dpr,w.height*M.dpr],attach:"material"},p),m.createElement(l.RenderTexture,{attach:"map",frames:D?1/0:0,eventPriority:s,renderPriority:u,compute:P},r,m.createElement(g,{events:t,rootScene:y,priority:R,material:h,worldUnits:v})))}));function g({events:e,rootScene:r,material:t,priority:a,worldUnits:l}){const o=n.useThree((e=>e.scene)),v=n.useThree((e=>e.setEvents)),d=i.useFBO(),f=i.useFBO();m.useLayoutEffect((()=>{o.matrixAutoUpdate=!1}),[]),m.useEffect((()=>{void 0!==e&&v({enabled:e})}),[e]);const[g,x]=m.useMemo((()=>{const e={value:0};return[new s.FullScreenQuad(new c.ShaderMaterial({uniforms:{a:{value:d.texture},b:{value:f.texture},blend:e},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:`\n uniform sampler2D a;\n uniform sampler2D b;\n uniform float blend;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec4 ta = texture2D(a, vUv);\n vec4 tb = texture2D(b, vUv);\n gl_FragColor = mix(tb, ta, blend);\n #include <tonemapping_fragment>\n #include <${u.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`})),e]}),[]);return n.useFrame((e=>{var n;let i=null==t||null==(n=t.current)?void 0:n.__r3f.parent;if(i){var s,u,v,c;if(l)o.matrixWorld.identity();else a&&1===(null==(s=t.current)?void 0:s.blend)&&i.updateWorldMatrix(!0,!1),o.matrixWorld.copy(i.matrixWorld);if(a)(null==(u=t.current)?void 0:u.blend)>0&&(null==(v=t.current)?void 0:v.blend)<1?(x.value=t.current.blend,e.gl.setRenderTarget(d),e.gl.render(o,e.camera),e.gl.setRenderTarget(f),e.gl.render(r,e.camera),e.gl.setRenderTarget(null),g.render(e.gl)):1===(null==(c=t.current)?void 0:c.blend)&&e.gl.render(o,e.camera)}}),a),m.createElement(m.Fragment,null)}const x=(e,r,t)=>{let n=new c.WebGLRenderTarget(e,r,{minFilter:c.LinearMipmapLinearFilter,magFilter:c.LinearFilter,type:c.FloatType,format:c.RedFormat,generateMipmaps:!0}),a=new c.WebGLRenderTarget(e,r,{minFilter:c.NearestFilter,magFilter:c.NearestFilter}),i=new c.WebGLRenderTarget(e,r,{minFilter:c.NearestFilter,magFilter:c.NearestFilter}),l=new c.WebGLRenderTarget(e,r,{minFilter:c.NearestFilter,magFilter:c.NearestFilter}),o=new c.WebGLRenderTarget(e,r,{minFilter:c.NearestFilter,magFilter:c.NearestFilter}),u=new c.WebGLRenderTarget(e,r,{minFilter:c.NearestFilter,magFilter:c.NearestFilter,type:c.FloatType,format:c.RedFormat}),v=new c.WebGLRenderTarget(e,r,{minFilter:c.NearestFilter,magFilter:c.NearestFilter,type:c.FloatType,format:c.RedFormat});const m=new s.FullScreenQuad(new c.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (round(texture2D(tex, vUv).x)));\n }"})),d=new s.FullScreenQuad(new c.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (1.0 - round(texture2D(tex, vUv).x)));\n }"})),f=new s.FullScreenQuad(new c.ShaderMaterial({uniforms:{tex:{value:null},offset:{value:0},level:{value:0},maxSteps:{value:0}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:`\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform float offset;\n uniform float level;\n uniform float maxSteps;\n #include <packing>\n void main() {\n float closestDist = 9999999.9;\n vec2 closestPos = vec2(0.0);\n for (float x = -1.0; x <= 1.0; x += 1.0) {\n for (float y = -1.0; y <= 1.0; y += 1.0) {\n vec2 voffset = vUv;\n voffset += vec2(x, y) * vec2(${1/e}, ${1/r}) * offset;\n vec2 pos = unpackRGBATo2Half(texture2D(tex, voffset));\n float dist = distance(pos.xy, vUv);\n if(pos.x != 0.0 && pos.y != 0.0 && dist < closestDist) {\n closestDist = dist;\n closestPos = pos;\n }\n }\n }\n gl_FragColor = pack2HalfToRGBA(closestPos);\n }`})),g=new s.FullScreenQuad(new c.ShaderMaterial({uniforms:{tex:{value:null},size:{value:new c.Vector2(e,r)}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform vec2 size;\n #include <packing>\n void main() {\n gl_FragColor = vec4(distance(size * unpackRGBATo2Half(texture2D(tex, vUv)), size * vUv), 0.0, 0.0, 0.0);\n }"})),x=new s.FullScreenQuad(new c.ShaderMaterial({uniforms:{inside:{value:v.texture},outside:{value:u.texture},tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D inside;\n uniform sampler2D outside;\n uniform sampler2D tex;\n #include <packing>\n void main() {\n float i = texture2D(inside, vUv).x;\n float o =texture2D(outside, vUv).x;\n if (texture2D(tex, vUv).x == 0.0) {\n gl_FragColor = vec4(o, 0.0, 0.0, 0.0);\n } else {\n gl_FragColor = vec4(-i, 0.0, 0.0, 0.0);\n }\n }"}));return s=>{let p=n;s.minFilter=c.NearestFilter,s.magFilter=c.NearestFilter,m.material.uniforms.tex.value=s,t.setRenderTarget(a),m.render(t);const F=Math.ceil(Math.log(Math.max(e,r))/Math.log(2));let h=a,y=null;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===a?l:a,f.material.uniforms.level.value=e,f.material.uniforms.maxSteps.value=F,f.material.uniforms.offset.value=r,f.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),f.render(t),h=y}t.setRenderTarget(u),g.material.uniforms.tex.value=y.texture,g.render(t),d.material.uniforms.tex.value=s,t.setRenderTarget(i),d.render(t),h=i;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===i?o:i,f.material.uniforms.level.value=e,f.material.uniforms.maxSteps.value=F,f.material.uniforms.offset.value=r,f.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),f.render(t),h=y}return t.setRenderTarget(v),g.material.uniforms.tex.value=y.texture,g.render(t),t.setRenderTarget(p),x.material.uniforms.tex.value=s,x.render(t),t.setRenderTarget(null),p}};exports.MeshPortalMaterial=f;
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"),a=require("./useIntersect.cjs.js"),i=require("./useFBO.cjs.js"),l=require("./RenderTexture.cjs.js"),o=require("./shaderMaterial.cjs.js"),u=require("three-stdlib"),s=require("../helpers/constants.cjs.js");function v(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 d=v(e),m=c(r),f=c(t);const g=o.shaderMaterial({blur:0,map:null,sdf:null,blend:0,size:0,resolution:new m.Vector2},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vUv = uv;\n }",`uniform sampler2D sdf;\n uniform sampler2D map;\n uniform float blur;\n uniform float size;\n uniform float time;\n uniform vec2 resolution;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec4 t = texture2D(map, uv);\n float k = blur;\n float d = texture2D(sdf, vUv).r/size;\n float alpha = 1.0 - smoothstep(0.0, 1.0, clamp(d/k + 1.0, 0.0, 1.0));\n gl_FragColor = vec4(t.rgb, blur == 0.0 ? t.a : t.a * alpha);\n #include <tonemapping_fragment>\n #include <${s.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`),p=f.forwardRef((({children:e,events:r,blur:t=0,eventPriority:o=0,renderPriority:u=0,worldUnits:s=!1,resolution:v=512,...c},p)=>{n.extend({PortalMaterialImpl:g});const h=f.useRef(null),{scene:y,gl:b,size:w,viewport:M,setEvents:U}=n.useThree(),T=i.useFBO(v,v),[R,S]=f.useState(0);n.useFrame((()=>{const e=h.current.blend>0?Math.max(1,u):0;R!==e&&S(e)})),f.useEffect((()=>{void 0!==r&&U({enabled:!r})}),[r]);const[_,D]=f.useState(!0),j=a.useIntersect(D);f.useLayoutEffect((()=>{var e;j.current=null==(e=h.current)?void 0:e.__r3f.parent}),[]),f.useLayoutEffect((()=>{if(j.current&&t&&null===h.current.sdf){const e=new m.Mesh(j.current.geometry,new m.MeshBasicMaterial),r=(new m.Box3).setFromBufferAttribute(e.geometry.attributes.position),t=new m.OrthographicCamera(r.min.x*(1+2/v),r.max.x*(1+2/v),r.max.y*(1+2/v),r.min.y*(1+2/v),.1,1e3);t.position.set(0,0,1),t.lookAt(0,0,0),b.setRenderTarget(T),b.render(e,t);const n=F(v,v,b)(T.texture),a=new Float32Array(v*v);b.readRenderTargetPixels(n,0,0,v,v,a);let i=1/0;for(let e=0;e<a.length;e++)a[e]<i&&(i=a[e]);i=-i,h.current.size=i,h.current.sdf=n.texture,b.setRenderTarget(null)}}),[v,t]),f.useImperativeHandle(p,(()=>h.current));const P=f.useCallback(((e,r,t)=>{var n;if(!j.current)return!1;if(r.pointer.set(e.offsetX/r.size.width*2-1,-e.offsetY/r.size.height*2+1),r.raycaster.setFromCamera(r.pointer,r.camera),0===(null==(n=h.current)?void 0:n.blend)){const[e]=r.raycaster.intersectObject(j.current);if(!e)return r.raycaster.camera=void 0,!1}}),[]);return f.createElement("portalMaterialImpl",d.default({ref:h,blur:t,blend:0,resolution:[w.width*M.dpr,w.height*M.dpr],attach:"material"},c),f.createElement(l.RenderTexture,{attach:"map",frames:_?1/0:0,eventPriority:o,renderPriority:u,compute:P},e,f.createElement(x,{events:r,rootScene:y,priority:R,material:h,worldUnits:s})))}));function x({events:e,rootScene:r,material:t,priority:a,worldUnits:l}){const o=n.useThree((e=>e.scene)),v=n.useThree((e=>e.setEvents)),c=i.useFBO(),d=i.useFBO();f.useLayoutEffect((()=>{o.matrixAutoUpdate=!1}),[]),f.useEffect((()=>{void 0!==e&&v({enabled:e})}),[e]);const[g,p]=f.useMemo((()=>{const e={value:0};return[new u.FullScreenQuad(new m.ShaderMaterial({uniforms:{a:{value:c.texture},b:{value:d.texture},blend:e},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:`\n uniform sampler2D a;\n uniform sampler2D b;\n uniform float blend;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec4 ta = texture2D(a, vUv);\n vec4 tb = texture2D(b, vUv);\n gl_FragColor = mix(tb, ta, blend);\n #include <tonemapping_fragment>\n #include <${s.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`})),e]}),[]);return n.useFrame((e=>{var n;let i=null==t||null==(n=t.current)?void 0:n.__r3f.parent;if(i){var u,s,v,m;if(l)o.matrixWorld.identity();else a&&1===(null==(u=t.current)?void 0:u.blend)&&i.updateWorldMatrix(!0,!1),o.matrixWorld.copy(i.matrixWorld);if(a)(null==(s=t.current)?void 0:s.blend)>0&&(null==(v=t.current)?void 0:v.blend)<1?(p.value=t.current.blend,e.gl.setRenderTarget(c),e.gl.render(o,e.camera),e.gl.setRenderTarget(d),e.gl.render(r,e.camera),e.gl.setRenderTarget(null),g.render(e.gl)):1===(null==(m=t.current)?void 0:m.blend)&&e.gl.render(o,e.camera)}}),a),f.createElement(f.Fragment,null)}const F=(e,r,t)=>{let n=new m.WebGLRenderTarget(e,r,{minFilter:m.LinearMipmapLinearFilter,magFilter:m.LinearFilter,type:m.FloatType,format:m.RedFormat,generateMipmaps:!0}),a=new m.WebGLRenderTarget(e,r,{minFilter:m.NearestFilter,magFilter:m.NearestFilter}),i=new m.WebGLRenderTarget(e,r,{minFilter:m.NearestFilter,magFilter:m.NearestFilter}),l=new m.WebGLRenderTarget(e,r,{minFilter:m.NearestFilter,magFilter:m.NearestFilter}),o=new m.WebGLRenderTarget(e,r,{minFilter:m.NearestFilter,magFilter:m.NearestFilter}),s=new m.WebGLRenderTarget(e,r,{minFilter:m.NearestFilter,magFilter:m.NearestFilter,type:m.FloatType,format:m.RedFormat}),v=new m.WebGLRenderTarget(e,r,{minFilter:m.NearestFilter,magFilter:m.NearestFilter,type:m.FloatType,format:m.RedFormat});const c=new u.FullScreenQuad(new m.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (round(texture2D(tex, vUv).x)));\n }"})),d=new u.FullScreenQuad(new m.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (1.0 - round(texture2D(tex, vUv).x)));\n }"})),f=new u.FullScreenQuad(new m.ShaderMaterial({uniforms:{tex:{value:null},offset:{value:0},level:{value:0},maxSteps:{value:0}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:`\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform float offset;\n uniform float level;\n uniform float maxSteps;\n #include <packing>\n void main() {\n float closestDist = 9999999.9;\n vec2 closestPos = vec2(0.0);\n for (float x = -1.0; x <= 1.0; x += 1.0) {\n for (float y = -1.0; y <= 1.0; y += 1.0) {\n vec2 voffset = vUv;\n voffset += vec2(x, y) * vec2(${1/e}, ${1/r}) * offset;\n vec2 pos = unpackRGBATo2Half(texture2D(tex, voffset));\n float dist = distance(pos.xy, vUv);\n if(pos.x != 0.0 && pos.y != 0.0 && dist < closestDist) {\n closestDist = dist;\n closestPos = pos;\n }\n }\n }\n gl_FragColor = pack2HalfToRGBA(closestPos);\n }`})),g=new u.FullScreenQuad(new m.ShaderMaterial({uniforms:{tex:{value:null},size:{value:new m.Vector2(e,r)}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform vec2 size;\n #include <packing>\n void main() {\n gl_FragColor = vec4(distance(size * unpackRGBATo2Half(texture2D(tex, vUv)), size * vUv), 0.0, 0.0, 0.0);\n }"})),p=new u.FullScreenQuad(new m.ShaderMaterial({uniforms:{inside:{value:v.texture},outside:{value:s.texture},tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D inside;\n uniform sampler2D outside;\n uniform sampler2D tex;\n #include <packing>\n void main() {\n float i = texture2D(inside, vUv).x;\n float o =texture2D(outside, vUv).x;\n if (texture2D(tex, vUv).x == 0.0) {\n gl_FragColor = vec4(o, 0.0, 0.0, 0.0);\n } else {\n gl_FragColor = vec4(-i, 0.0, 0.0, 0.0);\n }\n }"}));return u=>{let x=n;u.minFilter=m.NearestFilter,u.magFilter=m.NearestFilter,c.material.uniforms.tex.value=u,t.setRenderTarget(a),c.render(t);const F=Math.ceil(Math.log(Math.max(e,r))/Math.log(2));let h=a,y=null;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===a?l:a,f.material.uniforms.level.value=e,f.material.uniforms.maxSteps.value=F,f.material.uniforms.offset.value=r,f.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),f.render(t),h=y}t.setRenderTarget(s),g.material.uniforms.tex.value=y.texture,g.render(t),d.material.uniforms.tex.value=u,t.setRenderTarget(i),d.render(t),h=i;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===i?o:i,f.material.uniforms.level.value=e,f.material.uniforms.maxSteps.value=F,f.material.uniforms.offset.value=r,f.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),f.render(t),h=y}return t.setRenderTarget(v),g.material.uniforms.tex.value=y.texture,g.render(t),t.setRenderTarget(x),p.material.uniforms.tex.value=u,p.render(t),t.setRenderTarget(null),x}};exports.MeshPortalMaterial=p;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),a=require("@react-three/fiber"),n=require("react-merge-refs"),i=require("../materials/BlurPass.cjs.js"),s=require("../materials/MeshReflectorMaterial.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);const u=l.forwardRef((({mixBlur:t=0,mixStrength:o=1,resolution:u=256,blur:d=[0,0],minDepthThreshold:c=.9,maxDepthThreshold:p=1,depthScale:m=0,depthToBlurRatioBias:h=.25,mirror:x=0,distortion:f=1,mixContrast:M=1,distortionMap:T,reflectorOffset:S=0,...y},w)=>{a.extend({MeshReflectorMaterialImpl:s.MeshReflectorMaterial});const b=a.useThree((({gl:e})=>e)),R=a.useThree((({camera:e})=>e)),g=a.useThree((({scene:e})=>e)),v=(d=Array.isArray(d)?d:[d,d])[0]+d[1]>0,D=l.useRef(null),[B]=l.useState((()=>new r.Plane)),[j]=l.useState((()=>new r.Vector3)),[U]=l.useState((()=>new r.Vector3)),[O]=l.useState((()=>new r.Vector3)),[P]=l.useState((()=>new r.Matrix4)),[V]=l.useState((()=>new r.Vector3(0,0,-1))),[E]=l.useState((()=>new r.Vector4)),[F]=l.useState((()=>new r.Vector3)),[W]=l.useState((()=>new r.Vector3)),[_]=l.useState((()=>new r.Vector4)),[I]=l.useState((()=>new r.Matrix4)),[q]=l.useState((()=>new r.PerspectiveCamera)),k=l.useCallback((()=>{var e;const t=D.current.parent||(null==(e=D.current)?void 0:e.__r3f.parent);if(!t)return;if(U.setFromMatrixPosition(t.matrixWorld),O.setFromMatrixPosition(R.matrixWorld),P.extractRotation(t.matrixWorld),j.set(0,0,1),j.applyMatrix4(P),U.addScaledVector(j,S),F.subVectors(U,O),F.dot(j)>0)return;F.reflect(j).negate(),F.add(U),P.extractRotation(R.matrixWorld),V.set(0,0,-1),V.applyMatrix4(P),V.add(O),W.subVectors(U,V),W.reflect(j).negate(),W.add(U),q.position.copy(F),q.up.set(0,1,0),q.up.applyMatrix4(P),q.up.reflect(j),q.lookAt(W),q.far=R.far,q.updateMatrixWorld(),q.projectionMatrix.copy(R.projectionMatrix),I.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),I.multiply(q.projectionMatrix),I.multiply(q.matrixWorldInverse),I.multiply(t.matrixWorld),B.setFromNormalAndCoplanarPoint(j,U),B.applyMatrix4(q.matrixWorldInverse),E.set(B.normal.x,B.normal.y,B.normal.z,B.constant);const r=q.projectionMatrix;_.x=(Math.sign(E.x)+r.elements[8])/r.elements[0],_.y=(Math.sign(E.y)+r.elements[9])/r.elements[5],_.z=-1,_.w=(1+r.elements[10])/r.elements[14],E.multiplyScalar(2/E.dot(_)),r.elements[2]=E.x,r.elements[6]=E.y,r.elements[10]=E.z+1,r.elements[14]=E.w}),[R,S]),[C,L,z,A]=l.useMemo((()=>{const e={minFilter:r.LinearFilter,magFilter:r.LinearFilter,type:r.HalfFloatType},a=new r.WebGLRenderTarget(u,u,e);a.depthBuffer=!0,a.depthTexture=new r.DepthTexture(u,u),a.depthTexture.format=r.DepthFormat,a.depthTexture.type=r.UnsignedShortType;const n=new r.WebGLRenderTarget(u,u,e);return[a,n,new i.BlurPass({gl:b,resolution:u,width:d[0],height:d[1],minDepthThreshold:c,maxDepthThreshold:p,depthScale:m,depthToBlurRatioBias:h}),{mirror:x,textureMatrix:I,mixBlur:t,tDiffuse:a.texture,tDepth:a.depthTexture,tDiffuseBlur:n.texture,hasBlur:v,mixStrength:o,minDepthThreshold:c,maxDepthThreshold:p,depthScale:m,depthToBlurRatioBias:h,distortion:f,distortionMap:T,mixContrast:M,"defines-USE_BLUR":v?"":void 0,"defines-USE_DEPTH":m>0?"":void 0,"defines-USE_DISTORTION":T?"":void 0}]}),[b,d,I,u,x,v,t,o,c,p,m,h,f,T,M]);return a.useFrame((()=>{var e;const t=D.current.parent||(null==(e=D.current)?void 0:e.__r3f.parent);if(!t)return;t.visible=!1;const r=b.xr.enabled,a=b.shadowMap.autoUpdate;k(),b.xr.enabled=!1,b.shadowMap.autoUpdate=!1,b.setRenderTarget(C),b.state.buffers.depth.setMask(!0),b.autoClear||b.clear(),b.render(g,q),v&&z.render(b,C,L),b.xr.enabled=r,b.shadowMap.autoUpdate=a,t.visible=!0,b.setRenderTarget(null)})),l.createElement("meshReflectorMaterialImpl",e({attach:"material",key:"key"+A["defines-USE_BLUR"]+A["defines-USE_DEPTH"]+A["defines-USE_DISTORTION"],ref:n([D,w])},A,y))}));exports.MeshReflectorMaterial=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),a=require("@react-three/fiber"),n=require("react-merge-refs"),s=require("../materials/BlurPass.cjs.js"),i=require("../materials/MeshReflectorMaterial.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)}require("../materials/ConvolutionMaterial.cjs.js"),require("../helpers/constants.cjs.js");var u=o(e),d=l(t),c=o(n);const p=d.forwardRef((({mixBlur:e=0,mixStrength:t=1,resolution:n=256,blur:o=[0,0],minDepthThreshold:l=.9,maxDepthThreshold:p=1,depthScale:m=0,depthToBlurRatioBias:h=.25,mirror:f=0,distortion:x=1,mixContrast:M=1,distortionMap:T,reflectorOffset:S=0,...y},w)=>{a.extend({MeshReflectorMaterialImpl:i.MeshReflectorMaterial});const b=a.useThree((({gl:e})=>e)),R=a.useThree((({camera:e})=>e)),g=a.useThree((({scene:e})=>e)),j=(o=Array.isArray(o)?o:[o,o])[0]+o[1]>0,v=d.useRef(null),[D]=d.useState((()=>new r.Plane)),[B]=d.useState((()=>new r.Vector3)),[_]=d.useState((()=>new r.Vector3)),[O]=d.useState((()=>new r.Vector3)),[P]=d.useState((()=>new r.Matrix4)),[U]=d.useState((()=>new r.Vector3(0,0,-1))),[V]=d.useState((()=>new r.Vector4)),[E]=d.useState((()=>new r.Vector3)),[F]=d.useState((()=>new r.Vector3)),[W]=d.useState((()=>new r.Vector4)),[q]=d.useState((()=>new r.Matrix4)),[I]=d.useState((()=>new r.PerspectiveCamera)),C=d.useCallback((()=>{var e;const t=v.current.parent||(null==(e=v.current)?void 0:e.__r3f.parent);if(!t)return;if(_.setFromMatrixPosition(t.matrixWorld),O.setFromMatrixPosition(R.matrixWorld),P.extractRotation(t.matrixWorld),B.set(0,0,1),B.applyMatrix4(P),_.addScaledVector(B,S),E.subVectors(_,O),E.dot(B)>0)return;E.reflect(B).negate(),E.add(_),P.extractRotation(R.matrixWorld),U.set(0,0,-1),U.applyMatrix4(P),U.add(O),F.subVectors(_,U),F.reflect(B).negate(),F.add(_),I.position.copy(E),I.up.set(0,1,0),I.up.applyMatrix4(P),I.up.reflect(B),I.lookAt(F),I.far=R.far,I.updateMatrixWorld(),I.projectionMatrix.copy(R.projectionMatrix),q.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),q.multiply(I.projectionMatrix),q.multiply(I.matrixWorldInverse),q.multiply(t.matrixWorld),D.setFromNormalAndCoplanarPoint(B,_),D.applyMatrix4(I.matrixWorldInverse),V.set(D.normal.x,D.normal.y,D.normal.z,D.constant);const r=I.projectionMatrix;W.x=(Math.sign(V.x)+r.elements[8])/r.elements[0],W.y=(Math.sign(V.y)+r.elements[9])/r.elements[5],W.z=-1,W.w=(1+r.elements[10])/r.elements[14],V.multiplyScalar(2/V.dot(W)),r.elements[2]=V.x,r.elements[6]=V.y,r.elements[10]=V.z+1,r.elements[14]=V.w}),[R,S]),[k,L,z,A]=d.useMemo((()=>{const a={minFilter:r.LinearFilter,magFilter:r.LinearFilter,type:r.HalfFloatType},i=new r.WebGLRenderTarget(n,n,a);i.depthBuffer=!0,i.depthTexture=new r.DepthTexture(n,n),i.depthTexture.format=r.DepthFormat,i.depthTexture.type=r.UnsignedShortType;const u=new r.WebGLRenderTarget(n,n,a);return[i,u,new s.BlurPass({gl:b,resolution:n,width:o[0],height:o[1],minDepthThreshold:l,maxDepthThreshold:p,depthScale:m,depthToBlurRatioBias:h}),{mirror:f,textureMatrix:q,mixBlur:e,tDiffuse:i.texture,tDepth:i.depthTexture,tDiffuseBlur:u.texture,hasBlur:j,mixStrength:t,minDepthThreshold:l,maxDepthThreshold:p,depthScale:m,depthToBlurRatioBias:h,distortion:x,distortionMap:T,mixContrast:M,"defines-USE_BLUR":j?"":void 0,"defines-USE_DEPTH":m>0?"":void 0,"defines-USE_DISTORTION":T?"":void 0}]}),[b,o,q,n,f,j,e,t,l,p,m,h,x,T,M]);return a.useFrame((()=>{var e;const t=v.current.parent||(null==(e=v.current)?void 0:e.__r3f.parent);if(!t)return;t.visible=!1;const r=b.xr.enabled,a=b.shadowMap.autoUpdate;C(),b.xr.enabled=!1,b.shadowMap.autoUpdate=!1,b.setRenderTarget(k),b.state.buffers.depth.setMask(!0),b.autoClear||b.clear(),b.render(g,I),j&&z.render(b,k,L),b.xr.enabled=r,b.shadowMap.autoUpdate=a,t.visible=!0,b.setRenderTarget(null)})),d.createElement("meshReflectorMaterialImpl",u.default({attach:"material",key:"key"+A["defines-USE_BLUR"]+A["defines-USE_DEPTH"]+A["defines-USE_DISTORTION"],ref:c.default([v,w])},A,y))}));exports.MeshReflectorMaterial=p;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),n=require("three-mesh-bvh"),a=require("../materials/MeshRefractionMaterial.cjs.js");function i(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=i(r);exports.MeshRefractionMaterial=function({aberrationStrength:i=0,fastChroma:u=!0,envMap:c,...s}){t.extend({MeshRefractionMaterial:a.MeshRefractionMaterial});const l=r.useRef(),{size:h}=t.useThree(),M=r.useMemo((()=>{var e,r;const t={},n=(a=c)&&a.isCubeTexture;var a;const o=(null!==(e=n?null==(r=c.image[0])?void 0:r.width:c.image.width)&&void 0!==e?e:1024)/4,s=Math.floor(Math.log2(o)),l=Math.pow(2,s),h=3*Math.max(l,112),M=4*l;return n&&(t.ENVMAP_TYPE_CUBEM=""),t.CUBEUV_TEXEL_WIDTH=""+1/h,t.CUBEUV_TEXEL_HEIGHT=""+1/M,t.CUBEUV_MAX_MIP=`${s}.0`,i>0&&(t.CHROMATIC_ABERRATIONS=""),u&&(t.FAST_CHROMA=""),t}),[i,u]);return r.useLayoutEffect((()=>{var e;const r=null==(e=l.current)||null==(e=e.__r3f)||null==(e=e.parent)?void 0:e.geometry;r&&(l.current.bvh=new n.MeshBVHUniformStruct,l.current.bvh.updateFrom(new n.MeshBVH(r.clone().toNonIndexed(),{lazyGeneration:!1,strategy:n.SAH})))}),[]),t.useFrame((({camera:e})=>{l.current.viewMatrixInverse=e.matrixWorld,l.current.projectionMatrixInverse=e.projectionMatrixInverse})),o.createElement("meshRefractionMaterial",e({key:JSON.stringify(M),defines:M,ref:l,resolution:[h.width,h.height],aberrationStrength:i,envMap:c},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"),n=require("three-mesh-bvh"),a=require("../materials/MeshRefractionMaterial.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 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("three"),require("./shaderMaterial.cjs.js"),require("../helpers/constants.cjs.js");var u=i(e),s=o(r);exports.MeshRefractionMaterial=function({aberrationStrength:e=0,fastChroma:i=!0,envMap:o,...c}){t.extend({MeshRefractionMaterial:a.MeshRefractionMaterial});const l=r.useRef(),{size:f}=t.useThree(),h=r.useMemo((()=>{var r,t;const n={},a=(u=o)&&u.isCubeTexture;var u;const s=(null!==(r=a?null==(t=o.image[0])?void 0:t.width:o.image.width)&&void 0!==r?r:1024)/4,c=Math.floor(Math.log2(s)),l=Math.pow(2,c),f=3*Math.max(l,112),h=4*l;return a&&(n.ENVMAP_TYPE_CUBEM=""),n.CUBEUV_TEXEL_WIDTH=""+1/f,n.CUBEUV_TEXEL_HEIGHT=""+1/h,n.CUBEUV_MAX_MIP=`${c}.0`,e>0&&(n.CHROMATIC_ABERRATIONS=""),i&&(n.FAST_CHROMA=""),n}),[e,i]);return r.useLayoutEffect((()=>{var e;const r=null==(e=l.current)||null==(e=e.__r3f)||null==(e=e.parent)?void 0:e.geometry;r&&(l.current.bvh=new n.MeshBVHUniformStruct,l.current.bvh.updateFrom(new n.MeshBVH(r.clone().toNonIndexed(),{lazyGeneration:!1,strategy:n.SAH})))}),[]),t.useFrame((({camera:e})=>{l.current.viewMatrixInverse=e.matrixWorld,l.current.projectionMatrixInverse=e.projectionMatrixInverse})),s.createElement("meshRefractionMaterial",u.default({key:JSON.stringify(h),defines:h,ref:l,resolution:[f.width,f.height],aberrationStrength:e,envMap:o},c))};