@react-three/drei 9.59.0 → 9.61.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/README.md CHANGED
@@ -208,6 +208,7 @@ The `native` route of the library **does not** export `Html` or `Loader`. The de
208
208
  <li><a href="#stars">Stars</a></li>
209
209
  <li><a href="#sparkles">Sparkles</a></li>
210
210
  <li><a href="#cloud">Cloud</a></li>
211
+ <li><a href="#useenvironment">useEnvironment</a></li>
211
212
  <li><a href="#usematcaptexture">useMatcapTexture</a></li>
212
213
  <li><a href="#usenormaltexture">useNormalTexture</a></li>
213
214
  </ul>
@@ -3682,6 +3683,25 @@ Particle based cloud.
3682
3683
  />
3683
3684
  ```
3684
3685
 
3686
+ #### useEnvironment
3687
+
3688
+ A convenience hook to load an environment map. The props are the same as on the `<Environment />` component.
3689
+
3690
+ ```tsx
3691
+ export type EnvironmentLoaderProps = {
3692
+ files?: string | string[]
3693
+ path?: string
3694
+ preset?: PresetsType
3695
+ extensions?: (loader: Loader) => void
3696
+ encoding?: TextureEncoding
3697
+ ```
3698
+
3699
+ ```jsx
3700
+ const presetTexture = useEnvironment({ preset: 'city' })
3701
+ const rgbeTexture = useEnvironment({ files: 'model.hdr' })
3702
+ const cubeTexture = useEnvironment({ files: ['px', 'nx', 'py', 'ny', 'pz', 'nz'].map((n) => `${n}.png`) })
3703
+ ```
3704
+
3685
3705
  #### useMatcapTexture
3686
3706
 
3687
3707
  [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/staging-usematcaptexture--use-matcap-texture-st) ![](https://img.shields.io/badge/-suspense-brightgreen)
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),n=require("react"),r=require("@react-three/fiber"),t=require("three"),u=require("three-stdlib"),o=require("../helpers/environment-assets.cjs.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,t.get?t:{enumerable:!0,get:function(){return e[r]}})}})),n.default=e,Object.freeze(n)}var c=s(e),i=a(n);function l(e,n,r,t,u=0){const o=(e=>{return(n=e).current&&n.current.isScene?e.current:e;var n})(n||r),s=o.background,a=o.environment,c=o.backgroundBlurriness||0;return"only"!==e&&(o.environment=t),e&&(o.background=t),e&&void 0!==o.backgroundBlurriness&&(o.backgroundBlurriness=u),()=>{"only"!==e&&(o.environment=a),e&&(o.background=s),e&&void 0!==o.backgroundBlurriness&&(o.backgroundBlurriness=c)}}function d({scene:e,background:n=!1,blur:t,map:u}){const o=r.useThree((e=>e.scene));return i.useLayoutEffect((()=>{if(u)return l(n,e,o,u,t)}),[o,e,u,n,t]),null}function p({files:e=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],path:n="",preset:s,encoding:a,extensions:c}){if(s){if(!(s in o.presetsObj))throw new Error("Preset must be one of: "+Object.keys(o.presetsObj).join(", "));e=o.presetsObj[s],n="https://market-assets.fra1.cdn.digitaloceanspaces.com/market-assets/hdris/"}const i=Array.isArray(e),l=i?t.CubeTextureLoader:u.RGBELoader,d=r.useLoader(l,i?[e]:e,(e=>{e.setPath(n),c&&c(e)})),p=i?d[0]:d;return p.mapping=i?t.CubeReflectionMapping:t.EquirectangularReflectionMapping,p.encoding=(null!=a?a:i)?t.sRGBEncoding:t.LinearEncoding,p}function f({background:e=!1,scene:n,blur:t,...u}){const o=p(u),s=r.useThree((e=>e.scene));return i.useLayoutEffect((()=>l(e,n,s,o,t)),[o,e,n,s,t]),null}function g({children:e,near:n=1,far:u=1e3,resolution:o=256,frames:s=1,map:a,background:c=!1,blur:p,scene:g,files:m,path:b,preset:E,extensions:v}){const h=r.useThree((e=>e.gl)),x=r.useThree((e=>e.scene)),j=i.useRef(null),[k]=i.useState((()=>new t.Scene)),y=i.useMemo((()=>{const e=new t.WebGLCubeRenderTarget(o);return e.texture.type=t.HalfFloatType,e}),[o]);i.useLayoutEffect((()=>(1===s&&j.current.update(h,k),l(c,g,x,y.texture,p))),[e,k,y.texture,g,x,c,s,h]);let O=1;return r.useFrame((()=>{(s===1/0||O<s)&&(j.current.update(h,k),O++)})),i.createElement(i.Fragment,null,r.createPortal(i.createElement(i.Fragment,null,e,i.createElement("cubeCamera",{ref:j,args:[n,u,y]}),m||E?i.createElement(f,{background:!0,files:m,preset:E,path:b,extensions:v}):a?i.createElement(d,{background:!0,map:a,extensions:v}):null),k))}function m(e){var n,t,o,s;const a=p(e),l=e.map||a;i.useMemo((()=>r.extend({GroundProjectedEnvImpl:u.GroundProjectedEnv})),[]);const f=i.useMemo((()=>[l]),[l]),g=null==(n=e.ground)?void 0:n.height,m=null==(t=e.ground)?void 0:t.radius,b=null!==(o=null==(s=e.ground)?void 0:s.scale)&&void 0!==o?o:1e3;return i.createElement(i.Fragment,null,i.createElement(d,c.default({},e,{map:l})),i.createElement("groundProjectedEnvImpl",{args:f,scale:b,height:g,radius:m}))}exports.Environment=function(e){return e.ground?i.createElement(m,e):e.map?i.createElement(d,e):e.children?i.createElement(g,e):i.createElement(f,e)},exports.EnvironmentCube=f,exports.EnvironmentMap=d,exports.EnvironmentPortal=g,exports.useEnvironment=p;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),n=require("@react-three/fiber"),t=require("three"),u=require("three-stdlib"),o=require("./useEnvironment.cjs.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var t=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,t.get?t:{enumerable:!0,get:function(){return e[n]}})}})),r.default=e,Object.freeze(r)}require("../helpers/environment-assets.cjs.js");var s=c(e),l=a(r);function i(e,r,n,t,u=0){const o=(e=>{return(r=e).current&&r.current.isScene?e.current:e;var r})(r||n),c=o.background,a=o.environment,s=o.backgroundBlurriness||0;return"only"!==e&&(o.environment=t),e&&(o.background=t),e&&void 0!==o.backgroundBlurriness&&(o.backgroundBlurriness=u),()=>{"only"!==e&&(o.environment=a),e&&(o.background=c),e&&void 0!==o.backgroundBlurriness&&(o.backgroundBlurriness=s)}}function d({scene:e,background:r=!1,blur:t,map:u}){const o=n.useThree((e=>e.scene));return l.useLayoutEffect((()=>{if(u)return i(r,e,o,u,t)}),[o,e,u,r,t]),null}function m({background:e=!1,scene:r,blur:t,...u}){const c=o.useEnvironment(u),a=n.useThree((e=>e.scene));return l.useLayoutEffect((()=>i(e,r,a,c,t)),[c,e,r,a,t]),null}function f({children:e,near:r=1,far:u=1e3,resolution:o=256,frames:c=1,map:a,background:s=!1,blur:f,scene:b,files:g,path:p,preset:v,extensions:E}){const h=n.useThree((e=>e.gl)),j=n.useThree((e=>e.scene)),k=l.useRef(null),[x]=l.useState((()=>new t.Scene)),y=l.useMemo((()=>{const e=new t.WebGLCubeRenderTarget(o);return e.texture.type=t.HalfFloatType,e}),[o]);l.useLayoutEffect((()=>(1===c&&k.current.update(h,x),i(s,b,j,y.texture,f))),[e,x,y.texture,b,j,s,c,h]);let P=1;return n.useFrame((()=>{(c===1/0||P<c)&&(k.current.update(h,x),P++)})),l.createElement(l.Fragment,null,n.createPortal(l.createElement(l.Fragment,null,e,l.createElement("cubeCamera",{ref:k,args:[r,u,y]}),g||v?l.createElement(m,{background:!0,files:g,preset:v,path:p,extensions:E}):a?l.createElement(d,{background:!0,map:a,extensions:E}):null),x))}function b(e){var r,t,c,a;const i=o.useEnvironment(e),m=e.map||i;l.useMemo((()=>n.extend({GroundProjectedEnvImpl:u.GroundProjectedEnv})),[]);const f=l.useMemo((()=>[m]),[m]),b=null==(r=e.ground)?void 0:r.height,g=null==(t=e.ground)?void 0:t.radius,p=null!==(c=null==(a=e.ground)?void 0:a.scale)&&void 0!==c?c:1e3;return l.createElement(l.Fragment,null,l.createElement(d,s.default({},e,{map:m})),l.createElement("groundProjectedEnvImpl",{args:f,scale:p,height:b,radius:g}))}exports.Environment=function(e){return e.ground?l.createElement(b,e):e.map?l.createElement(d,e):e.children?l.createElement(f,e):l.createElement(m,e)},exports.EnvironmentCube=m,exports.EnvironmentMap=d,exports.EnvironmentPortal=f;
@@ -1,8 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import { Object3DNode } from '@react-three/fiber';
3
- import { Texture, Scene, Loader, CubeTexture, TextureEncoding } from 'three';
3
+ import { Scene } from 'three';
4
4
  import { GroundProjectedEnv as GroundProjectedEnvImpl } from 'three-stdlib';
5
5
  import { PresetsType } from '../helpers/environment-assets';
6
+ import { EnvironmentLoaderProps } from './useEnvironment';
6
7
  export declare type EnvironmentProps = {
7
8
  children?: React.ReactNode;
8
9
  frames?: number;
@@ -12,20 +13,15 @@ export declare type EnvironmentProps = {
12
13
  background?: boolean | 'only';
13
14
  blur?: number;
14
15
  map?: THREE.Texture;
15
- files?: string | string[];
16
- path?: string;
17
16
  preset?: PresetsType;
18
17
  scene?: Scene | React.MutableRefObject<THREE.Scene>;
19
- extensions?: (loader: Loader) => void;
20
18
  ground?: boolean | {
21
19
  radius?: number;
22
20
  height?: number;
23
21
  scale?: number;
24
22
  };
25
- encoding?: TextureEncoding;
26
- };
23
+ } & EnvironmentLoaderProps;
27
24
  export declare function EnvironmentMap({ scene, background, blur, map }: EnvironmentProps): null;
28
- export declare function useEnvironment({ files, path, preset, encoding, extensions, }: Partial<EnvironmentProps>): Texture | CubeTexture;
29
25
  export declare function EnvironmentCube({ background, scene, blur, ...rest }: EnvironmentProps): null;
30
26
  export declare function EnvironmentPortal({ children, near, far, resolution, frames, map, background, blur, scene, files, path, preset, extensions, }: EnvironmentProps): JSX.Element;
31
27
  declare global {
@@ -1,11 +1,9 @@
1
1
  import _extends from '@babel/runtime/helpers/esm/extends';
2
2
  import * as React from 'react';
3
- import { useThree, useLoader, useFrame, createPortal, extend } from '@react-three/fiber';
4
- import { CubeReflectionMapping, EquirectangularReflectionMapping, sRGBEncoding, LinearEncoding, Scene, WebGLCubeRenderTarget, HalfFloatType, CubeTextureLoader } from 'three';
5
- import { RGBELoader, GroundProjectedEnv } from 'three-stdlib';
6
- import { presetsObj } from '../helpers/environment-assets.js';
7
-
8
- const CUBEMAP_ROOT = 'https://market-assets.fra1.cdn.digitaloceanspaces.com/market-assets/hdris/';
3
+ import { useThree, useFrame, createPortal, extend } from '@react-three/fiber';
4
+ import { Scene, WebGLCubeRenderTarget, HalfFloatType } from 'three';
5
+ import { GroundProjectedEnv } from 'three-stdlib';
6
+ import { useEnvironment } from './useEnvironment.js';
9
7
 
10
8
  const isRef = obj => obj.current && obj.current.isScene;
11
9
 
@@ -41,32 +39,6 @@ function EnvironmentMap({
41
39
  }, [defaultScene, scene, map, background, blur]);
42
40
  return null;
43
41
  }
44
- function useEnvironment({
45
- files = ['/px.png', '/nx.png', '/py.png', '/ny.png', '/pz.png', '/nz.png'],
46
- path = '',
47
- preset = undefined,
48
- encoding = undefined,
49
- extensions
50
- }) {
51
- if (preset) {
52
- if (!(preset in presetsObj)) throw new Error('Preset must be one of: ' + Object.keys(presetsObj).join(', '));
53
- files = presetsObj[preset];
54
- path = CUBEMAP_ROOT;
55
- }
56
-
57
- const isCubeMap = Array.isArray(files);
58
- const loader = isCubeMap ? CubeTextureLoader : RGBELoader;
59
- const loaderResult = useLoader( // @ts-expect-error
60
- loader, isCubeMap ? [files] : files, loader => {
61
- loader.setPath(path);
62
- if (extensions) extensions(loader);
63
- });
64
- const texture = isCubeMap ? // @ts-ignore
65
- loaderResult[0] : loaderResult;
66
- texture.mapping = isCubeMap ? CubeReflectionMapping : EquirectangularReflectionMapping;
67
- texture.encoding = (encoding !== null && encoding !== void 0 ? encoding : isCubeMap) ? sRGBEncoding : LinearEncoding;
68
- return texture;
69
- }
70
42
  function EnvironmentCube({
71
43
  background = false,
72
44
  scene,
@@ -157,4 +129,4 @@ function Environment(props) {
157
129
  return props.ground ? /*#__PURE__*/React.createElement(EnvironmentGround, props) : props.map ? /*#__PURE__*/React.createElement(EnvironmentMap, props) : props.children ? /*#__PURE__*/React.createElement(EnvironmentPortal, props) : /*#__PURE__*/React.createElement(EnvironmentCube, props);
158
130
  }
159
131
 
160
- export { Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal, useEnvironment };
132
+ export { Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal };
package/core/Stage.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),i=require("./Environment.cjs.js"),n=require("./ContactShadows.cjs.js"),r=require("./Center.cjs.js"),a=require("./AccumulativeShadows.cjs.js"),l=require("./Bounds.cjs.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var n=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,n.get?n:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}require("@react-three/fiber"),require("three"),require("three-stdlib"),require("../helpers/environment-assets.cjs.js"),require("./shaderMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js");var o=s(e),c=u(t);const d={rembrandt:{main:[1,2,1],fill:[-2,-.5,-2]},portrait:{main:[-1,2,.5],fill:[-1,.5,-1.5]},upfront:{main:[0,2,1],fill:[-1,.5,-1.5]},soft:{main:[-2,4,4],fill:[-1,.5,-1.5]}};function m({radius:e,adjustCamera:t}){const i=l.useBounds();return c.useEffect((()=>{t&&i.refresh().clip().fit()}),[e,t]),null}exports.Stage=function({children:e,center:t,adjustCamera:s=!0,intensity:u=.5,shadows:f="contact",environment:p="city",preset:h="rembrandt",...v}){var j,b,g,y,E,q,w,C;const S="string"==typeof h?d[h]:h,[{radius:O,height:z},B]=c.useState({radius:0,width:0,height:0,depth:0}),M=null!==(j=null==f?void 0:f.bias)&&void 0!==j?j:-1e-4,L=null!==(b=null==f?void 0:f.normalBias)&&void 0!==b?b:0,_=null!==(g=null==f?void 0:f.size)&&void 0!==g?g:1024,x=null!==(y=null==f?void 0:f.offset)&&void 0!==y?y:0,P="contact"===f||"contact"===(null==f?void 0:f.type),A="accumulative"===f||"accumulative"===(null==f?void 0:f.type),D={..."object"==typeof f?f:{}},k=p?"string"==typeof p?{preset:p}:p:null;return c.createElement(c.Fragment,null,c.createElement("ambientLight",{intensity:u/3}),c.createElement("spotLight",{penumbra:1,position:[S.main[0]*O,S.main[1]*O,S.main[2]*O],intensity:2*u,castShadow:!!f,"shadow-bias":M,"shadow-normalBias":L,"shadow-mapSize":_}),c.createElement("pointLight",{position:[S.fill[0]*O,S.fill[1]*O,S.fill[2]*O],intensity:u}),c.createElement(l.Bounds,o.default({fit:!!s,clip:!!s,margin:Number(s),observe:!0},v),c.createElement(m,{radius:O,adjustCamera:s}),c.createElement(r.Center,o.default({},t,{position:[0,x/2,0],onCentered:e=>{const{width:i,height:n,depth:r,boundingSphere:a}=e;B({radius:a.radius,width:i,height:n,depth:r}),null!=t&&t.onCentered&&t.onCentered(e)}}),e)),c.createElement("group",{position:[0,-z/2-x/2,0]},P&&c.createElement(n.ContactShadows,o.default({scale:4*O,far:O,blur:2},D)),A&&c.createElement(a.AccumulativeShadows,o.default({temporal:!0,frames:100,alphaTest:.9,toneMapped:!0,scale:4*O},D),c.createElement(a.RandomizedLight,{amount:null!==(E=D.amount)&&void 0!==E?E:8,radius:null!==(q=D.radius)&&void 0!==q?q:O,ambient:null!==(w=D.ambient)&&void 0!==w?w:.5,intensity:null!==(C=D.intensity)&&void 0!==C?C:1,position:[S.main[0]*O,S.main[1]*O,S.main[2]*O],size:4*O,bias:-M,mapSize:_}))),p&&c.createElement(i.Environment,k))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),i=require("./Environment.cjs.js"),n=require("./ContactShadows.cjs.js"),r=require("./Center.cjs.js"),a=require("./AccumulativeShadows.cjs.js"),s=require("./Bounds.cjs.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var n=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,n.get?n:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}require("@react-three/fiber"),require("three"),require("three-stdlib"),require("./useEnvironment.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("./shaderMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js");var o=l(e),c=u(t);const d={rembrandt:{main:[1,2,1],fill:[-2,-.5,-2]},portrait:{main:[-1,2,.5],fill:[-1,.5,-1.5]},upfront:{main:[0,2,1],fill:[-1,.5,-1.5]},soft:{main:[-2,4,4],fill:[-1,.5,-1.5]}};function m({radius:e,adjustCamera:t}){const i=s.useBounds();return c.useEffect((()=>{t&&i.refresh().clip().fit()}),[e,t]),null}exports.Stage=function({children:e,center:t,adjustCamera:l=!0,intensity:u=.5,shadows:f="contact",environment:p="city",preset:h="rembrandt",...v}){var j,b,g,y,E,q,w,C;const S="string"==typeof h?d[h]:h,[{radius:O,height:z},B]=c.useState({radius:0,width:0,height:0,depth:0}),M=null!==(j=null==f?void 0:f.bias)&&void 0!==j?j:-1e-4,L=null!==(b=null==f?void 0:f.normalBias)&&void 0!==b?b:0,_=null!==(g=null==f?void 0:f.size)&&void 0!==g?g:1024,x=null!==(y=null==f?void 0:f.offset)&&void 0!==y?y:0,P="contact"===f||"contact"===(null==f?void 0:f.type),A="accumulative"===f||"accumulative"===(null==f?void 0:f.type),D={..."object"==typeof f?f:{}},k=p?"string"==typeof p?{preset:p}:p:null;return c.createElement(c.Fragment,null,c.createElement("ambientLight",{intensity:u/3}),c.createElement("spotLight",{penumbra:1,position:[S.main[0]*O,S.main[1]*O,S.main[2]*O],intensity:2*u,castShadow:!!f,"shadow-bias":M,"shadow-normalBias":L,"shadow-mapSize":_}),c.createElement("pointLight",{position:[S.fill[0]*O,S.fill[1]*O,S.fill[2]*O],intensity:u}),c.createElement(s.Bounds,o.default({fit:!!l,clip:!!l,margin:Number(l),observe:!0},v),c.createElement(m,{radius:O,adjustCamera:l}),c.createElement(r.Center,o.default({},t,{position:[0,x/2,0],onCentered:e=>{const{width:i,height:n,depth:r,boundingSphere:a}=e;B({radius:a.radius,width:i,height:n,depth:r}),null!=t&&t.onCentered&&t.onCentered(e)}}),e)),c.createElement("group",{position:[0,-z/2-x/2,0]},P&&c.createElement(n.ContactShadows,o.default({scale:4*O,far:O,blur:2},D)),A&&c.createElement(a.AccumulativeShadows,o.default({temporal:!0,frames:100,alphaTest:.9,toneMapped:!0,scale:4*O},D),c.createElement(a.RandomizedLight,{amount:null!==(E=D.amount)&&void 0!==E?E:8,radius:null!==(q=D.radius)&&void 0!==q?q:O,ambient:null!==(w=D.ambient)&&void 0!==w?w:.5,intensity:null!==(C=D.intensity)&&void 0!==C?C:1,position:[S.main[0]*O,S.main[1]*O,S.main[2]*O],size:4*O,bias:-M,mapSize:_}))),p&&c.createElement(i.Environment,k))};
package/core/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./ScreenSpace.cjs.js"),s=require("./QuadraticBezierLine.cjs.js"),t=require("./CubicBezierLine.cjs.js"),o=require("./CatmullRomLine.cjs.js"),i=require("./Line.cjs.js"),a=require("./PositionalAudio.cjs.js"),u=require("./Text.cjs.js"),c=require("./Text3D.cjs.js"),n=require("./Effects.cjs.js"),j=require("./GradientTexture.cjs.js"),p=require("./Image.cjs.js"),x=require("./Edges.cjs.js"),l=require("./Trail.cjs.js"),d=require("./Sampler.cjs.js"),q=require("./ComputedAttribute.cjs.js"),m=require("./Clone.cjs.js"),h=require("./MarchingCubes.cjs.js"),C=require("./Decal.cjs.js"),M=require("./Svg.cjs.js"),S=require("./Gltf.cjs.js"),T=require("./AsciiRenderer.cjs.js"),B=require("./OrthographicCamera.cjs.js"),P=require("./PerspectiveCamera.cjs.js"),b=require("./CubeCamera.cjs.js"),f=require("./DeviceOrientationControls.cjs.js"),g=require("./FlyControls.cjs.js"),v=require("./MapControls.cjs.js"),A=require("./OrbitControls.cjs.js"),L=require("./TrackballControls.cjs.js"),D=require("./ArcballControls.cjs.js"),k=require("./TransformControls.cjs.js"),G=require("./PointerLockControls.cjs.js"),R=require("./FirstPersonControls.cjs.js"),E=require("./CameraControls.cjs.js"),w=require("./GizmoHelper.cjs.js"),z=require("./GizmoViewcube.cjs.js"),F=require("./GizmoViewport.cjs.js"),O=require("./Grid.cjs.js"),I=require("./useCubeTexture.cjs.js"),H=require("./useFBX.cjs.js"),V=require("./useGLTF.cjs.js"),y=require("./useKTX2.cjs.js"),Q=require("./useProgress.cjs.js"),X=require("./useTexture.cjs.js"),K=require("./useVideoTexture.cjs.js"),W=require("./Stats.cjs.js"),N=require("./useDepthBuffer.cjs.js"),U=require("./useAspect.cjs.js"),_=require("./useCamera.cjs.js"),J=require("./useDetectGPU.cjs.js"),Y=require("./useHelper.cjs.js"),Z=require("./useBVH.cjs.js"),$=require("./useContextBridge.cjs.js"),ee=require("./useAnimations.cjs.js"),re=require("./useFBO.cjs.js"),se=require("./useIntersect.cjs.js"),te=require("./useBoxProjectedEnv.cjs.js"),oe=require("./BBAnchor.cjs.js"),ie=require("./useTrailTexture.cjs.js"),ae=require("./CurveModifier.cjs.js"),ue=require("./MeshDistortMaterial.cjs.js"),ce=require("./MeshWobbleMaterial.cjs.js"),ne=require("./MeshReflectorMaterial.cjs.js"),je=require("./MeshRefractionMaterial.cjs.js"),pe=require("./MeshTransmissionMaterial.cjs.js"),xe=require("./MeshDiscardMaterial.cjs.js"),le=require("./PointMaterial.cjs.js"),de=require("./shaderMaterial.cjs.js"),qe=require("./softShadows.cjs.js"),me=require("./shapes.cjs.js"),he=require("./RoundedBox.cjs.js"),Ce=require("./ScreenQuad.cjs.js"),Me=require("./Center.cjs.js"),Se=require("./Bounds.cjs.js"),Te=require("./CameraShake.cjs.js"),Be=require("./Float.cjs.js"),Pe=require("./Stage.cjs.js"),be=require("./Backdrop.cjs.js"),fe=require("./Shadow.cjs.js"),ge=require("./Caustics.cjs.js"),ve=require("./ContactShadows.cjs.js"),Ae=require("./AccumulativeShadows.cjs.js"),Le=require("./Reflector.cjs.js"),De=require("./SpotLight.cjs.js"),ke=require("./Environment.cjs.js"),Ge=require("./Lightformer.cjs.js"),Re=require("./Sky.cjs.js"),Ee=require("./Stars.cjs.js"),we=require("./Cloud.cjs.js"),ze=require("./Sparkles.cjs.js"),Fe=require("./useMatcapTexture.cjs.js"),Oe=require("./useNormalTexture.cjs.js"),Ie=require("./Points.cjs.js"),He=require("./Instances.cjs.js"),Ve=require("./Segments.cjs.js"),ye=require("./Detailed.cjs.js"),Qe=require("./Preload.cjs.js"),Xe=require("./BakeShadows.cjs.js"),Ke=require("./meshBounds.cjs.js"),We=require("./AdaptiveDpr.cjs.js"),Ne=require("./AdaptiveEvents.cjs.js"),Ue=require("./PerformanceMonitor.cjs.js"),_e=require("./RenderTexture.cjs.js"),Je=require("./Mask.cjs.js"),Ye=require("./Hud.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("three"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("meshline"),require("lodash.pick"),require("lodash.omit"),require("camera-controls"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),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("react-composer"),exports.Billboard=e.Billboard,exports.ScreenSpace=r.ScreenSpace,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=t.CubicBezierLine,exports.CatmullRomLine=o.CatmullRomLine,exports.Line=i.Line,exports.PositionalAudio=a.PositionalAudio,exports.Text=u.Text,exports.Text3D=c.Text3D,exports.Effects=n.Effects,exports.isWebGL2Available=n.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.Image=p.Image,exports.Edges=x.Edges,exports.Trail=l.Trail,exports.useTrail=l.useTrail,exports.Sampler=d.Sampler,exports.useSurfaceSampler=d.useSurfaceSampler,exports.ComputedAttribute=q.ComputedAttribute,exports.Clone=m.Clone,exports.MarchingCube=h.MarchingCube,exports.MarchingCubes=h.MarchingCubes,exports.MarchingPlane=h.MarchingPlane,exports.Decal=C.Decal,exports.Svg=M.Svg,exports.Gltf=S.Gltf,exports.AsciiRenderer=T.AsciiRenderer,exports.OrthographicCamera=B.OrthographicCamera,exports.PerspectiveCamera=P.PerspectiveCamera,exports.CubeCamera=b.CubeCamera,exports.DeviceOrientationControls=f.DeviceOrientationControls,exports.FlyControls=g.FlyControls,exports.MapControls=v.MapControls,exports.OrbitControls=A.OrbitControls,exports.TrackballControls=L.TrackballControls,exports.ArcballControls=D.ArcballControls,exports.TransformControls=k.TransformControls,exports.PointerLockControls=G.PointerLockControls,exports.FirstPersonControls=R.FirstPersonControls,exports.CameraControls=E.CameraControls,exports.GizmoHelper=w.GizmoHelper,exports.useGizmoContext=w.useGizmoContext,exports.GizmoViewcube=z.GizmoViewcube,exports.GizmoViewport=F.GizmoViewport,exports.Grid=O.Grid,exports.useCubeTexture=I.useCubeTexture,exports.useFBX=H.useFBX,exports.useGLTF=V.useGLTF,exports.useKTX2=y.useKTX2,exports.useProgress=Q.useProgress,exports.IsObject=X.IsObject,exports.useTexture=X.useTexture,exports.useVideoTexture=K.useVideoTexture,exports.Stats=W.Stats,exports.useDepthBuffer=N.useDepthBuffer,exports.useAspect=U.useAspect,exports.useCamera=_.useCamera,exports.useDetectGPU=J.useDetectGPU,exports.useHelper=Y.useHelper,exports.Bvh=Z.Bvh,exports.useBVH=Z.useBVH,exports.useContextBridge=$.useContextBridge,exports.useAnimations=ee.useAnimations,exports.useFBO=re.useFBO,exports.useIntersect=se.useIntersect,exports.useBoxProjectedEnv=te.useBoxProjectedEnv,exports.BBAnchor=oe.BBAnchor,exports.useTrailTexture=ie.useTrailTexture,exports.CurveModifier=ae.CurveModifier,exports.MeshDistortMaterial=ue.MeshDistortMaterial,exports.MeshWobbleMaterial=ce.MeshWobbleMaterial,exports.MeshReflectorMaterial=ne.MeshReflectorMaterial,exports.MeshRefractionMaterial=je.MeshRefractionMaterial,exports.MeshTransmissionMaterial=pe.MeshTransmissionMaterial,exports.MeshDiscardMaterial=xe.MeshDiscardMaterial,exports.PointMaterial=le.PointMaterial,exports.PointMaterialImpl=le.PointMaterialImpl,exports.shaderMaterial=de.shaderMaterial,exports.SoftShadows=qe.SoftShadows,exports.Box=me.Box,exports.Capsule=me.Capsule,exports.Circle=me.Circle,exports.Cone=me.Cone,exports.Cylinder=me.Cylinder,exports.Dodecahedron=me.Dodecahedron,exports.Extrude=me.Extrude,exports.Icosahedron=me.Icosahedron,exports.Lathe=me.Lathe,exports.Octahedron=me.Octahedron,exports.Plane=me.Plane,exports.Polyhedron=me.Polyhedron,exports.Ring=me.Ring,exports.Shape=me.Shape,exports.Sphere=me.Sphere,exports.Tetrahedron=me.Tetrahedron,exports.Torus=me.Torus,exports.TorusKnot=me.TorusKnot,exports.Tube=me.Tube,exports.RoundedBox=he.RoundedBox,exports.ScreenQuad=Ce.ScreenQuad,exports.Center=Me.Center,exports.Bounds=Se.Bounds,exports.useBounds=Se.useBounds,exports.CameraShake=Te.CameraShake,exports.Float=Be.Float,exports.Stage=Pe.Stage,exports.Backdrop=be.Backdrop,exports.Shadow=fe.Shadow,exports.Caustics=ge.Caustics,exports.ContactShadows=ve.ContactShadows,exports.AccumulativeShadows=Ae.AccumulativeShadows,exports.RandomizedLight=Ae.RandomizedLight,exports.accumulativeContext=Ae.accumulativeContext,exports.Reflector=Le.Reflector,exports.SpotLight=De.SpotLight,exports.SpotLightShadow=De.SpotLightShadow,exports.Environment=ke.Environment,exports.EnvironmentCube=ke.EnvironmentCube,exports.EnvironmentMap=ke.EnvironmentMap,exports.EnvironmentPortal=ke.EnvironmentPortal,exports.useEnvironment=ke.useEnvironment,exports.Lightformer=Ge.Lightformer,exports.Sky=Re.Sky,exports.calcPosFromAngles=Re.calcPosFromAngles,exports.Stars=Ee.Stars,exports.Cloud=we.Cloud,exports.Sparkles=ze.Sparkles,exports.useMatcapTexture=Fe.useMatcapTexture,exports.useNormalTexture=Oe.useNormalTexture,exports.Point=Ie.Point,exports.Points=Ie.Points,exports.PointsBuffer=Ie.PointsBuffer,exports.PositionPoint=Ie.PositionPoint,exports.Instance=He.Instance,exports.Instances=He.Instances,exports.Merged=He.Merged,exports.Segment=Ve.Segment,exports.SegmentObject=Ve.SegmentObject,exports.Segments=Ve.Segments,exports.Detailed=ye.Detailed,exports.Preload=Qe.Preload,exports.BakeShadows=Xe.BakeShadows,exports.meshBounds=Ke.meshBounds,exports.AdaptiveDpr=We.AdaptiveDpr,exports.AdaptiveEvents=Ne.AdaptiveEvents,exports.PerformanceMonitor=Ue.PerformanceMonitor,exports.usePerformanceMonitor=Ue.usePerformanceMonitor,exports.RenderTexture=_e.RenderTexture,exports.Mask=Je.Mask,exports.useMask=Je.useMask,exports.Hud=Ye.Hud;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./ScreenSpace.cjs.js"),s=require("./QuadraticBezierLine.cjs.js"),t=require("./CubicBezierLine.cjs.js"),o=require("./CatmullRomLine.cjs.js"),i=require("./Line.cjs.js"),a=require("./PositionalAudio.cjs.js"),u=require("./Text.cjs.js"),c=require("./Text3D.cjs.js"),n=require("./Effects.cjs.js"),j=require("./GradientTexture.cjs.js"),p=require("./Image.cjs.js"),x=require("./Edges.cjs.js"),l=require("./Trail.cjs.js"),d=require("./Sampler.cjs.js"),q=require("./ComputedAttribute.cjs.js"),m=require("./Clone.cjs.js"),h=require("./MarchingCubes.cjs.js"),C=require("./Decal.cjs.js"),M=require("./Svg.cjs.js"),S=require("./Gltf.cjs.js"),T=require("./AsciiRenderer.cjs.js"),B=require("./OrthographicCamera.cjs.js"),P=require("./PerspectiveCamera.cjs.js"),b=require("./CubeCamera.cjs.js"),f=require("./DeviceOrientationControls.cjs.js"),g=require("./FlyControls.cjs.js"),v=require("./MapControls.cjs.js"),A=require("./OrbitControls.cjs.js"),L=require("./TrackballControls.cjs.js"),D=require("./ArcballControls.cjs.js"),k=require("./TransformControls.cjs.js"),G=require("./PointerLockControls.cjs.js"),E=require("./FirstPersonControls.cjs.js"),R=require("./CameraControls.cjs.js"),w=require("./GizmoHelper.cjs.js"),z=require("./GizmoViewcube.cjs.js"),F=require("./GizmoViewport.cjs.js"),O=require("./Grid.cjs.js"),I=require("./useCubeTexture.cjs.js"),H=require("./useFBX.cjs.js"),V=require("./useGLTF.cjs.js"),y=require("./useKTX2.cjs.js"),Q=require("./useProgress.cjs.js"),X=require("./useTexture.cjs.js"),K=require("./useVideoTexture.cjs.js"),W=require("./Stats.cjs.js"),N=require("./useDepthBuffer.cjs.js"),U=require("./useAspect.cjs.js"),_=require("./useCamera.cjs.js"),J=require("./useDetectGPU.cjs.js"),Y=require("./useHelper.cjs.js"),Z=require("./useBVH.cjs.js"),$=require("./useContextBridge.cjs.js"),ee=require("./useAnimations.cjs.js"),re=require("./useFBO.cjs.js"),se=require("./useIntersect.cjs.js"),te=require("./useBoxProjectedEnv.cjs.js"),oe=require("./BBAnchor.cjs.js"),ie=require("./useTrailTexture.cjs.js"),ae=require("./CurveModifier.cjs.js"),ue=require("./MeshDistortMaterial.cjs.js"),ce=require("./MeshWobbleMaterial.cjs.js"),ne=require("./MeshReflectorMaterial.cjs.js"),je=require("./MeshRefractionMaterial.cjs.js"),pe=require("./MeshTransmissionMaterial.cjs.js"),xe=require("./MeshDiscardMaterial.cjs.js"),le=require("./PointMaterial.cjs.js"),de=require("./shaderMaterial.cjs.js"),qe=require("./softShadows.cjs.js"),me=require("./shapes.cjs.js"),he=require("./RoundedBox.cjs.js"),Ce=require("./ScreenQuad.cjs.js"),Me=require("./Center.cjs.js"),Se=require("./Bounds.cjs.js"),Te=require("./CameraShake.cjs.js"),Be=require("./Float.cjs.js"),Pe=require("./Stage.cjs.js"),be=require("./Backdrop.cjs.js"),fe=require("./Shadow.cjs.js"),ge=require("./Caustics.cjs.js"),ve=require("./ContactShadows.cjs.js"),Ae=require("./AccumulativeShadows.cjs.js"),Le=require("./Reflector.cjs.js"),De=require("./SpotLight.cjs.js"),ke=require("./Environment.cjs.js"),Ge=require("./Lightformer.cjs.js"),Ee=require("./Sky.cjs.js"),Re=require("./Stars.cjs.js"),we=require("./Cloud.cjs.js"),ze=require("./Sparkles.cjs.js"),Fe=require("./useEnvironment.cjs.js"),Oe=require("./useMatcapTexture.cjs.js"),Ie=require("./useNormalTexture.cjs.js"),He=require("./Points.cjs.js"),Ve=require("./Instances.cjs.js"),ye=require("./Segments.cjs.js"),Qe=require("./Detailed.cjs.js"),Xe=require("./Preload.cjs.js"),Ke=require("./BakeShadows.cjs.js"),We=require("./meshBounds.cjs.js"),Ne=require("./AdaptiveDpr.cjs.js"),Ue=require("./AdaptiveEvents.cjs.js"),_e=require("./PerformanceMonitor.cjs.js"),Je=require("./RenderTexture.cjs.js"),Ye=require("./Mask.cjs.js"),Ze=require("./Hud.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("three"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("meshline"),require("lodash.pick"),require("lodash.omit"),require("camera-controls"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),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("react-composer"),exports.Billboard=e.Billboard,exports.ScreenSpace=r.ScreenSpace,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=t.CubicBezierLine,exports.CatmullRomLine=o.CatmullRomLine,exports.Line=i.Line,exports.PositionalAudio=a.PositionalAudio,exports.Text=u.Text,exports.Text3D=c.Text3D,exports.Effects=n.Effects,exports.isWebGL2Available=n.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.Image=p.Image,exports.Edges=x.Edges,exports.Trail=l.Trail,exports.useTrail=l.useTrail,exports.Sampler=d.Sampler,exports.useSurfaceSampler=d.useSurfaceSampler,exports.ComputedAttribute=q.ComputedAttribute,exports.Clone=m.Clone,exports.MarchingCube=h.MarchingCube,exports.MarchingCubes=h.MarchingCubes,exports.MarchingPlane=h.MarchingPlane,exports.Decal=C.Decal,exports.Svg=M.Svg,exports.Gltf=S.Gltf,exports.AsciiRenderer=T.AsciiRenderer,exports.OrthographicCamera=B.OrthographicCamera,exports.PerspectiveCamera=P.PerspectiveCamera,exports.CubeCamera=b.CubeCamera,exports.DeviceOrientationControls=f.DeviceOrientationControls,exports.FlyControls=g.FlyControls,exports.MapControls=v.MapControls,exports.OrbitControls=A.OrbitControls,exports.TrackballControls=L.TrackballControls,exports.ArcballControls=D.ArcballControls,exports.TransformControls=k.TransformControls,exports.PointerLockControls=G.PointerLockControls,exports.FirstPersonControls=E.FirstPersonControls,exports.CameraControls=R.CameraControls,exports.GizmoHelper=w.GizmoHelper,exports.useGizmoContext=w.useGizmoContext,exports.GizmoViewcube=z.GizmoViewcube,exports.GizmoViewport=F.GizmoViewport,exports.Grid=O.Grid,exports.useCubeTexture=I.useCubeTexture,exports.useFBX=H.useFBX,exports.useGLTF=V.useGLTF,exports.useKTX2=y.useKTX2,exports.useProgress=Q.useProgress,exports.IsObject=X.IsObject,exports.useTexture=X.useTexture,exports.useVideoTexture=K.useVideoTexture,exports.Stats=W.Stats,exports.useDepthBuffer=N.useDepthBuffer,exports.useAspect=U.useAspect,exports.useCamera=_.useCamera,exports.useDetectGPU=J.useDetectGPU,exports.useHelper=Y.useHelper,exports.Bvh=Z.Bvh,exports.useBVH=Z.useBVH,exports.useContextBridge=$.useContextBridge,exports.useAnimations=ee.useAnimations,exports.useFBO=re.useFBO,exports.useIntersect=se.useIntersect,exports.useBoxProjectedEnv=te.useBoxProjectedEnv,exports.BBAnchor=oe.BBAnchor,exports.useTrailTexture=ie.useTrailTexture,exports.CurveModifier=ae.CurveModifier,exports.MeshDistortMaterial=ue.MeshDistortMaterial,exports.MeshWobbleMaterial=ce.MeshWobbleMaterial,exports.MeshReflectorMaterial=ne.MeshReflectorMaterial,exports.MeshRefractionMaterial=je.MeshRefractionMaterial,exports.MeshTransmissionMaterial=pe.MeshTransmissionMaterial,exports.MeshDiscardMaterial=xe.MeshDiscardMaterial,exports.PointMaterial=le.PointMaterial,exports.PointMaterialImpl=le.PointMaterialImpl,exports.shaderMaterial=de.shaderMaterial,exports.SoftShadows=qe.SoftShadows,exports.Box=me.Box,exports.Capsule=me.Capsule,exports.Circle=me.Circle,exports.Cone=me.Cone,exports.Cylinder=me.Cylinder,exports.Dodecahedron=me.Dodecahedron,exports.Extrude=me.Extrude,exports.Icosahedron=me.Icosahedron,exports.Lathe=me.Lathe,exports.Octahedron=me.Octahedron,exports.Plane=me.Plane,exports.Polyhedron=me.Polyhedron,exports.Ring=me.Ring,exports.Shape=me.Shape,exports.Sphere=me.Sphere,exports.Tetrahedron=me.Tetrahedron,exports.Torus=me.Torus,exports.TorusKnot=me.TorusKnot,exports.Tube=me.Tube,exports.RoundedBox=he.RoundedBox,exports.ScreenQuad=Ce.ScreenQuad,exports.Center=Me.Center,exports.Bounds=Se.Bounds,exports.useBounds=Se.useBounds,exports.CameraShake=Te.CameraShake,exports.Float=Be.Float,exports.Stage=Pe.Stage,exports.Backdrop=be.Backdrop,exports.Shadow=fe.Shadow,exports.Caustics=ge.Caustics,exports.ContactShadows=ve.ContactShadows,exports.AccumulativeShadows=Ae.AccumulativeShadows,exports.RandomizedLight=Ae.RandomizedLight,exports.accumulativeContext=Ae.accumulativeContext,exports.Reflector=Le.Reflector,exports.SpotLight=De.SpotLight,exports.SpotLightShadow=De.SpotLightShadow,exports.Environment=ke.Environment,exports.EnvironmentCube=ke.EnvironmentCube,exports.EnvironmentMap=ke.EnvironmentMap,exports.EnvironmentPortal=ke.EnvironmentPortal,exports.Lightformer=Ge.Lightformer,exports.Sky=Ee.Sky,exports.calcPosFromAngles=Ee.calcPosFromAngles,exports.Stars=Re.Stars,exports.Cloud=we.Cloud,exports.Sparkles=ze.Sparkles,exports.useEnvironment=Fe.useEnvironment,exports.useMatcapTexture=Oe.useMatcapTexture,exports.useNormalTexture=Ie.useNormalTexture,exports.Point=He.Point,exports.Points=He.Points,exports.PointsBuffer=He.PointsBuffer,exports.PositionPoint=He.PositionPoint,exports.Instance=Ve.Instance,exports.Instances=Ve.Instances,exports.Merged=Ve.Merged,exports.Segment=ye.Segment,exports.SegmentObject=ye.SegmentObject,exports.Segments=ye.Segments,exports.Detailed=Qe.Detailed,exports.Preload=Xe.Preload,exports.BakeShadows=Ke.BakeShadows,exports.meshBounds=We.meshBounds,exports.AdaptiveDpr=Ne.AdaptiveDpr,exports.AdaptiveEvents=Ue.AdaptiveEvents,exports.PerformanceMonitor=_e.PerformanceMonitor,exports.usePerformanceMonitor=_e.usePerformanceMonitor,exports.RenderTexture=Je.RenderTexture,exports.Mask=Ye.Mask,exports.useMask=Ye.useMask,exports.Hud=Ze.Hud;
package/core/index.d.ts CHANGED
@@ -89,6 +89,7 @@ export * from './Sky';
89
89
  export * from './Stars';
90
90
  export * from './Cloud';
91
91
  export * from './Sparkles';
92
+ export * from './useEnvironment';
92
93
  export * from './useMatcapTexture';
93
94
  export * from './useNormalTexture';
94
95
  export * from './Points';
package/core/index.js CHANGED
@@ -83,12 +83,13 @@ export { ContactShadows } from './ContactShadows.js';
83
83
  export { AccumulativeShadows, RandomizedLight, accumulativeContext } from './AccumulativeShadows.js';
84
84
  export { Reflector } from './Reflector.js';
85
85
  export { SpotLight, SpotLightShadow } from './SpotLight.js';
86
- export { Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal, useEnvironment } from './Environment.js';
86
+ export { Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal } from './Environment.js';
87
87
  export { Lightformer } from './Lightformer.js';
88
88
  export { Sky, calcPosFromAngles } from './Sky.js';
89
89
  export { Stars } from './Stars.js';
90
90
  export { Cloud } from './Cloud.js';
91
91
  export { Sparkles } from './Sparkles.js';
92
+ export { useEnvironment } from './useEnvironment.js';
92
93
  export { useMatcapTexture } from './useMatcapTexture.js';
93
94
  export { useNormalTexture } from './useNormalTexture.js';
94
95
  export { Point, Points, PointsBuffer, PositionPoint } from './Points.js';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@react-three/fiber"),r=require("three"),n=require("three-stdlib"),s=require("../helpers/environment-assets.cjs.js");exports.useEnvironment=function({files:t=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],path:i="",preset:p,encoding:a,extensions:o}){if(p){if(!(p in s.presetsObj))throw new Error("Preset must be one of: "+Object.keys(s.presetsObj).join(", "));t=s.presetsObj[p],i="https://market-assets.fra1.cdn.digitaloceanspaces.com/market-assets/hdris/"}const c=Array.isArray(t),u=c?r.CubeTextureLoader:n.RGBELoader,g=e.useLoader(u,c?[t]:t,(e=>{e.setPath(i),o&&o(e)})),d=c?g[0]:g;return d.mapping=c?r.CubeReflectionMapping:r.EquirectangularReflectionMapping,d.encoding=(null!=a?a:c)?r.sRGBEncoding:r.LinearEncoding,d};
@@ -0,0 +1,10 @@
1
+ import { Texture, Loader, CubeTexture, TextureEncoding } from 'three';
2
+ import { PresetsType } from '../helpers/environment-assets';
3
+ export declare type EnvironmentLoaderProps = {
4
+ files?: string | string[];
5
+ path?: string;
6
+ preset?: PresetsType;
7
+ extensions?: (loader: Loader) => void;
8
+ encoding?: TextureEncoding;
9
+ };
10
+ export declare function useEnvironment({ files, path, preset, encoding, extensions, }: Partial<EnvironmentLoaderProps>): Texture | CubeTexture;
@@ -0,0 +1,34 @@
1
+ import { useLoader } from '@react-three/fiber';
2
+ import { CubeReflectionMapping, EquirectangularReflectionMapping, sRGBEncoding, LinearEncoding, CubeTextureLoader } from 'three';
3
+ import { RGBELoader } from 'three-stdlib';
4
+ import { presetsObj } from '../helpers/environment-assets.js';
5
+
6
+ const CUBEMAP_ROOT = 'https://market-assets.fra1.cdn.digitaloceanspaces.com/market-assets/hdris/';
7
+ function useEnvironment({
8
+ files = ['/px.png', '/nx.png', '/py.png', '/ny.png', '/pz.png', '/nz.png'],
9
+ path = '',
10
+ preset = undefined,
11
+ encoding = undefined,
12
+ extensions
13
+ }) {
14
+ if (preset) {
15
+ if (!(preset in presetsObj)) throw new Error('Preset must be one of: ' + Object.keys(presetsObj).join(', '));
16
+ files = presetsObj[preset];
17
+ path = CUBEMAP_ROOT;
18
+ }
19
+
20
+ const isCubeMap = Array.isArray(files);
21
+ const loader = isCubeMap ? CubeTextureLoader : RGBELoader;
22
+ const loaderResult = useLoader( // @ts-expect-error
23
+ loader, isCubeMap ? [files] : files, loader => {
24
+ loader.setPath(path);
25
+ if (extensions) extensions(loader);
26
+ });
27
+ const texture = isCubeMap ? // @ts-ignore
28
+ loaderResult[0] : loaderResult;
29
+ texture.mapping = isCubeMap ? CubeReflectionMapping : EquirectangularReflectionMapping;
30
+ texture.encoding = (encoding !== null && encoding !== void 0 ? encoding : isCubeMap) ? sRGBEncoding : LinearEncoding;
31
+ return texture;
32
+ }
33
+
34
+ export { useEnvironment };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("react"),t=require("@react-three/fiber"),n=require("suspend-react");function u(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 s=u(e);exports.useVideoTexture=function(e,u){const{unsuspend:o,start:i,crossOrigin:c,muted:a,loop:d,...l}={unsuspend:"loadedmetadata",crossOrigin:"Anonymous",muted:!0,loop:!0,start:!0,playsInline:!0,...u},p=t.useThree((e=>e.gl)),f=n.suspend((()=>new Promise(((r,t)=>{const n=Object.assign(document.createElement("video"),{src:e,crossOrigin:c,loop:d,muted:a,...l}),u=new s.VideoTexture(n);u.encoding=p.outputEncoding,n.addEventListener(o,(()=>r(u)))}))),[e]);return r.useEffect((()=>{i&&f.image.play()}),[f,i]),f};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("react"),r=require("@react-three/fiber"),n=require("suspend-react");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 s=o(e);exports.useVideoTexture=function(e,o){const{unsuspend:u,start:i,crossOrigin:c,muted:a,loop:d,...f}={unsuspend:"loadedmetadata",crossOrigin:"Anonymous",muted:!0,loop:!0,start:!0,playsInline:!0,...o},l=r.useThree((e=>e.gl)),p=n.suspend((()=>new Promise(((t,r)=>{const n=Object.assign(document.createElement("video"),{src:"string"==typeof e&&e||void 0,srcObject:e instanceof MediaStream&&e||void 0,crossOrigin:c,loop:d,muted:a,...f}),o=new s.VideoTexture(n);o.encoding=l.outputEncoding,n.addEventListener(u,(()=>t(o)))}))),[e]);return t.useEffect((()=>{i&&p.image.play()}),[p,i]),p};
@@ -3,5 +3,5 @@ interface VideoTextureProps extends HTMLVideoElement {
3
3
  unsuspend?: 'canplay' | 'canplaythrough' | 'loadstart' | 'loadedmetadata';
4
4
  start?: boolean;
5
5
  }
6
- export declare function useVideoTexture(src: string, props: Partial<VideoTextureProps>): THREE.VideoTexture;
6
+ export declare function useVideoTexture(src: string | MediaStream, props?: Partial<VideoTextureProps>): THREE.VideoTexture;
7
7
  export {};
@@ -23,7 +23,8 @@ function useVideoTexture(src, props) {
23
23
  const gl = useThree(state => state.gl);
24
24
  const texture = suspend(() => new Promise((res, rej) => {
25
25
  const video = Object.assign(document.createElement('video'), {
26
- src,
26
+ src: typeof src === 'string' && src || undefined,
27
+ srcObject: src instanceof MediaStream && src || undefined,
27
28
  crossOrigin,
28
29
  loop,
29
30
  muted,