@react-three/drei 9.0.0-beta.1 → 9.0.0-beta.4
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 +461 -48
- package/core/ArcballControls.cjs.js +1 -1
- package/core/ArcballControls.d.ts +8 -8
- package/core/ArcballControls.js +19 -30
- package/core/Bounds.cjs.js +1 -1
- package/core/Bounds.d.ts +2 -1
- package/core/Bounds.js +25 -14
- package/core/Clone.cjs.js +1 -0
- package/core/Clone.d.ts +11 -0
- package/core/Clone.js +92 -0
- package/core/Cloud.cjs.js +1 -1
- package/core/Cloud.d.ts +4 -1
- package/core/Cloud.js +7 -3
- package/core/ComputedAttribute.cjs.js +1 -0
- package/core/ComputedAttribute.d.ts +9 -0
- package/core/ComputedAttribute.js +34 -0
- package/core/ContactShadows.cjs.js +1 -1
- package/core/ContactShadows.d.ts +4 -1
- package/core/ContactShadows.js +33 -13
- package/core/CubeCamera.cjs.js +1 -1
- package/core/CubeCamera.js +6 -7
- package/core/CurveModifier.cjs.js +1 -1
- package/core/CurveModifier.js +18 -22
- package/core/Detailed.d.ts +1 -1
- package/core/DeviceOrientationControls.cjs.js +1 -1
- package/core/DeviceOrientationControls.js +2 -6
- package/core/Effects.cjs.js +1 -1
- package/core/Effects.d.ts +3 -2
- package/core/Effects.js +2 -2
- package/core/Environment.cjs.js +1 -1
- package/core/Environment.d.ts +13 -3
- package/core/Environment.js +100 -56
- package/core/FirstPersonControls.cjs.js +1 -1
- package/core/FirstPersonControls.d.ts +1 -1
- package/core/FirstPersonControls.js +2 -6
- package/core/Float.cjs.js +1 -1
- package/core/Float.d.ts +1 -1
- package/core/Float.js +5 -4
- package/core/GizmoHelper.cjs.js +1 -1
- package/core/GizmoHelper.d.ts +2 -1
- package/core/GizmoHelper.js +31 -41
- package/core/GizmoViewcube.cjs.js +1 -1
- package/core/GizmoViewcube.js +1 -1
- package/core/GradientTexture.cjs.js +1 -1
- package/core/GradientTexture.js +5 -2
- package/core/Image.cjs.js +1 -1
- package/core/Image.d.ts +6 -4
- package/core/Image.js +6 -1
- package/core/Instances.cjs.js +1 -1
- package/core/Instances.d.ts +2 -2
- package/core/Instances.js +5 -11
- package/core/Lightformer.cjs.js +1 -0
- package/core/Lightformer.d.ts +41 -0
- package/core/Lightformer.js +51 -0
- package/core/Line.d.ts +1 -1
- package/core/MapControls.d.ts +1 -1
- package/core/MeshDistortMaterial.d.ts +2 -4
- package/core/MeshReflectorMaterial.cjs.js +1 -1
- package/core/MeshReflectorMaterial.d.ts +2 -2
- package/core/MeshReflectorMaterial.js +7 -7
- package/core/MeshWobbleMaterial.d.ts +2 -4
- package/core/OrbitControls.cjs.js +1 -1
- package/core/OrbitControls.d.ts +10 -10
- package/core/OrbitControls.js +14 -26
- package/core/OrthographicCamera.d.ts +1 -1
- package/core/PerspectiveCamera.d.ts +1 -1
- package/core/PointMaterial.cjs.js +1 -1
- package/core/PointMaterial.d.ts +5 -8
- package/core/PointMaterial.js +16 -34
- package/core/PointerLockControls.cjs.js +1 -1
- package/core/PointerLockControls.d.ts +3 -1
- package/core/PointerLockControls.js +36 -22
- package/core/Points.cjs.js +1 -1
- package/core/Points.d.ts +3 -3
- package/core/Points.js +11 -30
- package/core/PositionalAudio.d.ts +1 -1
- package/core/Reflector.cjs.js +1 -1
- package/core/Reflector.d.ts +1 -1
- package/core/Reflector.js +1 -2
- package/core/RoundedBox.cjs.js +1 -1
- package/core/RoundedBox.d.ts +2 -1
- package/core/RoundedBox.js +2 -1
- package/core/Sampler.cjs.js +1 -0
- package/core/Sampler.d.ts +21 -0
- package/core/Sampler.js +65 -0
- package/core/Shadow.d.ts +1 -1
- package/core/SpotLight.d.ts +20 -4
- package/core/Stage.cjs.js +1 -1
- package/core/Stage.d.ts +1 -1
- package/core/Stage.js +1 -2
- package/core/Stars.cjs.js +1 -1
- package/core/Stars.js +3 -0
- package/core/Stats.cjs.js +1 -1
- package/core/Stats.js +2 -2
- package/core/Text.cjs.js +1 -1
- package/core/Text.d.ts +3 -2
- package/core/Text.js +9 -1
- package/core/TrackballControls.cjs.js +1 -1
- package/core/TrackballControls.js +7 -5
- package/core/Trail.cjs.js +1 -0
- package/core/Trail.d.ts +21 -0
- package/core/Trail.js +160 -0
- package/core/TransformControls.cjs.js +1 -1
- package/core/TransformControls.d.ts +1 -1
- package/core/TransformControls.js +13 -11
- package/core/index.cjs.js +1 -1
- package/core/index.d.ts +6 -0
- package/core/index.js +11 -4
- package/core/shaderMaterial.d.ts +1 -1
- package/core/useBoxProjectedEnv.cjs.js +1 -0
- package/core/useBoxProjectedEnv.d.ts +8 -0
- package/core/useBoxProjectedEnv.js +98 -0
- package/core/useDetectGPU.cjs.js +1 -1
- package/core/useDetectGPU.js +2 -2
- package/core/useFBO.cjs.js +1 -1
- package/core/useFBO.d.ts +1 -1
- package/core/useFBO.js +22 -24
- package/core/useHelper.cjs.js +1 -1
- package/core/useHelper.d.ts +4 -1
- package/core/useHelper.js +16 -6
- package/core/useMatcapTexture.cjs.js +1 -1
- package/core/useMatcapTexture.js +2 -5
- package/core/useNormalTexture.cjs.js +1 -1
- package/core/useNormalTexture.js +2 -5
- package/helpers/Position.cjs.js +1 -1
- package/helpers/Position.js +3 -2
- package/helpers/environment-assets.cjs.js +1 -1
- package/helpers/environment-assets.js +10 -10
- package/index.cjs.js +1 -1
- package/index.js +7 -1
- package/materials/ConvolutionMaterial.cjs.js +1 -1
- package/materials/ConvolutionMaterial.js +2 -0
- package/materials/MeshReflectorMaterial.cjs.js +1 -1
- package/materials/MeshReflectorMaterial.d.ts +0 -3
- package/materials/MeshReflectorMaterial.js +8 -35
- package/materials/SpotLightMaterial.cjs.js +1 -1
- package/materials/SpotLightMaterial.js +3 -0
- package/native/index.cjs.js +1 -1
- package/native/index.js +11 -4
- package/package.json +8 -7
- package/web/Html.cjs.js +1 -1
- package/web/Html.js +4 -5
- package/web/ScrollControls.cjs.js +1 -1
- package/web/ScrollControls.js +6 -5
- package/web/Select.cjs.js +1 -1
- package/web/Select.d.ts +2 -1
- package/web/Select.js +3 -2
- package/web/index.cjs.js +1 -1
- package/web/index.js +12 -5
package/core/GizmoViewcube.js
CHANGED
|
@@ -49,7 +49,7 @@ const FaceMaterial = ({
|
|
|
49
49
|
return /*#__PURE__*/React.createElement("meshLambertMaterial", {
|
|
50
50
|
map: texture,
|
|
51
51
|
"map-anisotropy": gl.capabilities.getMaxAnisotropy() || 1,
|
|
52
|
-
attach:
|
|
52
|
+
attach: `material-${index}`,
|
|
53
53
|
color: hover ? hoverColor : 'white',
|
|
54
54
|
transparent: true,
|
|
55
55
|
opacity: opacity
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=o(e),i=u(t),a=u(r);exports.GradientTexture=function({stops:e,colors:t,size:r=1024,...o}){const u=n.useThree((e=>e.gl)),l=a.useMemo((()=>{const n=document.createElement("canvas"),o=n.getContext("2d");n.width=16,n.height=r;const u=o.createLinearGradient(0,0,0,r);let c=e.length;for(;c--;)u.addColorStop(e[c],t[c]);o.fillStyle=u,o.fillRect(0,0,16,r);const a=new i.Texture(n);return a.needsUpdate=!0,a}),[e]);return a.useEffect((()=>()=>{l.dispose()}),[l]),a.createElement("primitive",c.default({object:l,attach:"map",encoding:u.outputEncoding},o))};
|
package/core/GradientTexture.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import * as THREE from 'three';
|
|
3
3
|
import * as React from 'react';
|
|
4
|
+
import { useThree } from '@react-three/fiber';
|
|
4
5
|
|
|
5
6
|
function GradientTexture({
|
|
6
7
|
stops,
|
|
7
8
|
colors,
|
|
8
|
-
size =
|
|
9
|
+
size = 1024,
|
|
9
10
|
...props
|
|
10
11
|
}) {
|
|
12
|
+
const gl = useThree(state => state.gl);
|
|
11
13
|
const texture = React.useMemo(() => {
|
|
12
14
|
const canvas = document.createElement('canvas');
|
|
13
15
|
const context = canvas.getContext('2d');
|
|
@@ -29,7 +31,8 @@ function GradientTexture({
|
|
|
29
31
|
React.useEffect(() => () => void texture.dispose(), [texture]);
|
|
30
32
|
return /*#__PURE__*/React.createElement("primitive", _extends({
|
|
31
33
|
object: texture,
|
|
32
|
-
attach: "map"
|
|
34
|
+
attach: "map",
|
|
35
|
+
encoding: gl.outputEncoding
|
|
33
36
|
}, props));
|
|
34
37
|
}
|
|
35
38
|
|
package/core/Image.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),n=require("three"),t=require("@react-three/fiber"),a=require("./shaderMaterial.cjs.js"),o=require("./useTexture.cjs.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var t=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,t.get?t:{enumerable:!0,get:function(){return e[n]}})}})),r.default=e,Object.freeze(r)}var s=c(e),l=i(r),u=i(n);const v=a.shaderMaterial({color:new u.Color("white"),scale:[1,1],imageBounds:[1,1],map:null,zoom:1,grayscale:0},"\n varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }\n","\n // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44\n varying vec2 vUv;\n uniform vec2 scale;\n uniform vec2 imageBounds;\n uniform vec3 color;\n uniform sampler2D map;\n uniform float zoom;\n uniform float grayscale;\n const vec3 luma = vec3(.299, 0.587, 0.114);\n vec4 toGrayscale(vec4 color, float intensity) {\n return vec4(mix(color.rgb, vec3(dot(color.rgb, luma)), intensity), color.a);\n }\n vec2 aspect(vec2 size) {\n return size / min(size.x, size.y);\n }\n void main() {\n vec2 s = aspect(scale);\n vec2 i = aspect(imageBounds);\n float rs = s.x / s.y;\n float ri = i.x / i.y;\n vec2 new = rs < ri ? vec2(i.x * s.y / i.y, s.y) : vec2(s.x, i.y * s.x / i.x);\n vec2 offset = (rs < ri ? vec2((new.x - s.x) / 2.0, 0.0) : vec2(0.0, (new.y - s.y) / 2.0)) / new;\n vec2 uv = vUv * s / new + offset;\n vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5);\n gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, 1.0), grayscale);\n }\n"),m=l.forwardRef((({children:e,color:r,segments:n=1,scale:a=1,zoom:c=1,grayscale:i=0,url:u,...
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),n=require("three"),t=require("@react-three/fiber"),a=require("./shaderMaterial.cjs.js"),o=require("./useTexture.cjs.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var t=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,t.get?t:{enumerable:!0,get:function(){return e[n]}})}})),r.default=e,Object.freeze(r)}var s=c(e),l=i(r),u=i(n);const v=a.shaderMaterial({color:new u.Color("white"),scale:[1,1],imageBounds:[1,1],map:null,zoom:1,grayscale:0},"\n varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }\n","\n // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44\n varying vec2 vUv;\n uniform vec2 scale;\n uniform vec2 imageBounds;\n uniform vec3 color;\n uniform sampler2D map;\n uniform float zoom;\n uniform float grayscale;\n const vec3 luma = vec3(.299, 0.587, 0.114);\n vec4 toGrayscale(vec4 color, float intensity) {\n return vec4(mix(color.rgb, vec3(dot(color.rgb, luma)), intensity), color.a);\n }\n vec2 aspect(vec2 size) {\n return size / min(size.x, size.y);\n }\n void main() {\n vec2 s = aspect(scale);\n vec2 i = aspect(imageBounds);\n float rs = s.x / s.y;\n float ri = i.x / i.y;\n vec2 new = rs < ri ? vec2(i.x * s.y / i.y, s.y) : vec2(s.x, i.y * s.x / i.x);\n vec2 offset = (rs < ri ? vec2((new.x - s.x) / 2.0, 0.0) : vec2(0.0, (new.y - s.y) / 2.0)) / new;\n vec2 uv = vUv * s / new + offset;\n vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5);\n gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, 1.0), grayscale);\n \n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }\n"),m=l.forwardRef((({children:e,color:r,segments:n=1,scale:a=1,zoom:c=1,grayscale:i=0,url:u,toneMapped:m,...f},g)=>{t.extend({ImageMaterial:v});const d=o.useTexture(u),y=Array.isArray(a)?[a[0],a[1]]:[a,a],p=[d.image.width,d.image.height];return l.createElement("mesh",s.default({ref:g,scale:a},f),l.createElement("planeGeometry",{args:[1,1,n,n]}),l.createElement("imageMaterial",{color:r,map:d,zoom:c,grayscale:i,scale:y,imageBounds:p,toneMapped:m}),e)}));exports.Image=m;
|
package/core/Image.d.ts
CHANGED
|
@@ -3,10 +3,11 @@ import * as THREE from 'three';
|
|
|
3
3
|
import { Color } from '@react-three/fiber';
|
|
4
4
|
export declare type ImageProps = JSX.IntrinsicElements['mesh'] & {
|
|
5
5
|
segments?: number;
|
|
6
|
-
scale?: number;
|
|
6
|
+
scale?: number | [number, number];
|
|
7
7
|
color?: Color;
|
|
8
8
|
zoom?: number;
|
|
9
9
|
grayscale?: number;
|
|
10
|
+
toneMapped?: boolean;
|
|
10
11
|
url: string;
|
|
11
12
|
};
|
|
12
13
|
declare type ImageMaterialType = JSX.IntrinsicElements['shaderMaterial'] & {
|
|
@@ -24,7 +25,7 @@ declare global {
|
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
|
-
export declare const Image: React.ForwardRefExoticComponent<Pick<Omit<import("@react-three/fiber").
|
|
28
|
+
export declare const Image: React.ForwardRefExoticComponent<Pick<Omit<import("@react-three/fiber").ExtendedColors<import("@react-three/fiber").Overwrite<Partial<THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>, import("@react-three/fiber").NodeProps<THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>, typeof THREE.Mesh>>>, import("@react-three/fiber").NonFunctionKeys<{
|
|
28
29
|
position?: import("@react-three/fiber").Vector3 | undefined;
|
|
29
30
|
up?: import("@react-three/fiber").Vector3 | undefined;
|
|
30
31
|
scale?: import("@react-three/fiber").Vector3 | undefined;
|
|
@@ -44,10 +45,11 @@ export declare const Image: React.ForwardRefExoticComponent<Pick<Omit<import("@r
|
|
|
44
45
|
dispose?: (() => void) | null | undefined;
|
|
45
46
|
} & import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers & {
|
|
46
47
|
segments?: number | undefined;
|
|
47
|
-
scale?: number | undefined;
|
|
48
|
+
scale?: number | [number, number] | undefined;
|
|
48
49
|
color?: Color | undefined;
|
|
49
50
|
zoom?: number | undefined;
|
|
50
51
|
grayscale?: number | undefined;
|
|
52
|
+
toneMapped?: boolean | undefined;
|
|
51
53
|
url: string;
|
|
52
|
-
}, "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "color" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "zoom" | "material" | "url" | "geometry" | "morphTargetInfluences" | "morphTargetDictionary" | "isMesh" | "updateMorphTargets" | "segments" | "grayscale"> & React.RefAttributes<THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>>;
|
|
54
|
+
}, "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "color" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "zoom" | "material" | "url" | "toneMapped" | "geometry" | "morphTargetInfluences" | "morphTargetDictionary" | "isMesh" | "updateMorphTargets" | "segments" | "grayscale"> & React.RefAttributes<THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>>;
|
|
53
55
|
export {};
|
package/core/Image.js
CHANGED
|
@@ -48,6 +48,9 @@ const ImageMaterialImpl = shaderMaterial({
|
|
|
48
48
|
vec2 uv = vUv * s / new + offset;
|
|
49
49
|
vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5);
|
|
50
50
|
gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, 1.0), grayscale);
|
|
51
|
+
|
|
52
|
+
#include <tonemapping_fragment>
|
|
53
|
+
#include <encodings_fragment>
|
|
51
54
|
}
|
|
52
55
|
`);
|
|
53
56
|
const Image = /*#__PURE__*/React.forwardRef(({
|
|
@@ -58,6 +61,7 @@ const Image = /*#__PURE__*/React.forwardRef(({
|
|
|
58
61
|
zoom = 1,
|
|
59
62
|
grayscale = 0,
|
|
60
63
|
url,
|
|
64
|
+
toneMapped,
|
|
61
65
|
...props
|
|
62
66
|
}, ref) => {
|
|
63
67
|
extend({
|
|
@@ -77,7 +81,8 @@ const Image = /*#__PURE__*/React.forwardRef(({
|
|
|
77
81
|
zoom: zoom,
|
|
78
82
|
grayscale: grayscale,
|
|
79
83
|
scale: planeBounds,
|
|
80
|
-
imageBounds: imageBounds
|
|
84
|
+
imageBounds: imageBounds,
|
|
85
|
+
toneMapped: toneMapped
|
|
81
86
|
}), children);
|
|
82
87
|
});
|
|
83
88
|
|
package/core/Instances.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),a=require("react-merge-refs"),c=require("react-composer"),u=require("../helpers/Position.cjs.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=o(e),l=i(t),f=i(r),d=o(a),m=o(c);let y
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),a=require("react-merge-refs"),c=require("react-composer"),u=require("../helpers/Position.cjs.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=o(e),l=i(t),f=i(r),d=o(a),m=o(c);let p,y;const x=f.createContext(null),g=new l.Matrix4,b=new l.Matrix4,h=new l.Matrix4;new l.Color;const M=new l.Vector3,w=new l.Quaternion,E=new l.Vector3,j=f.forwardRef((({context:e,children:t,...r},a)=>{f.useMemo((()=>n.extend({Position:u.Position})),[]);const c=f.useRef(),{subscribe:o,getParent:i}=f.useContext(e||x);return f.useLayoutEffect((()=>o(c)),[]),f.createElement("position",s.default({instance:i(),instanceKey:c,ref:d.default([a,c])},r),t)})),v=f.forwardRef((({children:e,range:t,limit:r=1e3,frames:a=1/0,...c},u)=>{const[{context:o,instance:i}]=f.useState((()=>{const e=f.createContext(null);return{context:e,instance:f.forwardRef(((t,r)=>f.createElement(j,s.default({context:e},t,{ref:r}))))}})),m=f.useRef(null),[v,A]=f.useState([]),[[O,P]]=f.useState((()=>{const e=new Float32Array(16*r);for(p=0;p<r;p++)h.identity().toArray(e,16*p);return[e,new Float32Array([...new Array(3*r)].map((()=>1)))]}));f.useLayoutEffect((()=>{m.current.count=m.current.instanceMatrix.updateRange.count=m.current.instanceColor.updateRange.count=Math.min(r,void 0!==t?t:r,v.length)}),[v,t]),f.useEffect((()=>{m.current.instanceMatrix.needsUpdate=!0}));let q=0;n.useFrame((()=>{if(a===1/0||q<a){for(m.current.updateMatrix(),m.current.updateMatrixWorld(),g.copy(m.current.matrixWorld).invert(),p=0;p<v.length;p++)y=v[p].current,y.matrixWorld.decompose(M,w,E),b.compose(M,w,E).premultiply(g),b.toArray(O,16*p),m.current.instanceMatrix.needsUpdate=!0,y.color.toArray(P,3*p),m.current.instanceColor.needsUpdate=!0;q++}}));const C=f.useMemo((()=>({getParent:()=>m,subscribe:e=>(A((t=>[...t,e])),()=>A((t=>t.filter((t=>t.current!==e.current)))))})),[]);return f.createElement("instancedMesh",s.default({userData:{instances:v},matrixAutoUpdate:!1,ref:d.default([u,m]),args:[null,null,0],raycast:()=>null},c),f.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:O.length/16,array:O,itemSize:16,usage:l.DynamicDrawUsage}),f.createElement("instancedBufferAttribute",{attach:"instanceColor",count:P.length/3,array:P,itemSize:3,usage:l.DynamicDrawUsage}),"function"==typeof e?f.createElement(o.Provider,{value:C},e(i)):f.createElement(x.Provider,{value:C},e))}));exports.Instance=j,exports.Instances=v,exports.Merged=function({meshes:e,children:t,...r}){const n=Array.isArray(e);if(!n)for(const t of Object.keys(e))e[t].isMesh||delete e[t];return f.createElement(m.default,{components:(n?e:Object.values(e)).map((({geometry:e,material:t})=>f.createElement(v,s.default({key:e.uuid,geometry:e,material:t},r))))},(r=>n?t(...r):t(Object.keys(e).filter((t=>e[t].isMesh)).reduce(((e,t,n)=>({...e,[t]:r[n]})),{}))))};
|
package/core/Instances.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ declare type InstancedMesh = Omit<THREE.InstancedMesh, 'instanceMatrix' | 'insta
|
|
|
14
14
|
instanceMatrix: THREE.InstancedBufferAttribute;
|
|
15
15
|
instanceColor: THREE.InstancedBufferAttribute;
|
|
16
16
|
};
|
|
17
|
-
declare const Instance: React.ForwardRefExoticComponent<Pick<Omit<import("@react-three/fiber").
|
|
17
|
+
declare const Instance: React.ForwardRefExoticComponent<Pick<Omit<import("@react-three/fiber").ExtendedColors<import("@react-three/fiber").Overwrite<Partial<Position>, import("@react-three/fiber").NodeProps<Position, typeof Position>>>, import("@react-three/fiber").NonFunctionKeys<{
|
|
18
18
|
position?: import("@react-three/fiber").Vector3 | undefined;
|
|
19
19
|
up?: import("@react-three/fiber").Vector3 | undefined;
|
|
20
20
|
scale?: import("@react-three/fiber").Vector3 | undefined;
|
|
@@ -35,7 +35,7 @@ declare const Instance: React.ForwardRefExoticComponent<Pick<Omit<import("@react
|
|
|
35
35
|
} & import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers & {
|
|
36
36
|
context?: React.Context<Api> | undefined;
|
|
37
37
|
}, "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "isGroup" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "color" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "geometry" | "context" | "instance" | "instanceKey"> & React.RefAttributes<unknown>>;
|
|
38
|
-
declare const Instances: React.ForwardRefExoticComponent<Pick<InstancesProps, "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "range" | "material" | "geometry" | "morphTargetInfluences" | "morphTargetDictionary" | "isMesh" | "updateMorphTargets" | "instanceMatrix" | "
|
|
38
|
+
declare const Instances: React.ForwardRefExoticComponent<Pick<InstancesProps, "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "range" | "material" | "geometry" | "morphTargetInfluences" | "morphTargetDictionary" | "isMesh" | "updateMorphTargets" | "instanceMatrix" | "count" | "frames" | "instanceColor" | "isInstancedMesh" | "getColorAt" | "getMatrixAt" | "setColorAt" | "setMatrixAt" | "limit"> & React.RefAttributes<InstancedMesh>>;
|
|
39
39
|
declare function Merged({ meshes, children, ...props }: {
|
|
40
40
|
[x: string]: any;
|
|
41
41
|
meshes: any;
|
package/core/Instances.js
CHANGED
|
@@ -11,7 +11,7 @@ const globalContext = /*#__PURE__*/React.createContext(null);
|
|
|
11
11
|
const parentMatrix = new THREE.Matrix4();
|
|
12
12
|
const instanceMatrix = new THREE.Matrix4();
|
|
13
13
|
const tempMatrix = new THREE.Matrix4();
|
|
14
|
-
|
|
14
|
+
new THREE.Color();
|
|
15
15
|
const translation = new THREE.Vector3();
|
|
16
16
|
const rotation = new THREE.Quaternion();
|
|
17
17
|
const scale = new THREE.Vector3();
|
|
@@ -85,16 +85,10 @@ const Instances = /*#__PURE__*/React.forwardRef(({
|
|
|
85
85
|
|
|
86
86
|
instanceRef.matrixWorld.decompose(translation, rotation, scale);
|
|
87
87
|
instanceMatrix.compose(translation, rotation, scale).premultiply(parentMatrix);
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
if (!instanceRef.color.equals(color.fromArray(colors, i * 3))) {
|
|
95
|
-
instanceRef.color.toArray(colors, i * 3);
|
|
96
|
-
parentRef.current.instanceColor.needsUpdate = true;
|
|
97
|
-
}
|
|
88
|
+
instanceMatrix.toArray(matrices, i * 16);
|
|
89
|
+
parentRef.current.instanceMatrix.needsUpdate = true;
|
|
90
|
+
instanceRef.color.toArray(colors, i * 3);
|
|
91
|
+
parentRef.current.instanceColor.needsUpdate = true;
|
|
98
92
|
}
|
|
99
93
|
|
|
100
94
|
count++;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),a=require("three"),l=require("react-merge-refs");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var u=n(e),i=c(t),o=c(a),s=n(l);const f=i.forwardRef((({args:e,map:t,toneMapped:a=!1,color:l="white",form:n="rect",intensity:c=1,scale:f=1,target:m,children:p,...d},y)=>{const g=i.useRef(null);return i.useLayoutEffect((()=>{p||d.material||(r.applyProps(g.current.material,{color:l}),g.current.material.color.multiplyScalar(c))}),[l,c,p,d.material]),i.useLayoutEffect((()=>{m&&g.current.lookAt(Array.isArray(m)?new o.Vector3(...m):m)}),[m]),f=Array.isArray(f)&&2===f.length?[f[0],f[1],1]:f,i.createElement("mesh",u.default({ref:s.default([g,y]),scale:f},d),"circle"===n?i.createElement("ringGeometry",{args:[0,1,64]}):"ring"===n?i.createElement("ringGeometry",{args:[.5,1,64]}):"rect"===n?i.createElement("planeGeometry",null):i.createElement(n,{args:e}),p||(d.material?null:i.createElement("meshBasicMaterial",{toneMapped:a,map:t,side:o.DoubleSide})))}));exports.Lightformer=f;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ReactThreeFiber } from '@react-three/fiber';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
export declare type LightProps = JSX.IntrinsicElements['mesh'] & {
|
|
5
|
+
args?: any[];
|
|
6
|
+
map?: THREE.Texture;
|
|
7
|
+
toneMapped?: boolean;
|
|
8
|
+
color?: ReactThreeFiber.Color;
|
|
9
|
+
form?: 'circle' | 'ring' | 'rect' | any;
|
|
10
|
+
scale?: number | [number, number, number] | [number, number];
|
|
11
|
+
intensity?: number;
|
|
12
|
+
target?: [number, number, number] | THREE.Vector3;
|
|
13
|
+
};
|
|
14
|
+
export declare const Lightformer: React.ForwardRefExoticComponent<Pick<Omit<ReactThreeFiber.ExtendedColors<ReactThreeFiber.Overwrite<Partial<THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>, ReactThreeFiber.NodeProps<THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>, typeof THREE.Mesh>>>, ReactThreeFiber.NonFunctionKeys<{
|
|
15
|
+
position?: ReactThreeFiber.Vector3 | undefined;
|
|
16
|
+
up?: ReactThreeFiber.Vector3 | undefined;
|
|
17
|
+
scale?: ReactThreeFiber.Vector3 | undefined;
|
|
18
|
+
rotation?: ReactThreeFiber.Euler | undefined;
|
|
19
|
+
matrix?: ReactThreeFiber.Matrix4 | undefined;
|
|
20
|
+
quaternion?: ReactThreeFiber.Quaternion | undefined;
|
|
21
|
+
layers?: ReactThreeFiber.Layers | undefined;
|
|
22
|
+
dispose?: (() => void) | null | undefined;
|
|
23
|
+
}>> & {
|
|
24
|
+
position?: ReactThreeFiber.Vector3 | undefined;
|
|
25
|
+
up?: ReactThreeFiber.Vector3 | undefined;
|
|
26
|
+
scale?: ReactThreeFiber.Vector3 | undefined;
|
|
27
|
+
rotation?: ReactThreeFiber.Euler | undefined;
|
|
28
|
+
matrix?: ReactThreeFiber.Matrix4 | undefined;
|
|
29
|
+
quaternion?: ReactThreeFiber.Quaternion | undefined;
|
|
30
|
+
layers?: ReactThreeFiber.Layers | undefined;
|
|
31
|
+
dispose?: (() => void) | null | undefined;
|
|
32
|
+
} & import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers & {
|
|
33
|
+
args?: any[] | undefined;
|
|
34
|
+
map?: THREE.Texture | undefined;
|
|
35
|
+
toneMapped?: boolean | undefined;
|
|
36
|
+
color?: ReactThreeFiber.Color | undefined;
|
|
37
|
+
form?: 'circle' | 'ring' | 'rect' | any;
|
|
38
|
+
scale?: number | [number, number] | [number, number, number] | undefined;
|
|
39
|
+
intensity?: number | undefined;
|
|
40
|
+
target?: THREE.Vector3 | [number, number, number] | undefined;
|
|
41
|
+
}, "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "color" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "form" | "map" | "material" | "target" | "toneMapped" | "geometry" | "morphTargetInfluences" | "morphTargetDictionary" | "isMesh" | "updateMorphTargets" | "intensity"> & React.RefAttributes<unknown>>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
|
+
import { applyProps } from '@react-three/fiber';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import mergeRefs from 'react-merge-refs';
|
|
6
|
+
|
|
7
|
+
const Lightformer = /*#__PURE__*/React.forwardRef(({
|
|
8
|
+
args,
|
|
9
|
+
map,
|
|
10
|
+
toneMapped = false,
|
|
11
|
+
color = 'white',
|
|
12
|
+
form: Form = 'rect',
|
|
13
|
+
intensity = 1,
|
|
14
|
+
scale = 1,
|
|
15
|
+
target,
|
|
16
|
+
children,
|
|
17
|
+
...props
|
|
18
|
+
}, forwardRef) => {
|
|
19
|
+
// Apply emissive power
|
|
20
|
+
const ref = React.useRef(null);
|
|
21
|
+
React.useLayoutEffect(() => {
|
|
22
|
+
if (!children && !props.material) {
|
|
23
|
+
applyProps(ref.current.material, {
|
|
24
|
+
color
|
|
25
|
+
});
|
|
26
|
+
ref.current.material.color.multiplyScalar(intensity);
|
|
27
|
+
}
|
|
28
|
+
}, [color, intensity, children, props.material]); // Target light
|
|
29
|
+
|
|
30
|
+
React.useLayoutEffect(() => {
|
|
31
|
+
if (target) ref.current.lookAt(Array.isArray(target) ? new THREE.Vector3(...target) : target);
|
|
32
|
+
}, [target]); // Fix 2-dimensional scale
|
|
33
|
+
|
|
34
|
+
scale = Array.isArray(scale) && scale.length === 2 ? [scale[0], scale[1], 1] : scale;
|
|
35
|
+
return /*#__PURE__*/React.createElement("mesh", _extends({
|
|
36
|
+
ref: mergeRefs([ref, forwardRef]),
|
|
37
|
+
scale: scale
|
|
38
|
+
}, props), Form === 'circle' ? /*#__PURE__*/React.createElement("ringGeometry", {
|
|
39
|
+
args: [0, 1, 64]
|
|
40
|
+
}) : Form === 'ring' ? /*#__PURE__*/React.createElement("ringGeometry", {
|
|
41
|
+
args: [0.5, 1, 64]
|
|
42
|
+
}) : Form === 'rect' ? /*#__PURE__*/React.createElement("planeGeometry", null) : /*#__PURE__*/React.createElement(Form, {
|
|
43
|
+
args: args
|
|
44
|
+
}), children ? children : !props.material ? /*#__PURE__*/React.createElement("meshBasicMaterial", {
|
|
45
|
+
toneMapped: toneMapped,
|
|
46
|
+
map: map,
|
|
47
|
+
side: THREE.DoubleSide
|
|
48
|
+
}) : null);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
export { Lightformer };
|
package/core/Line.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ export declare type LineProps = {
|
|
|
6
6
|
points: Array<Vector3 | [number, number, number]>;
|
|
7
7
|
vertexColors?: Array<Color | [number, number, number]>;
|
|
8
8
|
} & LineMaterialParameters & Omit<ReactThreeFiber.Object3DNode<Line2, typeof Line2>, 'args'> & Omit<ReactThreeFiber.Object3DNode<LineMaterial, [LineMaterialParameters]>, 'color' | 'vertexColors' | 'resolution' | 'args'>;
|
|
9
|
-
export declare const Line: React.ForwardRefExoticComponent<Pick<LineProps, "attach" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "id" | "uuid" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "color" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "dashed" | "points" | "material" | "isMaterial" | "needsUpdate" | "version" | "onBeforeCompile" | "customProgramCacheKey" | "setValues" | "isLine2" | "computeLineDistances" | "geometry" | "morphTargetInfluences" | "morphTargetDictionary" | "isMesh" | "updateMorphTargets" | "lineWidth" | "dashScale" | "dashOffset" | "dashSize" | "resolution" | "derivatives" | "defaultAttributeValues" | "index0AttributeName" | "uniformsNeedUpdate" | "isShaderMaterial" | "gapSize" | keyof import("three").ShaderMaterialParameters> & React.RefAttributes<Line2>>;
|
|
9
|
+
export declare const Line: React.ForwardRefExoticComponent<Pick<LineProps, "attach" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "id" | "uuid" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "color" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "dashed" | "points" | "material" | "alphaWrite" | "isMaterial" | "needsUpdate" | "version" | "onBeforeCompile" | "customProgramCacheKey" | "setValues" | "isLine2" | "computeLineDistances" | "geometry" | "morphTargetInfluences" | "morphTargetDictionary" | "isMesh" | "updateMorphTargets" | "lineWidth" | "dashScale" | "dashOffset" | "dashSize" | "resolution" | "derivatives" | "defaultAttributeValues" | "index0AttributeName" | "uniformsNeedUpdate" | "isShaderMaterial" | "gapSize" | keyof import("three").ShaderMaterialParameters> & React.RefAttributes<Line2>>;
|
package/core/MapControls.d.ts
CHANGED
|
@@ -9,4 +9,4 @@ export declare type MapControlsProps = ReactThreeFiber.Overwrite<ReactThreeFiber
|
|
|
9
9
|
onStart?: (e?: THREE.Event) => void;
|
|
10
10
|
onEnd?: (e?: THREE.Event) => void;
|
|
11
11
|
}>;
|
|
12
|
-
export declare const MapControls: React.ForwardRefExoticComponent<Pick<MapControlsProps, "object" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "onChange" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "camera" | "reset" | "enabled" | "update" | "onStart" | "keys" | "target" | "touches" | "connect" | "domElement" | "minDistance" | "maxDistance" | "minZoom" | "maxZoom" | "minPolarAngle" | "maxPolarAngle" | "minAzimuthAngle" | "maxAzimuthAngle" | "enableDamping" | "dampingFactor" | "enableZoom" | "zoomSpeed" | "enableRotate" | "rotateSpeed" | "enablePan" | "panSpeed" | "screenSpacePanning" | "keyPanSpeed" | "autoRotate" | "autoRotateSpeed" | "mouseButtons" | "target0" | "position0" | "zoom0" | "_domElementKeyEvents" | "getPolarAngle" | "getAzimuthalAngle" | "setPolarAngle" | "setAzimuthalAngle" | "getDistance" | "listenToKeyEvents" | "saveState" | "onEnd"> & React.RefAttributes<MapControlsImpl>>;
|
|
12
|
+
export declare const MapControls: React.ForwardRefExoticComponent<Pick<MapControlsProps, "object" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "onChange" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "camera" | "reset" | "enabled" | "update" | "onStart" | "keys" | "target" | "touches" | "connect" | "domElement" | "minDistance" | "maxDistance" | "minZoom" | "maxZoom" | "minPolarAngle" | "maxPolarAngle" | "minAzimuthAngle" | "maxAzimuthAngle" | "enableDamping" | "dampingFactor" | "enableZoom" | "zoomSpeed" | "enableRotate" | "rotateSpeed" | "enablePan" | "panSpeed" | "screenSpacePanning" | "keyPanSpeed" | "autoRotate" | "autoRotateSpeed" | "reverseOrbit" | "mouseButtons" | "target0" | "position0" | "zoom0" | "_domElementKeyEvents" | "getPolarAngle" | "getAzimuthalAngle" | "setPolarAngle" | "setAzimuthalAngle" | "getDistance" | "listenToKeyEvents" | "saveState" | "onEnd"> & React.RefAttributes<MapControlsImpl>>;
|
|
@@ -12,14 +12,12 @@ declare global {
|
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
export declare const MeshDistortMaterial: React.ForwardRefExoticComponent<Pick<
|
|
16
|
-
color?: import("@react-three/fiber").Color | undefined;
|
|
17
|
-
} & {
|
|
15
|
+
export declare const MeshDistortMaterial: React.ForwardRefExoticComponent<Pick<import("@react-three/fiber").ExtendedColors<import("@react-three/fiber").Overwrite<Partial<MeshPhysicalMaterial>, import("@react-three/fiber").NodeProps<MeshPhysicalMaterial, [MeshPhysicalMaterialParameters]>>> & {
|
|
18
16
|
time?: number | undefined;
|
|
19
17
|
distort?: number | undefined;
|
|
20
18
|
radius?: number | undefined;
|
|
21
19
|
} & {
|
|
22
20
|
speed?: number | undefined;
|
|
23
21
|
factor?: number | undefined;
|
|
24
|
-
}, "
|
|
22
|
+
}, "attach" | "args" | "children" | "key" | "onUpdate" | "time" | "speed" | keyof MeshPhysicalMaterial | "radius" | "distort" | "factor"> & React.RefAttributes<unknown>>;
|
|
25
23
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),a=require("@react-three/fiber"),n=require("react-merge-refs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),a=require("@react-three/fiber"),n=require("react-merge-refs"),o=require("../materials/BlurPass.cjs.js"),i=require("../materials/MeshReflectorMaterial.cjs.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("../materials/ConvolutionMaterial.cjs.js");var u=s(e),d=l(t),c=s(n);a.extend({MeshReflectorMaterialImpl:i.MeshReflectorMaterial});const p=d.forwardRef((({mixBlur:e=0,mixStrength:t=1,resolution:n=256,blur:i=[0,0],minDepthThreshold:s=.9,maxDepthThreshold:l=1,depthScale:p=0,depthToBlurRatioBias:m=.25,mirror:h=0,distortion:f=1,mixContrast:x=1,distortionMap:M,reflectorOffset:T=0,...S},y)=>{const w=a.useThree((({gl:e})=>e)),b=a.useThree((({camera:e})=>e)),g=a.useThree((({scene:e})=>e)),R=(i=Array.isArray(i)?i:[i,i])[0]+i[1]>0,v=d.useRef(null),[j]=d.useState((()=>new r.Plane)),[D]=d.useState((()=>new r.Vector3)),[B]=d.useState((()=>new r.Vector3)),[_]=d.useState((()=>new r.Vector3)),[O]=d.useState((()=>new r.Matrix4)),[P]=d.useState((()=>new r.Vector3(0,0,-1))),[U]=d.useState((()=>new r.Vector4)),[E]=d.useState((()=>new r.Vector3)),[V]=d.useState((()=>new r.Vector3)),[F]=d.useState((()=>new r.Vector4)),[W]=d.useState((()=>new r.Matrix4)),[q]=d.useState((()=>new r.PerspectiveCamera)),I=d.useCallback((()=>{var e;const t=v.current.parent||(null==(e=v.current)?void 0:e.__r3f.parent);if(!t)return;if(B.setFromMatrixPosition(t.matrixWorld),_.setFromMatrixPosition(b.matrixWorld),O.extractRotation(t.matrixWorld),D.set(0,0,1),D.applyMatrix4(O),B.addScaledVector(D,T),E.subVectors(B,_),E.dot(D)>0)return;E.reflect(D).negate(),E.add(B),O.extractRotation(b.matrixWorld),P.set(0,0,-1),P.applyMatrix4(O),P.add(_),V.subVectors(B,P),V.reflect(D).negate(),V.add(B),q.position.copy(E),q.up.set(0,1,0),q.up.applyMatrix4(O),q.up.reflect(D),q.lookAt(V),q.far=b.far,q.updateMatrixWorld(),q.projectionMatrix.copy(b.projectionMatrix),W.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),W.multiply(q.projectionMatrix),W.multiply(q.matrixWorldInverse),W.multiply(t.matrixWorld),j.setFromNormalAndCoplanarPoint(D,B),j.applyMatrix4(q.matrixWorldInverse),U.set(j.normal.x,j.normal.y,j.normal.z,j.constant);const r=q.projectionMatrix;F.x=(Math.sign(U.x)+r.elements[8])/r.elements[0],F.y=(Math.sign(U.y)+r.elements[9])/r.elements[5],F.z=-1,F.w=(1+r.elements[10])/r.elements[14],U.multiplyScalar(2/U.dot(F)),r.elements[2]=U.x,r.elements[6]=U.y,r.elements[10]=U.z+1,r.elements[14]=U.w}),[b,T]),[C,k,L,z]=d.useMemo((()=>{const a={minFilter:r.LinearFilter,magFilter:r.LinearFilter,encoding:w.outputEncoding,type:r.HalfFloatType},u=new r.WebGLRenderTarget(n,n,a);u.depthBuffer=!0,u.depthTexture=new r.DepthTexture(n,n),u.depthTexture.format=r.DepthFormat,u.depthTexture.type=r.UnsignedShortType;const d=new r.WebGLRenderTarget(n,n,a);return[u,d,new o.BlurPass({gl:w,resolution:n,width:i[0],height:i[1],minDepthThreshold:s,maxDepthThreshold:l,depthScale:p,depthToBlurRatioBias:m}),{mirror:h,textureMatrix:W,mixBlur:e,tDiffuse:u.texture,tDepth:u.depthTexture,tDiffuseBlur:d.texture,hasBlur:R,mixStrength:t,minDepthThreshold:s,maxDepthThreshold:l,depthScale:p,depthToBlurRatioBias:m,transparent:!0,distortion:f,distortionMap:M,mixContrast:x,"defines-USE_BLUR":R?"":void 0,"defines-USE_DEPTH":p>0?"":void 0,"defines-USE_DISTORTION":M?"":void 0}]}),[w,i,W,n,h,R,e,t,s,l,p,m,f,M,x]);return a.useFrame((()=>{var e;const t=v.current.parent||(null==(e=v.current)?void 0:e.__r3f.parent);if(!t)return;t.visible=!1;const r=w.xr.enabled,a=w.shadowMap.autoUpdate;I(),w.xr.enabled=!1,w.shadowMap.autoUpdate=!1,w.setRenderTarget(C),w.state.buffers.depth.setMask(!0),w.autoClear||w.clear(),w.render(g,q),R&&L.render(w,C,k),w.xr.enabled=r,w.shadowMap.autoUpdate=a,t.visible=!0,w.setRenderTarget(null)})),d.createElement("meshReflectorMaterialImpl",u.default({attach:"material",key:"key"+z["defines-USE_BLUR"]+z["defines-USE_DEPTH"]+z["defines-USE_DISTORTION"],ref:c.default([v,y])},z,S))}));exports.MeshReflectorMaterial=p;
|
|
@@ -11,10 +11,10 @@ export declare type Props = JSX.IntrinsicElements['meshStandardMaterial'] & {
|
|
|
11
11
|
maxDepthThreshold?: number;
|
|
12
12
|
depthScale?: number;
|
|
13
13
|
depthToBlurRatioBias?: number;
|
|
14
|
-
debug?: number;
|
|
15
14
|
distortionMap?: Texture;
|
|
16
15
|
distortion?: number;
|
|
17
16
|
mixContrast?: number;
|
|
17
|
+
reflectorOffset?: number;
|
|
18
18
|
};
|
|
19
19
|
declare global {
|
|
20
20
|
namespace JSX {
|
|
@@ -23,4 +23,4 @@ declare global {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
export declare const MeshReflectorMaterial: React.ForwardRefExoticComponent<Pick<Props, "
|
|
26
|
+
export declare const MeshReflectorMaterial: React.ForwardRefExoticComponent<Pick<Props, "attach" | "args" | "children" | "key" | "onUpdate" | "blur" | "resolution" | keyof import("three").MeshStandardMaterial | "minDepthThreshold" | "maxDepthThreshold" | "depthScale" | "depthToBlurRatioBias" | "mixBlur" | "mixStrength" | "mirror" | "distortion" | "mixContrast" | "distortionMap" | "reflectorOffset"> & React.RefAttributes<MeshReflectorMaterialImpl>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { Plane, Vector3, Matrix4, Vector4, PerspectiveCamera, LinearFilter,
|
|
3
|
+
import { Plane, Vector3, Matrix4, Vector4, PerspectiveCamera, LinearFilter, HalfFloatType, WebGLRenderTarget, DepthTexture, DepthFormat, UnsignedShortType } from 'three';
|
|
4
4
|
import { extend, useThree, useFrame } from '@react-three/fiber';
|
|
5
5
|
import mergeRefs from 'react-merge-refs';
|
|
6
6
|
import { BlurPass } from '../materials/BlurPass.js';
|
|
@@ -19,10 +19,10 @@ const MeshReflectorMaterial = /*#__PURE__*/React.forwardRef(({
|
|
|
19
19
|
depthScale = 0,
|
|
20
20
|
depthToBlurRatioBias = 0.25,
|
|
21
21
|
mirror = 0,
|
|
22
|
-
debug = 0,
|
|
23
22
|
distortion = 1,
|
|
24
23
|
mixContrast = 1,
|
|
25
24
|
distortionMap,
|
|
25
|
+
reflectorOffset = 0,
|
|
26
26
|
...props
|
|
27
27
|
}, ref) => {
|
|
28
28
|
const gl = useThree(({
|
|
@@ -60,6 +60,7 @@ const MeshReflectorMaterial = /*#__PURE__*/React.forwardRef(({
|
|
|
60
60
|
rotationMatrix.extractRotation(parent.matrixWorld);
|
|
61
61
|
normal.set(0, 0, 1);
|
|
62
62
|
normal.applyMatrix4(rotationMatrix);
|
|
63
|
+
reflectorWorldPosition.addScaledVector(normal, reflectorOffset);
|
|
63
64
|
view.subVectors(reflectorWorldPosition, cameraWorldPosition); // Avoid rendering when reflector is facing away
|
|
64
65
|
|
|
65
66
|
if (view.dot(normal) > 0) return;
|
|
@@ -103,13 +104,13 @@ const MeshReflectorMaterial = /*#__PURE__*/React.forwardRef(({
|
|
|
103
104
|
projectionMatrix.elements[6] = clipPlane.y;
|
|
104
105
|
projectionMatrix.elements[10] = clipPlane.z + 1.0;
|
|
105
106
|
projectionMatrix.elements[14] = clipPlane.w;
|
|
106
|
-
}, [camera]);
|
|
107
|
+
}, [camera, reflectorOffset]);
|
|
107
108
|
const [fbo1, fbo2, blurpass, reflectorProps] = React.useMemo(() => {
|
|
108
109
|
const parameters = {
|
|
109
110
|
minFilter: LinearFilter,
|
|
110
111
|
magFilter: LinearFilter,
|
|
111
|
-
|
|
112
|
-
|
|
112
|
+
encoding: gl.outputEncoding,
|
|
113
|
+
type: HalfFloatType
|
|
113
114
|
};
|
|
114
115
|
const fbo1 = new WebGLRenderTarget(resolution, resolution, parameters);
|
|
115
116
|
fbo1.depthBuffer = true;
|
|
@@ -141,7 +142,6 @@ const MeshReflectorMaterial = /*#__PURE__*/React.forwardRef(({
|
|
|
141
142
|
depthScale,
|
|
142
143
|
depthToBlurRatioBias,
|
|
143
144
|
transparent: true,
|
|
144
|
-
debug,
|
|
145
145
|
distortion,
|
|
146
146
|
distortionMap,
|
|
147
147
|
mixContrast,
|
|
@@ -150,7 +150,7 @@ const MeshReflectorMaterial = /*#__PURE__*/React.forwardRef(({
|
|
|
150
150
|
'defines-USE_DISTORTION': distortionMap ? '' : undefined
|
|
151
151
|
};
|
|
152
152
|
return [fbo1, fbo2, blurpass, reflectorProps];
|
|
153
|
-
}, [gl, blur, textureMatrix, resolution, mirror, hasBlur, mixBlur, mixStrength, minDepthThreshold, maxDepthThreshold, depthScale, depthToBlurRatioBias,
|
|
153
|
+
}, [gl, blur, textureMatrix, resolution, mirror, hasBlur, mixBlur, mixStrength, minDepthThreshold, maxDepthThreshold, depthScale, depthToBlurRatioBias, distortion, distortionMap, mixContrast]);
|
|
154
154
|
useFrame(() => {
|
|
155
155
|
var _materialRef$current2;
|
|
156
156
|
|
|
@@ -12,14 +12,12 @@ declare global {
|
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
export declare const MeshWobbleMaterial: React.ForwardRefExoticComponent<Pick<
|
|
16
|
-
color?: import("@react-three/fiber").Color | undefined;
|
|
17
|
-
} & {
|
|
15
|
+
export declare const MeshWobbleMaterial: React.ForwardRefExoticComponent<Pick<import("@react-three/fiber").ExtendedColors<import("@react-three/fiber").Overwrite<Partial<MeshStandardMaterial>, import("@react-three/fiber").NodeProps<MeshStandardMaterial, [MeshStandardMaterialParameters]>>> & {
|
|
18
16
|
time?: number | undefined;
|
|
19
17
|
factor?: number | undefined;
|
|
20
18
|
speed?: number | undefined;
|
|
21
19
|
} & {
|
|
22
20
|
speed?: number | undefined;
|
|
23
21
|
factor?: number | undefined;
|
|
24
|
-
}, "
|
|
22
|
+
}, "attach" | "args" | "children" | "key" | "onUpdate" | "time" | "speed" | "factor" | keyof MeshStandardMaterial> & React.RefAttributes<unknown>>;
|
|
25
23
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var a=s(e),u=o(r);const c=u.forwardRef((({makeDefault:e,camera:r,regress:s,domElement:o,enableDamping:c=!0,onChange:i,onStart:f,onEnd:d,...l},m)=>{const b=t.useThree((e=>e.invalidate)),v=t.useThree((e=>e.camera)),h=t.useThree((e=>e.gl)),p=t.useThree((e=>e.events)),E=t.useThree((e=>e.set)),g=t.useThree((e=>e.get)),O=t.useThree((e=>e.performance)),j=r||v,T=o||p.connected||h.domElement,L=u.useMemo((()=>new n.OrbitControls(j)),[j]);return t.useFrame((()=>{L.enabled&&L.update()})),u.useEffect((()=>(L.connect(T),()=>{L.dispose()})),[T,s,L,b]),u.useEffect((()=>{const e=e=>{b(),s&&O.regress(),i&&i(e)};return L.addEventListener("change",e),f&&L.addEventListener("start",f),d&&L.addEventListener("end",d),()=>{f&&L.removeEventListener("start",f),d&&L.removeEventListener("end",d),L.removeEventListener("change",e)}}),[i,f,d]),u.useEffect((()=>{if(e){const e=g().controls;return E({controls:L}),()=>E({controls:e})}}),[e,L]),u.createElement("primitive",a.default({ref:m,object:L,enableDamping:c},l))}));exports.OrbitControls=c;
|
package/core/OrbitControls.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { ReactThreeFiber } from '@react-three/fiber';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import
|
|
3
|
+
import type { Camera, Event } from 'three';
|
|
4
4
|
import { OrbitControls as OrbitControlsImpl } from 'three-stdlib';
|
|
5
|
-
export declare type OrbitControlsProps = ReactThreeFiber.Overwrite<ReactThreeFiber.Object3DNode<OrbitControlsImpl, typeof OrbitControlsImpl>, {
|
|
6
|
-
|
|
7
|
-
camera?: THREE.Camera;
|
|
5
|
+
export declare type OrbitControlsProps = Omit<ReactThreeFiber.Overwrite<ReactThreeFiber.Object3DNode<OrbitControlsImpl, typeof OrbitControlsImpl>, {
|
|
6
|
+
camera?: Camera;
|
|
8
7
|
domElement?: HTMLElement;
|
|
9
|
-
regress?: boolean;
|
|
10
8
|
enableDamping?: boolean;
|
|
11
9
|
makeDefault?: boolean;
|
|
12
|
-
onChange?: (e?:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
onChange?: (e?: Event) => void;
|
|
11
|
+
onEnd?: (e?: Event) => void;
|
|
12
|
+
onStart?: (e?: Event) => void;
|
|
13
|
+
regress?: boolean;
|
|
14
|
+
target?: ReactThreeFiber.Vector3;
|
|
15
|
+
}>, 'ref'>;
|
|
16
|
+
export declare const OrbitControls: React.ForwardRefExoticComponent<OrbitControlsProps & React.RefAttributes<OrbitControlsImpl>>;
|