@react-three/drei 9.83.9 → 9.84.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -2
- 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 +114 -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/web/Select.js
CHANGED
|
@@ -35,7 +35,7 @@ function Select({
|
|
|
35
35
|
if (object === undefined) return [];else if (Array.isArray(object)) return object;else if (!shift) return state[0] === object ? [] : [object];else if (state.includes(object)) return state.filter(o => o !== object);else return [object, ...state];
|
|
36
36
|
}, []);
|
|
37
37
|
React.useEffect(() => {
|
|
38
|
-
if (downed) onChange == null
|
|
38
|
+
if (downed) onChange == null || onChange(active);else onChangePointerUp == null || onChangePointerUp(active);
|
|
39
39
|
}, [active, downed]);
|
|
40
40
|
const onClick = React.useCallback(e => {
|
|
41
41
|
e.stopPropagation();
|
|
@@ -60,7 +60,6 @@ function Select({
|
|
|
60
60
|
const oldRaycasterEnabled = get().events.enabled;
|
|
61
61
|
const oldControlsEnabled = controls == null ? void 0 : controls.enabled;
|
|
62
62
|
let isDown = false;
|
|
63
|
-
|
|
64
63
|
function prepareRay(event, vec) {
|
|
65
64
|
const {
|
|
66
65
|
offsetX,
|
|
@@ -72,16 +71,14 @@ function Select({
|
|
|
72
71
|
} = size;
|
|
73
72
|
vec.set(offsetX / width * 2 - 1, -(offsetY / height) * 2 + 1);
|
|
74
73
|
}
|
|
75
|
-
|
|
76
74
|
function onSelectStart(event) {
|
|
77
75
|
var _gl$domElement$parent;
|
|
78
|
-
|
|
79
76
|
if (controls) controls.enabled = false;
|
|
80
77
|
setEvents({
|
|
81
78
|
enabled: false
|
|
82
79
|
});
|
|
83
80
|
down(isDown = true);
|
|
84
|
-
(_gl$domElement$parent = gl.domElement.parentElement) == null
|
|
81
|
+
(_gl$domElement$parent = gl.domElement.parentElement) == null || _gl$domElement$parent.appendChild(element);
|
|
85
82
|
element.style.left = `${event.clientX}px`;
|
|
86
83
|
element.style.top = `${event.clientY}px`;
|
|
87
84
|
element.style.width = '0px';
|
|
@@ -89,7 +86,6 @@ function Select({
|
|
|
89
86
|
startPoint.x = event.clientX;
|
|
90
87
|
startPoint.y = event.clientY;
|
|
91
88
|
}
|
|
92
|
-
|
|
93
89
|
function onSelectMove(event) {
|
|
94
90
|
pointBottomRight.x = Math.max(startPoint.x, event.clientX);
|
|
95
91
|
pointBottomRight.y = Math.max(startPoint.y, event.clientY);
|
|
@@ -100,35 +96,29 @@ function Select({
|
|
|
100
96
|
element.style.width = `${pointBottomRight.x - pointTopLeft.x}px`;
|
|
101
97
|
element.style.height = `${pointBottomRight.y - pointTopLeft.y}px`;
|
|
102
98
|
}
|
|
103
|
-
|
|
104
99
|
function onSelectOver() {
|
|
105
100
|
if (isDown) {
|
|
106
101
|
var _element$parentElemen;
|
|
107
|
-
|
|
108
102
|
if (controls) controls.enabled = oldControlsEnabled;
|
|
109
103
|
setEvents({
|
|
110
104
|
enabled: oldRaycasterEnabled
|
|
111
105
|
});
|
|
112
106
|
down(isDown = false);
|
|
113
|
-
(_element$parentElemen = element.parentElement) == null
|
|
107
|
+
(_element$parentElemen = element.parentElement) == null || _element$parentElemen.removeChild(element);
|
|
114
108
|
}
|
|
115
109
|
}
|
|
116
|
-
|
|
117
110
|
function pointerDown(event) {
|
|
118
111
|
if (event.shiftKey) {
|
|
119
112
|
onSelectStart(event);
|
|
120
113
|
prepareRay(event, selBox.startPoint);
|
|
121
114
|
}
|
|
122
115
|
}
|
|
123
|
-
|
|
124
116
|
let previous = [];
|
|
125
|
-
|
|
126
117
|
function pointerMove(event) {
|
|
127
118
|
if (isDown) {
|
|
128
119
|
onSelectMove(event);
|
|
129
120
|
prepareRay(event, selBox.endPoint);
|
|
130
121
|
const allSelected = selBox.select().sort(o => o.uuid).filter(o => o.isMesh);
|
|
131
|
-
|
|
132
122
|
if (!shallow(allSelected, previous)) {
|
|
133
123
|
previous = allSelected;
|
|
134
124
|
dispatch({
|
|
@@ -137,11 +127,9 @@ function Select({
|
|
|
137
127
|
}
|
|
138
128
|
}
|
|
139
129
|
}
|
|
140
|
-
|
|
141
130
|
function pointerUp(event) {
|
|
142
131
|
if (isDown) onSelectOver();
|
|
143
132
|
}
|
|
144
|
-
|
|
145
133
|
document.addEventListener('pointerdown', pointerDown, {
|
|
146
134
|
passive: true
|
|
147
135
|
});
|
|
@@ -167,10 +155,11 @@ function Select({
|
|
|
167
155
|
}, props), /*#__PURE__*/React.createElement(context.Provider, {
|
|
168
156
|
value: active
|
|
169
157
|
}, children));
|
|
170
|
-
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// The return type is explicitly declared here because otherwise TypeScript will emit `THREE.Object3D<THREE.Event>[]`.
|
|
171
161
|
// The meaning of the generic parameter for `Object3D` was changed in r156, so it should not be included so that it
|
|
172
162
|
// works with all versions of @types/three.
|
|
173
|
-
|
|
174
163
|
function useSelect() {
|
|
175
164
|
return React.useContext(context);
|
|
176
165
|
}
|
package/web/View.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import * as THREE from 'three';
|
|
3
|
-
|
|
3
|
+
type LegacyCanvasSize = {
|
|
4
4
|
height: number;
|
|
5
5
|
width: number;
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
type CanvasSize = LegacyCanvasSize & {
|
|
8
8
|
top: number;
|
|
9
9
|
left: number;
|
|
10
10
|
};
|
|
11
|
-
export
|
|
11
|
+
export type ContainerProps = {
|
|
12
12
|
scene: THREE.Scene;
|
|
13
13
|
index: number;
|
|
14
14
|
children?: React.ReactNode;
|
|
@@ -17,11 +17,11 @@ export declare type ContainerProps = {
|
|
|
17
17
|
track: React.MutableRefObject<HTMLElement>;
|
|
18
18
|
canvasSize: LegacyCanvasSize | CanvasSize;
|
|
19
19
|
};
|
|
20
|
-
export
|
|
20
|
+
export type ViewProps = {
|
|
21
21
|
track: React.MutableRefObject<HTMLElement>;
|
|
22
22
|
index?: number;
|
|
23
23
|
frames?: number;
|
|
24
24
|
children?: React.ReactNode;
|
|
25
25
|
};
|
|
26
|
-
export declare const View: ({ track, index, frames, children }: ViewProps) => JSX.Element;
|
|
26
|
+
export declare const View: ({ track, index, frames, children }: ViewProps) => React.JSX.Element;
|
|
27
27
|
export {};
|
package/web/View.js
CHANGED
|
@@ -3,8 +3,8 @@ import * as THREE from 'three';
|
|
|
3
3
|
import { useThree, createPortal, useFrame } from '@react-three/fiber';
|
|
4
4
|
|
|
5
5
|
const isOrthographicCamera = def => def && def.isOrthographicCamera;
|
|
6
|
-
|
|
7
6
|
const col = new THREE.Color();
|
|
7
|
+
|
|
8
8
|
/**
|
|
9
9
|
* In `@react-three/fiber` after `v8.0.0` but prior to `v8.1.0`, `state.size` contained only dimension
|
|
10
10
|
* information. After `v8.1.0`, position information (`top`, `left`) was added
|
|
@@ -15,7 +15,6 @@ const col = new THREE.Color();
|
|
|
15
15
|
function isNonLegacyCanvasSize(size) {
|
|
16
16
|
return 'top' in size;
|
|
17
17
|
}
|
|
18
|
-
|
|
19
18
|
function computeContainerPosition(canvasSize, trackRect) {
|
|
20
19
|
const {
|
|
21
20
|
right,
|
|
@@ -26,7 +25,6 @@ function computeContainerPosition(canvasSize, trackRect) {
|
|
|
26
25
|
height
|
|
27
26
|
} = trackRect;
|
|
28
27
|
const isOffscreen = trackRect.bottom < 0 || top > canvasSize.height || right < 0 || trackRect.left > canvasSize.width;
|
|
29
|
-
|
|
30
28
|
if (isNonLegacyCanvasSize(canvasSize)) {
|
|
31
29
|
const canvasBottom = canvasSize.top + canvasSize.height;
|
|
32
30
|
const bottom = canvasBottom - trackBottom;
|
|
@@ -42,9 +40,9 @@ function computeContainerPosition(canvasSize, trackRect) {
|
|
|
42
40
|
},
|
|
43
41
|
isOffscreen
|
|
44
42
|
};
|
|
45
|
-
}
|
|
46
|
-
|
|
43
|
+
}
|
|
47
44
|
|
|
45
|
+
// Fall back on old behavior if r3f < 8.1.0
|
|
48
46
|
const bottom = canvasSize.height - trackBottom;
|
|
49
47
|
return {
|
|
50
48
|
position: {
|
|
@@ -58,7 +56,6 @@ function computeContainerPosition(canvasSize, trackRect) {
|
|
|
58
56
|
isOffscreen
|
|
59
57
|
};
|
|
60
58
|
}
|
|
61
|
-
|
|
62
59
|
function Container({
|
|
63
60
|
canvasSize,
|
|
64
61
|
scene,
|
|
@@ -76,11 +73,9 @@ function Container({
|
|
|
76
73
|
useFrame(state => {
|
|
77
74
|
if (frames === Infinity || frameCount <= frames) {
|
|
78
75
|
var _track$current;
|
|
79
|
-
|
|
80
76
|
rect.current = (_track$current = track.current) == null ? void 0 : _track$current.getBoundingClientRect();
|
|
81
77
|
frameCount++;
|
|
82
78
|
}
|
|
83
|
-
|
|
84
79
|
if (rect.current) {
|
|
85
80
|
const {
|
|
86
81
|
position: {
|
|
@@ -92,7 +87,6 @@ function Container({
|
|
|
92
87
|
isOffscreen
|
|
93
88
|
} = computeContainerPosition(canvasSize, rect.current);
|
|
94
89
|
const aspect = width / height;
|
|
95
|
-
|
|
96
90
|
if (isOrthographicCamera(camera)) {
|
|
97
91
|
if (camera.left !== width / -2 || camera.right !== width / 2 || camera.top !== height / 2 || camera.bottom !== height / -2) {
|
|
98
92
|
Object.assign(camera, {
|
|
@@ -107,11 +101,9 @@ function Container({
|
|
|
107
101
|
camera.aspect = aspect;
|
|
108
102
|
camera.updateProjectionMatrix();
|
|
109
103
|
}
|
|
110
|
-
|
|
111
104
|
state.gl.setViewport(left, bottom, width, height);
|
|
112
105
|
state.gl.setScissor(left, bottom, width, height);
|
|
113
106
|
state.gl.setScissorTest(true);
|
|
114
|
-
|
|
115
107
|
if (isOffscreen) {
|
|
116
108
|
state.gl.getClearColor(col);
|
|
117
109
|
state.gl.setClearColor(col, state.gl.getClearAlpha());
|
|
@@ -119,9 +111,8 @@ function Container({
|
|
|
119
111
|
} else {
|
|
120
112
|
// When children are present render the portalled scene, otherwise the default scene
|
|
121
113
|
state.gl.render(children ? virtualScene : scene, camera);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
114
|
+
}
|
|
115
|
+
// Restore the default state
|
|
125
116
|
state.gl.setScissorTest(true);
|
|
126
117
|
}
|
|
127
118
|
}, index);
|
|
@@ -139,12 +130,10 @@ function Container({
|
|
|
139
130
|
if (isNonLegacyCanvasSize(canvasSize)) {
|
|
140
131
|
return;
|
|
141
132
|
}
|
|
142
|
-
|
|
143
133
|
console.warn('Detected @react-three/fiber canvas size does not include position information. <View /> may not work as expected. ' + 'Upgrade to @react-three/fiber ^8.1.0 for support.\n See https://github.com/pmndrs/drei/issues/944');
|
|
144
134
|
}, []);
|
|
145
135
|
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
146
136
|
}
|
|
147
|
-
|
|
148
137
|
const View = ({
|
|
149
138
|
track,
|
|
150
139
|
index = 1,
|
|
@@ -152,7 +141,6 @@ const View = ({
|
|
|
152
141
|
children
|
|
153
142
|
}) => {
|
|
154
143
|
var _rect$current, _rect$current2;
|
|
155
|
-
|
|
156
144
|
const rect = React.useRef(null);
|
|
157
145
|
const {
|
|
158
146
|
size,
|
|
@@ -176,10 +164,9 @@ const View = ({
|
|
|
176
164
|
const [ready, toggle] = React.useReducer(() => true, false);
|
|
177
165
|
React.useEffect(() => {
|
|
178
166
|
var _track$current2;
|
|
179
|
-
|
|
180
167
|
// We need the tracking elements bounds beforehand in order to inject it into the portal
|
|
181
|
-
rect.current = (_track$current2 = track.current) == null ? void 0 : _track$current2.getBoundingClientRect();
|
|
182
|
-
|
|
168
|
+
rect.current = (_track$current2 = track.current) == null ? void 0 : _track$current2.getBoundingClientRect();
|
|
169
|
+
// And now we can proceed
|
|
183
170
|
toggle();
|
|
184
171
|
}, [track]);
|
|
185
172
|
return /*#__PURE__*/React.createElement(React.Fragment, null, ready && createPortal( /*#__PURE__*/React.createElement(Container, {
|
package/web/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Html.cjs.js"),r=require("./CycleRaycast.cjs.js"),s=require("./useCursor.cjs.js"),o=require("./Loader.cjs.js"),t=require("./ScrollControls.cjs.js"),i=require("./PresentationControls.cjs.js"),c=require("./KeyboardControls.cjs.js"),a=require("./Select.cjs.js"),u=require("./View.cjs.js"),n=require("./pivotControls/index.cjs.js"),j=require("../core/Billboard.cjs.js"),p=require("../core/ScreenSpace.cjs.js"),l=require("../core/QuadraticBezierLine.cjs.js"),x=require("../core/CubicBezierLine.cjs.js"),q=require("../core/CatmullRomLine.cjs.js"),d=require("../core/Line.cjs.js"),m=require("../core/PositionalAudio.cjs.js"),C=require("../core/Text.cjs.js"),h=require("../core/Text3D.cjs.js"),S=require("../core/Effects.cjs.js"),M=require("../core/GradientTexture.cjs.js"),P=require("../core/Image.cjs.js"),b=require("../core/Edges.cjs.js"),f=require("../core/Outlines.cjs.js"),T=require("../core/Trail.cjs.js"),v=require("../core/Sampler.cjs.js"),g=require("../core/ComputedAttribute.cjs.js"),B=require("../core/Clone.cjs.js"),F=require("../core/MarchingCubes.cjs.js"),L=require("../core/Decal.cjs.js"),A=require("../core/Svg.cjs.js"),k=require("../core/Gltf.cjs.js"),D=require("../core/AsciiRenderer.cjs.js"),E=require("../core/OrthographicCamera.cjs.js"),R=require("../core/PerspectiveCamera.cjs.js"),G=require("../core/CubeCamera.cjs.js"),w=require("../core/DeviceOrientationControls.cjs.js"),y=require("../core/FlyControls.cjs.js"),z=require("../core/MapControls.cjs.js"),O=require("../core/OrbitControls.cjs.js"),I=require("../core/TrackballControls.cjs.js"),H=require("../core/ArcballControls.cjs.js"),V=require("../core/TransformControls.cjs.js"),K=require("../core/PointerLockControls.cjs.js"),W=require("../core/FirstPersonControls.cjs.js"),Q=require("../core/CameraControls.cjs.js"),X=require("../core/FaceControls.cjs.js"),N=require("../core/GizmoHelper.cjs.js"),U=require("../core/GizmoViewcube.cjs.js"),_=require("../core/GizmoViewport.cjs.js"),J=require("../core/Grid.cjs.js"),Y=require("../core/useCubeTexture.cjs.js"),Z=require("../core/useFBX.cjs.js"),$=require("../core/useGLTF.cjs.js"),ee=require("../core/useKTX2.cjs.js"),re=require("../core/useProgress.cjs.js"),se=require("../core/useTexture.cjs.js"),oe=require("../core/useVideoTexture.cjs.js"),te=require("../core/useFont.cjs.js"),ie=require("../core/Stats.cjs.js"),ce=require("../core/StatsGl.cjs.js"),ae=require("../core/useDepthBuffer.cjs.js"),ue=require("../core/useAspect.cjs.js"),ne=require("../core/useCamera.cjs.js"),je=require("../core/useDetectGPU.cjs.js"),pe=require("../core/useHelper.cjs.js"),le=require("../core/useBVH.cjs.js"),xe=require("../core/useContextBridge.cjs.js"),qe=require("../core/useAnimations.cjs.js"),de=require("../core/useFBO.cjs.js"),me=require("../core/useIntersect.cjs.js"),Ce=require("../core/useBoxProjectedEnv.cjs.js"),he=require("../core/BBAnchor.cjs.js"),Se=require("../core/useTrailTexture.cjs.js"),Me=require("../core/useCubeCamera.cjs.js"),Pe=require("../core/Example.cjs.js"),be=require("../core/SpriteAnimator.cjs.js"),fe=require("../core/FaceLandmarker.cjs.js"),Te=require("../core/CurveModifier.cjs.js"),ve=require("../core/MeshDistortMaterial.cjs.js"),ge=require("../core/MeshWobbleMaterial.cjs.js"),Be=require("../core/MeshReflectorMaterial.cjs.js"),Fe=require("../core/MeshRefractionMaterial.cjs.js"),Le=require("../core/MeshTransmissionMaterial.cjs.js"),Ae=require("../core/MeshDiscardMaterial.cjs.js"),ke=require("../core/PointMaterial.cjs.js"),De=require("../core/shaderMaterial.cjs.js"),Ee=require("../core/softShadows.cjs.js"),Re=require("../core/shapes.cjs.js"),Ge=require("../core/Facemesh.cjs.js"),we=require("../core/RoundedBox.cjs.js"),ye=require("../core/ScreenQuad.cjs.js"),ze=require("../core/Center.cjs.js"),Oe=require("../core/Resize.cjs.js"),Ie=require("../core/Bounds.cjs.js"),He=require("../core/CameraShake.cjs.js"),Ve=require("../core/Float.cjs.js"),Ke=require("../core/Stage.cjs.js"),We=require("../core/Backdrop.cjs.js"),Qe=require("../core/Shadow.cjs.js"),Xe=require("../core/Caustics.cjs.js"),Ne=require("../core/ContactShadows.cjs.js"),Ue=require("../core/AccumulativeShadows.cjs.js"),_e=require("../core/Reflector.cjs.js"),Je=require("../core/SpotLight.cjs.js"),Ye=require("../core/Environment.cjs.js"),Ze=require("../core/Lightformer.cjs.js"),$e=require("../core/Sky.cjs.js"),er=require("../core/Stars.cjs.js"),rr=require("../core/Cloud.cjs.js"),sr=require("../core/Sparkles.cjs.js"),or=require("../core/useEnvironment.cjs.js"),tr=require("../core/useMatcapTexture.cjs.js"),ir=require("../core/useNormalTexture.cjs.js"),cr=require("../core/Wireframe.cjs.js"),ar=require("../core/Points.cjs.js"),ur=require("../core/Instances.cjs.js"),nr=require("../core/Segments.cjs.js"),jr=require("../core/Detailed.cjs.js"),pr=require("../core/Preload.cjs.js"),lr=require("../core/BakeShadows.cjs.js"),xr=require("../core/meshBounds.cjs.js"),qr=require("../core/AdaptiveDpr.cjs.js"),dr=require("../core/AdaptiveEvents.cjs.js"),mr=require("../core/PerformanceMonitor.cjs.js"),Cr=require("../core/RenderTexture.cjs.js"),hr=require("../core/Mask.cjs.js"),Sr=require("../core/Hud.cjs.js"),Mr=require("../core/MeshPortalMaterial.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("react-dom/client"),require("three"),require("@react-three/fiber"),require("zustand"),require("react-merge-refs"),require("maath"),require("@react-spring/three"),require("@use-gesture/react"),require("zustand/middleware"),require("three-stdlib"),require("zustand/shallow"),require("./pivotControls/AxisArrow.cjs.js"),require("./pivotControls/context.cjs.js"),require("./pivotControls/PlaneSlider.cjs.js"),require("./pivotControls/AxisRotator.cjs.js"),require("lodash.clamp"),require("troika-three-text"),require("suspend-react"),require("meshline"),require("lodash.pick"),require("lodash.omit"),require("camera-controls"),require("@mediapipe/tasks-vision"),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.Html=e.Html,exports.CycleRaycast=r.CycleRaycast,exports.useCursor=s.useCursor,exports.Loader=o.Loader,exports.Scroll=t.Scroll,exports.ScrollControls=t.ScrollControls,exports.useScroll=t.useScroll,exports.PresentationControls=i.PresentationControls,exports.KeyboardControls=c.KeyboardControls,exports.useKeyboardControls=c.useKeyboardControls,exports.Select=a.Select,exports.useSelect=a.useSelect,exports.View=u.View,exports.PivotControls=n.PivotControls,exports.calculateScaleFactor=n.calculateScaleFactor,exports.Billboard=j.Billboard,exports.ScreenSpace=p.ScreenSpace,exports.QuadraticBezierLine=l.QuadraticBezierLine,exports.CubicBezierLine=x.CubicBezierLine,exports.CatmullRomLine=q.CatmullRomLine,exports.Line=d.Line,exports.PositionalAudio=m.PositionalAudio,exports.Text=C.Text,exports.Text3D=h.Text3D,exports.Effects=S.Effects,exports.isWebGL2Available=S.isWebGL2Available,exports.GradientTexture=M.GradientTexture,exports.GradientType=M.GradientType,exports.Image=P.Image,exports.Edges=b.Edges,exports.Outlines=f.Outlines,exports.Trail=T.Trail,exports.useTrail=T.useTrail,exports.Sampler=v.Sampler,exports.useSurfaceSampler=v.useSurfaceSampler,exports.ComputedAttribute=g.ComputedAttribute,exports.Clone=B.Clone,exports.MarchingCube=F.MarchingCube,exports.MarchingCubes=F.MarchingCubes,exports.MarchingPlane=F.MarchingPlane,exports.Decal=L.Decal,exports.Svg=A.Svg,exports.Gltf=k.Gltf,exports.AsciiRenderer=D.AsciiRenderer,exports.OrthographicCamera=E.OrthographicCamera,exports.PerspectiveCamera=R.PerspectiveCamera,exports.CubeCamera=G.CubeCamera,exports.DeviceOrientationControls=w.DeviceOrientationControls,exports.FlyControls=y.FlyControls,exports.MapControls=z.MapControls,exports.OrbitControls=O.OrbitControls,exports.TrackballControls=I.TrackballControls,exports.ArcballControls=H.ArcballControls,exports.TransformControls=V.TransformControls,exports.PointerLockControls=K.PointerLockControls,exports.FirstPersonControls=W.FirstPersonControls,exports.CameraControls=Q.CameraControls,exports.FaceControls=X.FaceControls,exports.useFaceControls=X.useFaceControls,exports.GizmoHelper=N.GizmoHelper,exports.useGizmoContext=N.useGizmoContext,exports.GizmoViewcube=U.GizmoViewcube,exports.GizmoViewport=_.GizmoViewport,exports.Grid=J.Grid,exports.useCubeTexture=Y.useCubeTexture,exports.useFBX=Z.useFBX,exports.useGLTF=$.useGLTF,exports.useKTX2=ee.useKTX2,exports.useProgress=re.useProgress,exports.IsObject=se.IsObject,exports.useTexture=se.useTexture,exports.useVideoTexture=oe.useVideoTexture,exports.useFont=te.useFont,exports.Stats=ie.Stats,exports.StatsGl=ce.StatsGl,exports.useDepthBuffer=ae.useDepthBuffer,exports.useAspect=ue.useAspect,exports.useCamera=ne.useCamera,exports.useDetectGPU=je.useDetectGPU,exports.useHelper=pe.useHelper,exports.Bvh=le.Bvh,exports.useBVH=le.useBVH,exports.useContextBridge=xe.useContextBridge,exports.useAnimations=qe.useAnimations,exports.useFBO=de.useFBO,exports.useIntersect=me.useIntersect,exports.useBoxProjectedEnv=Ce.useBoxProjectedEnv,exports.BBAnchor=he.BBAnchor,exports.useTrailTexture=Se.useTrailTexture,exports.useCubeCamera=Me.useCubeCamera,exports.Example=Pe.Example,exports.SpriteAnimator=be.SpriteAnimator,exports.FaceLandmarker=fe.FaceLandmarker,exports.FaceLandmarkerDefaults=fe.FaceLandmarkerDefaults,exports.useFaceLandmarker=fe.useFaceLandmarker,exports.CurveModifier=Te.CurveModifier,exports.MeshDistortMaterial=ve.MeshDistortMaterial,exports.MeshWobbleMaterial=ge.MeshWobbleMaterial,exports.MeshReflectorMaterial=Be.MeshReflectorMaterial,exports.MeshRefractionMaterial=Fe.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Le.MeshTransmissionMaterial,exports.MeshDiscardMaterial=Ae.MeshDiscardMaterial,exports.PointMaterial=ke.PointMaterial,exports.PointMaterialImpl=ke.PointMaterialImpl,exports.shaderMaterial=De.shaderMaterial,exports.SoftShadows=Ee.SoftShadows,exports.Box=Re.Box,exports.Capsule=Re.Capsule,exports.Circle=Re.Circle,exports.Cone=Re.Cone,exports.Cylinder=Re.Cylinder,exports.Dodecahedron=Re.Dodecahedron,exports.Extrude=Re.Extrude,exports.Icosahedron=Re.Icosahedron,exports.Lathe=Re.Lathe,exports.Octahedron=Re.Octahedron,exports.Plane=Re.Plane,exports.Polyhedron=Re.Polyhedron,exports.Ring=Re.Ring,exports.Shape=Re.Shape,exports.Sphere=Re.Sphere,exports.Tetrahedron=Re.Tetrahedron,exports.Torus=Re.Torus,exports.TorusKnot=Re.TorusKnot,exports.Tube=Re.Tube,exports.Facemesh=Ge.Facemesh,exports.FacemeshDatas=Ge.FacemeshDatas,exports.FacemeshEye=Ge.FacemeshEye,exports.FacemeshEyeDefaults=Ge.FacemeshEyeDefaults,exports.RoundedBox=we.RoundedBox,exports.ScreenQuad=ye.ScreenQuad,exports.Center=ze.Center,exports.Resize=Oe.Resize,exports.Bounds=Ie.Bounds,exports.useBounds=Ie.useBounds,exports.CameraShake=He.CameraShake,exports.Float=Ve.Float,exports.Stage=Ke.Stage,exports.Backdrop=We.Backdrop,exports.Shadow=Qe.Shadow,exports.Caustics=Xe.Caustics,exports.ContactShadows=Ne.ContactShadows,exports.AccumulativeShadows=Ue.AccumulativeShadows,exports.RandomizedLight=Ue.RandomizedLight,exports.accumulativeContext=Ue.accumulativeContext,exports.Reflector=_e.Reflector,exports.SpotLight=Je.SpotLight,exports.SpotLightShadow=Je.SpotLightShadow,exports.Environment=Ye.Environment,exports.EnvironmentCube=Ye.EnvironmentCube,exports.EnvironmentMap=Ye.EnvironmentMap,exports.EnvironmentPortal=Ye.EnvironmentPortal,exports.Lightformer=Ze.Lightformer,exports.Sky=$e.Sky,exports.calcPosFromAngles=$e.calcPosFromAngles,exports.Stars=er.Stars,exports.Cloud=rr.Cloud,exports.Sparkles=sr.Sparkles,exports.useEnvironment=or.useEnvironment,exports.useMatcapTexture=tr.useMatcapTexture,exports.useNormalTexture=ir.useNormalTexture,exports.Wireframe=cr.Wireframe,exports.Point=ar.Point,exports.Points=ar.Points,exports.PointsBuffer=ar.PointsBuffer,exports.PositionPoint=ar.PositionPoint,exports.Instance=ur.Instance,exports.Instances=ur.Instances,exports.Merged=ur.Merged,exports.Segment=nr.Segment,exports.SegmentObject=nr.SegmentObject,exports.Segments=nr.Segments,exports.Detailed=jr.Detailed,exports.Preload=pr.Preload,exports.BakeShadows=lr.BakeShadows,exports.meshBounds=xr.meshBounds,exports.AdaptiveDpr=qr.AdaptiveDpr,exports.AdaptiveEvents=dr.AdaptiveEvents,exports.PerformanceMonitor=mr.PerformanceMonitor,exports.usePerformanceMonitor=mr.usePerformanceMonitor,exports.RenderTexture=Cr.RenderTexture,exports.Mask=hr.Mask,exports.useMask=hr.useMask,exports.Hud=Sr.Hud,exports.MeshPortalMaterial=Mr.MeshPortalMaterial;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Html.cjs.js"),r=require("./CycleRaycast.cjs.js"),s=require("./useCursor.cjs.js"),o=require("./Loader.cjs.js"),t=require("./ScrollControls.cjs.js"),i=require("./PresentationControls.cjs.js"),c=require("./KeyboardControls.cjs.js"),a=require("./Select.cjs.js"),u=require("./View.cjs.js"),n=require("./pivotControls/index.cjs.js"),j=require("../core/Billboard.cjs.js"),l=require("../core/ScreenSpace.cjs.js"),p=require("../core/QuadraticBezierLine.cjs.js"),x=require("../core/CubicBezierLine.cjs.js"),q=require("../core/CatmullRomLine.cjs.js"),d=require("../core/Line.cjs.js"),m=require("../core/PositionalAudio.cjs.js"),C=require("../core/Text.cjs.js"),h=require("../core/Text3D.cjs.js"),S=require("../core/Effects.cjs.js"),M=require("../core/GradientTexture.cjs.js"),P=require("../core/Image.cjs.js"),b=require("../core/Edges.cjs.js"),f=require("../core/Outlines.cjs.js"),T=require("../core/Trail.cjs.js"),v=require("../core/Sampler.cjs.js"),g=require("../core/ComputedAttribute.cjs.js"),B=require("../core/Clone.cjs.js"),F=require("../core/MarchingCubes.cjs.js"),L=require("../core/Decal.cjs.js"),A=require("../core/Svg.cjs.js"),k=require("../core/Gltf.cjs.js"),D=require("../core/AsciiRenderer.cjs.js"),E=require("../core/OrthographicCamera.cjs.js"),R=require("../core/PerspectiveCamera.cjs.js"),G=require("../core/CubeCamera.cjs.js"),w=require("../core/DeviceOrientationControls.cjs.js"),y=require("../core/FlyControls.cjs.js"),z=require("../core/MapControls.cjs.js"),O=require("../core/OrbitControls.cjs.js"),I=require("../core/TrackballControls.cjs.js"),H=require("../core/ArcballControls.cjs.js"),V=require("../core/TransformControls.cjs.js"),K=require("../core/PointerLockControls.cjs.js"),W=require("../core/FirstPersonControls.cjs.js"),Q=require("../core/CameraControls.cjs.js"),X=require("../core/FaceControls.cjs.js"),N=require("../core/MotionPathControls.cjs.js"),U=require("../core/GizmoHelper.cjs.js"),_=require("../core/GizmoViewcube.cjs.js"),J=require("../core/GizmoViewport.cjs.js"),Y=require("../core/Grid.cjs.js"),Z=require("../core/useCubeTexture.cjs.js"),$=require("../core/useFBX.cjs.js"),ee=require("../core/useGLTF.cjs.js"),re=require("../core/useKTX2.cjs.js"),se=require("../core/useProgress.cjs.js"),oe=require("../core/useTexture.cjs.js"),te=require("../core/useVideoTexture.cjs.js"),ie=require("../core/useFont.cjs.js"),ce=require("../core/Stats.cjs.js"),ae=require("../core/StatsGl.cjs.js"),ue=require("../core/useDepthBuffer.cjs.js"),ne=require("../core/useAspect.cjs.js"),je=require("../core/useCamera.cjs.js"),le=require("../core/useDetectGPU.cjs.js"),pe=require("../core/useHelper.cjs.js"),xe=require("../core/useBVH.cjs.js"),qe=require("../core/useContextBridge.cjs.js"),de=require("../core/useAnimations.cjs.js"),me=require("../core/useFBO.cjs.js"),Ce=require("../core/useIntersect.cjs.js"),he=require("../core/useBoxProjectedEnv.cjs.js"),Se=require("../core/BBAnchor.cjs.js"),Me=require("../core/useTrailTexture.cjs.js"),Pe=require("../core/useCubeCamera.cjs.js"),be=require("../core/Example.cjs.js"),fe=require("../core/SpriteAnimator.cjs.js"),Te=require("../core/FaceLandmarker.cjs.js"),ve=require("../core/CurveModifier.cjs.js"),ge=require("../core/MeshDistortMaterial.cjs.js"),Be=require("../core/MeshWobbleMaterial.cjs.js"),Fe=require("../core/MeshReflectorMaterial.cjs.js"),Le=require("../core/MeshRefractionMaterial.cjs.js"),Ae=require("../core/MeshTransmissionMaterial.cjs.js"),ke=require("../core/MeshDiscardMaterial.cjs.js"),De=require("../core/PointMaterial.cjs.js"),Ee=require("../core/shaderMaterial.cjs.js"),Re=require("../core/softShadows.cjs.js"),Ge=require("../core/shapes.cjs.js"),we=require("../core/Facemesh.cjs.js"),ye=require("../core/RoundedBox.cjs.js"),ze=require("../core/ScreenQuad.cjs.js"),Oe=require("../core/Center.cjs.js"),Ie=require("../core/Resize.cjs.js"),He=require("../core/Bounds.cjs.js"),Ve=require("../core/CameraShake.cjs.js"),Ke=require("../core/Float.cjs.js"),We=require("../core/Stage.cjs.js"),Qe=require("../core/Backdrop.cjs.js"),Xe=require("../core/Shadow.cjs.js"),Ne=require("../core/Caustics.cjs.js"),Ue=require("../core/ContactShadows.cjs.js"),_e=require("../core/AccumulativeShadows.cjs.js"),Je=require("../core/Reflector.cjs.js"),Ye=require("../core/SpotLight.cjs.js"),Ze=require("../core/Environment.cjs.js"),$e=require("../core/Lightformer.cjs.js"),er=require("../core/Sky.cjs.js"),rr=require("../core/Stars.cjs.js"),sr=require("../core/Cloud.cjs.js"),or=require("../core/Sparkles.cjs.js"),tr=require("../core/useEnvironment.cjs.js"),ir=require("../core/useMatcapTexture.cjs.js"),cr=require("../core/useNormalTexture.cjs.js"),ar=require("../core/Wireframe.cjs.js"),ur=require("../core/Points.cjs.js"),nr=require("../core/Instances.cjs.js"),jr=require("../core/Segments.cjs.js"),lr=require("../core/Detailed.cjs.js"),pr=require("../core/Preload.cjs.js"),xr=require("../core/BakeShadows.cjs.js"),qr=require("../core/meshBounds.cjs.js"),dr=require("../core/AdaptiveDpr.cjs.js"),mr=require("../core/AdaptiveEvents.cjs.js"),Cr=require("../core/PerformanceMonitor.cjs.js"),hr=require("../core/RenderTexture.cjs.js"),Sr=require("../core/Mask.cjs.js"),Mr=require("../core/Hud.cjs.js"),Pr=require("../core/MeshPortalMaterial.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("react-dom/client"),require("three"),require("@react-three/fiber"),require("zustand"),require("react-merge-refs"),require("maath"),require("@react-spring/three"),require("@use-gesture/react"),require("zustand/middleware"),require("three-stdlib"),require("zustand/shallow"),require("./pivotControls/AxisArrow.cjs.js"),require("./pivotControls/context.cjs.js"),require("./pivotControls/PlaneSlider.cjs.js"),require("./pivotControls/AxisRotator.cjs.js"),require("lodash.clamp"),require("troika-three-text"),require("suspend-react"),require("meshline"),require("lodash.pick"),require("lodash.omit"),require("camera-controls"),require("@mediapipe/tasks-vision"),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.Html=e.Html,exports.CycleRaycast=r.CycleRaycast,exports.useCursor=s.useCursor,exports.Loader=o.Loader,exports.Scroll=t.Scroll,exports.ScrollControls=t.ScrollControls,exports.useScroll=t.useScroll,exports.PresentationControls=i.PresentationControls,exports.KeyboardControls=c.KeyboardControls,exports.useKeyboardControls=c.useKeyboardControls,exports.Select=a.Select,exports.useSelect=a.useSelect,exports.View=u.View,exports.PivotControls=n.PivotControls,exports.calculateScaleFactor=n.calculateScaleFactor,exports.Billboard=j.Billboard,exports.ScreenSpace=l.ScreenSpace,exports.QuadraticBezierLine=p.QuadraticBezierLine,exports.CubicBezierLine=x.CubicBezierLine,exports.CatmullRomLine=q.CatmullRomLine,exports.Line=d.Line,exports.PositionalAudio=m.PositionalAudio,exports.Text=C.Text,exports.Text3D=h.Text3D,exports.Effects=S.Effects,exports.isWebGL2Available=S.isWebGL2Available,exports.GradientTexture=M.GradientTexture,exports.GradientType=M.GradientType,exports.Image=P.Image,exports.Edges=b.Edges,exports.Outlines=f.Outlines,exports.Trail=T.Trail,exports.useTrail=T.useTrail,exports.Sampler=v.Sampler,exports.useSurfaceSampler=v.useSurfaceSampler,exports.ComputedAttribute=g.ComputedAttribute,exports.Clone=B.Clone,exports.MarchingCube=F.MarchingCube,exports.MarchingCubes=F.MarchingCubes,exports.MarchingPlane=F.MarchingPlane,exports.Decal=L.Decal,exports.Svg=A.Svg,exports.Gltf=k.Gltf,exports.AsciiRenderer=D.AsciiRenderer,exports.OrthographicCamera=E.OrthographicCamera,exports.PerspectiveCamera=R.PerspectiveCamera,exports.CubeCamera=G.CubeCamera,exports.DeviceOrientationControls=w.DeviceOrientationControls,exports.FlyControls=y.FlyControls,exports.MapControls=z.MapControls,exports.OrbitControls=O.OrbitControls,exports.TrackballControls=I.TrackballControls,exports.ArcballControls=H.ArcballControls,exports.TransformControls=V.TransformControls,exports.PointerLockControls=K.PointerLockControls,exports.FirstPersonControls=W.FirstPersonControls,exports.CameraControls=Q.CameraControls,exports.FaceControls=X.FaceControls,exports.useFaceControls=X.useFaceControls,exports.MotionPathControls=N.MotionPathControls,exports.useMotion=N.useMotion,exports.GizmoHelper=U.GizmoHelper,exports.useGizmoContext=U.useGizmoContext,exports.GizmoViewcube=_.GizmoViewcube,exports.GizmoViewport=J.GizmoViewport,exports.Grid=Y.Grid,exports.useCubeTexture=Z.useCubeTexture,exports.useFBX=$.useFBX,exports.useGLTF=ee.useGLTF,exports.useKTX2=re.useKTX2,exports.useProgress=se.useProgress,exports.IsObject=oe.IsObject,exports.useTexture=oe.useTexture,exports.useVideoTexture=te.useVideoTexture,exports.useFont=ie.useFont,exports.Stats=ce.Stats,exports.StatsGl=ae.StatsGl,exports.useDepthBuffer=ue.useDepthBuffer,exports.useAspect=ne.useAspect,exports.useCamera=je.useCamera,exports.useDetectGPU=le.useDetectGPU,exports.useHelper=pe.useHelper,exports.Bvh=xe.Bvh,exports.useBVH=xe.useBVH,exports.useContextBridge=qe.useContextBridge,exports.useAnimations=de.useAnimations,exports.useFBO=me.useFBO,exports.useIntersect=Ce.useIntersect,exports.useBoxProjectedEnv=he.useBoxProjectedEnv,exports.BBAnchor=Se.BBAnchor,exports.useTrailTexture=Me.useTrailTexture,exports.useCubeCamera=Pe.useCubeCamera,exports.Example=be.Example,exports.SpriteAnimator=fe.SpriteAnimator,exports.FaceLandmarker=Te.FaceLandmarker,exports.FaceLandmarkerDefaults=Te.FaceLandmarkerDefaults,exports.useFaceLandmarker=Te.useFaceLandmarker,exports.CurveModifier=ve.CurveModifier,exports.MeshDistortMaterial=ge.MeshDistortMaterial,exports.MeshWobbleMaterial=Be.MeshWobbleMaterial,exports.MeshReflectorMaterial=Fe.MeshReflectorMaterial,exports.MeshRefractionMaterial=Le.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Ae.MeshTransmissionMaterial,exports.MeshDiscardMaterial=ke.MeshDiscardMaterial,exports.PointMaterial=De.PointMaterial,exports.PointMaterialImpl=De.PointMaterialImpl,exports.shaderMaterial=Ee.shaderMaterial,exports.SoftShadows=Re.SoftShadows,exports.Box=Ge.Box,exports.Capsule=Ge.Capsule,exports.Circle=Ge.Circle,exports.Cone=Ge.Cone,exports.Cylinder=Ge.Cylinder,exports.Dodecahedron=Ge.Dodecahedron,exports.Extrude=Ge.Extrude,exports.Icosahedron=Ge.Icosahedron,exports.Lathe=Ge.Lathe,exports.Octahedron=Ge.Octahedron,exports.Plane=Ge.Plane,exports.Polyhedron=Ge.Polyhedron,exports.Ring=Ge.Ring,exports.Shape=Ge.Shape,exports.Sphere=Ge.Sphere,exports.Tetrahedron=Ge.Tetrahedron,exports.Torus=Ge.Torus,exports.TorusKnot=Ge.TorusKnot,exports.Tube=Ge.Tube,exports.Facemesh=we.Facemesh,exports.FacemeshDatas=we.FacemeshDatas,exports.FacemeshEye=we.FacemeshEye,exports.FacemeshEyeDefaults=we.FacemeshEyeDefaults,exports.RoundedBox=ye.RoundedBox,exports.ScreenQuad=ze.ScreenQuad,exports.Center=Oe.Center,exports.Resize=Ie.Resize,exports.Bounds=He.Bounds,exports.useBounds=He.useBounds,exports.CameraShake=Ve.CameraShake,exports.Float=Ke.Float,exports.Stage=We.Stage,exports.Backdrop=Qe.Backdrop,exports.Shadow=Xe.Shadow,exports.Caustics=Ne.Caustics,exports.ContactShadows=Ue.ContactShadows,exports.AccumulativeShadows=_e.AccumulativeShadows,exports.RandomizedLight=_e.RandomizedLight,exports.accumulativeContext=_e.accumulativeContext,exports.Reflector=Je.Reflector,exports.SpotLight=Ye.SpotLight,exports.SpotLightShadow=Ye.SpotLightShadow,exports.Environment=Ze.Environment,exports.EnvironmentCube=Ze.EnvironmentCube,exports.EnvironmentMap=Ze.EnvironmentMap,exports.EnvironmentPortal=Ze.EnvironmentPortal,exports.Lightformer=$e.Lightformer,exports.Sky=er.Sky,exports.calcPosFromAngles=er.calcPosFromAngles,exports.Stars=rr.Stars,exports.Cloud=sr.Cloud,exports.Sparkles=or.Sparkles,exports.useEnvironment=tr.useEnvironment,exports.useMatcapTexture=ir.useMatcapTexture,exports.useNormalTexture=cr.useNormalTexture,exports.Wireframe=ar.Wireframe,exports.Point=ur.Point,exports.Points=ur.Points,exports.PointsBuffer=ur.PointsBuffer,exports.PositionPoint=ur.PositionPoint,exports.Instance=nr.Instance,exports.Instances=nr.Instances,exports.Merged=nr.Merged,exports.Segment=jr.Segment,exports.SegmentObject=jr.SegmentObject,exports.Segments=jr.Segments,exports.Detailed=lr.Detailed,exports.Preload=pr.Preload,exports.BakeShadows=xr.BakeShadows,exports.meshBounds=qr.meshBounds,exports.AdaptiveDpr=dr.AdaptiveDpr,exports.AdaptiveEvents=mr.AdaptiveEvents,exports.PerformanceMonitor=Cr.PerformanceMonitor,exports.usePerformanceMonitor=Cr.usePerformanceMonitor,exports.RenderTexture=hr.RenderTexture,exports.Mask=Sr.Mask,exports.useMask=Sr.useMask,exports.Hud=Mr.Hud,exports.MeshPortalMaterial=Pr.MeshPortalMaterial;
|
package/web/index.js
CHANGED
|
@@ -45,6 +45,7 @@ export { PointerLockControls } from '../core/PointerLockControls.js';
|
|
|
45
45
|
export { FirstPersonControls } from '../core/FirstPersonControls.js';
|
|
46
46
|
export { CameraControls } from '../core/CameraControls.js';
|
|
47
47
|
export { FaceControls, useFaceControls } from '../core/FaceControls.js';
|
|
48
|
+
export { MotionPathControls, useMotion } from '../core/MotionPathControls.js';
|
|
48
49
|
export { GizmoHelper, useGizmoContext } from '../core/GizmoHelper.js';
|
|
49
50
|
export { GizmoViewcube } from '../core/GizmoViewcube.js';
|
|
50
51
|
export { GizmoViewport } from '../core/GizmoViewport.js';
|
|
@@ -11,11 +11,9 @@ const calculateOffset = (clickPoint, normal, rayStart, rayDir) => {
|
|
|
11
11
|
const e1 = normal.dot(normal);
|
|
12
12
|
const e2 = normal.dot(clickPoint) - normal.dot(rayStart);
|
|
13
13
|
const e3 = normal.dot(rayDir);
|
|
14
|
-
|
|
15
14
|
if (e3 === 0) {
|
|
16
15
|
return -e2 / e1;
|
|
17
16
|
}
|
|
18
|
-
|
|
19
17
|
vec1.copy(rayDir).multiplyScalar(e1 / e3).sub(normal);
|
|
20
18
|
vec2.copy(rayDir).multiplyScalar(e2 / e3).add(rayStart).sub(clickPoint);
|
|
21
19
|
const offset = -vec1.dot(vec2) / vec1.dot(vec1);
|
|
@@ -43,8 +41,9 @@ const AxisArrow = ({
|
|
|
43
41
|
onDrag,
|
|
44
42
|
onDragEnd,
|
|
45
43
|
userData
|
|
46
|
-
} = React.useContext(context);
|
|
44
|
+
} = React.useContext(context);
|
|
47
45
|
|
|
46
|
+
// @ts-expect-error new in @react-three/fiber@7.0.5
|
|
48
47
|
const camControls = useThree(state => state.controls);
|
|
49
48
|
const divRef = React.useRef(null);
|
|
50
49
|
const objRef = React.useRef(null);
|
|
@@ -56,7 +55,6 @@ const AxisArrow = ({
|
|
|
56
55
|
divRef.current.innerText = `${translation.current[axis].toFixed(2)}`;
|
|
57
56
|
divRef.current.style.display = 'block';
|
|
58
57
|
}
|
|
59
|
-
|
|
60
58
|
e.stopPropagation();
|
|
61
59
|
const rotation = new THREE.Matrix4().extractRotation(objRef.current.matrixWorld);
|
|
62
60
|
const clickPoint = e.point.clone();
|
|
@@ -73,14 +71,13 @@ const AxisArrow = ({
|
|
|
73
71
|
origin,
|
|
74
72
|
directions: [dir]
|
|
75
73
|
});
|
|
76
|
-
camControls && (camControls.enabled = false);
|
|
77
|
-
|
|
74
|
+
camControls && (camControls.enabled = false);
|
|
75
|
+
// @ts-ignore - setPointerCapture is not in the type definition
|
|
78
76
|
e.target.setPointerCapture(e.pointerId);
|
|
79
77
|
}, [annotations, direction, camControls, onDragStart, translation, axis]);
|
|
80
78
|
const onPointerMove = React.useCallback(e => {
|
|
81
79
|
e.stopPropagation();
|
|
82
80
|
if (!isHovered) setIsHovered(true);
|
|
83
|
-
|
|
84
81
|
if (clickInfo.current) {
|
|
85
82
|
const {
|
|
86
83
|
clickPoint,
|
|
@@ -88,21 +85,16 @@ const AxisArrow = ({
|
|
|
88
85
|
} = clickInfo.current;
|
|
89
86
|
const [min, max] = (translationLimits == null ? void 0 : translationLimits[axis]) || [undefined, undefined];
|
|
90
87
|
let offset = calculateOffset(clickPoint, dir, e.ray.origin, e.ray.direction);
|
|
91
|
-
|
|
92
88
|
if (min !== undefined) {
|
|
93
89
|
offset = Math.max(offset, min - offset0.current);
|
|
94
90
|
}
|
|
95
|
-
|
|
96
91
|
if (max !== undefined) {
|
|
97
92
|
offset = Math.min(offset, max - offset0.current);
|
|
98
93
|
}
|
|
99
|
-
|
|
100
94
|
translation.current[axis] = offset0.current + offset;
|
|
101
|
-
|
|
102
95
|
if (annotations) {
|
|
103
96
|
divRef.current.innerText = `${translation.current[axis].toFixed(2)}`;
|
|
104
97
|
}
|
|
105
|
-
|
|
106
98
|
offsetMatrix.makeTranslation(dir.x * offset, dir.y * offset, dir.z * offset);
|
|
107
99
|
onDrag(offsetMatrix);
|
|
108
100
|
}
|
|
@@ -111,12 +103,11 @@ const AxisArrow = ({
|
|
|
111
103
|
if (annotations) {
|
|
112
104
|
divRef.current.style.display = 'none';
|
|
113
105
|
}
|
|
114
|
-
|
|
115
106
|
e.stopPropagation();
|
|
116
107
|
clickInfo.current = null;
|
|
117
108
|
onDragEnd();
|
|
118
|
-
camControls && (camControls.enabled = true);
|
|
119
|
-
|
|
109
|
+
camControls && (camControls.enabled = true);
|
|
110
|
+
// @ts-ignore - releasePointerCapture & PointerEvent#pointerId is not in the type definition
|
|
120
111
|
e.target.releasePointerCapture(e.pointerId);
|
|
121
112
|
}, [annotations, camControls, onDragEnd]);
|
|
122
113
|
const onPointerOut = React.useCallback(e => {
|
|
@@ -8,11 +8,8 @@ import { context } from './context.js';
|
|
|
8
8
|
|
|
9
9
|
const clickDir = new THREE.Vector3();
|
|
10
10
|
const intersectionDir = new THREE.Vector3();
|
|
11
|
-
|
|
12
11
|
const toDegrees = radians => radians * 180 / Math.PI;
|
|
13
|
-
|
|
14
12
|
const toRadians = degrees => degrees * Math.PI / 180;
|
|
15
|
-
|
|
16
13
|
const calculateAngle = (clickPoint, intersectionPoint, origin, e1, e2) => {
|
|
17
14
|
clickDir.copy(clickPoint).sub(origin);
|
|
18
15
|
intersectionDir.copy(intersectionPoint).sub(origin);
|
|
@@ -26,27 +23,21 @@ const calculateAngle = (clickPoint, intersectionPoint, origin, e1, e2) => {
|
|
|
26
23
|
const angleIntersection = Math.atan2(vIntersection, uIntersection);
|
|
27
24
|
return angleIntersection - angleClick;
|
|
28
25
|
};
|
|
29
|
-
|
|
30
26
|
const fmod = (num, denom) => {
|
|
31
27
|
let k = Math.floor(num / denom);
|
|
32
28
|
k = k < 0 ? k + 1 : k;
|
|
33
29
|
return num - k * denom;
|
|
34
30
|
};
|
|
35
|
-
|
|
36
31
|
const minimizeAngle = angle => {
|
|
37
32
|
let result = fmod(angle, 2 * Math.PI);
|
|
38
|
-
|
|
39
33
|
if (Math.abs(result) < 1e-6) {
|
|
40
34
|
return 0.0;
|
|
41
35
|
}
|
|
42
|
-
|
|
43
36
|
if (result < 0.0) {
|
|
44
37
|
result += 2 * Math.PI;
|
|
45
38
|
}
|
|
46
|
-
|
|
47
39
|
return result;
|
|
48
40
|
};
|
|
49
|
-
|
|
50
41
|
const rotMatrix = new THREE.Matrix4();
|
|
51
42
|
const posNew = new THREE.Vector3();
|
|
52
43
|
const ray = new THREE.Ray();
|
|
@@ -71,8 +62,9 @@ const AxisRotator = ({
|
|
|
71
62
|
onDrag,
|
|
72
63
|
onDragEnd,
|
|
73
64
|
userData
|
|
74
|
-
} = React.useContext(context);
|
|
65
|
+
} = React.useContext(context);
|
|
75
66
|
|
|
67
|
+
// @ts-expect-error new in @react-three/fiber@7.0.5
|
|
76
68
|
const camControls = useThree(state => state.controls);
|
|
77
69
|
const divRef = React.useRef(null);
|
|
78
70
|
const objRef = React.useRef(null);
|
|
@@ -85,7 +77,6 @@ const AxisRotator = ({
|
|
|
85
77
|
divRef.current.innerText = `${toDegrees(angle.current).toFixed(0)}º`;
|
|
86
78
|
divRef.current.style.display = 'block';
|
|
87
79
|
}
|
|
88
|
-
|
|
89
80
|
e.stopPropagation();
|
|
90
81
|
const clickPoint = e.point.clone();
|
|
91
82
|
const origin = new THREE.Vector3().setFromMatrixPosition(objRef.current.matrixWorld);
|
|
@@ -107,14 +98,13 @@ const AxisRotator = ({
|
|
|
107
98
|
origin,
|
|
108
99
|
directions: [e1, e2, normal]
|
|
109
100
|
});
|
|
110
|
-
camControls && (camControls.enabled = false);
|
|
111
|
-
|
|
101
|
+
camControls && (camControls.enabled = false);
|
|
102
|
+
// @ts-ignore
|
|
112
103
|
e.target.setPointerCapture(e.pointerId);
|
|
113
104
|
}, [annotations, camControls, onDragStart, axis]);
|
|
114
105
|
const onPointerMove = React.useCallback(e => {
|
|
115
106
|
e.stopPropagation();
|
|
116
107
|
if (!isHovered) setIsHovered(true);
|
|
117
|
-
|
|
118
108
|
if (clickInfo.current) {
|
|
119
109
|
const {
|
|
120
110
|
clickPoint,
|
|
@@ -130,13 +120,13 @@ const AxisRotator = ({
|
|
|
130
120
|
ray.direction.negate();
|
|
131
121
|
ray.intersectPlane(plane, intersection);
|
|
132
122
|
let deltaAngle = calculateAngle(clickPoint, intersection, origin, e1, e2);
|
|
133
|
-
let degrees = toDegrees(deltaAngle);
|
|
123
|
+
let degrees = toDegrees(deltaAngle);
|
|
134
124
|
|
|
125
|
+
// @ts-ignore
|
|
135
126
|
if (e.shiftKey) {
|
|
136
127
|
degrees = Math.round(degrees / 10) * 10;
|
|
137
128
|
deltaAngle = toRadians(degrees);
|
|
138
129
|
}
|
|
139
|
-
|
|
140
130
|
if (min !== undefined && max !== undefined && max - min < 2 * Math.PI) {
|
|
141
131
|
deltaAngle = minimizeAngle(deltaAngle);
|
|
142
132
|
deltaAngle = deltaAngle > Math.PI ? deltaAngle - 2 * Math.PI : deltaAngle;
|
|
@@ -146,12 +136,10 @@ const AxisRotator = ({
|
|
|
146
136
|
angle.current = minimizeAngle(angle0.current + deltaAngle);
|
|
147
137
|
angle.current = angle.current > Math.PI ? angle.current - 2 * Math.PI : angle.current;
|
|
148
138
|
}
|
|
149
|
-
|
|
150
139
|
if (annotations) {
|
|
151
140
|
degrees = toDegrees(angle.current);
|
|
152
141
|
divRef.current.innerText = `${degrees.toFixed(0)}º`;
|
|
153
142
|
}
|
|
154
|
-
|
|
155
143
|
rotMatrix.makeRotationAxis(normal, deltaAngle);
|
|
156
144
|
posNew.copy(origin).applyMatrix4(rotMatrix).sub(origin).negate();
|
|
157
145
|
rotMatrix.setPosition(posNew);
|
|
@@ -162,13 +150,12 @@ const AxisRotator = ({
|
|
|
162
150
|
if (annotations) {
|
|
163
151
|
divRef.current.style.display = 'none';
|
|
164
152
|
}
|
|
165
|
-
|
|
166
153
|
e.stopPropagation();
|
|
167
154
|
angle0.current = angle.current;
|
|
168
155
|
clickInfo.current = null;
|
|
169
156
|
onDragEnd();
|
|
170
|
-
camControls && (camControls.enabled = true);
|
|
171
|
-
|
|
157
|
+
camControls && (camControls.enabled = true);
|
|
158
|
+
// @ts-ignore
|
|
172
159
|
e.target.releasePointerCapture(e.pointerId);
|
|
173
160
|
}, [annotations, camControls, onDragEnd]);
|
|
174
161
|
const onPointerOut = React.useCallback(e => {
|
|
@@ -184,12 +171,10 @@ const AxisRotator = ({
|
|
|
184
171
|
const arc = React.useMemo(() => {
|
|
185
172
|
const segments = 32;
|
|
186
173
|
const points = [];
|
|
187
|
-
|
|
188
174
|
for (let j = 0; j <= segments; j++) {
|
|
189
175
|
const angle = j * (Math.PI / 2) / segments;
|
|
190
176
|
points.push(new THREE.Vector3(Math.cos(angle) * r, Math.sin(angle) * r, 0));
|
|
191
177
|
}
|
|
192
|
-
|
|
193
178
|
return points;
|
|
194
179
|
}, [r]);
|
|
195
180
|
return /*#__PURE__*/React.createElement("group", {
|
|
@@ -19,7 +19,6 @@ const decomposeIntoBasis = (e1, e2, offset) => {
|
|
|
19
19
|
const x = (c1 - y * b1) / a1;
|
|
20
20
|
return [x, y];
|
|
21
21
|
};
|
|
22
|
-
|
|
23
22
|
const ray = new THREE.Ray();
|
|
24
23
|
const intersection = new THREE.Vector3();
|
|
25
24
|
const offsetMatrix = new THREE.Matrix4();
|
|
@@ -44,8 +43,9 @@ const PlaneSlider = ({
|
|
|
44
43
|
onDrag,
|
|
45
44
|
onDragEnd,
|
|
46
45
|
userData
|
|
47
|
-
} = React.useContext(context);
|
|
46
|
+
} = React.useContext(context);
|
|
48
47
|
|
|
48
|
+
// @ts-expect-error new in @react-three/fiber@7.0.5
|
|
49
49
|
const camControls = useThree(state => state.controls);
|
|
50
50
|
const divRef = React.useRef(null);
|
|
51
51
|
const objRef = React.useRef(null);
|
|
@@ -58,7 +58,6 @@ const PlaneSlider = ({
|
|
|
58
58
|
divRef.current.innerText = `${translation.current[(axis + 1) % 3].toFixed(2)}, ${translation.current[(axis + 2) % 3].toFixed(2)}`;
|
|
59
59
|
divRef.current.style.display = 'block';
|
|
60
60
|
}
|
|
61
|
-
|
|
62
61
|
e.stopPropagation();
|
|
63
62
|
const clickPoint = e.point.clone();
|
|
64
63
|
const origin = new THREE.Vector3().setFromMatrixPosition(objRef.current.matrixWorld);
|
|
@@ -80,14 +79,13 @@ const PlaneSlider = ({
|
|
|
80
79
|
origin,
|
|
81
80
|
directions: [e1, e2, normal]
|
|
82
81
|
});
|
|
83
|
-
camControls && (camControls.enabled = false);
|
|
84
|
-
|
|
82
|
+
camControls && (camControls.enabled = false);
|
|
83
|
+
// @ts-ignore
|
|
85
84
|
e.target.setPointerCapture(e.pointerId);
|
|
86
85
|
}, [annotations, camControls, onDragStart, axis]);
|
|
87
86
|
const onPointerMove = React.useCallback(e => {
|
|
88
87
|
e.stopPropagation();
|
|
89
88
|
if (!isHovered) setIsHovered(true);
|
|
90
|
-
|
|
91
89
|
if (clickInfo.current) {
|
|
92
90
|
const {
|
|
93
91
|
clickPoint,
|
|
@@ -105,30 +103,23 @@ const PlaneSlider = ({
|
|
|
105
103
|
let [offsetX, offsetY] = decomposeIntoBasis(e1, e2, intersection);
|
|
106
104
|
/* let offsetY = (intersection.y - (intersection.x * e1.y) / e1.x) / (e2.y - (e2.x * e1.y) / e1.x)
|
|
107
105
|
let offsetX = (intersection.x - offsetY * e2.x) / e1.x */
|
|
108
|
-
|
|
109
106
|
if (minX !== undefined) {
|
|
110
107
|
offsetX = Math.max(offsetX, minX - offsetX0.current);
|
|
111
108
|
}
|
|
112
|
-
|
|
113
109
|
if (maxX !== undefined) {
|
|
114
110
|
offsetX = Math.min(offsetX, maxX - offsetX0.current);
|
|
115
111
|
}
|
|
116
|
-
|
|
117
112
|
if (minY !== undefined) {
|
|
118
113
|
offsetY = Math.max(offsetY, minY - offsetY0.current);
|
|
119
114
|
}
|
|
120
|
-
|
|
121
115
|
if (maxY !== undefined) {
|
|
122
116
|
offsetY = Math.min(offsetY, maxY - offsetY0.current);
|
|
123
117
|
}
|
|
124
|
-
|
|
125
118
|
translation.current[(axis + 1) % 3] = offsetX0.current + offsetX;
|
|
126
119
|
translation.current[(axis + 2) % 3] = offsetY0.current + offsetY;
|
|
127
|
-
|
|
128
120
|
if (annotations) {
|
|
129
121
|
divRef.current.innerText = `${translation.current[(axis + 1) % 3].toFixed(2)}, ${translation.current[(axis + 2) % 3].toFixed(2)}`;
|
|
130
122
|
}
|
|
131
|
-
|
|
132
123
|
offsetMatrix.makeTranslation(offsetX * e1.x + offsetY * e2.x, offsetX * e1.y + offsetY * e2.y, offsetX * e1.z + offsetY * e2.z);
|
|
133
124
|
onDrag(offsetMatrix);
|
|
134
125
|
}
|
|
@@ -137,12 +128,11 @@ const PlaneSlider = ({
|
|
|
137
128
|
if (annotations) {
|
|
138
129
|
divRef.current.style.display = 'none';
|
|
139
130
|
}
|
|
140
|
-
|
|
141
131
|
e.stopPropagation();
|
|
142
132
|
clickInfo.current = null;
|
|
143
133
|
onDragEnd();
|
|
144
|
-
camControls && (camControls.enabled = true);
|
|
145
|
-
|
|
134
|
+
camControls && (camControls.enabled = true);
|
|
135
|
+
// @ts-ignore
|
|
146
136
|
e.target.releasePointerCapture(e.pointerId);
|
|
147
137
|
}, [annotations, camControls, onDragEnd]);
|
|
148
138
|
const onPointerOut = React.useCallback(e => {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
export
|
|
3
|
+
export type OnDragStartProps = {
|
|
4
4
|
component: 'Arrow' | 'Slider' | 'Rotator';
|
|
5
5
|
axis: 0 | 1 | 2;
|
|
6
6
|
origin: THREE.Vector3;
|
|
7
7
|
directions: THREE.Vector3[];
|
|
8
8
|
};
|
|
9
|
-
export
|
|
9
|
+
export type PivotContext = {
|
|
10
10
|
onDragStart: (props: OnDragStartProps) => void;
|
|
11
11
|
onDrag: (mdW: THREE.Matrix4) => void;
|
|
12
12
|
onDragEnd: () => void;
|
|
@@ -4,7 +4,7 @@ import { Size } from '@react-three/fiber';
|
|
|
4
4
|
import { OnDragStartProps } from './context';
|
|
5
5
|
import { ForwardRefComponent } from '../../helpers/ts-utils';
|
|
6
6
|
export declare const calculateScaleFactor: (point3: THREE.Vector3, radiusPx: number, camera: THREE.Camera, size: Size) => number;
|
|
7
|
-
|
|
7
|
+
type PivotControlsProps = {
|
|
8
8
|
scale?: number;
|
|
9
9
|
lineWidth?: number;
|
|
10
10
|
fixed?: boolean;
|