@react-three/drei 9.96.4 → 9.96.5

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.
Files changed (166) hide show
  1. package/core/AccumulativeShadows.cjs.js +1 -1
  2. package/core/AdaptiveDpr.cjs.js +1 -1
  3. package/core/AdaptiveEvents.cjs.js +1 -1
  4. package/core/ArcballControls.cjs.js +1 -1
  5. package/core/AsciiRenderer.cjs.js +1 -1
  6. package/core/BBAnchor.cjs.js +1 -1
  7. package/core/Backdrop.cjs.js +1 -1
  8. package/core/BakeShadows.cjs.js +1 -1
  9. package/core/Billboard.cjs.js +1 -1
  10. package/core/Bounds.cjs.js +1 -1
  11. package/core/CameraControls.cjs.js +1 -1
  12. package/core/CameraShake.cjs.js +1 -1
  13. package/core/CatmullRomLine.cjs.js +1 -1
  14. package/core/Caustics.cjs.js +1 -1
  15. package/core/Center.cjs.js +1 -1
  16. package/core/Clone.cjs.js +1 -1
  17. package/core/Cloud.cjs.js +1 -1
  18. package/core/ComputedAttribute.cjs.js +1 -1
  19. package/core/ContactShadows.cjs.js +1 -1
  20. package/core/CubeCamera.cjs.js +1 -1
  21. package/core/CubicBezierLine.cjs.js +1 -1
  22. package/core/CurveModifier.cjs.js +1 -1
  23. package/core/Decal.cjs.js +1 -1
  24. package/core/Detailed.cjs.js +1 -1
  25. package/core/DeviceOrientationControls.cjs.js +1 -1
  26. package/core/Edges.cjs.js +1 -1
  27. package/core/Effects.cjs.js +1 -1
  28. package/core/Environment.cjs.js +1 -1
  29. package/core/Example.cjs.js +1 -1
  30. package/core/FirstPersonControls.cjs.js +1 -1
  31. package/core/Fisheye.cjs.js +1 -1
  32. package/core/Float.cjs.js +1 -1
  33. package/core/FlyControls.cjs.js +1 -1
  34. package/core/GizmoHelper.cjs.js +1 -1
  35. package/core/GizmoViewcube.cjs.js +1 -1
  36. package/core/GizmoViewport.cjs.js +1 -1
  37. package/core/Gltf.cjs.js +1 -1
  38. package/core/GradientTexture.cjs.js +1 -1
  39. package/core/Grid.cjs.js +1 -1
  40. package/core/Hud.cjs.js +1 -1
  41. package/core/Image.cjs.js +1 -1
  42. package/core/Instances.cjs.js +1 -1
  43. package/core/Lightformer.cjs.js +1 -1
  44. package/core/Line.cjs.js +1 -1
  45. package/core/MapControls.cjs.js +1 -1
  46. package/core/MarchingCubes.cjs.js +1 -1
  47. package/core/Mask.cjs.js +1 -1
  48. package/core/MeshDiscardMaterial.cjs.js +1 -1
  49. package/core/MeshDistortMaterial.cjs.js +1 -1
  50. package/core/MeshPortalMaterial.cjs.js +1 -1
  51. package/core/MeshReflectorMaterial.cjs.js +1 -1
  52. package/core/MeshRefractionMaterial.cjs.js +1 -1
  53. package/core/MeshTransmissionMaterial.cjs.js +1 -1
  54. package/core/MeshWobbleMaterial.cjs.js +1 -1
  55. package/core/MotionPathControls.cjs.js +1 -1
  56. package/core/OrbitControls.cjs.js +1 -1
  57. package/core/OrthographicCamera.cjs.js +1 -1
  58. package/core/Outlines.cjs.js +1 -1
  59. package/core/PerformanceMonitor.cjs.js +1 -1
  60. package/core/PerspectiveCamera.cjs.js +1 -1
  61. package/core/PointMaterial.cjs.js +1 -1
  62. package/core/PointerLockControls.cjs.js +1 -1
  63. package/core/Points.cjs.js +1 -1
  64. package/core/PositionalAudio.cjs.js +1 -1
  65. package/core/Preload.cjs.js +1 -1
  66. package/core/QuadraticBezierLine.cjs.js +1 -1
  67. package/core/Reflector.cjs.js +1 -1
  68. package/core/RenderCubeTexture.cjs.js +1 -1
  69. package/core/RenderTexture.cjs.js +1 -1
  70. package/core/Resize.cjs.js +1 -1
  71. package/core/RoundedBox.cjs.js +1 -1
  72. package/core/Sampler.cjs.js +1 -1
  73. package/core/ScreenQuad.cjs.js +1 -1
  74. package/core/ScreenSpace.cjs.js +1 -1
  75. package/core/Segments.cjs.js +1 -1
  76. package/core/Shadow.cjs.js +1 -1
  77. package/core/ShadowAlpha.cjs.js +1 -1
  78. package/core/ShadowAlpha.js +0 -1
  79. package/core/Sky.cjs.js +1 -1
  80. package/core/Sparkles.cjs.js +1 -1
  81. package/core/Splat.cjs.js +1 -1
  82. package/core/SpotLight.cjs.js +1 -1
  83. package/core/SpriteAnimator.cjs.js +1 -1
  84. package/core/Stage.cjs.js +1 -1
  85. package/core/Stars.cjs.js +1 -1
  86. package/core/Stats.cjs.js +1 -1
  87. package/core/StatsGl.cjs.js +1 -1
  88. package/core/Svg.cjs.js +1 -1
  89. package/core/Text.cjs.js +1 -1
  90. package/core/Text3D.cjs.js +1 -1
  91. package/core/TrackballControls.cjs.js +1 -1
  92. package/core/Trail.cjs.js +1 -1
  93. package/core/TransformControls.cjs.js +1 -1
  94. package/core/Wireframe.cjs.js +1 -1
  95. package/core/index.cjs.js +1 -1
  96. package/core/index.js +150 -0
  97. package/core/meshBounds.cjs.js +1 -1
  98. package/core/shaderMaterial.cjs.js +1 -1
  99. package/core/shapes.cjs.js +1 -1
  100. package/core/softShadows.cjs.js +1 -1
  101. package/core/softShadows.js +0 -1
  102. package/core/useAnimations.cjs.js +1 -1
  103. package/core/useAspect.cjs.js +1 -1
  104. package/core/useBVH.cjs.js +1 -1
  105. package/core/useBoxProjectedEnv.cjs.js +1 -1
  106. package/core/useCamera.cjs.js +1 -1
  107. package/core/useContextBridge.cjs.js +1 -1
  108. package/core/useCubeCamera.cjs.js +1 -1
  109. package/core/useCubeTexture.cjs.js +1 -1
  110. package/core/useDepthBuffer.cjs.js +1 -1
  111. package/core/useDetectGPU.cjs.js +1 -1
  112. package/core/useEnvironment.cjs.js +1 -1
  113. package/core/useFBO.cjs.js +1 -1
  114. package/core/useFBX.cjs.js +1 -1
  115. package/core/useFont.cjs.js +1 -1
  116. package/core/useGLTF.cjs.js +1 -1
  117. package/core/useHelper.cjs.js +1 -1
  118. package/core/useIntersect.cjs.js +1 -1
  119. package/core/useKTX2.cjs.js +1 -1
  120. package/core/useMatcapTexture.cjs.js +1 -1
  121. package/core/useNormalTexture.cjs.js +1 -1
  122. package/core/useProgress.cjs.js +1 -1
  123. package/core/useTexture.cjs.js +1 -1
  124. package/core/useTrailTexture.cjs.js +1 -1
  125. package/core/useVideoTexture.cjs.js +1 -1
  126. package/helpers/constants.cjs.js +1 -1
  127. package/helpers/deprecated.cjs.js +1 -1
  128. package/helpers/environment-assets.cjs.js +1 -1
  129. package/helpers/glsl/DefaultSpotlightShadowShadows.glsl.js +3 -1
  130. package/helpers/glsl/distort.vert.glsl.js +3 -1
  131. package/helpers/ts-utils.js +1 -0
  132. package/helpers/useEffectfulState.cjs.js +1 -1
  133. package/index.cjs.js +1 -1
  134. package/index.js +0 -1
  135. package/materials/BlurPass.cjs.js +1 -1
  136. package/materials/ConvolutionMaterial.cjs.js +1 -1
  137. package/materials/DiscardMaterial.cjs.js +1 -1
  138. package/materials/MeshReflectorMaterial.cjs.js +1 -1
  139. package/materials/MeshRefractionMaterial.cjs.js +1 -1
  140. package/materials/MeshRefractionMaterial.js +0 -2
  141. package/materials/SpotLightMaterial.cjs.js +1 -1
  142. package/materials/WireframeMaterial.cjs.js +1 -1
  143. package/native/index.cjs.js +1 -1
  144. package/native/index.js +150 -0
  145. package/package.json +1 -1
  146. package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
  147. package/web/CycleRaycast.cjs.js +1 -1
  148. package/web/FaceControls.cjs.js +1 -1
  149. package/web/FaceLandmarker.cjs.js +1 -1
  150. package/web/Facemesh.cjs.js +1 -1
  151. package/web/Html.cjs.js +1 -1
  152. package/web/KeyboardControls.cjs.js +1 -1
  153. package/web/Loader.cjs.js +1 -1
  154. package/web/PresentationControls.cjs.js +1 -1
  155. package/web/ScrollControls.cjs.js +1 -1
  156. package/web/Select.cjs.js +1 -1
  157. package/web/View.cjs.js +1 -2
  158. package/web/View.js +0 -1
  159. package/web/index.cjs.js +1 -1
  160. package/web/index.js +173 -0
  161. package/web/pivotControls/AxisArrow.cjs.js +1 -1
  162. package/web/pivotControls/AxisRotator.cjs.js +1 -1
  163. package/web/pivotControls/PlaneSlider.cjs.js +1 -1
  164. package/web/pivotControls/context.cjs.js +1 -1
  165. package/web/pivotControls/index.cjs.js +1 -1
  166. package/web/useCursor.cjs.js +1 -1
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=o(r);const s=c.forwardRef((({domElement:r,selector:o,onChange:s,onLock:i,onUnlock:a,enabled:u=!0,makeDefault:l,...d},f)=>{const{camera:m,...h}=d,v=t.useThree((e=>e.setEvents)),E=t.useThree((e=>e.gl)),k=t.useThree((e=>e.camera)),b=t.useThree((e=>e.invalidate)),p=t.useThree((e=>e.events)),L=t.useThree((e=>e.get)),g=t.useThree((e=>e.set)),T=m||k,j=r||p.connected||E.domElement,y=c.useMemo((()=>new n.PointerLockControls(T)),[T]);return c.useEffect((()=>{if(u){y.connect(j);const e=L().events.compute;return v({compute(e,t){const r=t.size.width/2,n=t.size.height/2;t.pointer.set(r/t.size.width*2-1,-n/t.size.height*2+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),()=>{y.disconnect(),v({compute:e})}}}),[u,y]),c.useEffect((()=>{const e=e=>{b(),s&&s(e)};y.addEventListener("change",e),i&&y.addEventListener("lock",i),a&&y.addEventListener("unlock",a);const t=()=>y.lock(),r=o?Array.from(document.querySelectorAll(o)):[document];return r.forEach((e=>e&&e.addEventListener("click",t))),()=>{y.removeEventListener("change",e),i&&y.removeEventListener("lock",i),a&&y.removeEventListener("unlock",a),r.forEach((e=>e?e.removeEventListener("click",t):void 0))}}),[s,i,a,o,y,b]),c.useEffect((()=>{if(l){const e=L().controls;return g({controls:y}),()=>g({controls:e})}}),[l,y]),c.createElement("primitive",e({ref:f,object:y},h))}));exports.PointerLockControls=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=o(e),i=c(r);const u=i.forwardRef((({domElement:e,selector:r,onChange:o,onLock:c,onUnlock:u,enabled:a=!0,makeDefault:l,...f},d)=>{const{camera:m,...v}=f,h=t.useThree((e=>e.setEvents)),E=t.useThree((e=>e.gl)),b=t.useThree((e=>e.camera)),p=t.useThree((e=>e.invalidate)),k=t.useThree((e=>e.events)),L=t.useThree((e=>e.get)),g=t.useThree((e=>e.set)),j=m||b,y=e||k.connected||E.domElement,O=i.useMemo((()=>new n.PointerLockControls(j)),[j]);return i.useEffect((()=>{if(a){O.connect(y);const e=L().events.compute;return h({compute(e,t){const r=t.size.width/2,n=t.size.height/2;t.pointer.set(r/t.size.width*2-1,-n/t.size.height*2+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),()=>{O.disconnect(),h({compute:e})}}}),[a,O]),i.useEffect((()=>{const e=e=>{p(),o&&o(e)};O.addEventListener("change",e),c&&O.addEventListener("lock",c),u&&O.addEventListener("unlock",u);const t=()=>O.lock(),n=r?Array.from(document.querySelectorAll(r)):[document];return n.forEach((e=>e&&e.addEventListener("click",t))),()=>{O.removeEventListener("change",e),c&&O.removeEventListener("lock",c),u&&O.removeEventListener("unlock",u),n.forEach((e=>e?e.removeEventListener("click",t):void 0))}}),[o,c,u,r,O,p]),i.useEffect((()=>{if(l){const e=L().controls;return g({controls:O}),()=>g({controls:e})}}),[l,O]),i.createElement("primitive",s.default({ref:d,object:O},v))}));exports.PointerLockControls=u;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),a=require("react-merge-refs");function i(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=i(t),o=i(r);const c=new s.Matrix4,u=new s.Ray,l=new s.Sphere,f=new s.Vector3;class d extends s.Group{constructor(){super(),this.size=0,this.color=new s.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 o=null!==(r=null==(n=e.params.Points)?void 0:n.threshold)&&void 0!==r?r:1;if(l.set(this.getWorldPosition(f),o),!1===e.ray.intersectsSphere(l))return;c.copy(a.matrixWorld).invert(),u.copy(e.ray).applyMatrix4(c);const d=o/((this.scale.x+this.scale.y+this.scale.z)/3),m=d*d,y=u.distanceSqToPoint(this.position);if(y<m){const r=new s.Vector3;u.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(y),point:r,index:i,face:null,object:this})}}}let m,y;const p=o.createContext(null),h=new s.Matrix4,g=new s.Vector3,b=o.forwardRef((({children:t,range:r,limit:i=1e3,...c},u)=>{const l=o.useRef(null),[f,d]=o.useState([]),[[b,x,w]]=o.useState((()=>[new Float32Array(3*i),Float32Array.from({length:3*i},(()=>1)),Float32Array.from({length:i},(()=>1))]));o.useEffect((()=>{l.current.geometry.attributes.position.needsUpdate=!0})),n.useFrame((()=>{for(l.current.updateMatrix(),l.current.updateMatrixWorld(),h.copy(l.current.matrixWorld).invert(),l.current.geometry.drawRange.count=Math.min(i,void 0!==r?r:i,f.length),m=0;m<f.length;m++)y=f[m].current,y.getWorldPosition(g).applyMatrix4(h),g.toArray(b,3*m),l.current.geometry.attributes.position.needsUpdate=!0,y.matrixWorldNeedsUpdate=!0,y.color.toArray(x,3*m),l.current.geometry.attributes.color.needsUpdate=!0,w.set([y.size],m),l.current.geometry.attributes.size.needsUpdate=!0}));const P=o.useMemo((()=>({getParent:()=>l,subscribe:e=>(d((t=>[...t,e])),()=>d((t=>t.filter((t=>t.current!==e.current)))))})),[]);return o.createElement("points",e({userData:{instances:f},matrixAutoUpdate:!1,ref:a([u,l]),raycast:()=>null},c),o.createElement("bufferGeometry",null,o.createElement("bufferAttribute",{attach:"attributes-position",count:b.length/3,array:b,itemSize:3,usage:s.DynamicDrawUsage}),o.createElement("bufferAttribute",{attach:"attributes-color",count:x.length/3,array:x,itemSize:3,usage:s.DynamicDrawUsage}),o.createElement("bufferAttribute",{attach:"attributes-size",count:w.length,array:w,itemSize:1,usage:s.DynamicDrawUsage})),o.createElement(p.Provider,{value:P},t))})),x=o.forwardRef((({children:t,...r},i)=>{o.useMemo((()=>n.extend({PositionPoint:d})),[]);const s=o.useRef(),{subscribe:c,getParent:u}=o.useContext(p);return o.useLayoutEffect((()=>c(s)),[]),o.createElement("positionPoint",e({instance:u(),instanceKey:s,ref:a([i,s])},r),t)})),w=o.forwardRef((({children:t,positions:r,colors:i,sizes:c,stride:u=3,...l},f)=>{const d=o.useRef(null);return n.useFrame((()=>{const e=d.current.geometry.attributes;e.position.needsUpdate=!0,i&&(e.color.needsUpdate=!0),c&&(e.size.needsUpdate=!0)})),o.createElement("points",e({ref:a([f,d])},l),o.createElement("bufferGeometry",null,o.createElement("bufferAttribute",{attach:"attributes-position",count:r.length/u,array:r,itemSize:u,usage:s.DynamicDrawUsage}),i&&o.createElement("bufferAttribute",{attach:"attributes-color",count:i.length/u,array:i,itemSize:3,usage:s.DynamicDrawUsage}),c&&o.createElement("bufferAttribute",{attach:"attributes-size",count:c.length/u,array:c,itemSize:1,usage:s.DynamicDrawUsage})),t)})),P=o.forwardRef(((t,r)=>t.positions instanceof Float32Array?o.createElement(w,e({},t,{ref:r})):o.createElement(b,e({},t,{ref:r}))));exports.Point=x,exports.Points=P,exports.PointsBuffer=w,exports.PositionPoint=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),a=require("react-merge-refs");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=i(e),u=o(t),c=o(r),l=i(a);const f=new u.Matrix4,d=new u.Ray,m=new u.Sphere,y=new u.Vector3;class p extends u.Group{constructor(){super(),this.size=0,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){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 o=null!==(r=null==(n=e.params.Points)?void 0:n.threshold)&&void 0!==r?r:1;if(m.set(this.getWorldPosition(y),o),!1===e.ray.intersectsSphere(m))return;f.copy(a.matrixWorld).invert(),d.copy(e.ray).applyMatrix4(f);const s=o/((this.scale.x+this.scale.y+this.scale.z)/3),c=s*s,l=d.distanceSqToPoint(this.position);if(l<c){const r=new u.Vector3;d.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(l),point:r,index:i,face:null,object:this})}}}let h,g;const b=c.createContext(null),x=new u.Matrix4,w=new u.Vector3,P=c.forwardRef((({children:e,range:t,limit:r=1e3,...a},i)=>{const o=c.useRef(null),[f,d]=c.useState([]),[[m,y,p]]=c.useState((()=>[new Float32Array(3*r),Float32Array.from({length:3*r},(()=>1)),Float32Array.from({length:r},(()=>1))]));c.useEffect((()=>{o.current.geometry.attributes.position.needsUpdate=!0})),n.useFrame((()=>{for(o.current.updateMatrix(),o.current.updateMatrixWorld(),x.copy(o.current.matrixWorld).invert(),o.current.geometry.drawRange.count=Math.min(r,void 0!==t?t:r,f.length),h=0;h<f.length;h++)g=f[h].current,g.getWorldPosition(w).applyMatrix4(x),w.toArray(m,3*h),o.current.geometry.attributes.position.needsUpdate=!0,g.matrixWorldNeedsUpdate=!0,g.color.toArray(y,3*h),o.current.geometry.attributes.color.needsUpdate=!0,p.set([g.size],h),o.current.geometry.attributes.size.needsUpdate=!0}));const P=c.useMemo((()=>({getParent:()=>o,subscribe:e=>(d((t=>[...t,e])),()=>d((t=>t.filter((t=>t.current!==e.current)))))})),[]);return c.createElement("points",s.default({userData:{instances:f},matrixAutoUpdate:!1,ref:l.default([i,o]),raycast:()=>null},a),c.createElement("bufferGeometry",null,c.createElement("bufferAttribute",{attach:"attributes-position",count:m.length/3,array:m,itemSize:3,usage:u.DynamicDrawUsage}),c.createElement("bufferAttribute",{attach:"attributes-color",count:y.length/3,array:y,itemSize:3,usage:u.DynamicDrawUsage}),c.createElement("bufferAttribute",{attach:"attributes-size",count:p.length,array:p,itemSize:1,usage:u.DynamicDrawUsage})),c.createElement(b.Provider,{value:P},e))})),v=c.forwardRef((({children:e,...t},r)=>{c.useMemo((()=>n.extend({PositionPoint:p})),[]);const a=c.useRef(),{subscribe:i,getParent:o}=c.useContext(b);return c.useLayoutEffect((()=>i(a)),[]),c.createElement("positionPoint",s.default({instance:o(),instanceKey:a,ref:l.default([r,a])},t),e)})),E=c.forwardRef((({children:e,positions:t,colors:r,sizes:a,stride:i=3,...o},f)=>{const d=c.useRef(null);return n.useFrame((()=>{const e=d.current.geometry.attributes;e.position.needsUpdate=!0,r&&(e.color.needsUpdate=!0),a&&(e.size.needsUpdate=!0)})),c.createElement("points",s.default({ref:l.default([f,d])},o),c.createElement("bufferGeometry",null,c.createElement("bufferAttribute",{attach:"attributes-position",count:t.length/i,array:t,itemSize:i,usage:u.DynamicDrawUsage}),r&&c.createElement("bufferAttribute",{attach:"attributes-color",count:r.length/i,array:r,itemSize:3,usage:u.DynamicDrawUsage}),a&&c.createElement("bufferAttribute",{attach:"attributes-size",count:a.length/i,array:a,itemSize:1,usage:u.DynamicDrawUsage})),e)})),z=c.forwardRef(((e,t)=>e.positions instanceof Float32Array?c.createElement(E,s.default({},e,{ref:t})):c.createElement(P,s.default({},e,{ref:t}))));exports.Point=v,exports.Points=z,exports.PointsBuffer=E,exports.PositionPoint=p;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("@react-three/fiber"),u=require("react-merge-refs");function o(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=o(r);const s=c.forwardRef((({url:r,distance:o=1,loop:s=!0,autoplay:a,...i},f)=>{const d=c.useRef(),l=n.useThree((({camera:e})=>e)),[p]=c.useState((()=>new t.AudioListener)),b=n.useLoader(t.AudioLoader,r);return c.useEffect((()=>{const e=d.current;e&&(e.setBuffer(b),e.setRefDistance(o),e.setLoop(s),a&&!e.isPlaying&&e.play())}),[b,l,o,s]),c.useEffect((()=>{const e=d.current;return l.add(p),()=>{l.remove(p),e&&(e.isPlaying&&e.stop(),e.source&&e.source._connected&&e.disconnect())}}),[]),c.createElement("positionalAudio",e({ref:u([d,f]),args:[p]},i))}));exports.PositionalAudio=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),u=require("@react-three/fiber"),n=require("react-merge-refs");function o(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)}var c=o(e),s=a(r),i=o(n);const f=s.forwardRef((({url:e,distance:r=1,loop:n=!0,autoplay:o,...a},f)=>{const d=s.useRef(),l=u.useThree((({camera:e})=>e)),[p]=s.useState((()=>new t.AudioListener)),b=u.useLoader(t.AudioLoader,e);return s.useEffect((()=>{const e=d.current;e&&(e.setBuffer(b),e.setRefDistance(r),e.setLoop(n),o&&!e.isPlaying&&e.play())}),[b,l,r,n]),s.useEffect((()=>{const e=d.current;return l.add(p),()=>{l.remove(p),e&&(e.isPlaying&&e.stop(),e.source&&e.source._connected&&e.disconnect())}}),[]),s.createElement("positionalAudio",c.default({ref:i.default([d,f]),args:[p]},a))}));exports.PositionalAudio=f;
@@ -1 +1 @@
1
- "use strict";var e=require("three"),r=require("react"),t=require("@react-three/fiber");function c(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var c=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,c.get?c:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var u=c(r);exports.Preload=function({all:r,scene:c,camera:a}){const n=t.useThree((({gl:e})=>e)),s=t.useThree((({camera:e})=>e)),i=t.useThree((({scene:e})=>e));return u.useLayoutEffect((()=>{const t=[];r&&(c||i).traverse((e=>{!1===e.visible&&(t.push(e),e.visible=!0)})),n.compile(c||i,a||s);const u=new e.WebGLCubeRenderTarget(128);new e.CubeCamera(.01,1e5,u).update(n,c||i),u.dispose(),t.forEach((e=>e.visible=!1))}),[]),null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("react"),t=require("@react-three/fiber");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 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)}var c=u(r);exports.Preload=function({all:r,scene:u,camera:n}){const a=t.useThree((({gl:e})=>e)),s=t.useThree((({camera:e})=>e)),i=t.useThree((({scene:e})=>e));return c.useLayoutEffect((()=>{const t=[];r&&(u||i).traverse((e=>{!1===e.visible&&(t.push(e),e.visible=!0)})),a.compile(u||i,n||s);const c=new e.WebGLCubeRenderTarget(128);new e.CubeCamera(.01,1e5,c).update(a,u||i),c.dispose(),t.forEach((e=>e.visible=!1))}),[]),null};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("react-merge-refs"),c=require("./Line.cjs.js");function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=o(t);const i=new r.Vector3,a=s.forwardRef((function({start:t=[0,0,0],end:o=[0,0,0],mid:a,segments:u=20,...f},v){const d=s.useRef(null),[l]=s.useState((()=>new r.QuadraticBezierCurve3(void 0,void 0,void 0))),y=s.useCallback(((e,t,n,c=20)=>(e instanceof r.Vector3?l.v0.copy(e):l.v0.set(...e),t instanceof r.Vector3?l.v2.copy(t):l.v2.set(...t),n instanceof r.Vector3?l.v1.copy(n):Array.isArray(n)?l.v1.set(...n):l.v1.copy(l.v0.clone().add(l.v2.clone().sub(l.v0)).add(i.set(0,l.v0.y-l.v2.y,0))),l.getPoints(c))),[]);s.useLayoutEffect((()=>{d.current.setPoints=(e,t,r)=>{const n=y(e,t,r);d.current.geometry&&d.current.geometry.setPositions(n.map((e=>e.toArray())).flat())}}),[]);const p=s.useMemo((()=>y(t,o,a,u)),[t,o,a,u]);return s.createElement(c.Line,e({ref:n([d,v]),points:p},f))}));exports.QuadraticBezierLine=a;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("react-merge-refs"),o=require("./Line.cjs.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("@react-three/fiber"),require("three-stdlib");var i=c(e),s=u(t),a=c(n);const f=new r.Vector3,d=s.forwardRef((function({start:e=[0,0,0],end:t=[0,0,0],mid:n,segments:c=20,...u},d){const l=s.useRef(null),[v]=s.useState((()=>new r.QuadraticBezierCurve3(void 0,void 0,void 0))),y=s.useCallback(((e,t,n,o=20)=>(e instanceof r.Vector3?v.v0.copy(e):v.v0.set(...e),t instanceof r.Vector3?v.v2.copy(t):v.v2.set(...t),n instanceof r.Vector3?v.v1.copy(n):Array.isArray(n)?v.v1.set(...n):v.v1.copy(v.v0.clone().add(v.v2.clone().sub(v.v0)).add(f.set(0,v.v0.y-v.v2.y,0))),v.getPoints(o))),[]);s.useLayoutEffect((()=>{l.current.setPoints=(e,t,r)=>{const n=y(e,t,r);l.current.geometry&&l.current.geometry.setPositions(n.map((e=>e.toArray())).flat())}}),[]);const b=s.useMemo((()=>y(e,t,n,c)),[e,t,n,c]);return s.createElement(o.Line,i.default({ref:a.default([l,d]),points:b},u))}));exports.QuadraticBezierLine=d;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),a=require("@react-three/fiber"),n=require("react-merge-refs"),s=require("../materials/BlurPass.cjs.js"),o=require("../materials/MeshReflectorMaterial.cjs.js");function i(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 l=i(t);const u=l.forwardRef((({mixBlur:t=0,mixStrength:i=.5,resolution:u=256,blur:c=[0,0],args:d=[1,1],minDepthThreshold:p=.9,maxDepthThreshold:m=1,depthScale:h=0,depthToBlurRatioBias:x=.25,mirror:f=0,children:M,debug:w=0,distortion:T=1,mixContrast:b=1,distortionMap:y,...g},S)=>{a.extend({MeshReflectorMaterial:o.MeshReflectorMaterial}),l.useEffect((()=>{console.warn("Reflector has been deprecated and will be removed next major. Replace it with <MeshReflectorMaterial />!")}),[]);const R=a.useThree((({gl:e})=>e)),j=a.useThree((({camera:e})=>e)),B=a.useThree((({scene:e})=>e)),D=(c=Array.isArray(c)?c:[c,c])[0]+c[1]>0,v=l.useRef(null),[F]=l.useState((()=>new r.Plane)),[P]=l.useState((()=>new r.Vector3)),[V]=l.useState((()=>new r.Vector3)),[W]=l.useState((()=>new r.Vector3)),[E]=l.useState((()=>new r.Matrix4)),[O]=l.useState((()=>new r.Vector3(0,0,-1))),[U]=l.useState((()=>new r.Vector4)),[q]=l.useState((()=>new r.Vector3)),[C]=l.useState((()=>new r.Vector3)),[L]=l.useState((()=>new r.Vector4)),[k]=l.useState((()=>new r.Matrix4)),[z]=l.useState((()=>new r.PerspectiveCamera)),A=l.useCallback((()=>{if(V.setFromMatrixPosition(v.current.matrixWorld),W.setFromMatrixPosition(j.matrixWorld),E.extractRotation(v.current.matrixWorld),P.set(0,0,1),P.applyMatrix4(E),q.subVectors(V,W),q.dot(P)>0)return;q.reflect(P).negate(),q.add(V),E.extractRotation(j.matrixWorld),O.set(0,0,-1),O.applyMatrix4(E),O.add(W),C.subVectors(V,O),C.reflect(P).negate(),C.add(V),z.position.copy(q),z.up.set(0,1,0),z.up.applyMatrix4(E),z.up.reflect(P),z.lookAt(C),z.far=j.far,z.updateMatrixWorld(),z.projectionMatrix.copy(j.projectionMatrix),k.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),k.multiply(z.projectionMatrix),k.multiply(z.matrixWorldInverse),k.multiply(v.current.matrixWorld),F.setFromNormalAndCoplanarPoint(P,V),F.applyMatrix4(z.matrixWorldInverse),U.set(F.normal.x,F.normal.y,F.normal.z,F.constant);const e=z.projectionMatrix;L.x=(Math.sign(U.x)+e.elements[8])/e.elements[0],L.y=(Math.sign(U.y)+e.elements[9])/e.elements[5],L.z=-1,L.w=(1+e.elements[10])/e.elements[14],U.multiplyScalar(2/U.dot(L)),e.elements[2]=U.x,e.elements[6]=U.y,e.elements[10]=U.z+1,e.elements[14]=U.w}),[]),[I,G,_,H]=l.useMemo((()=>{const e={type:r.HalfFloatType,minFilter:r.LinearFilter,magFilter:r.LinearFilter},a=new r.WebGLRenderTarget(u,u,e);a.depthBuffer=!0,a.depthTexture=new r.DepthTexture(u,u),a.depthTexture.format=r.DepthFormat,a.depthTexture.type=r.UnsignedShortType;const n=new r.WebGLRenderTarget(u,u,e);return[a,n,new s.BlurPass({gl:R,resolution:u,width:c[0],height:c[1],minDepthThreshold:p,maxDepthThreshold:m,depthScale:h,depthToBlurRatioBias:x}),{mirror:f,textureMatrix:k,mixBlur:t,tDiffuse:a.texture,tDepth:a.depthTexture,tDiffuseBlur:n.texture,hasBlur:D,mixStrength:i,minDepthThreshold:p,maxDepthThreshold:m,depthScale:h,depthToBlurRatioBias:x,transparent:!0,debug:w,distortion:T,distortionMap:y,mixContrast:b,"defines-USE_BLUR":D?"":void 0,"defines-USE_DEPTH":h>0?"":void 0,"defines-USE_DISTORTION":y?"":void 0}]}),[R,c,k,u,f,D,t,i,p,m,h,x,w,T,y,b]);return a.useFrame((()=>{if(null==v||!v.current)return;v.current.visible=!1;const e=R.xr.enabled,t=R.shadowMap.autoUpdate;A(),R.xr.enabled=!1,R.shadowMap.autoUpdate=!1,R.setRenderTarget(I),R.state.buffers.depth.setMask(!0),R.autoClear||R.clear(),R.render(B,z),D&&_.render(R,I,G),R.xr.enabled=e,R.shadowMap.autoUpdate=t,v.current.visible=!0,R.setRenderTarget(null)})),l.createElement("mesh",e({ref:n([v,S])},g),l.createElement("planeGeometry",{args:d}),M?M("meshReflectorMaterial",H):l.createElement("meshReflectorMaterial",H))}));exports.Reflector=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),a=require("@react-three/fiber"),n=require("react-merge-refs"),s=require("../materials/BlurPass.cjs.js"),o=require("../materials/MeshReflectorMaterial.cjs.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("../materials/ConvolutionMaterial.cjs.js"),require("../helpers/constants.cjs.js");var u=i(e),d=l(t),c=i(n);const p=d.forwardRef((({mixBlur:e=0,mixStrength:t=.5,resolution:n=256,blur:i=[0,0],args:l=[1,1],minDepthThreshold:p=.9,maxDepthThreshold:m=1,depthScale:h=0,depthToBlurRatioBias:f=.25,mirror:x=0,children:M,debug:b=0,distortion:w=1,mixContrast:y=1,distortionMap:T,...g},S)=>{a.extend({MeshReflectorMaterial:o.MeshReflectorMaterial}),d.useEffect((()=>{console.warn("Reflector has been deprecated and will be removed next major. Replace it with <MeshReflectorMaterial />!")}),[]);const R=a.useThree((({gl:e})=>e)),j=a.useThree((({camera:e})=>e)),v=a.useThree((({scene:e})=>e)),B=(i=Array.isArray(i)?i:[i,i])[0]+i[1]>0,D=d.useRef(null),[P]=d.useState((()=>new r.Plane)),[F]=d.useState((()=>new r.Vector3)),[V]=d.useState((()=>new r.Vector3)),[W]=d.useState((()=>new r.Vector3)),[q]=d.useState((()=>new r.Matrix4)),[E]=d.useState((()=>new r.Vector3(0,0,-1))),[O]=d.useState((()=>new r.Vector4)),[U]=d.useState((()=>new r.Vector3)),[C]=d.useState((()=>new r.Vector3)),[_]=d.useState((()=>new r.Vector4)),[L]=d.useState((()=>new r.Matrix4)),[k]=d.useState((()=>new r.PerspectiveCamera)),z=d.useCallback((()=>{if(V.setFromMatrixPosition(D.current.matrixWorld),W.setFromMatrixPosition(j.matrixWorld),q.extractRotation(D.current.matrixWorld),F.set(0,0,1),F.applyMatrix4(q),U.subVectors(V,W),U.dot(F)>0)return;U.reflect(F).negate(),U.add(V),q.extractRotation(j.matrixWorld),E.set(0,0,-1),E.applyMatrix4(q),E.add(W),C.subVectors(V,E),C.reflect(F).negate(),C.add(V),k.position.copy(U),k.up.set(0,1,0),k.up.applyMatrix4(q),k.up.reflect(F),k.lookAt(C),k.far=j.far,k.updateMatrixWorld(),k.projectionMatrix.copy(j.projectionMatrix),L.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),L.multiply(k.projectionMatrix),L.multiply(k.matrixWorldInverse),L.multiply(D.current.matrixWorld),P.setFromNormalAndCoplanarPoint(F,V),P.applyMatrix4(k.matrixWorldInverse),O.set(P.normal.x,P.normal.y,P.normal.z,P.constant);const e=k.projectionMatrix;_.x=(Math.sign(O.x)+e.elements[8])/e.elements[0],_.y=(Math.sign(O.y)+e.elements[9])/e.elements[5],_.z=-1,_.w=(1+e.elements[10])/e.elements[14],O.multiplyScalar(2/O.dot(_)),e.elements[2]=O.x,e.elements[6]=O.y,e.elements[10]=O.z+1,e.elements[14]=O.w}),[]),[A,I,G,H]=d.useMemo((()=>{const a={type:r.HalfFloatType,minFilter:r.LinearFilter,magFilter:r.LinearFilter},o=new r.WebGLRenderTarget(n,n,a);o.depthBuffer=!0,o.depthTexture=new r.DepthTexture(n,n),o.depthTexture.format=r.DepthFormat,o.depthTexture.type=r.UnsignedShortType;const l=new r.WebGLRenderTarget(n,n,a);return[o,l,new s.BlurPass({gl:R,resolution:n,width:i[0],height:i[1],minDepthThreshold:p,maxDepthThreshold:m,depthScale:h,depthToBlurRatioBias:f}),{mirror:x,textureMatrix:L,mixBlur:e,tDiffuse:o.texture,tDepth:o.depthTexture,tDiffuseBlur:l.texture,hasBlur:B,mixStrength:t,minDepthThreshold:p,maxDepthThreshold:m,depthScale:h,depthToBlurRatioBias:f,transparent:!0,debug:b,distortion:w,distortionMap:T,mixContrast:y,"defines-USE_BLUR":B?"":void 0,"defines-USE_DEPTH":h>0?"":void 0,"defines-USE_DISTORTION":T?"":void 0}]}),[R,i,L,n,x,B,e,t,p,m,h,f,b,w,T,y]);return a.useFrame((()=>{if(null==D||!D.current)return;D.current.visible=!1;const e=R.xr.enabled,t=R.shadowMap.autoUpdate;z(),R.xr.enabled=!1,R.shadowMap.autoUpdate=!1,R.setRenderTarget(A),R.state.buffers.depth.setMask(!0),R.autoClear||R.clear(),R.render(v,k),B&&G.render(R,A,I),R.xr.enabled=e,R.shadowMap.autoUpdate=t,D.current.visible=!0,R.setRenderTarget(null)})),d.createElement("mesh",u.default({ref:c.default([D,S])},g),d.createElement("planeGeometry",{args:l}),M?M("meshReflectorMaterial",H):d.createElement("meshReflectorMaterial",H))}));exports.Reflector=p;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber");function a(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 i=a(r),u=a(t);const c=u.forwardRef((({children:r,compute:t,renderPriority:a=-1,eventPriority:c=0,frames:s=1/0,stencilBuffer:l=!1,depthBuffer:f=!0,generateMipmaps:m=!1,resolution:p=896,near:d=.1,far:b=1e3,flip:g=!1,position:h,rotation:x,scale:v,quaternion:y,matrix:E,matrixAutoUpdate:P,...O},j)=>{const{size:q,viewport:w}=n.useThree(),T=u.useRef(null),R=u.useMemo((()=>{const e=new i.WebGLCubeRenderTarget(Math.max((p||q.width)*w.dpr,(p||q.height)*w.dpr),{stencilBuffer:l,depthBuffer:f,generateMipmaps:m});return e.texture.isRenderTargetTexture=!g,e.texture.flipY=!0,e.texture.type=i.HalfFloatType,e}),[p,g]);u.useEffect((()=>()=>R.dispose()),[R]);const[B]=u.useState((()=>new i.Scene));return u.useImperativeHandle(j,(()=>({scene:B,fbo:R,camera:T.current})),[R]),u.createElement(u.Fragment,null,n.createPortal(u.createElement(o,{renderPriority:a,frames:s,camera:T},r,u.createElement("group",{onPointerOver:()=>null})),B,{events:{compute:t,priority:c}}),u.createElement("primitive",e({object:R.texture},O)),u.createElement("cubeCamera",{ref:T,args:[d,b,R],position:h,rotation:x,scale:v,quaternion:y,matrix:E,matrixAutoUpdate:P}))}));function o({frames:e,renderPriority:r,children:t,camera:a}){let i=0;return n.useFrame((r=>{(e===1/0||i<e)&&(a.current.update(r.gl,r.scene),i++)}),r),u.createElement(u.Fragment,null,t)}exports.RenderCubeTexture=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber");function a(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 i=a(e),o=u(r),c=u(t);const l=c.forwardRef((({children:e,compute:r,renderPriority:t=-1,eventPriority:a=0,frames:u=1/0,stencilBuffer:l=!1,depthBuffer:f=!0,generateMipmaps:p=!1,resolution:m=896,near:d=.1,far:b=1e3,flip:x=!1,position:g,rotation:h,scale:y,quaternion:v,matrix:P,matrixAutoUpdate:j,...E},O)=>{const{size:q,viewport:w}=n.useThree(),M=c.useRef(null),T=c.useMemo((()=>{const e=new o.WebGLCubeRenderTarget(Math.max((m||q.width)*w.dpr,(m||q.height)*w.dpr),{stencilBuffer:l,depthBuffer:f,generateMipmaps:p});return e.texture.isRenderTargetTexture=!x,e.texture.flipY=!0,e.texture.type=o.HalfFloatType,e}),[m,x]);c.useEffect((()=>()=>T.dispose()),[T]);const[R]=c.useState((()=>new o.Scene));return c.useImperativeHandle(O,(()=>({scene:R,fbo:T,camera:M.current})),[T]),c.createElement(c.Fragment,null,n.createPortal(c.createElement(s,{renderPriority:t,frames:u,camera:M},e,c.createElement("group",{onPointerOver:()=>null})),R,{events:{compute:r,priority:a}}),c.createElement("primitive",i.default({object:T.texture},E)),c.createElement("cubeCamera",{ref:M,args:[d,b,T],position:g,rotation:h,scale:y,quaternion:v,matrix:P,matrixAutoUpdate:j}))}));function s({frames:e,renderPriority:r,children:t,camera:a}){let u=0;return n.useFrame((r=>{(e===1/0||u<e)&&(a.current.update(r.gl,r.scene),u++)}),r),c.createElement(c.Fragment,null,t)}exports.RenderCubeTexture=l;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),a=require("./useFBO.cjs.js");function u(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 i=u(r),l=u(t);const c=l.forwardRef((({children:r,compute:t,width:u,height:c,samples:o=8,renderPriority:f=0,eventPriority:m=0,frames:p=1/0,stencilBuffer:d=!1,depthBuffer:g=!0,generateMipmaps:b=!1,...v},h)=>{const{size:y,viewport:O}=n.useThree(),j=a.useFBO((u||y.width)*O.dpr,(c||y.height)*O.dpr,{samples:o,stencilBuffer:d,depthBuffer:g,generateMipmaps:b}),[x]=l.useState((()=>new i.Scene)),P=l.useCallback(((e,r,t)=>{var n,a;let u=null==(n=j.texture)?void 0:n.__r3f.parent;for(;u&&!(u instanceof i.Object3D);)u=u.__r3f.parent;if(!u)return!1;t.raycaster.camera||t.events.compute(e,t,null==(a=t.previousRoot)?void 0:a.getState());const[l]=t.raycaster.intersectObject(u);if(!l)return!1;const c=l.uv;if(!c)return!1;r.raycaster.setFromCamera(r.pointer.set(2*c.x-1,2*c.y-1),r.camera)}),[]);return l.useImperativeHandle(h,(()=>j.texture),[j]),l.createElement(l.Fragment,null,n.createPortal(l.createElement(s,{renderPriority:f,frames:p,fbo:j},r,l.createElement("group",{onPointerOver:()=>null})),x,{events:{compute:t||P,priority:m}}),l.createElement("primitive",e({object:j.texture},v)))}));function s({frames:e,renderPriority:r,children:t,fbo:a}){let u,i,c=0;return n.useFrame((r=>{(e===1/0||c<e)&&(u=r.gl.autoClear,i=r.gl.xr.enabled,r.gl.autoClear=!0,r.gl.xr.enabled=!1,r.gl.setRenderTarget(a),r.gl.render(r.scene,r.camera),r.gl.setRenderTarget(null),r.gl.autoClear=u,r.gl.xr.enabled=i,c++)}),r),l.createElement(l.Fragment,null,t)}exports.RenderTexture=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),n=require("@react-three/fiber"),a=require("./useFBO.cjs.js");function u(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 i=u(e),c=l(r),o=l(t);const s=o.forwardRef((({children:e,compute:r,width:t,height:u,samples:l=8,renderPriority:s=0,eventPriority:d=0,frames:p=1/0,stencilBuffer:m=!1,depthBuffer:g=!0,generateMipmaps:b=!1,...v},h)=>{const{size:y,viewport:j}=n.useThree(),O=a.useFBO((t||y.width)*j.dpr,(u||y.height)*j.dpr,{samples:l,stencilBuffer:m,depthBuffer:g,generateMipmaps:b}),[x]=o.useState((()=>new c.Scene)),P=o.useCallback(((e,r,t)=>{var n,a;let u=null==(n=O.texture)?void 0:n.__r3f.parent;for(;u&&!(u instanceof c.Object3D);)u=u.__r3f.parent;if(!u)return!1;t.raycaster.camera||t.events.compute(e,t,null==(a=t.previousRoot)?void 0:a.getState());const[l]=t.raycaster.intersectObject(u);if(!l)return!1;const i=l.uv;if(!i)return!1;r.raycaster.setFromCamera(r.pointer.set(2*i.x-1,2*i.y-1),r.camera)}),[]);return o.useImperativeHandle(h,(()=>O.texture),[O]),o.createElement(o.Fragment,null,n.createPortal(o.createElement(f,{renderPriority:s,frames:p,fbo:O},e,o.createElement("group",{onPointerOver:()=>null})),x,{events:{compute:r||P,priority:d}}),o.createElement("primitive",i.default({object:O.texture},v)))}));function f({frames:e,renderPriority:r,children:t,fbo:a}){let u,l,i=0;return n.useFrame((r=>{(e===1/0||i<e)&&(u=r.gl.autoClear,l=r.gl.xr.enabled,r.gl.autoClear=!0,r.gl.xr.enabled=!1,r.gl.setRenderTarget(a),r.gl.render(r.scene,r.camera),r.gl.setRenderTarget(null),r.gl.autoClear=u,r.gl.xr.enabled=l,i++)}),r),o.createElement(o.Fragment,null,t)}exports.RenderTexture=s;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react");function n(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=n(r),c=n(t);const a=c.forwardRef((({children:r,width:t,height:n,depth:a,box3:i,precise:l=!0,...o},s)=>{const f=c.useRef(null),m=c.useRef(null),d=c.useRef(null);return c.useLayoutEffect((()=>{m.current.matrixWorld.identity();let e=i||(new u.Box3).setFromObject(d.current,l);const r=e.max.x-e.min.x,c=e.max.y-e.min.y,o=e.max.z-e.min.z;let s=Math.max(r,c,o);t&&(s=r),n&&(s=c),a&&(s=o),m.current.scale.setScalar(1/s)}),[t,n,a,i,l]),c.useImperativeHandle(s,(()=>f.current),[]),c.createElement("group",e({ref:f},o),c.createElement("group",{ref:m},c.createElement("group",{ref:d},r)))}));exports.Resize=a;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=n(e),a=u(t),l=u(r);const i=l.forwardRef((({children:e,width:t,height:r,depth:n,box3:u,precise:i=!0,...o},f)=>{const s=l.useRef(null),d=l.useRef(null),m=l.useRef(null);return l.useLayoutEffect((()=>{d.current.matrixWorld.identity();let e=u||(new a.Box3).setFromObject(m.current,i);const c=e.max.x-e.min.x,l=e.max.y-e.min.y,o=e.max.z-e.min.z;let f=Math.max(c,l,o);t&&(f=c),r&&(f=l),n&&(f=o),d.current.scale.setScalar(1/f)}),[t,r,n,u,i]),l.useImperativeHandle(f,(()=>s.current),[]),l.createElement("group",c.default({ref:s},o),l.createElement("group",{ref:d},l.createElement("group",{ref:m},e)))}));exports.Resize=i;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("three-stdlib");function s(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 a=s(r);const c=1e-5;const u=a.forwardRef((function({args:[r=1,s=1,u=1]=[],radius:o=.05,steps:l=1,smoothness:b=4,bevelSegments:i=4,creaseAngle:f=.4,children:h,...d},m){const v=a.useMemo((()=>function(e,r,n){const s=new t.Shape,a=n-c;return s.absarc(c,c,c,-Math.PI/2,-Math.PI,!0),s.absarc(c,r-2*a,c,Math.PI,Math.PI/2,!0),s.absarc(e-2*a,r-2*a,c,Math.PI/2,0,!0),s.absarc(e-2*a,c,c,0,-Math.PI/2,!0),s}(r,s,o)),[r,s,o]),g=a.useMemo((()=>({depth:u-2*o,bevelEnabled:!0,bevelSegments:2*i,steps:l,bevelSize:o-c,bevelThickness:o,curveSegments:b})),[u,o,b]),p=a.useRef(null);return a.useLayoutEffect((()=>{p.current&&(p.current.center(),n.toCreasedNormals(p.current,f))}),[v,g]),a.createElement("mesh",e({ref:m},d),a.createElement("extrudeGeometry",{ref:p,args:[v,g]}),h)}));exports.RoundedBox=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("three-stdlib");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 u=s(e),c=a(t);const o=1e-5;const l=c.forwardRef((function({args:[e=1,t=1,s=1]=[],radius:a=.05,steps:l=1,smoothness:f=4,bevelSegments:i=4,creaseAngle:b=.4,children:d,...h},m){const p=c.useMemo((()=>function(e,t,n){const s=new r.Shape,a=n-o;return s.absarc(o,o,o,-Math.PI/2,-Math.PI,!0),s.absarc(o,t-2*a,o,Math.PI,Math.PI/2,!0),s.absarc(e-2*a,t-2*a,o,Math.PI/2,0,!0),s.absarc(e-2*a,o,o,0,-Math.PI/2,!0),s}(e,t,a)),[e,t,a]),v=c.useMemo((()=>({depth:s-2*a,bevelEnabled:!0,bevelSegments:2*i,steps:l,bevelSize:a-o,bevelThickness:a,curveSegments:f})),[s,a,f]),M=c.useRef(null);return c.useLayoutEffect((()=>{M.current&&(M.current.center(),n.toCreasedNormals(M.current,b))}),[p,v]),c.createElement("mesh",u.default({ref:m},h),c.createElement("extrudeGeometry",{ref:M,args:[p,v]}),d)}));exports.RoundedBox=l;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three-stdlib"),n=require("three");function u(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=u(r);function o(e,r=16,u,o,l){const[a,i]=c.useState((()=>{const e=Array.from({length:r},(()=>[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])).flat();return new n.InstancedBufferAttribute(Float32Array.from(e),16)}));return c.useLayoutEffect((()=>{if(void 0===e.current)return;const c=new t.MeshSurfaceSampler(e.current);o&&c.setWeightAttribute(o),c.build();const s=new n.Vector3,f=new n.Vector3,d=new n.Color,p=new n.Object3D;e.current.updateMatrixWorld(!0);for(let t=0;t<r;t++)c.sample(s,f,d),"function"==typeof u?u({dummy:p,sampledMesh:e.current,position:s,normal:f,color:d},t):p.position.copy(s),p.updateMatrix(),null!=l&&l.current&&l.current.setMatrixAt(t,p.matrix),p.matrix.toArray(a.array,16*t);null!=l&&l.current&&(l.current.instanceMatrix.needsUpdate=!0),a.needsUpdate=!0,i(a.clone())}),[e,l,o,r,u]),a}exports.Sampler=function({children:r,weight:t,transform:n,instances:u,mesh:l,count:a=16,...i}){const s=c.useRef(null),f=c.useRef(null),d=c.useRef(null);return c.useLayoutEffect((()=>{var e,r;f.current=null!==(e=null==u?void 0:u.current)&&void 0!==e?e:s.current.children.find((e=>e.hasOwnProperty("instanceMatrix"))),d.current=null!==(r=null==l?void 0:l.current)&&void 0!==r?r:s.current.children.find((e=>"Mesh"===e.type))}),[r,null==l?void 0:l.current,null==u?void 0:u.current]),o(d,a,n,t,f),c.createElement("group",e({ref:s},i),r)},exports.useSurfaceSampler=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three-stdlib"),n=require("three");function u(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 o=u(e),l=c(r);function a(e,r=16,u,c,o){const[a,i]=l.useState((()=>{const e=Array.from({length:r},(()=>[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])).flat();return new n.InstancedBufferAttribute(Float32Array.from(e),16)}));return l.useLayoutEffect((()=>{if(void 0===e.current)return;const l=new t.MeshSurfaceSampler(e.current);c&&l.setWeightAttribute(c),l.build();const s=new n.Vector3,f=new n.Vector3,d=new n.Color,p=new n.Object3D;e.current.updateMatrixWorld(!0);for(let t=0;t<r;t++)l.sample(s,f,d),"function"==typeof u?u({dummy:p,sampledMesh:e.current,position:s,normal:f,color:d},t):p.position.copy(s),p.updateMatrix(),null!=o&&o.current&&o.current.setMatrixAt(t,p.matrix),p.matrix.toArray(a.array,16*t);null!=o&&o.current&&(o.current.instanceMatrix.needsUpdate=!0),a.needsUpdate=!0,i(a.clone())}),[e,o,c,r,u]),a}exports.Sampler=function({children:e,weight:r,transform:t,instances:n,mesh:u,count:c=16,...i}){const s=l.useRef(null),f=l.useRef(null),d=l.useRef(null);return l.useLayoutEffect((()=>{var e,r;f.current=null!==(e=null==n?void 0:n.current)&&void 0!==e?e:s.current.children.find((e=>e.hasOwnProperty("instanceMatrix"))),d.current=null!==(r=null==u?void 0:u.current)&&void 0!==r?r:s.current.children.find((e=>"Mesh"===e.type))}),[e,null==u?void 0:u.current,null==n?void 0:n.current]),a(d,c,t,r,f),l.createElement("group",o.default({ref:s},i),e)},exports.useSurfaceSampler=a;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react");function n(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=n(r),o=n(t);function c(){const e=new u.BufferGeometry,r=new Float32Array([-1,-1,3,-1,-1,3]);return e.boundingSphere=new u.Sphere,e.boundingSphere.set(new u.Vector3,1/0),e.setAttribute("position",new u.BufferAttribute(r,2)),e}const i=o.forwardRef((function({children:r,...t},n){const u=o.useMemo(c,[]);return o.createElement("mesh",e({ref:n,geometry:u,frustumCulled:!1},t),r)}));exports.ScreenQuad=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react");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 o=n(e),f=u(r),c=u(t);function i(){const e=new f.BufferGeometry,r=new Float32Array([-1,-1,3,-1,-1,3]);return e.boundingSphere=new f.Sphere,e.boundingSphere.set(new f.Vector3,1/0),e.setAttribute("position",new f.BufferAttribute(r,2)),e}const a=c.forwardRef((function({children:e,...r},t){const n=c.useMemo(i,[]);return c.createElement("mesh",o.default({ref:t,geometry:n,frustumCulled:!1},r),e)}));exports.ScreenQuad=a;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("react-merge-refs"),n=require("@react-three/fiber");function c(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=c(r);const o=u.forwardRef((({children:r,depth:c=-1,...o},a)=>{const i=u.useRef(null);return n.useFrame((({camera:e})=>{i.current.quaternion.copy(e.quaternion),i.current.position.copy(e.position)})),u.createElement("group",e({ref:t([a,i])},o),u.createElement("group",{"position-z":-c},r))}));exports.ScreenSpace=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("react-merge-refs"),n=require("@react-three/fiber");function u(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 o=u(e),a=c(r),i=u(t);const f=a.forwardRef((({children:e,depth:r=-1,...t},u)=>{const c=a.useRef(null);return n.useFrame((({camera:e})=>{c.current.quaternion.copy(e.quaternion),c.current.position.copy(e.position)})),a.createElement("group",o.default({ref:i.default([u,c])},t),a.createElement("group",{"position-z":-r},e))}));exports.ScreenSpace=f;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("react-merge-refs"),o=require("@react-three/fiber"),c=require("three-stdlib");function s(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(t),a=s(r);const u=a.createContext(null),l=a.forwardRef(((t,r)=>{a.useMemo((()=>o.extend({SegmentObject:m})),[]);const{limit:n=1e3,lineWidth:s=1,children:l,...f}=t,[b,d]=a.useState([]),[g]=a.useState((()=>new c.Line2)),[h]=a.useState((()=>new c.LineMaterial)),[w]=a.useState((()=>new c.LineSegmentsGeometry)),[S]=a.useState((()=>new i.Vector2(512,512))),[p]=a.useState((()=>Array(6*n).fill(0))),[v]=a.useState((()=>Array(6*n).fill(0))),j=a.useMemo((()=>({subscribe:e=>(d((t=>[...t,e])),()=>d((t=>t.filter((t=>t.current!==e.current)))))})),[]);return o.useFrame((()=>{for(let t=0;t<n;t++){var e;const r=null==(e=b[t])?void 0:e.current;r&&(p[6*t+0]=r.start.x,p[6*t+1]=r.start.y,p[6*t+2]=r.start.z,p[6*t+3]=r.end.x,p[6*t+4]=r.end.y,p[6*t+5]=r.end.z,v[6*t+0]=r.color.r,v[6*t+1]=r.color.g,v[6*t+2]=r.color.b,v[6*t+3]=r.color.r,v[6*t+4]=r.color.g,v[6*t+5]=r.color.b)}w.setColors(v),w.setPositions(p),g.computeLineDistances()})),a.createElement("primitive",{object:g,ref:r},a.createElement("primitive",{object:w,attach:"geometry"}),a.createElement("primitive",e({object:h,attach:"material",vertexColors:!0,resolution:S,linewidth:s},f)),a.createElement(u.Provider,{value:j},l))}));class m{constructor(){this.color=new i.Color("white"),this.start=new i.Vector3(0,0,0),this.end=new i.Vector3(0,0,0)}}const f=e=>e instanceof i.Vector3?e:new i.Vector3(..."number"==typeof e?[e,e,e]:e),b=a.forwardRef((({color:e,start:t,end:r},o)=>{const c=a.useContext(u);if(!c)throw"Segment must used inside Segments component.";const s=a.useRef(null);return a.useLayoutEffect((()=>c.subscribe(s)),[]),a.createElement("segmentObject",{ref:n([s,o]),color:e,start:f(t),end:f(r)})}));exports.Segment=b,exports.SegmentObject=m,exports.Segments=l;
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-merge-refs"),o=require("@react-three/fiber"),c=require("three-stdlib");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 u=s(e),a=i(t),l=i(r),f=s(n);const m=l.createContext(null),d=l.forwardRef(((e,t)=>{l.useMemo((()=>o.extend({SegmentObject:b})),[]);const{limit:r=1e3,lineWidth:n=1,children:s,...i}=e,[f,d]=l.useState([]),[p]=l.useState((()=>new c.Line2)),[g]=l.useState((()=>new c.LineMaterial)),[h]=l.useState((()=>new c.LineSegmentsGeometry)),[w]=l.useState((()=>new a.Vector2(512,512))),[S]=l.useState((()=>Array(6*r).fill(0))),[j]=l.useState((()=>Array(6*r).fill(0))),v=l.useMemo((()=>({subscribe:e=>(d((t=>[...t,e])),()=>d((t=>t.filter((t=>t.current!==e.current)))))})),[]);return o.useFrame((()=>{for(let t=0;t<r;t++){var e;const r=null==(e=f[t])?void 0:e.current;r&&(S[6*t+0]=r.start.x,S[6*t+1]=r.start.y,S[6*t+2]=r.start.z,S[6*t+3]=r.end.x,S[6*t+4]=r.end.y,S[6*t+5]=r.end.z,j[6*t+0]=r.color.r,j[6*t+1]=r.color.g,j[6*t+2]=r.color.b,j[6*t+3]=r.color.r,j[6*t+4]=r.color.g,j[6*t+5]=r.color.b)}h.setColors(j),h.setPositions(S),p.computeLineDistances()})),l.createElement("primitive",{object:p,ref:t},l.createElement("primitive",{object:h,attach:"geometry"}),l.createElement("primitive",u.default({object:g,attach:"material",vertexColors:!0,resolution:w,linewidth:n},i)),l.createElement(m.Provider,{value:v},s))}));class b{constructor(){this.color=new a.Color("white"),this.start=new a.Vector3(0,0,0),this.end=new a.Vector3(0,0,0)}}const p=e=>e instanceof a.Vector3?e:new a.Vector3(..."number"==typeof e?[e,e,e]:e),g=l.forwardRef((({color:e,start:t,end:r},n)=>{const o=l.useContext(m);if(!o)throw"Segment must used inside Segments component.";const c=l.useRef(null);return l.useLayoutEffect((()=>o.subscribe(c)),[]),l.createElement("segmentObject",{ref:f.default([c,n]),color:e,start:p(t),end:p(r)})}));exports.Segment=g,exports.SegmentObject=b,exports.Segments=d;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three");function a(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 n=a(t);const o=n.forwardRef((({fog:t=!1,renderOrder:a,depthWrite:o=!1,colorStop:c=0,color:i="black",opacity:l=.5,...d},h)=>{const u=n.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const t=e.getContext("2d"),a=t.createRadialGradient(e.width/2,e.height/2,0,e.width/2,e.height/2,e.width/2);return a.addColorStop(c,new r.Color(i).getStyle()),a.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=a,t.fillRect(0,0,e.width,e.height),e}),[i,c]);return n.createElement("mesh",e({renderOrder:a,ref:h,"rotation-x":-Math.PI/2},d),n.createElement("planeGeometry",null),n.createElement("meshBasicMaterial",{transparent:!0,opacity:l,fog:t,depthWrite:o,side:r.DoubleSide},n.createElement("canvasTexture",{attach:"map",args:[u]})))}));exports.Shadow=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var 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 n=a(e),c=o(t);const i=c.forwardRef((({fog:e=!1,renderOrder:t,depthWrite:a=!1,colorStop:o=0,color:i="black",opacity:l=.5,...d},u)=>{const f=c.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const t=e.getContext("2d"),a=t.createRadialGradient(e.width/2,e.height/2,0,e.width/2,e.height/2,e.width/2);return a.addColorStop(o,new r.Color(i).getStyle()),a.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=a,t.fillRect(0,0,e.width,e.height),e}),[i,o]);return c.createElement("mesh",n.default({renderOrder:t,ref:u,"rotation-x":-Math.PI/2},d),c.createElement("planeGeometry",null),c.createElement("meshBasicMaterial",{transparent:!0,opacity:l,fog:e,depthWrite:a,side:r.DoubleSide},c.createElement("canvasTexture",{attach:"map",args:[f]})))}));exports.Shadow=i;
@@ -1 +1 @@
1
- "use strict";var e=require("@react-three/fiber"),r=require("react"),a=require("three");function t(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var t=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(r,a,t.get?t:{enumerable:!0,get:function(){return e[a]}})}})),r.default=e,Object.freeze(r)}var n=t(r),u=t(a);exports.ShadowAlpha=function({opacity:r,alphaMap:a}){const t=n.useRef(null),c=n.useRef(null),l=n.useRef({value:1}),o=n.useRef({value:null}),i=n.useRef({value:!1});return n.useLayoutEffect((()=>{t.current.onBeforeCompile=c.current.onBeforeCompile=e=>{const r=e.fragmentShader.indexOf("void main");let a,t="",n=r;for(;"\n"!==a&&n<r+100;)a=e.fragmentShader.charAt(n),t+=a,n++;t=t.trim(),e.vertexShader=e.vertexShader.replace("void main() {","\n varying vec2 custom_vUv;\n\n void main() {\n custom_vUv = uv;\n \n "),e.fragmentShader=e.fragmentShader.replace(t,"\n uniform float uShadowOpacity;\n uniform sampler2D uAlphaMap;\n uniform bool uHasAlphaMap;\n\n varying vec2 custom_vUv;\n \n float bayerDither2x2( vec2 v ) {\n return mod( 3.0 * v.y + 2.0 * v.x, 4.0 );\n }\n \n float bayerDither4x4( vec2 v ) {\n vec2 P1 = mod( v, 2.0 );\n vec2 P2 = mod( floor( 0.5 * v ), 2.0 );\n return 4.0 * bayerDither2x2( P1 ) + bayerDither2x2( P2 );\n }\n \n void main() {\n float alpha = \n uHasAlphaMap ? \n uShadowOpacity * texture2D(uAlphaMap, custom_vUv).x\n : uShadowOpacity;\n\n if( ( bayerDither4x4( floor( mod( gl_FragCoord.xy, 4.0 ) ) ) ) / 16.0 >= alpha ) discard;\n \n "),e.uniforms.uShadowOpacity=l.current,e.uniforms.uAlphaMap=o.current,e.uniforms.uHasAlphaMap=i.current}}),[]),e.useFrame((()=>{var e;const n=null==(e=t.current.__r3f)?void 0:e.parent;if(n){const e=n.material;e&&(l.current.value=null!=r?r:e.opacity,!1===a?(o.current.value=null,i.current.value=!1):(o.current.value=a||e.alphaMap,i.current.value=!!o.current.value))}})),n.createElement(n.Fragment,null,n.createElement("meshDepthMaterial",{ref:t,attach:"customDepthMaterial",depthPacking:u.RGBADepthPacking}),n.createElement("meshDistanceMaterial",{ref:c,attach:"customDistanceMaterial"}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@react-three/fiber"),r=require("react"),a=require("three");function t(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var t=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(r,a,t.get?t:{enumerable:!0,get:function(){return e[a]}})}})),r.default=e,Object.freeze(r)}var n=t(r),u=t(a);exports.ShadowAlpha=function({opacity:r,alphaMap:a}){const t=n.useRef(null),o=n.useRef(null),c=n.useRef({value:1}),l=n.useRef({value:null}),i=n.useRef({value:!1});return n.useLayoutEffect((()=>{t.current.onBeforeCompile=o.current.onBeforeCompile=e=>{const r=e.fragmentShader.indexOf("void main");let a,t="",n=r;for(;"\n"!==a&&n<r+100;)a=e.fragmentShader.charAt(n),t+=a,n++;t=t.trim(),e.vertexShader=e.vertexShader.replace("void main() {","\n varying vec2 custom_vUv;\n\n void main() {\n custom_vUv = uv;\n \n "),e.fragmentShader=e.fragmentShader.replace(t,"\n uniform float uShadowOpacity;\n uniform sampler2D uAlphaMap;\n uniform bool uHasAlphaMap;\n\n varying vec2 custom_vUv;\n \n float bayerDither2x2( vec2 v ) {\n return mod( 3.0 * v.y + 2.0 * v.x, 4.0 );\n }\n \n float bayerDither4x4( vec2 v ) {\n vec2 P1 = mod( v, 2.0 );\n vec2 P2 = mod( floor( 0.5 * v ), 2.0 );\n return 4.0 * bayerDither2x2( P1 ) + bayerDither2x2( P2 );\n }\n \n void main() {\n float alpha = \n uHasAlphaMap ? \n uShadowOpacity * texture2D(uAlphaMap, custom_vUv).x\n : uShadowOpacity;\n\n if( ( bayerDither4x4( floor( mod( gl_FragCoord.xy, 4.0 ) ) ) ) / 16.0 >= alpha ) discard;\n \n "),e.uniforms.uShadowOpacity=c.current,e.uniforms.uAlphaMap=l.current,e.uniforms.uHasAlphaMap=i.current}}),[]),e.useFrame((()=>{var e;const n=null==(e=t.current.__r3f)?void 0:e.parent;if(n){const e=n.material;e&&(c.current.value=null!=r?r:e.opacity,!1===a?(l.current.value=null,i.current.value=!1):(l.current.value=a||e.alphaMap,i.current.value=!!l.current.value))}})),n.createElement(n.Fragment,null,n.createElement("meshDepthMaterial",{ref:t,attach:"customDepthMaterial",depthPacking:u.RGBADepthPacking}),n.createElement("meshDistanceMaterial",{ref:o,attach:"customDistanceMaterial"}))};
@@ -11,7 +11,6 @@ import * as THREE from 'three';
11
11
  * Note:
12
12
  * - Must depreciate in favor of https://github.com/mrdoob/three.js/issues/10600 when it's ready.
13
13
  */
14
-
15
14
  function ShadowAlpha({
16
15
  opacity,
17
16
  alphaMap
package/core/Sky.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three-stdlib"),i=require("three");function a(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=a(t);function o(e,t,r=new i.Vector3){const a=Math.PI*(e-.5),n=2*Math.PI*(t-.5);return r.x=Math.cos(n),r.y=Math.sin(a),r.z=Math.sin(n),r}const u=n.forwardRef((({inclination:t=.6,azimuth:a=.1,distance:u=1e3,mieCoefficient:c=.005,mieDirectionalG:s=.8,rayleigh:l=.5,turbidity:f=10,sunPosition:m=o(t,a),...b},h)=>{const v=n.useMemo((()=>(new i.Vector3).setScalar(u)),[u]),[y]=n.useState((()=>new r.Sky));return n.createElement("primitive",e({object:y,ref:h,"material-uniforms-mieCoefficient-value":c,"material-uniforms-mieDirectionalG-value":s,"material-uniforms-rayleigh-value":l,"material-uniforms-sunPosition-value":m,"material-uniforms-turbidity-value":f,scale:v},b))}));exports.Sky=u,exports.calcPosFromAngles=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three-stdlib"),i=require("three");function n(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 i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var u=n(e),o=a(t);function c(e,t,r=new i.Vector3){const n=Math.PI*(e-.5),a=2*Math.PI*(t-.5);return r.x=Math.cos(a),r.y=Math.sin(n),r.z=Math.sin(a),r}const l=o.forwardRef((({inclination:e=.6,azimuth:t=.1,distance:n=1e3,mieCoefficient:a=.005,mieDirectionalG:l=.8,rayleigh:s=.5,turbidity:f=10,sunPosition:m=c(e,t),...d},b)=>{const h=o.useMemo((()=>(new i.Vector3).setScalar(n)),[n]),[y]=o.useState((()=>new r.Sky));return o.createElement("primitive",u.default({object:y,ref:b,"material-uniforms-mieCoefficient-value":a,"material-uniforms-mieDirectionalG-value":l,"material-uniforms-rayleigh-value":s,"material-uniforms-sunPosition-value":m,"material-uniforms-turbidity-value":f,scale:h},d))}));exports.Sky=l,exports.calcPosFromAngles=c;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),o=require("@react-three/fiber"),i=require("./shaderMaterial.cjs.js"),n=require("../helpers/constants.cjs.js");function a(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)}var s=a(t),l=a(r);const c=i.shaderMaterial({time:0,pixelRatio:1}," uniform float pixelRatio;\n uniform float time;\n attribute float size; \n attribute float speed; \n attribute float opacity;\n attribute vec3 noise;\n attribute vec3 color;\n varying vec3 vColor;\n varying float vOpacity;\n void main() {\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n modelPosition.y += sin(time * speed + modelPosition.x * noise.x * 100.0) * 0.2;\n modelPosition.z += cos(time * speed + modelPosition.x * noise.y * 100.0) * 0.2;\n modelPosition.x += cos(time * speed + modelPosition.x * noise.z * 100.0) * 0.2;\n vec4 viewPosition = viewMatrix * modelPosition;\n vec4 projectionPostion = projectionMatrix * viewPosition;\n gl_Position = projectionPostion;\n gl_PointSize = size * 25. * pixelRatio;\n gl_PointSize *= (1.0 / - viewPosition.z);\n vColor = color;\n vOpacity = opacity;\n }",` varying vec3 vColor;\n varying float vOpacity;\n void main() {\n float distanceToCenter = distance(gl_PointCoord, vec2(0.5));\n float strength = 0.05 / distanceToCenter - 0.1;\n gl_FragColor = vec4(vColor, strength * vOpacity);\n #include <tonemapping_fragment>\n #include <${n.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`),u=e=>e&&e.constructor===Float32Array,f=e=>e instanceof l.Vector2||e instanceof l.Vector3||e instanceof l.Vector4,m=e=>Array.isArray(e)?e:f(e)?e.toArray():[e,e,e];function p(e,t,r){return s.useMemo((()=>{if(void 0!==t){if(u(t))return t;if(t instanceof l.Color){const r=Array.from({length:3*e},(()=>{return[(e=t).r,e.g,e.b];var e})).flat();return Float32Array.from(r)}if(f(t)||Array.isArray(t)){const r=Array.from({length:3*e},(()=>m(t))).flat();return Float32Array.from(r)}return Float32Array.from({length:e},(()=>t))}return Float32Array.from({length:e},r)}),[t])}const d=s.forwardRef((({noise:t=1,count:r=100,speed:i=1,opacity:n=1,scale:a=1,size:f,color:d,children:v,...b},y)=>{s.useMemo((()=>o.extend({SparklesImplMaterial:c})),[]);const g=s.useRef(null),h=o.useThree((e=>e.viewport.dpr)),A=m(a),P=s.useMemo((()=>Float32Array.from(Array.from({length:r},(()=>A.map(l.MathUtils.randFloatSpread))).flat())),[r,...A]),x=p(r,f,Math.random),j=p(r,n),M=p(r,i),O=p(3*r,t),z=p(void 0===d?3*r:r,u(d)?d:new l.Color(d),(()=>1));return o.useFrame((e=>{g.current&&g.current.material&&(g.current.material.time=e.clock.elapsedTime)})),s.useImperativeHandle(y,(()=>g.current),[]),s.createElement("points",e({key:`particle-${r}-${JSON.stringify(a)}`},b,{ref:g}),s.createElement("bufferGeometry",null,s.createElement("bufferAttribute",{attach:"attributes-position",args:[P,3]}),s.createElement("bufferAttribute",{attach:"attributes-size",args:[x,1]}),s.createElement("bufferAttribute",{attach:"attributes-opacity",args:[j,1]}),s.createElement("bufferAttribute",{attach:"attributes-speed",args:[M,1]}),s.createElement("bufferAttribute",{attach:"attributes-color",args:[z,3]}),s.createElement("bufferAttribute",{attach:"attributes-noise",args:[O,3]})),v||s.createElement("sparklesImplMaterial",{transparent:!0,pixelRatio:h,depthWrite:!1}))}));exports.Sparkles=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),o=require("@react-three/fiber"),i=require("./shaderMaterial.cjs.js"),n=require("../helpers/constants.cjs.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(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)}var l=a(e),c=s(t),u=s(r);const f=i.shaderMaterial({time:0,pixelRatio:1}," uniform float pixelRatio;\n uniform float time;\n attribute float size; \n attribute float speed; \n attribute float opacity;\n attribute vec3 noise;\n attribute vec3 color;\n varying vec3 vColor;\n varying float vOpacity;\n void main() {\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n modelPosition.y += sin(time * speed + modelPosition.x * noise.x * 100.0) * 0.2;\n modelPosition.z += cos(time * speed + modelPosition.x * noise.y * 100.0) * 0.2;\n modelPosition.x += cos(time * speed + modelPosition.x * noise.z * 100.0) * 0.2;\n vec4 viewPosition = viewMatrix * modelPosition;\n vec4 projectionPostion = projectionMatrix * viewPosition;\n gl_Position = projectionPostion;\n gl_PointSize = size * 25. * pixelRatio;\n gl_PointSize *= (1.0 / - viewPosition.z);\n vColor = color;\n vOpacity = opacity;\n }",` varying vec3 vColor;\n varying float vOpacity;\n void main() {\n float distanceToCenter = distance(gl_PointCoord, vec2(0.5));\n float strength = 0.05 / distanceToCenter - 0.1;\n gl_FragColor = vec4(vColor, strength * vOpacity);\n #include <tonemapping_fragment>\n #include <${n.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`),m=e=>e&&e.constructor===Float32Array,p=e=>e instanceof u.Vector2||e instanceof u.Vector3||e instanceof u.Vector4,d=e=>Array.isArray(e)?e:p(e)?e.toArray():[e,e,e];function v(e,t,r){return c.useMemo((()=>{if(void 0!==t){if(m(t))return t;if(t instanceof u.Color){const r=Array.from({length:3*e},(()=>{return[(e=t).r,e.g,e.b];var e})).flat();return Float32Array.from(r)}if(p(t)||Array.isArray(t)){const r=Array.from({length:3*e},(()=>d(t))).flat();return Float32Array.from(r)}return Float32Array.from({length:e},(()=>t))}return Float32Array.from({length:e},r)}),[t])}const b=c.forwardRef((({noise:e=1,count:t=100,speed:r=1,opacity:i=1,scale:n=1,size:a,color:s,children:p,...b},y)=>{c.useMemo((()=>o.extend({SparklesImplMaterial:f})),[]);const g=c.useRef(null),h=o.useThree((e=>e.viewport.dpr)),A=d(n),P=c.useMemo((()=>Float32Array.from(Array.from({length:t},(()=>A.map(u.MathUtils.randFloatSpread))).flat())),[t,...A]),x=v(t,a,Math.random),j=v(t,i),M=v(t,r),O=v(3*t,e),_=v(void 0===s?3*t:t,m(s)?s:new u.Color(s),(()=>1));return o.useFrame((e=>{g.current&&g.current.material&&(g.current.material.time=e.clock.elapsedTime)})),c.useImperativeHandle(y,(()=>g.current),[]),c.createElement("points",l.default({key:`particle-${t}-${JSON.stringify(n)}`},b,{ref:g}),c.createElement("bufferGeometry",null,c.createElement("bufferAttribute",{attach:"attributes-position",args:[P,3]}),c.createElement("bufferAttribute",{attach:"attributes-size",args:[x,1]}),c.createElement("bufferAttribute",{attach:"attributes-opacity",args:[j,1]}),c.createElement("bufferAttribute",{attach:"attributes-speed",args:[M,1]}),c.createElement("bufferAttribute",{attach:"attributes-color",args:[_,3]}),c.createElement("bufferAttribute",{attach:"attributes-noise",args:[O,3]})),p||c.createElement("sparklesImplMaterial",{transparent:!0,pixelRatio:h,depthWrite:!1}))}));exports.Sparkles=b;
package/core/Splat.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("three"),n=require("react"),r=require("@react-three/fiber"),o=require("./shaderMaterial.cjs.js");function a(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var l=a(t),c=a(n);const s=o.shaderMaterial({alphaTest:0,viewport:new l.Vector2(1980,1080),focal:1e3,centerAndScaleTexture:null,covAndColorTexture:null},"\n precision highp sampler2D;\n precision highp usampler2D;\n out vec4 vColor;\n out vec3 vPosition;\n uniform vec2 resolution;\n uniform vec2 viewport;\n uniform float focal;\n attribute uint splatIndex;\n uniform sampler2D centerAndScaleTexture;\n uniform usampler2D covAndColorTexture; \n\n vec2 unpackInt16(in uint value) {\n int v = int(value);\n int v0 = v >> 16;\n int v1 = (v & 0xFFFF);\n if((v & 0x8000) != 0)\n v1 |= 0xFFFF0000;\n return vec2(float(v1), float(v0));\n }\n\n void main () {\n ivec2 texSize = textureSize(centerAndScaleTexture, 0);\n ivec2 texPos = ivec2(splatIndex%uint(texSize.x), splatIndex/uint(texSize.x));\n vec4 centerAndScaleData = texelFetch(centerAndScaleTexture, texPos, 0);\n vec4 center = vec4(centerAndScaleData.xyz, 1);\n vec4 camspace = modelViewMatrix * center;\n vec4 pos2d = projectionMatrix * camspace;\n\n float bounds = 1.2 * pos2d.w;\n if (pos2d.z < -pos2d.w || pos2d.x < -bounds || pos2d.x > bounds\n || pos2d.y < -bounds || pos2d.y > bounds) {\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n return;\n }\n\n uvec4 covAndColorData = texelFetch(covAndColorTexture, texPos, 0);\n vec2 cov3D_M11_M12 = unpackInt16(covAndColorData.x) * centerAndScaleData.w;\n vec2 cov3D_M13_M22 = unpackInt16(covAndColorData.y) * centerAndScaleData.w;\n vec2 cov3D_M23_M33 = unpackInt16(covAndColorData.z) * centerAndScaleData.w;\n mat3 Vrk = mat3(\n cov3D_M11_M12.x, cov3D_M11_M12.y, cov3D_M13_M22.x,\n cov3D_M11_M12.y, cov3D_M13_M22.y, cov3D_M23_M33.x,\n cov3D_M13_M22.x, cov3D_M23_M33.x, cov3D_M23_M33.y\n );\n\n mat3 J = mat3(\n focal / camspace.z, 0., -(focal * camspace.x) / (camspace.z * camspace.z),\n 0., focal / camspace.z, -(focal * camspace.y) / (camspace.z * camspace.z),\n 0., 0., 0.\n );\n\n mat3 W = transpose(mat3(modelViewMatrix));\n mat3 T = W * J;\n mat3 cov = transpose(T) * Vrk * T;\n vec2 vCenter = vec2(pos2d) / pos2d.w;\n float diagonal1 = cov[0][0] + 0.3;\n float offDiagonal = cov[0][1];\n float diagonal2 = cov[1][1] + 0.3;\n float mid = 0.5 * (diagonal1 + diagonal2);\n float radius = length(vec2((diagonal1 - diagonal2) / 2.0, offDiagonal));\n float lambda1 = mid + radius;\n float lambda2 = max(mid - radius, 0.1);\n vec2 diagonalVector = normalize(vec2(offDiagonal, lambda1 - diagonal1));\n vec2 v1 = min(sqrt(2.0 * lambda1), 1024.0) * diagonalVector;\n vec2 v2 = min(sqrt(2.0 * lambda2), 1024.0) * vec2(diagonalVector.y, -diagonalVector.x);\n uint colorUint = covAndColorData.w;\n vColor = vec4(\n float(colorUint & uint(0xFF)) / 255.0,\n float((colorUint >> uint(8)) & uint(0xFF)) / 255.0,\n float((colorUint >> uint(16)) & uint(0xFF)) / 255.0,\n float(colorUint >> uint(24)) / 255.0\n );\n vPosition = position;\n\n gl_Position = vec4(\n vCenter \n + position.x * v2 / viewport * 2.0 \n + position.y * v1 / viewport * 2.0, pos2d.z / pos2d.w, 1.0);\n }\n ",`\n #include <alphatest_pars_fragment>\n #include <alphahash_pars_fragment>\n in vec4 vColor;\n in vec3 vPosition;\n void main () {\n float A = -dot(vPosition.xy, vPosition.xy);\n if (A < -4.0) discard;\n float B = exp(A) * vColor.a;\n vec4 diffuseColor = vec4(vColor.rgb, B);\n #include <alphatest_fragment>\n #include <alphahash_fragment>\n gl_FragColor = diffuseColor;\n #include <tonemapping_fragment>\n #include <${parseInt(l.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n }\n `);function i(e){let t=null,n=0;e.onmessage=r=>{if("push"==r.data.method){0===n&&(t=new Float32Array(r.data.length));const e=new Float32Array(r.data.matrices);t.set(e,n),n+=e.length}else if("sort"==r.data.method&&null!==t){const n=function(e,n=!1){const r=t.length/16;let o=-1/0,a=1/0;const l=new Float32Array(r),c=new Int32Array(l.buffer),s=new Int32Array(r);let i=0;for(let c=0;c<r;c++){const r=e[0]*t[16*c+12]+e[1]*t[16*c+13]+e[2]*t[16*c+14]+e[3];(n||r<0&&t[16*c+15]>-1e-4*r)&&(l[i]=r,s[i]=c,i++,r>o&&(o=r),r<a&&(a=r))}const u=65535/(o-a),d=new Uint32Array(65536);for(let e=0;e<i;e++)c[e]=(l[e]-a)*u|0,d[c[e]]++;const f=new Uint32Array(65536);for(let e=1;e<65536;e++)f[e]=f[e-1]+d[e-1];const x=new Uint32Array(i);for(let e=0;e<i;e++)x[f[c[e]]++]=s[e];return x}(new Float32Array(r.data.view),r.data.hashed);e.postMessage({indices:n,key:r.data.key},[n.buffer])}}}class u extends l.Loader{constructor(...e){super(...e),this.gl=null,this.chunkSize=25e3}load(e,t,n,r){const o={gl:this.gl,url:this.manager.resolveURL(e),worker:new Worker(URL.createObjectURL(new Blob(["(",i.toString(),")(self)"],{type:"application/javascript"}))),manager:this.manager,update:(e,t,n)=>function(e,t,n,r){if(e.updateMatrixWorld(),t.gl.getCurrentViewport(n.viewport),n.material.viewport.x=n.viewport.z,n.material.viewport.y=n.viewport.w,n.material.focal=n.viewport.w/2*Math.abs(e.projectionMatrix.elements[5]),n.ready){if(r&&n.sorted)return;n.ready=!1;const e=new Float32Array([n.modelViewMatrix.elements[2],-n.modelViewMatrix.elements[6],n.modelViewMatrix.elements[10],n.modelViewMatrix.elements[14]]);t.worker.postMessage({method:"sort",src:t.url,key:n.uuid,view:e.buffer,hashed:r},[e.buffer]),r&&t.loaded&&(n.sorted=!0)}}(t,o,e,n),connect:e=>function(e,t){e.loading||async function(e){e.loading=!0;let t=0,n=0;const r=[];let o=0;const a=0!==e.totalDownloadBytes;for(;;)try{const{value:l,done:c}=await e.stream.read();if(c)break;if(t+=l.length,null!=e.totalDownloadBytes){const n=t/e.totalDownloadBytes*100;if(e.onProgress&&n-o>1){const r=new ProgressEvent("progress",{lengthComputable:a,loaded:t,total:e.totalDownloadBytes});e.onProgress(r),o=n}}r.push(l);const s=t-n;if(null!=e.totalDownloadBytes&&s>e.rowLength*e.chunkSize){let t=Math.floor(s/e.rowLength);const o=new Uint8Array(s);let l=0;for(const e of r)o.set(e,l),l+=e.length;if(r.length=0,s>t*e.rowLength){const n=new Uint8Array(s-t*e.rowLength);n.set(o.subarray(s-n.length,s),0),r.push(n)}const c=new Uint8Array(t*e.rowLength);c.set(o.subarray(0,c.byteLength),0);const i=d(e,c.buffer,t);if(e.worker.postMessage({method:"push",src:e.url,length:16*e.numVertices,matrices:i.buffer},[i.buffer]),n+=t*e.rowLength,e.onProgress){const t=new ProgressEvent("progress",{lengthComputable:a,loaded:e.totalDownloadBytes,total:e.totalDownloadBytes});e.onProgress(t)}}}catch(e){console.error(e);break}if(t-n>0){let t=new Uint8Array(r.reduce(((e,t)=>e+t.length),0)),n=0;for(const e of r)t.set(e,n),n+=e.length;let o=Math.floor(t.byteLength/e.rowLength);const a=d(e,t.buffer,o);e.worker.postMessage({method:"push",src:e.url,length:16*o,matrices:a.buffer},[a.buffer])}e.loaded=!0,e.manager.itemEnd(e.url)}(e);t.ready=!1,t.pm=new l.Matrix4,t.vm1=new l.Matrix4,t.vm2=new l.Matrix4,t.viewport=new l.Vector4;let n=new Uint32Array(e.bufferTextureWidth*e.bufferTextureHeight);const r=new l.InstancedBufferAttribute(n,1,!1);r.setUsage(l.DynamicDrawUsage);const o=t.geometry=new l.InstancedBufferGeometry,a=new Float32Array(18),c=new l.BufferAttribute(a,3);function s(e){if(t&&e.data.key===t.uuid){let n=new Uint32Array(e.data.indices);o.attributes.splatIndex.set(n),o.attributes.splatIndex.needsUpdate=!0,o.instanceCount=n.length,t.ready=!0}}async function i(){for(;;){const t=e.gl.properties.get(e.centerAndScaleTexture),n=e.gl.properties.get(e.covAndColorTexture);if(null!=t&&t.__webglTexture&&null!=n&&n.__webglTexture&&e.loadedVertexCount>0)break;await new Promise((e=>setTimeout(e,10)))}t.ready=!0}return o.setAttribute("position",c),c.setXYZ(2,-2,2,0),c.setXYZ(1,2,2,0),c.setXYZ(0,-2,-2,0),c.setXYZ(5,-2,-2,0),c.setXYZ(4,2,2,0),c.setXYZ(3,2,-2,0),c.needsUpdate=!0,o.setAttribute("splatIndex",r),o.instanceCount=1,e.worker.addEventListener("message",s),i(),()=>e.worker.removeEventListener("message",s)}(o,e),loading:!1,loaded:!1,loadedVertexCount:0,chunkSize:this.chunkSize,totalDownloadBytes:0,numVertices:0,rowLength:32,maxVertexes:0,bufferTextureWidth:0,bufferTextureHeight:0,stream:null,centerAndScaleData:null,covAndColorData:null,covAndColorTexture:null,centerAndScaleTexture:null,onProgress:n};(async function(e){e.manager.itemStart(e.url);const t=await fetch(e.url);if(null===t.body)throw"Failed to fetch file";let n=t.headers.get("Content-Length");const r=n?parseInt(n):void 0;if(null==r)throw"Failed to get content length";e.stream=t.body.getReader(),e.totalDownloadBytes=r,e.numVertices=Math.floor(e.totalDownloadBytes/e.rowLength);const o=e.gl.getContext();let a=o.getParameter(o.MAX_TEXTURE_SIZE);e.maxVertexes=a*a,e.numVertices>e.maxVertexes&&(e.numVertices=e.maxVertexes);return e.bufferTextureWidth=a,e.bufferTextureHeight=Math.floor((e.numVertices-1)/a)+1,e.centerAndScaleData=new Float32Array(e.bufferTextureWidth*e.bufferTextureHeight*4),e.covAndColorData=new Uint32Array(e.bufferTextureWidth*e.bufferTextureHeight*4),e.centerAndScaleTexture=new l.DataTexture(e.centerAndScaleData,e.bufferTextureWidth,e.bufferTextureHeight,l.RGBAFormat,l.FloatType),e.centerAndScaleTexture.needsUpdate=!0,e.covAndColorTexture=new l.DataTexture(e.covAndColorData,e.bufferTextureWidth,e.bufferTextureHeight,l.RGBAIntegerFormat,l.UnsignedIntType),e.covAndColorTexture.internalFormat="RGBA32UI",e.covAndColorTexture.needsUpdate=!0,e})(o).then(t).catch((e=>{null==r||r(e),o.manager.itemError(o.url)}))}}function d(e,t,n){const r=e.gl.getContext();if(e.loadedVertexCount+n>e.maxVertexes&&(n=e.maxVertexes-e.loadedVertexCount),n<=0)throw"Failed to parse file";const o=new Uint8Array(t),a=new Float32Array(t),c=new Float32Array(16*n),s=new Uint8Array(e.covAndColorData.buffer),i=new Int16Array(e.covAndColorData.buffer);for(let t=0;t<n;t++){const n=new l.Quaternion(-(o[32*t+28+1]-128)/128,(o[32*t+28+2]-128)/128,(o[32*t+28+3]-128)/128,-(o[32*t+28+0]-128)/128);n.invert();const r=new l.Vector3(a[8*t+0],a[8*t+1],-a[8*t+2]),u=new l.Vector3(a[8*t+3+0],a[8*t+3+1],a[8*t+3+2]),d=new l.Matrix4;d.makeRotationFromQuaternion(n),d.transpose(),d.scale(u);const f=d.clone();d.transpose(),d.premultiply(f),d.setPosition(r);const x=[0,1,2,5,6,10];let g=0;for(let e=0;e<x.length;e++)Math.abs(d.elements[x[e]])>g&&(g=Math.abs(d.elements[x[e]]));let m=4*e.loadedVertexCount+4*t;e.centerAndScaleData[m+0]=r.x,e.centerAndScaleData[m+1]=-r.y,e.centerAndScaleData[m+2]=r.z,e.centerAndScaleData[m+3]=g/32767,m=8*e.loadedVertexCount+4*t*2;for(let e=0;e<x.length;e++)i[m+e]=32767*d.elements[x[e]]/g;m=16*e.loadedVertexCount+4*(4*t+3);const p=new l.Color(o[32*t+24+0]/255,o[32*t+24+1]/255,o[32*t+24+2]/255);p.convertSRGBToLinear(),s[m+0]=255*p.r,s[m+1]=255*p.g,s[m+2]=255*p.b,s[m+3]=o[32*t+24+3],d.elements[15]=Math.max(u.x,u.y,u.z)*o[32*t+24+3]/255;for(let e=0;e<16;e++)c[16*t+e]=d.elements[e]}for(;n>0;){let t=0,o=0;const a=e.loadedVertexCount%e.bufferTextureWidth,l=Math.floor(e.loadedVertexCount/e.bufferTextureWidth);e.loadedVertexCount%e.bufferTextureWidth!=0?(t=Math.min(e.bufferTextureWidth,a+n)-a,o=1):Math.floor(n/e.bufferTextureWidth)>0?(t=e.bufferTextureWidth,o=Math.floor(n/e.bufferTextureWidth)):(t=n%e.bufferTextureWidth,o=1);const c=e.gl.properties.get(e.centerAndScaleTexture);r.bindTexture(r.TEXTURE_2D,c.__webglTexture),r.texSubImage2D(r.TEXTURE_2D,0,a,l,t,o,r.RGBA,r.FLOAT,e.centerAndScaleData,4*e.loadedVertexCount);const s=e.gl.properties.get(e.covAndColorTexture);r.bindTexture(r.TEXTURE_2D,s.__webglTexture),r.texSubImage2D(r.TEXTURE_2D,0,a,l,t,o,r.RGBA_INTEGER,r.UNSIGNED_INT,e.covAndColorData,4*e.loadedVertexCount),e.gl.resetState(),e.loadedVertexCount+=t*o,n-=t*o}return c}exports.Splat=function({src:t,toneMapped:n=!1,alphaTest:o=0,alphaHash:a=!1,chunkSize:i=25e3,...d}){r.extend({SplatMaterial:s});const f=c.useRef(null),x=r.useThree((e=>e.gl)),g=r.useThree((e=>e.camera)),m=r.useLoader(u,t,(e=>{e.gl=x,e.chunkSize=i}));return c.useLayoutEffect((()=>m.connect(f.current)),[t]),r.useFrame((()=>m.update(f.current,g,a))),c.createElement("mesh",e({ref:f,frustumCulled:!1},d),c.createElement("splatMaterial",{key:`${t}/${o}/${a}${s.key}`,transparent:!a,depthTest:!0,alphaTest:a?0:o,centerAndScaleTexture:m.centerAndScaleTexture,covAndColorTexture:m.covAndColorTexture,depthWrite:!!a||o>0,blending:a?l.NormalBlending:l.CustomBlending,blendSrcAlpha:l.OneFactor,alphaHash:!!a,toneMapped:n}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),n=require("react"),r=require("@react-three/fiber"),o=require("./shaderMaterial.cjs.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var c=a(e),s=l(t),i=l(n);const u=o.shaderMaterial({alphaTest:0,viewport:new s.Vector2(1980,1080),focal:1e3,centerAndScaleTexture:null,covAndColorTexture:null},"\n precision highp sampler2D;\n precision highp usampler2D;\n out vec4 vColor;\n out vec3 vPosition;\n uniform vec2 resolution;\n uniform vec2 viewport;\n uniform float focal;\n attribute uint splatIndex;\n uniform sampler2D centerAndScaleTexture;\n uniform usampler2D covAndColorTexture; \n\n vec2 unpackInt16(in uint value) {\n int v = int(value);\n int v0 = v >> 16;\n int v1 = (v & 0xFFFF);\n if((v & 0x8000) != 0)\n v1 |= 0xFFFF0000;\n return vec2(float(v1), float(v0));\n }\n\n void main () {\n ivec2 texSize = textureSize(centerAndScaleTexture, 0);\n ivec2 texPos = ivec2(splatIndex%uint(texSize.x), splatIndex/uint(texSize.x));\n vec4 centerAndScaleData = texelFetch(centerAndScaleTexture, texPos, 0);\n vec4 center = vec4(centerAndScaleData.xyz, 1);\n vec4 camspace = modelViewMatrix * center;\n vec4 pos2d = projectionMatrix * camspace;\n\n float bounds = 1.2 * pos2d.w;\n if (pos2d.z < -pos2d.w || pos2d.x < -bounds || pos2d.x > bounds\n || pos2d.y < -bounds || pos2d.y > bounds) {\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n return;\n }\n\n uvec4 covAndColorData = texelFetch(covAndColorTexture, texPos, 0);\n vec2 cov3D_M11_M12 = unpackInt16(covAndColorData.x) * centerAndScaleData.w;\n vec2 cov3D_M13_M22 = unpackInt16(covAndColorData.y) * centerAndScaleData.w;\n vec2 cov3D_M23_M33 = unpackInt16(covAndColorData.z) * centerAndScaleData.w;\n mat3 Vrk = mat3(\n cov3D_M11_M12.x, cov3D_M11_M12.y, cov3D_M13_M22.x,\n cov3D_M11_M12.y, cov3D_M13_M22.y, cov3D_M23_M33.x,\n cov3D_M13_M22.x, cov3D_M23_M33.x, cov3D_M23_M33.y\n );\n\n mat3 J = mat3(\n focal / camspace.z, 0., -(focal * camspace.x) / (camspace.z * camspace.z),\n 0., focal / camspace.z, -(focal * camspace.y) / (camspace.z * camspace.z),\n 0., 0., 0.\n );\n\n mat3 W = transpose(mat3(modelViewMatrix));\n mat3 T = W * J;\n mat3 cov = transpose(T) * Vrk * T;\n vec2 vCenter = vec2(pos2d) / pos2d.w;\n float diagonal1 = cov[0][0] + 0.3;\n float offDiagonal = cov[0][1];\n float diagonal2 = cov[1][1] + 0.3;\n float mid = 0.5 * (diagonal1 + diagonal2);\n float radius = length(vec2((diagonal1 - diagonal2) / 2.0, offDiagonal));\n float lambda1 = mid + radius;\n float lambda2 = max(mid - radius, 0.1);\n vec2 diagonalVector = normalize(vec2(offDiagonal, lambda1 - diagonal1));\n vec2 v1 = min(sqrt(2.0 * lambda1), 1024.0) * diagonalVector;\n vec2 v2 = min(sqrt(2.0 * lambda2), 1024.0) * vec2(diagonalVector.y, -diagonalVector.x);\n uint colorUint = covAndColorData.w;\n vColor = vec4(\n float(colorUint & uint(0xFF)) / 255.0,\n float((colorUint >> uint(8)) & uint(0xFF)) / 255.0,\n float((colorUint >> uint(16)) & uint(0xFF)) / 255.0,\n float(colorUint >> uint(24)) / 255.0\n );\n vPosition = position;\n\n gl_Position = vec4(\n vCenter \n + position.x * v2 / viewport * 2.0 \n + position.y * v1 / viewport * 2.0, pos2d.z / pos2d.w, 1.0);\n }\n ",`\n #include <alphatest_pars_fragment>\n #include <alphahash_pars_fragment>\n in vec4 vColor;\n in vec3 vPosition;\n void main () {\n float A = -dot(vPosition.xy, vPosition.xy);\n if (A < -4.0) discard;\n float B = exp(A) * vColor.a;\n vec4 diffuseColor = vec4(vColor.rgb, B);\n #include <alphatest_fragment>\n #include <alphahash_fragment>\n gl_FragColor = diffuseColor;\n #include <tonemapping_fragment>\n #include <${parseInt(s.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n }\n `);function d(e){let t=null,n=0;e.onmessage=r=>{if("push"==r.data.method){0===n&&(t=new Float32Array(r.data.length));const e=new Float32Array(r.data.matrices);t.set(e,n),n+=e.length}else if("sort"==r.data.method&&null!==t){const n=function(e,n=!1){const r=t.length/16;let o=-1/0,a=1/0;const l=new Float32Array(r),c=new Int32Array(l.buffer),s=new Int32Array(r);let i=0;for(let c=0;c<r;c++){const r=e[0]*t[16*c+12]+e[1]*t[16*c+13]+e[2]*t[16*c+14]+e[3];(n||r<0&&t[16*c+15]>-1e-4*r)&&(l[i]=r,s[i]=c,i++,r>o&&(o=r),r<a&&(a=r))}const u=65535/(o-a),d=new Uint32Array(65536);for(let e=0;e<i;e++)c[e]=(l[e]-a)*u|0,d[c[e]]++;const f=new Uint32Array(65536);for(let e=1;e<65536;e++)f[e]=f[e-1]+d[e-1];const x=new Uint32Array(i);for(let e=0;e<i;e++)x[f[c[e]]++]=s[e];return x}(new Float32Array(r.data.view),r.data.hashed);e.postMessage({indices:n,key:r.data.key},[n.buffer])}}}class f extends s.Loader{constructor(...e){super(...e),this.gl=null,this.chunkSize=25e3}load(e,t,n,r){const o={gl:this.gl,url:this.manager.resolveURL(e),worker:new Worker(URL.createObjectURL(new Blob(["(",d.toString(),")(self)"],{type:"application/javascript"}))),manager:this.manager,update:(e,t,n)=>function(e,t,n,r){if(e.updateMatrixWorld(),t.gl.getCurrentViewport(n.viewport),n.material.viewport.x=n.viewport.z,n.material.viewport.y=n.viewport.w,n.material.focal=n.viewport.w/2*Math.abs(e.projectionMatrix.elements[5]),n.ready){if(r&&n.sorted)return;n.ready=!1;const e=new Float32Array([n.modelViewMatrix.elements[2],-n.modelViewMatrix.elements[6],n.modelViewMatrix.elements[10],n.modelViewMatrix.elements[14]]);t.worker.postMessage({method:"sort",src:t.url,key:n.uuid,view:e.buffer,hashed:r},[e.buffer]),r&&t.loaded&&(n.sorted=!0)}}(t,o,e,n),connect:e=>function(e,t){e.loading||async function(e){e.loading=!0;let t=0,n=0;const r=[];let o=0;const a=0!==e.totalDownloadBytes;for(;;)try{const{value:l,done:c}=await e.stream.read();if(c)break;if(t+=l.length,null!=e.totalDownloadBytes){const n=t/e.totalDownloadBytes*100;if(e.onProgress&&n-o>1){const r=new ProgressEvent("progress",{lengthComputable:a,loaded:t,total:e.totalDownloadBytes});e.onProgress(r),o=n}}r.push(l);const s=t-n;if(null!=e.totalDownloadBytes&&s>e.rowLength*e.chunkSize){let t=Math.floor(s/e.rowLength);const o=new Uint8Array(s);let l=0;for(const e of r)o.set(e,l),l+=e.length;if(r.length=0,s>t*e.rowLength){const n=new Uint8Array(s-t*e.rowLength);n.set(o.subarray(s-n.length,s),0),r.push(n)}const c=new Uint8Array(t*e.rowLength);c.set(o.subarray(0,c.byteLength),0);const i=x(e,c.buffer,t);if(e.worker.postMessage({method:"push",src:e.url,length:16*e.numVertices,matrices:i.buffer},[i.buffer]),n+=t*e.rowLength,e.onProgress){const t=new ProgressEvent("progress",{lengthComputable:a,loaded:e.totalDownloadBytes,total:e.totalDownloadBytes});e.onProgress(t)}}}catch(e){console.error(e);break}if(t-n>0){let t=new Uint8Array(r.reduce(((e,t)=>e+t.length),0)),n=0;for(const e of r)t.set(e,n),n+=e.length;let o=Math.floor(t.byteLength/e.rowLength);const a=x(e,t.buffer,o);e.worker.postMessage({method:"push",src:e.url,length:16*o,matrices:a.buffer},[a.buffer])}e.loaded=!0,e.manager.itemEnd(e.url)}(e);t.ready=!1,t.pm=new s.Matrix4,t.vm1=new s.Matrix4,t.vm2=new s.Matrix4,t.viewport=new s.Vector4;let n=new Uint32Array(e.bufferTextureWidth*e.bufferTextureHeight);const r=new s.InstancedBufferAttribute(n,1,!1);r.setUsage(s.DynamicDrawUsage);const o=t.geometry=new s.InstancedBufferGeometry,a=new Float32Array(18),l=new s.BufferAttribute(a,3);function c(e){if(t&&e.data.key===t.uuid){let n=new Uint32Array(e.data.indices);o.attributes.splatIndex.set(n),o.attributes.splatIndex.needsUpdate=!0,o.instanceCount=n.length,t.ready=!0}}async function i(){for(;;){const t=e.gl.properties.get(e.centerAndScaleTexture),n=e.gl.properties.get(e.covAndColorTexture);if(null!=t&&t.__webglTexture&&null!=n&&n.__webglTexture&&e.loadedVertexCount>0)break;await new Promise((e=>setTimeout(e,10)))}t.ready=!0}return o.setAttribute("position",l),l.setXYZ(2,-2,2,0),l.setXYZ(1,2,2,0),l.setXYZ(0,-2,-2,0),l.setXYZ(5,-2,-2,0),l.setXYZ(4,2,2,0),l.setXYZ(3,2,-2,0),l.needsUpdate=!0,o.setAttribute("splatIndex",r),o.instanceCount=1,e.worker.addEventListener("message",c),i(),()=>e.worker.removeEventListener("message",c)}(o,e),loading:!1,loaded:!1,loadedVertexCount:0,chunkSize:this.chunkSize,totalDownloadBytes:0,numVertices:0,rowLength:32,maxVertexes:0,bufferTextureWidth:0,bufferTextureHeight:0,stream:null,centerAndScaleData:null,covAndColorData:null,covAndColorTexture:null,centerAndScaleTexture:null,onProgress:n};(async function(e){e.manager.itemStart(e.url);const t=await fetch(e.url);if(null===t.body)throw"Failed to fetch file";let n=t.headers.get("Content-Length");const r=n?parseInt(n):void 0;if(null==r)throw"Failed to get content length";e.stream=t.body.getReader(),e.totalDownloadBytes=r,e.numVertices=Math.floor(e.totalDownloadBytes/e.rowLength);const o=e.gl.getContext();let a=o.getParameter(o.MAX_TEXTURE_SIZE);e.maxVertexes=a*a,e.numVertices>e.maxVertexes&&(e.numVertices=e.maxVertexes);return e.bufferTextureWidth=a,e.bufferTextureHeight=Math.floor((e.numVertices-1)/a)+1,e.centerAndScaleData=new Float32Array(e.bufferTextureWidth*e.bufferTextureHeight*4),e.covAndColorData=new Uint32Array(e.bufferTextureWidth*e.bufferTextureHeight*4),e.centerAndScaleTexture=new s.DataTexture(e.centerAndScaleData,e.bufferTextureWidth,e.bufferTextureHeight,s.RGBAFormat,s.FloatType),e.centerAndScaleTexture.needsUpdate=!0,e.covAndColorTexture=new s.DataTexture(e.covAndColorData,e.bufferTextureWidth,e.bufferTextureHeight,s.RGBAIntegerFormat,s.UnsignedIntType),e.covAndColorTexture.internalFormat="RGBA32UI",e.covAndColorTexture.needsUpdate=!0,e})(o).then(t).catch((e=>{null==r||r(e),o.manager.itemError(o.url)}))}}function x(e,t,n){const r=e.gl.getContext();if(e.loadedVertexCount+n>e.maxVertexes&&(n=e.maxVertexes-e.loadedVertexCount),n<=0)throw"Failed to parse file";const o=new Uint8Array(t),a=new Float32Array(t),l=new Float32Array(16*n),c=new Uint8Array(e.covAndColorData.buffer),i=new Int16Array(e.covAndColorData.buffer);for(let t=0;t<n;t++){const n=new s.Quaternion(-(o[32*t+28+1]-128)/128,(o[32*t+28+2]-128)/128,(o[32*t+28+3]-128)/128,-(o[32*t+28+0]-128)/128);n.invert();const r=new s.Vector3(a[8*t+0],a[8*t+1],-a[8*t+2]),u=new s.Vector3(a[8*t+3+0],a[8*t+3+1],a[8*t+3+2]),d=new s.Matrix4;d.makeRotationFromQuaternion(n),d.transpose(),d.scale(u);const f=d.clone();d.transpose(),d.premultiply(f),d.setPosition(r);const x=[0,1,2,5,6,10];let p=0;for(let e=0;e<x.length;e++)Math.abs(d.elements[x[e]])>p&&(p=Math.abs(d.elements[x[e]]));let g=4*e.loadedVertexCount+4*t;e.centerAndScaleData[g+0]=r.x,e.centerAndScaleData[g+1]=-r.y,e.centerAndScaleData[g+2]=r.z,e.centerAndScaleData[g+3]=p/32767,g=8*e.loadedVertexCount+4*t*2;for(let e=0;e<x.length;e++)i[g+e]=32767*d.elements[x[e]]/p;g=16*e.loadedVertexCount+4*(4*t+3);const m=new s.Color(o[32*t+24+0]/255,o[32*t+24+1]/255,o[32*t+24+2]/255);m.convertSRGBToLinear(),c[g+0]=255*m.r,c[g+1]=255*m.g,c[g+2]=255*m.b,c[g+3]=o[32*t+24+3],d.elements[15]=Math.max(u.x,u.y,u.z)*o[32*t+24+3]/255;for(let e=0;e<16;e++)l[16*t+e]=d.elements[e]}for(;n>0;){let t=0,o=0;const a=e.loadedVertexCount%e.bufferTextureWidth,l=Math.floor(e.loadedVertexCount/e.bufferTextureWidth);e.loadedVertexCount%e.bufferTextureWidth!=0?(t=Math.min(e.bufferTextureWidth,a+n)-a,o=1):Math.floor(n/e.bufferTextureWidth)>0?(t=e.bufferTextureWidth,o=Math.floor(n/e.bufferTextureWidth)):(t=n%e.bufferTextureWidth,o=1);const c=e.gl.properties.get(e.centerAndScaleTexture);r.bindTexture(r.TEXTURE_2D,c.__webglTexture),r.texSubImage2D(r.TEXTURE_2D,0,a,l,t,o,r.RGBA,r.FLOAT,e.centerAndScaleData,4*e.loadedVertexCount);const s=e.gl.properties.get(e.covAndColorTexture);r.bindTexture(r.TEXTURE_2D,s.__webglTexture),r.texSubImage2D(r.TEXTURE_2D,0,a,l,t,o,r.RGBA_INTEGER,r.UNSIGNED_INT,e.covAndColorData,4*e.loadedVertexCount),e.gl.resetState(),e.loadedVertexCount+=t*o,n-=t*o}return l}exports.Splat=function({src:e,toneMapped:t=!1,alphaTest:n=0,alphaHash:o=!1,chunkSize:a=25e3,...l}){r.extend({SplatMaterial:u});const d=i.useRef(null),x=r.useThree((e=>e.gl)),p=r.useThree((e=>e.camera)),g=r.useLoader(f,e,(e=>{e.gl=x,e.chunkSize=a}));return i.useLayoutEffect((()=>g.connect(d.current)),[e]),r.useFrame((()=>g.update(d.current,p,o))),i.createElement("mesh",c.default({ref:d,frustumCulled:!1},l),i.createElement("splatMaterial",{key:`${e}/${n}/${o}${u.key}`,transparent:!o,depthTest:!0,alphaTest:o?0:n,centerAndScaleTexture:g.centerAndScaleTexture,covAndColorTexture:g.covAndColorTexture,depthWrite:!!o||n>0,blending:o?s.NormalBlending:s.CustomBlending,blendSrcAlpha:s.OneFactor,alphaHash:!!o,toneMapped:t}))};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),a=require("@react-three/fiber"),n=require("three-stdlib"),o=require("react-merge-refs"),i=require("../materials/SpotLightMaterial.cjs.js"),l=require("../helpers/glsl/DefaultSpotlightShadowShadows.glsl.js");function u(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 s=u(t);const c=e=>null==e?void 0:e.isSpotLight;function p({opacity:e=1,radiusTop:t,radiusBottom:n,depthBuffer:o,color:l="white",distance:u=5,angle:c=.15,attenuation:p=5,anglePower:d=5}){const h=s.useRef(null),m=a.useThree((e=>e.size)),f=a.useThree((e=>e.camera)),g=a.useThree((e=>e.viewport.dpr)),[w]=s.useState((()=>new i.SpotLightMaterial)),[v]=s.useState((()=>new r.Vector3));t=void 0===t?.1:t,n=void 0===n?7*c:n,a.useFrame((()=>{w.uniforms.spotPosition.value.copy(h.current.getWorldPosition(v)),h.current.lookAt(h.current.parent.target.getWorldPosition(v))}));const S=s.useMemo((()=>{const e=new r.CylinderGeometry(t,n,u,128,64,!0);return e.applyMatrix4((new r.Matrix4).makeTranslation(0,-u/2,0)),e.applyMatrix4((new r.Matrix4).makeRotationX(-Math.PI/2)),e}),[u,t,n]);return s.createElement(s.Fragment,null,s.createElement("mesh",{ref:h,geometry:S,raycast:()=>null},s.createElement("primitive",{object:w,attach:"material","uniforms-opacity-value":e,"uniforms-lightColor-value":l,"uniforms-attenuation-value":p,"uniforms-anglePower-value":d,"uniforms-depth-value":o,"uniforms-cameraNear-value":f.near,"uniforms-cameraFar-value":f.far,"uniforms-resolution-value":o?[m.width*g,m.height*g]:[0,0]})))}function d(e,t,n,o,i){const[[l,u]]=s.useState((()=>[new r.Vector3,new r.Vector3]));s.useLayoutEffect((()=>{if(!c(e.current))throw new Error("SpotlightShadow must be a child of a SpotLight");e.current.shadow.mapSize.set(n,o),e.current.shadow.needsUpdate=!0}),[e,n,o]),a.useFrame((()=>{if(!e.current)return;const r=e.current.position,a=e.current.target.position;u.copy(a).sub(r);var n=u.length();u.normalize().multiplyScalar(n*i),l.copy(r).add(u),t.current.position.copy(l),t.current.lookAt(e.current.target.position)}))}function h({distance:e=.4,alphaTest:t=.5,map:o,shader:i=l,width:u=512,height:c=512,scale:p=1,children:h,...m}){const f=s.useRef(null),g=m.spotlightRef,w=m.debug;d(g,f,u,c,e);const v=s.useMemo((()=>new r.WebGLRenderTarget(u,c,{format:r.RGBAFormat,encoding:r.LinearEncoding,stencilBuffer:!1})),[u,c]),S=s.useRef({uShadowMap:{value:o},uTime:{value:0}});s.useEffect((()=>{S.current.uShadowMap.value=o}),[o]);const E=s.useMemo((()=>new n.FullScreenQuad(new r.ShaderMaterial({uniforms:S.current,vertexShader:"\n varying vec2 vUv;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ",fragmentShader:i}))),[i]);return s.useEffect((()=>()=>{E.material.dispose(),E.dispose()}),[E]),s.useEffect((()=>()=>v.dispose()),[v]),a.useFrame((({gl:e},t)=>{S.current.uTime.value+=t,e.setRenderTarget(v),E.render(e),e.setRenderTarget(null)})),s.createElement(s.Fragment,null,s.createElement("mesh",{ref:f,scale:p,castShadow:!0},s.createElement("planeGeometry",null),s.createElement("meshBasicMaterial",{transparent:!0,side:r.DoubleSide,alphaTest:t,alphaMap:v.texture,"alphaMap-wrapS":r.RepeatWrapping,"alphaMap-wrapT":r.RepeatWrapping,opacity:w?1:0},h)))}function m({distance:e=.4,alphaTest:t=.5,map:a,width:n=512,height:o=512,scale:i,children:l,...u}){const c=s.useRef(null),p=u.spotlightRef,h=u.debug;return d(p,c,n,o,e),s.createElement(s.Fragment,null,s.createElement("mesh",{ref:c,scale:i,castShadow:!0},s.createElement("planeGeometry",null),s.createElement("meshBasicMaterial",{transparent:!0,side:r.DoubleSide,alphaTest:t,alphaMap:a,"alphaMap-wrapS":r.RepeatWrapping,"alphaMap-wrapT":r.RepeatWrapping,opacity:h?1:0},l)))}const f=s.forwardRef((({opacity:t=1,radiusTop:r,radiusBottom:a,depthBuffer:n,color:i="white",distance:l=5,angle:u=.15,attenuation:c=5,anglePower:d=5,volumetric:h=!0,debug:m=!1,children:f,...g},w)=>{const v=s.useRef(null);return s.createElement("group",null,m&&v.current&&s.createElement("spotLightHelper",{args:[v.current]}),s.createElement("spotLight",e({ref:o([w,v]),angle:u,color:i,distance:l,castShadow:!0},g),h&&s.createElement(p,{debug:m,opacity:t,radiusTop:r,radiusBottom:a,depthBuffer:n,color:i,distance:l,angle:u,attenuation:c,anglePower:d})),f&&s.cloneElement(f,{spotlightRef:v,debug:m}))}));exports.SpotLight=f,exports.SpotLightShadow=function(e){return e.shader?s.createElement(h,e):s.createElement(m,e)};
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("three-stdlib"),o=require("react-merge-refs"),i=require("../materials/SpotLightMaterial.cjs.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("../helpers/constants.cjs.js");var s=u(e),c=l(t),p=u(o),d="#define GLSLIFY 1\nvarying vec2 vUv;uniform sampler2D uShadowMap;uniform float uTime;void main(){vec3 color=texture2D(uShadowMap,vUv).xyz;gl_FragColor=vec4(color,1.);}";const m=e=>null==e?void 0:e.isSpotLight;function h({opacity:e=1,radiusTop:t,radiusBottom:n,depthBuffer:o,color:u="white",distance:l=5,angle:s=.15,attenuation:p=5,anglePower:d=5}){const m=c.useRef(null),h=a.useThree((e=>e.size)),f=a.useThree((e=>e.camera)),g=a.useThree((e=>e.viewport.dpr)),[v]=c.useState((()=>new i.SpotLightMaterial)),[w]=c.useState((()=>new r.Vector3));t=void 0===t?.1:t,n=void 0===n?7*s:n,a.useFrame((()=>{v.uniforms.spotPosition.value.copy(m.current.getWorldPosition(w)),m.current.lookAt(m.current.parent.target.getWorldPosition(w))}));const S=c.useMemo((()=>{const e=new r.CylinderGeometry(t,n,l,128,64,!0);return e.applyMatrix4((new r.Matrix4).makeTranslation(0,-l/2,0)),e.applyMatrix4((new r.Matrix4).makeRotationX(-Math.PI/2)),e}),[l,t,n]);return c.createElement(c.Fragment,null,c.createElement("mesh",{ref:m,geometry:S,raycast:()=>null},c.createElement("primitive",{object:v,attach:"material","uniforms-opacity-value":e,"uniforms-lightColor-value":u,"uniforms-attenuation-value":p,"uniforms-anglePower-value":d,"uniforms-depth-value":o,"uniforms-cameraNear-value":f.near,"uniforms-cameraFar-value":f.far,"uniforms-resolution-value":o?[h.width*g,h.height*g]:[0,0]})))}function f(e,t,n,o,i){const[[u,l]]=c.useState((()=>[new r.Vector3,new r.Vector3]));c.useLayoutEffect((()=>{if(!m(e.current))throw new Error("SpotlightShadow must be a child of a SpotLight");e.current.shadow.mapSize.set(n,o),e.current.shadow.needsUpdate=!0}),[e,n,o]),a.useFrame((()=>{if(!e.current)return;const r=e.current.position,a=e.current.target.position;l.copy(a).sub(r);var n=l.length();l.normalize().multiplyScalar(n*i),u.copy(r).add(l),t.current.position.copy(u),t.current.lookAt(e.current.target.position)}))}function g({distance:e=.4,alphaTest:t=.5,map:o,shader:i=d,width:u=512,height:l=512,scale:s=1,children:p,...m}){const h=c.useRef(null),g=m.spotlightRef,v=m.debug;f(g,h,u,l,e);const w=c.useMemo((()=>new r.WebGLRenderTarget(u,l,{format:r.RGBAFormat,encoding:r.LinearEncoding,stencilBuffer:!1})),[u,l]),S=c.useRef({uShadowMap:{value:o},uTime:{value:0}});c.useEffect((()=>{S.current.uShadowMap.value=o}),[o]);const y=c.useMemo((()=>new n.FullScreenQuad(new r.ShaderMaterial({uniforms:S.current,vertexShader:"\n varying vec2 vUv;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ",fragmentShader:i}))),[i]);return c.useEffect((()=>()=>{y.material.dispose(),y.dispose()}),[y]),c.useEffect((()=>()=>w.dispose()),[w]),a.useFrame((({gl:e},t)=>{S.current.uTime.value+=t,e.setRenderTarget(w),y.render(e),e.setRenderTarget(null)})),c.createElement(c.Fragment,null,c.createElement("mesh",{ref:h,scale:s,castShadow:!0},c.createElement("planeGeometry",null),c.createElement("meshBasicMaterial",{transparent:!0,side:r.DoubleSide,alphaTest:t,alphaMap:w.texture,"alphaMap-wrapS":r.RepeatWrapping,"alphaMap-wrapT":r.RepeatWrapping,opacity:v?1:0},p)))}function v({distance:e=.4,alphaTest:t=.5,map:a,width:n=512,height:o=512,scale:i,children:u,...l}){const s=c.useRef(null),p=l.spotlightRef,d=l.debug;return f(p,s,n,o,e),c.createElement(c.Fragment,null,c.createElement("mesh",{ref:s,scale:i,castShadow:!0},c.createElement("planeGeometry",null),c.createElement("meshBasicMaterial",{transparent:!0,side:r.DoubleSide,alphaTest:t,alphaMap:a,"alphaMap-wrapS":r.RepeatWrapping,"alphaMap-wrapT":r.RepeatWrapping,opacity:d?1:0},u)))}const w=c.forwardRef((({opacity:e=1,radiusTop:t,radiusBottom:r,depthBuffer:a,color:n="white",distance:o=5,angle:i=.15,attenuation:u=5,anglePower:l=5,volumetric:d=!0,debug:m=!1,children:f,...g},v)=>{const w=c.useRef(null);return c.createElement("group",null,m&&w.current&&c.createElement("spotLightHelper",{args:[w.current]}),c.createElement("spotLight",s.default({ref:p.default([v,w]),angle:i,color:n,distance:o,castShadow:!0},g),d&&c.createElement(h,{debug:m,opacity:e,radiusTop:t,radiusBottom:r,depthBuffer:a,color:n,distance:o,angle:i,attenuation:u,anglePower:l})),f&&c.cloneElement(f,{spotlightRef:w,debug:m}))}));exports.SpotLight=w,exports.SpotLightShadow=function(e){return e.shader?c.createElement(g,e):c.createElement(v,e)};
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),n=require("three"),a=require("./Instances.cjs.js");function u(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=u(r),s=u(n);const o=c.createContext(null);const f=c.forwardRef((({startFrame:r,endFrame:n,fps:u,frameName:f,textureDataURL:l,textureImageURL:m,loop:i,numberOfFrames:p,autoPlay:h,animationNames:d,onStart:w,onEnd:y,onLoopEnd:E,onFrame:S,play:g,pause:x,flipX:b,alphaTest:F,children:R,asSprite:v,offset:z,playBackwards:A,resetOnEnd:M,maxItems:j,instanceItems:O,...N},L)=>{const k=c.useRef(),I=c.useRef(null),T=c.useRef(),P=c.useRef(),q=c.useRef(window.performance.now()),C=c.useRef(),D=c.useRef(r||0),B=c.useRef(f||""),U=1e3/(u||30),[G,H]=c.useState(new s.Texture),W=c.useRef(0),[X,J]=c.useState([1,1,1]),K=b?-1:1,[Q,V]=c.useState(null==v||v),Y=c.useRef(x),Z=c.useRef(z),$=c.useRef(!1),_=c.useRef([]);function ee(){}const re=c.useMemo((()=>({current:Z.current,offset:Z.current,imageUrl:m,reset:ee,hasEnded:!1,ref:L})),[m]);c.useImperativeHandle(L,(()=>k.current),[]),c.useLayoutEffect((()=>{Z.current=z}),[z]);const te=(e,r)=>{const t=r/e;return P.current&&P.current.scale.set(1,t,1),[1,t,1]};c.useEffect((()=>{if(l&&m)!function(e,r,t){const n=new s.TextureLoader,a=fetch(e).then((e=>e.json())),u=new Promise((e=>{n.load(r,e)}));Promise.all([a,u]).then((e=>{t(e[0],e[1])}))}(l,m,ne);else if(m){const e=new s.TextureLoader;new Promise((r=>{e.load(m,r)})).then((e=>{ne(null,e)}))}}),[]),c.useEffect((()=>{V(null==v||v)}),[v]),c.useEffect((()=>{re.hasEnded=!1,I.current&&!0===A?D.current=I.current.frames.length-1:D.current=0}),[A]),c.useLayoutEffect((()=>{ue()}),[G,b]),c.useEffect((()=>{h&&(Y.current=!1)}),[h]),c.useEffect((()=>{if(B.current!==f&&f&&(D.current=0,B.current=f,re.hasEnded=!1,ue(),I.current)){const{w:e,h:r}=se(I.current.frames).sourceSize,t=te(e,r);J(t)}}),[f]);const ne=(e,r)=>{if(null===e){if(p){const e=r.image.width,t=r.image.height,n=e/p,a=t;if(C.current=r,W.current=p,A&&(D.current=p-1),I.current={frames:[],meta:{version:"1.0",size:{w:e,h:t},scale:"1"}},parseInt(n.toString(),10)===n)for(let e=0;e<p;e++)I.current.frames.push({frame:{x:e*n,y:0,w:n,h:a},rotated:!1,trimmed:!1,spriteSourceSize:{x:0,y:0,w:n,h:a},sourceSize:{w:n,h:t}})}}else{I.current=e,I.current.frames=Array.isArray(e.frames)?e.frames:ae(),W.current=Array.isArray(e.frames)?e.frames.length:Object.keys(e.frames).length,C.current=r,A&&(D.current=W.current-1);const{w:t,h:n}=se(e.frames).sourceSize,a=te(t,n);J(a),T.current&&(T.current.map=r)}if(O)for(var t=0;t<O.length;t++){const e=Object.keys(I.current.frames),r=e[Math.floor(Math.random()*e.length)];_.current.push({key:t,frames:I.current.frames,selectedFrame:r,offset:{x:0,y:0}})}r.premultiplyAlpha=!1,H(r)},ae=()=>{const e={},r=I.current,t=d;if(t){for(let n=0;n<t.length;n++){e[t[n]]=[];for(const a in r.frames){const u=r.frames[a],c=u.frame,s=c.x,o=c.y,f=c.w,l=c.h,m=u.sourceSize.w,i=u.sourceSize.h;-1!==a.toLowerCase().indexOf(t[n].toLowerCase())&&e[t[n]].push({x:s,y:o,w:f,h:l,frame:c,sourceSize:{w:m,h:i}})}}return e}if(f){const e=[];for(const t in r.frames)e.push(r.frames[t]);return e}},ue=()=>{if(!I.current)return;const{meta:{size:e},frames:r}=I.current,{w:t,h:n}=Array.isArray(r)?r[0].sourceSize:f&&r[f]?r[f][0].sourceSize:{w:0,h:0};T.current.map.wrapS=T.current.map.wrapT=s.RepeatWrapping,T.current.map.center.set(0,0),T.current.map.repeat.set(1*K/(e.w/t),1/(e.h/n));const a=1/((e.h-1)/n);T.current.map.offset.x=0,T.current.map.offset.y=1-a,w&&w({currentFrameName:f,currentFrame:D.current})},ce=(e,r,t,n)=>{var a=void 0===z?re.current:z;const u=D.current;let c=0,s=0;te(e,r);const o=(t.w-1)/e,f=(t.h-1)/r;if(!n[u])return;const{frame:{x:l,y:m},sourceSize:{w:i,h:p}}=n[u],h=1/o,d=1/f;if(c=K>0?h*(l/i):h*(l/i)-T.current.map.repeat.x,s=Math.abs(1-d)-d*(m/p),T.current.map.offset.x=c,T.current.map.offset.y=s,null!=a){let e=Math.floor(a*n.length);e=Math.max(0,Math.min(e,n.length-1)),isNaN(e)&&(console.log("nan frame detected"),e=0),D.current=e}else A?D.current-=1:D.current+=1};t.useFrame(((e,t)=>{var a,u;null!=(a=I.current)&&a.frames&&null!=(u=T.current)&&u.map&&(Y.current||re.hasEnded||!h&&!g||((()=>{const e=window.performance.now(),t=e-q.current,{meta:{size:a},frames:u}=I.current,{w:c,h:s}=se(u).sourceSize,o=Array.isArray(u)?u:f?u[f]:[],l=n||o.length-1;var m=void 0===z?re.current:z,p=A?D.current<0:D.current>l,h=A?D.current===l:0===D.current,d=A?D.current<0:D.current>=l;if(p){if(D.current=i&&null!=r?r:0,A&&(D.current=l),i?null==E||E({currentFrameName:f,currentFrame:D.current}):(null==y||y({currentFrameName:f,currentFrame:D.current}),m||console.log("will end"),re.hasEnded=!M,M&&(Y.current=!0)),!i)return}else h&&(null==w||w({currentFrameName:f,currentFrame:D.current}));void 0!==m&&d?!1===$.current&&(null==y||y({currentFrameName:f,currentFrame:D.current}),$.current=!0):$.current=!1,t<=U||(q.current=e-t%U,ce(c,s,a,o))})(),S&&S({currentFrameName:B.current,currentFrame:D.current})))}));const se=e=>{if(Array.isArray(e))return e[0];if("object"==typeof e&&null!==e){const r=Object.keys(e);return f?e[f][0]:e[r[0]][0]}return{w:0,h:0}};return c.createElement("group",e({},N,{ref:k}),c.createElement(o.Provider,{value:re},c.createElement(c.Suspense,{fallback:null},Q&&c.createElement("sprite",{ref:P,scale:X},c.createElement("spriteMaterial",{toneMapped:!1,ref:T,map:G,transparent:!0,alphaTest:null!=F?F:0})),!Q&&c.createElement(a.Instances,{limit:j},c.createElement("planeGeometry",{args:[1,1]}),c.createElement("meshBasicMaterial",{toneMapped:!1,side:s.DoubleSide,ref:T,map:G,transparent:!0,alphaTest:null!=F?F:0}),(null!=O?O:[0]).map(((e,r)=>{const t=G.clone();return T.current&&_.current[r]&&t.offset.set(_.current[r].offset.x,_.current[r].offset.y),c.createElement(a.Instance,{key:r,ref:P,position:e,scale:X},c.createElement("meshBasicMaterial",{toneMapped:!1,side:s.DoubleSide,map:t,transparent:!0,alphaTest:null!=F?F:0}))})))),R))}));exports.SpriteAnimator=f,exports.useSpriteAnimator=function(){return c.useContext(o)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),n=require("three"),a=require("./Instances.cjs.js");function u(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)}require("react-merge-refs"),require("react-composer"),require("../helpers/deprecated.cjs.js");var s=u(e),o=c(r),f=c(n);const l=o.createContext(null);const m=o.forwardRef((({startFrame:e,endFrame:r,fps:n,frameName:u,textureDataURL:c,textureImageURL:m,loop:i,numberOfFrames:p,autoPlay:h,animationNames:d,onStart:w,onEnd:y,onLoopEnd:E,onFrame:g,play:x,pause:S,flipX:b,alphaTest:F,children:R,asSprite:j,offset:v,playBackwards:z,resetOnEnd:M,maxItems:A,instanceItems:O,...N},L)=>{const k=o.useRef(),q=o.useRef(null),I=o.useRef(),P=o.useRef(),T=o.useRef(window.performance.now()),C=o.useRef(),D=o.useRef(e||0),_=o.useRef(u||""),B=1e3/(n||30),[U,G]=o.useState(new f.Texture),H=o.useRef(0),[W,X]=o.useState([1,1,1]),J=b?-1:1,[K,Q]=o.useState(null==j||j),V=o.useRef(S),Y=o.useRef(v),Z=o.useRef(!1),$=o.useRef([]);function ee(){}const re=o.useMemo((()=>({current:Y.current,offset:Y.current,imageUrl:m,reset:ee,hasEnded:!1,ref:L})),[m]);o.useImperativeHandle(L,(()=>k.current),[]),o.useLayoutEffect((()=>{Y.current=v}),[v]);const te=(e,r)=>{const t=r/e;return P.current&&P.current.scale.set(1,t,1),[1,t,1]};o.useEffect((()=>{if(c&&m)!function(e,r,t){const n=new f.TextureLoader,a=fetch(e).then((e=>e.json())),u=new Promise((e=>{n.load(r,e)}));Promise.all([a,u]).then((e=>{t(e[0],e[1])}))}(c,m,ne);else if(m){const e=new f.TextureLoader;new Promise((r=>{e.load(m,r)})).then((e=>{ne(null,e)}))}}),[]),o.useEffect((()=>{Q(null==j||j)}),[j]),o.useEffect((()=>{re.hasEnded=!1,q.current&&!0===z?D.current=q.current.frames.length-1:D.current=0}),[z]),o.useLayoutEffect((()=>{ue()}),[U,b]),o.useEffect((()=>{h&&(V.current=!1)}),[h]),o.useEffect((()=>{if(_.current!==u&&u&&(D.current=0,_.current=u,re.hasEnded=!1,ue(),q.current)){const{w:e,h:r}=se(q.current.frames).sourceSize,t=te(e,r);X(t)}}),[u]);const ne=(e,r)=>{if(null===e){if(p){const e=r.image.width,t=r.image.height,n=e/p,a=t;if(C.current=r,H.current=p,z&&(D.current=p-1),q.current={frames:[],meta:{version:"1.0",size:{w:e,h:t},scale:"1"}},parseInt(n.toString(),10)===n)for(let e=0;e<p;e++)q.current.frames.push({frame:{x:e*n,y:0,w:n,h:a},rotated:!1,trimmed:!1,spriteSourceSize:{x:0,y:0,w:n,h:a},sourceSize:{w:n,h:t}})}}else{q.current=e,q.current.frames=Array.isArray(e.frames)?e.frames:ae(),H.current=Array.isArray(e.frames)?e.frames.length:Object.keys(e.frames).length,C.current=r,z&&(D.current=H.current-1);const{w:t,h:n}=se(e.frames).sourceSize,a=te(t,n);X(a),I.current&&(I.current.map=r)}if(O)for(var t=0;t<O.length;t++){const e=Object.keys(q.current.frames),r=e[Math.floor(Math.random()*e.length)];$.current.push({key:t,frames:q.current.frames,selectedFrame:r,offset:{x:0,y:0}})}r.premultiplyAlpha=!1,G(r)},ae=()=>{const e={},r=q.current,t=d;if(t){for(let n=0;n<t.length;n++){e[t[n]]=[];for(const a in r.frames){const u=r.frames[a],c=u.frame,s=c.x,o=c.y,f=c.w,l=c.h,m=u.sourceSize.w,i=u.sourceSize.h;-1!==a.toLowerCase().indexOf(t[n].toLowerCase())&&e[t[n]].push({x:s,y:o,w:f,h:l,frame:c,sourceSize:{w:m,h:i}})}}return e}if(u){const e=[];for(const t in r.frames)e.push(r.frames[t]);return e}},ue=()=>{if(!q.current)return;const{meta:{size:e},frames:r}=q.current,{w:t,h:n}=Array.isArray(r)?r[0].sourceSize:u&&r[u]?r[u][0].sourceSize:{w:0,h:0};I.current.map.wrapS=I.current.map.wrapT=f.RepeatWrapping,I.current.map.center.set(0,0),I.current.map.repeat.set(1*J/(e.w/t),1/(e.h/n));const a=1/((e.h-1)/n);I.current.map.offset.x=0,I.current.map.offset.y=1-a,w&&w({currentFrameName:u,currentFrame:D.current})},ce=(e,r,t,n)=>{var a=void 0===v?re.current:v;const u=D.current;let c=0,s=0;te(e,r);const o=(t.w-1)/e,f=(t.h-1)/r;if(!n[u])return;const{frame:{x:l,y:m},sourceSize:{w:i,h:p}}=n[u],h=1/o,d=1/f;if(c=J>0?h*(l/i):h*(l/i)-I.current.map.repeat.x,s=Math.abs(1-d)-d*(m/p),I.current.map.offset.x=c,I.current.map.offset.y=s,null!=a){let e=Math.floor(a*n.length);e=Math.max(0,Math.min(e,n.length-1)),isNaN(e)&&(console.log("nan frame detected"),e=0),D.current=e}else z?D.current-=1:D.current+=1};t.useFrame(((t,n)=>{var a,c;null!=(a=q.current)&&a.frames&&null!=(c=I.current)&&c.map&&(V.current||re.hasEnded||!h&&!x||((()=>{const t=window.performance.now(),n=t-T.current,{meta:{size:a},frames:c}=q.current,{w:s,h:o}=se(c).sourceSize,f=Array.isArray(c)?c:u?c[u]:[],l=r||f.length-1;var m=void 0===v?re.current:v,p=z?D.current<0:D.current>l,h=z?D.current===l:0===D.current,d=z?D.current<0:D.current>=l;if(p){if(D.current=i&&null!=e?e:0,z&&(D.current=l),i?null==E||E({currentFrameName:u,currentFrame:D.current}):(null==y||y({currentFrameName:u,currentFrame:D.current}),m||console.log("will end"),re.hasEnded=!M,M&&(V.current=!0)),!i)return}else h&&(null==w||w({currentFrameName:u,currentFrame:D.current}));void 0!==m&&d?!1===Z.current&&(null==y||y({currentFrameName:u,currentFrame:D.current}),Z.current=!0):Z.current=!1,n<=B||(T.current=t-n%B,ce(s,o,a,f))})(),g&&g({currentFrameName:_.current,currentFrame:D.current})))}));const se=e=>{if(Array.isArray(e))return e[0];if("object"==typeof e&&null!==e){const r=Object.keys(e);return u?e[u][0]:e[r[0]][0]}return{w:0,h:0}};return o.createElement("group",s.default({},N,{ref:k}),o.createElement(l.Provider,{value:re},o.createElement(o.Suspense,{fallback:null},K&&o.createElement("sprite",{ref:P,scale:W},o.createElement("spriteMaterial",{toneMapped:!1,ref:I,map:U,transparent:!0,alphaTest:null!=F?F:0})),!K&&o.createElement(a.Instances,{limit:A},o.createElement("planeGeometry",{args:[1,1]}),o.createElement("meshBasicMaterial",{toneMapped:!1,side:f.DoubleSide,ref:I,map:U,transparent:!0,alphaTest:null!=F?F:0}),(null!=O?O:[0]).map(((e,r)=>{const t=U.clone();return I.current&&$.current[r]&&t.offset.set($.current[r].offset.x,$.current[r].offset.y),o.createElement(a.Instance,{key:r,ref:P,position:e,scale:W},o.createElement("meshBasicMaterial",{toneMapped:!1,side:f.DoubleSide,map:t,transparent:!0,alphaTest:null!=F?F:0}))})))),R))}));exports.SpriteAnimator=m,exports.useSpriteAnimator=function(){return o.useContext(l)};
package/core/Stage.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),n=require("./Environment.cjs.js"),i=require("./ContactShadows.cjs.js"),a=require("./Center.cjs.js"),r=require("./AccumulativeShadows.cjs.js"),l=require("./Bounds.cjs.js");function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var s=o(t);const u={rembrandt:{main:[1,2,1],fill:[-2,-.5,-2]},portrait:{main:[-1,2,.5],fill:[-1,.5,-1.5]},upfront:{main:[0,2,1],fill:[-1,.5,-1.5]},soft:{main:[-2,4,4],fill:[-1,.5,-1.5]}};function c({radius:e,adjustCamera:t}){const n=l.useBounds();return s.useEffect((()=>{t&&n.refresh().clip().fit()}),[e,t]),null}exports.Stage=function({children:t,center:o,adjustCamera:d=!0,intensity:m=.5,shadows:p="contact",environment:h="city",preset:f="rembrandt",...v}){var b,j,g,E,y,w,C,S;const q="string"==typeof f?u[f]:f,[{radius:z,height:O},B]=s.useState({radius:0,width:0,height:0,depth:0}),L=null!==(b=null==p?void 0:p.bias)&&void 0!==b?b:-1e-4,k=null!==(j=null==p?void 0:p.normalBias)&&void 0!==j?j:0,x=null!==(g=null==p?void 0:p.size)&&void 0!==g?g:1024,A=null!==(E=null==p?void 0:p.offset)&&void 0!==E?E:0,P="contact"===p||"contact"===(null==p?void 0:p.type),D="accumulative"===p||"accumulative"===(null==p?void 0:p.type),F={..."object"==typeof p?p:{}},M=h?"string"==typeof h?{preset:h}:h:null,N=s.useCallback((e=>{const{width:t,height:n,depth:i,boundingSphere:a}=e;B({radius:a.radius,width:t,height:n,depth:i}),null!=o&&o.onCentered&&o.onCentered(e)}),[]);return s.createElement(s.Fragment,null,s.createElement("ambientLight",{intensity:m/3}),s.createElement("spotLight",{penumbra:1,position:[q.main[0]*z,q.main[1]*z,q.main[2]*z],intensity:2*m,castShadow:!!p,"shadow-bias":L,"shadow-normalBias":k,"shadow-mapSize":x}),s.createElement("pointLight",{position:[q.fill[0]*z,q.fill[1]*z,q.fill[2]*z],intensity:m}),s.createElement(l.Bounds,e({fit:!!d,clip:!!d,margin:Number(d),observe:!0},v),s.createElement(c,{radius:z,adjustCamera:d}),s.createElement(a.Center,e({},o,{position:[0,A/2,0],onCentered:N}),t)),s.createElement("group",{position:[0,-O/2-A/2,0]},P&&s.createElement(i.ContactShadows,e({scale:4*z,far:z,blur:2},F)),D&&s.createElement(r.AccumulativeShadows,e({temporal:!0,frames:100,alphaTest:.9,toneMapped:!0,scale:4*z},F),s.createElement(r.RandomizedLight,{amount:null!==(y=F.amount)&&void 0!==y?y:8,radius:null!==(w=F.radius)&&void 0!==w?w:z,ambient:null!==(C=F.ambient)&&void 0!==C?C:.5,intensity:null!==(S=F.intensity)&&void 0!==S?S:1,position:[q.main[0]*z,q.main[1]*z,q.main[2]*z],size:4*z,bias:-L,mapSize:x}))),h&&s.createElement(n.Environment,M))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),n=require("./Environment.cjs.js"),i=require("./ContactShadows.cjs.js"),r=require("./Center.cjs.js"),a=require("./AccumulativeShadows.cjs.js"),s=require("./Bounds.cjs.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}require("@react-three/fiber"),require("three"),require("three-stdlib"),require("./useEnvironment.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("./shaderMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("../helpers/constants.cjs.js");var o=l(e),c=u(t);const d={rembrandt:{main:[1,2,1],fill:[-2,-.5,-2]},portrait:{main:[-1,2,.5],fill:[-1,.5,-1.5]},upfront:{main:[0,2,1],fill:[-1,.5,-1.5]},soft:{main:[-2,4,4],fill:[-1,.5,-1.5]}};function m({radius:e,adjustCamera:t}){const n=s.useBounds();return c.useEffect((()=>{t&&n.refresh().clip().fit()}),[e,t]),null}exports.Stage=function({children:e,center:t,adjustCamera:l=!0,intensity:u=.5,shadows:f="contact",environment:p="city",preset:h="rembrandt",...j}){var v,b,g,y,E,q,w,C;const S="string"==typeof h?d[h]:h,[{radius:O,height:z},B]=c.useState({radius:0,width:0,height:0,depth:0}),M=null!==(v=null==f?void 0:f.bias)&&void 0!==v?v:-1e-4,L=null!==(b=null==f?void 0:f.normalBias)&&void 0!==b?b:0,_=null!==(g=null==f?void 0:f.size)&&void 0!==g?g:1024,x=null!==(y=null==f?void 0:f.offset)&&void 0!==y?y:0,P="contact"===f||"contact"===(null==f?void 0:f.type),k="accumulative"===f||"accumulative"===(null==f?void 0:f.type),A={..."object"==typeof f?f:{}},D=p?"string"==typeof p?{preset:p}:p:null,F=c.useCallback((e=>{const{width:n,height:i,depth:r,boundingSphere:a}=e;B({radius:a.radius,width:n,height:i,depth:r}),null!=t&&t.onCentered&&t.onCentered(e)}),[]);return c.createElement(c.Fragment,null,c.createElement("ambientLight",{intensity:u/3}),c.createElement("spotLight",{penumbra:1,position:[S.main[0]*O,S.main[1]*O,S.main[2]*O],intensity:2*u,castShadow:!!f,"shadow-bias":M,"shadow-normalBias":L,"shadow-mapSize":_}),c.createElement("pointLight",{position:[S.fill[0]*O,S.fill[1]*O,S.fill[2]*O],intensity:u}),c.createElement(s.Bounds,o.default({fit:!!l,clip:!!l,margin:Number(l),observe:!0},j),c.createElement(m,{radius:O,adjustCamera:l}),c.createElement(r.Center,o.default({},t,{position:[0,x/2,0],onCentered:F}),e)),c.createElement("group",{position:[0,-z/2-x/2,0]},P&&c.createElement(i.ContactShadows,o.default({scale:4*O,far:O,blur:2},A)),k&&c.createElement(a.AccumulativeShadows,o.default({temporal:!0,frames:100,alphaTest:.9,toneMapped:!0,scale:4*O},A),c.createElement(a.RandomizedLight,{amount:null!==(E=A.amount)&&void 0!==E?E:8,radius:null!==(q=A.radius)&&void 0!==q?q:O,ambient:null!==(w=A.ambient)&&void 0!==w?w:.5,intensity:null!==(C=A.intensity)&&void 0!==C?C:1,position:[S.main[0]*O,S.main[1]*O,S.main[2]*O],size:4*O,bias:-M,mapSize:_}))),p&&c.createElement(n.Environment,D))};
package/core/Stars.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("@react-three/fiber"),r=require("three"),n=require("../helpers/constants.cjs.js");function a(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=a(e);class i extends r.ShaderMaterial{constructor(){super({uniforms:{time:{value:0},fade:{value:1}},vertexShader:"\n uniform float time;\n attribute float size;\n varying vec3 vColor;\n void main() {\n vColor = color;\n vec4 mvPosition = modelViewMatrix * vec4(position, 0.5);\n gl_PointSize = size * (30.0 / -mvPosition.z) * (3.0 + sin(time + 100.0));\n gl_Position = projectionMatrix * mvPosition;\n }",fragmentShader:`\n uniform sampler2D pointTexture;\n uniform float fade;\n varying vec3 vColor;\n void main() {\n float opacity = 1.0;\n if (fade == 1.0) {\n float d = distance(gl_PointCoord, vec2(0.5, 0.5));\n opacity = 1.0 / (1.0 + exp(16.0 * (d - 0.25)));\n }\n gl_FragColor = vec4(vColor, opacity);\n\n #include <tonemapping_fragment>\n\t #include <${n.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`})}}const c=e=>(new r.Vector3).setFromSpherical(new r.Spherical(e,Math.acos(1-2*Math.random()),2*Math.random()*Math.PI)),s=o.forwardRef((({radius:e=100,depth:n=50,count:a=5e3,saturation:s=0,factor:l=4,fade:u=!1,speed:f=1},m)=>{const d=o.useRef(),[v,p,g]=o.useMemo((()=>{const t=[],o=[],i=Array.from({length:a},(()=>(.5+.5*Math.random())*l)),u=new r.Color;let f=e+n;const m=n/a;for(let e=0;e<a;e++)f-=m*Math.random(),t.push(...c(f).toArray()),u.setHSL(e/a,s,.9),o.push(u.r,u.g,u.b);return[new Float32Array(t),new Float32Array(o),new Float32Array(i)]}),[a,n,l,e,s]);t.useFrame((e=>d.current&&(d.current.uniforms.time.value=e.clock.getElapsedTime()*f)));const[h]=o.useState((()=>new i));return o.createElement("points",{ref:m},o.createElement("bufferGeometry",null,o.createElement("bufferAttribute",{attach:"attributes-position",args:[v,3]}),o.createElement("bufferAttribute",{attach:"attributes-color",args:[p,3]}),o.createElement("bufferAttribute",{attach:"attributes-size",args:[g,1]})),o.createElement("primitive",{ref:d,object:h,attach:"material",blending:r.AdditiveBlending,"uniforms-fade-value":u,depthWrite:!1,transparent:!0,vertexColors:!0}))}));exports.Stars=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber"),r=require("three"),n=require("../helpers/constants.cjs.js");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 o=a(e);class i extends r.ShaderMaterial{constructor(){super({uniforms:{time:{value:0},fade:{value:1}},vertexShader:"\n uniform float time;\n attribute float size;\n varying vec3 vColor;\n void main() {\n vColor = color;\n vec4 mvPosition = modelViewMatrix * vec4(position, 0.5);\n gl_PointSize = size * (30.0 / -mvPosition.z) * (3.0 + sin(time + 100.0));\n gl_Position = projectionMatrix * mvPosition;\n }",fragmentShader:`\n uniform sampler2D pointTexture;\n uniform float fade;\n varying vec3 vColor;\n void main() {\n float opacity = 1.0;\n if (fade == 1.0) {\n float d = distance(gl_PointCoord, vec2(0.5, 0.5));\n opacity = 1.0 / (1.0 + exp(16.0 * (d - 0.25)));\n }\n gl_FragColor = vec4(vColor, opacity);\n\n #include <tonemapping_fragment>\n\t #include <${n.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`})}}const c=e=>(new r.Vector3).setFromSpherical(new r.Spherical(e,Math.acos(1-2*Math.random()),2*Math.random()*Math.PI)),s=o.forwardRef((({radius:e=100,depth:n=50,count:a=5e3,saturation:s=0,factor:l=4,fade:u=!1,speed:f=1},m)=>{const d=o.useRef(),[p,v,g]=o.useMemo((()=>{const t=[],o=[],i=Array.from({length:a},(()=>(.5+.5*Math.random())*l)),u=new r.Color;let f=e+n;const m=n/a;for(let e=0;e<a;e++)f-=m*Math.random(),t.push(...c(f).toArray()),u.setHSL(e/a,s,.9),o.push(u.r,u.g,u.b);return[new Float32Array(t),new Float32Array(o),new Float32Array(i)]}),[a,n,l,e,s]);t.useFrame((e=>d.current&&(d.current.uniforms.time.value=e.clock.getElapsedTime()*f)));const[h]=o.useState((()=>new i));return o.createElement("points",{ref:m},o.createElement("bufferGeometry",null,o.createElement("bufferAttribute",{attach:"attributes-position",args:[p,3]}),o.createElement("bufferAttribute",{attach:"attributes-color",args:[v,3]}),o.createElement("bufferAttribute",{attach:"attributes-size",args:[g,1]})),o.createElement("primitive",{ref:d,object:h,attach:"material",blending:r.AdditiveBlending,"uniforms-fade-value":u,depthWrite:!1,transparent:!0,vertexColors:!0}))}));exports.Stars=s;
package/core/Stats.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("@react-three/fiber"),r=require("stats.js"),n=require("../helpers/useEffectfulState.cjs.js");function c(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 u=c(e);exports.Stats=function({showPanel:e=0,className:c,parent:f}){const s=n.useEffectfulState((()=>new r),[]);return u.useEffect((()=>{if(s){const r=f&&f.current||document.body;s.showPanel(e),null==r||r.appendChild(s.dom),c&&s.dom.classList.add(...c.split(" ").filter((e=>e)));const n=t.addEffect((()=>s.begin())),u=t.addAfterEffect((()=>s.end()));return()=>{null==r||r.removeChild(s.dom),n(),u()}}}),[f,s,c,e]),null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber"),r=require("stats.js"),n=require("../helpers/useEffectfulState.cjs.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function f(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=f(e),a=u(r);exports.Stats=function({showPanel:e=0,className:r,parent:u}){const f=n.useEffectfulState((()=>new a.default),[]);return c.useEffect((()=>{if(f){const n=u&&u.current||document.body;f.showPanel(e),null==n||n.appendChild(f.dom),r&&f.dom.classList.add(...r.split(" ").filter((e=>e)));const c=t.addEffect((()=>f.begin())),a=t.addAfterEffect((()=>f.end()));return()=>{null==n||n.removeChild(f.dom),c(),a()}}}),[u,f,r,e]),null};
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("@react-three/fiber"),r=require("stats-gl");function n(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=n(e);exports.StatsGl=function({className:e,parent:n,...u}){const a=t.useThree((e=>e.gl)),i=c.useMemo((()=>{const e=new r({...u});return e.init(a),e}),[a]);return c.useEffect((()=>{if(i){const r=n&&n.current||document.body;null==r||r.appendChild(i.dom),e&&i.container.classList.add(...e.split(" ").filter((e=>e)));const c=t.addAfterEffect((()=>i.update()));return()=>{null==r||r.removeChild(i.dom),c()}}}),[n,i,e]),null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber"),r=require("stats-gl");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=u(e),o=n(r);exports.StatsGl=function({className:e,parent:r,...n}){const u=t.useThree((e=>e.gl)),a=c.useMemo((()=>{const e=new o.default({...n});return e.init(u),e}),[u]);return c.useEffect((()=>{if(a){const n=r&&r.current||document.body;null==n||n.appendChild(a.dom),e&&a.container.classList.add(...e.split(" ").filter((e=>e)));const u=t.addAfterEffect((()=>a.update()));return()=>{null==n||n.removeChild(a.dom),u()}}}),[r,a,e]),null};
package/core/Svg.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),a=require("three"),s=require("three-stdlib");function l(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=l(r);const i=r.forwardRef((function({src:l,skipFill:i,skipStrokes:n,fillMaterial:u,strokeMaterial:c,fillMeshProps:p,strokeMeshProps:m,...d},f){const y=t.useLoader(s.SVGLoader,l.startsWith("<svg")?`data:image/svg+xml;utf8,${l}`:l),h=r.useMemo((()=>n?[]:y.paths.map((e=>{var t;return void 0===(null==(t=e.userData)?void 0:t.style.stroke)||"none"===e.userData.style.stroke?null:e.subPaths.map((t=>s.SVGLoader.pointsToStroke(t.getPoints(),e.userData.style)))}))),[y,n]);return r.useEffect((()=>()=>h.forEach((e=>e&&e.map((e=>e.dispose()))))),[h]),o.createElement("object3D",e({ref:f},d),o.createElement("object3D",{scale:[1,-1,1]},y.paths.map(((t,l)=>{var d,f;return o.createElement(r.Fragment,{key:l},!i&&void 0!==(null==(d=t.userData)?void 0:d.style.fill)&&"none"!==t.userData.style.fill&&s.SVGLoader.createShapes(t).map(((r,s)=>o.createElement("mesh",e({key:s},p),o.createElement("shapeGeometry",{args:[r]}),o.createElement("meshBasicMaterial",e({color:t.userData.style.fill,opacity:t.userData.style.fillOpacity,transparent:!0,side:a.DoubleSide,depthWrite:!1},u))))),!n&&void 0!==(null==(f=t.userData)?void 0:f.style.stroke)&&"none"!==t.userData.style.stroke&&t.subPaths.map(((r,s)=>o.createElement("mesh",e({key:s,geometry:h[l][s]},m),o.createElement("meshBasicMaterial",e({color:t.userData.style.stroke,opacity:t.userData.style.strokeOpacity,transparent:!0,side:a.DoubleSide,depthWrite:!1},c))))))}))))}));exports.Svg=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),a=require("three"),s=require("three-stdlib");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var 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 i=l(e),u=o(r);const n=r.forwardRef((function({src:e,skipFill:l,skipStrokes:o,fillMaterial:n,strokeMaterial:c,fillMeshProps:f,strokeMeshProps:d,...p},m){const y=t.useLoader(s.SVGLoader,e.startsWith("<svg")?`data:image/svg+xml;utf8,${e}`:e),h=r.useMemo((()=>o?[]:y.paths.map((e=>{var t;return void 0===(null==(t=e.userData)?void 0:t.style.stroke)||"none"===e.userData.style.stroke?null:e.subPaths.map((t=>s.SVGLoader.pointsToStroke(t.getPoints(),e.userData.style)))}))),[y,o]);return r.useEffect((()=>()=>h.forEach((e=>e&&e.map((e=>e.dispose()))))),[h]),u.createElement("object3D",i.default({ref:m},p),u.createElement("object3D",{scale:[1,-1,1]},y.paths.map(((e,t)=>{var p,m;return u.createElement(r.Fragment,{key:t},!l&&void 0!==(null==(p=e.userData)?void 0:p.style.fill)&&"none"!==e.userData.style.fill&&s.SVGLoader.createShapes(e).map(((t,r)=>u.createElement("mesh",i.default({key:r},f),u.createElement("shapeGeometry",{args:[t]}),u.createElement("meshBasicMaterial",i.default({color:e.userData.style.fill,opacity:e.userData.style.fillOpacity,transparent:!0,side:a.DoubleSide,depthWrite:!1},n))))),!o&&void 0!==(null==(m=e.userData)?void 0:m.style.stroke)&&"none"!==e.userData.style.stroke&&e.subPaths.map(((r,s)=>u.createElement("mesh",i.default({key:s,geometry:h[t][s]},d),u.createElement("meshBasicMaterial",i.default({color:e.userData.style.stroke,opacity:e.userData.style.strokeOpacity,transparent:!0,side:a.DoubleSide,depthWrite:!1},c))))))}))))}));exports.Svg=n;
package/core/Text.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("troika-three-text"),n=require("@react-three/fiber"),c=require("suspend-react");function o(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=o(t);const i=a.forwardRef((({sdfGlyphSize:t=64,anchorX:o="center",anchorY:i="middle",font:s,fontSize:u=1,children:f,characters:h,onSync:d,...l},p)=>{const b=n.useThree((({invalidate:e})=>e)),[y]=a.useState((()=>new r.Text)),[m,x]=a.useMemo((()=>{const e=[];let t="";return a.Children.forEach(f,(r=>{"string"==typeof r||"number"==typeof r?t+=r:e.push(r)})),[e,t]}),[f]);return c.suspend((()=>new Promise((e=>r.preloadFont({font:s,characters:h},e)))),["troika-text",s,h]),a.useLayoutEffect((()=>{y.sync((()=>{b(),d&&d(y)}))})),a.useEffect((()=>()=>y.dispose()),[y]),a.createElement("primitive",e({object:y,ref:p,font:s,text:x,anchorX:o,anchorY:i,fontSize:u,sdfGlyphSize:t},l),m)}));exports.Text=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("troika-three-text"),n=require("@react-three/fiber"),o=require("suspend-react");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var a=c(e),i=u(t);const f=i.forwardRef((({sdfGlyphSize:e=64,anchorX:t="center",anchorY:c="middle",font:u,fontSize:f=1,children:s,characters:d,onSync:l,...p},h)=>{const b=n.useThree((({invalidate:e})=>e)),[y]=i.useState((()=>new r.Text)),[j,m]=i.useMemo((()=>{const e=[];let t="";return i.Children.forEach(s,(r=>{"string"==typeof r||"number"==typeof r?t+=r:e.push(r)})),[e,t]}),[s]);return o.suspend((()=>new Promise((e=>r.preloadFont({font:u,characters:d},e)))),["troika-text",u,d]),i.useLayoutEffect((()=>{y.sync((()=>{b(),l&&l(y)}))})),i.useEffect((()=>()=>y.dispose()),[y]),i.createElement("primitive",a.default({object:y,ref:h,font:u,text:m,anchorX:t,anchorY:c,fontSize:f,sdfGlyphSize:e},p),j)}));exports.Text=f;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),n=require("three-stdlib"),s=require("./useFont.cjs.js");function u(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=u(t);const i=["string","number"],l=c.forwardRef((({font:u,letterSpacing:l=0,lineHeight:o=1,size:a=1,height:m=.2,bevelThickness:f=.1,bevelSize:b=.01,bevelEnabled:g=!1,bevelOffset:h=0,bevelSegments:v=4,curveSegments:d=8,smooth:p,children:y,...x},O)=>{c.useMemo((()=>r.extend({RenamedTextGeometry:n.TextGeometry})),[]);const S=c.useRef(null),j=s.useFont(u),E=t.useMemo((()=>({font:j,size:a,height:m,bevelThickness:f,bevelSize:b,bevelEnabled:g,bevelSegments:v,bevelOffset:h,curveSegments:d,letterSpacing:l,lineHeight:o})),[j,a,m,f,b,g,v,h,d,l,o]),[T,...q]=t.useMemo((()=>(e=>{let t="";const r=[];return c.Children.forEach(e,(e=>{i.includes(typeof e)?t+=e+"":r.push(e)})),[t,...r]})(y)),[y]),z=c.useMemo((()=>[T,E]),[T,E]);return c.useLayoutEffect((()=>{p&&(S.current.geometry=n.mergeVertices(S.current.geometry,p),S.current.geometry.computeVertexNormals())}),[z,p]),c.useImperativeHandle(O,(()=>S.current),[]),c.createElement("mesh",e({},x,{ref:S}),c.createElement("renamedTextGeometry",{args:z}),q)}));exports.Text3D=l;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),n=require("three-stdlib"),u=require("./useFont.cjs.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(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)}require("suspend-react");var i=s(e),l=c(t);const o=["string","number"],a=l.forwardRef((({font:e,letterSpacing:s=0,lineHeight:c=1,size:a=1,height:f=.2,bevelThickness:m=.1,bevelSize:b=.01,bevelEnabled:d=!1,bevelOffset:g=0,bevelSegments:h=4,curveSegments:v=8,smooth:p,children:y,...j},x)=>{l.useMemo((()=>r.extend({RenamedTextGeometry:n.TextGeometry})),[]);const O=l.useRef(null),S=u.useFont(e),E=t.useMemo((()=>({font:S,size:a,height:f,bevelThickness:m,bevelSize:b,bevelEnabled:d,bevelSegments:h,bevelOffset:g,curveSegments:v,letterSpacing:s,lineHeight:c})),[S,a,f,m,b,d,h,g,v,s,c]),[q,...M]=t.useMemo((()=>(e=>{let t="";const r=[];return l.Children.forEach(e,(e=>{o.includes(typeof e)?t+=e+"":r.push(e)})),[t,...r]})(y)),[y]),T=l.useMemo((()=>[q,E]),[q,E]);return l.useLayoutEffect((()=>{p&&(O.current.geometry=n.mergeVertices(O.current.geometry,p),O.current.geometry.computeVertexNormals())}),[T,p]),l.useImperativeHandle(x,(()=>O.current),[]),l.createElement("mesh",i.default({},j,{ref:O}),l.createElement("renamedTextGeometry",{args:T}),M)}));exports.Text3D=a;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function s(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var a=s(r);const c=a.forwardRef((({makeDefault:r,camera:s,domElement:c,regress:o,onChange:i,onStart:u,onEnd:l,...f},d)=>{const{invalidate:m,camera:v,gl:E,events:b,set:g,get:p,performance:h,viewport:j}=t.useThree(),L=s||v,O=c||b.connected||E.domElement,k=a.useMemo((()=>new n.TrackballControls(L)),[L]);return t.useFrame((()=>{k.enabled&&k.update()}),-1),a.useEffect((()=>(k.connect(O),()=>{k.dispose()})),[O,o,k,m]),a.useEffect((()=>{const e=e=>{m(),o&&h.regress(),i&&i(e)};return k.addEventListener("change",e),u&&k.addEventListener("start",u),l&&k.addEventListener("end",l),()=>{u&&k.removeEventListener("start",u),l&&k.removeEventListener("end",l),k.removeEventListener("change",e)}}),[i,u,l,k,m]),a.useEffect((()=>{k.handleResize()}),[j]),a.useEffect((()=>{if(r){const e=p().controls;return g({controls:k}),()=>g({controls:e})}}),[r,k]),a.createElement("primitive",e({ref:d,object:k},f))}));exports.TrackballControls=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function o(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 s=o(e),c=a(r);const u=c.forwardRef((({makeDefault:e,camera:r,domElement:o,regress:a,onChange:u,onStart:i,onEnd:f,...l},d)=>{const{invalidate:v,camera:m,gl:b,events:E,set:p,get:g,performance:h,viewport:j}=t.useThree(),O=r||m,L=o||E.connected||b.domElement,y=c.useMemo((()=>new n.TrackballControls(O)),[O]);return t.useFrame((()=>{y.enabled&&y.update()}),-1),c.useEffect((()=>(y.connect(L),()=>{y.dispose()})),[L,a,y,v]),c.useEffect((()=>{const e=e=>{v(),a&&h.regress(),u&&u(e)};return y.addEventListener("change",e),i&&y.addEventListener("start",i),f&&y.addEventListener("end",f),()=>{i&&y.removeEventListener("start",i),f&&y.removeEventListener("end",f),y.removeEventListener("change",e)}}),[u,i,f,y,v]),c.useEffect((()=>{y.handleResize()}),[j]),c.useEffect((()=>{if(e){const e=g().controls;return p({controls:y}),()=>p({controls:e})}}),[e,y]),c.createElement("primitive",s.default({ref:d,object:y},l))}));exports.TrackballControls=u;