@react-three/drei 9.99.1 → 9.99.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/core/Detailed.cjs.js +1 -1
- package/core/Detailed.js +2 -2
- package/core/Effects.cjs.js +1 -1
- package/core/Effects.js +3 -3
- package/core/Float.cjs.js +1 -1
- package/core/Float.js +2 -2
- package/core/GizmoHelper.cjs.js +1 -1
- package/core/GizmoViewcube.cjs.js +1 -1
- package/core/GizmoViewport.cjs.js +1 -1
- package/core/Grid.cjs.js +1 -1
- package/core/Grid.js +2 -2
- package/core/Instances.cjs.js +1 -1
- package/core/Instances.js +4 -3
- package/core/Lightformer.cjs.js +1 -1
- package/core/Lightformer.js +2 -2
- package/core/MarchingCubes.cjs.js +1 -1
- package/core/MarchingCubes.js +8 -6
- package/core/MeshReflectorMaterial.cjs.js +1 -1
- package/core/MeshReflectorMaterial.js +2 -2
- package/core/OrthographicCamera.cjs.js +1 -1
- package/core/OrthographicCamera.js +2 -2
- package/core/PerspectiveCamera.cjs.js +1 -1
- package/core/PerspectiveCamera.js +2 -2
- package/core/Points.cjs.js +1 -1
- package/core/Points.js +7 -5
- package/core/PositionalAudio.cjs.js +1 -1
- package/core/PositionalAudio.js +3 -3
- package/core/QuadraticBezierLine.cjs.js +1 -1
- package/core/QuadraticBezierLine.js +2 -2
- package/core/Reflector.cjs.js +1 -1
- package/core/Reflector.js +2 -2
- package/core/ScreenSizer.cjs.js +1 -1
- package/core/ScreenSizer.js +2 -2
- package/core/ScreenSpace.cjs.js +1 -1
- package/core/ScreenSpace.js +2 -2
- package/core/Segments.cjs.js +1 -1
- package/core/Segments.js +2 -2
- package/core/SpotLight.cjs.js +1 -1
- package/core/SpotLight.js +2 -2
- package/core/SpriteAnimator.cjs.js +1 -1
- package/core/index.cjs.js +1 -1
- package/core/index.js +0 -1
- package/index.cjs.js +1 -1
- package/native/index.cjs.js +1 -1
- package/native/index.js +0 -1
- package/package.json +1 -2
- package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
- package/web/ScrollControls.cjs.js +1 -1
- package/web/ScrollControls.js +4 -3
- package/web/index.cjs.js +1 -1
- package/web/index.js +0 -1
package/core/Detailed.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber")
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=n(e),a=u(r);const s=a.forwardRef((({children:e,hysteresis:r=0,distances:n,...u},s)=>{const l=a.useRef(null);return a.useImperativeHandle(s,(()=>l.current),[]),a.useLayoutEffect((()=>{const{current:e}=l;e.levels.length=0,e.children.forEach(((t,u)=>e.levels.push({object:t,hysteresis:r,distance:n[u]})))})),t.useFrame((e=>{var r;return null==(r=l.current)?void 0:r.update(e.camera)})),a.createElement("lOD",c.default({ref:l},u),e)}));exports.Detailed=s;
|
package/core/Detailed.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useFrame } from '@react-three/fiber';
|
|
4
|
-
import mergeRefs from 'react-merge-refs';
|
|
5
4
|
|
|
6
5
|
const Detailed = /* @__PURE__ */React.forwardRef(({
|
|
7
6
|
children,
|
|
@@ -10,6 +9,7 @@ const Detailed = /* @__PURE__ */React.forwardRef(({
|
|
|
10
9
|
...props
|
|
11
10
|
}, ref) => {
|
|
12
11
|
const lodRef = React.useRef(null);
|
|
12
|
+
React.useImperativeHandle(ref, () => lodRef.current, []);
|
|
13
13
|
React.useLayoutEffect(() => {
|
|
14
14
|
const {
|
|
15
15
|
current: lod
|
|
@@ -26,7 +26,7 @@ const Detailed = /* @__PURE__ */React.forwardRef(({
|
|
|
26
26
|
return (_lodRef$current = lodRef.current) == null ? void 0 : _lodRef$current.update(state.camera);
|
|
27
27
|
});
|
|
28
28
|
return /*#__PURE__*/React.createElement("lOD", _extends({
|
|
29
|
-
ref:
|
|
29
|
+
ref: lodRef
|
|
30
30
|
}, props), children);
|
|
31
31
|
});
|
|
32
32
|
|
package/core/Effects.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("@react-three/fiber"),a=require("three-stdlib");function s(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 n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var u=s(e),l=c(r);const o=l.forwardRef((({children:e,multisamping:r=8,renderIndex:s=1,disableRender:c,disableGamma:o,disableRenderPass:i,depthBuffer:d=!0,stencilBuffer:f=!1,anisotropy:p=1,encoding:h,type:m,...g},b)=>{l.useMemo((()=>n.extend({EffectComposer:a.EffectComposer,RenderPass:a.RenderPass,ShaderPass:a.ShaderPass})),[]);const y=l.useRef(null);l.useImperativeHandle(b,(()=>y.current),[]);const{scene:v,camera:x,gl:E,size:P,viewport:R}=n.useThree(),[w]=l.useState((()=>{const e=new t.WebGLRenderTarget(P.width,P.height,{type:m||t.HalfFloatType,format:t.RGBAFormat,depthBuffer:d,stencilBuffer:f,anisotropy:p});return m===t.UnsignedByteType&&null!=h&&("colorSpace"in e?e.texture.colorSpace=h:e.texture.encoding=h),e.samples=r,e}));l.useEffect((()=>{var e,r;null==(e=y.current)||e.setSize(P.width,P.height),null==(r=y.current)||r.setPixelRatio(R.dpr)}),[E,P,R.dpr]),n.useFrame((()=>{var e;c||null==(e=y.current)||e.render()}),s);const j=[];return i||j.push(l.createElement("renderPass",{key:"renderpass",attach:`passes-${j.length}`,args:[v,x]})),o||j.push(l.createElement("shaderPass",{attach:`passes-${j.length}`,key:"gammapass",args:[a.GammaCorrectionShader]})),l.Children.forEach(e,(e=>{e&&j.push(l.cloneElement(e,{key:j.length,attach:`passes-${j.length}`}))})),l.createElement("effectComposer",u.default({ref:y,args:[E,w]},g),j)}));exports.Effects=o,exports.isWebGL2Available=()=>{try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(e){return!1}};
|
package/core/Effects.js
CHANGED
|
@@ -3,7 +3,6 @@ import * as React from 'react';
|
|
|
3
3
|
import { WebGLRenderTarget, HalfFloatType, RGBAFormat, UnsignedByteType } from 'three';
|
|
4
4
|
import { extend, useThree, useFrame } from '@react-three/fiber';
|
|
5
5
|
import { EffectComposer, RenderPass, ShaderPass, GammaCorrectionShader } from 'three-stdlib';
|
|
6
|
-
import mergeRefs from 'react-merge-refs';
|
|
7
6
|
|
|
8
7
|
const isWebGL2Available = () => {
|
|
9
8
|
try {
|
|
@@ -32,7 +31,8 @@ const Effects = /* @__PURE__ */React.forwardRef(({
|
|
|
32
31
|
RenderPass,
|
|
33
32
|
ShaderPass
|
|
34
33
|
}), []);
|
|
35
|
-
const composer = React.useRef();
|
|
34
|
+
const composer = React.useRef(null);
|
|
35
|
+
React.useImperativeHandle(ref, () => composer.current, []);
|
|
36
36
|
const {
|
|
37
37
|
scene,
|
|
38
38
|
camera,
|
|
@@ -83,7 +83,7 @@ const Effects = /* @__PURE__ */React.forwardRef(({
|
|
|
83
83
|
}));
|
|
84
84
|
});
|
|
85
85
|
return /*#__PURE__*/React.createElement("effectComposer", _extends({
|
|
86
|
-
ref:
|
|
86
|
+
ref: composer,
|
|
87
87
|
args: [gl, target]
|
|
88
88
|
}, props), passes);
|
|
89
89
|
});
|
package/core/Float.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber"),r=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber"),r=require("three");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 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=n(e),o=n(r);const u=a.forwardRef((({children:e,enabled:r=!0,speed:n=1,rotationIntensity:u=1,floatIntensity:i=1,floatingRange:c=[-.1,.1],...l},s)=>{const f=a.useRef(null);a.useImperativeHandle(s,(()=>f.current),[]);const d=a.useRef(1e4*Math.random());return t.useFrame((e=>{var t,a;if(!r||0===n)return;const l=d.current+e.clock.getElapsedTime();f.current.rotation.x=Math.cos(l/4*n)/8*u,f.current.rotation.y=Math.sin(l/4*n)/8*u,f.current.rotation.z=Math.sin(l/4*n)/20*u;let s=Math.sin(l/4*n)/10;s=o.MathUtils.mapLinear(s,-.1,.1,null!==(t=null==c?void 0:c[0])&&void 0!==t?t:-.1,null!==(a=null==c?void 0:c[1])&&void 0!==a?a:.1),f.current.position.y=s*i,f.current.updateMatrix()})),a.createElement("group",l,a.createElement("group",{ref:f,matrixAutoUpdate:!1},e))}));exports.Float=u;
|
package/core/Float.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { useFrame } from '@react-three/fiber';
|
|
3
|
-
import mergeRefs from 'react-merge-refs';
|
|
4
3
|
import * as THREE from 'three';
|
|
5
4
|
|
|
6
5
|
const Float = /* @__PURE__ */React.forwardRef(({
|
|
@@ -13,6 +12,7 @@ const Float = /* @__PURE__ */React.forwardRef(({
|
|
|
13
12
|
...props
|
|
14
13
|
}, forwardRef) => {
|
|
15
14
|
const ref = React.useRef(null);
|
|
15
|
+
React.useImperativeHandle(forwardRef, () => ref.current, []);
|
|
16
16
|
const offset = React.useRef(Math.random() * 10000);
|
|
17
17
|
useFrame(state => {
|
|
18
18
|
var _floatingRange$, _floatingRange$2;
|
|
@@ -27,7 +27,7 @@ const Float = /* @__PURE__ */React.forwardRef(({
|
|
|
27
27
|
ref.current.updateMatrix();
|
|
28
28
|
});
|
|
29
29
|
return /*#__PURE__*/React.createElement("group", props, /*#__PURE__*/React.createElement("group", {
|
|
30
|
-
ref:
|
|
30
|
+
ref: ref,
|
|
31
31
|
matrixAutoUpdate: false
|
|
32
32
|
}, children));
|
|
33
33
|
});
|
package/core/GizmoHelper.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber"),t=require("three"),n=require("./OrthographicCamera.cjs.js"),u=require("./Hud.cjs.js");function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("@babel/runtime/helpers/extends"),require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber"),t=require("three"),n=require("./OrthographicCamera.cjs.js"),u=require("./Hud.cjs.js");function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("@babel/runtime/helpers/extends"),require("./useFBO.cjs.js");var i=o(e);const a=i.createContext({}),c=2*Math.PI,s=new t.Object3D,l=new t.Matrix4,[p,d]=[new t.Quaternion,new t.Quaternion],f=new t.Vector3,h=new t.Vector3;exports.GizmoHelper=({alignment:e="bottom-right",margin:o=[80,80],renderPriority:m=1,onUpdate:y,onTarget:g,children:b})=>{const j=r.useThree((e=>e.size)),w=r.useThree((e=>e.camera)),v=r.useThree((e=>e.controls)),q=r.useThree((e=>e.invalidate)),O=i.useRef(null),x=i.useRef(null),P=i.useRef(!1),T=i.useRef(0),C=i.useRef(new t.Vector3(0,0,0)),R=i.useRef(new t.Vector3(0,0,0));i.useEffect((()=>{R.current.copy(w.up)}),[w]);const E=i.useCallback((e=>{P.current=!0,(v||g)&&(C.current=(null==v?void 0:v.target)||(null==g?void 0:g())),T.current=w.position.distanceTo(f),p.copy(w.quaternion),h.copy(e).multiplyScalar(T.current).add(f),s.lookAt(h),s.up.copy(w.up),d.copy(s.quaternion),q()}),[v,w,g,q]);r.useFrame(((e,r)=>{if(x.current&&O.current){var t;if(P.current)if(p.angleTo(d)<.01)P.current=!1,"minPolarAngle"in v&&w.up.copy(R.current);else{const e=r*c;p.rotateTowards(d,e),w.position.set(0,0,1).applyQuaternion(p).multiplyScalar(T.current).add(C.current),w.up.set(0,1,0).applyQuaternion(p).normalize(),w.quaternion.copy(p),y?y():v&&v.update(),q()}l.copy(w.matrix).invert(),null==(t=O.current)||t.quaternion.setFromRotationMatrix(l)}}));const M=i.useMemo((()=>({tweenCamera:E})),[E]),[z,k]=o,Q=e.endsWith("-center")?0:e.endsWith("-left")?-j.width/2+z:j.width/2-z,V=e.startsWith("center-")?0:e.startsWith("top-")?j.height/2-k:-j.height/2+k;return i.createElement(u.Hud,{renderPriority:m},i.createElement(a.Provider,{value:M},i.createElement(n.OrthographicCamera,{makeDefault:!0,ref:x,position:[0,0,200]}),i.createElement("group",{ref:O,position:[Q,V,0]},b)))},exports.useGizmoContext=()=>i.useContext(a);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),o=require("./GizmoHelper.cjs.js"),a=require("three");function n(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 o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("./OrthographicCamera.cjs.js"),require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),o=require("./GizmoHelper.cjs.js"),a=require("three");function n(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 o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("./OrthographicCamera.cjs.js"),require("./useFBO.cjs.js"),require("./Hud.cjs.js");var l=n(e),s=i(t);const c="#f0f0f0",u="#999",p="black",m="black",f=["Right","Left","Top","Bottom","Front","Back"],h=e=>new a.Vector3(...e).multiplyScalar(.38),d=[[1,1,1],[1,1,-1],[1,-1,1],[1,-1,-1],[-1,1,1],[-1,1,-1],[-1,-1,1],[-1,-1,-1]].map(h),y=[.25,.25,.25],g=[[1,1,0],[1,0,1],[1,0,-1],[1,-1,0],[0,1,1],[0,1,-1],[0,-1,1],[0,-1,-1],[-1,1,0],[-1,0,1],[-1,0,-1],[-1,-1,0]].map(h),b=g.map((e=>e.toArray().map((e=>0==e?.5:.25)))),x=({hover:e,index:t,font:o="20px Inter var, Arial, sans-serif",faces:n=f,color:i=c,hoverColor:l=u,textColor:h=p,strokeColor:d=m,opacity:y=1})=>{const g=r.useThree((e=>e.gl)),b=s.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const r=e.getContext("2d");return r.fillStyle=i,r.fillRect(0,0,e.width,e.height),r.strokeStyle=d,r.strokeRect(0,0,e.width,e.height),r.font=o,r.textAlign="center",r.fillStyle=h,r.fillText(n[t].toUpperCase(),64,76),new a.CanvasTexture(e)}),[t,n,o,i,h,d]);return s.createElement("meshBasicMaterial",{map:b,"map-anisotropy":g.capabilities.getMaxAnisotropy()||1,attach:`material-${t}`,color:e?l:"white",transparent:!0,opacity:y})},C=e=>{const{tweenCamera:t}=o.useGizmoContext(),[r,a]=s.useState(null);return s.createElement("mesh",{onPointerOut:e=>{e.stopPropagation(),a(null)},onPointerMove:e=>{e.stopPropagation(),a(Math.floor(e.faceIndex/2))},onClick:e.onClick||(e=>{e.stopPropagation(),t(e.face.normal)})},[...Array(6)].map(((t,o)=>s.createElement(x,l.default({key:o,index:o,hover:r===o},e)))),s.createElement("boxGeometry",null))},j=({onClick:e,dimensions:t,position:r,hoverColor:a=u})=>{const{tweenCamera:n}=o.useGizmoContext(),[i,l]=s.useState(!1);return s.createElement("mesh",{scale:1.01,position:r,onPointerOver:e=>{e.stopPropagation(),l(!0)},onPointerOut:e=>{e.stopPropagation(),l(!1)},onClick:e||(e=>{e.stopPropagation(),n(r)})},s.createElement("meshBasicMaterial",{color:i?a:"white",transparent:!0,opacity:.6,visible:i}),s.createElement("boxGeometry",{args:t}))};exports.GizmoViewcube=e=>s.createElement("group",{scale:[60,60,60]},s.createElement(C,e),g.map(((t,r)=>s.createElement(j,l.default({key:r,position:t,dimensions:b[r]},e)))),d.map(((t,r)=>s.createElement(j,l.default({key:r,position:t,dimensions:y},e)))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),a=require("three"),o=require("./GizmoHelper.cjs.js");function l(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)}require("./OrthographicCamera.cjs.js"),require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),a=require("three"),o=require("./GizmoHelper.cjs.js");function l(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)}require("./OrthographicCamera.cjs.js"),require("./useFBO.cjs.js"),require("./Hud.cjs.js");var i=l(e),c=n(t);function s({scale:e=[.8,.05,.05],color:t,rotation:r}){return c.createElement("group",{rotation:r},c.createElement("mesh",{position:[.4,0,0]},c.createElement("boxGeometry",{args:e}),c.createElement("meshBasicMaterial",{color:t,toneMapped:!1})))}function u({onClick:e,font:t,disabled:o,arcStyle:l,label:n,labelColor:s,axisHeadScale:u=1,...p}){const f=r.useThree((e=>e.gl)),d=c.useMemo((()=>{const e=document.createElement("canvas");e.width=64,e.height=64;const r=e.getContext("2d");return r.beginPath(),r.arc(32,32,16,0,2*Math.PI),r.closePath(),r.fillStyle=l,r.fill(),n&&(r.font=t,r.textAlign="center",r.fillStyle=s,r.fillText(n,32,41)),new a.CanvasTexture(e)}),[l,n,s,t]),[m,b]=c.useState(!1),h=(n?1:.75)*(m?1.2:1)*u;return c.createElement("sprite",i.default({scale:h,onPointerOver:o?void 0:e=>{e.stopPropagation(),b(!0)},onPointerOut:o?void 0:e||(e=>{e.stopPropagation(),b(!1)})},p),c.createElement("spriteMaterial",{map:d,"map-anisotropy":f.capabilities.getMaxAnisotropy()||1,alphaTest:.3,opacity:n?1:.75,toneMapped:!1}))}exports.GizmoViewport=({hideNegativeAxes:e,hideAxisHeads:t,disabled:r,font:a="18px Inter var, Arial, sans-serif",axisColors:l=["#ff2060","#20df80","#2080ff"],axisHeadScale:n=1,axisScale:p,labels:f=["X","Y","Z"],labelColor:d="#000",onClick:m,...b})=>{const[h,E,g]=l,{tweenCamera:x}=o.useGizmoContext(),y={font:a,disabled:r,labelColor:d,onClick:m,axisHeadScale:n,onPointerDown:r?void 0:e=>{x(e.object.position),e.stopPropagation()}};return c.createElement("group",i.default({scale:40},b),c.createElement(s,{color:h,rotation:[0,0,0],scale:p}),c.createElement(s,{color:E,rotation:[0,0,Math.PI/2],scale:p}),c.createElement(s,{color:g,rotation:[0,-Math.PI/2,0],scale:p}),!t&&c.createElement(c.Fragment,null,c.createElement(u,i.default({arcStyle:h,position:[1,0,0],label:f[0]},y)),c.createElement(u,i.default({arcStyle:E,position:[0,1,0],label:f[1]},y)),c.createElement(u,i.default({arcStyle:g,position:[0,0,1],label:f[2]},y)),!e&&c.createElement(c.Fragment,null,c.createElement(u,i.default({arcStyle:h,position:[-1,0,0]},y)),c.createElement(u,i.default({arcStyle:E,position:[0,-1,0]},y)),c.createElement(u,i.default({arcStyle:g,position:[0,0,-1]},y)))))};
|
package/core/Grid.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),n=require("react"),o=require("three"),i=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),n=require("react"),o=require("three"),i=require("@react-three/fiber"),r=require("./shaderMaterial.cjs.js"),t=require("../helpers/constants.cjs.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(o){if("default"!==o){var i=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,i.get?i:{enumerable:!0,get:function(){return e[o]}})}})),n.default=e,Object.freeze(n)}var s=l(e),c=a(n),f=a(o);const d=r.shaderMaterial({cellSize:.5,sectionSize:1,fadeDistance:100,fadeStrength:1,cellThickness:.5,sectionThickness:1,cellColor:new f.Color,sectionColor:new f.Color,infiniteGrid:!1,followCamera:!1,worldCamProjPosition:new f.Vector3,worldPlanePosition:new f.Vector3},"\n varying vec3 localPosition;\n varying vec4 worldPosition;\n\n uniform vec3 worldCamProjPosition;\n uniform vec3 worldPlanePosition;\n uniform float fadeDistance;\n uniform bool infiniteGrid;\n uniform bool followCamera;\n\n void main() {\n localPosition = position.xzy;\n if (infiniteGrid) localPosition *= 1.0 + fadeDistance;\n \n worldPosition = modelMatrix * vec4(localPosition, 1.0);\n if (followCamera) {\n worldPosition.xyz += (worldCamProjPosition - worldPlanePosition);\n localPosition = (inverse(modelMatrix) * worldPosition).xyz;\n }\n\n gl_Position = projectionMatrix * viewMatrix * worldPosition;\n }\n ",`\n varying vec3 localPosition;\n varying vec4 worldPosition;\n\n uniform vec3 worldCamProjPosition;\n uniform float cellSize;\n uniform float sectionSize;\n uniform vec3 cellColor;\n uniform vec3 sectionColor;\n uniform float fadeDistance;\n uniform float fadeStrength;\n uniform float cellThickness;\n uniform float sectionThickness;\n\n float getGrid(float size, float thickness) {\n vec2 r = localPosition.xz / size;\n vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);\n float line = min(grid.x, grid.y) + 1.0 - thickness;\n return 1.0 - min(line, 1.0);\n }\n\n void main() {\n float g1 = getGrid(cellSize, cellThickness);\n float g2 = getGrid(sectionSize, sectionThickness);\n\n float dist = distance(worldCamProjPosition, worldPosition.xyz);\n float d = 1.0 - min(dist / fadeDistance, 1.0);\n vec3 color = mix(cellColor, sectionColor, min(1.0, sectionThickness * g2));\n\n gl_FragColor = vec4(color, (g1 + g2) * pow(d, fadeStrength));\n gl_FragColor.a = mix(0.75 * gl_FragColor.a, gl_FragColor.a, g2);\n if (gl_FragColor.a <= 0.0) discard;\n\n #include <tonemapping_fragment>\n #include <${t.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }\n `),u=c.forwardRef((({args:e,cellColor:n="#000000",sectionColor:o="#2080ff",cellSize:r=.5,sectionSize:t=1,followCamera:l=!1,infiniteGrid:a=!1,fadeDistance:u=100,fadeStrength:m=1,cellThickness:g=.5,sectionThickness:P=1,side:w=f.BackSide,...v},C)=>{i.extend({GridMaterial:d});const h=c.useRef(null);c.useImperativeHandle(C,(()=>h.current),[]);const p=new f.Plane,x=new f.Vector3(0,1,0),j=new f.Vector3(0,0,0);i.useFrame((e=>{p.setFromNormalAndCoplanarPoint(x,j).applyMatrix4(h.current.matrixWorld);const n=h.current.material,o=n.uniforms.worldCamProjPosition,i=n.uniforms.worldPlanePosition;p.projectPoint(e.camera.position,o.value),i.value.set(0,0,0).applyMatrix4(h.current.matrixWorld)}));const z={cellSize:r,sectionSize:t,cellColor:n,sectionColor:o,cellThickness:g,sectionThickness:P},y={fadeDistance:u,fadeStrength:m,infiniteGrid:a,followCamera:l};return c.createElement("mesh",s.default({ref:h,frustumCulled:!1},v),c.createElement("gridMaterial",s.default({transparent:!0,"extensions-derivatives":!0,side:w},z,y)),c.createElement("planeGeometry",{args:e}))}));exports.Grid=u;
|
package/core/Grid.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import * as THREE from 'three';
|
|
4
|
-
import mergeRefs from 'react-merge-refs';
|
|
5
4
|
import { extend, useFrame } from '@react-three/fiber';
|
|
6
5
|
import { shaderMaterial } from './shaderMaterial.js';
|
|
7
6
|
import { version } from '../helpers/constants.js';
|
|
@@ -97,6 +96,7 @@ const Grid = /* @__PURE__ */React.forwardRef(({
|
|
|
97
96
|
GridMaterial
|
|
98
97
|
});
|
|
99
98
|
const ref = React.useRef(null);
|
|
99
|
+
React.useImperativeHandle(fRef, () => ref.current, []);
|
|
100
100
|
const plane = new THREE.Plane();
|
|
101
101
|
const upVector = new THREE.Vector3(0, 1, 0);
|
|
102
102
|
const zeroVector = new THREE.Vector3(0, 0, 0);
|
|
@@ -123,7 +123,7 @@ const Grid = /* @__PURE__ */React.forwardRef(({
|
|
|
123
123
|
followCamera
|
|
124
124
|
};
|
|
125
125
|
return /*#__PURE__*/React.createElement("mesh", _extends({
|
|
126
|
-
ref:
|
|
126
|
+
ref: ref,
|
|
127
127
|
frustumCulled: false
|
|
128
128
|
}, props), /*#__PURE__*/React.createElement("gridMaterial", _extends({
|
|
129
129
|
transparent: true,
|
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-
|
|
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-composer"),c=require("../helpers/deprecated.cjs.js");function s(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 o=s(e),u=i(t),l=i(r),f=s(a);const d=new u.Matrix4,m=new u.Matrix4,y=[],p=new u.Mesh;class h extends u.Group{constructor(){super(),this.color=new u.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){const r=this.instance.current;if(!r)return;if(!r.geometry||!r.material)return;p.geometry=r.geometry;const n=r.matrixWorld,a=r.userData.instances.indexOf(this.instanceKey);if(!(-1===a||a>r.count)){r.getMatrixAt(a,d),m.multiplyMatrices(n,d),p.matrixWorld=m,r.material instanceof u.Material?p.material.side=r.material.side:p.material.side=r.material[0].side,p.raycast(e,y);for(let e=0,r=y.length;e<r;e++){const r=y[e];r.instanceId=a,r.object=this,t.push(r)}y.length=0}}}const x=l.createContext(null),g=new u.Matrix4,M=new u.Matrix4,b=new u.Matrix4,w=new u.Vector3,v=new u.Quaternion,j=new u.Vector3,E=l.forwardRef((({context:e,children:t,...r},a)=>{l.useMemo((()=>n.extend({PositionMesh:h})),[]);const c=l.useRef();l.useImperativeHandle(a,(()=>c.current),[]);const{subscribe:s,getParent:i}=l.useContext(e||x);return l.useLayoutEffect((()=>s(c)),[]),l.createElement("positionMesh",o.default({instance:i(),instanceKey:c,ref:c},r),t)})),A=l.forwardRef((({children:e,range:t,limit:r=1e3,frames:a=1/0,...s},i)=>{const[{context:f,instance:d}]=l.useState((()=>{const e=l.createContext(null);return{context:e,instance:l.forwardRef(((t,r)=>l.createElement(E,o.default({context:e},t,{ref:r}))))}})),m=l.useRef(null);l.useImperativeHandle(i,(()=>m.current),[]);const[y,p]=l.useState([]),[[h,A]]=l.useState((()=>{const e=new Float32Array(16*r);for(let t=0;t<r;t++)b.identity().toArray(e,16*t);return[e,new Float32Array([...new Array(3*r)].map((()=>1)))]}));l.useEffect((()=>{m.current.instanceMatrix.needsUpdate=!0}));let O=0,P=0;n.useFrame((()=>{if(a===1/0||O<a){m.current.updateMatrix(),m.current.updateMatrixWorld(),g.copy(m.current.matrixWorld).invert(),P=Math.min(r,void 0!==t?t:r,y.length),m.current.count=P,c.setUpdateRange(m.current.instanceMatrix,{offset:0,count:16*P}),c.setUpdateRange(m.current.instanceColor,{offset:0,count:3*P});for(let e=0;e<y.length;e++){const t=y[e].current;t.matrixWorld.decompose(w,v,j),M.compose(w,v,j).premultiply(g),M.toArray(h,16*e),m.current.instanceMatrix.needsUpdate=!0,t.color.toArray(A,3*e),m.current.instanceColor.needsUpdate=!0}O++}}));const R=l.useMemo((()=>({getParent:()=>m,subscribe:e=>(p((t=>[...t,e])),()=>p((t=>t.filter((t=>t.current!==e.current)))))})),[]);return l.createElement("instancedMesh",o.default({userData:{instances:y},matrixAutoUpdate:!1,ref:m,args:[null,null,0],raycast:()=>null},s),l.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:h.length/16,array:h,itemSize:16,usage:u.DynamicDrawUsage}),l.createElement("instancedBufferAttribute",{attach:"instanceColor",count:A.length/3,array:A,itemSize:3,usage:u.DynamicDrawUsage}),"function"==typeof e?l.createElement(f.Provider,{value:R},e(d)):l.createElement(x.Provider,{value:R},e))})),O=l.forwardRef((function({meshes:e,children:t,...r},n){const a=Array.isArray(e);if(!a)for(const t of Object.keys(e))e[t].isMesh||delete e[t];return l.createElement("group",{ref:n},l.createElement(f.default,{components:(a?e:Object.values(e)).map((({geometry:e,material:t})=>l.createElement(A,o.default({key:e.uuid,geometry:e,material:t},r))))},(r=>a?t(...r):t(Object.keys(e).filter((t=>e[t].isMesh)).reduce(((e,t,n)=>({...e,[t]:r[n]})),{})))))}));exports.Instance=E,exports.Instances=A,exports.Merged=O;
|
package/core/Instances.js
CHANGED
|
@@ -2,7 +2,6 @@ import _extends from '@babel/runtime/helpers/esm/extends';
|
|
|
2
2
|
import * as THREE from 'three';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { extend, useFrame } from '@react-three/fiber';
|
|
5
|
-
import mergeRefs from 'react-merge-refs';
|
|
6
5
|
import Composer from 'react-composer';
|
|
7
6
|
import { setUpdateRange } from '../helpers/deprecated.js';
|
|
8
7
|
|
|
@@ -75,6 +74,7 @@ const Instance = /* @__PURE__ */React.forwardRef(({
|
|
|
75
74
|
PositionMesh
|
|
76
75
|
}), []);
|
|
77
76
|
const group = React.useRef();
|
|
77
|
+
React.useImperativeHandle(ref, () => group.current, []);
|
|
78
78
|
const {
|
|
79
79
|
subscribe,
|
|
80
80
|
getParent
|
|
@@ -83,7 +83,7 @@ const Instance = /* @__PURE__ */React.forwardRef(({
|
|
|
83
83
|
return /*#__PURE__*/React.createElement("positionMesh", _extends({
|
|
84
84
|
instance: getParent(),
|
|
85
85
|
instanceKey: group,
|
|
86
|
-
ref:
|
|
86
|
+
ref: group
|
|
87
87
|
}, props), children);
|
|
88
88
|
});
|
|
89
89
|
const Instances = /* @__PURE__ */React.forwardRef(({
|
|
@@ -108,6 +108,7 @@ const Instances = /* @__PURE__ */React.forwardRef(({
|
|
|
108
108
|
};
|
|
109
109
|
});
|
|
110
110
|
const parentRef = React.useRef(null);
|
|
111
|
+
React.useImperativeHandle(ref, () => parentRef.current, []);
|
|
111
112
|
const [instances, setInstances] = React.useState([]);
|
|
112
113
|
const [[matrices, colors]] = React.useState(() => {
|
|
113
114
|
const mArray = new Float32Array(limit * 16);
|
|
@@ -161,7 +162,7 @@ const Instances = /* @__PURE__ */React.forwardRef(({
|
|
|
161
162
|
instances
|
|
162
163
|
},
|
|
163
164
|
matrixAutoUpdate: false,
|
|
164
|
-
ref:
|
|
165
|
+
ref: parentRef,
|
|
165
166
|
args: [null, null, 0],
|
|
166
167
|
raycast: () => null
|
|
167
168
|
}, props), /*#__PURE__*/React.createElement("instancedBufferAttribute", {
|
package/core/Lightformer.cjs.js
CHANGED
|
@@ -1 +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")
|
|
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");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(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 c=n(e),u=l(t),i=l(a);const o=u.forwardRef((({args:e,map:t,toneMapped:a=!1,color:n="white",form:l="rect",intensity:o=1,scale:s=1,target:f,children:m,...p},d)=>{const y=u.useRef(null);return u.useImperativeHandle(d,(()=>y.current),[]),u.useLayoutEffect((()=>{m||p.material||(r.applyProps(y.current.material,{color:n}),y.current.material.color.multiplyScalar(o))}),[n,o,m,p.material]),u.useLayoutEffect((()=>{f&&y.current.lookAt(Array.isArray(f)?new i.Vector3(...f):f)}),[f]),s=Array.isArray(s)&&2===s.length?[s[0],s[1],1]:s,u.createElement("mesh",c.default({ref:y,scale:s},p),"circle"===l?u.createElement("ringGeometry",{args:[0,1,64]}):"ring"===l?u.createElement("ringGeometry",{args:[.5,1,64]}):"rect"===l?u.createElement("planeGeometry",null):u.createElement(l,{args:e}),m||(p.material?null:u.createElement("meshBasicMaterial",{toneMapped:a,map:t,side:i.DoubleSide})))}));exports.Lightformer=o;
|
package/core/Lightformer.js
CHANGED
|
@@ -2,7 +2,6 @@ import _extends from '@babel/runtime/helpers/esm/extends';
|
|
|
2
2
|
import { applyProps } from '@react-three/fiber';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
|
-
import mergeRefs from 'react-merge-refs';
|
|
6
5
|
|
|
7
6
|
const Lightformer = /* @__PURE__ */React.forwardRef(({
|
|
8
7
|
args,
|
|
@@ -18,6 +17,7 @@ const Lightformer = /* @__PURE__ */React.forwardRef(({
|
|
|
18
17
|
}, forwardRef) => {
|
|
19
18
|
// Apply emissive power
|
|
20
19
|
const ref = React.useRef(null);
|
|
20
|
+
React.useImperativeHandle(forwardRef, () => ref.current, []);
|
|
21
21
|
React.useLayoutEffect(() => {
|
|
22
22
|
if (!children && !props.material) {
|
|
23
23
|
applyProps(ref.current.material, {
|
|
@@ -35,7 +35,7 @@ const Lightformer = /* @__PURE__ */React.forwardRef(({
|
|
|
35
35
|
// Fix 2-dimensional scale
|
|
36
36
|
scale = Array.isArray(scale) && scale.length === 2 ? [scale[0], scale[1], 1] : scale;
|
|
37
37
|
return /*#__PURE__*/React.createElement("mesh", _extends({
|
|
38
|
-
ref:
|
|
38
|
+
ref: ref,
|
|
39
39
|
scale: scale
|
|
40
40
|
}, props), Form === 'circle' ? /*#__PURE__*/React.createElement("ringGeometry", {
|
|
41
41
|
args: [0, 1, 64]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("three-stdlib"),u=require("@react-three/fiber");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var o=a(e),c=l(r),s=l(t);const i=s.createContext(null),d=s.forwardRef((({resolution:e=28,maxPolyCount:r=1e4,enableUvs:t=!1,enableColors:a=!1,children:l,...c},d)=>{const f=s.useRef(null);s.useImperativeHandle(d,(()=>f.current),[]);const m=s.useMemo((()=>new n.MarchingCubes(e,null,t,a,r)),[e,r,t,a]),b=s.useMemo((()=>({getParent:()=>f})),[]);return u.useFrame((()=>{m.update(),m.reset()}),-1),s.createElement(s.Fragment,null,s.createElement("primitive",o.default({object:m,ref:f},c),s.createElement(i.Provider,{value:b},l)))})),f=s.forwardRef((({strength:e=.5,subtract:r=12,color:t,...n},a)=>{const{getParent:l}=s.useContext(i),d=s.useMemo((()=>l()),[l]),f=s.useRef(null);s.useImperativeHandle(a,(()=>f.current),[]);const m=new c.Vector3;return u.useFrame((n=>{d.current&&f.current&&(f.current.getWorldPosition(m),d.current.addBall(.5+.5*m.x,.5+.5*m.y,.5+.5*m.z,e,r,t))})),s.createElement("group",o.default({ref:f},n))})),m=s.forwardRef((({planeType:e="x",strength:r=.5,subtract:t=12,...n},a)=>{const{getParent:l}=s.useContext(i),c=s.useMemo((()=>l()),[l]),d=s.useRef(null);s.useImperativeHandle(a,(()=>d.current),[]);const f=s.useMemo((()=>"x"===e?"addPlaneX":"y"===e?"addPlaneY":"addPlaneZ"),[e]);return u.useFrame((()=>{c.current&&d.current&&c.current[f](r,t)})),s.createElement("group",o.default({ref:d},n))}));exports.MarchingCube=f,exports.MarchingCubes=d,exports.MarchingPlane=m;
|
package/core/MarchingCubes.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
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 mergeRefs from 'react-merge-refs';
|
|
5
4
|
import { MarchingCubes as MarchingCubes$1 } from 'three-stdlib';
|
|
6
5
|
import { useFrame } from '@react-three/fiber';
|
|
7
6
|
|
|
@@ -15,6 +14,7 @@ const MarchingCubes = /* @__PURE__ */React.forwardRef(({
|
|
|
15
14
|
...props
|
|
16
15
|
}, ref) => {
|
|
17
16
|
const marchingCubesRef = React.useRef(null);
|
|
17
|
+
React.useImperativeHandle(ref, () => marchingCubesRef.current, []);
|
|
18
18
|
const marchingCubes = React.useMemo(() => new MarchingCubes$1(resolution, null, enableUvs, enableColors, maxPolyCount), [resolution, maxPolyCount, enableUvs, enableColors]);
|
|
19
19
|
const api = React.useMemo(() => ({
|
|
20
20
|
getParent: () => marchingCubesRef
|
|
@@ -26,7 +26,7 @@ const MarchingCubes = /* @__PURE__ */React.forwardRef(({
|
|
|
26
26
|
|
|
27
27
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("primitive", _extends({
|
|
28
28
|
object: marchingCubes,
|
|
29
|
-
ref:
|
|
29
|
+
ref: marchingCubesRef
|
|
30
30
|
}, props), /*#__PURE__*/React.createElement(globalContext.Provider, {
|
|
31
31
|
value: api
|
|
32
32
|
}, children)));
|
|
@@ -41,7 +41,8 @@ const MarchingCube = /* @__PURE__ */React.forwardRef(({
|
|
|
41
41
|
getParent
|
|
42
42
|
} = React.useContext(globalContext);
|
|
43
43
|
const parentRef = React.useMemo(() => getParent(), [getParent]);
|
|
44
|
-
const cubeRef = React.useRef();
|
|
44
|
+
const cubeRef = React.useRef(null);
|
|
45
|
+
React.useImperativeHandle(ref, () => cubeRef.current, []);
|
|
45
46
|
const vec = new THREE.Vector3();
|
|
46
47
|
useFrame(state => {
|
|
47
48
|
if (!parentRef.current || !cubeRef.current) return;
|
|
@@ -49,7 +50,7 @@ const MarchingCube = /* @__PURE__ */React.forwardRef(({
|
|
|
49
50
|
parentRef.current.addBall(0.5 + vec.x * 0.5, 0.5 + vec.y * 0.5, 0.5 + vec.z * 0.5, strength, subtract, color);
|
|
50
51
|
});
|
|
51
52
|
return /*#__PURE__*/React.createElement("group", _extends({
|
|
52
|
-
ref:
|
|
53
|
+
ref: cubeRef
|
|
53
54
|
}, props));
|
|
54
55
|
});
|
|
55
56
|
const MarchingPlane = /* @__PURE__ */React.forwardRef(({
|
|
@@ -62,14 +63,15 @@ const MarchingPlane = /* @__PURE__ */React.forwardRef(({
|
|
|
62
63
|
getParent
|
|
63
64
|
} = React.useContext(globalContext);
|
|
64
65
|
const parentRef = React.useMemo(() => getParent(), [getParent]);
|
|
65
|
-
const wallRef = React.useRef();
|
|
66
|
+
const wallRef = React.useRef(null);
|
|
67
|
+
React.useImperativeHandle(ref, () => wallRef.current, []);
|
|
66
68
|
const planeType = React.useMemo(() => _planeType === 'x' ? 'addPlaneX' : _planeType === 'y' ? 'addPlaneY' : 'addPlaneZ', [_planeType]);
|
|
67
69
|
useFrame(() => {
|
|
68
70
|
if (!parentRef.current || !wallRef.current) return;
|
|
69
71
|
parentRef.current[planeType](strength, subtract);
|
|
70
72
|
});
|
|
71
73
|
return /*#__PURE__*/React.createElement("group", _extends({
|
|
72
|
-
ref:
|
|
74
|
+
ref: wallRef
|
|
73
75
|
}, props));
|
|
74
76
|
});
|
|
75
77
|
|
|
@@ -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("
|
|
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("../materials/BlurPass.cjs.js"),s=require("../materials/MeshReflectorMaterial.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 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"),require("../helpers/constants.cjs.js");var l=o(e),u=i(t);const d=u.forwardRef((({mixBlur:e=0,mixStrength:t=1,resolution:o=256,blur:i=[0,0],minDepthThreshold:d=.9,maxDepthThreshold:c=1,depthScale:p=0,depthToBlurRatioBias:m=.25,mirror:h=0,distortion:f=1,mixContrast:x=1,distortionMap:M,reflectorOffset:T=0,...S},y)=>{a.extend({MeshReflectorMaterialImpl:s.MeshReflectorMaterial});const w=a.useThree((({gl:e})=>e)),b=a.useThree((({camera:e})=>e)),R=a.useThree((({scene:e})=>e)),j=(i=Array.isArray(i)?i:[i,i])[0]+i[1]>0,v=u.useRef(null);u.useImperativeHandle(y,(()=>v.current),[]);const[g]=u.useState((()=>new r.Plane)),[D]=u.useState((()=>new r.Vector3)),[B]=u.useState((()=>new r.Vector3)),[_]=u.useState((()=>new r.Vector3)),[O]=u.useState((()=>new r.Matrix4)),[P]=u.useState((()=>new r.Vector3(0,0,-1))),[U]=u.useState((()=>new r.Vector4)),[V]=u.useState((()=>new r.Vector3)),[E]=u.useState((()=>new r.Vector3)),[F]=u.useState((()=>new r.Vector4)),[W]=u.useState((()=>new r.Matrix4)),[I]=u.useState((()=>new r.PerspectiveCamera)),q=u.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),V.subVectors(B,_),V.dot(D)>0)return;V.reflect(D).negate(),V.add(B),O.extractRotation(b.matrixWorld),P.set(0,0,-1),P.applyMatrix4(O),P.add(_),E.subVectors(B,P),E.reflect(D).negate(),E.add(B),I.position.copy(V),I.up.set(0,1,0),I.up.applyMatrix4(O),I.up.reflect(D),I.lookAt(E),I.far=b.far,I.updateMatrixWorld(),I.projectionMatrix.copy(b.projectionMatrix),W.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),W.multiply(I.projectionMatrix),W.multiply(I.matrixWorldInverse),W.multiply(t.matrixWorld),g.setFromNormalAndCoplanarPoint(D,B),g.applyMatrix4(I.matrixWorldInverse),U.set(g.normal.x,g.normal.y,g.normal.z,g.constant);const r=I.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]=u.useMemo((()=>{const a={minFilter:r.LinearFilter,magFilter:r.LinearFilter,type:r.HalfFloatType},s=new r.WebGLRenderTarget(o,o,a);s.depthBuffer=!0,s.depthTexture=new r.DepthTexture(o,o),s.depthTexture.format=r.DepthFormat,s.depthTexture.type=r.UnsignedShortType;const l=new r.WebGLRenderTarget(o,o,a);return[s,l,new n.BlurPass({gl:w,resolution:o,width:i[0],height:i[1],minDepthThreshold:d,maxDepthThreshold:c,depthScale:p,depthToBlurRatioBias:m}),{mirror:h,textureMatrix:W,mixBlur:e,tDiffuse:s.texture,tDepth:s.depthTexture,tDiffuseBlur:l.texture,hasBlur:j,mixStrength:t,minDepthThreshold:d,maxDepthThreshold:c,depthScale:p,depthToBlurRatioBias:m,distortion:f,distortionMap:M,mixContrast:x,"defines-USE_BLUR":j?"":void 0,"defines-USE_DEPTH":p>0?"":void 0,"defines-USE_DISTORTION":M?"":void 0}]}),[w,i,W,o,h,j,e,t,d,c,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;q(),w.xr.enabled=!1,w.shadowMap.autoUpdate=!1,w.setRenderTarget(C),w.state.buffers.depth.setMask(!0),w.autoClear||w.clear(),w.render(R,I),j&&L.render(w,C,k),w.xr.enabled=r,w.shadowMap.autoUpdate=a,t.visible=!0,w.setRenderTarget(null)})),u.createElement("meshReflectorMaterialImpl",l.default({attach:"material",key:"key"+z["defines-USE_BLUR"]+z["defines-USE_DEPTH"]+z["defines-USE_DISTORTION"],ref:v},z,S))}));exports.MeshReflectorMaterial=d;
|
|
@@ -2,7 +2,6 @@ import _extends from '@babel/runtime/helpers/esm/extends';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Plane, Vector3, Matrix4, Vector4, PerspectiveCamera, WebGLRenderTarget, DepthTexture, DepthFormat, UnsignedShortType, LinearFilter, HalfFloatType } from 'three';
|
|
4
4
|
import { extend, useThree, useFrame } from '@react-three/fiber';
|
|
5
|
-
import mergeRefs from 'react-merge-refs';
|
|
6
5
|
import { BlurPass } from '../materials/BlurPass.js';
|
|
7
6
|
import { MeshReflectorMaterial as MeshReflectorMaterial$1 } from '../materials/MeshReflectorMaterial.js';
|
|
8
7
|
|
|
@@ -37,6 +36,7 @@ const MeshReflectorMaterial = /* @__PURE__ */React.forwardRef(({
|
|
|
37
36
|
blur = Array.isArray(blur) ? blur : [blur, blur];
|
|
38
37
|
const hasBlur = blur[0] + blur[1] > 0;
|
|
39
38
|
const materialRef = React.useRef(null);
|
|
39
|
+
React.useImperativeHandle(ref, () => materialRef.current, []);
|
|
40
40
|
const [reflectorPlane] = React.useState(() => new Plane());
|
|
41
41
|
const [normal] = React.useState(() => new Vector3());
|
|
42
42
|
const [reflectorWorldPosition] = React.useState(() => new Vector3());
|
|
@@ -173,7 +173,7 @@ const MeshReflectorMaterial = /* @__PURE__ */React.forwardRef(({
|
|
|
173
173
|
// Defines can't be updated dynamically, so we need to recreate the material
|
|
174
174
|
,
|
|
175
175
|
key: 'key' + reflectorProps['defines-USE_BLUR'] + reflectorProps['defines-USE_DEPTH'] + reflectorProps['defines-USE_DISTORTION'],
|
|
176
|
-
ref:
|
|
176
|
+
ref: materialRef
|
|
177
177
|
}, reflectorProps, props));
|
|
178
178
|
});
|
|
179
179
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),u=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),u=require("./useFBO.cjs.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("three");var c=n(e),o=a(r);const s=o.forwardRef((({envMap:e,resolution:r=256,frames:n=1/0,children:a,makeDefault:s,...i},l)=>{const f=t.useThree((({set:e})=>e)),d=t.useThree((({camera:e})=>e)),h=t.useThree((({size:e})=>e)),g=o.useRef(null);o.useImperativeHandle(l,(()=>g.current),[]);const b=o.useRef(null),m=u.useFBO(r);o.useLayoutEffect((()=>{i.manual||g.current.updateProjectionMatrix()}),[h,i]),o.useLayoutEffect((()=>{g.current.updateProjectionMatrix()})),o.useLayoutEffect((()=>{if(s){const e=d;return f((()=>({camera:g.current}))),()=>f((()=>({camera:e})))}}),[g,s,f]);let p=0,j=null;const O="function"==typeof a;return t.useFrame((r=>{O&&(n===1/0||p<n)&&(b.current.visible=!1,r.gl.setRenderTarget(m),j=r.scene.background,e&&(r.scene.background=e),r.gl.render(r.scene,g.current),r.scene.background=j,r.gl.setRenderTarget(null),b.current.visible=!0,p++)})),o.createElement(o.Fragment,null,o.createElement("orthographicCamera",c.default({left:h.width/-2,right:h.width/2,top:h.height/2,bottom:h.height/-2,ref:g},i),!O&&a),o.createElement("group",{ref:b},O&&a(m.texture)))}));exports.OrthographicCamera=s;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useThree, useFrame } from '@react-three/fiber';
|
|
4
|
-
import mergeRefs from 'react-merge-refs';
|
|
5
4
|
import { useFBO } from './useFBO.js';
|
|
6
5
|
|
|
7
6
|
const isFunction = node => typeof node === 'function';
|
|
@@ -23,6 +22,7 @@ const OrthographicCamera = /* @__PURE__ */React.forwardRef(({
|
|
|
23
22
|
size
|
|
24
23
|
}) => size);
|
|
25
24
|
const cameraRef = React.useRef(null);
|
|
25
|
+
React.useImperativeHandle(ref, () => cameraRef.current, []);
|
|
26
26
|
const groupRef = React.useRef(null);
|
|
27
27
|
const fbo = useFBO(resolution);
|
|
28
28
|
React.useLayoutEffect(() => {
|
|
@@ -67,7 +67,7 @@ const OrthographicCamera = /* @__PURE__ */React.forwardRef(({
|
|
|
67
67
|
right: size.width / 2,
|
|
68
68
|
top: size.height / 2,
|
|
69
69
|
bottom: size.height / -2,
|
|
70
|
-
ref:
|
|
70
|
+
ref: cameraRef
|
|
71
71
|
}, props), !functional && children), /*#__PURE__*/React.createElement("group", {
|
|
72
72
|
ref: groupRef
|
|
73
73
|
}, functional && children(fbo.texture)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),u=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),u=require("./useFBO.cjs.js");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 u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("three");var a=n(e),s=c(r);const l=s.forwardRef((({envMap:e,resolution:r=256,frames:n=1/0,makeDefault:c,children:l,...f},i)=>{const o=t.useThree((({set:e})=>e)),d=t.useThree((({camera:e})=>e)),p=t.useThree((({size:e})=>e)),b=s.useRef(null);s.useImperativeHandle(i,(()=>b.current),[]);const m=s.useRef(null),g=u.useFBO(r);s.useLayoutEffect((()=>{f.manual||(b.current.aspect=p.width/p.height)}),[p,f]),s.useLayoutEffect((()=>{b.current.updateProjectionMatrix()}));let h=0,v=null;const j="function"==typeof l;return t.useFrame((r=>{j&&(n===1/0||h<n)&&(m.current.visible=!1,r.gl.setRenderTarget(g),v=r.scene.background,e&&(r.scene.background=e),r.gl.render(r.scene,b.current),r.scene.background=v,r.gl.setRenderTarget(null),m.current.visible=!0,h++)})),s.useLayoutEffect((()=>{if(c){const e=d;return o((()=>({camera:b.current}))),()=>o((()=>({camera:e})))}}),[b,c,o]),s.createElement(s.Fragment,null,s.createElement("perspectiveCamera",a.default({ref:b},f),!j&&l),s.createElement("group",{ref:m},j&&l(g.texture)))}));exports.PerspectiveCamera=l;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useThree, useFrame } from '@react-three/fiber';
|
|
4
|
-
import mergeRefs from 'react-merge-refs';
|
|
5
4
|
import { useFBO } from './useFBO.js';
|
|
6
5
|
|
|
7
6
|
const isFunction = node => typeof node === 'function';
|
|
@@ -23,6 +22,7 @@ const PerspectiveCamera = /* @__PURE__ */React.forwardRef(({
|
|
|
23
22
|
size
|
|
24
23
|
}) => size);
|
|
25
24
|
const cameraRef = React.useRef(null);
|
|
25
|
+
React.useImperativeHandle(ref, () => cameraRef.current, []);
|
|
26
26
|
const groupRef = React.useRef(null);
|
|
27
27
|
const fbo = useFBO(resolution);
|
|
28
28
|
React.useLayoutEffect(() => {
|
|
@@ -63,7 +63,7 @@ const PerspectiveCamera = /* @__PURE__ */React.forwardRef(({
|
|
|
63
63
|
// that must exchange the default, and clean up after itself on unmount.
|
|
64
64
|
}, [cameraRef, makeDefault, set]);
|
|
65
65
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("perspectiveCamera", _extends({
|
|
66
|
-
ref:
|
|
66
|
+
ref: cameraRef
|
|
67
67
|
}, props), !functional && children), /*#__PURE__*/React.createElement("group", {
|
|
68
68
|
ref: groupRef
|
|
69
69
|
}, functional && children(fbo.texture)));
|
package/core/Points.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")
|
|
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 a(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=a(e),o=i(t),u=i(r);const c=new o.Matrix4,l=new o.Ray,f=new o.Sphere,d=new o.Vector3;class m extends o.Group{constructor(){super(),this.size=0,this.color=new o.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){var r,n;const a=this.instance.current;if(!a||!a.geometry)return;const i=a.userData.instances.indexOf(this.instanceKey);if(-1===i||i>a.geometry.drawRange.count)return;const s=null!==(r=null==(n=e.params.Points)?void 0:n.threshold)&&void 0!==r?r:1;if(f.set(this.getWorldPosition(d),s),!1===e.ray.intersectsSphere(f))return;c.copy(a.matrixWorld).invert(),l.copy(e.ray).applyMatrix4(c);const u=s/((this.scale.x+this.scale.y+this.scale.z)/3),m=u*u,p=l.distanceSqToPoint(this.position);if(p<m){const r=new o.Vector3;l.closestPointToPoint(this.position,r),r.applyMatrix4(this.matrixWorld);const n=e.ray.origin.distanceTo(r);if(n<e.near||n>e.far)return;t.push({distance:n,distanceToRay:Math.sqrt(p),point:r,index:i,face:null,object:this})}}}let p,y;const h=u.createContext(null),g=new o.Matrix4,b=new o.Vector3,x=u.forwardRef((({children:e,range:t,limit:r=1e3,...a},i)=>{const c=u.useRef(null);u.useImperativeHandle(i,(()=>c.current),[]);const[l,f]=u.useState([]),[[d,m,x]]=u.useState((()=>[new Float32Array(3*r),Float32Array.from({length:3*r},(()=>1)),Float32Array.from({length:r},(()=>1))]));u.useEffect((()=>{c.current.geometry.attributes.position.needsUpdate=!0})),n.useFrame((()=>{for(c.current.updateMatrix(),c.current.updateMatrixWorld(),g.copy(c.current.matrixWorld).invert(),c.current.geometry.drawRange.count=Math.min(r,void 0!==t?t:r,l.length),p=0;p<l.length;p++)y=l[p].current,y.getWorldPosition(b).applyMatrix4(g),b.toArray(d,3*p),c.current.geometry.attributes.position.needsUpdate=!0,y.matrixWorldNeedsUpdate=!0,y.color.toArray(m,3*p),c.current.geometry.attributes.color.needsUpdate=!0,x.set([y.size],p),c.current.geometry.attributes.size.needsUpdate=!0}));const w=u.useMemo((()=>({getParent:()=>c,subscribe:e=>(f((t=>[...t,e])),()=>f((t=>t.filter((t=>t.current!==e.current)))))})),[]);return u.createElement("points",s.default({userData:{instances:l},matrixAutoUpdate:!1,ref:c,raycast:()=>null},a),u.createElement("bufferGeometry",null,u.createElement("bufferAttribute",{attach:"attributes-position",count:d.length/3,array:d,itemSize:3,usage:o.DynamicDrawUsage}),u.createElement("bufferAttribute",{attach:"attributes-color",count:m.length/3,array:m,itemSize:3,usage:o.DynamicDrawUsage}),u.createElement("bufferAttribute",{attach:"attributes-size",count:x.length,array:x,itemSize:1,usage:o.DynamicDrawUsage})),u.createElement(h.Provider,{value:w},e))})),w=u.forwardRef((({children:e,...t},r)=>{u.useMemo((()=>n.extend({PositionPoint:m})),[]);const a=u.useRef(null);u.useImperativeHandle(r,(()=>a.current),[]);const{subscribe:i,getParent:o}=u.useContext(h);return u.useLayoutEffect((()=>i(a)),[]),u.createElement("positionPoint",s.default({instance:o(),instanceKey:a,ref:a},t),e)})),v=u.forwardRef((({children:e,positions:t,colors:r,sizes:a,stride:i=3,...c},l)=>{const f=u.useRef(null);return u.useImperativeHandle(l,(()=>f.current),[]),n.useFrame((()=>{const e=f.current.geometry.attributes;e.position.needsUpdate=!0,r&&(e.color.needsUpdate=!0),a&&(e.size.needsUpdate=!0)})),u.createElement("points",s.default({ref:f},c),u.createElement("bufferGeometry",null,u.createElement("bufferAttribute",{attach:"attributes-position",count:t.length/i,array:t,itemSize:i,usage:o.DynamicDrawUsage}),r&&u.createElement("bufferAttribute",{attach:"attributes-color",count:r.length/i,array:r,itemSize:3,usage:o.DynamicDrawUsage}),a&&u.createElement("bufferAttribute",{attach:"attributes-size",count:a.length/i,array:a,itemSize:1,usage:o.DynamicDrawUsage})),e)})),P=u.forwardRef(((e,t)=>e.positions instanceof Float32Array?u.createElement(v,s.default({},e,{ref:t})):u.createElement(x,s.default({},e,{ref:t}))));exports.Point=w,exports.Points=P,exports.PointsBuffer=v,exports.PositionPoint=m;
|