@react-three/drei 9.121.3 → 10.0.0-rc.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/LICENSE +21 -21
- package/README.md +852 -852
- package/core/AccumulativeShadows.d.ts +8 -10
- package/core/ArcballControls.d.ts +3 -3
- package/core/AsciiRenderer.d.ts +1 -2
- package/core/BBAnchor.d.ts +3 -3
- package/core/Backdrop.d.ts +2 -1
- package/core/Billboard.d.ts +3 -2
- package/core/Billboard.js +8 -8
- package/core/Bounds.d.ts +2 -1
- package/core/Bounds.js +2 -2
- package/core/Bvh.d.ts +3 -2
- package/core/Bvh.js +2 -2
- package/core/CameraControls.d.ts +4 -4
- package/core/CatmullRomLine.d.ts +2 -3
- package/core/Caustics.d.ts +14 -17
- package/core/Center.d.ts +3 -2
- package/core/Clone.d.ts +4 -4
- package/core/Cloud.cjs.js +1 -1
- package/core/Cloud.d.ts +50 -12
- package/core/Cloud.js +3 -3
- package/core/ComputedAttribute.cjs.js +1 -1
- package/core/ComputedAttribute.d.ts +3 -4
- package/core/ComputedAttribute.js +5 -5
- package/core/ContactShadows.d.ts +3 -2
- package/core/CubeCamera.d.ts +3 -3
- package/core/CubeTexture.d.ts +5 -6
- package/core/CubeTexture.js +2 -7
- package/core/CubicBezierLine.d.ts +2 -3
- package/core/CurveModifier.d.ts +2 -1
- package/core/Decal.d.ts +2 -2
- package/core/Detailed.d.ts +3 -3
- package/core/DetectGPU.d.ts +1 -2
- package/core/DeviceOrientationControls.d.ts +2 -2
- package/core/Edges.cjs.js +1 -1
- package/core/Edges.d.ts +2 -2
- package/core/Edges.js +2 -2
- package/core/Effects.cjs.js +1 -1
- package/core/Effects.d.ts +9 -13
- package/core/Effects.js +3 -3
- package/core/Environment.cjs.js +1 -1
- package/core/Environment.d.ts +5 -7
- package/core/Example.js +2 -2
- package/core/Fbo.d.ts +1 -4
- package/core/Fbo.js +0 -2
- package/core/Fbx.d.ts +1 -1
- package/core/FirstPersonControls.d.ts +2 -2
- package/core/Fisheye.d.ts +2 -1
- package/core/Float.d.ts +2 -1
- package/core/FlyControls.d.ts +2 -2
- package/core/GizmoHelper.d.ts +2 -1
- package/core/GizmoViewport.d.ts +2 -2
- package/core/Gltf.d.ts +9 -5
- package/core/GradientTexture.d.ts +4 -4
- package/core/GradientTexture.js +0 -2
- package/core/Grid.d.ts +6 -7
- package/core/Helper.cjs.js +1 -1
- package/core/Helper.d.ts +1 -1
- package/core/Helper.js +1 -1
- package/core/Hud.d.ts +1 -2
- package/core/Image.d.ts +6 -8
- package/core/Instances.cjs.js +1 -1
- package/core/Instances.d.ts +27 -35
- package/core/Instances.js +38 -33
- package/core/Ktx2.d.ts +1 -1
- package/core/Lightformer.d.ts +3 -3
- package/core/Line.d.ts +4 -4
- package/core/MapControls.d.ts +4 -4
- package/core/MarchingCubes.d.ts +6 -6
- package/core/Mask.d.ts +3 -3
- package/core/MeshDiscardMaterial.d.ts +6 -7
- package/core/MeshDistortMaterial.d.ts +15 -17
- package/core/MeshPortalMaterial.cjs.js +1 -1
- package/core/MeshPortalMaterial.d.ts +14 -17
- package/core/MeshPortalMaterial.js +2 -2
- package/core/MeshReflectorMaterial.cjs.js +1 -1
- package/core/MeshReflectorMaterial.d.ts +9 -22
- package/core/MeshReflectorMaterial.js +2 -4
- package/core/MeshRefractionMaterial.cjs.js +1 -1
- package/core/MeshRefractionMaterial.d.ts +5 -8
- package/core/MeshRefractionMaterial.js +2 -2
- package/core/MeshTransmissionMaterial.cjs.js +1 -1
- package/core/MeshTransmissionMaterial.d.ts +7 -8
- package/core/MeshTransmissionMaterial.js +2 -1
- package/core/MeshWobbleMaterial.d.ts +15 -17
- package/core/MotionPathControls.cjs.js +1 -1
- package/core/MotionPathControls.d.ts +18 -6
- package/core/MotionPathControls.js +2 -3
- package/core/MultiMaterial.cjs.js +1 -1
- package/core/MultiMaterial.d.ts +3 -1
- package/core/MultiMaterial.js +2 -3
- package/core/OrbitControls.d.ts +4 -4
- package/core/OrthographicCamera.d.ts +3 -3
- package/core/Outlines.cjs.js +1 -1
- package/core/Outlines.d.ts +2 -3
- package/core/Outlines.js +2 -2
- package/core/PerformanceMonitor.d.ts +2 -2
- package/core/PerspectiveCamera.d.ts +3 -3
- package/core/PointMaterial.d.ts +3 -11
- package/core/PointerLockControls.d.ts +2 -2
- package/core/Points.cjs.js +1 -1
- package/core/Points.d.ts +10 -13
- package/core/Points.js +10 -20
- package/core/PositionalAudio.d.ts +3 -3
- package/core/Preload.d.ts +2 -3
- package/core/QuadraticBezierLine.d.ts +5 -7
- package/core/RenderCubeTexture.d.ts +2 -2
- package/core/RenderTexture.cjs.js +1 -1
- package/core/RenderTexture.d.ts +3 -3
- package/core/RenderTexture.js +3 -2
- package/core/Resize.d.ts +9 -2
- package/core/RoundedBox.d.ts +4 -4
- package/core/Sampler.d.ts +4 -4
- package/core/ScreenQuad.d.ts +3 -3
- package/core/ScreenSizer.d.ts +3 -3
- package/core/ScreenSizer.js +12 -12
- package/core/ScreenSpace.d.ts +3 -2
- package/core/Segments.d.ts +6 -8
- package/core/Shadow.d.ts +3 -3
- package/core/ShadowAlpha.cjs.js +1 -1
- package/core/ShadowAlpha.d.ts +1 -2
- package/core/ShadowAlpha.js +9 -9
- package/core/Sky.d.ts +2 -3
- package/core/Sparkles.d.ts +14 -16
- package/core/Splat.d.ts +6 -8
- package/core/SpotLight.d.ts +2 -1
- package/core/SpriteAnimator.cjs.js +1 -1
- package/core/SpriteAnimator.d.ts +36 -3
- package/core/Stage.cjs.js +1 -1
- package/core/Stage.d.ts +3 -2
- package/core/Stars.cjs.js +1 -1
- package/core/Stars.d.ts +6 -8
- package/core/Stars.js +1 -1
- package/core/Stats.d.ts +2 -3
- package/core/StatsGl.d.ts +2 -2
- package/core/Svg.d.ts +6 -6
- package/core/Text.d.ts +3 -4
- package/core/Text3D.d.ts +7 -10
- package/core/Text3D.js +3 -3
- package/core/Texture.d.ts +1 -1
- package/core/TrackballControls.d.ts +4 -4
- package/core/Trail.cjs.js +1 -1
- package/core/Trail.d.ts +3 -3
- package/core/Trail.js +3 -3
- package/core/TrailTexture.d.ts +3 -2
- package/core/TransformControls.cjs.js +1 -1
- package/core/TransformControls.d.ts +3 -3
- package/core/TransformControls.js +4 -5
- package/core/VideoTexture.cjs.js +1 -1
- package/core/VideoTexture.js +1 -1
- package/core/Wireframe.d.ts +5 -7
- package/core/index.cjs.js +1 -1
- package/core/index.d.ts +0 -1
- package/core/index.js +2 -4
- package/core/shapes.d.ts +21 -20
- package/core/softShadows.d.ts +1 -2
- package/core/softShadows.js +13 -13
- package/core/useAnimations.cjs.js +1 -1
- package/core/useAnimations.d.ts +2 -2
- package/core/useAnimations.js +1 -1
- package/core/useBoxProjectedEnv.d.ts +1 -1
- package/core/useCamera.cjs.js +1 -1
- package/core/useCamera.d.ts +1 -1
- package/core/useCamera.js +1 -8
- package/core/useContextBridge.d.ts +1 -1
- package/core/useContextBridge.js +4 -4
- package/core/useEnvironment.cjs.js +1 -1
- package/core/useEnvironment.d.ts +3 -4
- package/core/useEnvironment.js +11 -19
- package/core/useIntersect.d.ts +1 -1
- package/core/useSpriteLoader.d.ts +1 -1
- package/helpers/deprecated.cjs.js +1 -1
- package/helpers/deprecated.d.ts +1 -4
- package/helpers/deprecated.js +4 -16
- package/helpers/ts-utils.d.ts +4 -0
- package/helpers/useEffectfulState.d.ts +1 -1
- package/index.cjs.js +1 -1
- package/index.js +0 -1
- package/materials/BlurPass.js +0 -1
- package/materials/MeshReflectorMaterial.d.ts +0 -16
- package/native/index.cjs.js +1 -1
- package/native/index.js +0 -2
- package/package.json +7 -8
- package/web/CycleRaycast.d.ts +1 -1
- package/web/FaceControls.js +8 -8
- package/web/FaceLandmarker.d.ts +1 -2
- package/web/Facemesh.d.ts +3 -2
- package/web/Html.cjs.js +1 -1
- package/web/Html.d.ts +4 -4
- package/web/Html.js +1 -1
- package/web/KeyboardControls.d.ts +1 -1
- package/web/PresentationControls.cjs.js +1 -1
- package/web/PresentationControls.d.ts +3 -4
- package/web/PresentationControls.js +20 -28
- package/web/ScreenVideoTexture.js +2 -2
- package/web/ScrollControls.d.ts +1 -1
- package/web/Select.d.ts +3 -3
- package/web/Select.js +6 -2
- package/web/View.cjs.js +1 -1
- package/web/View.d.ts +8 -10
- package/web/View.js +4 -34
- package/web/WebcamVideoTexture.js +2 -2
- package/web/index.cjs.js +1 -1
- package/web/index.js +1 -4
- package/web/pivotControls/AxisArrow.js +0 -2
- package/web/pivotControls/AxisRotator.js +0 -2
- package/web/pivotControls/PlaneSlider.js +1 -3
- package/web/pivotControls/ScalingSphere.js +0 -1
- package/web/pivotControls/index.d.ts +1 -2
- package/core/Reflector.cjs.js +0 -1
- package/core/Reflector.d.ts +0 -30
- package/core/Reflector.js +0 -180
package/core/Points.js
CHANGED
|
@@ -62,8 +62,8 @@ const context = /* @__PURE__ */React.createContext(null);
|
|
|
62
62
|
const parentMatrix = /* @__PURE__ */new THREE.Matrix4();
|
|
63
63
|
const position = /* @__PURE__ */new THREE.Vector3();
|
|
64
64
|
|
|
65
|
-
/**
|
|
66
|
-
* Instance implementation, relies on react + context to update the attributes based on the children of this component
|
|
65
|
+
/**
|
|
66
|
+
* Instance implementation, relies on react + context to update the attributes based on the children of this component
|
|
67
67
|
*/
|
|
68
68
|
const PointsInstances = /* @__PURE__ */React.forwardRef(({
|
|
69
69
|
children,
|
|
@@ -116,21 +116,15 @@ const PointsInstances = /* @__PURE__ */React.forwardRef(({
|
|
|
116
116
|
raycast: () => null
|
|
117
117
|
}, props), /*#__PURE__*/React.createElement("bufferGeometry", null, /*#__PURE__*/React.createElement("bufferAttribute", {
|
|
118
118
|
attach: "attributes-position",
|
|
119
|
-
|
|
120
|
-
array: positions,
|
|
121
|
-
itemSize: 3,
|
|
119
|
+
args: [positions, 3],
|
|
122
120
|
usage: THREE.DynamicDrawUsage
|
|
123
121
|
}), /*#__PURE__*/React.createElement("bufferAttribute", {
|
|
124
122
|
attach: "attributes-color",
|
|
125
|
-
|
|
126
|
-
array: colors,
|
|
127
|
-
itemSize: 3,
|
|
123
|
+
args: [colors, 3],
|
|
128
124
|
usage: THREE.DynamicDrawUsage
|
|
129
125
|
}), /*#__PURE__*/React.createElement("bufferAttribute", {
|
|
130
126
|
attach: "attributes-size",
|
|
131
|
-
|
|
132
|
-
array: sizes,
|
|
133
|
-
itemSize: 1,
|
|
127
|
+
args: [sizes, 1],
|
|
134
128
|
usage: THREE.DynamicDrawUsage
|
|
135
129
|
})), /*#__PURE__*/React.createElement(context.Provider, {
|
|
136
130
|
value: api
|
|
@@ -157,8 +151,8 @@ const Point = /* @__PURE__ */React.forwardRef(({
|
|
|
157
151
|
}, props), children);
|
|
158
152
|
});
|
|
159
153
|
|
|
160
|
-
/**
|
|
161
|
-
* Buffer implementation, relies on complete buffers of the correct number, leaves it to the user to update them
|
|
154
|
+
/**
|
|
155
|
+
* Buffer implementation, relies on complete buffers of the correct number, leaves it to the user to update them
|
|
162
156
|
*/
|
|
163
157
|
|
|
164
158
|
const PointsBuffer = /* @__PURE__ */React.forwardRef(({
|
|
@@ -181,21 +175,17 @@ const PointsBuffer = /* @__PURE__ */React.forwardRef(({
|
|
|
181
175
|
ref: pointsRef
|
|
182
176
|
}, props), /*#__PURE__*/React.createElement("bufferGeometry", null, /*#__PURE__*/React.createElement("bufferAttribute", {
|
|
183
177
|
attach: "attributes-position",
|
|
184
|
-
|
|
185
|
-
array: positions,
|
|
186
|
-
itemSize: stride,
|
|
178
|
+
args: [positions, stride],
|
|
187
179
|
usage: THREE.DynamicDrawUsage
|
|
188
180
|
}), colors && /*#__PURE__*/React.createElement("bufferAttribute", {
|
|
189
181
|
attach: "attributes-color",
|
|
182
|
+
args: [colors, stride],
|
|
190
183
|
count: colors.length / stride,
|
|
191
|
-
array: colors,
|
|
192
|
-
itemSize: 3,
|
|
193
184
|
usage: THREE.DynamicDrawUsage
|
|
194
185
|
}), sizes && /*#__PURE__*/React.createElement("bufferAttribute", {
|
|
195
186
|
attach: "attributes-size",
|
|
187
|
+
args: [sizes, 1],
|
|
196
188
|
count: sizes.length / stride,
|
|
197
|
-
array: sizes,
|
|
198
|
-
itemSize: 1,
|
|
199
189
|
usage: THREE.DynamicDrawUsage
|
|
200
190
|
})), children);
|
|
201
191
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { PositionalAudio as PositionalAudioImpl } from 'three';
|
|
2
|
+
import { ThreeElements } from '@react-three/fiber';
|
|
2
3
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
3
|
-
type
|
|
4
|
+
export type PositionalAudioProps = Omit<ThreeElements['positionalAudio'], 'ref' | 'args'> & {
|
|
4
5
|
url: string;
|
|
5
6
|
distance?: number;
|
|
6
7
|
loop?: boolean;
|
|
7
8
|
};
|
|
8
|
-
export declare const PositionalAudio: ForwardRefComponent<
|
|
9
|
-
export {};
|
|
9
|
+
export declare const PositionalAudio: ForwardRefComponent<PositionalAudioProps, PositionalAudioImpl>;
|
package/core/Preload.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Object3D, Camera } from 'three';
|
|
2
|
-
type
|
|
2
|
+
export type PreloadProps = {
|
|
3
3
|
all?: boolean;
|
|
4
4
|
scene?: Object3D;
|
|
5
5
|
camera?: Camera;
|
|
6
6
|
};
|
|
7
|
-
export declare function Preload({ all, scene, camera }:
|
|
8
|
-
export {};
|
|
7
|
+
export declare function Preload({ all, scene, camera }: PreloadProps): null;
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { Vector3 } from 'three';
|
|
2
2
|
import { Line2 } from 'three-stdlib';
|
|
3
3
|
import { LineProps } from './Line';
|
|
4
|
-
import { Object3DNode } from '@react-three/fiber';
|
|
5
4
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
6
|
-
type
|
|
5
|
+
export type QuadraticBezierLineRef = Line2 & {
|
|
6
|
+
setPoints(start: Vector3 | [number, number, number], end: Vector3 | [number, number, number], mid: Vector3 | [number, number, number]): void;
|
|
7
|
+
};
|
|
8
|
+
export type QuadraticBezierLineProps = Omit<LineProps, 'points' | 'ref'> & {
|
|
7
9
|
start: Vector3 | [number, number, number];
|
|
8
10
|
end: Vector3 | [number, number, number];
|
|
9
11
|
mid?: Vector3 | [number, number, number];
|
|
10
12
|
segments?: number;
|
|
11
13
|
};
|
|
12
|
-
export
|
|
13
|
-
setPoints: (start: Vector3 | [number, number, number], end: Vector3 | [number, number, number], mid: Vector3 | [number, number, number]) => void;
|
|
14
|
-
};
|
|
15
|
-
export declare const QuadraticBezierLine: ForwardRefComponent<Props, Line2Props>;
|
|
16
|
-
export {};
|
|
14
|
+
export declare const QuadraticBezierLine: ForwardRefComponent<QuadraticBezierLineProps, QuadraticBezierLineRef>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { ComputeFunction, ReactThreeFiber } from '@react-three/fiber';
|
|
3
|
+
import { ComputeFunction, ReactThreeFiber, ThreeElements } from '@react-three/fiber';
|
|
4
4
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
5
|
-
export type RenderCubeTextureProps = Omit<
|
|
5
|
+
export type RenderCubeTextureProps = Omit<ThreeElements['texture'], 'ref' | 'args' | 'rotation'> & {
|
|
6
6
|
stencilBuffer?: boolean;
|
|
7
7
|
depthBuffer?: boolean;
|
|
8
8
|
generateMipmaps?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),a=require("./Fbo.cjs.js");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),a=require("./Fbo.cjs.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(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 u=l(e),o=i(r),s=i(t);const c=s.forwardRef((({children:e,compute:r,width:t,height:l,samples:i=8,renderPriority:c=0,eventPriority:d=0,frames:g=1/0,stencilBuffer:p=!1,depthBuffer:m=!0,generateMipmaps:b=!1,...v},h)=>{const{size:j,viewport:x}=n.useThree(),y=a.useFBO((t||j.width)*x.dpr,(l||j.height)*x.dpr,{samples:i,stencilBuffer:p,depthBuffer:m,generateMipmaps:b}),[P]=s.useState((()=>new o.Scene)),O=s.useCallback(((e,r,t)=>{var n,a;let l=null==(n=y.texture)||null==(n=n.__r3f.parent)?void 0:n.object;for(;l&&!(l instanceof o.Object3D);){var i;l=null==(i=l.__r3f.parent)?void 0:i.object}if(!l)return!1;t.raycaster.camera||t.events.compute(e,t,null==(a=t.previousRoot)?void 0:a.getState());const[u]=t.raycaster.intersectObject(l);if(!u)return!1;const s=u.uv;if(!s)return!1;r.raycaster.setFromCamera(r.pointer.set(2*s.x-1,2*s.y-1),r.camera)}),[]);return s.useImperativeHandle(h,(()=>y.texture),[y]),s.createElement(s.Fragment,null,n.createPortal(s.createElement(f,{renderPriority:c,frames:g,fbo:y},e,s.createElement("group",{onPointerOver:()=>null})),P,{events:{compute:r||O,priority:d}}),s.createElement("primitive",u.default({object:y.texture},v)))}));function f({frames:e,renderPriority:r,children:t,fbo:a}){let l,i,u,o,c=0;return n.useFrame((r=>{(e===1/0||c<e)&&(l=r.gl.autoClear,i=r.gl.xr.enabled,u=r.gl.getRenderTarget(),o=r.gl.xr.isPresenting,r.gl.autoClear=!0,r.gl.xr.enabled=!1,r.gl.xr.isPresenting=!1,r.gl.setRenderTarget(a),r.gl.render(r.scene,r.camera),r.gl.setRenderTarget(u),r.gl.autoClear=l,r.gl.xr.enabled=i,r.gl.xr.isPresenting=o,c++)}),r),s.createElement(s.Fragment,null,t)}exports.RenderTexture=c;
|
package/core/RenderTexture.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { ThreeElements } from '@react-three/fiber';
|
|
3
4
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
4
|
-
type
|
|
5
|
+
export type RenderTextureProps = Omit<ThreeElements['texture'], 'ref' | 'args'> & {
|
|
5
6
|
width?: number;
|
|
6
7
|
height?: number;
|
|
7
8
|
samples?: number;
|
|
@@ -14,5 +15,4 @@ type Props = JSX.IntrinsicElements['texture'] & {
|
|
|
14
15
|
compute?: (event: any, state: any, previous: any) => false | undefined;
|
|
15
16
|
children: React.ReactNode;
|
|
16
17
|
};
|
|
17
|
-
export declare const RenderTexture: ForwardRefComponent<
|
|
18
|
-
export {};
|
|
18
|
+
export declare const RenderTexture: ForwardRefComponent<RenderTextureProps, THREE.Texture>;
|
package/core/RenderTexture.js
CHANGED
|
@@ -34,9 +34,10 @@ const RenderTexture = /* @__PURE__ */React.forwardRef(({
|
|
|
34
34
|
// Since this is only a texture it does not have an easy way to obtain the parent, which we
|
|
35
35
|
// need to transform event coordinates to local coordinates. We use r3f internals to find the
|
|
36
36
|
// next Object3D.
|
|
37
|
-
let parent = (_fbo$texture = fbo.texture) == null ? void 0 : _fbo$texture.
|
|
37
|
+
let parent = (_fbo$texture = fbo.texture) == null || (_fbo$texture = _fbo$texture.__r3f.parent) == null ? void 0 : _fbo$texture.object;
|
|
38
38
|
while (parent && !(parent instanceof THREE.Object3D)) {
|
|
39
|
-
|
|
39
|
+
var _parent$__r3f$parent;
|
|
40
|
+
parent = (_parent$__r3f$parent = parent.__r3f.parent) == null ? void 0 : _parent$__r3f$parent.object;
|
|
40
41
|
}
|
|
41
42
|
if (!parent) return false;
|
|
42
43
|
// First we call the previous state-onion-layers compute, this is what makes it possible to nest portals
|
package/core/Resize.d.ts
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
|
|
3
|
+
import { ThreeElements } from '@react-three/fiber';
|
|
4
|
+
export type ResizeProps = Omit<ThreeElements['group'], 'ref'> & {
|
|
4
5
|
width?: boolean;
|
|
5
6
|
height?: boolean;
|
|
6
7
|
depth?: boolean;
|
|
7
8
|
box3?: THREE.Box3;
|
|
8
9
|
precise?: boolean;
|
|
9
10
|
};
|
|
10
|
-
export declare const Resize: React.ForwardRefExoticComponent<Omit<
|
|
11
|
+
export declare const Resize: React.ForwardRefExoticComponent<Omit<import("@react-three/fiber/dist/declarations/src/core/utils").Mutable<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<Partial<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<THREE.Group<THREE.Object3DEventMap>, import("@react-three/fiber").MathProps<THREE.Group<THREE.Object3DEventMap>> & import("@react-three/fiber").ReactProps<THREE.Group<THREE.Object3DEventMap>> & Partial<import("@react-three/fiber").EventHandlers>>>, Omit<import("@react-three/fiber").InstanceProps<THREE.Group<THREE.Object3DEventMap>, typeof THREE.Group>, "object">>>, "ref"> & {
|
|
12
|
+
width?: boolean;
|
|
13
|
+
height?: boolean;
|
|
14
|
+
depth?: boolean;
|
|
15
|
+
box3?: THREE.Box3;
|
|
16
|
+
precise?: boolean;
|
|
17
|
+
} & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
|
package/core/RoundedBox.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Mesh } from 'three';
|
|
2
2
|
import { ForwardRefComponent, NamedArrayTuple } from '../helpers/ts-utils';
|
|
3
|
-
|
|
3
|
+
import { ThreeElements } from '@react-three/fiber';
|
|
4
|
+
export type RoundedBoxProps = {
|
|
4
5
|
args?: NamedArrayTuple<(width?: number, height?: number, depth?: number) => void>;
|
|
5
6
|
radius?: number;
|
|
6
7
|
smoothness?: number;
|
|
7
8
|
bevelSegments?: number;
|
|
8
9
|
steps?: number;
|
|
9
10
|
creaseAngle?: number;
|
|
10
|
-
} & Omit<
|
|
11
|
-
export declare const RoundedBox: ForwardRefComponent<
|
|
12
|
-
export {};
|
|
11
|
+
} & Omit<ThreeElements['mesh'], 'ref' | 'args'>;
|
|
12
|
+
export declare const RoundedBox: ForwardRefComponent<RoundedBoxProps, Mesh>;
|
package/core/Sampler.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Color, InstancedBufferAttribute, InstancedMesh, Mesh, Object3D, Vector3 } from 'three';
|
|
3
|
-
import {
|
|
3
|
+
import { ThreeElements } from '@react-three/fiber';
|
|
4
4
|
type SamplePayload = {
|
|
5
5
|
position: Vector3;
|
|
6
6
|
normal: Vector3;
|
|
@@ -11,7 +11,7 @@ type TransformPayload = SamplePayload & {
|
|
|
11
11
|
dummy: Object3D;
|
|
12
12
|
sampledMesh: Mesh;
|
|
13
13
|
};
|
|
14
|
-
type
|
|
14
|
+
export type SamplerProps = Omit<ThreeElements['group'], 'ref'> & {
|
|
15
15
|
mesh?: React.RefObject<Mesh>;
|
|
16
16
|
instances?: React.RefObject<InstancedMesh>;
|
|
17
17
|
weight?: string;
|
|
@@ -23,6 +23,6 @@ export interface useSurfaceSamplerProps {
|
|
|
23
23
|
weight?: string;
|
|
24
24
|
count?: number;
|
|
25
25
|
}
|
|
26
|
-
export declare function useSurfaceSampler(mesh: React.
|
|
27
|
-
export declare function Sampler({ children, weight, transform, instances, mesh, count, ...props }:
|
|
26
|
+
export declare function useSurfaceSampler(mesh: React.RefObject<Mesh>, count?: number, transform?: TransformFn, weight?: string, instanceMesh?: React.RefObject<InstancedMesh> | null): InstancedBufferAttribute;
|
|
27
|
+
export declare function Sampler({ children, weight, transform, instances, mesh, count, ...props }: SamplerProps): React.JSX.Element;
|
|
28
28
|
export {};
|
package/core/ScreenQuad.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
export
|
|
3
|
+
import { ThreeElements } from '@react-three/fiber';
|
|
4
|
+
export type ScreenQuadProps = Omit<ThreeElements['mesh'], 'ref' | 'args'>;
|
|
5
|
+
export declare const ScreenQuad: ForwardRefComponent<ScreenQuadProps, THREE.Mesh>;
|
package/core/ScreenSizer.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ThreeElements } from '@react-three/fiber';
|
|
2
2
|
import { Object3D } from 'three';
|
|
3
3
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
4
|
-
export
|
|
4
|
+
export type ScreenSizerProps = Omit<ThreeElements['object3D'], 'ref'> & {
|
|
5
5
|
scale?: number;
|
|
6
|
-
}
|
|
6
|
+
};
|
|
7
7
|
export declare const ScreenSizer: ForwardRefComponent<ScreenSizerProps, Object3D>;
|
package/core/ScreenSizer.js
CHANGED
|
@@ -6,18 +6,18 @@ import { Vector3 } from 'three';
|
|
|
6
6
|
import { calculateScaleFactor } from './calculateScaleFactor.js';
|
|
7
7
|
|
|
8
8
|
const worldPos = /* @__PURE__ */new Vector3();
|
|
9
|
-
/**
|
|
10
|
-
* Wraps children in an `Object3D` and attempts to scale from
|
|
11
|
-
* world units to screen units * scale factor.
|
|
12
|
-
*
|
|
13
|
-
* For example, this will render a box of roughly 1x1 pixel size,
|
|
14
|
-
* independently of how far the camera is.
|
|
15
|
-
*
|
|
16
|
-
* ```jsx
|
|
17
|
-
* <ScreenSizer>
|
|
18
|
-
* <Box />
|
|
19
|
-
* </ScreenSizer>
|
|
20
|
-
* ```
|
|
9
|
+
/**
|
|
10
|
+
* Wraps children in an `Object3D` and attempts to scale from
|
|
11
|
+
* world units to screen units * scale factor.
|
|
12
|
+
*
|
|
13
|
+
* For example, this will render a box of roughly 1x1 pixel size,
|
|
14
|
+
* independently of how far the camera is.
|
|
15
|
+
*
|
|
16
|
+
* ```jsx
|
|
17
|
+
* <ScreenSizer>
|
|
18
|
+
* <Box />
|
|
19
|
+
* </ScreenSizer>
|
|
20
|
+
* ```
|
|
21
21
|
*/
|
|
22
22
|
const ScreenSizer = /* @__PURE__ */forwardRef(({
|
|
23
23
|
scale = 1,
|
package/core/ScreenSpace.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Group } from 'three';
|
|
2
|
+
import { ThreeElements } from '@react-three/fiber';
|
|
2
3
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
3
|
-
export type ScreenSpaceProps = {
|
|
4
|
+
export type ScreenSpaceProps = Omit<ThreeElements['group'], 'ref'> & {
|
|
4
5
|
depth?: number;
|
|
5
|
-
}
|
|
6
|
+
};
|
|
6
7
|
export declare const ScreenSpace: ForwardRefComponent<ScreenSpaceProps, Group>;
|
package/core/Segments.d.ts
CHANGED
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { ReactThreeFiber } from '@react-three/fiber';
|
|
3
|
+
import { ReactThreeFiber, ThreeElements, ThreeElement } from '@react-three/fiber';
|
|
4
4
|
import { Line2, LineMaterialParameters } from 'three-stdlib';
|
|
5
5
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
6
|
-
type SegmentsProps = LineMaterialParameters & {
|
|
6
|
+
export type SegmentsProps = LineMaterialParameters & {
|
|
7
7
|
limit?: number;
|
|
8
8
|
lineWidth?: number;
|
|
9
9
|
children: React.ReactNode;
|
|
10
10
|
};
|
|
11
|
-
type SegmentProps = Omit<
|
|
11
|
+
export type SegmentProps = Omit<ThreeElements['segmentObject'], 'ref' | 'start' | 'end' | 'color'> & {
|
|
12
12
|
start: ReactThreeFiber.Vector3;
|
|
13
13
|
end: ReactThreeFiber.Vector3;
|
|
14
14
|
color?: ReactThreeFiber.Color;
|
|
15
15
|
};
|
|
16
16
|
declare const Segments: ForwardRefComponent<SegmentsProps, Line2>;
|
|
17
|
-
declare
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
segmentObject: ReactThreeFiber.Object3DNode<SegmentObject, typeof SegmentObject>;
|
|
21
|
-
}
|
|
17
|
+
declare module '@react-three/fiber' {
|
|
18
|
+
interface ThreeElements {
|
|
19
|
+
segmentObject: ThreeElement<typeof SegmentObject>;
|
|
22
20
|
}
|
|
23
21
|
}
|
|
24
22
|
export declare class SegmentObject {
|
package/core/Shadow.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Mesh, Color, type PlaneGeometry, type MeshBasicMaterial } from 'three';
|
|
2
2
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
3
|
-
|
|
3
|
+
import { ThreeElements } from '@react-three/fiber';
|
|
4
|
+
export type ShadowProps = Omit<ThreeElements['mesh'], 'ref'> & {
|
|
4
5
|
colorStop?: number;
|
|
5
6
|
fog?: boolean;
|
|
6
7
|
color?: Color | number | string;
|
|
@@ -8,5 +9,4 @@ type Props = JSX.IntrinsicElements['mesh'] & {
|
|
|
8
9
|
depthWrite?: boolean;
|
|
9
10
|
};
|
|
10
11
|
export type ShadowType = Mesh<PlaneGeometry, MeshBasicMaterial>;
|
|
11
|
-
export declare const Shadow: ForwardRefComponent<
|
|
12
|
-
export {};
|
|
12
|
+
export declare const Shadow: ForwardRefComponent<ShadowProps, ShadowType>;
|
package/core/ShadowAlpha.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@react-three/fiber"),r=require("react"),a=require("three");function t(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var t=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(r,a,t.get?t:{enumerable:!0,get:function(){return e[a]}})}})),r.default=e,Object.freeze(r)}var n=t(r),u=t(a);exports.ShadowAlpha=function({opacity:r,alphaMap:a}){const t=n.useRef(null),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@react-three/fiber"),r=require("react"),a=require("three");function t(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var t=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(r,a,t.get?t:{enumerable:!0,get:function(){return e[a]}})}})),r.default=e,Object.freeze(r)}var n=t(r),u=t(a);exports.ShadowAlpha=function({opacity:r,alphaMap:a}){const t=n.useRef(null),l=n.useRef(null),o=n.useRef({value:1}),c=n.useRef({value:null}),i=n.useRef({value:!1});return n.useLayoutEffect((()=>{t.current.onBeforeCompile=l.current.onBeforeCompile=e=>{const r=e.fragmentShader.indexOf("void main");let a,t="",n=r;for(;"\n"!==a&&n<r+100;)a=e.fragmentShader.charAt(n),t+=a,n++;t=t.trim(),e.vertexShader=e.vertexShader.replace("void main() {","\n varying vec2 custom_vUv;\n\n void main() {\n custom_vUv = uv;\n \n "),e.fragmentShader=e.fragmentShader.replace(t,"\n uniform float uShadowOpacity;\n uniform sampler2D uAlphaMap;\n uniform bool uHasAlphaMap;\n\n varying vec2 custom_vUv;\n \n float bayerDither2x2( vec2 v ) {\n return mod( 3.0 * v.y + 2.0 * v.x, 4.0 );\n }\n \n float bayerDither4x4( vec2 v ) {\n vec2 P1 = mod( v, 2.0 );\n vec2 P2 = mod( floor( 0.5 * v ), 2.0 );\n return 4.0 * bayerDither2x2( P1 ) + bayerDither2x2( P2 );\n }\n \n void main() {\n float alpha = \n uHasAlphaMap ? \n uShadowOpacity * texture2D(uAlphaMap, custom_vUv).x\n : uShadowOpacity;\n\n if( ( bayerDither4x4( floor( mod( gl_FragCoord.xy, 4.0 ) ) ) ) / 16.0 >= alpha ) discard;\n \n "),e.uniforms.uShadowOpacity=o.current,e.uniforms.uAlphaMap=c.current,e.uniforms.uHasAlphaMap=i.current}}),[]),e.useFrame((()=>{var e;const n=null==(e=t.current.__r3f)||null==(e=e.parent)?void 0:e.object;if(n){const e=n.material;e&&(o.current.value=null!=r?r:e.opacity,!1===a?(c.current.value=null,i.current.value=!1):(c.current.value=a||e.alphaMap,i.current.value=!!c.current.value))}})),n.createElement(n.Fragment,null,n.createElement("meshDepthMaterial",{ref:t,attach:"customDepthMaterial",depthPacking:u.RGBADepthPacking}),n.createElement("meshDistanceMaterial",{ref:l,attach:"customDistanceMaterial"}))};
|
package/core/ShadowAlpha.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import * as THREE from 'three';
|
|
3
|
-
interface ShadowAlphaProps {
|
|
3
|
+
export interface ShadowAlphaProps {
|
|
4
4
|
opacity?: number;
|
|
5
5
|
alphaMap?: THREE.Texture | boolean;
|
|
6
6
|
}
|
|
7
7
|
export declare function ShadowAlpha({ opacity, alphaMap }: ShadowAlphaProps): React.JSX.Element;
|
|
8
|
-
export {};
|
package/core/ShadowAlpha.js
CHANGED
|
@@ -2,14 +2,14 @@ import { useFrame } from '@react-three/fiber';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import * as THREE from 'three';
|
|
4
4
|
|
|
5
|
-
/**
|
|
6
|
-
* Integration and compilation: Faraz Shaikh (https://twitter.com/CantBeFaraz)
|
|
7
|
-
*
|
|
8
|
-
* Based on:
|
|
9
|
-
* - https://gkjohnson.github.io/threejs-sandbox/screendoor-transparency/ by Garrett Johnson (https://github.com/gkjohnson)
|
|
10
|
-
*
|
|
11
|
-
* Note:
|
|
12
|
-
* - Must depreciate in favor of https://github.com/mrdoob/three.js/issues/10600 when it's ready.
|
|
5
|
+
/**
|
|
6
|
+
* Integration and compilation: Faraz Shaikh (https://twitter.com/CantBeFaraz)
|
|
7
|
+
*
|
|
8
|
+
* Based on:
|
|
9
|
+
* - https://gkjohnson.github.io/threejs-sandbox/screendoor-transparency/ by Garrett Johnson (https://github.com/gkjohnson)
|
|
10
|
+
*
|
|
11
|
+
* Note:
|
|
12
|
+
* - Must depreciate in favor of https://github.com/mrdoob/three.js/issues/10600 when it's ready.
|
|
13
13
|
*/
|
|
14
14
|
function ShadowAlpha({
|
|
15
15
|
opacity,
|
|
@@ -80,7 +80,7 @@ function ShadowAlpha({
|
|
|
80
80
|
}, []);
|
|
81
81
|
useFrame(() => {
|
|
82
82
|
var _r3f;
|
|
83
|
-
const parent = (_r3f = depthMaterialRef.current.__r3f) == null ? void 0 : _r3f.
|
|
83
|
+
const parent = (_r3f = depthMaterialRef.current.__r3f) == null || (_r3f = _r3f.parent) == null ? void 0 : _r3f.object;
|
|
84
84
|
if (parent) {
|
|
85
85
|
const parentMainMaterial = parent.material;
|
|
86
86
|
if (parentMainMaterial) {
|
package/core/Sky.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ReactThreeFiber } from '@react-three/fiber';
|
|
|
2
2
|
import { Sky as SkyImpl } from 'three-stdlib';
|
|
3
3
|
import { Vector3 } from 'three';
|
|
4
4
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
5
|
-
type
|
|
5
|
+
export type SkyProps = {
|
|
6
6
|
distance?: number;
|
|
7
7
|
sunPosition?: ReactThreeFiber.Vector3;
|
|
8
8
|
inclination?: number;
|
|
@@ -13,5 +13,4 @@ type Props = {
|
|
|
13
13
|
turbidity?: number;
|
|
14
14
|
};
|
|
15
15
|
export declare function calcPosFromAngles(inclination: number, azimuth: number, vector?: Vector3): Vector3;
|
|
16
|
-
export declare const Sky: ForwardRefComponent<
|
|
17
|
-
export {};
|
|
16
|
+
export declare const Sky: ForwardRefComponent<SkyProps, SkyImpl>;
|
package/core/Sparkles.d.ts
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
|
-
import {
|
|
2
|
+
import { ThreeElement, ThreeElements } from '@react-three/fiber';
|
|
3
3
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
4
|
-
interface Props {
|
|
5
|
-
count?: number;
|
|
6
|
-
speed?: number | Float32Array;
|
|
7
|
-
opacity?: number | Float32Array;
|
|
8
|
-
color?: THREE.ColorRepresentation | Float32Array;
|
|
9
|
-
size?: number | Float32Array;
|
|
10
|
-
scale?: number | [number, number, number] | THREE.Vector3;
|
|
11
|
-
noise?: number | [number, number, number] | THREE.Vector3 | Float32Array;
|
|
12
|
-
}
|
|
13
4
|
declare class SparklesImplMaterial extends THREE.ShaderMaterial {
|
|
14
5
|
constructor();
|
|
15
6
|
get time(): number;
|
|
@@ -17,12 +8,19 @@ declare class SparklesImplMaterial extends THREE.ShaderMaterial {
|
|
|
17
8
|
get pixelRatio(): number;
|
|
18
9
|
set pixelRatio(value: number);
|
|
19
10
|
}
|
|
20
|
-
declare
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
sparklesImplMaterial: MaterialNode<SparklesImplMaterial, typeof SparklesImplMaterial>;
|
|
24
|
-
}
|
|
11
|
+
declare module '@react-three/fiber' {
|
|
12
|
+
interface ThreeElements {
|
|
13
|
+
sparklesImplMaterial: ThreeElement<typeof SparklesImplMaterial>;
|
|
25
14
|
}
|
|
26
15
|
}
|
|
27
|
-
export
|
|
16
|
+
export type SparklesProps = Omit<ThreeElements['points'], 'ref'> & {
|
|
17
|
+
count?: number;
|
|
18
|
+
speed?: number | Float32Array;
|
|
19
|
+
opacity?: number | Float32Array;
|
|
20
|
+
color?: THREE.ColorRepresentation | Float32Array;
|
|
21
|
+
size?: number | Float32Array;
|
|
22
|
+
scale?: number | [number, number, number] | THREE.Vector3;
|
|
23
|
+
noise?: number | [number, number, number] | THREE.Vector3 | Float32Array;
|
|
24
|
+
};
|
|
25
|
+
export declare const Sparkles: ForwardRefComponent<SparklesProps, THREE.Points>;
|
|
28
26
|
export {};
|
package/core/Splat.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { ThreeElements } from '@react-three/fiber';
|
|
3
4
|
export type SplatMaterialType = {
|
|
4
5
|
alphaTest?: number;
|
|
5
6
|
alphaHash?: boolean;
|
|
@@ -40,19 +41,16 @@ export type SharedState = {
|
|
|
40
41
|
update(target: TargetMesh, camera: THREE.Camera, hashed: boolean): void;
|
|
41
42
|
onProgress?: (event: ProgressEvent) => void;
|
|
42
43
|
};
|
|
43
|
-
declare
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
splatMaterial: SplatMaterialType & JSX.IntrinsicElements['shaderMaterial'];
|
|
47
|
-
}
|
|
44
|
+
declare module '@react-three/fiber' {
|
|
45
|
+
interface ThreeElements {
|
|
46
|
+
splatMaterial: SplatMaterialType & ThreeElements['shaderMaterial'];
|
|
48
47
|
}
|
|
49
48
|
}
|
|
50
|
-
type SplatProps = {
|
|
49
|
+
export type SplatProps = {
|
|
51
50
|
src: string;
|
|
52
51
|
toneMapped?: boolean;
|
|
53
52
|
alphaTest?: number;
|
|
54
53
|
alphaHash?: boolean;
|
|
55
54
|
chunkSize?: number;
|
|
56
|
-
} &
|
|
55
|
+
} & Omit<ThreeElements['mesh'], 'ref'>;
|
|
57
56
|
export declare function Splat({ src, toneMapped, alphaTest, alphaHash, chunkSize, ...props }: SplatProps): React.JSX.Element;
|
|
58
|
-
export {};
|
package/core/SpotLight.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DepthTexture, SpotLight as SpotLightImpl, Texture } from 'three';
|
|
3
|
+
import { ThreeElements } from '@react-three/fiber';
|
|
3
4
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
4
|
-
type SpotLightProps =
|
|
5
|
+
export type SpotLightProps = Omit<ThreeElements['spotLight'], 'ref'> & {
|
|
5
6
|
depthBuffer?: DepthTexture;
|
|
6
7
|
attenuation?: number;
|
|
7
8
|
anglePower?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),n=require("three"),u=require("./Instances.cjs.js"),a=require("./Billboard.cjs.js"),c=require("./useSpriteLoader.cjs.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(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)}require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),n=require("three"),u=require("./Instances.cjs.js"),a=require("./Billboard.cjs.js"),c=require("./useSpriteLoader.cjs.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(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)}require("../helpers/deprecated.cjs.js");var o=l(e),i=s(r),m=s(n);const f=i.createContext(null);const p=new m.PlaneGeometry(1,1),d=i.forwardRef((({startFrame:e=0,endFrame:r,fps:n=30,frameName:l="",textureDataURL:s,textureImageURL:d,loop:h=!1,numberOfFrames:v=1,autoPlay:y=!0,animationNames:w,onStart:E,onEnd:F,onLoopEnd:b,onFrame:g,play:x,pause:S=!1,flipX:j=!1,alphaTest:R=0,children:A,asSprite:M=!1,offset:N,playBackwards:O=!1,resetOnEnd:z=!1,maxItems:q=1,instanceItems:D=[[0,0,0]],spriteDataset:L,canvasRenderingContext2DSettings:P,roundFramePosition:T=!1,meshProps:I={},...k},B)=>{const C=i.useRef(new m.Group),V=i.useRef(null),_=i.useRef(null),U=i.useRef(null),G=i.useRef(window.performance.now()),H=i.useRef(e),J=i.useRef(l),W=n>0?1e3/n:0,[X,K]=i.useState(new m.Texture),Q=i.useRef(0),[Y,Z]=i.useState(new m.Vector3(1,1,1)),$=j?-1:1,ee=i.useRef(S),re=i.useRef(N),te=i.useRef(!1),{spriteObj:ne,loadJsonAndTexture:ue}=c.useSpriteLoader(null,null,w,v,void 0,P),ae=i.useRef(l),ce=i.useCallback(((e,r)=>{if(null===r)v&&(Q.current=v,O&&(H.current=v-1),V.current=r);else{var t,n;V.current=r,V.current&&Array.isArray(V.current.frames)?Q.current=V.current.frames.length:V.current&&"object"==typeof V.current&&ae.current?Q.current=V.current.frames[ae.current].length:Q.current=0,O&&(H.current=Q.current-1);const{w:u,h:a}=c.getFirstFrame(null!==(t=null==(n=V.current)?void 0:n.frames)&&void 0!==t?t:[],ae.current).sourceSize,l=oe(u,a);Z(l),_.current&&(_.current.map=e)}K(e)}),[v,O]),le=i.useCallback((()=>{if(!V.current)return;const{meta:{size:e},frames:r}=V.current,{w:t,h:n}=Array.isArray(r)?r[0].sourceSize:l&&r[l]?r[l][0].sourceSize:{w:0,h:0};_.current&&_.current.map&&(_.current.map.wrapS=_.current.map.wrapT=m.RepeatWrapping,_.current.map.center.set(0,0),_.current.map.repeat.set(1*$/(e.w/t),1/(e.h/n)));const u=1/((e.h-1)/n);_.current&&_.current.map&&(_.current.map.offset.x=0,_.current.map.offset.y=1-u),E&&E({currentFrameName:null!=l?l:"",currentFrame:H.current})}),[$,l,E]),se=i.useMemo((()=>({current:re.current,offset:re.current,imageUrl:d,hasEnded:!1,ref:B})),[d,B]);i.useImperativeHandle(B,(()=>C.current),[]),i.useLayoutEffect((()=>{re.current=N}),[N]);const oe=(e,r)=>{var t;const n=new m.Vector3,u=r/e;return n.set(1,u,1),null==(t=U.current)||t.scale.copy(n),n};i.useEffect((()=>{var e;L?ce(null==L||null==(e=L.spriteTexture)?void 0:e.clone(),L.spriteData):d&&s&&ue(d,s)}),[ue,L,s,d,ce]),i.useEffect((()=>{var e;ne&&ce(null==ne||null==(e=ne.spriteTexture)?void 0:e.clone(),null==ne?void 0:ne.spriteData)}),[ne,ce]),i.useEffect((()=>{var e;(se.hasEnded=!1,V.current&&!0===O)?H.current=(null!==(e=V.current.frames.length)&&void 0!==e?e:0)-1:H.current=0}),[O,se]),i.useLayoutEffect((()=>{le()}),[X,j,le]),i.useEffect((()=>{y&&(ee.current=!1)}),[y]),i.useLayoutEffect((()=>{if(J.current!==l&&l&&(H.current=0,J.current=l,se.hasEnded=!1,W<=0&&(H.current=r||e||0),V.current)){const{w:e,h:r}=c.getFirstFrame(V.current.frames,l).sourceSize,t=oe(e,r);Z(t)}}),[l,W,se,r,e]);const ie=(e,r,t,n)=>{var u=void 0===N?se.current:N;const a=H.current;let c=0,l=0;oe(e,r);const s=T?Math.round((t.w-1)/e):(t.w-1)/e,o=T?Math.round((t.h-1)/r):(t.h-1)/r;if(!n[a])return;const{frame:{x:i,y:m},sourceSize:{w:f,h:p}}=n[a],d=1/s,h=1/o;if(_.current&&_.current.map&&(c=$>0?d*(i/f):d*(i/f)-_.current.map.repeat.x,l=Math.abs(1-h)-h*(m/p),_.current.map.offset.x=c,_.current.map.offset.y=l),null!=u){let e=Math.floor(u*n.length);e=Math.max(0,Math.min(e,n.length-1)),isNaN(e)&&(e=0),H.current=e}else O?H.current-=1:H.current+=1};return t.useFrame(((t,n)=>{var u,a;null!=(u=V.current)&&u.frames&&null!=(a=_.current)&&a.map&&(ee.current||se.hasEnded||!y&&!x||((()=>{if(null===(t=V.current)||!("meta"in t)||!("frames"in t))return;var t;const{meta:{size:n},frames:u}=V.current,{w:a,h:s}=c.getFirstFrame(u,l).sourceSize,o=Array.isArray(u)?u:l?u[l]:[],i=r||o.length-1;var m=void 0===N?se.current:N;if(W<=0)return H.current=r||e||0,void ie(a,s,n,o);const f=window.performance.now(),p=f-G.current;if(!(p<=W)){var d=O?H.current<0:H.current>i,v=O?H.current===i:0===H.current,y=O?H.current<0:H.current>=i;if(d){if(H.current=h&&null!=e?e:0,O&&(H.current=i),h?null==b||b({currentFrameName:null!=l?l:"",currentFrame:H.current}):(null==F||F({currentFrameName:null!=l?l:"",currentFrame:H.current}),se.hasEnded=!z,z&&(ee.current=!0)),!h)return}else v&&(null==E||E({currentFrameName:null!=l?l:"",currentFrame:H.current}));void 0!==m&&y?!1===te.current&&(null==F||F({currentFrameName:null!=l?l:"",currentFrame:H.current}),te.current=!0):te.current=!1,p<=W||(G.current=f-p%W,ie(a,s,n,o))}})(),null==g||g({currentFrameName:J.current,currentFrame:H.current})))})),i.createElement("group",o.default({},k,{ref:C,scale:function(e=new m.Vector3(1,1,1),r=1){return"number"==typeof r?e.multiplyScalar(r):Array.isArray(r)?e.multiply(new m.Vector3(...r)):r instanceof m.Vector3?e.multiply(r):void 0}(Y,k.scale)}),i.createElement(f.Provider,{value:se},M&&i.createElement(a.Billboard,null,i.createElement("mesh",o.default({ref:U,scale:1,geometry:p},I),i.createElement("meshBasicMaterial",{premultipliedAlpha:!1,toneMapped:!1,side:m.DoubleSide,ref:_,map:X,transparent:!0,alphaTest:null!=R?R:0}))),!M&&i.createElement(u.Instances,o.default({geometry:p,limit:null!=q?q:1},I),i.createElement("meshBasicMaterial",{premultipliedAlpha:!1,toneMapped:!1,side:m.DoubleSide,ref:_,map:X,transparent:!0,alphaTest:null!=R?R:0}),(null!=D?D:[0]).map(((e,r)=>i.createElement(u.Instance,o.default({key:r,ref:1===(null==D?void 0:D.length)?U:null,position:e,scale:1},I))))),A))}));exports.SpriteAnimator=d,exports.useSpriteAnimator=function(){return i.useContext(f)};
|
package/core/SpriteAnimator.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { Vector3 } from '@react-three/fiber';
|
|
2
|
+
import { ThreeElements, Vector3 } from '@react-three/fiber';
|
|
3
3
|
import * as THREE from 'three';
|
|
4
4
|
import { Instances, Instance } from './Instances';
|
|
5
5
|
import { SpriteData } from './useSpriteLoader';
|
|
@@ -42,7 +42,7 @@ export type SpriteAnimatorProps = {
|
|
|
42
42
|
canvasRenderingContext2DSettings?: CanvasRenderingContext2DSettings;
|
|
43
43
|
roundFramePosition?: boolean;
|
|
44
44
|
meshProps?: CommonMeshProps;
|
|
45
|
-
} &
|
|
45
|
+
} & Omit<ThreeElements['group'], 'ref'>;
|
|
46
46
|
type SpriteAnimatorState = {
|
|
47
47
|
current?: number;
|
|
48
48
|
offset?: number;
|
|
@@ -51,5 +51,38 @@ type SpriteAnimatorState = {
|
|
|
51
51
|
ref: React.Ref<THREE.Group>;
|
|
52
52
|
};
|
|
53
53
|
export declare function useSpriteAnimator(): SpriteAnimatorState | null;
|
|
54
|
-
export declare const SpriteAnimator: React.ForwardRefExoticComponent<
|
|
54
|
+
export declare const SpriteAnimator: React.ForwardRefExoticComponent<{
|
|
55
|
+
startFrame?: number;
|
|
56
|
+
endFrame?: number;
|
|
57
|
+
fps?: number;
|
|
58
|
+
frameName?: string;
|
|
59
|
+
textureDataURL?: string;
|
|
60
|
+
textureImageURL?: string;
|
|
61
|
+
loop?: boolean;
|
|
62
|
+
numberOfFrames?: number;
|
|
63
|
+
autoPlay?: boolean;
|
|
64
|
+
animationNames?: Array<string>;
|
|
65
|
+
onStart?: (data: AnimationEventData) => void;
|
|
66
|
+
onEnd?: (data: AnimationEventData) => void;
|
|
67
|
+
onLoopEnd?: (data: AnimationEventData) => void;
|
|
68
|
+
onFrame?: (data: AnimationEventData) => void;
|
|
69
|
+
play?: boolean;
|
|
70
|
+
pause?: boolean;
|
|
71
|
+
flipX?: boolean;
|
|
72
|
+
alphaTest?: number;
|
|
73
|
+
asSprite?: boolean;
|
|
74
|
+
offset?: number;
|
|
75
|
+
playBackwards?: boolean;
|
|
76
|
+
resetOnEnd?: boolean;
|
|
77
|
+
instanceItems?: Vector3[];
|
|
78
|
+
maxItems?: number;
|
|
79
|
+
spriteDataset?: {
|
|
80
|
+
spriteTexture: THREE.Texture;
|
|
81
|
+
spriteData: SpriteData | null;
|
|
82
|
+
aspect: Vector3;
|
|
83
|
+
} | null;
|
|
84
|
+
canvasRenderingContext2DSettings?: CanvasRenderingContext2DSettings;
|
|
85
|
+
roundFramePosition?: boolean;
|
|
86
|
+
meshProps?: CommonMeshProps;
|
|
87
|
+
} & Omit<import("@react-three/fiber/dist/declarations/src/core/utils").Mutable<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<Partial<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<THREE.Group<THREE.Object3DEventMap>, import("@react-three/fiber").MathProps<THREE.Group<THREE.Object3DEventMap>> & import("@react-three/fiber").ReactProps<THREE.Group<THREE.Object3DEventMap>> & Partial<import("@react-three/fiber").EventHandlers>>>, Omit<import("@react-three/fiber").InstanceProps<THREE.Group<THREE.Object3DEventMap>, typeof THREE.Group>, "object">>>, "ref"> & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
|
|
55
88
|
export {};
|