@react-three/drei 9.80.1 → 9.80.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/core/DeviceOrientationControls.cjs.js +1 -1
- package/core/DeviceOrientationControls.js +1 -1
- package/core/Example.d.ts +1 -1
- package/core/PointerLockControls.cjs.js +1 -1
- package/core/PointerLockControls.js +1 -1
- package/core/useAnimations.cjs.js +1 -1
- package/core/useAnimations.js +7 -8
- package/index.cjs.js +1 -1
- package/package.json +1 -1
- package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
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,
|
|
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;
|
|
@@ -15,7 +15,7 @@ const DeviceOrientationControls = /*#__PURE__*/React.forwardRef((props, ref) =>
|
|
|
15
15
|
const get = useThree(state => state.get);
|
|
16
16
|
const set = useThree(state => state.set);
|
|
17
17
|
const explCamera = camera || defaultCamera;
|
|
18
|
-
const
|
|
18
|
+
const controls = React.useMemo(() => new DeviceOrientationControls$1(explCamera), [explCamera]);
|
|
19
19
|
React.useEffect(() => {
|
|
20
20
|
const callback = e => {
|
|
21
21
|
invalidate();
|
package/core/Example.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
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 o(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 s=o(e),i=c(r);const u=i.forwardRef((({domElement:e,selector:r,onChange:o,onLock:c,onUnlock:u,enabled:a=!0,makeDefault:l,...d},f)=>{const{camera:h
|
|
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 o(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 s=o(e),i=c(r);const u=i.forwardRef((({domElement:e,selector:r,onChange:o,onLock:c,onUnlock:u,enabled:a=!0,makeDefault:l,...d},f)=>{const{camera:m,...h}=d,v=t.useThree((e=>e.setEvents)),E=t.useThree((e=>e.gl)),b=t.useThree((e=>e.camera)),p=t.useThree((e=>e.invalidate)),k=t.useThree((e=>e.events)),L=t.useThree((e=>e.get)),g=t.useThree((e=>e.set)),j=m||b,y=e||k.connected||E.domElement,O=i.useMemo((()=>new n.PointerLockControls(j)),[j]);return i.useEffect((()=>{if(a){O.connect(y);const e=L().events.compute;return v({compute(e,t){const r=t.size.width/2,n=t.size.height/2;t.pointer.set(r/t.size.width*2-1,-n/t.size.height*2+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),()=>{O.disconnect(),v({compute:e})}}}),[a,O]),i.useEffect((()=>{const e=e=>{p(),o&&o(e)};O.addEventListener("change",e),c&&O.addEventListener("lock",c),u&&O.addEventListener("unlock",u);const t=()=>O.lock(),n=r?Array.from(document.querySelectorAll(r)):[document];return n.forEach((e=>e&&e.addEventListener("click",t))),()=>{O.removeEventListener("change",e),c&&O.addEventListener("lock",c),u&&O.addEventListener("unlock",u),n.forEach((e=>e?e.removeEventListener("click",t):void 0))}}),[o,c,u,r,O,p]),i.useEffect((()=>{if(l){const e=L().controls;return g({controls:O}),()=>g({controls:e})}}),[l,O]),i.createElement("primitive",s.default({ref:f,object:O},h))}));exports.PointerLockControls=u;
|
|
@@ -26,7 +26,7 @@ const PointerLockControls = /*#__PURE__*/React.forwardRef(({
|
|
|
26
26
|
const set = useThree(state => state.set);
|
|
27
27
|
const explCamera = camera || defaultCamera;
|
|
28
28
|
const explDomElement = domElement || events.connected || gl.domElement;
|
|
29
|
-
const
|
|
29
|
+
const controls = React.useMemo(() => new PointerLockControls$1(explCamera), [explCamera]);
|
|
30
30
|
React.useEffect(() => {
|
|
31
31
|
if (enabled) {
|
|
32
32
|
controls.connect(explDomElement); // Force events to be centered while PLC is active
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("three"),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 c=n(e);exports.useAnimations=function(e,n){const u=c.useRef(),[o]=c.useState((()=>n?n instanceof r.Object3D?{current:n}:n:u)),[a]=c.useState((()=>new r.AnimationMixer(void 0)));c.useLayoutEffect((()=>{o.current=n&&(n instanceof r.Object3D?n:n.current),a._root=o.current}),[n]);const i=c.useRef({}),s=c.useMemo((()=>{const r={};return e.forEach((e=>Object.defineProperty(r,e.name,{enumerable:!0,get(){if(o.current)return i.current[e.name]||(i.current[e.name]=a.clipAction(e,o.current))},configurable:!0}))),{ref:o,clips:e,actions:r,names:e.map((e=>e.name)),mixer:a}}),[e]);return t.useFrame(((e,r)=>a.update(r))),c.useEffect((()=>{const e=o.current;return()=>{i.current={},a.stopAllAction(),Object.values(s.actions).forEach((r=>{e&&a.uncacheAction(r,e)}))}}),[e]),s};
|
package/core/useAnimations.js
CHANGED
|
@@ -9,9 +9,12 @@ function useAnimations(clips, root) {
|
|
|
9
9
|
} : root : ref); // eslint-disable-next-line prettier/prettier
|
|
10
10
|
|
|
11
11
|
const [mixer] = React.useState(() => new AnimationMixer(undefined));
|
|
12
|
-
React.useLayoutEffect(() =>
|
|
12
|
+
React.useLayoutEffect(() => {
|
|
13
|
+
actualRef.current = root && (root instanceof Object3D ? root : root.current);
|
|
14
|
+
mixer._root = actualRef.current;
|
|
15
|
+
}, [root]);
|
|
13
16
|
const lazyActions = React.useRef({});
|
|
14
|
-
const
|
|
17
|
+
const api = React.useMemo(() => {
|
|
15
18
|
const actions = {};
|
|
16
19
|
clips.forEach(clip => Object.defineProperty(actions, clip.name, {
|
|
17
20
|
enumerable: true,
|
|
@@ -31,13 +34,14 @@ function useAnimations(clips, root) {
|
|
|
31
34
|
names: clips.map(c => c.name),
|
|
32
35
|
mixer
|
|
33
36
|
};
|
|
34
|
-
});
|
|
37
|
+
}, [clips]);
|
|
35
38
|
useFrame((state, delta) => mixer.update(delta));
|
|
36
39
|
React.useEffect(() => {
|
|
37
40
|
const currentRoot = actualRef.current;
|
|
38
41
|
return () => {
|
|
39
42
|
// Clean up only when clips change, wipe out lazy actions and uncache clips
|
|
40
43
|
lazyActions.current = {};
|
|
44
|
+
mixer.stopAllAction();
|
|
41
45
|
Object.values(api.actions).forEach(action => {
|
|
42
46
|
if (currentRoot) {
|
|
43
47
|
mixer.uncacheAction(action, currentRoot);
|
|
@@ -45,11 +49,6 @@ function useAnimations(clips, root) {
|
|
|
45
49
|
});
|
|
46
50
|
};
|
|
47
51
|
}, [clips]);
|
|
48
|
-
React.useEffect(() => {
|
|
49
|
-
return () => {
|
|
50
|
-
mixer.stopAllAction();
|
|
51
|
-
};
|
|
52
|
-
}, [mixer]);
|
|
53
52
|
return api;
|
|
54
53
|
}
|
|
55
54
|
|