@react-three/drei 9.93.1 → 9.94.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-three/drei",
3
- "version": "9.93.1",
3
+ "version": "9.94.0",
4
4
  "private": false,
5
5
  "description": "useful add-ons for react-three-fiber",
6
6
  "keywords": [
@@ -61,9 +61,10 @@
61
61
  "three-mesh-bvh": "^0.6.7",
62
62
  "three-stdlib": "^2.28.0",
63
63
  "troika-three-text": "^0.47.2",
64
+ "tunnel-rat": "^0.1.2",
64
65
  "utility-types": "^3.10.0",
65
66
  "uuid": "^9.0.1",
66
- "zustand": "^3.5.13"
67
+ "zustand": "^3.7.1"
67
68
  },
68
69
  "peerDependencies": {
69
70
  "@react-three/fiber": ">=8.0",
package/web/View.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("three"),r=require("@react-three/fiber");function n(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 i=n(e),c=n(t);const o=new c.Color;function s(e){return"top"in e}function u({canvasSize:e,scene:t,index:n,children:c,frames:u,rect:a,track:l}){const h=r.useThree((e=>e.get)),f=r.useThree((e=>e.camera)),g=r.useThree((e=>e.scene)),d=r.useThree((e=>e.setEvents));let p=0;return r.useFrame((r=>{var n,i;(u===1/0||p<=u)&&(a.current=null==(n=l.current)?void 0:n.getBoundingClientRect(),p++);if(a.current){const{position:{left:n,bottom:u,width:l,height:h},isOffscreen:d}=function(e,t){const{right:r,top:n,left:i,bottom:c,width:o,height:u}=t,a=t.bottom<0||n>e.height||r<0||t.left>e.width;if(s(e)){const t=e.top+e.height-c;return{position:{width:o,height:u,left:i-e.left,top:n,bottom:t,right:r},isOffscreen:a}}return{position:{width:o,height:u,top:n,left:i,bottom:e.height-c,right:r},isOffscreen:a}}(e,a.current),p=l/h;(i=f)&&i.isOrthographicCamera?f.left===l/-2&&f.right===l/2&&f.top===h/2&&f.bottom===h/-2||(Object.assign(f,{left:l/-2,right:l/2,top:h/2,bottom:h/-2}),f.updateProjectionMatrix()):f.aspect!==p&&(f.aspect=p,f.updateProjectionMatrix()),r.gl.setViewport(n,u,l,h),r.gl.setScissor(n,u,l,h),r.gl.setScissorTest(!0),d?(r.gl.getClearColor(o),r.gl.setClearColor(o,r.gl.getClearAlpha()),r.gl.clear(!0,!0)):r.gl.render(c?g:t,f),r.gl.setScissorTest(!0)}}),n),i.useEffect((()=>{const e=h().events.connected;return d({connected:l.current}),()=>d({connected:e})}),[]),i.useEffect((()=>{s(e)||console.warn("Detected @react-three/fiber canvas size does not include position information. <View /> may not work as expected. Upgrade to @react-three/fiber ^8.1.0 for support.\n See https://github.com/pmndrs/drei/issues/944")}),[]),i.createElement(i.Fragment,null,c)}exports.View=({track:e,index:t=1,frames:n=1/0,children:o})=>{var s,a;const l=i.useRef(null),{size:h,scene:f}=r.useThree(),[g]=i.useState((()=>new c.Scene)),d=i.useCallback(((t,r)=>{if(l.current&&e.current&&t.target===e.current){const{width:e,height:n,left:i,top:c}=l.current,o=t.clientX-i,s=t.clientY-c;r.pointer.set(o/e*2-1,-s/n*2+1),r.raycaster.setFromCamera(r.pointer,r.camera)}}),[l,e]),[p,m]=i.useReducer((()=>!0),!1);return i.useEffect((()=>{var t;l.current=null==(t=e.current)?void 0:t.getBoundingClientRect(),m()}),[e]),i.createElement(i.Fragment,null,p&&r.createPortal(i.createElement(u,{canvasSize:h,frames:n,scene:f,track:e,rect:l,index:t},o,i.createElement("group",{onPointerOver:()=>null})),g,{events:{compute:d,priority:t},size:{width:null==(s=l.current)?void 0:s.width,height:null==(a=l.current)?void 0:a.height}}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("@react-three/fiber"),c=require("tunnel-rat");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(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 o=i(e),s=a(t),l=a(r),u=i(c);const f=e=>e&&e.isOrthographicCamera,d=new l.Color,m=u.default();function h(e){return"top"in e}function g(e,t){const{right:r,top:n,left:c,bottom:i,width:a,height:o}=t,s=t.bottom<0||n>e.height||r<0||t.left>e.width;if(h(e)){const t=e.top+e.height-i;return{position:{width:a,height:o,left:c-e.left,top:n,bottom:t,right:r},isOffscreen:s}}return{position:{width:a,height:o,top:n,left:c,bottom:e.height-i,right:r},isOffscreen:s}}function p(e,{left:t,bottom:r,width:n,height:c}){let i;const a=n/c;return f(e.camera)?e.camera.left===n/-2&&e.camera.right===n/2&&e.camera.top===c/2&&e.camera.bottom===c/-2||(Object.assign(e.camera,{left:n/-2,right:n/2,top:c/2,bottom:c/-2}),e.camera.updateProjectionMatrix()):e.camera.aspect!==a&&(e.camera.aspect=a,e.camera.updateProjectionMatrix()),i=e.gl.autoClear,e.gl.autoClear=!1,e.gl.setViewport(t,r,n,c),e.gl.setScissor(t,r,n,c),e.gl.setScissorTest(!0),i}function b(e,t){e.gl.setScissorTest(!1),e.gl.autoClear=t}function v(e){e.gl.getClearColor(d),e.gl.setClearColor(d,e.gl.getClearAlpha()),e.gl.clear(!0,!0)}function w({visible:e=!0,canvasSize:t,scene:r,index:c,children:i,frames:a,rect:o,track:l}){const u=n.useThree(),[f,d]=s.useState(!1);let m=0;return n.useFrame((n=>{var c;(a===1/0||m<=a)&&(o.current=null==(c=l.current)?void 0:c.getBoundingClientRect(),m++);const{position:s,isOffscreen:u}=g(t,o.current);if(f!==u&&d(u),e&&!f&&o.current){const e=p(n,s);n.gl.render(i?n.scene:r,n.camera),b(n,e)}}),c),s.useLayoutEffect((()=>{if(!e||!f){const{position:e}=g(t,o.current),r=p(u,e);v(u),b(u,r)}}),[e,f]),s.useEffect((()=>{const e=u.get().events.connected;return u.setEvents({connected:l.current}),()=>{const{position:r}=g(t,o.current),n=p(u,r);v(u),b(u,n),u.setEvents({connected:e})}}),[]),s.useEffect((()=>{h(t)||console.warn("Detected @react-three/fiber canvas size does not include position information. <View /> may not work as expected. Upgrade to @react-three/fiber ^8.1.0 for support.\n See https://github.com/pmndrs/drei/issues/944")}),[]),s.createElement(s.Fragment,null,i)}const E=s.forwardRef((({track:e,visible:t=!0,index:r=1,id:c,style:i,className:a,frames:u=1/0,children:f,...d},m)=>{var h,g,p,b;const v=s.useRef(null),{size:E,scene:C}=n.useThree(),[x]=s.useState((()=>new l.Scene)),[y,O]=s.useReducer((()=>!0),!1),j=s.useCallback(((t,r)=>{if(v.current&&e.current&&t.target===e.current){const{width:e,height:n,left:c,top:i}=v.current,a=t.clientX-c,o=t.clientY-i;r.pointer.set(a/e*2-1,-o/n*2+1),r.raycaster.setFromCamera(r.pointer,r.camera)}}),[v,e]);return s.useEffect((()=>{var t;v.current=null==(t=e.current)?void 0:t.getBoundingClientRect(),O()}),[e]),s.createElement("group",o.default({ref:m},d),y&&n.createPortal(s.createElement(w,{visible:t,canvasSize:E,frames:u,scene:C,track:e,rect:v,index:r},f),x,{events:{compute:j,priority:r},size:{width:null==(h=v.current)?void 0:h.width,height:null==(g=v.current)?void 0:g.height,top:null==(p=v.current)?void 0:p.top,left:null==(b=v.current)?void 0:b.left}}))})),C=s.forwardRef((({as:e="div",id:t,visible:r,className:n,style:c,index:i=1,track:a,frames:l=1/0,children:u,...f},d)=>{const h=s.useId(),g=s.useRef(null);return s.useImperativeHandle(d,(()=>g.current)),s.createElement(s.Fragment,null,s.createElement(e,o.default({ref:g,id:t,className:n,style:c},f)),s.createElement(m.In,null,s.createElement(E,{visible:r,key:h,track:g,frames:l,index:i},u)))})),x=s.forwardRef(((e,t)=>s.useContext(n.context)?s.createElement(E,o.default({ref:t},e)):s.createElement(C,o.default({ref:t},e))));x.Port=()=>s.createElement(m.Out,null),exports.View=x;
package/web/View.d.ts CHANGED
@@ -9,6 +9,7 @@ type CanvasSize = LegacyCanvasSize & {
9
9
  left: number;
10
10
  };
11
11
  export type ContainerProps = {
12
+ visible: boolean;
12
13
  scene: THREE.Scene;
13
14
  index: number;
14
15
  children?: React.ReactNode;
@@ -18,10 +19,18 @@ export type ContainerProps = {
18
19
  canvasSize: LegacyCanvasSize | CanvasSize;
19
20
  };
20
21
  export type ViewProps = {
21
- track: React.MutableRefObject<HTMLElement>;
22
+ as?: string;
23
+ id?: string;
24
+ className?: string;
25
+ style?: React.CSSProperties;
26
+ visible?: boolean;
22
27
  index?: number;
23
28
  frames?: number;
24
29
  children?: React.ReactNode;
30
+ track: React.MutableRefObject<HTMLElement>;
25
31
  };
26
- export declare const View: ({ track, index, frames, children }: ViewProps) => React.JSX.Element;
32
+ export type ViewportProps = {
33
+ Port: () => React.ReactNode;
34
+ } & React.ForwardRefExoticComponent<ViewProps & React.RefAttributes<HTMLElement | THREE.Group>>;
35
+ export declare const View: ViewportProps;
27
36
  export {};
package/web/View.js CHANGED
@@ -1,9 +1,12 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
1
2
  import * as React from 'react';
2
3
  import * as THREE from 'three';
3
- import { useThree, createPortal, useFrame } from '@react-three/fiber';
4
+ import { context, useThree, createPortal, useFrame } from '@react-three/fiber';
5
+ import tunnel from 'tunnel-rat';
4
6
 
5
7
  const isOrthographicCamera = def => def && def.isOrthographicCamera;
6
- const col = /* @__PURE__ */new THREE.Color();
8
+ const col = new THREE.Color();
9
+ const tracked = tunnel();
7
10
 
8
11
  /**
9
12
  * In `@react-three/fiber` after `v8.0.0` but prior to `v8.1.0`, `state.size` contained only dimension
@@ -41,7 +44,6 @@ function computeContainerPosition(canvasSize, trackRect) {
41
44
  isOffscreen
42
45
  };
43
46
  }
44
-
45
47
  // Fall back on old behavior if r3f < 8.1.0
46
48
  const bottom = canvasSize.height - trackBottom;
47
49
  return {
@@ -56,7 +58,47 @@ function computeContainerPosition(canvasSize, trackRect) {
56
58
  isOffscreen
57
59
  };
58
60
  }
61
+ function prepareSkissor(state, {
62
+ left,
63
+ bottom,
64
+ width,
65
+ height
66
+ }) {
67
+ let autoClear;
68
+ const aspect = width / height;
69
+ if (isOrthographicCamera(state.camera)) {
70
+ if (state.camera.left !== width / -2 || state.camera.right !== width / 2 || state.camera.top !== height / 2 || state.camera.bottom !== height / -2) {
71
+ Object.assign(state.camera, {
72
+ left: width / -2,
73
+ right: width / 2,
74
+ top: height / 2,
75
+ bottom: height / -2
76
+ });
77
+ state.camera.updateProjectionMatrix();
78
+ }
79
+ } else if (state.camera.aspect !== aspect) {
80
+ state.camera.aspect = aspect;
81
+ state.camera.updateProjectionMatrix();
82
+ }
83
+ autoClear = state.gl.autoClear;
84
+ state.gl.autoClear = false;
85
+ state.gl.setViewport(left, bottom, width, height);
86
+ state.gl.setScissor(left, bottom, width, height);
87
+ state.gl.setScissorTest(true);
88
+ return autoClear;
89
+ }
90
+ function finishSkissor(state, autoClear) {
91
+ // Restore the default state
92
+ state.gl.setScissorTest(false);
93
+ state.gl.autoClear = autoClear;
94
+ }
95
+ function clear(state) {
96
+ state.gl.getClearColor(col);
97
+ state.gl.setClearColor(col, state.gl.getClearAlpha());
98
+ state.gl.clear(true, true);
99
+ }
59
100
  function Container({
101
+ visible = true,
60
102
  canvasSize,
61
103
  scene,
62
104
  index,
@@ -65,10 +107,8 @@ function Container({
65
107
  rect,
66
108
  track
67
109
  }) {
68
- const get = useThree(state => state.get);
69
- const camera = useThree(state => state.camera);
70
- const virtualScene = useThree(state => state.scene);
71
- const setEvents = useThree(state => state.setEvents);
110
+ const rootState = useThree();
111
+ const [isOffscreen, setOffscreen] = React.useState(false);
72
112
  let frameCount = 0;
73
113
  useFrame(state => {
74
114
  if (frames === Infinity || frameCount <= frames) {
@@ -76,55 +116,46 @@ function Container({
76
116
  rect.current = (_track$current = track.current) == null ? void 0 : _track$current.getBoundingClientRect();
77
117
  frameCount++;
78
118
  }
79
- if (rect.current) {
119
+ const {
120
+ position,
121
+ isOffscreen: _isOffscreen
122
+ } = computeContainerPosition(canvasSize, rect.current);
123
+ if (isOffscreen !== _isOffscreen) setOffscreen(_isOffscreen);
124
+ if (visible && !isOffscreen && rect.current) {
125
+ const autoClear = prepareSkissor(state, position);
126
+ // When children are present render the portalled scene, otherwise the default scene
127
+ state.gl.render(children ? state.scene : scene, state.camera);
128
+ finishSkissor(state, autoClear);
129
+ }
130
+ }, index);
131
+ React.useLayoutEffect(() => {
132
+ if (!visible || !isOffscreen) {
133
+ // If the view is not visible clear it once, but stop rendering afterwards!
80
134
  const {
81
- position: {
82
- left,
83
- bottom,
84
- width,
85
- height
86
- },
87
- isOffscreen
135
+ position
88
136
  } = computeContainerPosition(canvasSize, rect.current);
89
- const aspect = width / height;
90
- if (isOrthographicCamera(camera)) {
91
- if (camera.left !== width / -2 || camera.right !== width / 2 || camera.top !== height / 2 || camera.bottom !== height / -2) {
92
- Object.assign(camera, {
93
- left: width / -2,
94
- right: width / 2,
95
- top: height / 2,
96
- bottom: height / -2
97
- });
98
- camera.updateProjectionMatrix();
99
- }
100
- } else if (camera.aspect !== aspect) {
101
- camera.aspect = aspect;
102
- camera.updateProjectionMatrix();
103
- }
104
- state.gl.setViewport(left, bottom, width, height);
105
- state.gl.setScissor(left, bottom, width, height);
106
- state.gl.setScissorTest(true);
107
- if (isOffscreen) {
108
- state.gl.getClearColor(col);
109
- state.gl.setClearColor(col, state.gl.getClearAlpha());
110
- state.gl.clear(true, true);
111
- } else {
112
- // When children are present render the portalled scene, otherwise the default scene
113
- state.gl.render(children ? virtualScene : scene, camera);
114
- }
115
- // Restore the default state
116
- state.gl.setScissorTest(true);
137
+ const autoClear = prepareSkissor(rootState, position);
138
+ clear(rootState);
139
+ finishSkissor(rootState, autoClear);
117
140
  }
118
- }, index);
141
+ }, [visible, isOffscreen]);
119
142
  React.useEffect(() => {
120
143
  // Connect the event layer to the tracking element
121
- const old = get().events.connected;
122
- setEvents({
144
+ const old = rootState.get().events.connected;
145
+ rootState.setEvents({
123
146
  connected: track.current
124
147
  });
125
- return () => setEvents({
126
- connected: old
127
- });
148
+ return () => {
149
+ const {
150
+ position
151
+ } = computeContainerPosition(canvasSize, rect.current);
152
+ const autoClear = prepareSkissor(rootState, position);
153
+ clear(rootState);
154
+ finishSkissor(rootState, autoClear);
155
+ rootState.setEvents({
156
+ connected: old
157
+ });
158
+ };
128
159
  }, []);
129
160
  React.useEffect(() => {
130
161
  if (isNonLegacyCanvasSize(canvasSize)) {
@@ -134,19 +165,25 @@ function Container({
134
165
  }, []);
135
166
  return /*#__PURE__*/React.createElement(React.Fragment, null, children);
136
167
  }
137
- const View = ({
168
+ const CanvasView = /*#__PURE__*/React.forwardRef(({
138
169
  track,
170
+ visible = true,
139
171
  index = 1,
172
+ id,
173
+ style,
174
+ className,
140
175
  frames = Infinity,
141
- children
142
- }) => {
143
- var _rect$current, _rect$current2;
176
+ children,
177
+ ...props
178
+ }, fref) => {
179
+ var _rect$current, _rect$current2, _rect$current3, _rect$current4;
144
180
  const rect = React.useRef(null);
145
181
  const {
146
182
  size,
147
183
  scene
148
184
  } = useThree();
149
185
  const [virtualScene] = React.useState(() => new THREE.Scene());
186
+ const [ready, toggle] = React.useReducer(() => true, false);
150
187
  const compute = React.useCallback((event, state) => {
151
188
  if (rect.current && track.current && event.target === track.current) {
152
189
  const {
@@ -161,7 +198,6 @@ const View = ({
161
198
  state.raycaster.setFromCamera(state.pointer, state.camera);
162
199
  }
163
200
  }, [rect, track]);
164
- const [ready, toggle] = React.useReducer(() => true, false);
165
201
  React.useEffect(() => {
166
202
  var _track$current2;
167
203
  // We need the tracking elements bounds beforehand in order to inject it into the portal
@@ -169,25 +205,71 @@ const View = ({
169
205
  // And now we can proceed
170
206
  toggle();
171
207
  }, [track]);
172
- return /*#__PURE__*/React.createElement(React.Fragment, null, ready && createPortal( /*#__PURE__*/React.createElement(Container, {
208
+ return /*#__PURE__*/React.createElement("group", _extends({
209
+ ref: fref
210
+ }, props), ready && createPortal( /*#__PURE__*/React.createElement(Container, {
211
+ visible: visible,
173
212
  canvasSize: size,
174
213
  frames: frames,
175
214
  scene: scene,
176
215
  track: track,
177
216
  rect: rect,
178
217
  index: index
179
- }, children, /*#__PURE__*/React.createElement("group", {
180
- onPointerOver: () => null
181
- })), virtualScene, {
218
+ }, children), virtualScene, {
182
219
  events: {
183
220
  compute,
184
221
  priority: index
185
222
  },
186
223
  size: {
187
224
  width: (_rect$current = rect.current) == null ? void 0 : _rect$current.width,
188
- height: (_rect$current2 = rect.current) == null ? void 0 : _rect$current2.height
225
+ height: (_rect$current2 = rect.current) == null ? void 0 : _rect$current2.height,
226
+ // @ts-ignore
227
+ top: (_rect$current3 = rect.current) == null ? void 0 : _rect$current3.top,
228
+ // @ts-ignore
229
+ left: (_rect$current4 = rect.current) == null ? void 0 : _rect$current4.left
189
230
  }
190
231
  }));
191
- };
232
+ });
233
+ const HtmlView = /*#__PURE__*/React.forwardRef(({
234
+ as: El = 'div',
235
+ id,
236
+ visible,
237
+ className,
238
+ style,
239
+ index = 1,
240
+ track,
241
+ frames = Infinity,
242
+ children,
243
+ ...props
244
+ }, fref) => {
245
+ const uuid = React.useId();
246
+ const ref = React.useRef(null);
247
+ React.useImperativeHandle(fref, () => ref.current);
248
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(El, _extends({
249
+ ref: ref,
250
+ id: id,
251
+ className: className,
252
+ style: style
253
+ }, props)), /*#__PURE__*/React.createElement(tracked.In, null, /*#__PURE__*/React.createElement(CanvasView, {
254
+ visible: visible,
255
+ key: uuid,
256
+ track: ref,
257
+ frames: frames,
258
+ index: index
259
+ }, children)));
260
+ });
261
+ const View = /*#__PURE__*/React.forwardRef((props, fref) => {
262
+ // If we're inside a canvas we should be able to access the context store
263
+ const store = React.useContext(context);
264
+ // If that's not the case we render a tunnel
265
+ if (!store) return /*#__PURE__*/React.createElement(HtmlView, _extends({
266
+ ref: fref
267
+ }, props));
268
+ // Otherwise a plain canvas-view
269
+ else return /*#__PURE__*/React.createElement(CanvasView, _extends({
270
+ ref: fref
271
+ }, props));
272
+ });
273
+ View.Port = () => /*#__PURE__*/React.createElement(tracked.Out, null);
192
274
 
193
275
  export { View };
package/web/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Html.cjs.js"),r=require("./CycleRaycast.cjs.js"),s=require("./useCursor.cjs.js"),o=require("./Loader.cjs.js"),t=require("./ScrollControls.cjs.js"),i=require("./PresentationControls.cjs.js"),c=require("./KeyboardControls.cjs.js"),a=require("./Select.cjs.js"),u=require("./View.cjs.js"),n=require("./pivotControls/index.cjs.js"),j=require("../core/Billboard.cjs.js"),p=require("../core/ScreenSpace.cjs.js"),l=require("../core/QuadraticBezierLine.cjs.js"),x=require("../core/CubicBezierLine.cjs.js"),q=require("../core/CatmullRomLine.cjs.js"),d=require("../core/Line.cjs.js"),m=require("../core/PositionalAudio.cjs.js"),C=require("../core/Text.cjs.js"),h=require("../core/Text3D.cjs.js"),S=require("../core/Effects.cjs.js"),M=require("../core/GradientTexture.cjs.js"),P=require("../core/Image.cjs.js"),b=require("../core/Edges.cjs.js"),T=require("../core/Outlines.cjs.js"),f=require("../core/Trail.cjs.js"),g=require("../core/Sampler.cjs.js"),v=require("../core/ComputedAttribute.cjs.js"),B=require("../core/Clone.cjs.js"),F=require("../core/MarchingCubes.cjs.js"),A=require("../core/Decal.cjs.js"),L=require("../core/Svg.cjs.js"),R=require("../core/Gltf.cjs.js"),D=require("../core/AsciiRenderer.cjs.js"),k=require("../core/Splat.cjs.js"),E=require("../core/OrthographicCamera.cjs.js"),G=require("../core/PerspectiveCamera.cjs.js"),w=require("../core/CubeCamera.cjs.js"),y=require("../core/DeviceOrientationControls.cjs.js"),z=require("../core/FlyControls.cjs.js"),O=require("../core/MapControls.cjs.js"),I=require("../core/OrbitControls.cjs.js"),H=require("../core/TrackballControls.cjs.js"),V=require("../core/ArcballControls.cjs.js"),K=require("../core/TransformControls.cjs.js"),W=require("../core/PointerLockControls.cjs.js"),Q=require("../core/FirstPersonControls.cjs.js"),X=require("../core/CameraControls.cjs.js"),N=require("../core/FaceControls.cjs.js"),U=require("../core/MotionPathControls.cjs.js"),_=require("../core/GizmoHelper.cjs.js"),J=require("../core/GizmoViewcube.cjs.js"),Y=require("../core/GizmoViewport.cjs.js"),Z=require("../core/Grid.cjs.js"),$=require("../core/useCubeTexture.cjs.js"),ee=require("../core/useFBX.cjs.js"),re=require("../core/useGLTF.cjs.js"),se=require("../core/useKTX2.cjs.js"),oe=require("../core/useProgress.cjs.js"),te=require("../core/useTexture.cjs.js"),ie=require("../core/useVideoTexture.cjs.js"),ce=require("../core/useFont.cjs.js"),ae=require("../core/Stats.cjs.js"),ue=require("../core/StatsGl.cjs.js"),ne=require("../core/useDepthBuffer.cjs.js"),je=require("../core/useAspect.cjs.js"),pe=require("../core/useCamera.cjs.js"),le=require("../core/useDetectGPU.cjs.js"),xe=require("../core/useHelper.cjs.js"),qe=require("../core/useBVH.cjs.js"),de=require("../core/useContextBridge.cjs.js"),me=require("../core/useAnimations.cjs.js"),Ce=require("../core/useFBO.cjs.js"),he=require("../core/useIntersect.cjs.js"),Se=require("../core/useBoxProjectedEnv.cjs.js"),Me=require("../core/BBAnchor.cjs.js"),Pe=require("../core/useTrailTexture.cjs.js"),be=require("../core/useCubeCamera.cjs.js"),Te=require("../core/Example.cjs.js"),fe=require("../core/SpriteAnimator.cjs.js"),ge=require("../core/FaceLandmarker.cjs.js"),ve=require("../core/CurveModifier.cjs.js"),Be=require("../core/MeshDistortMaterial.cjs.js"),Fe=require("../core/MeshWobbleMaterial.cjs.js"),Ae=require("../core/MeshReflectorMaterial.cjs.js"),Le=require("../core/MeshRefractionMaterial.cjs.js"),Re=require("../core/MeshTransmissionMaterial.cjs.js"),De=require("../core/MeshDiscardMaterial.cjs.js"),ke=require("../core/PointMaterial.cjs.js"),Ee=require("../core/shaderMaterial.cjs.js"),Ge=require("../core/softShadows.cjs.js"),we=require("../core/shapes.cjs.js"),ye=require("../core/Facemesh.cjs.js"),ze=require("../core/RoundedBox.cjs.js"),Oe=require("../core/ScreenQuad.cjs.js"),Ie=require("../core/Center.cjs.js"),He=require("../core/Resize.cjs.js"),Ve=require("../core/Bounds.cjs.js"),Ke=require("../core/CameraShake.cjs.js"),We=require("../core/Float.cjs.js"),Qe=require("../core/Stage.cjs.js"),Xe=require("../core/Backdrop.cjs.js"),Ne=require("../core/Shadow.cjs.js"),Ue=require("../core/Caustics.cjs.js"),_e=require("../core/ContactShadows.cjs.js"),Je=require("../core/AccumulativeShadows.cjs.js"),Ye=require("../core/Reflector.cjs.js"),Ze=require("../core/SpotLight.cjs.js"),$e=require("../core/Environment.cjs.js"),er=require("../core/Lightformer.cjs.js"),rr=require("../core/Sky.cjs.js"),sr=require("../core/Stars.cjs.js"),or=require("../core/Cloud.cjs.js"),tr=require("../core/Sparkles.cjs.js"),ir=require("../core/useEnvironment.cjs.js"),cr=require("../core/useMatcapTexture.cjs.js"),ar=require("../core/useNormalTexture.cjs.js"),ur=require("../core/Wireframe.cjs.js"),nr=require("../core/ShadowAlpha.cjs.js"),jr=require("../core/Points.cjs.js"),pr=require("../core/Instances.cjs.js"),lr=require("../core/Segments.cjs.js"),xr=require("../core/Detailed.cjs.js"),qr=require("../core/Preload.cjs.js"),dr=require("../core/BakeShadows.cjs.js"),mr=require("../core/meshBounds.cjs.js"),Cr=require("../core/AdaptiveDpr.cjs.js"),hr=require("../core/AdaptiveEvents.cjs.js"),Sr=require("../core/PerformanceMonitor.cjs.js"),Mr=require("../core/RenderTexture.cjs.js"),Pr=require("../core/RenderCubeTexture.cjs.js"),br=require("../core/Mask.cjs.js"),Tr=require("../core/Hud.cjs.js"),fr=require("../core/Fisheye.cjs.js"),gr=require("../core/MeshPortalMaterial.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("react-dom/client"),require("three"),require("@react-three/fiber"),require("zustand"),require("react-merge-refs"),require("maath"),require("@react-spring/three"),require("@use-gesture/react"),require("zustand/middleware"),require("three-stdlib"),require("zustand/shallow"),require("./pivotControls/AxisArrow.cjs.js"),require("./pivotControls/context.cjs.js"),require("./pivotControls/PlaneSlider.cjs.js"),require("./pivotControls/AxisRotator.cjs.js"),require("lodash.clamp"),require("troika-three-text"),require("suspend-react"),require("../helpers/constants.cjs.js"),require("meshline"),require("lodash.pick"),require("lodash.omit"),require("camera-controls"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("stats-gl"),require("detect-gpu"),require("three-mesh-bvh"),require("react-composer"),require("../helpers/deprecated.cjs.js"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../materials/MeshRefractionMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("uuid"),require("../materials/WireframeMaterial.cjs.js"),exports.Html=e.Html,exports.CycleRaycast=r.CycleRaycast,exports.useCursor=s.useCursor,exports.Loader=o.Loader,exports.Scroll=t.Scroll,exports.ScrollControls=t.ScrollControls,exports.useScroll=t.useScroll,exports.PresentationControls=i.PresentationControls,exports.KeyboardControls=c.KeyboardControls,exports.useKeyboardControls=c.useKeyboardControls,exports.Select=a.Select,exports.useSelect=a.useSelect,exports.View=u.View,exports.PivotControls=n.PivotControls,exports.calculateScaleFactor=n.calculateScaleFactor,exports.Billboard=j.Billboard,exports.ScreenSpace=p.ScreenSpace,exports.QuadraticBezierLine=l.QuadraticBezierLine,exports.CubicBezierLine=x.CubicBezierLine,exports.CatmullRomLine=q.CatmullRomLine,exports.Line=d.Line,exports.PositionalAudio=m.PositionalAudio,exports.Text=C.Text,exports.Text3D=h.Text3D,exports.Effects=S.Effects,exports.isWebGL2Available=S.isWebGL2Available,exports.GradientTexture=M.GradientTexture,exports.GradientType=M.GradientType,exports.Image=P.Image,exports.Edges=b.Edges,exports.Outlines=T.Outlines,exports.Trail=f.Trail,exports.useTrail=f.useTrail,exports.Sampler=g.Sampler,exports.useSurfaceSampler=g.useSurfaceSampler,exports.ComputedAttribute=v.ComputedAttribute,exports.Clone=B.Clone,exports.MarchingCube=F.MarchingCube,exports.MarchingCubes=F.MarchingCubes,exports.MarchingPlane=F.MarchingPlane,exports.Decal=A.Decal,exports.Svg=L.Svg,exports.Gltf=R.Gltf,exports.AsciiRenderer=D.AsciiRenderer,exports.Splat=k.Splat,exports.OrthographicCamera=E.OrthographicCamera,exports.PerspectiveCamera=G.PerspectiveCamera,exports.CubeCamera=w.CubeCamera,exports.DeviceOrientationControls=y.DeviceOrientationControls,exports.FlyControls=z.FlyControls,exports.MapControls=O.MapControls,exports.OrbitControls=I.OrbitControls,exports.TrackballControls=H.TrackballControls,exports.ArcballControls=V.ArcballControls,exports.TransformControls=K.TransformControls,exports.PointerLockControls=W.PointerLockControls,exports.FirstPersonControls=Q.FirstPersonControls,exports.CameraControls=X.CameraControls,exports.FaceControls=N.FaceControls,exports.useFaceControls=N.useFaceControls,exports.MotionPathControls=U.MotionPathControls,exports.useMotion=U.useMotion,exports.GizmoHelper=_.GizmoHelper,exports.useGizmoContext=_.useGizmoContext,exports.GizmoViewcube=J.GizmoViewcube,exports.GizmoViewport=Y.GizmoViewport,exports.Grid=Z.Grid,exports.useCubeTexture=$.useCubeTexture,exports.useFBX=ee.useFBX,exports.useGLTF=re.useGLTF,exports.useKTX2=se.useKTX2,exports.useProgress=oe.useProgress,exports.IsObject=te.IsObject,exports.useTexture=te.useTexture,exports.useVideoTexture=ie.useVideoTexture,exports.useFont=ce.useFont,exports.Stats=ae.Stats,exports.StatsGl=ue.StatsGl,exports.useDepthBuffer=ne.useDepthBuffer,exports.useAspect=je.useAspect,exports.useCamera=pe.useCamera,exports.useDetectGPU=le.useDetectGPU,exports.useHelper=xe.useHelper,exports.Bvh=qe.Bvh,exports.useBVH=qe.useBVH,exports.useContextBridge=de.useContextBridge,exports.useAnimations=me.useAnimations,exports.useFBO=Ce.useFBO,exports.useIntersect=he.useIntersect,exports.useBoxProjectedEnv=Se.useBoxProjectedEnv,exports.BBAnchor=Me.BBAnchor,exports.useTrailTexture=Pe.useTrailTexture,exports.useCubeCamera=be.useCubeCamera,exports.Example=Te.Example,exports.SpriteAnimator=fe.SpriteAnimator,exports.useSpriteAnimator=fe.useSpriteAnimator,exports.FaceLandmarker=ge.FaceLandmarker,exports.FaceLandmarkerDefaults=ge.FaceLandmarkerDefaults,exports.useFaceLandmarker=ge.useFaceLandmarker,exports.CurveModifier=ve.CurveModifier,exports.MeshDistortMaterial=Be.MeshDistortMaterial,exports.MeshWobbleMaterial=Fe.MeshWobbleMaterial,exports.MeshReflectorMaterial=Ae.MeshReflectorMaterial,exports.MeshRefractionMaterial=Le.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Re.MeshTransmissionMaterial,exports.MeshDiscardMaterial=De.MeshDiscardMaterial,exports.PointMaterial=ke.PointMaterial,exports.PointMaterialImpl=ke.PointMaterialImpl,exports.shaderMaterial=Ee.shaderMaterial,exports.SoftShadows=Ge.SoftShadows,exports.Box=we.Box,exports.Capsule=we.Capsule,exports.Circle=we.Circle,exports.Cone=we.Cone,exports.Cylinder=we.Cylinder,exports.Dodecahedron=we.Dodecahedron,exports.Extrude=we.Extrude,exports.Icosahedron=we.Icosahedron,exports.Lathe=we.Lathe,exports.Octahedron=we.Octahedron,exports.Plane=we.Plane,exports.Polyhedron=we.Polyhedron,exports.Ring=we.Ring,exports.Shape=we.Shape,exports.Sphere=we.Sphere,exports.Tetrahedron=we.Tetrahedron,exports.Torus=we.Torus,exports.TorusKnot=we.TorusKnot,exports.Tube=we.Tube,exports.Facemesh=ye.Facemesh,exports.FacemeshDatas=ye.FacemeshDatas,exports.FacemeshEye=ye.FacemeshEye,exports.FacemeshEyeDefaults=ye.FacemeshEyeDefaults,exports.RoundedBox=ze.RoundedBox,exports.ScreenQuad=Oe.ScreenQuad,exports.Center=Ie.Center,exports.Resize=He.Resize,exports.Bounds=Ve.Bounds,exports.useBounds=Ve.useBounds,exports.CameraShake=Ke.CameraShake,exports.Float=We.Float,exports.Stage=Qe.Stage,exports.Backdrop=Xe.Backdrop,exports.Shadow=Ne.Shadow,exports.Caustics=Ue.Caustics,exports.ContactShadows=_e.ContactShadows,exports.AccumulativeShadows=Je.AccumulativeShadows,exports.RandomizedLight=Je.RandomizedLight,exports.accumulativeContext=Je.accumulativeContext,exports.Reflector=Ye.Reflector,exports.SpotLight=Ze.SpotLight,exports.SpotLightShadow=Ze.SpotLightShadow,exports.Environment=$e.Environment,exports.EnvironmentCube=$e.EnvironmentCube,exports.EnvironmentMap=$e.EnvironmentMap,exports.EnvironmentPortal=$e.EnvironmentPortal,exports.Lightformer=er.Lightformer,exports.Sky=rr.Sky,exports.calcPosFromAngles=rr.calcPosFromAngles,exports.Stars=sr.Stars,exports.Cloud=or.Cloud,exports.CloudInstance=or.CloudInstance,exports.Clouds=or.Clouds,exports.Sparkles=tr.Sparkles,exports.useEnvironment=ir.useEnvironment,exports.useMatcapTexture=cr.useMatcapTexture,exports.useNormalTexture=ar.useNormalTexture,exports.Wireframe=ur.Wireframe,exports.ShadowAlpha=nr.ShadowAlpha,exports.Point=jr.Point,exports.Points=jr.Points,exports.PointsBuffer=jr.PointsBuffer,exports.PositionPoint=jr.PositionPoint,exports.Instance=pr.Instance,exports.Instances=pr.Instances,exports.Merged=pr.Merged,exports.Segment=lr.Segment,exports.SegmentObject=lr.SegmentObject,exports.Segments=lr.Segments,exports.Detailed=xr.Detailed,exports.Preload=qr.Preload,exports.BakeShadows=dr.BakeShadows,exports.meshBounds=mr.meshBounds,exports.AdaptiveDpr=Cr.AdaptiveDpr,exports.AdaptiveEvents=hr.AdaptiveEvents,exports.PerformanceMonitor=Sr.PerformanceMonitor,exports.usePerformanceMonitor=Sr.usePerformanceMonitor,exports.RenderTexture=Mr.RenderTexture,exports.RenderCubeTexture=Pr.RenderCubeTexture,exports.Mask=br.Mask,exports.useMask=br.useMask,exports.Hud=Tr.Hud,exports.Fisheye=fr.Fisheye,exports.MeshPortalMaterial=gr.MeshPortalMaterial;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Html.cjs.js"),r=require("./CycleRaycast.cjs.js"),s=require("./useCursor.cjs.js"),o=require("./Loader.cjs.js"),t=require("./ScrollControls.cjs.js"),i=require("./PresentationControls.cjs.js"),c=require("./KeyboardControls.cjs.js"),a=require("./Select.cjs.js"),u=require("./View.cjs.js"),n=require("./pivotControls/index.cjs.js"),j=require("../core/Billboard.cjs.js"),p=require("../core/ScreenSpace.cjs.js"),l=require("../core/QuadraticBezierLine.cjs.js"),x=require("../core/CubicBezierLine.cjs.js"),q=require("../core/CatmullRomLine.cjs.js"),d=require("../core/Line.cjs.js"),m=require("../core/PositionalAudio.cjs.js"),C=require("../core/Text.cjs.js"),h=require("../core/Text3D.cjs.js"),S=require("../core/Effects.cjs.js"),M=require("../core/GradientTexture.cjs.js"),P=require("../core/Image.cjs.js"),b=require("../core/Edges.cjs.js"),T=require("../core/Outlines.cjs.js"),f=require("../core/Trail.cjs.js"),g=require("../core/Sampler.cjs.js"),v=require("../core/ComputedAttribute.cjs.js"),B=require("../core/Clone.cjs.js"),F=require("../core/MarchingCubes.cjs.js"),A=require("../core/Decal.cjs.js"),L=require("../core/Svg.cjs.js"),R=require("../core/Gltf.cjs.js"),D=require("../core/AsciiRenderer.cjs.js"),k=require("../core/Splat.cjs.js"),E=require("../core/OrthographicCamera.cjs.js"),G=require("../core/PerspectiveCamera.cjs.js"),w=require("../core/CubeCamera.cjs.js"),y=require("../core/DeviceOrientationControls.cjs.js"),z=require("../core/FlyControls.cjs.js"),O=require("../core/MapControls.cjs.js"),I=require("../core/OrbitControls.cjs.js"),H=require("../core/TrackballControls.cjs.js"),V=require("../core/ArcballControls.cjs.js"),K=require("../core/TransformControls.cjs.js"),W=require("../core/PointerLockControls.cjs.js"),Q=require("../core/FirstPersonControls.cjs.js"),X=require("../core/CameraControls.cjs.js"),N=require("../core/FaceControls.cjs.js"),U=require("../core/MotionPathControls.cjs.js"),_=require("../core/GizmoHelper.cjs.js"),J=require("../core/GizmoViewcube.cjs.js"),Y=require("../core/GizmoViewport.cjs.js"),Z=require("../core/Grid.cjs.js"),$=require("../core/useCubeTexture.cjs.js"),ee=require("../core/useFBX.cjs.js"),re=require("../core/useGLTF.cjs.js"),se=require("../core/useKTX2.cjs.js"),oe=require("../core/useProgress.cjs.js"),te=require("../core/useTexture.cjs.js"),ie=require("../core/useVideoTexture.cjs.js"),ce=require("../core/useFont.cjs.js"),ae=require("../core/Stats.cjs.js"),ue=require("../core/StatsGl.cjs.js"),ne=require("../core/useDepthBuffer.cjs.js"),je=require("../core/useAspect.cjs.js"),pe=require("../core/useCamera.cjs.js"),le=require("../core/useDetectGPU.cjs.js"),xe=require("../core/useHelper.cjs.js"),qe=require("../core/useBVH.cjs.js"),de=require("../core/useContextBridge.cjs.js"),me=require("../core/useAnimations.cjs.js"),Ce=require("../core/useFBO.cjs.js"),he=require("../core/useIntersect.cjs.js"),Se=require("../core/useBoxProjectedEnv.cjs.js"),Me=require("../core/BBAnchor.cjs.js"),Pe=require("../core/useTrailTexture.cjs.js"),be=require("../core/useCubeCamera.cjs.js"),Te=require("../core/Example.cjs.js"),fe=require("../core/SpriteAnimator.cjs.js"),ge=require("../core/FaceLandmarker.cjs.js"),ve=require("../core/CurveModifier.cjs.js"),Be=require("../core/MeshDistortMaterial.cjs.js"),Fe=require("../core/MeshWobbleMaterial.cjs.js"),Ae=require("../core/MeshReflectorMaterial.cjs.js"),Le=require("../core/MeshRefractionMaterial.cjs.js"),Re=require("../core/MeshTransmissionMaterial.cjs.js"),De=require("../core/MeshDiscardMaterial.cjs.js"),ke=require("../core/PointMaterial.cjs.js"),Ee=require("../core/shaderMaterial.cjs.js"),Ge=require("../core/softShadows.cjs.js"),we=require("../core/shapes.cjs.js"),ye=require("../core/Facemesh.cjs.js"),ze=require("../core/RoundedBox.cjs.js"),Oe=require("../core/ScreenQuad.cjs.js"),Ie=require("../core/Center.cjs.js"),He=require("../core/Resize.cjs.js"),Ve=require("../core/Bounds.cjs.js"),Ke=require("../core/CameraShake.cjs.js"),We=require("../core/Float.cjs.js"),Qe=require("../core/Stage.cjs.js"),Xe=require("../core/Backdrop.cjs.js"),Ne=require("../core/Shadow.cjs.js"),Ue=require("../core/Caustics.cjs.js"),_e=require("../core/ContactShadows.cjs.js"),Je=require("../core/AccumulativeShadows.cjs.js"),Ye=require("../core/Reflector.cjs.js"),Ze=require("../core/SpotLight.cjs.js"),$e=require("../core/Environment.cjs.js"),er=require("../core/Lightformer.cjs.js"),rr=require("../core/Sky.cjs.js"),sr=require("../core/Stars.cjs.js"),or=require("../core/Cloud.cjs.js"),tr=require("../core/Sparkles.cjs.js"),ir=require("../core/useEnvironment.cjs.js"),cr=require("../core/useMatcapTexture.cjs.js"),ar=require("../core/useNormalTexture.cjs.js"),ur=require("../core/Wireframe.cjs.js"),nr=require("../core/ShadowAlpha.cjs.js"),jr=require("../core/Points.cjs.js"),pr=require("../core/Instances.cjs.js"),lr=require("../core/Segments.cjs.js"),xr=require("../core/Detailed.cjs.js"),qr=require("../core/Preload.cjs.js"),dr=require("../core/BakeShadows.cjs.js"),mr=require("../core/meshBounds.cjs.js"),Cr=require("../core/AdaptiveDpr.cjs.js"),hr=require("../core/AdaptiveEvents.cjs.js"),Sr=require("../core/PerformanceMonitor.cjs.js"),Mr=require("../core/RenderTexture.cjs.js"),Pr=require("../core/RenderCubeTexture.cjs.js"),br=require("../core/Mask.cjs.js"),Tr=require("../core/Hud.cjs.js"),fr=require("../core/Fisheye.cjs.js"),gr=require("../core/MeshPortalMaterial.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("react-dom/client"),require("three"),require("@react-three/fiber"),require("zustand"),require("react-merge-refs"),require("maath"),require("@react-spring/three"),require("@use-gesture/react"),require("zustand/middleware"),require("three-stdlib"),require("zustand/shallow"),require("tunnel-rat"),require("./pivotControls/AxisArrow.cjs.js"),require("./pivotControls/context.cjs.js"),require("./pivotControls/PlaneSlider.cjs.js"),require("./pivotControls/AxisRotator.cjs.js"),require("lodash.clamp"),require("troika-three-text"),require("suspend-react"),require("../helpers/constants.cjs.js"),require("meshline"),require("lodash.pick"),require("lodash.omit"),require("camera-controls"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("stats-gl"),require("detect-gpu"),require("three-mesh-bvh"),require("react-composer"),require("../helpers/deprecated.cjs.js"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../materials/MeshRefractionMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("uuid"),require("../materials/WireframeMaterial.cjs.js"),exports.Html=e.Html,exports.CycleRaycast=r.CycleRaycast,exports.useCursor=s.useCursor,exports.Loader=o.Loader,exports.Scroll=t.Scroll,exports.ScrollControls=t.ScrollControls,exports.useScroll=t.useScroll,exports.PresentationControls=i.PresentationControls,exports.KeyboardControls=c.KeyboardControls,exports.useKeyboardControls=c.useKeyboardControls,exports.Select=a.Select,exports.useSelect=a.useSelect,exports.View=u.View,exports.PivotControls=n.PivotControls,exports.calculateScaleFactor=n.calculateScaleFactor,exports.Billboard=j.Billboard,exports.ScreenSpace=p.ScreenSpace,exports.QuadraticBezierLine=l.QuadraticBezierLine,exports.CubicBezierLine=x.CubicBezierLine,exports.CatmullRomLine=q.CatmullRomLine,exports.Line=d.Line,exports.PositionalAudio=m.PositionalAudio,exports.Text=C.Text,exports.Text3D=h.Text3D,exports.Effects=S.Effects,exports.isWebGL2Available=S.isWebGL2Available,exports.GradientTexture=M.GradientTexture,exports.GradientType=M.GradientType,exports.Image=P.Image,exports.Edges=b.Edges,exports.Outlines=T.Outlines,exports.Trail=f.Trail,exports.useTrail=f.useTrail,exports.Sampler=g.Sampler,exports.useSurfaceSampler=g.useSurfaceSampler,exports.ComputedAttribute=v.ComputedAttribute,exports.Clone=B.Clone,exports.MarchingCube=F.MarchingCube,exports.MarchingCubes=F.MarchingCubes,exports.MarchingPlane=F.MarchingPlane,exports.Decal=A.Decal,exports.Svg=L.Svg,exports.Gltf=R.Gltf,exports.AsciiRenderer=D.AsciiRenderer,exports.Splat=k.Splat,exports.OrthographicCamera=E.OrthographicCamera,exports.PerspectiveCamera=G.PerspectiveCamera,exports.CubeCamera=w.CubeCamera,exports.DeviceOrientationControls=y.DeviceOrientationControls,exports.FlyControls=z.FlyControls,exports.MapControls=O.MapControls,exports.OrbitControls=I.OrbitControls,exports.TrackballControls=H.TrackballControls,exports.ArcballControls=V.ArcballControls,exports.TransformControls=K.TransformControls,exports.PointerLockControls=W.PointerLockControls,exports.FirstPersonControls=Q.FirstPersonControls,exports.CameraControls=X.CameraControls,exports.FaceControls=N.FaceControls,exports.useFaceControls=N.useFaceControls,exports.MotionPathControls=U.MotionPathControls,exports.useMotion=U.useMotion,exports.GizmoHelper=_.GizmoHelper,exports.useGizmoContext=_.useGizmoContext,exports.GizmoViewcube=J.GizmoViewcube,exports.GizmoViewport=Y.GizmoViewport,exports.Grid=Z.Grid,exports.useCubeTexture=$.useCubeTexture,exports.useFBX=ee.useFBX,exports.useGLTF=re.useGLTF,exports.useKTX2=se.useKTX2,exports.useProgress=oe.useProgress,exports.IsObject=te.IsObject,exports.useTexture=te.useTexture,exports.useVideoTexture=ie.useVideoTexture,exports.useFont=ce.useFont,exports.Stats=ae.Stats,exports.StatsGl=ue.StatsGl,exports.useDepthBuffer=ne.useDepthBuffer,exports.useAspect=je.useAspect,exports.useCamera=pe.useCamera,exports.useDetectGPU=le.useDetectGPU,exports.useHelper=xe.useHelper,exports.Bvh=qe.Bvh,exports.useBVH=qe.useBVH,exports.useContextBridge=de.useContextBridge,exports.useAnimations=me.useAnimations,exports.useFBO=Ce.useFBO,exports.useIntersect=he.useIntersect,exports.useBoxProjectedEnv=Se.useBoxProjectedEnv,exports.BBAnchor=Me.BBAnchor,exports.useTrailTexture=Pe.useTrailTexture,exports.useCubeCamera=be.useCubeCamera,exports.Example=Te.Example,exports.SpriteAnimator=fe.SpriteAnimator,exports.useSpriteAnimator=fe.useSpriteAnimator,exports.FaceLandmarker=ge.FaceLandmarker,exports.FaceLandmarkerDefaults=ge.FaceLandmarkerDefaults,exports.useFaceLandmarker=ge.useFaceLandmarker,exports.CurveModifier=ve.CurveModifier,exports.MeshDistortMaterial=Be.MeshDistortMaterial,exports.MeshWobbleMaterial=Fe.MeshWobbleMaterial,exports.MeshReflectorMaterial=Ae.MeshReflectorMaterial,exports.MeshRefractionMaterial=Le.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Re.MeshTransmissionMaterial,exports.MeshDiscardMaterial=De.MeshDiscardMaterial,exports.PointMaterial=ke.PointMaterial,exports.PointMaterialImpl=ke.PointMaterialImpl,exports.shaderMaterial=Ee.shaderMaterial,exports.SoftShadows=Ge.SoftShadows,exports.Box=we.Box,exports.Capsule=we.Capsule,exports.Circle=we.Circle,exports.Cone=we.Cone,exports.Cylinder=we.Cylinder,exports.Dodecahedron=we.Dodecahedron,exports.Extrude=we.Extrude,exports.Icosahedron=we.Icosahedron,exports.Lathe=we.Lathe,exports.Octahedron=we.Octahedron,exports.Plane=we.Plane,exports.Polyhedron=we.Polyhedron,exports.Ring=we.Ring,exports.Shape=we.Shape,exports.Sphere=we.Sphere,exports.Tetrahedron=we.Tetrahedron,exports.Torus=we.Torus,exports.TorusKnot=we.TorusKnot,exports.Tube=we.Tube,exports.Facemesh=ye.Facemesh,exports.FacemeshDatas=ye.FacemeshDatas,exports.FacemeshEye=ye.FacemeshEye,exports.FacemeshEyeDefaults=ye.FacemeshEyeDefaults,exports.RoundedBox=ze.RoundedBox,exports.ScreenQuad=Oe.ScreenQuad,exports.Center=Ie.Center,exports.Resize=He.Resize,exports.Bounds=Ve.Bounds,exports.useBounds=Ve.useBounds,exports.CameraShake=Ke.CameraShake,exports.Float=We.Float,exports.Stage=Qe.Stage,exports.Backdrop=Xe.Backdrop,exports.Shadow=Ne.Shadow,exports.Caustics=Ue.Caustics,exports.ContactShadows=_e.ContactShadows,exports.AccumulativeShadows=Je.AccumulativeShadows,exports.RandomizedLight=Je.RandomizedLight,exports.accumulativeContext=Je.accumulativeContext,exports.Reflector=Ye.Reflector,exports.SpotLight=Ze.SpotLight,exports.SpotLightShadow=Ze.SpotLightShadow,exports.Environment=$e.Environment,exports.EnvironmentCube=$e.EnvironmentCube,exports.EnvironmentMap=$e.EnvironmentMap,exports.EnvironmentPortal=$e.EnvironmentPortal,exports.Lightformer=er.Lightformer,exports.Sky=rr.Sky,exports.calcPosFromAngles=rr.calcPosFromAngles,exports.Stars=sr.Stars,exports.Cloud=or.Cloud,exports.CloudInstance=or.CloudInstance,exports.Clouds=or.Clouds,exports.Sparkles=tr.Sparkles,exports.useEnvironment=ir.useEnvironment,exports.useMatcapTexture=cr.useMatcapTexture,exports.useNormalTexture=ar.useNormalTexture,exports.Wireframe=ur.Wireframe,exports.ShadowAlpha=nr.ShadowAlpha,exports.Point=jr.Point,exports.Points=jr.Points,exports.PointsBuffer=jr.PointsBuffer,exports.PositionPoint=jr.PositionPoint,exports.Instance=pr.Instance,exports.Instances=pr.Instances,exports.Merged=pr.Merged,exports.Segment=lr.Segment,exports.SegmentObject=lr.SegmentObject,exports.Segments=lr.Segments,exports.Detailed=xr.Detailed,exports.Preload=qr.Preload,exports.BakeShadows=dr.BakeShadows,exports.meshBounds=mr.meshBounds,exports.AdaptiveDpr=Cr.AdaptiveDpr,exports.AdaptiveEvents=hr.AdaptiveEvents,exports.PerformanceMonitor=Sr.PerformanceMonitor,exports.usePerformanceMonitor=Sr.usePerformanceMonitor,exports.RenderTexture=Mr.RenderTexture,exports.RenderCubeTexture=Pr.RenderCubeTexture,exports.Mask=br.Mask,exports.useMask=br.useMask,exports.Hud=Tr.Hud,exports.Fisheye=fr.Fisheye,exports.MeshPortalMaterial=gr.MeshPortalMaterial;
package/web/index.js CHANGED
@@ -145,6 +145,7 @@ import '@use-gesture/react';
145
145
  import 'zustand/middleware';
146
146
  import 'three-stdlib';
147
147
  import 'zustand/shallow';
148
+ import 'tunnel-rat';
148
149
  import './pivotControls/AxisArrow.js';
149
150
  import './pivotControls/context.js';
150
151
  import './pivotControls/PlaneSlider.js';