@react-three/drei 8.18.9 → 9.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -254
- package/core/ArcballControls.cjs.js +1 -1
- package/core/ArcballControls.js +26 -17
- package/core/Billboard.d.ts +2 -2
- package/core/Bounds.cjs.js +1 -1
- package/core/Bounds.d.ts +1 -2
- package/core/Bounds.js +15 -26
- package/core/Center.d.ts +1 -1
- package/core/ContactShadows.cjs.js +1 -1
- package/core/ContactShadows.d.ts +1 -1
- package/core/ContactShadows.js +1 -2
- package/core/CubeCamera.cjs.js +1 -1
- package/core/CubeCamera.js +7 -7
- package/core/Detailed.d.ts +2 -2
- package/core/DeviceOrientationControls.cjs.js +1 -1
- package/core/DeviceOrientationControls.d.ts +1 -1
- package/core/DeviceOrientationControls.js +6 -2
- package/core/Effects.cjs.js +1 -1
- package/core/Effects.d.ts +2 -2
- package/core/Effects.js +2 -2
- package/core/Environment.cjs.js +1 -1
- package/core/Environment.d.ts +3 -13
- package/core/Environment.js +30 -95
- package/core/FirstPersonControls.cjs.js +1 -1
- package/core/FirstPersonControls.d.ts +1 -1
- package/core/FirstPersonControls.js +6 -2
- package/core/Float.cjs.js +1 -1
- package/core/Float.d.ts +1 -1
- package/core/Float.js +4 -5
- package/core/FlyControls.d.ts +1 -1
- package/core/GizmoHelper.cjs.js +1 -1
- package/core/GizmoHelper.d.ts +1 -2
- package/core/GizmoHelper.js +41 -31
- package/core/GizmoViewcube.cjs.js +1 -1
- package/core/GizmoViewcube.d.ts +2 -2
- package/core/GizmoViewcube.js +1 -1
- package/core/GizmoViewport.d.ts +2 -2
- package/core/Image.cjs.js +1 -1
- package/core/Image.d.ts +2 -4
- package/core/Image.js +1 -6
- package/core/Instances.cjs.js +1 -1
- package/core/Instances.d.ts +3 -3
- package/core/Instances.js +11 -5
- 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 -1
- package/core/MeshReflectorMaterial.js +3 -1
- package/core/MeshWobbleMaterial.d.ts +2 -4
- package/core/OrbitControls.cjs.js +1 -1
- package/core/OrbitControls.js +32 -22
- package/core/OrthographicCamera.d.ts +2 -2
- package/core/PerspectiveCamera.d.ts +2 -2
- package/core/PointMaterial.cjs.js +1 -1
- package/core/PointMaterial.d.ts +7 -3
- package/core/PointMaterial.js +32 -14
- package/core/PointerLockControls.cjs.js +1 -1
- package/core/PointerLockControls.d.ts +1 -2
- package/core/PointerLockControls.js +22 -35
- package/core/Points.cjs.js +1 -1
- package/core/Points.d.ts +3 -3
- package/core/Points.js +36 -17
- package/core/PositionalAudio.d.ts +2 -2
- package/core/Reflector.d.ts +1 -1
- package/core/RoundedBox.d.ts +1 -1
- package/core/ScreenQuad.d.ts +1 -1
- package/core/Segments.d.ts +1 -1
- package/core/Shadow.d.ts +2 -2
- package/core/SpotLight.d.ts +20 -4
- package/core/Stage.cjs.js +1 -1
- package/core/Stage.js +2 -1
- package/core/Stars.cjs.js +1 -1
- package/core/Stars.js +3 -6
- package/core/Text.cjs.js +1 -1
- package/core/Text.d.ts +2 -3
- package/core/Text.js +2 -3
- package/core/TrackballControls.cjs.js +1 -1
- package/core/TrackballControls.d.ts +1 -1
- package/core/TrackballControls.js +6 -11
- package/core/TransformControls.cjs.js +1 -1
- package/core/TransformControls.d.ts +1 -1
- package/core/TransformControls.js +12 -4
- package/core/index.cjs.js +1 -1
- package/core/index.d.ts +0 -4
- package/core/index.js +2 -7
- package/core/shapes.d.ts +17 -17
- package/core/useFBX.d.ts +1 -1
- package/core/useFBX.js +1 -2
- package/core/useGLTF.d.ts +1 -1
- package/core/useGLTF.js +1 -2
- package/core/useHelper.d.ts +1 -3
- package/core/useKTX2.d.ts +1 -1
- package/core/useKTX2.js +1 -2
- package/core/useTexture.d.ts +1 -1
- package/core/useTexture.js +1 -2
- package/index.cjs.js +1 -1
- package/index.js +1 -5
- package/materials/ConvolutionMaterial.cjs.js +1 -1
- package/materials/ConvolutionMaterial.js +0 -2
- package/materials/MeshReflectorMaterial.cjs.js +1 -1
- package/materials/MeshReflectorMaterial.d.ts +3 -0
- package/materials/MeshReflectorMaterial.js +27 -1
- package/materials/SpotLightMaterial.cjs.js +1 -1
- package/materials/SpotLightMaterial.js +0 -3
- package/native/index.cjs.js +1 -1
- package/native/index.js +2 -7
- package/package.json +6 -7
- package/web/Html.cjs.js +1 -1
- package/web/Html.js +6 -4
- package/web/Select.js +0 -1
- package/web/index.cjs.js +1 -1
- package/web/index.js +2 -7
- package/core/Clone.cjs.js +0 -1
- package/core/Clone.d.ts +0 -11
- package/core/Clone.js +0 -89
- package/core/Lightformer.cjs.js +0 -1
- package/core/Lightformer.d.ts +0 -41
- package/core/Lightformer.js +0 -51
- package/core/Trail.cjs.js +0 -1
- package/core/Trail.d.ts +0 -20
- package/core/Trail.js +0 -160
- package/core/useBoxProjectedEnv.cjs.js +0 -1
- package/core/useBoxProjectedEnv.d.ts +0 -8
- package/core/useBoxProjectedEnv.js +0 -98
|
@@ -51,8 +51,6 @@ class ConvolutionMaterial extends ShaderMaterial {
|
|
|
51
51
|
gl_FragColor = sum * 0.25 ;
|
|
52
52
|
|
|
53
53
|
#include <dithering_fragment>
|
|
54
|
-
#include <tonemapping_fragment>
|
|
55
|
-
#include <encodings_fragment>
|
|
56
54
|
}`,
|
|
57
55
|
vertexShader: `uniform vec2 texelSize;
|
|
58
56
|
uniform vec2 halfTexelSize;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.MeshStandardMaterial{constructor(e={}){super(e),this._tDepth={value:null},this._distortionMap={value:null},this._tDiffuse={value:null},this._tDiffuseBlur={value:null},this._textureMatrix={value:null},this._hasBlur={value:!1},this._mirror={value:0},this._mixBlur={value:0},this._blurStrength={value:.5},this._minDepthThreshold={value:.9},this._maxDepthThreshold={value:1},this._depthScale={value:0},this._depthToBlurRatioBias={value:.25},this._distortion={value:1},this._mixContrast={value:1},this.setValues(e)}onBeforeCompile(e){var t;null!=(t=e.defines)&&t.USE_UV||(e.defines.USE_UV=""),e.uniforms.hasBlur=this._hasBlur,e.uniforms.tDiffuse=this._tDiffuse,e.uniforms.tDepth=this._tDepth,e.uniforms.distortionMap=this._distortionMap,e.uniforms.tDiffuseBlur=this._tDiffuseBlur,e.uniforms.textureMatrix=this._textureMatrix,e.uniforms.mirror=this._mirror,e.uniforms.mixBlur=this._mixBlur,e.uniforms.mixStrength=this._blurStrength,e.uniforms.minDepthThreshold=this._minDepthThreshold,e.uniforms.maxDepthThreshold=this._maxDepthThreshold,e.uniforms.depthScale=this._depthScale,e.uniforms.depthToBlurRatioBias=this._depthToBlurRatioBias,e.uniforms.distortion=this._distortion,e.uniforms.mixContrast=this._mixContrast,e.vertexShader=`\n uniform mat4 textureMatrix;\n varying vec4 my_vUv; \n ${e.vertexShader}`,e.vertexShader=e.vertexShader.replace("#include <project_vertex>","#include <project_vertex>\n my_vUv = textureMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"),e.fragmentShader=`\n uniform sampler2D tDiffuse;\n uniform sampler2D tDiffuseBlur;\n uniform sampler2D tDepth;\n uniform sampler2D distortionMap;\n uniform float distortion;\n uniform float cameraNear;\n\t\t\t uniform float cameraFar;\n uniform bool hasBlur;\n uniform float mixBlur;\n uniform float mirror;\n uniform float mixStrength;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float mixContrast;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec4 my_vUv; \n ${e.fragmentShader}`,e.fragmentShader=e.fragmentShader.replace("#include <emissivemap_fragment>","#include <emissivemap_fragment>\n \n float distortionFactor = 0.0;\n #ifdef USE_DISTORTION\n distortionFactor = texture2D(distortionMap, vUv).r * distortion;\n #endif\n\n vec4 new_vUv = my_vUv;\n new_vUv.x += distortionFactor;\n new_vUv.y += distortionFactor;\n\n vec4 base = texture2DProj(tDiffuse, new_vUv);\n vec4 blur = texture2DProj(tDiffuseBlur, new_vUv);\n \n vec4 merge = base;\n \n #ifdef USE_NORMALMAP\n vec2 normal_uv = vec2(0.0);\n vec4 normalColor = texture2D(normalMap, vUv * normalScale);\n vec3 my_normal = normalize( vec3( normalColor.r * 2.0 - 1.0, normalColor.b, normalColor.g * 2.0 - 1.0 ) );\n vec3 coord = new_vUv.xyz / new_vUv.w;\n normal_uv = coord.xy + coord.z * my_normal.xz * 0.05;\n vec4 base_normal = texture2D(tDiffuse, normal_uv);\n vec4 blur_normal = texture2D(tDiffuseBlur, normal_uv);\n merge = base_normal;\n blur = blur_normal;\n #endif\n\n float depthFactor = 0.0001;\n float blurFactor = 0.0;\n\n #ifdef USE_DEPTH\n vec4 depth = texture2DProj(tDepth, new_vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0001, min(1.0, depthFactor));\n\n #ifdef USE_BLUR\n blur = blur * min(1.0, depthFactor + depthToBlurRatioBias);\n merge = merge * min(1.0, depthFactor + 0.5);\n #else\n merge = merge * depthFactor;\n #endif\n \n #endif\n\n float reflectorRoughnessFactor = roughness;\n #ifdef USE_ROUGHNESSMAP\n vec4 reflectorTexelRoughness = texture2D( roughnessMap, vUv );\n reflectorRoughnessFactor *= reflectorTexelRoughness.g;\n #endif\n \n #ifdef USE_BLUR\n blurFactor = min(1.0, mixBlur * reflectorRoughnessFactor);\n merge = mix(merge, blur, blurFactor);\n #endif\n\n vec4 newMerge = vec4(0.0, 0.0, 0.0, 1.0);\n newMerge.r = (merge.r - 0.5) * mixContrast + 0.5;\n newMerge.g = (merge.g - 0.5) * mixContrast + 0.5;\n newMerge.b = (merge.b - 0.5) * mixContrast + 0.5;\n\n diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + newMerge.rgb * mixStrength);\n ")}get tDiffuse(){return this._tDiffuse.value}set tDiffuse(e){this._tDiffuse.value=e}get tDepth(){return this._tDepth.value}set tDepth(e){this._tDepth.value=e}get distortionMap(){return this._distortionMap.value}set distortionMap(e){this._distortionMap.value=e}get tDiffuseBlur(){return this._tDiffuseBlur.value}set tDiffuseBlur(e){this._tDiffuseBlur.value=e}get textureMatrix(){return this._textureMatrix.value}set textureMatrix(e){this._textureMatrix.value=e}get hasBlur(){return this._hasBlur.value}set hasBlur(e){this._hasBlur.value=e}get mirror(){return this._mirror.value}set mirror(e){this._mirror.value=e}get mixBlur(){return this._mixBlur.value}set mixBlur(e){this._mixBlur.value=e}get mixStrength(){return this._blurStrength.value}set mixStrength(e){this._blurStrength.value=e}get minDepthThreshold(){return this._minDepthThreshold.value}set minDepthThreshold(e){this._minDepthThreshold.value=e}get maxDepthThreshold(){return this._maxDepthThreshold.value}set maxDepthThreshold(e){this._maxDepthThreshold.value=e}get depthScale(){return this._depthScale.value}set depthScale(e){this._depthScale.value=e}get depthToBlurRatioBias(){return this._depthToBlurRatioBias.value}set depthToBlurRatioBias(e){this._depthToBlurRatioBias.value=e}get distortion(){return this._distortion.value}set distortion(e){this._distortion.value=e}get mixContrast(){return this._mixContrast.value}set mixContrast(e){this._mixContrast.value=e}}exports.MeshReflectorMaterial=t;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.MeshStandardMaterial{constructor(e={}){super(e),this._debug={value:0},this._tDepth={value:null},this._distortionMap={value:null},this._tDiffuse={value:null},this._tDiffuseBlur={value:null},this._textureMatrix={value:null},this._hasBlur={value:!1},this._mirror={value:0},this._mixBlur={value:0},this._blurStrength={value:.5},this._minDepthThreshold={value:.9},this._maxDepthThreshold={value:1},this._depthScale={value:0},this._depthToBlurRatioBias={value:.25},this._distortion={value:1},this._mixContrast={value:1},this.setValues(e)}onBeforeCompile(e){var t;null!=(t=e.defines)&&t.USE_UV||(e.defines.USE_UV=""),e.uniforms.debug=this._debug,e.uniforms.hasBlur=this._hasBlur,e.uniforms.tDiffuse=this._tDiffuse,e.uniforms.tDepth=this._tDepth,e.uniforms.distortionMap=this._distortionMap,e.uniforms.tDiffuseBlur=this._tDiffuseBlur,e.uniforms.textureMatrix=this._textureMatrix,e.uniforms.mirror=this._mirror,e.uniforms.mixBlur=this._mixBlur,e.uniforms.mixStrength=this._blurStrength,e.uniforms.minDepthThreshold=this._minDepthThreshold,e.uniforms.maxDepthThreshold=this._maxDepthThreshold,e.uniforms.depthScale=this._depthScale,e.uniforms.depthToBlurRatioBias=this._depthToBlurRatioBias,e.uniforms.distortion=this._distortion,e.uniforms.mixContrast=this._mixContrast,e.vertexShader=`\n uniform mat4 textureMatrix;\n varying vec4 my_vUv; \n ${e.vertexShader}`,e.vertexShader=e.vertexShader.replace("#include <project_vertex>","#include <project_vertex>\n my_vUv = textureMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"),e.fragmentShader=`\n uniform int debug;\n uniform sampler2D tDiffuse;\n uniform sampler2D tDiffuseBlur;\n uniform sampler2D tDepth;\n uniform sampler2D distortionMap;\n uniform float distortion;\n uniform float cameraNear;\n\t\t\t uniform float cameraFar;\n uniform bool hasBlur;\n uniform float mixBlur;\n uniform float mirror;\n uniform float mixStrength;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float mixContrast;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec4 my_vUv; \n ${e.fragmentShader}`,e.fragmentShader=e.fragmentShader.replace("#include <emissivemap_fragment>","#include <emissivemap_fragment>\n \n float distortionFactor = 0.0;\n #ifdef USE_DISTORTION\n distortionFactor = texture2D(distortionMap, vUv).r * distortion;\n #endif\n\n vec4 new_vUv = my_vUv;\n new_vUv.x += distortionFactor;\n new_vUv.y += distortionFactor;\n\n vec4 base = texture2DProj(tDiffuse, new_vUv);\n vec4 blur = texture2DProj(tDiffuseBlur, new_vUv);\n \n vec4 merge = base;\n \n #ifdef USE_NORMALMAP\n vec2 normal_uv = vec2(0.0);\n vec4 normalColor = texture2D(normalMap, vUv * normalScale);\n vec3 my_normal = normalize( vec3( normalColor.r * 2.0 - 1.0, normalColor.b, normalColor.g * 2.0 - 1.0 ) );\n vec3 coord = new_vUv.xyz / new_vUv.w;\n normal_uv = coord.xy + coord.z * my_normal.xz * 0.05;\n vec4 base_normal = texture2D(tDiffuse, normal_uv);\n vec4 blur_normal = texture2D(tDiffuseBlur, normal_uv);\n merge = base_normal;\n blur = blur_normal;\n #endif\n\n float depthFactor = 0.0001;\n float blurFactor = 0.0;\n\n #ifdef USE_DEPTH\n vec4 depth = texture2DProj(tDepth, new_vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0001, min(1.0, depthFactor));\n\n #ifdef USE_BLUR\n blur = blur * min(1.0, depthFactor + depthToBlurRatioBias);\n merge = merge * min(1.0, depthFactor + 0.5);\n #else\n merge = merge * depthFactor;\n #endif\n \n #endif\n\n float reflectorRoughnessFactor = roughness;\n #ifdef USE_ROUGHNESSMAP\n vec4 reflectorTexelRoughness = texture2D( roughnessMap, vUv );\n reflectorRoughnessFactor *= reflectorTexelRoughness.g;\n #endif\n \n #ifdef USE_BLUR\n blurFactor = min(1.0, mixBlur * reflectorRoughnessFactor);\n merge = mix(merge, blur, blurFactor);\n #endif\n\n vec4 newMerge = vec4(0.0, 0.0, 0.0, 1.0);\n newMerge.r = (merge.r - 0.5) * mixContrast + 0.5;\n newMerge.g = (merge.g - 0.5) * mixContrast + 0.5;\n newMerge.b = (merge.b - 0.5) * mixContrast + 0.5;\n\n diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + newMerge.rgb * mixStrength); \n \n if (debug == 1) {\n diffuseColor = vec4(vec3(depthFactor), 1.0);\n }\n if (debug == 2) {\n diffuseColor = vec4(vec3(blurFactor), 1.0);\n }\n if (debug == 3) {\n diffuseColor = texture2DProj(tDiffuse, new_vUv);\n }\n if (debug == 4) {\n diffuseColor = texture2DProj(tDiffuseBlur, new_vUv);\n }\n ")}get tDiffuse(){return this._tDiffuse.value}set tDiffuse(e){this._tDiffuse.value=e}get tDepth(){return this._tDepth.value}set tDepth(e){this._tDepth.value=e}get distortionMap(){return this._distortionMap.value}set distortionMap(e){this._distortionMap.value=e}get tDiffuseBlur(){return this._tDiffuseBlur.value}set tDiffuseBlur(e){this._tDiffuseBlur.value=e}get textureMatrix(){return this._textureMatrix.value}set textureMatrix(e){this._textureMatrix.value=e}get hasBlur(){return this._hasBlur.value}set hasBlur(e){this._hasBlur.value=e}get mirror(){return this._mirror.value}set mirror(e){this._mirror.value=e}get mixBlur(){return this._mixBlur.value}set mixBlur(e){this._mixBlur.value=e}get mixStrength(){return this._blurStrength.value}set mixStrength(e){this._blurStrength.value=e}get minDepthThreshold(){return this._minDepthThreshold.value}set minDepthThreshold(e){this._minDepthThreshold.value=e}get maxDepthThreshold(){return this._maxDepthThreshold.value}set maxDepthThreshold(e){this._maxDepthThreshold.value=e}get depthScale(){return this._depthScale.value}set depthScale(e){this._depthScale.value=e}get debug(){return this._debug.value}set debug(e){this._debug.value=e}get depthToBlurRatioBias(){return this._depthToBlurRatioBias.value}set depthToBlurRatioBias(e){this._depthToBlurRatioBias.value=e}get distortion(){return this._distortion.value}set distortion(e){this._distortion.value=e}get mixContrast(){return this._mixContrast.value}set mixContrast(e){this._mixContrast.value=e}}exports.MeshReflectorMaterial=t;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Matrix4, MeshStandardMaterial, Texture } from 'three';
|
|
2
2
|
export declare class MeshReflectorMaterial extends MeshStandardMaterial {
|
|
3
|
+
private _debug;
|
|
3
4
|
private _tDepth;
|
|
4
5
|
private _distortionMap;
|
|
5
6
|
private _tDiffuse;
|
|
@@ -41,6 +42,8 @@ export declare class MeshReflectorMaterial extends MeshStandardMaterial {
|
|
|
41
42
|
set maxDepthThreshold(v: number);
|
|
42
43
|
get depthScale(): number;
|
|
43
44
|
set depthScale(v: number);
|
|
45
|
+
get debug(): number;
|
|
46
|
+
set debug(v: number);
|
|
44
47
|
get depthToBlurRatioBias(): number;
|
|
45
48
|
set depthToBlurRatioBias(v: number);
|
|
46
49
|
get distortion(): number;
|
|
@@ -3,6 +3,9 @@ import { MeshStandardMaterial } from 'three';
|
|
|
3
3
|
class MeshReflectorMaterial extends MeshStandardMaterial {
|
|
4
4
|
constructor(parameters = {}) {
|
|
5
5
|
super(parameters);
|
|
6
|
+
this._debug = {
|
|
7
|
+
value: 0
|
|
8
|
+
};
|
|
6
9
|
this._tDepth = {
|
|
7
10
|
value: null
|
|
8
11
|
};
|
|
@@ -58,6 +61,7 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
|
|
|
58
61
|
shader.defines.USE_UV = '';
|
|
59
62
|
}
|
|
60
63
|
|
|
64
|
+
shader.uniforms.debug = this._debug;
|
|
61
65
|
shader.uniforms.hasBlur = this._hasBlur;
|
|
62
66
|
shader.uniforms.tDiffuse = this._tDiffuse;
|
|
63
67
|
shader.uniforms.tDepth = this._tDepth;
|
|
@@ -81,6 +85,7 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
|
|
|
81
85
|
my_vUv = textureMatrix * vec4( position, 1.0 );
|
|
82
86
|
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );`);
|
|
83
87
|
shader.fragmentShader = `
|
|
88
|
+
uniform int debug;
|
|
84
89
|
uniform sampler2D tDiffuse;
|
|
85
90
|
uniform sampler2D tDiffuseBlur;
|
|
86
91
|
uniform sampler2D tDepth;
|
|
@@ -161,7 +166,20 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
|
|
|
161
166
|
newMerge.g = (merge.g - 0.5) * mixContrast + 0.5;
|
|
162
167
|
newMerge.b = (merge.b - 0.5) * mixContrast + 0.5;
|
|
163
168
|
|
|
164
|
-
diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + newMerge.rgb * mixStrength);
|
|
169
|
+
diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + newMerge.rgb * mixStrength);
|
|
170
|
+
|
|
171
|
+
if (debug == 1) {
|
|
172
|
+
diffuseColor = vec4(vec3(depthFactor), 1.0);
|
|
173
|
+
}
|
|
174
|
+
if (debug == 2) {
|
|
175
|
+
diffuseColor = vec4(vec3(blurFactor), 1.0);
|
|
176
|
+
}
|
|
177
|
+
if (debug == 3) {
|
|
178
|
+
diffuseColor = texture2DProj(tDiffuse, new_vUv);
|
|
179
|
+
}
|
|
180
|
+
if (debug == 4) {
|
|
181
|
+
diffuseColor = texture2DProj(tDiffuseBlur, new_vUv);
|
|
182
|
+
}
|
|
165
183
|
`);
|
|
166
184
|
}
|
|
167
185
|
|
|
@@ -261,6 +279,14 @@ class MeshReflectorMaterial extends MeshStandardMaterial {
|
|
|
261
279
|
this._depthScale.value = v;
|
|
262
280
|
}
|
|
263
281
|
|
|
282
|
+
get debug() {
|
|
283
|
+
return this._debug.value;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
set debug(v) {
|
|
287
|
+
this._debug.value = v;
|
|
288
|
+
}
|
|
289
|
+
|
|
264
290
|
get depthToBlurRatioBias() {
|
|
265
291
|
return this._depthToBlurRatioBias.value;
|
|
266
292
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("three");class
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("three");class t extends n.ShaderMaterial{constructor(){super({uniforms:{depth:{value:null},opacity:{value:1},attenuation:{value:2.5},anglePower:{value:12},spotPosition:{value:new n.Vector3(0,0,0)},lightColor:{value:new n.Color("white")},cameraNear:{value:0},cameraFar:{value:1},resolution:{value:new n.Vector2(0,0)}},transparent:!0,depthWrite:!1,vertexShader:"\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n varying float vViewZ;\n varying float vIntensity;\n uniform vec3 spotPosition;\n uniform float attenuation; \n\n void main() {\n // compute intensity\n vNormal = normalize( normalMatrix * normal );\n vec4 worldPosition\t= modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n vec4 viewPosition = viewMatrix * worldPosition;\n vViewZ = viewPosition.z;\n float intensity\t= distance(worldPosition.xyz, spotPosition) / attenuation;\n intensity\t= 1.0 - clamp(intensity, 0.0, 1.0);\n vIntensity = intensity; \n // set gl_Position\n gl_Position\t= projectionMatrix * viewPosition;\n\n }",fragmentShader:"\n #include <packing>\n\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n uniform vec3 lightColor;\n uniform vec3 spotPosition;\n uniform float attenuation;\n uniform float anglePower;\n uniform sampler2D depth;\n uniform vec2 resolution;\n uniform float cameraNear;\n uniform float cameraFar;\n varying float vViewZ;\n varying float vIntensity;\n uniform float opacity;\n\n float readDepth( sampler2D depthSampler, vec2 coord ) {\n float fragCoordZ = texture2D( depthSampler, coord ).x;\n float viewZ = perspectiveDepthToViewZ(fragCoordZ, cameraNear, cameraFar);\n return viewZ;\n }\n\n void main() {\n float d = 1.0;\n bool isSoft = resolution[0] > 0.0 && resolution[1] > 0.0;\n if (isSoft) {\n vec2 sUv = gl_FragCoord.xy / resolution;\n d = readDepth(depth, sUv);\n }\n float intensity = vIntensity;\n vec3 normal\t= vec3(vNormal.x, vNormal.y, abs(vNormal.z));\n float angleIntensity\t= pow( dot(normal, vec3(0.0, 0.0, 1.0)), anglePower );\n intensity\t*= angleIntensity;\n // fades when z is close to sampled depth, meaning the cone is intersecting existing geometry\n if (isSoft) {\n intensity\t*= smoothstep(0., 1., vViewZ - d);\n }\n gl_FragColor = vec4(lightColor, intensity * opacity);\n }"})}}exports.SpotLightMaterial=t;
|
|
@@ -99,9 +99,6 @@ class SpotLightMaterial extends ShaderMaterial {
|
|
|
99
99
|
intensity *= smoothstep(0., 1., vViewZ - d);
|
|
100
100
|
}
|
|
101
101
|
gl_FragColor = vec4(lightColor, intensity * opacity);
|
|
102
|
-
|
|
103
|
-
#include <tonemapping_fragment>
|
|
104
|
-
#include <encodings_fragment>
|
|
105
102
|
}`
|
|
106
103
|
});
|
|
107
104
|
}
|
package/native/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../core/Billboard.cjs.js"),r=require("../core/QuadraticBezierLine.cjs.js"),s=require("../core/CubicBezierLine.cjs.js"),o=require("../core/Line.cjs.js"),t=require("../core/PositionalAudio.cjs.js"),i=require("../core/Text.cjs.js"),c=require("../core/Effects.cjs.js"),u=require("../core/GradientTexture.cjs.js"),a=require("../core/Image.cjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../core/Billboard.cjs.js"),r=require("../core/QuadraticBezierLine.cjs.js"),s=require("../core/CubicBezierLine.cjs.js"),o=require("../core/Line.cjs.js"),t=require("../core/PositionalAudio.cjs.js"),i=require("../core/Text.cjs.js"),c=require("../core/Effects.cjs.js"),u=require("../core/GradientTexture.cjs.js"),a=require("../core/Image.cjs.js"),j=require("../core/Edges.cjs.js"),n=require("../core/OrthographicCamera.cjs.js"),p=require("../core/PerspectiveCamera.cjs.js"),l=require("../core/CubeCamera.cjs.js"),x=require("../core/DeviceOrientationControls.cjs.js"),q=require("../core/FlyControls.cjs.js"),d=require("../core/MapControls.cjs.js"),C=require("../core/OrbitControls.cjs.js"),h=require("../core/TrackballControls.cjs.js"),m=require("../core/ArcballControls.cjs.js"),B=require("../core/TransformControls.cjs.js"),b=require("../core/PointerLockControls.cjs.js"),M=require("../core/FirstPersonControls.cjs.js"),P=require("../core/GizmoHelper.cjs.js"),S=require("../core/GizmoViewcube.cjs.js"),f=require("../core/GizmoViewport.cjs.js"),T=require("../core/useCubeTexture.cjs.js"),g=require("../core/useFBX.cjs.js"),v=require("../core/useGLTF.cjs.js"),L=require("../core/useProgress.cjs.js"),A=require("../core/useTexture.cjs.js"),G=require("../core/useKTX2.cjs.js"),k=require("../core/Stats.cjs.js"),D=require("../core/useDepthBuffer.cjs.js"),F=require("../core/useAspect.cjs.js"),w=require("../core/useCamera.cjs.js"),z=require("../core/useDetectGPU.cjs.js"),I=require("../core/useHelper.cjs.js"),O=require("../core/useBVH.cjs.js"),E=require("../core/useContextBridge.cjs.js"),R=require("../core/useAnimations.cjs.js"),y=require("../core/useFBO.cjs.js"),H=require("../core/useIntersect.cjs.js"),V=require("../core/CurveModifier.cjs.js"),Q=require("../core/MeshDistortMaterial.cjs.js"),X=require("../core/MeshWobbleMaterial.cjs.js"),K=require("../core/MeshReflectorMaterial.cjs.js"),W=require("../core/PointMaterial.cjs.js"),N=require("../core/shaderMaterial.cjs.js"),U=require("../core/softShadows.cjs.js"),_=require("../core/shapes.cjs.js"),J=require("../core/RoundedBox.cjs.js"),Y=require("../core/ScreenQuad.cjs.js"),Z=require("../core/Center.cjs.js"),$=require("../core/Bounds.cjs.js"),ee=require("../core/CameraShake.cjs.js"),re=require("../core/Float.cjs.js"),se=require("../core/Stage.cjs.js"),oe=require("../core/Backdrop.cjs.js"),te=require("../core/Shadow.cjs.js"),ie=require("../core/ContactShadows.cjs.js"),ce=require("../core/Reflector.cjs.js"),ue=require("../core/SpotLight.cjs.js"),ae=require("../core/Environment.cjs.js"),je=require("../core/Sky.cjs.js"),ne=require("../core/Stars.cjs.js"),pe=require("../core/Cloud.cjs.js"),le=require("../core/useMatcapTexture.cjs.js"),xe=require("../core/useNormalTexture.cjs.js"),qe=require("../core/Points.cjs.js"),de=require("../core/Instances.cjs.js"),Ce=require("../core/Segments.cjs.js"),he=require("../core/Detailed.cjs.js"),me=require("../core/Preload.cjs.js"),Be=require("../core/BakeShadows.cjs.js"),be=require("../core/meshBounds.cjs.js"),Me=require("../core/AdaptiveDpr.cjs.js"),Pe=require("../core/AdaptiveEvents.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("three"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("lodash.omit"),require("lodash.pick"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.QuadraticBezierLine=r.QuadraticBezierLine,exports.CubicBezierLine=s.CubicBezierLine,exports.Line=o.Line,exports.PositionalAudio=t.PositionalAudio,exports.Text=i.Text,exports.Effects=c.Effects,exports.isWebGL2Available=c.isWebGL2Available,exports.GradientTexture=u.GradientTexture,exports.Image=a.Image,exports.Edges=j.Edges,exports.OrthographicCamera=n.OrthographicCamera,exports.PerspectiveCamera=p.PerspectiveCamera,exports.CubeCamera=l.CubeCamera,exports.DeviceOrientationControls=x.DeviceOrientationControls,exports.FlyControls=q.FlyControls,exports.MapControls=d.MapControls,exports.OrbitControls=C.OrbitControls,exports.TrackballControls=h.TrackballControls,exports.ArcballControls=m.ArcballControls,exports.TransformControls=B.TransformControls,exports.PointerLockControls=b.PointerLockControls,exports.FirstPersonControls=M.FirstPersonControls,exports.GizmoHelper=P.GizmoHelper,exports.useGizmoContext=P.useGizmoContext,exports.GizmoViewcube=S.GizmoViewcube,exports.GizmoViewport=f.GizmoViewport,exports.useCubeTexture=T.useCubeTexture,exports.useFBX=g.useFBX,exports.useGLTF=v.useGLTF,exports.useProgress=L.useProgress,exports.IsObject=A.IsObject,exports.useTexture=A.useTexture,exports.useKTX2=G.useKTX2,exports.Stats=k.Stats,exports.useDepthBuffer=D.useDepthBuffer,exports.useAspect=F.useAspect,exports.useCamera=w.useCamera,exports.useDetectGPU=z.useDetectGPU,exports.useHelper=I.useHelper,exports.useBVH=O.useBVH,exports.useContextBridge=E.useContextBridge,exports.useAnimations=R.useAnimations,exports.useFBO=y.useFBO,exports.useIntersect=H.useIntersect,exports.CurveModifier=V.CurveModifier,exports.MeshDistortMaterial=Q.MeshDistortMaterial,exports.MeshWobbleMaterial=X.MeshWobbleMaterial,exports.MeshReflectorMaterial=K.MeshReflectorMaterial,exports.PointMaterial=W.PointMaterial,exports.PointMaterialImpl=W.PointMaterialImpl,exports.shaderMaterial=N.shaderMaterial,exports.softShadows=U.softShadows,exports.Box=_.Box,exports.Circle=_.Circle,exports.Cone=_.Cone,exports.Cylinder=_.Cylinder,exports.Dodecahedron=_.Dodecahedron,exports.Extrude=_.Extrude,exports.Icosahedron=_.Icosahedron,exports.Lathe=_.Lathe,exports.Octahedron=_.Octahedron,exports.Plane=_.Plane,exports.Polyhedron=_.Polyhedron,exports.Ring=_.Ring,exports.Sphere=_.Sphere,exports.Tetrahedron=_.Tetrahedron,exports.Torus=_.Torus,exports.TorusKnot=_.TorusKnot,exports.Tube=_.Tube,exports.RoundedBox=J.RoundedBox,exports.ScreenQuad=Y.ScreenQuad,exports.Center=Z.Center,exports.Bounds=$.Bounds,exports.useBounds=$.useBounds,exports.CameraShake=ee.CameraShake,exports.Float=re.Float,exports.Stage=se.Stage,exports.Backdrop=oe.Backdrop,exports.Shadow=te.Shadow,exports.ContactShadows=ie.ContactShadows,exports.Reflector=ce.Reflector,exports.SpotLight=ue.SpotLight,exports.Environment=ae.Environment,exports.Sky=je.Sky,exports.calcPosFromAngles=je.calcPosFromAngles,exports.Stars=ne.Stars,exports.Cloud=pe.Cloud,exports.useMatcapTexture=le.useMatcapTexture,exports.useNormalTexture=xe.useNormalTexture,exports.Point=qe.Point,exports.Points=qe.Points,exports.PointsBuffer=qe.PointsBuffer,exports.Instance=de.Instance,exports.Instances=de.Instances,exports.Merged=de.Merged,exports.Segment=Ce.Segment,exports.Segments=Ce.Segments,exports.Detailed=he.Detailed,exports.Preload=me.Preload,exports.BakeShadows=Be.BakeShadows,exports.meshBounds=be.meshBounds,exports.AdaptiveDpr=Me.AdaptiveDpr,exports.AdaptiveEvents=Pe.AdaptiveEvents;
|
package/native/index.js
CHANGED
|
@@ -8,8 +8,6 @@ export { Effects, isWebGL2Available } from '../core/Effects.js';
|
|
|
8
8
|
export { GradientTexture } from '../core/GradientTexture.js';
|
|
9
9
|
export { Image } from '../core/Image.js';
|
|
10
10
|
export { Edges } from '../core/Edges.js';
|
|
11
|
-
export { Trail, useTrail } from '../core/Trail.js';
|
|
12
|
-
export { Clone } from '../core/Clone.js';
|
|
13
11
|
export { OrthographicCamera } from '../core/OrthographicCamera.js';
|
|
14
12
|
export { PerspectiveCamera } from '../core/PerspectiveCamera.js';
|
|
15
13
|
export { CubeCamera } from '../core/CubeCamera.js';
|
|
@@ -42,7 +40,6 @@ export { useContextBridge } from '../core/useContextBridge.js';
|
|
|
42
40
|
export { useAnimations } from '../core/useAnimations.js';
|
|
43
41
|
export { useFBO } from '../core/useFBO.js';
|
|
44
42
|
export { useIntersect } from '../core/useIntersect.js';
|
|
45
|
-
export { useBoxProjectedEnv } from '../core/useBoxProjectedEnv.js';
|
|
46
43
|
export { CurveModifier } from '../core/CurveModifier.js';
|
|
47
44
|
export { MeshDistortMaterial } from '../core/MeshDistortMaterial.js';
|
|
48
45
|
export { MeshWobbleMaterial } from '../core/MeshWobbleMaterial.js';
|
|
@@ -63,8 +60,7 @@ export { Shadow } from '../core/Shadow.js';
|
|
|
63
60
|
export { ContactShadows } from '../core/ContactShadows.js';
|
|
64
61
|
export { Reflector } from '../core/Reflector.js';
|
|
65
62
|
export { SpotLight } from '../core/SpotLight.js';
|
|
66
|
-
export { Environment
|
|
67
|
-
export { Lightformer } from '../core/Lightformer.js';
|
|
63
|
+
export { Environment } from '../core/Environment.js';
|
|
68
64
|
export { Sky, calcPosFromAngles } from '../core/Sky.js';
|
|
69
65
|
export { Stars } from '../core/Stars.js';
|
|
70
66
|
export { Cloud } from '../core/Cloud.js';
|
|
@@ -87,9 +83,8 @@ import 'three';
|
|
|
87
83
|
import 'three-stdlib';
|
|
88
84
|
import 'troika-three-text';
|
|
89
85
|
import 'suspend-react';
|
|
90
|
-
import 'meshline';
|
|
91
|
-
import 'lodash.pick';
|
|
92
86
|
import 'lodash.omit';
|
|
87
|
+
import 'lodash.pick';
|
|
93
88
|
import 'zustand';
|
|
94
89
|
import 'stats.js';
|
|
95
90
|
import '../helpers/useEffectfulState.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-three/drei",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0-beta.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "useful add-ons for react-three-fiber",
|
|
6
6
|
"keywords": [
|
|
@@ -46,21 +46,20 @@
|
|
|
46
46
|
"glsl-noise": "^0.0.0",
|
|
47
47
|
"lodash.omit": "^4.5.0",
|
|
48
48
|
"lodash.pick": "^4.4.0",
|
|
49
|
-
"meshline": "^2.0.4",
|
|
50
49
|
"react-composer": "^5.0.2",
|
|
51
50
|
"react-merge-refs": "^1.1.0",
|
|
52
51
|
"stats.js": "^0.17.0",
|
|
53
52
|
"suspend-react": "^0.0.8",
|
|
54
53
|
"three-mesh-bvh": "^0.5.4",
|
|
55
|
-
"three-stdlib": "^2.8.
|
|
56
|
-
"troika-three-text": "^0.
|
|
54
|
+
"three-stdlib": "^2.8.6",
|
|
55
|
+
"troika-three-text": "^0.45.0",
|
|
57
56
|
"utility-types": "^3.10.0",
|
|
58
57
|
"zustand": "^3.5.13"
|
|
59
58
|
},
|
|
60
59
|
"peerDependencies": {
|
|
61
|
-
"@react-three/fiber": ">=
|
|
62
|
-
"react": ">=
|
|
63
|
-
"react-dom": ">=
|
|
60
|
+
"@react-three/fiber": ">=8.0",
|
|
61
|
+
"react": ">=18.0",
|
|
62
|
+
"react-dom": ">=18.0",
|
|
64
63
|
"three": ">=0.137"
|
|
65
64
|
},
|
|
66
65
|
"peerDependenciesMeta": {
|
package/web/Html.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("react-dom"),n=require("three"),o=require("@react-three/fiber");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(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 i=s(e),c=a(t),l=a(r);const u=new n.Vector3,d=new n.Vector3,f=new n.Vector3;function m(e,t,r){const n=u.setFromMatrixPosition(e.matrixWorld);n.project(t);const o=r.width/2,s=r.height/2;return[n.x*o+o,-n.y*s+s]}const p=e=>Math.abs(e)<1e-10?0:e;function h(e,t,r=""){let n="matrix3d(";for(let r=0;16!==r;r++)n+=p(t[r]*e.elements[r])+(15!==r?",":")");return r+n}const x=(y=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>h(e,y));var y;const v=(e,t)=>{return h(e,[1/(r=t),1/r,1/r,1,-1/r,-1/r,-1/r,-1,1/r,1/r,1/r,1,1,1,1,1],"translate(-50%,-50%)");var r},b=c.forwardRef((({children:e,eps:t=.001,style:r,className:s,prepend:a,center:h,fullscreen:y,portal:b,distanceFactor:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("react-dom"),n=require("three"),o=require("@react-three/fiber");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(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 i=s(e),c=a(t),l=a(r);const u=new n.Vector3,d=new n.Vector3,f=new n.Vector3;function m(e,t,r){const n=u.setFromMatrixPosition(e.matrixWorld);n.project(t);const o=r.width/2,s=r.height/2;return[n.x*o+o,-n.y*s+s]}const p=e=>Math.abs(e)<1e-10?0:e;function h(e,t,r=""){let n="matrix3d(";for(let r=0;16!==r;r++)n+=p(t[r]*e.elements[r])+(15!==r?",":")");return r+n}const x=(y=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>h(e,y));var y;const v=(e,t)=>{return h(e,[1/(r=t),1/r,1/r,1,-1/r,-1/r,-1/r,-1,1/r,1/r,1/r,1,1,1,1,1],"translate(-50%,-50%)");var r},b=c.forwardRef((({children:e,eps:t=.001,style:r,className:s,prepend:a,center:h,fullscreen:y,portal:b,distanceFactor:M,sprite:g=!1,transform:P=!1,occlude:w,onOcclude:W,zIndexRange:$=[16777271,0],calculatePosition:E=m,as:O="div",wrapperClass:j,pointerEvents:F="auto",...T},C)=>{var R;const z=o.useThree((({gl:e})=>e)),I=o.useThree((({camera:e})=>e)),q=o.useThree((({scene:e})=>e)),N=o.useThree((({size:e})=>e)),_=o.useThree((({raycaster:e})=>e)),[V]=c.useState((()=>document.createElement(O))),k=c.useMemo((()=>l.createRoot(V)),[V]),A=c.useRef(null),D=c.useRef(0),L=c.useRef([0,0]),S=c.useRef(null),H=c.useRef(null),Z=null!==(R=null==b?void 0:b.current)&&void 0!==R?R:z.domElement.parentNode;c.useEffect((()=>{if(A.current){if(q.updateMatrixWorld(),P)V.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const e=E(A.current,I,N);V.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return Z&&(a?Z.prepend(V):Z.appendChild(V)),()=>{Z&&Z.removeChild(V),k.unmount()}}}),[Z,P]),c.useLayoutEffect((()=>{j&&(V.className=j)}),[j]);const B=c.useMemo((()=>P?{position:"absolute",top:0,left:0,width:N.width,height:N.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:h?"translate3d(-50%,-50%,0)":"none",...y&&{top:-N.height/2,left:-N.width/2,width:N.width,height:N.height},...r}),[r,h,y,N,P]),G=c.useMemo((()=>({position:"absolute",pointerEvents:F})),[F]);c.useLayoutEffect((()=>{P?k.render(c.createElement("div",{ref:S,style:B},c.createElement("div",{ref:H,style:G},c.createElement("div",{ref:C,className:s,style:r,children:e}))),V):k.render(c.createElement("div",{ref:C,style:B,className:s,children:e}),V)}));const J=c.useRef(!0);return o.useFrame((()=>{if(A.current){I.updateMatrixWorld(),A.current.updateWorldMatrix(!0,!1);const e=P?L.current:E(A.current,I,N);if(P||Math.abs(D.current-I.zoom)>t||Math.abs(L.current[0]-e[0])>t||Math.abs(L.current[1]-e[1])>t){const t=function(e,t){const r=u.setFromMatrixPosition(e.matrixWorld),n=d.setFromMatrixPosition(t.matrixWorld),o=r.sub(n),s=t.getWorldDirection(f);return o.angleTo(s)>Math.PI/2}(A.current,I);let r=!1;"boolean"==typeof w?!0===w&&(r=[q]):Array.isArray(w)&&(r=w.map((e=>e.current)));const o=J.current;if(r){const e=function(e,t,r,n){const o=u.setFromMatrixPosition(e.matrixWorld),s=o.clone();s.project(t),r.setFromCamera(s,t);const a=r.intersectObjects(n,!0);if(a.length){const e=a[0].distance;return o.distanceTo(r.ray.origin)<e}return!0}(A.current,I,_,r);J.current=e&&!t}else J.current=!t;if(o!==J.current&&(W?W(!J.current):V.style.display=J.current?"block":"none"),V.style.zIndex=`${function(e,t,r){if(t instanceof n.PerspectiveCamera||t instanceof n.OrthographicCamera){const n=u.setFromMatrixPosition(e.matrixWorld),o=d.setFromMatrixPosition(t.matrixWorld),s=n.distanceTo(o),a=(r[1]-r[0])/(t.far-t.near),i=r[1]-a*t.far;return Math.round(a*s+i)}}(A.current,I,$)}`,P){const[e,t]=[N.width/2,N.height/2],r=I.projectionMatrix.elements[5]*t,{isOrthographicCamera:n,top:o,left:s,bottom:a,right:i}=I,c=x(I.matrixWorldInverse),l=n?`scale(${r})translate(${p(-(i+s)/2)}px,${p((o+a)/2)}px)`:`translateZ(${r}px)`;let u=A.current.matrixWorld;g&&(u=I.matrixWorldInverse.clone().transpose().copyPosition(u).scale(A.current.scale),u.elements[3]=u.elements[7]=u.elements[11]=0,u.elements[15]=1),V.style.width=N.width+"px",V.style.height=N.height+"px",V.style.perspective=n?"":`${r}px`,S.current&&H.current&&(S.current.style.transform=`${l}${c}translate(${e}px,${t}px)`,H.current.style.transform=v(u,1/((M||10)/400)))}else{const t=void 0===M?1:function(e,t){if(t instanceof n.OrthographicCamera)return t.zoom;if(t instanceof n.PerspectiveCamera){const r=u.setFromMatrixPosition(e.matrixWorld),n=d.setFromMatrixPosition(t.matrixWorld),o=t.fov*Math.PI/180,s=r.distanceTo(n);return 1/(2*Math.tan(o/2)*s)}return 1}(A.current,I)*M;V.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}L.current=e,D.current=I.zoom}}})),c.createElement("group",i.default({},T,{ref:A}))}));exports.Html=b;
|
package/web/Html.js
CHANGED
|
@@ -126,7 +126,9 @@ const Html = /*#__PURE__*/React.forwardRef(({
|
|
|
126
126
|
const raycaster = useThree(({
|
|
127
127
|
raycaster
|
|
128
128
|
}) => raycaster);
|
|
129
|
-
const [el] = React.useState(() => document.createElement(as));
|
|
129
|
+
const [el] = React.useState(() => document.createElement(as)); // @ts-expect-error React 18 types aren't available yet
|
|
130
|
+
|
|
131
|
+
const root = React.useMemo(() => ReactDOM.createRoot(el), [el]);
|
|
130
132
|
const group = React.useRef(null);
|
|
131
133
|
const oldZoom = React.useRef(0);
|
|
132
134
|
const oldPosition = React.useRef([0, 0]);
|
|
@@ -150,7 +152,7 @@ const Html = /*#__PURE__*/React.forwardRef(({
|
|
|
150
152
|
|
|
151
153
|
return () => {
|
|
152
154
|
if (target) target.removeChild(el);
|
|
153
|
-
|
|
155
|
+
root.unmount();
|
|
154
156
|
};
|
|
155
157
|
}
|
|
156
158
|
}, [target, transform]);
|
|
@@ -188,7 +190,7 @@ const Html = /*#__PURE__*/React.forwardRef(({
|
|
|
188
190
|
}), [pointerEvents]);
|
|
189
191
|
React.useLayoutEffect(() => {
|
|
190
192
|
if (transform) {
|
|
191
|
-
|
|
193
|
+
root.render( /*#__PURE__*/React.createElement("div", {
|
|
192
194
|
ref: transformOuterRef,
|
|
193
195
|
style: styles
|
|
194
196
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -201,7 +203,7 @@ const Html = /*#__PURE__*/React.forwardRef(({
|
|
|
201
203
|
children: children
|
|
202
204
|
}))), el);
|
|
203
205
|
} else {
|
|
204
|
-
|
|
206
|
+
root.render( /*#__PURE__*/React.createElement("div", {
|
|
205
207
|
ref: ref,
|
|
206
208
|
style: styles,
|
|
207
209
|
className: className,
|
package/web/Select.js
CHANGED
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("./Select.cjs.js"),u=require("../core/Billboard.cjs.js"),a=require("../core/QuadraticBezierLine.cjs.js"),
|
|
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("./Select.cjs.js"),u=require("../core/Billboard.cjs.js"),a=require("../core/QuadraticBezierLine.cjs.js"),j=require("../core/CubicBezierLine.cjs.js"),n=require("../core/Line.cjs.js"),p=require("../core/PositionalAudio.cjs.js"),l=require("../core/Text.cjs.js"),x=require("../core/Effects.cjs.js"),q=require("../core/GradientTexture.cjs.js"),d=require("../core/Image.cjs.js"),C=require("../core/Edges.cjs.js"),h=require("../core/OrthographicCamera.cjs.js"),m=require("../core/PerspectiveCamera.cjs.js"),S=require("../core/CubeCamera.cjs.js"),B=require("../core/DeviceOrientationControls.cjs.js"),P=require("../core/FlyControls.cjs.js"),b=require("../core/MapControls.cjs.js"),M=require("../core/OrbitControls.cjs.js"),f=require("../core/TrackballControls.cjs.js"),T=require("../core/ArcballControls.cjs.js"),g=require("../core/TransformControls.cjs.js"),v=require("../core/PointerLockControls.cjs.js"),L=require("../core/FirstPersonControls.cjs.js"),A=require("../core/GizmoHelper.cjs.js"),G=require("../core/GizmoViewcube.cjs.js"),k=require("../core/GizmoViewport.cjs.js"),D=require("../core/useCubeTexture.cjs.js"),F=require("../core/useFBX.cjs.js"),w=require("../core/useGLTF.cjs.js"),z=require("../core/useProgress.cjs.js"),y=require("../core/useTexture.cjs.js"),I=require("../core/useKTX2.cjs.js"),O=require("../core/Stats.cjs.js"),E=require("../core/useDepthBuffer.cjs.js"),R=require("../core/useAspect.cjs.js"),H=require("../core/useCamera.cjs.js"),V=require("../core/useDetectGPU.cjs.js"),Q=require("../core/useHelper.cjs.js"),X=require("../core/useBVH.cjs.js"),K=require("../core/useContextBridge.cjs.js"),W=require("../core/useAnimations.cjs.js"),N=require("../core/useFBO.cjs.js"),U=require("../core/useIntersect.cjs.js"),_=require("../core/CurveModifier.cjs.js"),J=require("../core/MeshDistortMaterial.cjs.js"),Y=require("../core/MeshWobbleMaterial.cjs.js"),Z=require("../core/MeshReflectorMaterial.cjs.js"),$=require("../core/PointMaterial.cjs.js"),ee=require("../core/shaderMaterial.cjs.js"),re=require("../core/softShadows.cjs.js"),se=require("../core/shapes.cjs.js"),oe=require("../core/RoundedBox.cjs.js"),te=require("../core/ScreenQuad.cjs.js"),ie=require("../core/Center.cjs.js"),ce=require("../core/Bounds.cjs.js"),ue=require("../core/CameraShake.cjs.js"),ae=require("../core/Float.cjs.js"),je=require("../core/Stage.cjs.js"),ne=require("../core/Backdrop.cjs.js"),pe=require("../core/Shadow.cjs.js"),le=require("../core/ContactShadows.cjs.js"),xe=require("../core/Reflector.cjs.js"),qe=require("../core/SpotLight.cjs.js"),de=require("../core/Environment.cjs.js"),Ce=require("../core/Sky.cjs.js"),he=require("../core/Stars.cjs.js"),me=require("../core/Cloud.cjs.js"),Se=require("../core/useMatcapTexture.cjs.js"),Be=require("../core/useNormalTexture.cjs.js"),Pe=require("../core/Points.cjs.js"),be=require("../core/Instances.cjs.js"),Me=require("../core/Segments.cjs.js"),fe=require("../core/Detailed.cjs.js"),Te=require("../core/Preload.cjs.js"),ge=require("../core/BakeShadows.cjs.js"),ve=require("../core/meshBounds.cjs.js"),Le=require("../core/AdaptiveDpr.cjs.js"),Ae=require("../core/AdaptiveEvents.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("react-dom"),require("three"),require("@react-three/fiber"),require("zustand"),require("react-merge-refs"),require("@react-spring/three"),require("@use-gesture/react"),require("three-stdlib"),require("zustand/shallow"),require("troika-three-text"),require("suspend-react"),require("lodash.omit"),require("lodash.pick"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/Position.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.Select=c.Select,exports.useSelect=c.useSelect,exports.Billboard=u.Billboard,exports.QuadraticBezierLine=a.QuadraticBezierLine,exports.CubicBezierLine=j.CubicBezierLine,exports.Line=n.Line,exports.PositionalAudio=p.PositionalAudio,exports.Text=l.Text,exports.Effects=x.Effects,exports.isWebGL2Available=x.isWebGL2Available,exports.GradientTexture=q.GradientTexture,exports.Image=d.Image,exports.Edges=C.Edges,exports.OrthographicCamera=h.OrthographicCamera,exports.PerspectiveCamera=m.PerspectiveCamera,exports.CubeCamera=S.CubeCamera,exports.DeviceOrientationControls=B.DeviceOrientationControls,exports.FlyControls=P.FlyControls,exports.MapControls=b.MapControls,exports.OrbitControls=M.OrbitControls,exports.TrackballControls=f.TrackballControls,exports.ArcballControls=T.ArcballControls,exports.TransformControls=g.TransformControls,exports.PointerLockControls=v.PointerLockControls,exports.FirstPersonControls=L.FirstPersonControls,exports.GizmoHelper=A.GizmoHelper,exports.useGizmoContext=A.useGizmoContext,exports.GizmoViewcube=G.GizmoViewcube,exports.GizmoViewport=k.GizmoViewport,exports.useCubeTexture=D.useCubeTexture,exports.useFBX=F.useFBX,exports.useGLTF=w.useGLTF,exports.useProgress=z.useProgress,exports.IsObject=y.IsObject,exports.useTexture=y.useTexture,exports.useKTX2=I.useKTX2,exports.Stats=O.Stats,exports.useDepthBuffer=E.useDepthBuffer,exports.useAspect=R.useAspect,exports.useCamera=H.useCamera,exports.useDetectGPU=V.useDetectGPU,exports.useHelper=Q.useHelper,exports.useBVH=X.useBVH,exports.useContextBridge=K.useContextBridge,exports.useAnimations=W.useAnimations,exports.useFBO=N.useFBO,exports.useIntersect=U.useIntersect,exports.CurveModifier=_.CurveModifier,exports.MeshDistortMaterial=J.MeshDistortMaterial,exports.MeshWobbleMaterial=Y.MeshWobbleMaterial,exports.MeshReflectorMaterial=Z.MeshReflectorMaterial,exports.PointMaterial=$.PointMaterial,exports.PointMaterialImpl=$.PointMaterialImpl,exports.shaderMaterial=ee.shaderMaterial,exports.softShadows=re.softShadows,exports.Box=se.Box,exports.Circle=se.Circle,exports.Cone=se.Cone,exports.Cylinder=se.Cylinder,exports.Dodecahedron=se.Dodecahedron,exports.Extrude=se.Extrude,exports.Icosahedron=se.Icosahedron,exports.Lathe=se.Lathe,exports.Octahedron=se.Octahedron,exports.Plane=se.Plane,exports.Polyhedron=se.Polyhedron,exports.Ring=se.Ring,exports.Sphere=se.Sphere,exports.Tetrahedron=se.Tetrahedron,exports.Torus=se.Torus,exports.TorusKnot=se.TorusKnot,exports.Tube=se.Tube,exports.RoundedBox=oe.RoundedBox,exports.ScreenQuad=te.ScreenQuad,exports.Center=ie.Center,exports.Bounds=ce.Bounds,exports.useBounds=ce.useBounds,exports.CameraShake=ue.CameraShake,exports.Float=ae.Float,exports.Stage=je.Stage,exports.Backdrop=ne.Backdrop,exports.Shadow=pe.Shadow,exports.ContactShadows=le.ContactShadows,exports.Reflector=xe.Reflector,exports.SpotLight=qe.SpotLight,exports.Environment=de.Environment,exports.Sky=Ce.Sky,exports.calcPosFromAngles=Ce.calcPosFromAngles,exports.Stars=he.Stars,exports.Cloud=me.Cloud,exports.useMatcapTexture=Se.useMatcapTexture,exports.useNormalTexture=Be.useNormalTexture,exports.Point=Pe.Point,exports.Points=Pe.Points,exports.PointsBuffer=Pe.PointsBuffer,exports.Instance=be.Instance,exports.Instances=be.Instances,exports.Merged=be.Merged,exports.Segment=Me.Segment,exports.Segments=Me.Segments,exports.Detailed=fe.Detailed,exports.Preload=Te.Preload,exports.BakeShadows=ge.BakeShadows,exports.meshBounds=ve.meshBounds,exports.AdaptiveDpr=Le.AdaptiveDpr,exports.AdaptiveEvents=Ae.AdaptiveEvents;
|
package/web/index.js
CHANGED
|
@@ -15,8 +15,6 @@ export { Effects, isWebGL2Available } from '../core/Effects.js';
|
|
|
15
15
|
export { GradientTexture } from '../core/GradientTexture.js';
|
|
16
16
|
export { Image } from '../core/Image.js';
|
|
17
17
|
export { Edges } from '../core/Edges.js';
|
|
18
|
-
export { Trail, useTrail } from '../core/Trail.js';
|
|
19
|
-
export { Clone } from '../core/Clone.js';
|
|
20
18
|
export { OrthographicCamera } from '../core/OrthographicCamera.js';
|
|
21
19
|
export { PerspectiveCamera } from '../core/PerspectiveCamera.js';
|
|
22
20
|
export { CubeCamera } from '../core/CubeCamera.js';
|
|
@@ -49,7 +47,6 @@ export { useContextBridge } from '../core/useContextBridge.js';
|
|
|
49
47
|
export { useAnimations } from '../core/useAnimations.js';
|
|
50
48
|
export { useFBO } from '../core/useFBO.js';
|
|
51
49
|
export { useIntersect } from '../core/useIntersect.js';
|
|
52
|
-
export { useBoxProjectedEnv } from '../core/useBoxProjectedEnv.js';
|
|
53
50
|
export { CurveModifier } from '../core/CurveModifier.js';
|
|
54
51
|
export { MeshDistortMaterial } from '../core/MeshDistortMaterial.js';
|
|
55
52
|
export { MeshWobbleMaterial } from '../core/MeshWobbleMaterial.js';
|
|
@@ -70,8 +67,7 @@ export { Shadow } from '../core/Shadow.js';
|
|
|
70
67
|
export { ContactShadows } from '../core/ContactShadows.js';
|
|
71
68
|
export { Reflector } from '../core/Reflector.js';
|
|
72
69
|
export { SpotLight } from '../core/SpotLight.js';
|
|
73
|
-
export { Environment
|
|
74
|
-
export { Lightformer } from '../core/Lightformer.js';
|
|
70
|
+
export { Environment } from '../core/Environment.js';
|
|
75
71
|
export { Sky, calcPosFromAngles } from '../core/Sky.js';
|
|
76
72
|
export { Stars } from '../core/Stars.js';
|
|
77
73
|
export { Cloud } from '../core/Cloud.js';
|
|
@@ -99,9 +95,8 @@ import 'three-stdlib';
|
|
|
99
95
|
import 'zustand/shallow';
|
|
100
96
|
import 'troika-three-text';
|
|
101
97
|
import 'suspend-react';
|
|
102
|
-
import 'meshline';
|
|
103
|
-
import 'lodash.pick';
|
|
104
98
|
import 'lodash.omit';
|
|
99
|
+
import 'lodash.pick';
|
|
105
100
|
import 'stats.js';
|
|
106
101
|
import '../helpers/useEffectfulState.js';
|
|
107
102
|
import 'detect-gpu';
|
package/core/Clone.cjs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("lodash.pick");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function n(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)}var o=a(e),c=n(t),i=a(r);function l(e,{keys:t=["near","far","color","distance","decay","penumbra","angle","intensity","skeleton","visible","castShadow","receiveShadow","morphTargetDictionary","morphTargetInfluences","name","geometry","material","position","rotation","scale","up","userData"],deep:r,inject:a,castShadow:n,receiveShadow:o}){let l=i.default(e,t);return r&&(l.geometry&&"materialsOnly"!==r&&(l.geometry=l.geometry.clone()),l.material&&"geometriesOnly"!==r&&(l.material=l.material.clone())),a&&(l="function"==typeof a?{...l,children:a(e)}:c.isValidElement(a)?{...l,children:a}:{...l,...a}),"Mesh"===e.type&&(n&&(l.castShadow=!0),o&&(l.receiveShadow=!0)),l}const u=c.forwardRef((({object:e,children:t,deep:r,castShadow:a,receiveShadow:n,inject:i,keys:d,...s},f)=>{const p={keys:d,deep:r,inject:i,castShadow:a,receiveShadow:n};if(Array.isArray(e))return c.createElement("group",o.default({},s,{ref:f}),e.map((e=>c.createElement(u,o.default({key:e.uuid,object:e},p)))),t);const y=l(e,p),m=e.type[0].toLowerCase()+e.type.slice(1);return c.createElement(m,o.default({},y,s,{ref:f}),(null==e?void 0:e.children).map((e=>{let t={},r=e.type[0].toLowerCase()+e.type.slice(1);return"group"===r||"object3D"===r?(r=u,t={object:e,...p}):t=l(e,p),c.createElement(r,o.default({key:e.uuid},t))})),t)}));exports.Clone=u;
|
package/core/Clone.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { MeshProps } from '@react-three/fiber';
|
|
3
|
-
export declare const Clone: React.ForwardRefExoticComponent<Pick<Omit<import("@react-three/fiber").GroupProps, "children"> & {
|
|
4
|
-
object: THREE.Object3D | THREE.Object3D[];
|
|
5
|
-
children?: React.ReactNode;
|
|
6
|
-
deep?: boolean | "materialsOnly" | "geometriesOnly" | undefined;
|
|
7
|
-
keys?: string[] | undefined;
|
|
8
|
-
inject?: React.ReactNode | MeshProps | ((object: THREE.Object3D) => React.ReactNode);
|
|
9
|
-
castShadow?: boolean | undefined;
|
|
10
|
-
receiveShadow?: boolean | undefined;
|
|
11
|
-
}, "object" | "visible" | "attach" | "attachArray" | "attachObject" | "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" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "keys" | "deep" | "inject"> & React.RefAttributes<import("three").Group>>;
|
package/core/Clone.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import pick from 'lodash.pick';
|
|
4
|
-
|
|
5
|
-
function createSpread(child, {
|
|
6
|
-
keys = ['near', 'far', 'color', 'distance', 'decay', 'penumbra', 'angle', 'intensity', 'skeleton', 'visible', 'castShadow', 'receiveShadow', 'morphTargetDictionary', 'morphTargetInfluences', 'name', 'geometry', 'material', 'position', 'rotation', 'scale', 'up', 'userData'],
|
|
7
|
-
deep,
|
|
8
|
-
inject,
|
|
9
|
-
castShadow,
|
|
10
|
-
receiveShadow
|
|
11
|
-
}) {
|
|
12
|
-
let spread = pick(child, keys);
|
|
13
|
-
|
|
14
|
-
if (deep) {
|
|
15
|
-
if (spread.geometry && deep !== 'materialsOnly') spread.geometry = spread.geometry.clone();
|
|
16
|
-
if (spread.material && deep !== 'geometriesOnly') spread.material = spread.material.clone();
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
if (inject) {
|
|
20
|
-
if (typeof inject === 'function') spread = { ...spread,
|
|
21
|
-
children: inject(child)
|
|
22
|
-
};else if ( /*#__PURE__*/React.isValidElement(inject)) spread = { ...spread,
|
|
23
|
-
children: inject
|
|
24
|
-
};else spread = { ...spread,
|
|
25
|
-
...inject
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
if (child.type === 'Mesh') {
|
|
30
|
-
if (castShadow) spread.castShadow = true;
|
|
31
|
-
if (receiveShadow) spread.receiveShadow = true;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return spread;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const Clone = /*#__PURE__*/React.forwardRef(({
|
|
38
|
-
object,
|
|
39
|
-
children,
|
|
40
|
-
deep,
|
|
41
|
-
castShadow,
|
|
42
|
-
receiveShadow,
|
|
43
|
-
inject,
|
|
44
|
-
keys,
|
|
45
|
-
...props
|
|
46
|
-
}, forwardRef) => {
|
|
47
|
-
const config = {
|
|
48
|
-
keys,
|
|
49
|
-
deep,
|
|
50
|
-
inject,
|
|
51
|
-
castShadow,
|
|
52
|
-
receiveShadow
|
|
53
|
-
}; // Deal with arrayed clones
|
|
54
|
-
|
|
55
|
-
if (Array.isArray(object)) {
|
|
56
|
-
return /*#__PURE__*/React.createElement("group", _extends({}, props, {
|
|
57
|
-
ref: forwardRef
|
|
58
|
-
}), object.map(o => /*#__PURE__*/React.createElement(Clone, _extends({
|
|
59
|
-
key: o.uuid,
|
|
60
|
-
object: o
|
|
61
|
-
}, config))), children);
|
|
62
|
-
} // Singleton clones
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const spread = createSpread(object, config);
|
|
66
|
-
const Element = object.type[0].toLowerCase() + object.type.slice(1);
|
|
67
|
-
return /*#__PURE__*/React.createElement(Element, _extends({}, spread, props, {
|
|
68
|
-
ref: forwardRef
|
|
69
|
-
}), (object == null ? void 0 : object.children).map(child => {
|
|
70
|
-
let spread = {};
|
|
71
|
-
let Element = child.type[0].toLowerCase() + child.type.slice(1);
|
|
72
|
-
|
|
73
|
-
if (Element === 'group' || Element === 'object3D') {
|
|
74
|
-
Element = Clone;
|
|
75
|
-
spread = {
|
|
76
|
-
object: child,
|
|
77
|
-
...config
|
|
78
|
-
};
|
|
79
|
-
} else {
|
|
80
|
-
spread = createSpread(child, config);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
return /*#__PURE__*/React.createElement(Element, _extends({
|
|
84
|
-
key: child.uuid
|
|
85
|
-
}, spread));
|
|
86
|
-
}), children);
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
export { Clone };
|
package/core/Lightformer.cjs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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;
|
package/core/Lightformer.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
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.Node<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" | "attachArray" | "attachObject" | "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>>;
|