@react-three/drei 9.106.0 → 9.106.2
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 +38 -41
- package/core/Caustics.cjs.js +1 -1
- package/core/Caustics.js +2 -2
- package/core/Cloud.cjs.js +1 -1
- package/core/Cloud.js +1 -1
- package/core/CubeCamera.cjs.js +1 -1
- package/core/CubeCamera.d.ts +15 -3
- package/core/CubeCamera.js +47 -4
- package/core/CubeTexture.cjs.js +1 -0
- package/core/CubeTexture.d.ts +15 -0
- package/core/{useCubeTexture.js → CubeTexture.js} +12 -1
- package/core/DetectGPU.cjs.js +1 -0
- package/core/DetectGPU.d.ts +8 -0
- package/core/DetectGPU.js +14 -0
- package/core/Example.d.ts +1 -1
- package/core/Example.js +3 -0
- package/core/Fbo.cjs.js +1 -0
- package/core/{useFBO.d.ts → Fbo.d.ts} +6 -0
- package/core/{useFBO.js → Fbo.js} +10 -1
- package/core/Fbx.cjs.js +1 -0
- package/core/Fbx.d.ts +11 -0
- package/core/Fbx.js +23 -0
- package/core/GizmoHelper.cjs.js +1 -1
- package/core/GizmoViewcube.cjs.js +1 -1
- package/core/GizmoViewport.cjs.js +1 -1
- package/core/Gltf.cjs.js +1 -1
- package/core/Gltf.d.ts +17 -5
- package/core/Gltf.js +37 -3
- package/core/Helper.cjs.js +1 -1
- package/core/Helper.d.ts +3 -1
- package/core/Helper.js +35 -24
- package/core/Image.cjs.js +1 -1
- package/core/Image.js +1 -1
- package/core/Ktx2.cjs.js +1 -0
- package/core/{useKTX2.d.ts → Ktx2.d.ts} +6 -0
- package/core/{useKTX2.js → Ktx2.js} +15 -3
- package/core/MatcapTexture.cjs.js +1 -0
- package/core/MatcapTexture.d.ts +9 -0
- package/core/{useMatcapTexture.js → MatcapTexture.js} +14 -2
- package/core/MeshPortalMaterial.cjs.js +1 -1
- package/core/MeshPortalMaterial.js +1 -1
- package/core/MeshTransmissionMaterial.cjs.js +1 -1
- package/core/MeshTransmissionMaterial.js +1 -1
- package/core/NormalTexture.cjs.js +1 -0
- package/core/NormalTexture.d.ts +14 -0
- package/core/{useNormalTexture.js → NormalTexture.js} +14 -2
- package/core/OrthographicCamera.cjs.js +1 -1
- package/core/OrthographicCamera.js +1 -1
- package/core/PerspectiveCamera.cjs.js +1 -1
- package/core/PerspectiveCamera.js +1 -1
- package/core/Progress.cjs.js +1 -0
- package/core/{useProgress.d.ts → Progress.d.ts} +4 -0
- package/core/{useProgress.js → Progress.js} +11 -1
- package/core/RenderTexture.cjs.js +1 -1
- package/core/RenderTexture.js +1 -1
- package/core/Texture.cjs.js +1 -0
- package/core/{useTexture.d.ts → Texture.d.ts} +10 -4
- package/core/{useTexture.js → Texture.js} +18 -5
- package/core/TrailTexture.cjs.js +1 -0
- package/core/{useTrailTexture.d.ts → TrailTexture.d.ts} +4 -0
- package/core/{useTrailTexture.js → TrailTexture.js} +14 -3
- package/core/VideoTexture.cjs.js +1 -0
- package/core/VideoTexture.d.ts +18 -0
- package/core/{useVideoTexture.js → VideoTexture.js} +25 -23
- package/core/index.cjs.js +1 -1
- package/core/index.d.ts +12 -15
- package/core/index.js +16 -19
- package/core/useDepthBuffer.cjs.js +1 -1
- package/core/useDepthBuffer.js +1 -1
- package/core/useSpriteLoader.cjs.js +1 -1
- package/core/useSpriteLoader.d.ts +1 -0
- package/core/useSpriteLoader.js +82 -9
- package/index.cjs.js +1 -1
- package/index.js +16 -19
- package/native/index.cjs.js +1 -1
- package/native/index.js +16 -19
- package/package.json +3 -3
- package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
- package/web/FaceControls.cjs.js +1 -1
- package/web/FaceControls.d.ts +1 -1
- package/web/FaceControls.js +12 -1
- package/web/Loader.cjs.js +1 -1
- package/web/Loader.js +1 -1
- package/web/index.cjs.js +1 -1
- package/web/index.js +16 -19
- package/core/useCubeCamera.cjs.js +0 -1
- package/core/useCubeCamera.d.ts +0 -14
- package/core/useCubeCamera.js +0 -49
- package/core/useCubeTexture.cjs.js +0 -1
- package/core/useCubeTexture.d.ts +0 -9
- package/core/useDetectGPU.cjs.js +0 -1
- package/core/useDetectGPU.d.ts +0 -2
- package/core/useDetectGPU.js +0 -6
- package/core/useFBO.cjs.js +0 -1
- package/core/useFBX.cjs.js +0 -1
- package/core/useFBX.d.ts +0 -6
- package/core/useFBX.js +0 -10
- package/core/useGLTF.cjs.js +0 -1
- package/core/useGLTF.d.ts +0 -8
- package/core/useGLTF.js +0 -32
- package/core/useHelper.cjs.js +0 -1
- package/core/useHelper.d.ts +0 -11
- package/core/useHelper.js +0 -30
- package/core/useKTX2.cjs.js +0 -1
- package/core/useMatcapTexture.cjs.js +0 -1
- package/core/useMatcapTexture.d.ts +0 -2
- package/core/useNormalTexture.cjs.js +0 -1
- package/core/useNormalTexture.d.ts +0 -8
- package/core/useProgress.cjs.js +0 -1
- package/core/useTexture.cjs.js +0 -1
- package/core/useTrailTexture.cjs.js +0 -1
- package/core/useVideoTexture.cjs.js +0 -1
- package/core/useVideoTexture.d.ts +0 -12
- /package/core/{useBVH.cjs.js → Bvh.cjs.js} +0 -0
- /package/core/{useBVH.d.ts → Bvh.d.ts} +0 -0
- /package/core/{useBVH.js → Bvh.js} +0 -0
package/core/useFBX.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { FBXLoader } from 'three-stdlib';
|
|
2
|
-
import { useLoader } from '@react-three/fiber';
|
|
3
|
-
|
|
4
|
-
function useFBX(path) {
|
|
5
|
-
return useLoader(FBXLoader, path);
|
|
6
|
-
}
|
|
7
|
-
useFBX.preload = path => useLoader.preload(FBXLoader, path);
|
|
8
|
-
useFBX.clear = input => useLoader.clear(FBXLoader, input);
|
|
9
|
-
|
|
10
|
-
export { useFBX };
|
package/core/useGLTF.cjs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three-stdlib"),r=require("@react-three/fiber");let o=null,t="https://www.gstatic.com/draco/versioned/decoders/1.5.5/";function d(r,d,s){return a=>{s&&s(a),r&&(o||(o=new e.DRACOLoader),o.setDecoderPath("string"==typeof r?r:t),a.setDRACOLoader(o)),d&&a.setMeshoptDecoder("function"==typeof e.MeshoptDecoder?e.MeshoptDecoder():e.MeshoptDecoder)}}function s(o,t=!0,s=!0,a){return r.useLoader(e.GLTFLoader,o,d(t,s,a))}s.preload=(o,t=!0,s=!0,a)=>r.useLoader.preload(e.GLTFLoader,o,d(t,s,a)),s.clear=o=>r.useLoader.clear(e.GLTFLoader,o),s.setDecoderPath=e=>{t=e},exports.useGLTF=s;
|
package/core/useGLTF.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type GLTF, GLTFLoader } from 'three-stdlib';
|
|
2
|
-
import { type ObjectMap } from '@react-three/fiber';
|
|
3
|
-
export declare function useGLTF<T extends string | string[]>(path: T, useDraco?: boolean | string, useMeshOpt?: boolean, extendLoader?: (loader: GLTFLoader) => void): T extends any[] ? (GLTF & ObjectMap)[] : GLTF & ObjectMap;
|
|
4
|
-
export declare namespace useGLTF {
|
|
5
|
-
var preload: (path: string | string[], useDraco?: string | boolean, useMeshOpt?: boolean, extendLoader?: ((loader: GLTFLoader) => void) | undefined) => undefined;
|
|
6
|
-
var clear: (input: string | string[]) => void;
|
|
7
|
-
var setDecoderPath: (path: string) => void;
|
|
8
|
-
}
|
package/core/useGLTF.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { GLTFLoader, DRACOLoader, MeshoptDecoder } from 'three-stdlib';
|
|
2
|
-
import { useLoader } from '@react-three/fiber';
|
|
3
|
-
|
|
4
|
-
let dracoLoader = null;
|
|
5
|
-
let decoderPath = 'https://www.gstatic.com/draco/versioned/decoders/1.5.5/';
|
|
6
|
-
function extensions(useDraco, useMeshopt, extendLoader) {
|
|
7
|
-
return loader => {
|
|
8
|
-
if (extendLoader) {
|
|
9
|
-
extendLoader(loader);
|
|
10
|
-
}
|
|
11
|
-
if (useDraco) {
|
|
12
|
-
if (!dracoLoader) {
|
|
13
|
-
dracoLoader = new DRACOLoader();
|
|
14
|
-
}
|
|
15
|
-
dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : decoderPath);
|
|
16
|
-
loader.setDRACOLoader(dracoLoader);
|
|
17
|
-
}
|
|
18
|
-
if (useMeshopt) {
|
|
19
|
-
loader.setMeshoptDecoder(typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder);
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
function useGLTF(path, useDraco = true, useMeshOpt = true, extendLoader) {
|
|
24
|
-
return useLoader(GLTFLoader, path, extensions(useDraco, useMeshOpt, extendLoader));
|
|
25
|
-
}
|
|
26
|
-
useGLTF.preload = (path, useDraco = true, useMeshOpt = true, extendLoader) => useLoader.preload(GLTFLoader, path, extensions(useDraco, useMeshOpt, extendLoader));
|
|
27
|
-
useGLTF.clear = input => useLoader.clear(GLTFLoader, input);
|
|
28
|
-
useGLTF.setDecoderPath = path => {
|
|
29
|
-
decoderPath = path;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export { useGLTF };
|
package/core/useHelper.cjs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber");function t(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var u=t(e);exports.useHelper=function(e,t,...n){const c=u.useRef(),a=r.useThree((e=>e.scene));return u.useLayoutEffect((()=>{let r;if(e&&null!=e&&e.current&&t&&(c.current=r=new t(e.current,...n)),r)return r.traverse((e=>e.raycast=()=>null)),a.add(r),()=>{c.current=void 0,a.remove(r),null==r.dispose||r.dispose()}}),[a,t,e,...n]),r.useFrame((()=>{var e;null==(e=c.current)||null==e.update||e.update()})),c};
|
package/core/useHelper.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { Object3D } from 'three';
|
|
3
|
-
import { Falsey } from 'utility-types';
|
|
4
|
-
type Helper = Object3D & {
|
|
5
|
-
update: () => void;
|
|
6
|
-
dispose: () => void;
|
|
7
|
-
};
|
|
8
|
-
type Constructor = new (...args: any[]) => any;
|
|
9
|
-
type Rest<T> = T extends [infer _, ...infer R] ? R : never;
|
|
10
|
-
export declare function useHelper<T extends Constructor>(object3D: React.MutableRefObject<Object3D> | Falsey, helperConstructor: T, ...args: Rest<ConstructorParameters<T>>): React.MutableRefObject<Helper | undefined>;
|
|
11
|
-
export {};
|
package/core/useHelper.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { useThree, useFrame } from '@react-three/fiber';
|
|
3
|
-
|
|
4
|
-
function useHelper(object3D, helperConstructor, ...args) {
|
|
5
|
-
const helper = React.useRef();
|
|
6
|
-
const scene = useThree(state => state.scene);
|
|
7
|
-
React.useLayoutEffect(() => {
|
|
8
|
-
let currentHelper = undefined;
|
|
9
|
-
if (object3D && object3D != null && object3D.current && helperConstructor) {
|
|
10
|
-
helper.current = currentHelper = new helperConstructor(object3D.current, ...args);
|
|
11
|
-
}
|
|
12
|
-
if (currentHelper) {
|
|
13
|
-
// Prevent the helpers from blocking rays
|
|
14
|
-
currentHelper.traverse(child => child.raycast = () => null);
|
|
15
|
-
scene.add(currentHelper);
|
|
16
|
-
return () => {
|
|
17
|
-
helper.current = undefined;
|
|
18
|
-
scene.remove(currentHelper);
|
|
19
|
-
currentHelper.dispose == null || currentHelper.dispose();
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
}, [scene, helperConstructor, object3D, ...args]);
|
|
23
|
-
useFrame(() => {
|
|
24
|
-
var _helper$current;
|
|
25
|
-
return void ((_helper$current = helper.current) == null || _helper$current.update == null ? void 0 : _helper$current.update());
|
|
26
|
-
});
|
|
27
|
-
return helper;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export { useHelper };
|
package/core/useKTX2.cjs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@react-three/fiber"),r=require("react"),s=require("three-stdlib"),t=require("./useTexture.cjs.js");require("three");const a="https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master";function c(c,u=`${a}/basis/`){const o=e.useThree((e=>e.gl)),i=e.useLoader(s.KTX2Loader,t.IsObject(c)?Object.values(c):c,(e=>{e.detectSupport(o),e.setTranscoderPath(u)}));if(r.useEffect((()=>{(Array.isArray(i)?i:[i]).forEach(o.initTexture)}),[o,i]),t.IsObject(c)){const e=Object.keys(c),r={};return e.forEach((s=>Object.assign(r,{[s]:i[e.indexOf(s)]}))),r}return i}c.preload=(r,t=`${a}/basis/`)=>e.useLoader.preload(s.KTX2Loader,r,(e=>{e.setTranscoderPath(t)})),c.clear=r=>e.useLoader.clear(s.KTX2Loader,r),exports.useKTX2=c;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("./useTexture.cjs.js"),r=require("suspend-react");function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("three"),require("@react-three/fiber");var u=s(e);exports.useMatcapTexture=function(e=0,s=1024,n){const c=r.suspend((()=>fetch("https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/matcaps.json").then((e=>e.json()))),["matcapList"]),a=c[0],i=u.useMemo((()=>Object.keys(c).length),[]),p=`${u.useMemo((()=>"string"==typeof e?e:"number"==typeof e?c[e]:null),[e])||a}${function(e){switch(e){case 64:return"-64px";case 128:return"-128px";case 256:return"-256px";case 512:return"-512px";default:return""}}(s)}.png`,o=`https://rawcdn.githack.com/emmelleppi/matcaps/9b36ccaaf0a24881a39062d05566c9e92be4aa0d/${s}/${p}`;return[t.useTexture(o,n),o,i]};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("./useTexture.cjs.js"),t=require("three"),s=require("suspend-react");function n(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,s.get?s:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("@react-three/fiber");var a=n(e);exports.useNormalTexture=function(e=0,n={},o){const{repeat:u=[1,1],anisotropy:c=1,offset:i=[0,0]}=n,f=s.suspend((()=>fetch("https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/normals/normals.json").then((e=>e.json()))),["normalsList"]),p=a.useMemo((()=>Object.keys(f).length),[]),d=f[0],l=`https://rawcdn.githack.com/pmndrs/drei-assets/7a3104997e1576f83472829815b00880d88b32fb/normals/${f[e]||d}`,b=r.useTexture(l,o);return a.useLayoutEffect((()=>{b&&(b.wrapS=b.wrapT=t.RepeatWrapping,b.repeat=new t.Vector2(u[0],u[1]),b.offset=new t.Vector2(i[0],i[1]),b.anisotropy=c)}),[b,c,u,i]),[b,l,p]};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Texture } from 'three';
|
|
2
|
-
type Settings = {
|
|
3
|
-
repeat?: number[];
|
|
4
|
-
anisotropy?: number;
|
|
5
|
-
offset?: number[];
|
|
6
|
-
};
|
|
7
|
-
export declare function useNormalTexture(id?: number, settings?: Settings, onLoad?: (texture: Texture | Texture[]) => void): [Texture, string, number];
|
|
8
|
-
export {};
|
package/core/useProgress.cjs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("zustand");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}let a=0;const o=t(r).default((r=>(e.DefaultLoadingManager.onStart=(e,t,o)=>{r({active:!0,item:e,loaded:t,total:o,progress:(t-a)/(o-a)*100})},e.DefaultLoadingManager.onLoad=()=>{r({active:!1})},e.DefaultLoadingManager.onError=e=>r((r=>({errors:[...r.errors,e]}))),e.DefaultLoadingManager.onProgress=(e,t,o)=>{t===o&&(a=o),r({active:!0,item:e,loaded:t,total:o,progress:(t-a)/(o-a)*100||100})},{errors:[],active:!1,progress:0,item:"",loaded:0,total:0})));exports.useProgress=o;
|
package/core/useTexture.cjs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("@react-three/fiber"),t=require("react");const u=e=>e===Object(e)&&!Array.isArray(e)&&"function"!=typeof e;function o(o,s){const a=r.useThree((e=>e.gl)),c=r.useLoader(e.TextureLoader,u(o)?Object.values(o):o);t.useLayoutEffect((()=>{null==s||s(c)}),[s]),t.useEffect((()=>{if("initTexture"in a){let r=[];Array.isArray(c)?r=c:c instanceof e.Texture?r=[c]:u(c)&&(r=Object.values(c)),r.forEach((r=>{r instanceof e.Texture&&a.initTexture(r)}))}}),[a,c]);return t.useMemo((()=>{if(u(o)){const e={};let r=0;for(const t in o)e[t]=c[r++];return e}return c}),[o,c])}o.preload=t=>r.useLoader.preload(e.TextureLoader,t),o.clear=t=>r.useLoader.clear(e.TextureLoader,t),exports.IsObject=u,exports.useTexture=o;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=require("@react-three/fiber"),i=require("three");const s=t=>Math.sqrt(1-Math.pow(t-1,2));class a{constructor({size:t=256,maxAge:e=750,radius:i=.3,intensity:a=.2,interpolate:h=0,smoothing:r=0,minForce:c=.3,blend:n="screen",ease:o=s}={}){this.size=t,this.maxAge=e,this.radius=i,this.intensity=a,this.ease=o,this.interpolate=h,this.smoothing=r,this.minForce=c,this.blend=n,this.trail=[],this.force=0,this.initTexture()}initTexture(){this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=this.size;const t=this.canvas.getContext("2d");if(null===t)throw new Error("2D not available");this.ctx=t,this.ctx.fillStyle="black",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height),this.texture=new i.Texture(this.canvas),this.canvas.id="touchTexture",this.canvas.style.width=this.canvas.style.height=`${this.canvas.width}px`}update(t){this.clear(),this.trail.forEach(((e,i)=>{e.age+=1e3*t,e.age>this.maxAge&&this.trail.splice(i,1)})),this.trail.length||(this.force=0),this.trail.forEach((t=>{this.drawTouch(t)})),this.texture.needsUpdate=!0}clear(){this.ctx.globalCompositeOperation="source-over",this.ctx.fillStyle="black",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height)}addTouch(t){const e=this.trail[this.trail.length-1];if(e){const i=e.x-t.x,s=e.y-t.y,a=i*i+s*s,h=Math.max(this.minForce,Math.min(1e4*a,1));if(this.force=function(t,e,i=.9){return e*i+t*(1-i)}(h,this.force,this.smoothing),this.interpolate){const t=Math.ceil(a/Math.pow(.5*this.radius/this.interpolate,2));if(t>1)for(let a=1;a<t;a++)this.trail.push({x:e.x-i/t*a,y:e.y-s/t*a,age:0,force:h})}}this.trail.push({x:t.x,y:t.y,age:0,force:this.force})}drawTouch(t){const e={x:t.x*this.size,y:(1-t.y)*this.size};let i=1;i=t.age<.3*this.maxAge?this.ease(t.age/(.3*this.maxAge)):this.ease(1-(t.age-.3*this.maxAge)/(.7*this.maxAge)),i*=t.force,this.ctx.globalCompositeOperation=this.blend;const s=this.size*this.radius*i,a=this.ctx.createRadialGradient(e.x,e.y,Math.max(0,.25*s),e.x,e.y,Math.max(0,s));a.addColorStop(0,`rgba(255, 255, 255, ${this.intensity})`),a.addColorStop(1,"rgba(0, 0, 0, 0.0)"),this.ctx.beginPath(),this.ctx.fillStyle=a,this.ctx.arc(e.x,e.y,Math.max(0,s),0,2*Math.PI),this.ctx.fill()}}exports.useTrailTexture=function(i={}){const{size:s,maxAge:h,radius:r,intensity:c,interpolate:n,smoothing:o,minForce:l,blend:x,ease:u}=i,d=t.useMemo((()=>new a(i)),[s,h,r,c,n,o,l,x,u]);e.useFrame(((t,e)=>{d.update(e)}));const g=t.useCallback((t=>d.addTouch(t.uv)),[d]);return[d.texture,g]};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("react"),n=require("@react-three/fiber"),r=require("suspend-react");function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u,i,s=o(e);const c="undefined"!=typeof window&&"function"==typeof(null==(u=window.document)?void 0:u.createElement)&&"string"==typeof(null==(i=window.navigator)?void 0:i.userAgent);let a=null;exports.useVideoTexture=function(e,u){const{unsuspend:i,start:l,crossOrigin:d,muted:f,loop:p,hls:g,...m}={unsuspend:"loadedmetadata",crossOrigin:"Anonymous",muted:!0,loop:!0,start:!0,playsInline:!0,hls:{},...u},y=new URL("string"==typeof e?e:"",window.location.href),v=t.useRef(null),w=t.useRef(null),h=n.useThree((e=>e.gl)),O=r.suspend((()=>new Promise((async(t,n)=>{const r=Object.assign(document.createElement("video"),{src:"string"==typeof e&&e||void 0,srcObject:e instanceof MediaStream&&e||void 0,crossOrigin:d,loop:p,muted:f,...m});if(w.current=r,"string"==typeof e){const t=v.current=await async function(e,t){var n;return c&&e.pathname.endsWith(".m3u8")&&(null!==(n=a)&&void 0!==n||(a=await Promise.resolve().then((function(){return o(require("hls.js"))}))),a.default.isSupported())?new a.default({...t}):null}(y,g);t?(t.attachMedia(r),t.on("hlsMediaAttached",(()=>{t.loadSource(e)}))):r.src=e}else e instanceof MediaStream&&(r.srcObject=e);const u=new s.VideoTexture(r);"colorSpace"in u?u.colorSpace=h.outputColorSpace:u.encoding=h.outputEncoding,r.addEventListener(i,(()=>t(u)))}))),[e]);return t.useEffect((()=>(l&&O.image.play(),()=>{v.current&&(v.current.destroy(),v.current=null)})),[O,l]),O};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
import type { HlsConfig } from 'hls.js';
|
|
3
|
-
interface VideoTextureProps extends HTMLVideoElement {
|
|
4
|
-
unsuspend?: 'canplay' | 'canplaythrough' | 'loadstart' | 'loadedmetadata';
|
|
5
|
-
start?: boolean;
|
|
6
|
-
hls?: HLSConfiguration;
|
|
7
|
-
}
|
|
8
|
-
interface HLSConfiguration {
|
|
9
|
-
hls: HlsConfig;
|
|
10
|
-
}
|
|
11
|
-
export declare function useVideoTexture(src: string | MediaStream, props?: Partial<VideoTextureProps>): THREE.VideoTexture;
|
|
12
|
-
export {};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|