@react-three/drei 10.0.8 → 10.1.0
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/CameraControls.cjs.js +1 -1
- package/core/CameraControls.d.ts +25 -1
- package/core/CameraControls.js +60 -19
- package/index.cjs.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),o=require("camera-controls");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),o=require("camera-controls");function a(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 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=a(e),u=l(r),c=a(o);const i=r.forwardRef(((e,o)=>{r.useMemo((()=>{const e={Box3:t.Box3,MathUtils:{clamp:t.MathUtils.clamp},Matrix4:t.Matrix4,Quaternion:t.Quaternion,Raycaster:t.Raycaster,Sphere:t.Sphere,Spherical:t.Spherical,Vector2:t.Vector2,Vector3:t.Vector3,Vector4:t.Vector4};c.default.install({THREE:e}),n.extend({CameraControlsImpl:c.default})}),[]);const{camera:a,domElement:l,makeDefault:i,onControlStart:d,onControl:f,onControlEnd:v,onTransitionStart:m,onUpdate:E,onWake:p,onRest:h,onSleep:L,onStart:b,onEnd:C,onChange:T,regress:g,...j}=e,x=n.useThree((e=>e.camera)),y=n.useThree((e=>e.gl)),M=n.useThree((e=>e.invalidate)),O=n.useThree((e=>e.events)),S=n.useThree((e=>e.setEvents)),V=n.useThree((e=>e.set)),k=n.useThree((e=>e.get)),q=n.useThree((e=>e.performance)),w=a||x,R=l||O.connected||y.domElement,P=r.useMemo((()=>new c.default(w)),[w]);return n.useFrame(((e,t)=>{P.enabled&&P.update(t)}),-1),r.useEffect((()=>(P.connect(R),()=>{P.disconnect()})),[R,P]),r.useEffect((()=>{function e(){M(),g&&q.regress()}const t=t=>{e(),null==d||d(t),null==b||b(t)},r=t=>{e(),null==f||f(t),null==T||T(t)},n=e=>{null==v||v(e),null==C||C(e)},o=t=>{e(),null==m||m(t),null==T||T(t)},a=t=>{e(),null==E||E(t),null==T||T(t)},l=t=>{e(),null==p||p(t),null==T||T(t)},s=e=>{null==h||h(e)},u=e=>{null==L||L(e)};return P.addEventListener("controlstart",t),P.addEventListener("control",r),P.addEventListener("controlend",n),P.addEventListener("transitionstart",o),P.addEventListener("update",a),P.addEventListener("wake",l),P.addEventListener("rest",s),P.addEventListener("sleep",u),()=>{P.removeEventListener("controlstart",t),P.removeEventListener("control",r),P.removeEventListener("controlend",n),P.removeEventListener("transitionstart",o),P.removeEventListener("update",a),P.removeEventListener("wake",l),P.removeEventListener("rest",s),P.removeEventListener("sleep",u)}}),[P,M,S,g,q,d,f,v,m,E,p,h,L,T,b,C]),r.useEffect((()=>{if(i){const e=k().controls;return V({controls:P}),()=>V({controls:e})}}),[i,P]),u.createElement("primitive",s.default({ref:o,object:P},j))}));Object.defineProperty(exports,"CameraControlsImpl",{enumerable:!0,get:function(){return c.default}}),exports.CameraControls=i;
|
package/core/CameraControls.d.ts
CHANGED
|
@@ -6,6 +6,30 @@ export type CameraControlsProps = Omit<Overwrite<ThreeElement<typeof CameraContr
|
|
|
6
6
|
camera?: PerspectiveCamera | OrthographicCamera;
|
|
7
7
|
domElement?: HTMLElement;
|
|
8
8
|
makeDefault?: boolean;
|
|
9
|
+
onControlStart?: (e?: {
|
|
10
|
+
type: 'controlstart';
|
|
11
|
+
}) => void;
|
|
12
|
+
onControl?: (e?: {
|
|
13
|
+
type: 'control';
|
|
14
|
+
}) => void;
|
|
15
|
+
onControlEnd?: (e?: {
|
|
16
|
+
type: 'controlend';
|
|
17
|
+
}) => void;
|
|
18
|
+
onTransitionStart?: (e?: {
|
|
19
|
+
type: 'transitionstart';
|
|
20
|
+
}) => void;
|
|
21
|
+
onUpdate?: (e?: {
|
|
22
|
+
type: 'update';
|
|
23
|
+
}) => void;
|
|
24
|
+
onWake?: (e?: {
|
|
25
|
+
type: 'wake';
|
|
26
|
+
}) => void;
|
|
27
|
+
onRest?: (e?: {
|
|
28
|
+
type: 'rest';
|
|
29
|
+
}) => void;
|
|
30
|
+
onSleep?: (e?: {
|
|
31
|
+
type: 'sleep';
|
|
32
|
+
}) => void;
|
|
9
33
|
onStart?: (e?: {
|
|
10
34
|
type: 'controlstart';
|
|
11
35
|
}) => void;
|
|
@@ -13,7 +37,7 @@ export type CameraControlsProps = Omit<Overwrite<ThreeElement<typeof CameraContr
|
|
|
13
37
|
type: 'controlend';
|
|
14
38
|
}) => void;
|
|
15
39
|
onChange?: (e?: {
|
|
16
|
-
type:
|
|
40
|
+
type: string;
|
|
17
41
|
}) => void;
|
|
18
42
|
events?: boolean;
|
|
19
43
|
regress?: boolean;
|
package/core/CameraControls.js
CHANGED
|
@@ -36,6 +36,14 @@ const CameraControls = /* @__PURE__ */forwardRef((props, ref) => {
|
|
|
36
36
|
camera,
|
|
37
37
|
domElement,
|
|
38
38
|
makeDefault,
|
|
39
|
+
onControlStart,
|
|
40
|
+
onControl,
|
|
41
|
+
onControlEnd,
|
|
42
|
+
onTransitionStart,
|
|
43
|
+
onUpdate,
|
|
44
|
+
onWake,
|
|
45
|
+
onRest,
|
|
46
|
+
onSleep,
|
|
39
47
|
onStart,
|
|
40
48
|
onEnd,
|
|
41
49
|
onChange,
|
|
@@ -61,32 +69,64 @@ const CameraControls = /* @__PURE__ */forwardRef((props, ref) => {
|
|
|
61
69
|
return () => void controls.disconnect();
|
|
62
70
|
}, [explDomElement, controls]);
|
|
63
71
|
useEffect(() => {
|
|
64
|
-
|
|
72
|
+
function invalidateAndRegress() {
|
|
65
73
|
invalidate();
|
|
66
74
|
if (regress) performance.regress();
|
|
67
|
-
|
|
75
|
+
}
|
|
76
|
+
const handleControlStart = e => {
|
|
77
|
+
invalidateAndRegress();
|
|
78
|
+
onControlStart == null || onControlStart(e);
|
|
79
|
+
onStart == null || onStart(e); // backwards compatibility
|
|
80
|
+
};
|
|
81
|
+
const handleControl = e => {
|
|
82
|
+
invalidateAndRegress();
|
|
83
|
+
onControl == null || onControl(e);
|
|
84
|
+
onChange == null || onChange(e); // backwards compatibility
|
|
85
|
+
};
|
|
86
|
+
const handleControlEnd = e => {
|
|
87
|
+
onControlEnd == null || onControlEnd(e);
|
|
88
|
+
onEnd == null || onEnd(e); // backwards compatibility
|
|
89
|
+
};
|
|
90
|
+
const handleTransitionStart = e => {
|
|
91
|
+
invalidateAndRegress();
|
|
92
|
+
onTransitionStart == null || onTransitionStart(e);
|
|
93
|
+
onChange == null || onChange(e); // backwards compatibility
|
|
94
|
+
};
|
|
95
|
+
const handleUpdate = e => {
|
|
96
|
+
invalidateAndRegress();
|
|
97
|
+
onUpdate == null || onUpdate(e);
|
|
98
|
+
onChange == null || onChange(e); // backwards compatibility
|
|
99
|
+
};
|
|
100
|
+
const handleWake = e => {
|
|
101
|
+
invalidateAndRegress();
|
|
102
|
+
onWake == null || onWake(e);
|
|
103
|
+
onChange == null || onChange(e); // backwards compatibility
|
|
68
104
|
};
|
|
69
|
-
const
|
|
70
|
-
|
|
105
|
+
const handleRest = e => {
|
|
106
|
+
onRest == null || onRest(e);
|
|
71
107
|
};
|
|
72
|
-
const
|
|
73
|
-
|
|
108
|
+
const handleSleep = e => {
|
|
109
|
+
onSleep == null || onSleep(e);
|
|
74
110
|
};
|
|
75
|
-
controls.addEventListener('
|
|
76
|
-
controls.addEventListener('
|
|
77
|
-
controls.addEventListener('controlend',
|
|
78
|
-
controls.addEventListener('
|
|
79
|
-
controls.addEventListener('
|
|
80
|
-
controls.addEventListener('wake',
|
|
111
|
+
controls.addEventListener('controlstart', handleControlStart);
|
|
112
|
+
controls.addEventListener('control', handleControl);
|
|
113
|
+
controls.addEventListener('controlend', handleControlEnd);
|
|
114
|
+
controls.addEventListener('transitionstart', handleTransitionStart);
|
|
115
|
+
controls.addEventListener('update', handleUpdate);
|
|
116
|
+
controls.addEventListener('wake', handleWake);
|
|
117
|
+
controls.addEventListener('rest', handleRest);
|
|
118
|
+
controls.addEventListener('sleep', handleSleep);
|
|
81
119
|
return () => {
|
|
82
|
-
controls.removeEventListener('
|
|
83
|
-
controls.removeEventListener('
|
|
84
|
-
controls.removeEventListener('controlend',
|
|
85
|
-
controls.removeEventListener('
|
|
86
|
-
controls.removeEventListener('
|
|
87
|
-
controls.removeEventListener('wake',
|
|
120
|
+
controls.removeEventListener('controlstart', handleControlStart);
|
|
121
|
+
controls.removeEventListener('control', handleControl);
|
|
122
|
+
controls.removeEventListener('controlend', handleControlEnd);
|
|
123
|
+
controls.removeEventListener('transitionstart', handleTransitionStart);
|
|
124
|
+
controls.removeEventListener('update', handleUpdate);
|
|
125
|
+
controls.removeEventListener('wake', handleWake);
|
|
126
|
+
controls.removeEventListener('rest', handleRest);
|
|
127
|
+
controls.removeEventListener('sleep', handleSleep);
|
|
88
128
|
};
|
|
89
|
-
}, [controls,
|
|
129
|
+
}, [controls, invalidate, setEvents, regress, performance, onControlStart, onControl, onControlEnd, onTransitionStart, onUpdate, onWake, onRest, onSleep, onChange, onStart, onEnd]);
|
|
90
130
|
useEffect(() => {
|
|
91
131
|
if (makeDefault) {
|
|
92
132
|
const old = get().controls;
|
|
@@ -97,6 +137,7 @@ const CameraControls = /* @__PURE__ */forwardRef((props, ref) => {
|
|
|
97
137
|
controls: old
|
|
98
138
|
});
|
|
99
139
|
}
|
|
140
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
100
141
|
}, [makeDefault, controls]);
|
|
101
142
|
return /*#__PURE__*/React.createElement("primitive", _extends({
|
|
102
143
|
ref: ref,
|