@react-three/drei 9.83.9 → 9.84.1
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 +116 -5
- package/core/AccumulativeShadows.d.ts +3 -3
- package/core/AccumulativeShadows.js +30 -36
- package/core/AdaptiveDpr.js +4 -4
- package/core/ArcballControls.d.ts +1 -1
- package/core/ArcballControls.js +0 -1
- package/core/AsciiRenderer.d.ts +3 -3
- package/core/AsciiRenderer.js +12 -6
- package/core/BBAnchor.cjs.js +1 -1
- package/core/BBAnchor.d.ts +2 -2
- package/core/BBAnchor.js +5 -5
- package/core/Backdrop.d.ts +2 -2
- package/core/Backdrop.js +0 -3
- package/core/Billboard.d.ts +1 -1
- package/core/Billboard.js +6 -3
- package/core/Bounds.d.ts +5 -5
- package/core/Bounds.js +5 -32
- package/core/CameraControls.d.ts +2 -2
- package/core/CameraControls.js +0 -3
- package/core/CameraShake.js +0 -4
- package/core/CatmullRomLine.d.ts +1 -1
- package/core/CatmullRomLine.js +0 -2
- package/core/Caustics.d.ts +1 -1
- package/core/Caustics.js +31 -32
- package/core/Center.d.ts +2 -2
- package/core/Center.js +2 -1
- package/core/Clone.d.ts +1 -1
- package/core/Clone.js +10 -13
- package/core/Cloud.cjs.js +1 -1
- package/core/Cloud.d.ts +2 -2
- package/core/Cloud.js +1 -2
- package/core/ComputedAttribute.d.ts +2 -2
- package/core/ComputedAttribute.js +0 -1
- package/core/ContactShadows.d.ts +1 -1
- package/core/ContactShadows.js +6 -7
- package/core/CubeCamera.cjs.js +1 -1
- package/core/CubeCamera.d.ts +2 -2
- package/core/CubeCamera.js +1 -1
- package/core/CubicBezierLine.d.ts +1 -1
- package/core/CurveModifier.d.ts +1 -1
- package/core/CurveModifier.js +2 -4
- package/core/Decal.d.ts +1 -1
- package/core/Decal.js +8 -15
- package/core/Detailed.d.ts +1 -1
- package/core/Detailed.js +0 -1
- package/core/DeviceOrientationControls.d.ts +1 -1
- package/core/DeviceOrientationControls.js +3 -4
- package/core/Edges.d.ts +1 -1
- package/core/Edges.js +0 -2
- package/core/Effects.d.ts +1 -1
- package/core/Effects.js +5 -7
- package/core/Environment.d.ts +3 -3
- package/core/Environment.js +6 -12
- package/core/Example.d.ts +3 -3
- package/core/Example.js +2 -1
- package/core/FaceControls.cjs.js +1 -1
- package/core/FaceControls.d.ts +5 -5
- package/core/FaceControls.js +42 -39
- package/core/FaceLandmarker.d.ts +3 -2
- package/core/FaceLandmarker.js +1 -1
- package/core/Facemesh.d.ts +6 -6
- package/core/Facemesh.js +47 -53
- package/core/FirstPersonControls.d.ts +1 -1
- package/core/Float.d.ts +1 -1
- package/core/Float.js +0 -1
- package/core/FlyControls.d.ts +1 -1
- package/core/FlyControls.js +1 -2
- package/core/GizmoHelper.cjs.js +1 -1
- package/core/GizmoHelper.d.ts +2 -2
- package/core/GizmoHelper.js +18 -19
- package/core/GizmoViewcube.d.ts +3 -3
- package/core/GizmoViewcube.js +0 -14
- package/core/GizmoViewport.d.ts +3 -3
- package/core/GizmoViewport.js +0 -7
- package/core/Gltf.d.ts +1 -1
- package/core/GradientTexture.d.ts +3 -3
- package/core/GradientTexture.js +2 -5
- package/core/Grid.d.ts +2 -2
- package/core/Grid.js +2 -6
- package/core/Hud.d.ts +2 -2
- package/core/Hud.js +6 -9
- package/core/Image.d.ts +2 -2
- package/core/Image.js +4 -6
- package/core/Instances.d.ts +6 -6
- package/core/Instances.js +20 -35
- package/core/Lightformer.d.ts +1 -1
- package/core/Lightformer.js +4 -2
- package/core/Line.d.ts +1 -1
- package/core/Line.js +0 -3
- package/core/MapControls.d.ts +1 -1
- package/core/MapControls.js +0 -2
- package/core/MarchingCubes.d.ts +3 -3
- package/core/Mask.d.ts +1 -1
- package/core/MeshDistortMaterial.d.ts +2 -2
- package/core/MeshDistortMaterial.js +0 -9
- package/core/MeshPortalMaterial.d.ts +4 -4
- package/core/MeshPortalMaterial.js +22 -61
- package/core/MeshReflectorMaterial.d.ts +1 -1
- package/core/MeshReflectorMaterial.js +12 -14
- package/core/MeshRefractionMaterial.cjs.js +1 -1
- package/core/MeshRefractionMaterial.d.ts +3 -3
- package/core/MeshRefractionMaterial.js +9 -14
- package/core/MeshTransmissionMaterial.d.ts +2 -2
- package/core/MeshTransmissionMaterial.js +32 -33
- package/core/MeshWobbleMaterial.d.ts +2 -2
- package/core/MeshWobbleMaterial.js +0 -7
- package/core/MotionPathControls.cjs.js +1 -0
- package/core/MotionPathControls.d.ts +15 -0
- package/core/MotionPathControls.js +113 -0
- package/core/OrbitControls.d.ts +2 -2
- package/core/OrbitControls.js +0 -4
- package/core/OrthographicCamera.d.ts +1 -1
- package/core/OrthographicCamera.js +2 -3
- package/core/Outlines.cjs.js +1 -1
- package/core/Outlines.d.ts +3 -3
- package/core/Outlines.js +2 -7
- package/core/PerformanceMonitor.d.ts +4 -4
- package/core/PerformanceMonitor.js +8 -12
- package/core/PerspectiveCamera.d.ts +1 -1
- package/core/PerspectiveCamera.js +2 -3
- package/core/PointMaterial.d.ts +1 -1
- package/core/PointMaterial.js +0 -2
- package/core/PointerLockControls.d.ts +1 -1
- package/core/PointerLockControls.js +4 -6
- package/core/Points.d.ts +2 -2
- package/core/Points.js +6 -23
- package/core/PositionalAudio.d.ts +1 -1
- package/core/PositionalAudio.js +0 -5
- package/core/Preload.d.ts +1 -1
- package/core/Preload.js +8 -9
- package/core/QuadraticBezierLine.d.ts +2 -2
- package/core/QuadraticBezierLine.js +0 -2
- package/core/Reflector.d.ts +1 -1
- package/core/Reflector.js +11 -12
- package/core/RenderTexture.d.ts +1 -1
- package/core/RenderTexture.js +9 -11
- package/core/Resize.d.ts +2 -2
- package/core/RoundedBox.cjs.js +1 -1
- package/core/RoundedBox.d.ts +1 -1
- package/core/RoundedBox.js +1 -3
- package/core/Sampler.d.ts +5 -5
- package/core/Sampler.js +0 -10
- package/core/ScreenQuad.d.ts +1 -1
- package/core/ScreenQuad.js +0 -1
- package/core/ScreenSpace.d.ts +1 -1
- package/core/Segments.d.ts +2 -2
- package/core/Segments.js +0 -6
- package/core/Shadow.d.ts +1 -1
- package/core/Sky.d.ts +1 -1
- package/core/Sparkles.js +0 -10
- package/core/SpotLight.d.ts +2 -2
- package/core/SpotLight.js +3 -10
- package/core/SpriteAnimator.d.ts +1 -1
- package/core/SpriteAnimator.js +16 -34
- package/core/Stage.d.ts +4 -4
- package/core/Stage.js +2 -4
- package/core/Stars.d.ts +1 -1
- package/core/Stars.js +2 -11
- package/core/Stats.d.ts +1 -1
- package/core/Stats.js +2 -2
- package/core/StatsGl.d.ts +1 -1
- package/core/StatsGl.js +4 -3
- package/core/Svg.js +0 -2
- package/core/Text.d.ts +1 -1
- package/core/Text3D.d.ts +1 -1
- package/core/Text3D.js +1 -3
- package/core/TrackballControls.d.ts +1 -1
- package/core/TrackballControls.js +0 -1
- package/core/Trail.d.ts +3 -3
- package/core/Trail.js +6 -17
- package/core/TransformControls.d.ts +1 -1
- package/core/TransformControls.js +3 -9
- package/core/Wireframe.d.ts +1 -1
- package/core/Wireframe.js +0 -28
- package/core/index.cjs.js +1 -1
- package/core/index.d.ts +1 -0
- package/core/index.js +1 -0
- package/core/meshBounds.js +4 -14
- package/core/shaderMaterial.js +10 -9
- package/core/shapes.d.ts +2 -2
- package/core/shapes.js +3 -6
- package/core/softShadows.d.ts +1 -1
- package/core/softShadows.js +1 -4
- package/core/useAnimations.d.ts +1 -1
- package/core/useAnimations.js +2 -4
- package/core/useBVH.d.ts +1 -1
- package/core/useBVH.js +3 -4
- package/core/useBoxProjectedEnv.js +15 -22
- package/core/useCamera.js +0 -1
- package/core/useContextBridge.js +1 -2
- package/core/useCubeCamera.d.ts +1 -1
- package/core/useCubeTexture.d.ts +1 -1
- package/core/useCubeTexture.js +4 -3
- package/core/useEnvironment.cjs.js +1 -1
- package/core/useEnvironment.d.ts +2 -2
- package/core/useEnvironment.js +9 -11
- package/core/useFBO.d.ts +1 -1
- package/core/useFBO.js +3 -12
- package/core/useFBX.js +0 -2
- package/core/useFont.d.ts +2 -2
- package/core/useFont.js +0 -4
- package/core/useGLTF.d.ts +2 -2
- package/core/useGLTF.js +0 -8
- package/core/useHelper.d.ts +3 -3
- package/core/useHelper.js +2 -5
- package/core/useIntersect.js +5 -8
- package/core/useKTX2.js +3 -5
- package/core/useMatcapTexture.js +0 -6
- package/core/useNormalTexture.d.ts +1 -1
- package/core/useProgress.d.ts +1 -1
- package/core/useProgress.js +0 -5
- package/core/useTexture.js +4 -6
- package/core/useTrailTexture.d.ts +1 -1
- package/core/useTrailTexture.js +10 -21
- package/helpers/environment-assets.d.ts +1 -1
- package/helpers/ts-utils.d.ts +2 -2
- package/helpers/useEffectfulState.d.ts +1 -1
- package/helpers/useEffectfulState.js +0 -1
- package/index.cjs.js +1 -1
- package/index.js +1 -0
- package/materials/BlurPass.js +2 -5
- package/materials/ConvolutionMaterial.js +0 -3
- package/materials/MeshReflectorMaterial.d.ts +1 -1
- package/materials/MeshReflectorMaterial.js +0 -34
- package/materials/MeshRefractionMaterial.js +2 -6
- package/materials/SpotLightMaterial.js +2 -7
- package/materials/WireframeMaterial.js +7 -25
- package/native/index.cjs.js +1 -1
- package/native/index.js +1 -0
- package/package.json +2 -2
- package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
- package/web/CycleRaycast.d.ts +1 -1
- package/web/CycleRaycast.js +20 -24
- package/web/Html.d.ts +2 -2
- package/web/Html.js +6 -50
- package/web/KeyboardControls.d.ts +10 -10
- package/web/KeyboardControls.js +9 -6
- package/web/Loader.d.ts +2 -2
- package/web/Loader.js +8 -5
- package/web/PresentationControls.d.ts +2 -2
- package/web/PresentationControls.js +2 -1
- package/web/ScrollControls.d.ts +4 -4
- package/web/ScrollControls.js +5 -16
- package/web/Select.d.ts +3 -3
- package/web/Select.js +6 -17
- package/web/View.d.ts +5 -5
- package/web/View.js +7 -20
- package/web/index.cjs.js +1 -1
- package/web/index.js +1 -0
- package/web/pivotControls/AxisArrow.js +6 -15
- package/web/pivotControls/AxisRotator.js +8 -23
- package/web/pivotControls/PlaneSlider.js +6 -16
- package/web/pivotControls/context.d.ts +2 -2
- package/web/pivotControls/index.d.ts +1 -1
- package/web/pivotControls/index.js +2 -9
package/core/Trail.js
CHANGED
|
@@ -11,13 +11,11 @@ const defaults = {
|
|
|
11
11
|
stride: 0,
|
|
12
12
|
interval: 1
|
|
13
13
|
};
|
|
14
|
-
|
|
15
14
|
const shiftLeft = (collection, steps = 1) => {
|
|
16
15
|
collection.set(collection.subarray(steps));
|
|
17
16
|
collection.fill(-Infinity, -steps);
|
|
18
17
|
return collection;
|
|
19
18
|
};
|
|
20
|
-
|
|
21
19
|
function useTrail(target, settings) {
|
|
22
20
|
const {
|
|
23
21
|
length,
|
|
@@ -25,7 +23,8 @@ function useTrail(target, settings) {
|
|
|
25
23
|
decay,
|
|
26
24
|
interval,
|
|
27
25
|
stride
|
|
28
|
-
} = {
|
|
26
|
+
} = {
|
|
27
|
+
...defaults,
|
|
29
28
|
...settings
|
|
30
29
|
};
|
|
31
30
|
const points = React.useRef();
|
|
@@ -42,28 +41,22 @@ function useTrail(target, settings) {
|
|
|
42
41
|
useFrame(() => {
|
|
43
42
|
if (!target) return;
|
|
44
43
|
if (!points.current) return;
|
|
45
|
-
|
|
46
44
|
if (frameCount.current === 0) {
|
|
47
45
|
let newPosition;
|
|
48
|
-
|
|
49
46
|
if (local) {
|
|
50
47
|
newPosition = target.position;
|
|
51
48
|
} else {
|
|
52
49
|
target.getWorldPosition(worldPosition);
|
|
53
50
|
newPosition = worldPosition;
|
|
54
51
|
}
|
|
55
|
-
|
|
56
52
|
const steps = 1 * decay;
|
|
57
|
-
|
|
58
53
|
for (let i = 0; i < steps; i++) {
|
|
59
54
|
if (newPosition.distanceTo(prevPosition.current) < stride) continue;
|
|
60
55
|
shiftLeft(points.current, 3);
|
|
61
56
|
points.current.set(newPosition.toArray(), points.current.length - 3);
|
|
62
57
|
}
|
|
63
|
-
|
|
64
58
|
prevPosition.current.copy(newPosition);
|
|
65
59
|
}
|
|
66
|
-
|
|
67
60
|
frameCount.current++;
|
|
68
61
|
frameCount.current = frameCount.current % interval;
|
|
69
62
|
});
|
|
@@ -80,7 +73,8 @@ const Trail = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
|
|
|
80
73
|
local,
|
|
81
74
|
stride,
|
|
82
75
|
interval
|
|
83
|
-
} = {
|
|
76
|
+
} = {
|
|
77
|
+
...defaults,
|
|
84
78
|
...props
|
|
85
79
|
};
|
|
86
80
|
const {
|
|
@@ -103,7 +97,6 @@ const Trail = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
|
|
|
103
97
|
const t = (target == null ? void 0 : target.current) || ref.current.children.find(o => {
|
|
104
98
|
return o instanceof Object3D;
|
|
105
99
|
});
|
|
106
|
-
|
|
107
100
|
if (t) {
|
|
108
101
|
setAnchor(t);
|
|
109
102
|
}
|
|
@@ -111,16 +104,15 @@ const Trail = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
|
|
|
111
104
|
const geo = React.useMemo(() => new MeshLineGeometry(), []);
|
|
112
105
|
const mat = React.useMemo(() => {
|
|
113
106
|
var _matOverride;
|
|
114
|
-
|
|
115
107
|
const m = new MeshLineMaterial({
|
|
116
108
|
lineWidth: 0.1 * width,
|
|
117
109
|
color: color,
|
|
118
110
|
sizeAttenuation: 1,
|
|
119
111
|
resolution: new Vector2(size.width, size.height)
|
|
120
|
-
});
|
|
112
|
+
});
|
|
121
113
|
|
|
114
|
+
// Get and apply first <meshLineMaterial /> from children
|
|
122
115
|
let matOverride;
|
|
123
|
-
|
|
124
116
|
if (children) {
|
|
125
117
|
if (Array.isArray(children)) {
|
|
126
118
|
matOverride = children.find(child => {
|
|
@@ -129,17 +121,14 @@ const Trail = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
|
|
|
129
121
|
});
|
|
130
122
|
} else {
|
|
131
123
|
const c = children;
|
|
132
|
-
|
|
133
124
|
if (typeof c.type === 'string' && c.type === 'meshLineMaterial') {
|
|
134
125
|
matOverride = c;
|
|
135
126
|
}
|
|
136
127
|
}
|
|
137
128
|
}
|
|
138
|
-
|
|
139
129
|
if (typeof ((_matOverride = matOverride) == null ? void 0 : _matOverride.props) === 'object') {
|
|
140
130
|
m.setValues(matOverride.props);
|
|
141
131
|
}
|
|
142
|
-
|
|
143
132
|
return m;
|
|
144
133
|
}, [width, color, size, children]);
|
|
145
134
|
React.useEffect(() => {
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import * as THREE from 'three';
|
|
4
4
|
import { TransformControls as TransformControlsImpl } from 'three-stdlib';
|
|
5
5
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
6
|
-
export
|
|
6
|
+
export type TransformControlsProps = ReactThreeFiber.Object3DNode<TransformControlsImpl, typeof TransformControlsImpl> & JSX.IntrinsicElements['group'] & {
|
|
7
7
|
object?: THREE.Object3D | React.MutableRefObject<THREE.Object3D>;
|
|
8
8
|
enabled?: boolean;
|
|
9
9
|
axis?: string | null;
|
|
@@ -23,8 +23,8 @@ const TransformControls = /*#__PURE__*/React.forwardRef(({
|
|
|
23
23
|
...rest
|
|
24
24
|
} = props;
|
|
25
25
|
const transformProps = pick(rest, transformOnlyPropNames);
|
|
26
|
-
const objectProps = omit(rest, transformOnlyPropNames);
|
|
27
|
-
|
|
26
|
+
const objectProps = omit(rest, transformOnlyPropNames);
|
|
27
|
+
// @ts-expect-error new in @react-three/fiber@7.0.5
|
|
28
28
|
const defaultControls = useThree(state => state.controls);
|
|
29
29
|
const gl = useThree(state => state.gl);
|
|
30
30
|
const events = useThree(state => state.events);
|
|
@@ -42,13 +42,11 @@ const TransformControls = /*#__PURE__*/React.forwardRef(({
|
|
|
42
42
|
} else if (group.current instanceof THREE.Object3D) {
|
|
43
43
|
controls.attach(group.current);
|
|
44
44
|
}
|
|
45
|
-
|
|
46
45
|
return () => void controls.detach();
|
|
47
46
|
}, [object, children, controls]);
|
|
48
47
|
React.useEffect(() => {
|
|
49
48
|
if (defaultControls) {
|
|
50
49
|
const callback = event => defaultControls.enabled = !event.value;
|
|
51
|
-
|
|
52
50
|
controls.addEventListener('dragging-changed', callback);
|
|
53
51
|
return () => controls.removeEventListener('dragging-changed', callback);
|
|
54
52
|
}
|
|
@@ -64,15 +62,11 @@ const TransformControls = /*#__PURE__*/React.forwardRef(({
|
|
|
64
62
|
React.useEffect(() => {
|
|
65
63
|
const onChange = e => {
|
|
66
64
|
invalidate();
|
|
67
|
-
onChangeRef.current == null
|
|
65
|
+
onChangeRef.current == null || onChangeRef.current(e);
|
|
68
66
|
};
|
|
69
|
-
|
|
70
67
|
const onMouseDown = e => onMouseDownRef.current == null ? void 0 : onMouseDownRef.current(e);
|
|
71
|
-
|
|
72
68
|
const onMouseUp = e => onMouseUpRef.current == null ? void 0 : onMouseUpRef.current(e);
|
|
73
|
-
|
|
74
69
|
const onObjectChange = e => onObjectChangeRef.current == null ? void 0 : onObjectChangeRef.current(e);
|
|
75
|
-
|
|
76
70
|
controls.addEventListener('change', onChange);
|
|
77
71
|
controls.addEventListener('mouseDown', onMouseDown);
|
|
78
72
|
controls.addEventListener('mouseUp', onMouseUp);
|
package/core/Wireframe.d.ts
CHANGED
|
@@ -13,5 +13,5 @@ interface WireframeProps {
|
|
|
13
13
|
geometry?: THREE.BufferGeometry | React.RefObject<THREE.BufferGeometry>;
|
|
14
14
|
simplify?: boolean;
|
|
15
15
|
}
|
|
16
|
-
export declare function Wireframe({ geometry: customGeometry, ...props }: WireframeProps & WireframeMaterialProps): JSX.Element;
|
|
16
|
+
export declare function Wireframe({ geometry: customGeometry, ...props }: WireframeProps & WireframeMaterialProps): React.JSX.Element;
|
|
17
17
|
export {};
|
package/core/Wireframe.js
CHANGED
|
@@ -7,82 +7,64 @@ import { WireframeMaterial, WireframeMaterialShaders, useWireframeUniforms, setW
|
|
|
7
7
|
FIBER.extend({
|
|
8
8
|
MeshWireframeMaterial: WireframeMaterial
|
|
9
9
|
});
|
|
10
|
-
|
|
11
10
|
function isWithGeometry(object) {
|
|
12
11
|
return !!(object != null && object.geometry);
|
|
13
12
|
}
|
|
14
|
-
|
|
15
13
|
function isGeometry(object) {
|
|
16
14
|
return !!(object != null && object.isBufferGeometry);
|
|
17
15
|
}
|
|
18
|
-
|
|
19
16
|
function isRefObject(object) {
|
|
20
17
|
return !!(object != null && object.current);
|
|
21
18
|
}
|
|
22
|
-
|
|
23
19
|
function isRef(object) {
|
|
24
20
|
return (object == null ? void 0 : object.current) !== undefined;
|
|
25
21
|
}
|
|
26
|
-
|
|
27
22
|
function isWireframeGeometry(geometry) {
|
|
28
23
|
return geometry.type === 'WireframeGeometry';
|
|
29
24
|
}
|
|
30
|
-
|
|
31
25
|
function getUniforms() {
|
|
32
26
|
const u = {};
|
|
33
|
-
|
|
34
27
|
for (const key in WireframeMaterialShaders.uniforms) {
|
|
35
28
|
u[key] = {
|
|
36
29
|
value: WireframeMaterialShaders.uniforms[key]
|
|
37
30
|
};
|
|
38
31
|
}
|
|
39
|
-
|
|
40
32
|
return u;
|
|
41
33
|
}
|
|
42
|
-
|
|
43
34
|
function getBarycentricCoordinates(geometry, removeEdge) {
|
|
44
35
|
const position = geometry.getAttribute('position');
|
|
45
36
|
const count = position.count;
|
|
46
37
|
const barycentric = [];
|
|
47
|
-
|
|
48
38
|
for (let i = 0; i < count; i++) {
|
|
49
39
|
const even = i % 2 === 0;
|
|
50
40
|
const Q = removeEdge ? 1 : 0;
|
|
51
|
-
|
|
52
41
|
if (even) {
|
|
53
42
|
barycentric.push(0, 0, 1, 0, 1, 0, 1, 0, Q);
|
|
54
43
|
} else {
|
|
55
44
|
barycentric.push(0, 1, 0, 0, 0, 1, 1, 0, Q);
|
|
56
45
|
}
|
|
57
46
|
}
|
|
58
|
-
|
|
59
47
|
return new THREE.BufferAttribute(Float32Array.from(barycentric), 3);
|
|
60
48
|
}
|
|
61
|
-
|
|
62
49
|
function getInputGeometry(inputGeometry) {
|
|
63
50
|
const geo = isRefObject(inputGeometry) ? inputGeometry.current : inputGeometry;
|
|
64
|
-
|
|
65
51
|
if (!isGeometry(geo)) {
|
|
66
52
|
// Disallow WireframeGeometry
|
|
67
53
|
if (isWireframeGeometry(geo)) {
|
|
68
54
|
throw new Error('Wireframe: WireframeGeometry is not supported.');
|
|
69
55
|
}
|
|
70
|
-
|
|
71
56
|
const parent = geo.parent;
|
|
72
|
-
|
|
73
57
|
if (isWithGeometry(parent)) {
|
|
74
58
|
// Disallow WireframeGeometry
|
|
75
59
|
if (isWireframeGeometry(parent.geometry)) {
|
|
76
60
|
throw new Error('Wireframe: WireframeGeometry is not supported.');
|
|
77
61
|
}
|
|
78
|
-
|
|
79
62
|
return parent.geometry;
|
|
80
63
|
}
|
|
81
64
|
} else {
|
|
82
65
|
return geo;
|
|
83
66
|
}
|
|
84
67
|
}
|
|
85
|
-
|
|
86
68
|
function setBarycentricCoordinates(geometry, simplify) {
|
|
87
69
|
if (geometry.index) {
|
|
88
70
|
console.warn('Wireframe: Requires non-indexed geometry, converting to non-indexed geometry.');
|
|
@@ -90,11 +72,9 @@ function setBarycentricCoordinates(geometry, simplify) {
|
|
|
90
72
|
geometry.copy(nonIndexedGeo);
|
|
91
73
|
geometry.setIndex(null);
|
|
92
74
|
}
|
|
93
|
-
|
|
94
75
|
const newBarycentric = getBarycentricCoordinates(geometry, simplify);
|
|
95
76
|
geometry.setAttribute('barycentric', newBarycentric);
|
|
96
77
|
}
|
|
97
|
-
|
|
98
78
|
function WireframeWithCustomGeo({
|
|
99
79
|
geometry: customGeometry,
|
|
100
80
|
simplify = false,
|
|
@@ -103,13 +83,10 @@ function WireframeWithCustomGeo({
|
|
|
103
83
|
const [geometry, setGeometry] = React.useState(null);
|
|
104
84
|
React.useLayoutEffect(() => {
|
|
105
85
|
const geom = getInputGeometry(customGeometry);
|
|
106
|
-
|
|
107
86
|
if (!geom) {
|
|
108
87
|
throw new Error('Wireframe: geometry prop must be a BufferGeometry or a ref to a BufferGeometry.');
|
|
109
88
|
}
|
|
110
|
-
|
|
111
89
|
setBarycentricCoordinates(geom, simplify);
|
|
112
|
-
|
|
113
90
|
if (isRef(customGeometry)) {
|
|
114
91
|
setGeometry(geom);
|
|
115
92
|
}
|
|
@@ -133,7 +110,6 @@ function WireframeWithCustomGeo({
|
|
|
133
110
|
}
|
|
134
111
|
}))));
|
|
135
112
|
}
|
|
136
|
-
|
|
137
113
|
function WireframeWithoutCustomGeo({
|
|
138
114
|
simplify = false,
|
|
139
115
|
...props
|
|
@@ -143,11 +119,9 @@ function WireframeWithoutCustomGeo({
|
|
|
143
119
|
useWireframeUniforms(uniforms, props);
|
|
144
120
|
React.useLayoutEffect(() => {
|
|
145
121
|
const geom = getInputGeometry(objectRef);
|
|
146
|
-
|
|
147
122
|
if (!geom) {
|
|
148
123
|
throw new Error('Wireframe: Must be a child of a Mesh, Line or Points object or specify a geometry prop.');
|
|
149
124
|
}
|
|
150
|
-
|
|
151
125
|
const og = geom.clone();
|
|
152
126
|
setBarycentricCoordinates(geom, simplify);
|
|
153
127
|
return () => {
|
|
@@ -168,7 +142,6 @@ function WireframeWithoutCustomGeo({
|
|
|
168
142
|
ref: objectRef
|
|
169
143
|
});
|
|
170
144
|
}
|
|
171
|
-
|
|
172
145
|
function Wireframe({
|
|
173
146
|
geometry: customGeometry,
|
|
174
147
|
...props
|
|
@@ -178,7 +151,6 @@ function Wireframe({
|
|
|
178
151
|
geometry: customGeometry
|
|
179
152
|
}, props));
|
|
180
153
|
}
|
|
181
|
-
|
|
182
154
|
return /*#__PURE__*/React.createElement(WireframeWithoutCustomGeo, props);
|
|
183
155
|
}
|
|
184
156
|
|
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"),l=require("./Edges.cjs.js"),x=require("./Outlines.cjs.js"),q=require("./Trail.cjs.js"),m=require("./Sampler.cjs.js"),d=require("./ComputedAttribute.cjs.js"),h=require("./Clone.cjs.js"),C=require("./MarchingCubes.cjs.js"),M=require("./Decal.cjs.js"),S=require("./Svg.cjs.js"),f=require("./Gltf.cjs.js"),T=require("./AsciiRenderer.cjs.js"),P=require("./OrthographicCamera.cjs.js"),b=require("./PerspectiveCamera.cjs.js"),B=require("./CubeCamera.cjs.js"),g=require("./DeviceOrientationControls.cjs.js"),v=require("./FlyControls.cjs.js"),F=require("./MapControls.cjs.js"),L=require("./OrbitControls.cjs.js"),A=require("./TrackballControls.cjs.js"),k=require("./ArcballControls.cjs.js"),D=require("./TransformControls.cjs.js"),E=require("./PointerLockControls.cjs.js"),G=require("./FirstPersonControls.cjs.js"),R=require("./CameraControls.cjs.js"),w=require("./FaceControls.cjs.js"),z=require("./GizmoHelper.cjs.js"),O=require("./GizmoViewcube.cjs.js"),y=require("./GizmoViewport.cjs.js"),I=require("./Grid.cjs.js"),H=require("./useCubeTexture.cjs.js"),V=require("./useFBX.cjs.js"),W=require("./useGLTF.cjs.js"),Q=require("./useKTX2.cjs.js"),X=require("./useProgress.cjs.js"),K=require("./useTexture.cjs.js"),N=require("./useVideoTexture.cjs.js"),U=require("./useFont.cjs.js"),_=require("./Stats.cjs.js"),J=require("./StatsGl.cjs.js"),Y=require("./useDepthBuffer.cjs.js"),Z=require("./useAspect.cjs.js"),$=require("./useCamera.cjs.js"),ee=require("./useDetectGPU.cjs.js"),re=require("./useHelper.cjs.js"),se=require("./useBVH.cjs.js"),te=require("./useContextBridge.cjs.js"),oe=require("./useAnimations.cjs.js"),ie=require("./useFBO.cjs.js"),ae=require("./useIntersect.cjs.js"),ue=require("./useBoxProjectedEnv.cjs.js"),ce=require("./BBAnchor.cjs.js"),ne=require("./useTrailTexture.cjs.js"),je=require("./useCubeCamera.cjs.js"),pe=require("./Example.cjs.js"),le=require("./SpriteAnimator.cjs.js"),xe=require("./FaceLandmarker.cjs.js"),qe=require("./CurveModifier.cjs.js"),me=require("./MeshDistortMaterial.cjs.js"),de=require("./MeshWobbleMaterial.cjs.js"),he=require("./MeshReflectorMaterial.cjs.js"),Ce=require("./MeshRefractionMaterial.cjs.js"),Me=require("./MeshTransmissionMaterial.cjs.js"),Se=require("./MeshDiscardMaterial.cjs.js"),fe=require("./PointMaterial.cjs.js"),Te=require("./shaderMaterial.cjs.js"),Pe=require("./softShadows.cjs.js"),be=require("./shapes.cjs.js"),Be=require("./Facemesh.cjs.js"),ge=require("./RoundedBox.cjs.js"),ve=require("./ScreenQuad.cjs.js"),Fe=require("./Center.cjs.js"),Le=require("./Resize.cjs.js"),Ae=require("./Bounds.cjs.js"),ke=require("./CameraShake.cjs.js"),De=require("./Float.cjs.js"),Ee=require("./Stage.cjs.js"),Ge=require("./Backdrop.cjs.js"),Re=require("./Shadow.cjs.js"),we=require("./Caustics.cjs.js"),ze=require("./ContactShadows.cjs.js"),Oe=require("./AccumulativeShadows.cjs.js"),ye=require("./Reflector.cjs.js"),Ie=require("./SpotLight.cjs.js"),He=require("./Environment.cjs.js"),Ve=require("./Lightformer.cjs.js"),We=require("./Sky.cjs.js"),Qe=require("./Stars.cjs.js"),Xe=require("./Cloud.cjs.js"),Ke=require("./Sparkles.cjs.js"),Ne=require("./useEnvironment.cjs.js"),Ue=require("./useMatcapTexture.cjs.js"),_e=require("./useNormalTexture.cjs.js"),Je=require("./Wireframe.cjs.js"),Ye=require("./Points.cjs.js"),Ze=require("./Instances.cjs.js"),$e=require("./Segments.cjs.js"),er=require("./Detailed.cjs.js"),rr=require("./Preload.cjs.js"),sr=require("./BakeShadows.cjs.js"),tr=require("./meshBounds.cjs.js"),or=require("./AdaptiveDpr.cjs.js"),ir=require("./AdaptiveEvents.cjs.js"),ar=require("./PerformanceMonitor.cjs.js"),ur=require("./RenderTexture.cjs.js"),cr=require("./Mask.cjs.js"),nr=require("./Hud.cjs.js"),jr=require("./MeshPortalMaterial.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("maath"),require("@mediapipe/tasks-vision"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("stats-gl"),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("../materials/WireframeMaterial.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.GradientType=j.GradientType,exports.Image=p.Image,exports.Edges=l.Edges,exports.Outlines=x.Outlines,exports.Trail=q.Trail,exports.useTrail=q.useTrail,exports.Sampler=m.Sampler,exports.useSurfaceSampler=m.useSurfaceSampler,exports.ComputedAttribute=d.ComputedAttribute,exports.Clone=h.Clone,exports.MarchingCube=C.MarchingCube,exports.MarchingCubes=C.MarchingCubes,exports.MarchingPlane=C.MarchingPlane,exports.Decal=M.Decal,exports.Svg=S.Svg,exports.Gltf=f.Gltf,exports.AsciiRenderer=T.AsciiRenderer,exports.OrthographicCamera=P.OrthographicCamera,exports.PerspectiveCamera=b.PerspectiveCamera,exports.CubeCamera=B.CubeCamera,exports.DeviceOrientationControls=g.DeviceOrientationControls,exports.FlyControls=v.FlyControls,exports.MapControls=F.MapControls,exports.OrbitControls=L.OrbitControls,exports.TrackballControls=A.TrackballControls,exports.ArcballControls=k.ArcballControls,exports.TransformControls=D.TransformControls,exports.PointerLockControls=E.PointerLockControls,exports.FirstPersonControls=G.FirstPersonControls,exports.CameraControls=R.CameraControls,exports.FaceControls=w.FaceControls,exports.useFaceControls=w.useFaceControls,exports.GizmoHelper=z.GizmoHelper,exports.useGizmoContext=z.useGizmoContext,exports.GizmoViewcube=O.GizmoViewcube,exports.GizmoViewport=y.GizmoViewport,exports.Grid=I.Grid,exports.useCubeTexture=H.useCubeTexture,exports.useFBX=V.useFBX,exports.useGLTF=W.useGLTF,exports.useKTX2=Q.useKTX2,exports.useProgress=X.useProgress,exports.IsObject=K.IsObject,exports.useTexture=K.useTexture,exports.useVideoTexture=N.useVideoTexture,exports.useFont=U.useFont,exports.Stats=_.Stats,exports.StatsGl=J.StatsGl,exports.useDepthBuffer=Y.useDepthBuffer,exports.useAspect=Z.useAspect,exports.useCamera=$.useCamera,exports.useDetectGPU=ee.useDetectGPU,exports.useHelper=re.useHelper,exports.Bvh=se.Bvh,exports.useBVH=se.useBVH,exports.useContextBridge=te.useContextBridge,exports.useAnimations=oe.useAnimations,exports.useFBO=ie.useFBO,exports.useIntersect=ae.useIntersect,exports.useBoxProjectedEnv=ue.useBoxProjectedEnv,exports.BBAnchor=ce.BBAnchor,exports.useTrailTexture=ne.useTrailTexture,exports.useCubeCamera=je.useCubeCamera,exports.Example=pe.Example,exports.SpriteAnimator=le.SpriteAnimator,exports.FaceLandmarker=xe.FaceLandmarker,exports.FaceLandmarkerDefaults=xe.FaceLandmarkerDefaults,exports.useFaceLandmarker=xe.useFaceLandmarker,exports.CurveModifier=qe.CurveModifier,exports.MeshDistortMaterial=me.MeshDistortMaterial,exports.MeshWobbleMaterial=de.MeshWobbleMaterial,exports.MeshReflectorMaterial=he.MeshReflectorMaterial,exports.MeshRefractionMaterial=Ce.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Me.MeshTransmissionMaterial,exports.MeshDiscardMaterial=Se.MeshDiscardMaterial,exports.PointMaterial=fe.PointMaterial,exports.PointMaterialImpl=fe.PointMaterialImpl,exports.shaderMaterial=Te.shaderMaterial,exports.SoftShadows=Pe.SoftShadows,exports.Box=be.Box,exports.Capsule=be.Capsule,exports.Circle=be.Circle,exports.Cone=be.Cone,exports.Cylinder=be.Cylinder,exports.Dodecahedron=be.Dodecahedron,exports.Extrude=be.Extrude,exports.Icosahedron=be.Icosahedron,exports.Lathe=be.Lathe,exports.Octahedron=be.Octahedron,exports.Plane=be.Plane,exports.Polyhedron=be.Polyhedron,exports.Ring=be.Ring,exports.Shape=be.Shape,exports.Sphere=be.Sphere,exports.Tetrahedron=be.Tetrahedron,exports.Torus=be.Torus,exports.TorusKnot=be.TorusKnot,exports.Tube=be.Tube,exports.Facemesh=Be.Facemesh,exports.FacemeshDatas=Be.FacemeshDatas,exports.FacemeshEye=Be.FacemeshEye,exports.FacemeshEyeDefaults=Be.FacemeshEyeDefaults,exports.RoundedBox=ge.RoundedBox,exports.ScreenQuad=ve.ScreenQuad,exports.Center=Fe.Center,exports.Resize=Le.Resize,exports.Bounds=Ae.Bounds,exports.useBounds=Ae.useBounds,exports.CameraShake=ke.CameraShake,exports.Float=De.Float,exports.Stage=Ee.Stage,exports.Backdrop=Ge.Backdrop,exports.Shadow=Re.Shadow,exports.Caustics=we.Caustics,exports.ContactShadows=ze.ContactShadows,exports.AccumulativeShadows=Oe.AccumulativeShadows,exports.RandomizedLight=Oe.RandomizedLight,exports.accumulativeContext=Oe.accumulativeContext,exports.Reflector=ye.Reflector,exports.SpotLight=Ie.SpotLight,exports.SpotLightShadow=Ie.SpotLightShadow,exports.Environment=He.Environment,exports.EnvironmentCube=He.EnvironmentCube,exports.EnvironmentMap=He.EnvironmentMap,exports.EnvironmentPortal=He.EnvironmentPortal,exports.Lightformer=Ve.Lightformer,exports.Sky=We.Sky,exports.calcPosFromAngles=We.calcPosFromAngles,exports.Stars=Qe.Stars,exports.Cloud=Xe.Cloud,exports.Sparkles=Ke.Sparkles,exports.useEnvironment=Ne.useEnvironment,exports.useMatcapTexture=Ue.useMatcapTexture,exports.useNormalTexture=_e.useNormalTexture,exports.Wireframe=Je.Wireframe,exports.Point=Ye.Point,exports.Points=Ye.Points,exports.PointsBuffer=Ye.PointsBuffer,exports.PositionPoint=Ye.PositionPoint,exports.Instance=Ze.Instance,exports.Instances=Ze.Instances,exports.Merged=Ze.Merged,exports.Segment=$e.Segment,exports.SegmentObject=$e.SegmentObject,exports.Segments=$e.Segments,exports.Detailed=er.Detailed,exports.Preload=rr.Preload,exports.BakeShadows=sr.BakeShadows,exports.meshBounds=tr.meshBounds,exports.AdaptiveDpr=or.AdaptiveDpr,exports.AdaptiveEvents=ir.AdaptiveEvents,exports.PerformanceMonitor=ar.PerformanceMonitor,exports.usePerformanceMonitor=ar.usePerformanceMonitor,exports.RenderTexture=ur.RenderTexture,exports.Mask=cr.Mask,exports.useMask=cr.useMask,exports.Hud=nr.Hud,exports.MeshPortalMaterial=jr.MeshPortalMaterial;
|
|
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"),l=require("./Edges.cjs.js"),x=require("./Outlines.cjs.js"),q=require("./Trail.cjs.js"),m=require("./Sampler.cjs.js"),d=require("./ComputedAttribute.cjs.js"),h=require("./Clone.cjs.js"),C=require("./MarchingCubes.cjs.js"),M=require("./Decal.cjs.js"),S=require("./Svg.cjs.js"),f=require("./Gltf.cjs.js"),P=require("./AsciiRenderer.cjs.js"),T=require("./OrthographicCamera.cjs.js"),b=require("./PerspectiveCamera.cjs.js"),B=require("./CubeCamera.cjs.js"),g=require("./DeviceOrientationControls.cjs.js"),v=require("./FlyControls.cjs.js"),F=require("./MapControls.cjs.js"),L=require("./OrbitControls.cjs.js"),A=require("./TrackballControls.cjs.js"),k=require("./ArcballControls.cjs.js"),D=require("./TransformControls.cjs.js"),E=require("./PointerLockControls.cjs.js"),G=require("./FirstPersonControls.cjs.js"),R=require("./CameraControls.cjs.js"),w=require("./FaceControls.cjs.js"),z=require("./MotionPathControls.cjs.js"),O=require("./GizmoHelper.cjs.js"),y=require("./GizmoViewcube.cjs.js"),I=require("./GizmoViewport.cjs.js"),H=require("./Grid.cjs.js"),V=require("./useCubeTexture.cjs.js"),W=require("./useFBX.cjs.js"),Q=require("./useGLTF.cjs.js"),X=require("./useKTX2.cjs.js"),K=require("./useProgress.cjs.js"),N=require("./useTexture.cjs.js"),U=require("./useVideoTexture.cjs.js"),_=require("./useFont.cjs.js"),J=require("./Stats.cjs.js"),Y=require("./StatsGl.cjs.js"),Z=require("./useDepthBuffer.cjs.js"),$=require("./useAspect.cjs.js"),ee=require("./useCamera.cjs.js"),re=require("./useDetectGPU.cjs.js"),se=require("./useHelper.cjs.js"),te=require("./useBVH.cjs.js"),oe=require("./useContextBridge.cjs.js"),ie=require("./useAnimations.cjs.js"),ae=require("./useFBO.cjs.js"),ue=require("./useIntersect.cjs.js"),ce=require("./useBoxProjectedEnv.cjs.js"),ne=require("./BBAnchor.cjs.js"),je=require("./useTrailTexture.cjs.js"),pe=require("./useCubeCamera.cjs.js"),le=require("./Example.cjs.js"),xe=require("./SpriteAnimator.cjs.js"),qe=require("./FaceLandmarker.cjs.js"),me=require("./CurveModifier.cjs.js"),de=require("./MeshDistortMaterial.cjs.js"),he=require("./MeshWobbleMaterial.cjs.js"),Ce=require("./MeshReflectorMaterial.cjs.js"),Me=require("./MeshRefractionMaterial.cjs.js"),Se=require("./MeshTransmissionMaterial.cjs.js"),fe=require("./MeshDiscardMaterial.cjs.js"),Pe=require("./PointMaterial.cjs.js"),Te=require("./shaderMaterial.cjs.js"),be=require("./softShadows.cjs.js"),Be=require("./shapes.cjs.js"),ge=require("./Facemesh.cjs.js"),ve=require("./RoundedBox.cjs.js"),Fe=require("./ScreenQuad.cjs.js"),Le=require("./Center.cjs.js"),Ae=require("./Resize.cjs.js"),ke=require("./Bounds.cjs.js"),De=require("./CameraShake.cjs.js"),Ee=require("./Float.cjs.js"),Ge=require("./Stage.cjs.js"),Re=require("./Backdrop.cjs.js"),we=require("./Shadow.cjs.js"),ze=require("./Caustics.cjs.js"),Oe=require("./ContactShadows.cjs.js"),ye=require("./AccumulativeShadows.cjs.js"),Ie=require("./Reflector.cjs.js"),He=require("./SpotLight.cjs.js"),Ve=require("./Environment.cjs.js"),We=require("./Lightformer.cjs.js"),Qe=require("./Sky.cjs.js"),Xe=require("./Stars.cjs.js"),Ke=require("./Cloud.cjs.js"),Ne=require("./Sparkles.cjs.js"),Ue=require("./useEnvironment.cjs.js"),_e=require("./useMatcapTexture.cjs.js"),Je=require("./useNormalTexture.cjs.js"),Ye=require("./Wireframe.cjs.js"),Ze=require("./Points.cjs.js"),$e=require("./Instances.cjs.js"),er=require("./Segments.cjs.js"),rr=require("./Detailed.cjs.js"),sr=require("./Preload.cjs.js"),tr=require("./BakeShadows.cjs.js"),or=require("./meshBounds.cjs.js"),ir=require("./AdaptiveDpr.cjs.js"),ar=require("./AdaptiveEvents.cjs.js"),ur=require("./PerformanceMonitor.cjs.js"),cr=require("./RenderTexture.cjs.js"),nr=require("./Mask.cjs.js"),jr=require("./Hud.cjs.js"),pr=require("./MeshPortalMaterial.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("maath"),require("@mediapipe/tasks-vision"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("stats-gl"),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("../materials/WireframeMaterial.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.GradientType=j.GradientType,exports.Image=p.Image,exports.Edges=l.Edges,exports.Outlines=x.Outlines,exports.Trail=q.Trail,exports.useTrail=q.useTrail,exports.Sampler=m.Sampler,exports.useSurfaceSampler=m.useSurfaceSampler,exports.ComputedAttribute=d.ComputedAttribute,exports.Clone=h.Clone,exports.MarchingCube=C.MarchingCube,exports.MarchingCubes=C.MarchingCubes,exports.MarchingPlane=C.MarchingPlane,exports.Decal=M.Decal,exports.Svg=S.Svg,exports.Gltf=f.Gltf,exports.AsciiRenderer=P.AsciiRenderer,exports.OrthographicCamera=T.OrthographicCamera,exports.PerspectiveCamera=b.PerspectiveCamera,exports.CubeCamera=B.CubeCamera,exports.DeviceOrientationControls=g.DeviceOrientationControls,exports.FlyControls=v.FlyControls,exports.MapControls=F.MapControls,exports.OrbitControls=L.OrbitControls,exports.TrackballControls=A.TrackballControls,exports.ArcballControls=k.ArcballControls,exports.TransformControls=D.TransformControls,exports.PointerLockControls=E.PointerLockControls,exports.FirstPersonControls=G.FirstPersonControls,exports.CameraControls=R.CameraControls,exports.FaceControls=w.FaceControls,exports.useFaceControls=w.useFaceControls,exports.MotionPathControls=z.MotionPathControls,exports.useMotion=z.useMotion,exports.GizmoHelper=O.GizmoHelper,exports.useGizmoContext=O.useGizmoContext,exports.GizmoViewcube=y.GizmoViewcube,exports.GizmoViewport=I.GizmoViewport,exports.Grid=H.Grid,exports.useCubeTexture=V.useCubeTexture,exports.useFBX=W.useFBX,exports.useGLTF=Q.useGLTF,exports.useKTX2=X.useKTX2,exports.useProgress=K.useProgress,exports.IsObject=N.IsObject,exports.useTexture=N.useTexture,exports.useVideoTexture=U.useVideoTexture,exports.useFont=_.useFont,exports.Stats=J.Stats,exports.StatsGl=Y.StatsGl,exports.useDepthBuffer=Z.useDepthBuffer,exports.useAspect=$.useAspect,exports.useCamera=ee.useCamera,exports.useDetectGPU=re.useDetectGPU,exports.useHelper=se.useHelper,exports.Bvh=te.Bvh,exports.useBVH=te.useBVH,exports.useContextBridge=oe.useContextBridge,exports.useAnimations=ie.useAnimations,exports.useFBO=ae.useFBO,exports.useIntersect=ue.useIntersect,exports.useBoxProjectedEnv=ce.useBoxProjectedEnv,exports.BBAnchor=ne.BBAnchor,exports.useTrailTexture=je.useTrailTexture,exports.useCubeCamera=pe.useCubeCamera,exports.Example=le.Example,exports.SpriteAnimator=xe.SpriteAnimator,exports.FaceLandmarker=qe.FaceLandmarker,exports.FaceLandmarkerDefaults=qe.FaceLandmarkerDefaults,exports.useFaceLandmarker=qe.useFaceLandmarker,exports.CurveModifier=me.CurveModifier,exports.MeshDistortMaterial=de.MeshDistortMaterial,exports.MeshWobbleMaterial=he.MeshWobbleMaterial,exports.MeshReflectorMaterial=Ce.MeshReflectorMaterial,exports.MeshRefractionMaterial=Me.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Se.MeshTransmissionMaterial,exports.MeshDiscardMaterial=fe.MeshDiscardMaterial,exports.PointMaterial=Pe.PointMaterial,exports.PointMaterialImpl=Pe.PointMaterialImpl,exports.shaderMaterial=Te.shaderMaterial,exports.SoftShadows=be.SoftShadows,exports.Box=Be.Box,exports.Capsule=Be.Capsule,exports.Circle=Be.Circle,exports.Cone=Be.Cone,exports.Cylinder=Be.Cylinder,exports.Dodecahedron=Be.Dodecahedron,exports.Extrude=Be.Extrude,exports.Icosahedron=Be.Icosahedron,exports.Lathe=Be.Lathe,exports.Octahedron=Be.Octahedron,exports.Plane=Be.Plane,exports.Polyhedron=Be.Polyhedron,exports.Ring=Be.Ring,exports.Shape=Be.Shape,exports.Sphere=Be.Sphere,exports.Tetrahedron=Be.Tetrahedron,exports.Torus=Be.Torus,exports.TorusKnot=Be.TorusKnot,exports.Tube=Be.Tube,exports.Facemesh=ge.Facemesh,exports.FacemeshDatas=ge.FacemeshDatas,exports.FacemeshEye=ge.FacemeshEye,exports.FacemeshEyeDefaults=ge.FacemeshEyeDefaults,exports.RoundedBox=ve.RoundedBox,exports.ScreenQuad=Fe.ScreenQuad,exports.Center=Le.Center,exports.Resize=Ae.Resize,exports.Bounds=ke.Bounds,exports.useBounds=ke.useBounds,exports.CameraShake=De.CameraShake,exports.Float=Ee.Float,exports.Stage=Ge.Stage,exports.Backdrop=Re.Backdrop,exports.Shadow=we.Shadow,exports.Caustics=ze.Caustics,exports.ContactShadows=Oe.ContactShadows,exports.AccumulativeShadows=ye.AccumulativeShadows,exports.RandomizedLight=ye.RandomizedLight,exports.accumulativeContext=ye.accumulativeContext,exports.Reflector=Ie.Reflector,exports.SpotLight=He.SpotLight,exports.SpotLightShadow=He.SpotLightShadow,exports.Environment=Ve.Environment,exports.EnvironmentCube=Ve.EnvironmentCube,exports.EnvironmentMap=Ve.EnvironmentMap,exports.EnvironmentPortal=Ve.EnvironmentPortal,exports.Lightformer=We.Lightformer,exports.Sky=Qe.Sky,exports.calcPosFromAngles=Qe.calcPosFromAngles,exports.Stars=Xe.Stars,exports.Cloud=Ke.Cloud,exports.Sparkles=Ne.Sparkles,exports.useEnvironment=Ue.useEnvironment,exports.useMatcapTexture=_e.useMatcapTexture,exports.useNormalTexture=Je.useNormalTexture,exports.Wireframe=Ye.Wireframe,exports.Point=Ze.Point,exports.Points=Ze.Points,exports.PointsBuffer=Ze.PointsBuffer,exports.PositionPoint=Ze.PositionPoint,exports.Instance=$e.Instance,exports.Instances=$e.Instances,exports.Merged=$e.Merged,exports.Segment=er.Segment,exports.SegmentObject=er.SegmentObject,exports.Segments=er.Segments,exports.Detailed=rr.Detailed,exports.Preload=sr.Preload,exports.BakeShadows=tr.BakeShadows,exports.meshBounds=or.meshBounds,exports.AdaptiveDpr=ir.AdaptiveDpr,exports.AdaptiveEvents=ar.AdaptiveEvents,exports.PerformanceMonitor=ur.PerformanceMonitor,exports.usePerformanceMonitor=ur.usePerformanceMonitor,exports.RenderTexture=cr.RenderTexture,exports.Mask=nr.Mask,exports.useMask=nr.useMask,exports.Hud=jr.Hud,exports.MeshPortalMaterial=pr.MeshPortalMaterial;
|
package/core/index.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export * from './PointerLockControls';
|
|
|
35
35
|
export * from './FirstPersonControls';
|
|
36
36
|
export * from './CameraControls';
|
|
37
37
|
export * from './FaceControls';
|
|
38
|
+
export * from './MotionPathControls';
|
|
38
39
|
export * from './GizmoHelper';
|
|
39
40
|
export * from './GizmoViewcube';
|
|
40
41
|
export * from './GizmoViewport';
|
package/core/index.js
CHANGED
|
@@ -35,6 +35,7 @@ export { PointerLockControls } from './PointerLockControls.js';
|
|
|
35
35
|
export { FirstPersonControls } from './FirstPersonControls.js';
|
|
36
36
|
export { CameraControls } from './CameraControls.js';
|
|
37
37
|
export { FaceControls, useFaceControls } from './FaceControls.js';
|
|
38
|
+
export { MotionPathControls, useMotion } from './MotionPathControls.js';
|
|
38
39
|
export { GizmoHelper, useGizmoContext } from './GizmoHelper.js';
|
|
39
40
|
export { GizmoViewcube } from './GizmoViewcube.js';
|
|
40
41
|
export { GizmoViewport } from './GizmoViewport.js';
|
package/core/meshBounds.js
CHANGED
|
@@ -1,32 +1,22 @@
|
|
|
1
1
|
import { Matrix4, Ray, Sphere, Vector3 } from 'three';
|
|
2
2
|
|
|
3
3
|
const _inverseMatrix = new Matrix4();
|
|
4
|
-
|
|
5
4
|
const _ray = new Ray();
|
|
6
|
-
|
|
7
5
|
const _sphere = new Sphere();
|
|
8
|
-
|
|
9
6
|
const _vA = new Vector3();
|
|
10
|
-
|
|
11
7
|
function meshBounds(raycaster, intersects) {
|
|
12
8
|
const geometry = this.geometry;
|
|
13
9
|
const material = this.material;
|
|
14
10
|
const matrixWorld = this.matrixWorld;
|
|
15
|
-
if (material === undefined) return;
|
|
16
|
-
|
|
11
|
+
if (material === undefined) return;
|
|
12
|
+
// Checking boundingSphere distance to ray
|
|
17
13
|
if (geometry.boundingSphere === null) geometry.computeBoundingSphere();
|
|
18
|
-
|
|
19
14
|
_sphere.copy(geometry.boundingSphere);
|
|
20
|
-
|
|
21
15
|
_sphere.applyMatrix4(matrixWorld);
|
|
22
|
-
|
|
23
16
|
if (raycaster.ray.intersectsSphere(_sphere) === false) return;
|
|
24
|
-
|
|
25
17
|
_inverseMatrix.copy(matrixWorld).invert();
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
18
|
+
_ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix);
|
|
19
|
+
// Check boundingBox before continuing
|
|
30
20
|
if (geometry.boundingBox !== null && _ray.intersectBox(geometry.boundingBox, _vA) === null) return;
|
|
31
21
|
intersects.push({
|
|
32
22
|
distance: _vA.distanceTo(raycaster.ray.origin),
|
package/core/shaderMaterial.js
CHANGED
|
@@ -3,8 +3,8 @@ import * as THREE from 'three';
|
|
|
3
3
|
function shaderMaterial(uniforms, vertexShader, fragmentShader, onInit) {
|
|
4
4
|
const material = class material extends THREE.ShaderMaterial {
|
|
5
5
|
constructor(parameters = {}) {
|
|
6
|
-
const entries = Object.entries(uniforms);
|
|
7
|
-
|
|
6
|
+
const entries = Object.entries(uniforms);
|
|
7
|
+
// Create unforms and shaders
|
|
8
8
|
super({
|
|
9
9
|
uniforms: entries.reduce((acc, [name, value]) => {
|
|
10
10
|
const uniform = THREE.UniformsUtils.clone({
|
|
@@ -12,25 +12,26 @@ function shaderMaterial(uniforms, vertexShader, fragmentShader, onInit) {
|
|
|
12
12
|
value
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
|
-
return {
|
|
15
|
+
return {
|
|
16
|
+
...acc,
|
|
16
17
|
...uniform
|
|
17
18
|
};
|
|
18
19
|
}, {}),
|
|
19
20
|
vertexShader,
|
|
20
21
|
fragmentShader
|
|
21
|
-
});
|
|
22
|
-
|
|
22
|
+
});
|
|
23
|
+
// Create getter/setters
|
|
23
24
|
this.key = '';
|
|
24
25
|
entries.forEach(([name]) => Object.defineProperty(this, name, {
|
|
25
26
|
get: () => this.uniforms[name].value,
|
|
26
27
|
set: v => this.uniforms[name].value = v
|
|
27
|
-
}));
|
|
28
|
-
|
|
29
|
-
Object.assign(this, parameters); // Call onInit
|
|
28
|
+
}));
|
|
30
29
|
|
|
30
|
+
// Assign parameters, this might include uniforms
|
|
31
|
+
Object.assign(this, parameters);
|
|
32
|
+
// Call onInit
|
|
31
33
|
if (onInit) onInit(this);
|
|
32
34
|
}
|
|
33
|
-
|
|
34
35
|
};
|
|
35
36
|
material.key = THREE.MathUtils.generateUUID();
|
|
36
37
|
return material;
|
package/core/shapes.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
3
|
-
export
|
|
4
|
-
export
|
|
3
|
+
export type Args<T> = T extends new (...args: any) => any ? ConstructorParameters<T> : T;
|
|
4
|
+
export type ShapeProps<T> = Omit<JSX.IntrinsicElements['mesh'], 'args'> & {
|
|
5
5
|
args?: Args<T>;
|
|
6
6
|
};
|
|
7
7
|
export declare const Box: ForwardRefComponent<ShapeProps<typeof THREE.BoxGeometry>, THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>;
|
package/core/shapes.js
CHANGED
|
@@ -20,7 +20,6 @@ function create(type, effect) {
|
|
|
20
20
|
}), children);
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
-
|
|
24
23
|
const Box = create('box');
|
|
25
24
|
const Circle = create('circle');
|
|
26
25
|
const Cone = create('cone');
|
|
@@ -50,10 +49,9 @@ const Shape = create('shape', ({
|
|
|
50
49
|
b3.getSize(b3size);
|
|
51
50
|
const uv = [];
|
|
52
51
|
let x = 0,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
y = 0,
|
|
53
|
+
u = 0,
|
|
54
|
+
v = 0;
|
|
57
55
|
for (let i = 0; i < pos.count; i++) {
|
|
58
56
|
x = pos.getX(i);
|
|
59
57
|
y = pos.getY(i);
|
|
@@ -61,7 +59,6 @@ const Shape = create('shape', ({
|
|
|
61
59
|
v = (y - b3.min.y) / b3size.y;
|
|
62
60
|
uv.push(u, v);
|
|
63
61
|
}
|
|
64
|
-
|
|
65
62
|
geometry.setAttribute('uv', new THREE.Float32BufferAttribute(uv, 2));
|
|
66
63
|
});
|
|
67
64
|
|
package/core/softShadows.d.ts
CHANGED
package/core/softShadows.js
CHANGED
|
@@ -16,7 +16,6 @@ import { useThree } from '@react-three/fiber';
|
|
|
16
16
|
High-Frequency Noise Implementation:
|
|
17
17
|
https://www.shadertoy.com/view/tt3fDH [spawner64]
|
|
18
18
|
*/
|
|
19
|
-
|
|
20
19
|
const pcss = ({
|
|
21
20
|
focus = 0,
|
|
22
21
|
size = 25,
|
|
@@ -122,18 +121,16 @@ float PCSS (sampler2D shadowMap, vec4 coords) {
|
|
|
122
121
|
float penumbraRatio = penumbraSize(zReceiver, avgBlockerDepth);
|
|
123
122
|
return vogelFilter(shadowMap, uv, zReceiver, 1.25 * penumbraRatio, angle);
|
|
124
123
|
}`;
|
|
125
|
-
|
|
126
124
|
function reset(gl, scene, camera) {
|
|
127
125
|
scene.traverse(object => {
|
|
128
126
|
if (object.material) {
|
|
129
127
|
gl.properties.remove(object.material);
|
|
130
|
-
object.material.dispose == null
|
|
128
|
+
object.material.dispose == null || object.material.dispose();
|
|
131
129
|
}
|
|
132
130
|
});
|
|
133
131
|
gl.info.programs.length = 0;
|
|
134
132
|
gl.compile(scene, camera);
|
|
135
133
|
}
|
|
136
|
-
|
|
137
134
|
function SoftShadows({
|
|
138
135
|
focus = 0,
|
|
139
136
|
samples = 10,
|
package/core/useAnimations.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Object3D, AnimationClip, AnimationAction, AnimationMixer } from 'three';
|
|
3
|
-
|
|
3
|
+
type Api<T extends AnimationClip> = {
|
|
4
4
|
ref: React.MutableRefObject<Object3D | undefined | null>;
|
|
5
5
|
clips: AnimationClip[];
|
|
6
6
|
mixer: AnimationMixer;
|
package/core/useAnimations.js
CHANGED
|
@@ -6,8 +6,8 @@ function useAnimations(clips, root) {
|
|
|
6
6
|
const ref = React.useRef();
|
|
7
7
|
const [actualRef] = React.useState(() => root ? root instanceof Object3D ? {
|
|
8
8
|
current: root
|
|
9
|
-
} : root : ref);
|
|
10
|
-
|
|
9
|
+
} : root : ref);
|
|
10
|
+
// eslint-disable-next-line prettier/prettier
|
|
11
11
|
const [mixer] = React.useState(() => new AnimationMixer(undefined));
|
|
12
12
|
React.useLayoutEffect(() => {
|
|
13
13
|
if (root) actualRef.current = root instanceof Object3D ? root : root.current;
|
|
@@ -18,13 +18,11 @@ function useAnimations(clips, root) {
|
|
|
18
18
|
const actions = {};
|
|
19
19
|
clips.forEach(clip => Object.defineProperty(actions, clip.name, {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
|
|
22
21
|
get() {
|
|
23
22
|
if (actualRef.current) {
|
|
24
23
|
return lazyActions.current[clip.name] || (lazyActions.current[clip.name] = mixer.clipAction(clip, actualRef.current));
|
|
25
24
|
}
|
|
26
25
|
},
|
|
27
|
-
|
|
28
26
|
configurable: true
|
|
29
27
|
}));
|
|
30
28
|
return {
|
package/core/useBVH.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export interface BVHOptions {
|
|
|
9
9
|
maxDepth?: number;
|
|
10
10
|
maxLeafTris?: number;
|
|
11
11
|
}
|
|
12
|
-
export
|
|
12
|
+
export type BvhProps = BVHOptions & JSX.IntrinsicElements['group'] & {
|
|
13
13
|
enabled?: boolean;
|
|
14
14
|
firstHitOnly?: boolean;
|
|
15
15
|
};
|
package/core/useBVH.js
CHANGED
|
@@ -5,11 +5,10 @@ import { Mesh } from 'three';
|
|
|
5
5
|
import { SAH, acceleratedRaycast, computeBoundsTree, disposeBoundsTree } from 'three-mesh-bvh';
|
|
6
6
|
|
|
7
7
|
const isMesh = child => child.isMesh;
|
|
8
|
+
|
|
8
9
|
/**
|
|
9
10
|
* @deprecated Use the Bvh component instead
|
|
10
11
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
12
|
function useBVH(mesh, options) {
|
|
14
13
|
options = {
|
|
15
14
|
strategy: SAH,
|
|
@@ -57,10 +56,10 @@ const Bvh = /*#__PURE__*/React.forwardRef(({
|
|
|
57
56
|
maxDepth,
|
|
58
57
|
maxLeafTris
|
|
59
58
|
};
|
|
60
|
-
const group = ref.current;
|
|
59
|
+
const group = ref.current;
|
|
60
|
+
// This can only safely work if the component is used once, but there is no alternative.
|
|
61
61
|
// Hijacking the raycast method to do it for individual meshes is not an option as it would
|
|
62
62
|
// cost too much memory ...
|
|
63
|
-
|
|
64
63
|
raycaster.firstHitOnly = firstHitOnly;
|
|
65
64
|
group.traverse(child => {
|
|
66
65
|
// Only include meshes that do not yet have a boundsTree and whose raycast is standard issue
|