@react-three/drei 9.120.2 → 9.120.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-three/drei",
3
- "version": "9.120.2",
3
+ "version": "9.120.3",
4
4
  "private": false,
5
5
  "description": "useful add-ons for react-three-fiber",
6
6
  "keywords": [
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),o=require("@react-three/fiber"),n=require("maath"),c=require("./Facemesh.cjs.js"),a=require("./FaceLandmarker.cjs.js"),s=require("./WebcamVideoTexture.cjs.js"),u=require("../core/VideoTexture.cjs.js");function i(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 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("../core/Line.cjs.js"),require("three-stdlib"),require("suspend-react"),require("hls.js");var f=i(e),d=l(t),p=l(r);function m(e,t){return e.clone().add(t).multiplyScalar(.5)}function b(e,t,r){const o=e.localToWorld(t);return r.worldToLocal(o)}const h=r.createContext({}),y=r.forwardRef((({camera:e,videoTexture:t={start:!0},manualDetect:i=!1,faceLandmarkerResult:l,manualUpdate:y=!1,makeDefault:j,smoothTime:v=.25,offset:T=!0,offsetScalar:V=80,eyes:w=!1,eyesAsOrigin:g=!0,depth:q=.15,debug:x=!1,facemesh:O},k)=>{var S,R;const E=o.useThree((e=>e.scene)),D=o.useThree((e=>e.camera)),F=o.useThree((e=>e.set)),C=o.useThree((e=>e.get)),L=e||D,M=r.useRef(null),[A]=r.useState((()=>new d.Object3D)),[P]=r.useState((()=>new d.Vector3)),[W]=r.useState((()=>new d.Vector3)),[_]=r.useState((()=>new d.Vector3)),[B]=r.useState((()=>new d.Vector3)),z=r.useCallback((()=>{A.parent=L.parent;const e=M.current;if(e){const{outerRef:t,eyeRightRef:r,eyeLeftRef:o}=e;if(r.current&&o.current){const{irisDirRef:e}=r.current,{irisDirRef:n}=o.current;e.current&&n.current&&t.current&&(P.copy(b(e.current,new d.Vector3(0,0,0),t.current)),W.copy(b(n.current,new d.Vector3(0,0,0),t.current)),A.position.copy(b(t.current,m(P,W),L.parent||E)),_.copy(b(e.current,new d.Vector3(0,0,1),t.current)),B.copy(b(n.current,new d.Vector3(0,0,1),t.current)),A.lookAt(t.current.localToWorld(m(_,B))))}else t.current&&(A.position.copy(b(t.current,new d.Vector3(0,0,0),L.parent||E)),A.lookAt(t.current.localToWorld(new d.Vector3(0,0,1))))}return A}),[L,W,B,P,_,E,A]),[I]=r.useState((()=>new d.Object3D)),H=r.useCallback((function(e,t){if(L){var r;if(null!==(r=t)&&void 0!==r||(t=z()),v>0){const r=1e-9;n.easing.damp3(I.position,t.position,v,e,void 0,void 0,r),n.easing.dampE(I.rotation,t.rotation,v,e,void 0,void 0,r)}else I.position.copy(t.position),I.rotation.copy(t.rotation);L.position.copy(I.position),L.rotation.copy(I.rotation)}}),[L,z,v,I.position,I.rotation]);o.useFrame(((e,t)=>{y||H(t)}));const U=r.useRef(null),[G,J]=r.useState(),K=a.useFaceLandmarker(),N=r.useCallback(((e,t)=>{const r=U.current;if(!r)return;const o=r.source.data,n=null==K?void 0:K.detectForVideo(o,e);J(n)}),[K]),Q=r.useMemo((()=>Object.assign(Object.create(d.EventDispatcher.prototype),{computeTarget:z,update:H,facemeshApiRef:M})),[z,H]);r.useImperativeHandle(k,(()=>Q),[Q]),r.useEffect((()=>{if(j){const e=C().controls;return F({controls:Q}),()=>F({controls:e})}}),[j,Q,C,F]);const X=null!=l?l:G,Y=null==X?void 0:X.faceLandmarks[0],Z=null==X||null==(S=X.facialTransformationMatrixes)?void 0:S[0],$=null==X||null==(R=X.faceBlendshapes)?void 0:R[0],ee={onVideoFrame:N,...t};return p.createElement(h.Provider,{value:Q},!i&&p.createElement(r.Suspense,{fallback:null},"src"in ee?p.createElement(u.VideoTexture,f.default({ref:U},ee)):p.createElement(s.WebcamVideoTexture,f.default({ref:U},ee))),p.createElement(c.Facemesh,f.default({ref:M},O,{points:Y,depth:q,facialTransformationMatrix:Z,faceBlendshapes:$,eyes:w,eyesAsOrigin:g,offset:T,offsetScalar:V,debug:x,"rotation-z":Math.PI,visible:x}),p.createElement("meshBasicMaterial",{side:d.DoubleSide})))}));exports.FaceControls=y,exports.useFaceControls=()=>r.useContext(h);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),o=require("@react-three/fiber"),n=require("maath"),c=require("./Facemesh.cjs.js"),a=require("./FaceLandmarker.cjs.js"),u=require("./WebcamVideoTexture.cjs.js"),s=require("../core/VideoTexture.cjs.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("../core/Line.cjs.js"),require("three-stdlib"),require("suspend-react"),require("hls.js");var f=i(e),d=l(r),p=l(t);function m(e,r){return e.clone().add(r).multiplyScalar(.5)}function b(e,r,t){const o=e.localToWorld(r);return t.worldToLocal(o)}const h=t.createContext({}),y=t.forwardRef((({camera:e,videoTexture:r={start:!0},manualDetect:i=!1,faceLandmarkerResult:l,manualUpdate:y=!1,makeDefault:j,smoothTime:v=.25,offset:T=!0,offsetScalar:V=80,eyes:w=!1,eyesAsOrigin:g=!0,depth:q=.15,debug:x=!1,facemesh:O},k)=>{var S,R;const E=o.useThree((e=>e.scene)),D=o.useThree((e=>e.camera)),F=o.useThree((e=>e.set)),C=o.useThree((e=>e.get)),L=e||D,M=t.useRef(null),[A]=t.useState((()=>new d.Object3D)),[P]=t.useState((()=>new d.Vector3)),[W]=t.useState((()=>new d.Vector3)),[_]=t.useState((()=>new d.Vector3)),[z]=t.useState((()=>new d.Vector3)),B=t.useCallback((()=>{A.parent=L.parent;const e=M.current;if(e){const{outerRef:r,eyeRightRef:t,eyeLeftRef:o}=e;if(t.current&&o.current){const{irisDirRef:e}=t.current,{irisDirRef:n}=o.current;e.current&&n.current&&r.current&&(P.copy(b(e.current,new d.Vector3(0,0,0),r.current)),W.copy(b(n.current,new d.Vector3(0,0,0),r.current)),A.position.copy(b(r.current,m(P,W),L.parent||E)),_.copy(b(e.current,new d.Vector3(0,0,1),r.current)),z.copy(b(n.current,new d.Vector3(0,0,1),r.current)),A.lookAt(r.current.localToWorld(m(_,z))))}else r.current&&(A.position.copy(b(r.current,new d.Vector3(0,0,0),L.parent||E)),A.lookAt(r.current.localToWorld(new d.Vector3(0,0,1))))}return A}),[L,W,z,P,_,E,A]),[I]=t.useState((()=>new d.Object3D)),H=t.useCallback((function(e,r){if(L){var t;if(null!==(t=r)&&void 0!==t||(r=B()),v>0){const t=1e-9;n.easing.damp3(I.position,r.position,v,e,void 0,void 0,t),n.easing.dampE(I.rotation,r.rotation,v,e,void 0,void 0,t)}else I.position.copy(r.position),I.rotation.copy(r.rotation);L.position.copy(I.position),L.rotation.copy(I.rotation)}}),[L,B,v,I.position,I.rotation]);o.useFrame(((e,r)=>{y||H(r)}));const N=t.useRef(null),[U,G]=t.useState(),J=a.useFaceLandmarker(),K=t.useCallback(((e,r)=>{const t=N.current;if(!t)return;const o=t.source.data,n=null==J?void 0:J.detectForVideo(o,e);G(n)}),[J]),Q=t.useMemo((()=>Object.assign(Object.create(d.EventDispatcher.prototype),{computeTarget:B,update:H,facemeshApiRef:M})),[B,H]);t.useImperativeHandle(k,(()=>Q),[Q]),t.useEffect((()=>{if(j){const e=C().controls;return F({controls:Q}),()=>F({controls:e})}}),[j,Q,C,F]);const X=null!=l?l:U,Y=null==X?void 0:X.faceLandmarks[0],Z=null==X||null==(S=X.facialTransformationMatrixes)?void 0:S[0],$=null==X||null==(R=X.faceBlendshapes)?void 0:R[0],ee={onVideoFrame:K,...r};return p.createElement(h.Provider,{value:Q},!i&&p.createElement(t.Suspense,{fallback:null},"src"in ee?p.createElement(s.VideoTexture,f.default({ref:N},ee)):p.createElement(u.WebcamVideoTexture,f.default({ref:N},ee))),p.createElement(c.Facemesh,f.default({ref:M,children:p.createElement("meshNormalMaterial",{side:d.DoubleSide})},O,{points:Y,depth:q,facialTransformationMatrix:Z,faceBlendshapes:$,eyes:w,eyesAsOrigin:g,offset:T,offsetScalar:V,debug:x,"rotation-z":Math.PI,visible:x})))}));exports.FaceControls=y,exports.useFaceControls=()=>t.useContext(h);
@@ -213,7 +213,10 @@ const FaceControls = /* @__PURE__ */forwardRef(({
213
213
  }, videoTextureProps)) : /*#__PURE__*/React.createElement(WebcamVideoTexture, _extends({
214
214
  ref: videoTextureRef
215
215
  }, videoTextureProps))), /*#__PURE__*/React.createElement(Facemesh, _extends({
216
- ref: facemeshApiRef
216
+ ref: facemeshApiRef,
217
+ children: /*#__PURE__*/React.createElement("meshNormalMaterial", {
218
+ side: THREE.DoubleSide
219
+ })
217
220
  }, facemesh, {
218
221
  points: points,
219
222
  depth: depth,
@@ -226,8 +229,6 @@ const FaceControls = /* @__PURE__ */forwardRef(({
226
229
  debug: debug,
227
230
  "rotation-z": Math.PI,
228
231
  visible: debug
229
- }), /*#__PURE__*/React.createElement("meshBasicMaterial", {
230
- side: THREE.DoubleSide
231
232
  })));
232
233
  });
233
234
  const useFaceControls = () => useContext(FaceControlsContext);