@react-three/drei 7.25.2 → 7.25.3

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.
@@ -1 +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");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 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=u(e),l=o(r),s=o(t);const c=l.forwardRef((({frames:e=1/0,opacity:r=1,width:t=1,height:u=1,blur:o=1,far:c=10,resolution:d=256,...f},h)=>{const m=a.useThree((({scene:e})=>e)),p=a.useThree((({gl:e})=>e)),g=l.useRef(),[b,M,v,w,T,y,x]=l.useMemo((()=>{const e=new s.WebGLRenderTarget(d,d),r=new s.WebGLRenderTarget(d,d);r.texture.generateMipmaps=e.texture.generateMipmaps=!1;const a=new s.PlaneBufferGeometry(t,u).rotateX(Math.PI/2),o=new s.Mesh(a),i=new s.MeshDepthMaterial;i.depthTest=i.depthWrite=!1,i.onBeforeCompile=e=>e.fragmentShader=e.fragmentShader.replace("1.0 - fragCoordZ ), opacity );","0.0 ), ( 1.0 - fragCoordZ ) * 1.0 );");const l=new s.ShaderMaterial(n.HorizontalBlurShader),c=new s.ShaderMaterial(n.VerticalBlurShader);return c.depthTest=l.depthTest=!1,[e,a,i,o,l,c,r]}),[d,t,u]);let R=0;return a.useFrame((()=>{if(g.current&&(e===1/0||R<e)){const e=m.background;m.background=null,m.overrideMaterial=v,p.setRenderTarget(b),p.render(m,g.current),m.overrideMaterial=null,w.material=T,w.material.uniforms.tDiffuse.value=b.texture,T.uniforms.h.value=o/256,p.setRenderTarget(x),p.render(w,g.current),w.material=y,w.material.uniforms.tDiffuse.value=x.texture,y.uniforms.v.value=o/256,p.setRenderTarget(b),p.render(w,g.current),p.setRenderTarget(null),m.background=e,R++}})),l.createElement("group",i.default({"rotation-x":Math.PI/2},f,{ref:h}),l.createElement("mesh",{geometry:M,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},l.createElement("meshBasicMaterial",{map:b.texture,transparent:!0,opacity:r})),l.createElement("orthographicCamera",{ref:g,args:[-t/2,t/2,u/2,-u/2,0,c]}))}));exports.ContactShadows=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),a=require("@react-three/fiber"),n=require("three-stdlib");function 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 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=u(e),s=o(r),l=o(t);const c=s.forwardRef((({scale:e,frames:r=1/0,opacity:t=1,width:u=1,height:o=1,blur:c=1,far:d=10,resolution:f=256,...h},m)=>{const p=a.useThree((({scene:e})=>e)),g=a.useThree((({gl:e})=>e)),b=s.useRef();u*=Array.isArray(e)?e[0]:e||1,o*=Array.isArray(e)?e[1]:e||1;const[M,y,v,w,T,x,R]=s.useMemo((()=>{const e=new l.WebGLRenderTarget(f,f),r=new l.WebGLRenderTarget(f,f);r.texture.generateMipmaps=e.texture.generateMipmaps=!1;const t=new l.PlaneBufferGeometry(u,o).rotateX(Math.PI/2),a=new l.Mesh(t),i=new l.MeshDepthMaterial;i.depthTest=i.depthWrite=!1,i.onBeforeCompile=e=>e.fragmentShader=e.fragmentShader.replace("1.0 - fragCoordZ ), opacity );","0.0 ), ( 1.0 - fragCoordZ ) * 1.0 );");const s=new l.ShaderMaterial(n.HorizontalBlurShader),c=new l.ShaderMaterial(n.VerticalBlurShader);return c.depthTest=s.depthTest=!1,[e,t,i,a,s,c,r]}),[f,u,o,e]);let j=0;return a.useFrame((()=>{if(b.current&&(r===1/0||j<r)){const e=p.background;p.background=null,p.overrideMaterial=v,g.setRenderTarget(M),g.render(p,b.current),p.overrideMaterial=null,w.material=T,w.material.uniforms.tDiffuse.value=M.texture,T.uniforms.h.value=c/256,g.setRenderTarget(R),g.render(w,b.current),w.material=x,w.material.uniforms.tDiffuse.value=R.texture,x.uniforms.v.value=c/256,g.setRenderTarget(M),g.render(w,b.current),g.setRenderTarget(null),p.background=e,j++}})),s.createElement("group",i.default({"rotation-x":Math.PI/2},h,{ref:m}),s.createElement("mesh",{geometry:y,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},s.createElement("meshBasicMaterial",{map:M.texture,transparent:!0,opacity:t})),s.createElement("orthographicCamera",{ref:b,args:[-u/2,u/2,o/2,-o/2,0,d]}))}));exports.ContactShadows=c;
@@ -1,24 +1,5 @@
1
1
  import * as React from 'react';
2
- import * as THREE from 'three';
3
- export declare const ContactShadows: React.ForwardRefExoticComponent<Pick<Omit<import("@react-three/fiber").Node<THREE.Group, typeof THREE.Group>, import("@react-three/fiber").NonFunctionKeys<{
4
- position?: import("@react-three/fiber").Vector3 | undefined;
5
- up?: import("@react-three/fiber").Vector3 | undefined;
6
- scale?: import("@react-three/fiber").Vector3 | undefined;
7
- rotation?: import("@react-three/fiber").Euler | undefined;
8
- matrix?: import("@react-three/fiber").Matrix4 | undefined;
9
- quaternion?: import("@react-three/fiber").Quaternion | undefined;
10
- layers?: import("@react-three/fiber").Layers | undefined;
11
- dispose?: (() => void) | null | undefined;
12
- }>> & {
13
- position?: import("@react-three/fiber").Vector3 | undefined;
14
- up?: import("@react-three/fiber").Vector3 | undefined;
15
- scale?: import("@react-three/fiber").Vector3 | undefined;
16
- rotation?: import("@react-three/fiber").Euler | undefined;
17
- matrix?: import("@react-three/fiber").Matrix4 | undefined;
18
- quaternion?: import("@react-three/fiber").Quaternion | undefined;
19
- layers?: import("@react-three/fiber").Layers | undefined;
20
- dispose?: (() => void) | null | undefined;
21
- } & import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers & {
2
+ export declare const ContactShadows: React.ForwardRefExoticComponent<Pick<Omit<import("@react-three/fiber").GroupProps, "scale"> & {
22
3
  opacity?: number | undefined;
23
4
  width?: number | undefined;
24
5
  height?: number | undefined;
@@ -26,4 +7,5 @@ export declare const ContactShadows: React.ForwardRefExoticComponent<Pick<Omit<i
26
7
  far?: number | undefined;
27
8
  resolution?: number | undefined;
28
9
  frames?: number | undefined;
10
+ scale?: number | [x: number, y: number] | undefined;
29
11
  }, "visible" | "attach" | "attachArray" | "attachObject" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "isGroup" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "blur" | "height" | "opacity" | "width" | "resolution" | "far" | "frames"> & React.RefAttributes<unknown>>;
@@ -5,6 +5,7 @@ import { useThree, useFrame } from '@react-three/fiber';
5
5
  import { HorizontalBlurShader, VerticalBlurShader } from 'three-stdlib';
6
6
 
7
7
  const ContactShadows = /*#__PURE__*/React.forwardRef(({
8
+ scale,
8
9
  frames = Infinity,
9
10
  opacity = 1,
10
11
  width = 1,
@@ -21,6 +22,8 @@ const ContactShadows = /*#__PURE__*/React.forwardRef(({
21
22
  gl
22
23
  }) => gl);
23
24
  const shadowCamera = React.useRef();
25
+ width = width * (Array.isArray(scale) ? scale[0] : scale || 1);
26
+ height = height * (Array.isArray(scale) ? scale[1] : scale || 1);
24
27
  const [renderTarget, planeGeometry, depthMaterial, blurPlane, horizontalBlurMaterial, verticalBlurMaterial, renderTargetBlur] = React.useMemo(() => {
25
28
  const renderTarget = new THREE.WebGLRenderTarget(resolution, resolution);
26
29
  const renderTargetBlur = new THREE.WebGLRenderTarget(resolution, resolution);
@@ -36,7 +39,7 @@ const ContactShadows = /*#__PURE__*/React.forwardRef(({
36
39
  const verticalBlurMaterial = new THREE.ShaderMaterial(VerticalBlurShader);
37
40
  verticalBlurMaterial.depthTest = horizontalBlurMaterial.depthTest = false;
38
41
  return [renderTarget, planeGeometry, depthMaterial, blurPlane, horizontalBlurMaterial, verticalBlurMaterial, renderTargetBlur];
39
- }, [resolution, width, height]);
42
+ }, [resolution, width, height, scale]);
40
43
  let count = 0;
41
44
  useFrame(() => {
42
45
  if (shadowCamera.current && (frames === Infinity || count < frames)) {