@react-three/drei 7.16.7 → 7.17.2

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.
package/core/Image.cjs.js CHANGED
@@ -1 +1 @@
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");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var s=c(e),l=i(r),u=i(t);const v=a.shaderMaterial({color:new u.Color("white"),scale:[1,1],imageBounds:[1,1],map:null,zoom:1,grayscale:0},"\n varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }\n","\n // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44\n varying vec2 vUv;\n uniform vec2 scale;\n uniform vec2 imageBounds;\n uniform vec3 color;\n uniform sampler2D map;\n uniform float zoom;\n uniform float grayscale;\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 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 gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, 1.0), grayscale);\n }\n"),m=l.forwardRef((({color:e,segments:r=1,scale:t=1,zoom:a=1,grayscale:c=0,url:i,...u},m)=>{n.extend({ImageMaterial:v});const f=o.useTexture(i),g=Array.isArray(t)?[t[0],t[1]]:[t,t],y=[f.image.width,f.image.height];return l.createElement("mesh",s.default({ref:m,scale:t},u),l.createElement("planeGeometry",{args:[1,1,r,r]}),l.createElement("imageMaterial",{color:e,map:f,zoom:a,grayscale:c,scale:g,imageBounds:y}))}));exports.Image=m;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),n=require("three"),t=require("@react-three/fiber"),a=require("./shaderMaterial.cjs.js"),o=require("./useTexture.cjs.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(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 s=c(e),l=i(r),u=i(n);const v=a.shaderMaterial({color:new u.Color("white"),scale:[1,1],imageBounds:[1,1],map:null,zoom:1,grayscale:0},"\n varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }\n","\n // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44\n varying vec2 vUv;\n uniform vec2 scale;\n uniform vec2 imageBounds;\n uniform vec3 color;\n uniform sampler2D map;\n uniform float zoom;\n uniform float grayscale;\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 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 gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, 1.0), grayscale);\n }\n"),m=l.forwardRef((({children:e,color:r,segments:n=1,scale:a=1,zoom:c=1,grayscale:i=0,url:u,...m},f)=>{t.extend({ImageMaterial:v});const g=o.useTexture(u),y=Array.isArray(a)?[a[0],a[1]]:[a,a],d=[g.image.width,g.image.height];return l.createElement("mesh",s.default({ref:f,scale:a},m),l.createElement("planeGeometry",{args:[1,1,n,n]}),l.createElement("imageMaterial",{color:r,map:g,zoom:c,grayscale:i,scale:y,imageBounds:d}),e)}));exports.Image=m;
package/core/Image.js CHANGED
@@ -51,6 +51,7 @@ const ImageMaterialImpl = shaderMaterial({
51
51
  }
52
52
  `);
53
53
  const Image = /*#__PURE__*/React.forwardRef(({
54
+ children,
54
55
  color,
55
56
  segments = 1,
56
57
  scale = 1,
@@ -77,7 +78,7 @@ const Image = /*#__PURE__*/React.forwardRef(({
77
78
  grayscale: grayscale,
78
79
  scale: planeBounds,
79
80
  imageBounds: imageBounds
80
- }));
81
+ }), children);
81
82
  });
82
83
 
83
84
  export { Image };
package/core/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./Cloud.cjs.js"),s=require("./QuadraticBezierLine.cjs.js"),t=require("./CubicBezierLine.cjs.js"),o=require("./Line.cjs.js"),i=require("./PositionalAudio.cjs.js"),a=require("./Text.cjs.js"),u=require("./Environment.cjs.js"),c=require("./Effects.cjs.js"),j=require("./GradientTexture.cjs.js"),p=require("./Image.cjs.js"),n=require("./OrthographicCamera.cjs.js"),l=require("./PerspectiveCamera.cjs.js"),x=require("./CameraShake.cjs.js"),q=require("./CubeCamera.cjs.js"),d=require("./DeviceOrientationControls.cjs.js"),C=require("./FlyControls.cjs.js"),h=require("./MapControls.cjs.js"),m=require("./OrbitControls.cjs.js"),b=require("./TrackballControls.cjs.js"),S=require("./ArcballControls.cjs.js"),P=require("./TransformControls.cjs.js"),T=require("./PointerLockControls.cjs.js"),B=require("./FirstPersonControls.cjs.js"),M=require("./GizmoHelper.cjs.js"),f=require("./GizmoViewcube.cjs.js"),g=require("./GizmoViewport.cjs.js"),v=require("./useCubeTexture.cjs.js"),L=require("./useFBX.cjs.js"),A=require("./useGLTF.cjs.js"),G=require("./useProgress.cjs.js"),D=require("./useTexture.cjs.js"),w=require("./Reflector.cjs.js"),z=require("./Shadow.cjs.js"),k=require("./Stats.cjs.js"),F=require("./Center.cjs.js"),O=require("./DepthBuffer.cjs.js"),E=require("./useAspect.cjs.js"),I=require("./useCamera.cjs.js"),y=require("./useDetectGPU.cjs.js"),H=require("./useHelper.cjs.js"),R=require("./useBVH.cjs.js"),V=require("./useContextBridge.cjs.js"),Q=require("./useAnimations.cjs.js"),W=require("./useFBO.cjs.js"),N=require("./useSimplification.cjs.js"),U=require("./useTessellation.cjs.js"),X=require("./useEdgeSplit.cjs.js"),K=require("./CurveModifier.cjs.js"),_=require("./MeshDistortMaterial.cjs.js"),J=require("./MeshWobbleMaterial.cjs.js"),Y=require("./PointMaterial.cjs.js"),Z=require("./shaderMaterial.cjs.js"),$=require("./Sky.cjs.js"),ee=require("./softShadows.cjs.js"),re=require("./Stars.cjs.js"),se=require("./ContactShadows.cjs.js"),te=require("./SpotLight.cjs.js"),oe=require("./shapes.cjs.js"),ie=require("./RoundedBox.cjs.js"),ae=require("./ScreenQuad.cjs.js"),ue=require("./useMatcapTexture.cjs.js"),ce=require("./useNormalTexture.cjs.js"),je=require("./Stage.cjs.js"),pe=require("./Points.cjs.js"),ne=require("./Instances.cjs.js"),le=require("./Detailed.cjs.js"),xe=require("./Preload.cjs.js"),qe=require("./BakeShadows.cjs.js"),de=require("./meshBounds.cjs.js"),Ce=require("./AdaptiveDpr.cjs.js"),he=require("./AdaptiveEvents.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("../assets/cloud.base64.cjs.js"),require("three"),require("three-stdlib"),require("troika-three-text"),require("use-asset"),require("../helpers/environment-assets.cjs.js"),require("lodash.omit"),require("lodash.pick"),require("zustand"),require("../materials/MeshReflectorMaterial.cjs.js"),require("three/examples/js/libs/stats.min"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/matcap-assets.cjs.js"),require("../helpers/normal-assets.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.Cloud=r.Cloud,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=t.CubicBezierLine,exports.Line=o.Line,exports.PositionalAudio=i.PositionalAudio,exports.Text=a.Text,exports.Environment=u.Environment,exports.Effects=c.Effects,exports.isWebGL2Available=c.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.Image=p.Image,exports.OrthographicCamera=n.OrthographicCamera,exports.PerspectiveCamera=l.PerspectiveCamera,exports.CameraShake=x.CameraShake,exports.CubeCamera=q.CubeCamera,exports.DeviceOrientationControls=d.DeviceOrientationControls,exports.FlyControls=C.FlyControls,exports.MapControls=h.MapControls,exports.OrbitControls=m.OrbitControls,exports.TrackballControls=b.TrackballControls,exports.ArcballControls=S.ArcballControls,exports.TransformControls=P.TransformControls,exports.PointerLockControls=T.PointerLockControls,exports.FirstPersonControls=B.FirstPersonControls,exports.GizmoHelper=M.GizmoHelper,exports.useGizmoContext=M.useGizmoContext,exports.GizmoViewcube=f.GizmoViewcube,exports.GizmoViewport=g.GizmoViewport,exports.useCubeTexture=v.useCubeTexture,exports.useFBX=L.useFBX,exports.useGLTF=A.useGLTF,exports.useProgress=G.useProgress,exports.IsObject=D.IsObject,exports.useTexture=D.useTexture,exports.Reflector=w.Reflector,exports.Shadow=z.Shadow,exports.Stats=k.Stats,exports.Center=F.Center,exports.DepthBuffer=O.DepthBuffer,exports.useAspect=E.useAspect,exports.useCamera=I.useCamera,exports.useDetectGPU=y.useDetectGPU,exports.useHelper=H.useHelper,exports.useBVH=R.useBVH,exports.useContextBridge=V.useContextBridge,exports.useAnimations=Q.useAnimations,exports.useFBO=W.useFBO,exports.useSimplification=N.useSimplification,exports.useTessellation=U.useTessellation,exports.useEdgeSplit=X.useEdgeSplit,exports.CurveModifier=K.CurveModifier,exports.MeshDistortMaterial=_.MeshDistortMaterial,exports.MeshWobbleMaterial=J.MeshWobbleMaterial,exports.PointMaterial=Y.PointMaterial,exports.PointMaterialImpl=Y.PointMaterialImpl,exports.shaderMaterial=Z.shaderMaterial,exports.Sky=$.Sky,exports.calcPosFromAngles=$.calcPosFromAngles,exports.softShadows=ee.softShadows,exports.Stars=re.Stars,exports.ContactShadows=se.ContactShadows,exports.SpotLight=te.SpotLight,exports.Box=oe.Box,exports.Circle=oe.Circle,exports.Cone=oe.Cone,exports.Cylinder=oe.Cylinder,exports.Dodecahedron=oe.Dodecahedron,exports.Extrude=oe.Extrude,exports.Icosahedron=oe.Icosahedron,exports.Lathe=oe.Lathe,exports.Octahedron=oe.Octahedron,exports.Parametric=oe.Parametric,exports.Plane=oe.Plane,exports.Polyhedron=oe.Polyhedron,exports.Ring=oe.Ring,exports.Sphere=oe.Sphere,exports.Tetrahedron=oe.Tetrahedron,exports.Torus=oe.Torus,exports.TorusKnot=oe.TorusKnot,exports.Tube=oe.Tube,exports.RoundedBox=ie.RoundedBox,exports.ScreenQuad=ae.ScreenQuad,exports.useMatcapTexture=ue.useMatcapTexture,exports.useNormalTexture=ce.useNormalTexture,exports.Stage=je.Stage,exports.Point=pe.Point,exports.Points=pe.Points,exports.Instance=ne.Instance,exports.Instances=ne.Instances,exports.Merged=ne.Merged,exports.Detailed=le.Detailed,exports.Preload=xe.Preload,exports.BakeShadows=qe.BakeShadows,exports.meshBounds=de.meshBounds,exports.AdaptiveDpr=Ce.AdaptiveDpr,exports.AdaptiveEvents=he.AdaptiveEvents;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./Cloud.cjs.js"),s=require("./QuadraticBezierLine.cjs.js"),t=require("./CubicBezierLine.cjs.js"),o=require("./Line.cjs.js"),i=require("./PositionalAudio.cjs.js"),u=require("./Text.cjs.js"),a=require("./Environment.cjs.js"),c=require("./Effects.cjs.js"),j=require("./GradientTexture.cjs.js"),p=require("./Image.cjs.js"),n=require("./OrthographicCamera.cjs.js"),l=require("./PerspectiveCamera.cjs.js"),x=require("./CameraShake.cjs.js"),q=require("./CubeCamera.cjs.js"),d=require("./DeviceOrientationControls.cjs.js"),C=require("./FlyControls.cjs.js"),h=require("./MapControls.cjs.js"),m=require("./OrbitControls.cjs.js"),b=require("./TrackballControls.cjs.js"),S=require("./ArcballControls.cjs.js"),P=require("./TransformControls.cjs.js"),T=require("./PointerLockControls.cjs.js"),B=require("./FirstPersonControls.cjs.js"),M=require("./GizmoHelper.cjs.js"),f=require("./GizmoViewcube.cjs.js"),g=require("./GizmoViewport.cjs.js"),v=require("./useCubeTexture.cjs.js"),L=require("./useFBX.cjs.js"),A=require("./useGLTF.cjs.js"),G=require("./useProgress.cjs.js"),D=require("./useTexture.cjs.js"),w=require("./Reflector.cjs.js"),z=require("./Shadow.cjs.js"),k=require("./Stats.cjs.js"),F=require("./Center.cjs.js"),I=require("./DepthBuffer.cjs.js"),O=require("./useAspect.cjs.js"),E=require("./useCamera.cjs.js"),y=require("./useDetectGPU.cjs.js"),H=require("./useHelper.cjs.js"),R=require("./useBVH.cjs.js"),V=require("./useContextBridge.cjs.js"),Q=require("./useAnimations.cjs.js"),W=require("./useFBO.cjs.js"),N=require("./useIntersect.cjs.js"),U=require("./useSimplification.cjs.js"),X=require("./useTessellation.cjs.js"),K=require("./useEdgeSplit.cjs.js"),_=require("./CurveModifier.cjs.js"),J=require("./MeshDistortMaterial.cjs.js"),Y=require("./MeshWobbleMaterial.cjs.js"),Z=require("./PointMaterial.cjs.js"),$=require("./shaderMaterial.cjs.js"),ee=require("./Sky.cjs.js"),re=require("./softShadows.cjs.js"),se=require("./Stars.cjs.js"),te=require("./ContactShadows.cjs.js"),oe=require("./SpotLight.cjs.js"),ie=require("./shapes.cjs.js"),ue=require("./RoundedBox.cjs.js"),ae=require("./ScreenQuad.cjs.js"),ce=require("./useMatcapTexture.cjs.js"),je=require("./useNormalTexture.cjs.js"),pe=require("./Stage.cjs.js"),ne=require("./Points.cjs.js"),le=require("./Instances.cjs.js"),xe=require("./Detailed.cjs.js"),qe=require("./Preload.cjs.js"),de=require("./BakeShadows.cjs.js"),Ce=require("./meshBounds.cjs.js"),he=require("./AdaptiveDpr.cjs.js"),me=require("./AdaptiveEvents.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("../assets/cloud.base64.cjs.js"),require("three"),require("three-stdlib"),require("troika-three-text"),require("use-asset"),require("../helpers/environment-assets.cjs.js"),require("lodash.omit"),require("lodash.pick"),require("zustand"),require("../materials/MeshReflectorMaterial.cjs.js"),require("three/examples/js/libs/stats.min"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/matcap-assets.cjs.js"),require("../helpers/normal-assets.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.Cloud=r.Cloud,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=t.CubicBezierLine,exports.Line=o.Line,exports.PositionalAudio=i.PositionalAudio,exports.Text=u.Text,exports.Environment=a.Environment,exports.Effects=c.Effects,exports.isWebGL2Available=c.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.Image=p.Image,exports.OrthographicCamera=n.OrthographicCamera,exports.PerspectiveCamera=l.PerspectiveCamera,exports.CameraShake=x.CameraShake,exports.CubeCamera=q.CubeCamera,exports.DeviceOrientationControls=d.DeviceOrientationControls,exports.FlyControls=C.FlyControls,exports.MapControls=h.MapControls,exports.OrbitControls=m.OrbitControls,exports.TrackballControls=b.TrackballControls,exports.ArcballControls=S.ArcballControls,exports.TransformControls=P.TransformControls,exports.PointerLockControls=T.PointerLockControls,exports.FirstPersonControls=B.FirstPersonControls,exports.GizmoHelper=M.GizmoHelper,exports.useGizmoContext=M.useGizmoContext,exports.GizmoViewcube=f.GizmoViewcube,exports.GizmoViewport=g.GizmoViewport,exports.useCubeTexture=v.useCubeTexture,exports.useFBX=L.useFBX,exports.useGLTF=A.useGLTF,exports.useProgress=G.useProgress,exports.IsObject=D.IsObject,exports.useTexture=D.useTexture,exports.Reflector=w.Reflector,exports.Shadow=z.Shadow,exports.Stats=k.Stats,exports.Center=F.Center,exports.DepthBuffer=I.DepthBuffer,exports.useAspect=O.useAspect,exports.useCamera=E.useCamera,exports.useDetectGPU=y.useDetectGPU,exports.useHelper=H.useHelper,exports.useBVH=R.useBVH,exports.useContextBridge=V.useContextBridge,exports.useAnimations=Q.useAnimations,exports.useFBO=W.useFBO,exports.useIntersect=N.useIntersect,exports.useSimplification=U.useSimplification,exports.useTessellation=X.useTessellation,exports.useEdgeSplit=K.useEdgeSplit,exports.CurveModifier=_.CurveModifier,exports.MeshDistortMaterial=J.MeshDistortMaterial,exports.MeshWobbleMaterial=Y.MeshWobbleMaterial,exports.PointMaterial=Z.PointMaterial,exports.PointMaterialImpl=Z.PointMaterialImpl,exports.shaderMaterial=$.shaderMaterial,exports.Sky=ee.Sky,exports.calcPosFromAngles=ee.calcPosFromAngles,exports.softShadows=re.softShadows,exports.Stars=se.Stars,exports.ContactShadows=te.ContactShadows,exports.SpotLight=oe.SpotLight,exports.Box=ie.Box,exports.Circle=ie.Circle,exports.Cone=ie.Cone,exports.Cylinder=ie.Cylinder,exports.Dodecahedron=ie.Dodecahedron,exports.Extrude=ie.Extrude,exports.Icosahedron=ie.Icosahedron,exports.Lathe=ie.Lathe,exports.Octahedron=ie.Octahedron,exports.Parametric=ie.Parametric,exports.Plane=ie.Plane,exports.Polyhedron=ie.Polyhedron,exports.Ring=ie.Ring,exports.Sphere=ie.Sphere,exports.Tetrahedron=ie.Tetrahedron,exports.Torus=ie.Torus,exports.TorusKnot=ie.TorusKnot,exports.Tube=ie.Tube,exports.RoundedBox=ue.RoundedBox,exports.ScreenQuad=ae.ScreenQuad,exports.useMatcapTexture=ce.useMatcapTexture,exports.useNormalTexture=je.useNormalTexture,exports.Stage=pe.Stage,exports.Point=ne.Point,exports.Points=ne.Points,exports.Instance=le.Instance,exports.Instances=le.Instances,exports.Merged=le.Merged,exports.Detailed=xe.Detailed,exports.Preload=qe.Preload,exports.BakeShadows=de.BakeShadows,exports.meshBounds=Ce.meshBounds,exports.AdaptiveDpr=he.AdaptiveDpr,exports.AdaptiveEvents=me.AdaptiveEvents;
package/core/index.d.ts CHANGED
@@ -43,6 +43,7 @@ export * from './useBVH';
43
43
  export * from './useContextBridge';
44
44
  export * from './useAnimations';
45
45
  export * from './useFBO';
46
+ export * from './useIntersect';
46
47
  export * from './useSimplification';
47
48
  export * from './useTessellation';
48
49
  export * from './useEdgeSplit';
package/core/index.js CHANGED
@@ -43,6 +43,7 @@ export { useBVH } from './useBVH.js';
43
43
  export { useContextBridge } from './useContextBridge.js';
44
44
  export { useAnimations } from './useAnimations.js';
45
45
  export { useFBO } from './useFBO.js';
46
+ export { useIntersect } from './useIntersect.js';
46
47
  export { useSimplification } from './useSimplification.js';
47
48
  export { useTessellation } from './useTessellation.js';
48
49
  export { useEdgeSplit } from './useEdgeSplit.js';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber");function t(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var n=t(e);exports.useIntersect=function(e){const t=n.useRef(null),u=n.useRef(!1),c=n.useRef(!1);return n.useEffect((()=>{const n=t.current;if(n){const t=r.addEffect((()=>(u.current=!1,!0))),f=n.onBeforeRender;n.onBeforeRender=()=>u.current=!0;const o=r.addAfterEffect((()=>(u.current!==c.current&&e(c.current=u.current),!0)));return()=>{n.onBeforeRender=f,t(),o()}}}),[]),t};
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export declare function useIntersect<T extends THREE.Object3D>(onChange: (visible: boolean) => void): React.MutableRefObject<T>;
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { addEffect, addAfterEffect } from '@react-three/fiber';
3
+
4
+ function useIntersect(onChange) {
5
+ const ref = React.useRef(null);
6
+ const check = React.useRef(false);
7
+ const temp = React.useRef(false);
8
+ React.useEffect(() => {
9
+ const obj = ref.current;
10
+
11
+ if (obj) {
12
+ // Stamp out frustum check pre-emptively
13
+ const unsub1 = addEffect(() => {
14
+ check.current = false;
15
+ return true;
16
+ }); // If the object is inside the frustum three will call onRender
17
+
18
+ const oldOnRender = obj.onBeforeRender;
19
+
20
+ obj.onBeforeRender = () => check.current = true; // Compare the check value against the temp value, if it differs set state
21
+
22
+
23
+ const unsub2 = addAfterEffect(() => {
24
+ if (check.current !== temp.current) onChange(temp.current = check.current);
25
+ return true;
26
+ });
27
+ return () => {
28
+ obj.onBeforeRender = oldOnRender;
29
+ unsub1();
30
+ unsub2();
31
+ };
32
+ }
33
+ }, []);
34
+ return ref;
35
+ }
36
+
37
+ export { useIntersect };