@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 +1 -1
- package/core/Image.js +2 -1
- package/core/index.cjs.js +1 -1
- package/core/index.d.ts +1 -0
- package/core/index.js +1 -0
- package/core/useIntersect.cjs.js +1 -0
- package/core/useIntersect.d.ts +2 -0
- package/core/useIntersect.js +37 -0
- package/index.cjs.js +1 -1
- package/index.js +1 -0
- package/native/index.cjs.js +1 -1
- package/native/index.js +1 -0
- package/package.json +1 -1
- package/web/ScrollControls.cjs.js +1 -1
- package/web/ScrollControls.d.ts +8 -4
- package/web/ScrollControls.js +6 -1
- package/web/index.cjs.js +1 -1
- package/web/index.js +1 -0
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"),
|
|
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"),
|
|
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,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 };
|