@react-three/drei 9.96.5 → 9.97.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/core/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./ScreenSpace.cjs.js"),s=require("./QuadraticBezierLine.cjs.js"),t=require("./CubicBezierLine.cjs.js"),o=require("./CatmullRomLine.cjs.js"),i=require("./Line.cjs.js"),a=require("./PositionalAudio.cjs.js"),u=require("./Text.cjs.js"),n=require("./Text3D.cjs.js"),c=require("./Effects.cjs.js"),j=require("./GradientTexture.cjs.js"),p=require("./Image.cjs.js"),l=require("./Edges.cjs.js"),x=require("./Outlines.cjs.js"),q=require("./Trail.cjs.js"),d=require("./Sampler.cjs.js"),m=require("./ComputedAttribute.cjs.js"),h=require("./Clone.cjs.js"),C=require("./MarchingCubes.cjs.js"),M=require("./Decal.cjs.js"),S=require("./Svg.cjs.js"),T=require("./Gltf.cjs.js"),P=require("./AsciiRenderer.cjs.js"),b=require("./Splat.cjs.js"),f=require("./OrthographicCamera.cjs.js"),B=require("./PerspectiveCamera.cjs.js"),g=require("./CubeCamera.cjs.js"),v=require("./DeviceOrientationControls.cjs.js"),A=require("./FlyControls.cjs.js"),G=require("./MapControls.cjs.js"),L=require("./OrbitControls.cjs.js"),R=require("./TrackballControls.cjs.js"),D=require("./ArcballControls.cjs.js"),E=require("./TransformControls.cjs.js"),k=require("./PointerLockControls.cjs.js"),w=require("./FirstPersonControls.cjs.js"),F=require("./CameraControls.cjs.js"),z=require("./MotionPathControls.cjs.js"),O=require("./GizmoHelper.cjs.js"),I=require("./GizmoViewcube.cjs.js"),y=require("./GizmoViewport.cjs.js"),H=require("./Grid.cjs.js"),V=require("./useCubeTexture.cjs.js"),W=require("./useFBX.cjs.js"),Q=require("./useGLTF.cjs.js"),X=require("./useKTX2.cjs.js"),K=require("./useProgress.cjs.js"),N=require("./useTexture.cjs.js"),U=require("./useVideoTexture.cjs.js"),_=require("./useFont.cjs.js"),J=require("./Stats.cjs.js"),Y=require("./StatsGl.cjs.js"),Z=require("./useDepthBuffer.cjs.js"),$=require("./useAspect.cjs.js"),ee=require("./useCamera.cjs.js"),re=require("./useDetectGPU.cjs.js"),se=require("./useHelper.cjs.js"),te=require("./useBVH.cjs.js"),oe=require("./useContextBridge.cjs.js"),ie=require("./useAnimations.cjs.js"),ae=require("./useFBO.cjs.js"),ue=require("./useIntersect.cjs.js"),ne=require("./useBoxProjectedEnv.cjs.js"),ce=require("./BBAnchor.cjs.js"),je=require("./useTrailTexture.cjs.js"),pe=require("./useCubeCamera.cjs.js"),le=require("./Example.cjs.js"),xe=require("./SpriteAnimator.cjs.js"),qe=require("./CurveModifier.cjs.js"),de=require("./MeshDistortMaterial.cjs.js"),me=require("./MeshWobbleMaterial.cjs.js"),he=require("./MeshReflectorMaterial.cjs.js"),Ce=require("./MeshRefractionMaterial.cjs.js"),Me=require("./MeshTransmissionMaterial.cjs.js"),Se=require("./MeshDiscardMaterial.cjs.js"),Te=require("./PointMaterial.cjs.js"),Pe=require("./shaderMaterial.cjs.js"),be=require("./softShadows.cjs.js"),fe=require("./shapes.cjs.js"),Be=require("./RoundedBox.cjs.js"),ge=require("./ScreenQuad.cjs.js"),ve=require("./Center.cjs.js"),Ae=require("./Resize.cjs.js"),Ge=require("./Bounds.cjs.js"),Le=require("./CameraShake.cjs.js"),Re=require("./Float.cjs.js"),De=require("./Stage.cjs.js"),Ee=require("./Backdrop.cjs.js"),ke=require("./Shadow.cjs.js"),we=require("./Caustics.cjs.js"),Fe=require("./ContactShadows.cjs.js"),ze=require("./AccumulativeShadows.cjs.js"),Oe=require("./Reflector.cjs.js"),Ie=require("./SpotLight.cjs.js"),ye=require("./Environment.cjs.js"),He=require("./Lightformer.cjs.js"),Ve=require("./Sky.cjs.js"),We=require("./Stars.cjs.js"),Qe=require("./Cloud.cjs.js"),Xe=require("./Sparkles.cjs.js"),Ke=require("./useEnvironment.cjs.js"),Ne=require("./useMatcapTexture.cjs.js"),Ue=require("./useNormalTexture.cjs.js"),_e=require("./Wireframe.cjs.js"),Je=require("./ShadowAlpha.cjs.js"),Ye=require("./Points.cjs.js"),Ze=require("./Instances.cjs.js"),$e=require("./Segments.cjs.js"),er=require("./Detailed.cjs.js"),rr=require("./Preload.cjs.js"),sr=require("./BakeShadows.cjs.js"),tr=require("./meshBounds.cjs.js"),or=require("./AdaptiveDpr.cjs.js"),ir=require("./AdaptiveEvents.cjs.js"),ar=require("./PerformanceMonitor.cjs.js"),ur=require("./RenderTexture.cjs.js"),nr=require("./RenderCubeTexture.cjs.js"),cr=require("./Mask.cjs.js"),jr=require("./Hud.cjs.js"),pr=require("./Fisheye.cjs.js"),lr=require("./MeshPortalMaterial.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("three"),require("@react-three/fiber"),require("react-merge-refs"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("../helpers/constants.cjs.js"),require("meshline"),require("camera-controls"),require("maath"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("stats-gl"),require("detect-gpu"),require("three-mesh-bvh"),require("react-composer"),require("../helpers/deprecated.cjs.js"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../materials/MeshRefractionMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("uuid"),require("../materials/WireframeMaterial.cjs.js"),exports.Billboard=e.Billboard,exports.ScreenSpace=r.ScreenSpace,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=t.CubicBezierLine,exports.CatmullRomLine=o.CatmullRomLine,exports.Line=i.Line,exports.PositionalAudio=a.PositionalAudio,exports.Text=u.Text,exports.Text3D=n.Text3D,exports.Effects=c.Effects,exports.isWebGL2Available=c.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.GradientType=j.GradientType,exports.Image=p.Image,exports.Edges=l.Edges,exports.Outlines=x.Outlines,exports.Trail=q.Trail,exports.useTrail=q.useTrail,exports.Sampler=d.Sampler,exports.useSurfaceSampler=d.useSurfaceSampler,exports.ComputedAttribute=m.ComputedAttribute,exports.Clone=h.Clone,exports.MarchingCube=C.MarchingCube,exports.MarchingCubes=C.MarchingCubes,exports.MarchingPlane=C.MarchingPlane,exports.Decal=M.Decal,exports.Svg=S.Svg,exports.Gltf=T.Gltf,exports.AsciiRenderer=P.AsciiRenderer,exports.Splat=b.Splat,exports.OrthographicCamera=f.OrthographicCamera,exports.PerspectiveCamera=B.PerspectiveCamera,exports.CubeCamera=g.CubeCamera,exports.DeviceOrientationControls=v.DeviceOrientationControls,exports.FlyControls=A.FlyControls,exports.MapControls=G.MapControls,exports.OrbitControls=L.OrbitControls,exports.TrackballControls=R.TrackballControls,exports.ArcballControls=D.ArcballControls,exports.TransformControls=E.TransformControls,exports.PointerLockControls=k.PointerLockControls,exports.FirstPersonControls=w.FirstPersonControls,exports.CameraControls=F.CameraControls,exports.MotionPathControls=z.MotionPathControls,exports.useMotion=z.useMotion,exports.GizmoHelper=O.GizmoHelper,exports.useGizmoContext=O.useGizmoContext,exports.GizmoViewcube=I.GizmoViewcube,exports.GizmoViewport=y.GizmoViewport,exports.Grid=H.Grid,exports.useCubeTexture=V.useCubeTexture,exports.useFBX=W.useFBX,exports.useGLTF=Q.useGLTF,exports.useKTX2=X.useKTX2,exports.useProgress=K.useProgress,exports.IsObject=N.IsObject,exports.useTexture=N.useTexture,exports.useVideoTexture=U.useVideoTexture,exports.useFont=_.useFont,exports.Stats=J.Stats,exports.StatsGl=Y.StatsGl,exports.useDepthBuffer=Z.useDepthBuffer,exports.useAspect=$.useAspect,exports.useCamera=ee.useCamera,exports.useDetectGPU=re.useDetectGPU,exports.useHelper=se.useHelper,exports.Bvh=te.Bvh,exports.useBVH=te.useBVH,exports.useContextBridge=oe.useContextBridge,exports.useAnimations=ie.useAnimations,exports.useFBO=ae.useFBO,exports.useIntersect=ue.useIntersect,exports.useBoxProjectedEnv=ne.useBoxProjectedEnv,exports.BBAnchor=ce.BBAnchor,exports.useTrailTexture=je.useTrailTexture,exports.useCubeCamera=pe.useCubeCamera,exports.Example=le.Example,exports.SpriteAnimator=xe.SpriteAnimator,exports.useSpriteAnimator=xe.useSpriteAnimator,exports.CurveModifier=qe.CurveModifier,exports.MeshDistortMaterial=de.MeshDistortMaterial,exports.MeshWobbleMaterial=me.MeshWobbleMaterial,exports.MeshReflectorMaterial=he.MeshReflectorMaterial,exports.MeshRefractionMaterial=Ce.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Me.MeshTransmissionMaterial,exports.MeshDiscardMaterial=Se.MeshDiscardMaterial,exports.PointMaterial=Te.PointMaterial,exports.PointMaterialImpl=Te.PointMaterialImpl,exports.shaderMaterial=Pe.shaderMaterial,exports.SoftShadows=be.SoftShadows,exports.Box=fe.Box,exports.Capsule=fe.Capsule,exports.Circle=fe.Circle,exports.Cone=fe.Cone,exports.Cylinder=fe.Cylinder,exports.Dodecahedron=fe.Dodecahedron,exports.Extrude=fe.Extrude,exports.Icosahedron=fe.Icosahedron,exports.Lathe=fe.Lathe,exports.Octahedron=fe.Octahedron,exports.Plane=fe.Plane,exports.Polyhedron=fe.Polyhedron,exports.Ring=fe.Ring,exports.Shape=fe.Shape,exports.Sphere=fe.Sphere,exports.Tetrahedron=fe.Tetrahedron,exports.Torus=fe.Torus,exports.TorusKnot=fe.TorusKnot,exports.Tube=fe.Tube,exports.RoundedBox=Be.RoundedBox,exports.ScreenQuad=ge.ScreenQuad,exports.Center=ve.Center,exports.Resize=Ae.Resize,exports.Bounds=Ge.Bounds,exports.useBounds=Ge.useBounds,exports.CameraShake=Le.CameraShake,exports.Float=Re.Float,exports.Stage=De.Stage,exports.Backdrop=Ee.Backdrop,exports.Shadow=ke.Shadow,exports.Caustics=we.Caustics,exports.ContactShadows=Fe.ContactShadows,exports.AccumulativeShadows=ze.AccumulativeShadows,exports.RandomizedLight=ze.RandomizedLight,exports.accumulativeContext=ze.accumulativeContext,exports.Reflector=Oe.Reflector,exports.SpotLight=Ie.SpotLight,exports.SpotLightShadow=Ie.SpotLightShadow,exports.Environment=ye.Environment,exports.EnvironmentCube=ye.EnvironmentCube,exports.EnvironmentMap=ye.EnvironmentMap,exports.EnvironmentPortal=ye.EnvironmentPortal,exports.Lightformer=He.Lightformer,exports.Sky=Ve.Sky,exports.calcPosFromAngles=Ve.calcPosFromAngles,exports.Stars=We.Stars,exports.Cloud=Qe.Cloud,exports.CloudInstance=Qe.CloudInstance,exports.Clouds=Qe.Clouds,exports.Sparkles=Xe.Sparkles,exports.useEnvironment=Ke.useEnvironment,exports.useMatcapTexture=Ne.useMatcapTexture,exports.useNormalTexture=Ue.useNormalTexture,exports.Wireframe=_e.Wireframe,exports.ShadowAlpha=Je.ShadowAlpha,exports.Point=Ye.Point,exports.Points=Ye.Points,exports.PointsBuffer=Ye.PointsBuffer,exports.PositionPoint=Ye.PositionPoint,exports.Instance=Ze.Instance,exports.Instances=Ze.Instances,exports.Merged=Ze.Merged,exports.Segment=$e.Segment,exports.SegmentObject=$e.SegmentObject,exports.Segments=$e.Segments,exports.Detailed=er.Detailed,exports.Preload=rr.Preload,exports.BakeShadows=sr.BakeShadows,exports.meshBounds=tr.meshBounds,exports.AdaptiveDpr=or.AdaptiveDpr,exports.AdaptiveEvents=ir.AdaptiveEvents,exports.PerformanceMonitor=ar.PerformanceMonitor,exports.usePerformanceMonitor=ar.usePerformanceMonitor,exports.RenderTexture=ur.RenderTexture,exports.RenderCubeTexture=nr.RenderCubeTexture,exports.Mask=cr.Mask,exports.useMask=cr.useMask,exports.Hud=jr.Hud,exports.Fisheye=pr.Fisheye,exports.MeshPortalMaterial=lr.MeshPortalMaterial;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./ScreenSpace.cjs.js"),s=require("./ScreenSizer.cjs.js"),t=require("./QuadraticBezierLine.cjs.js"),o=require("./CubicBezierLine.cjs.js"),i=require("./CatmullRomLine.cjs.js"),a=require("./Line.cjs.js"),u=require("./PositionalAudio.cjs.js"),c=require("./Text.cjs.js"),n=require("./Text3D.cjs.js"),j=require("./Effects.cjs.js"),p=require("./GradientTexture.cjs.js"),l=require("./Image.cjs.js"),x=require("./Edges.cjs.js"),q=require("./Outlines.cjs.js"),d=require("./Trail.cjs.js"),m=require("./Sampler.cjs.js"),h=require("./ComputedAttribute.cjs.js"),C=require("./Clone.cjs.js"),S=require("./MarchingCubes.cjs.js"),M=require("./Decal.cjs.js"),T=require("./Svg.cjs.js"),P=require("./Gltf.cjs.js"),b=require("./AsciiRenderer.cjs.js"),f=require("./Splat.cjs.js"),g=require("./OrthographicCamera.cjs.js"),B=require("./PerspectiveCamera.cjs.js"),v=require("./CubeCamera.cjs.js"),A=require("./DeviceOrientationControls.cjs.js"),L=require("./FlyControls.cjs.js"),R=require("./MapControls.cjs.js"),G=require("./OrbitControls.cjs.js"),F=require("./TrackballControls.cjs.js"),D=require("./ArcballControls.cjs.js"),E=require("./TransformControls.cjs.js"),k=require("./PointerLockControls.cjs.js"),w=require("./FirstPersonControls.cjs.js"),z=require("./CameraControls.cjs.js"),O=require("./MotionPathControls.cjs.js"),I=require("./GizmoHelper.cjs.js"),y=require("./GizmoViewcube.cjs.js"),H=require("./GizmoViewport.cjs.js"),V=require("./Grid.cjs.js"),W=require("./useCubeTexture.cjs.js"),Q=require("./useFBX.cjs.js"),X=require("./useGLTF.cjs.js"),K=require("./useKTX2.cjs.js"),N=require("./useProgress.cjs.js"),U=require("./useTexture.cjs.js"),_=require("./useVideoTexture.cjs.js"),J=require("./useFont.cjs.js"),Y=require("./useSpriteLoader.cjs.js"),Z=require("./Stats.cjs.js"),$=require("./StatsGl.cjs.js"),ee=require("./useDepthBuffer.cjs.js"),re=require("./useAspect.cjs.js"),se=require("./useCamera.cjs.js"),te=require("./useDetectGPU.cjs.js"),oe=require("./useHelper.cjs.js"),ie=require("./useBVH.cjs.js"),ae=require("./useContextBridge.cjs.js"),ue=require("./useAnimations.cjs.js"),ce=require("./useFBO.cjs.js"),ne=require("./useIntersect.cjs.js"),je=require("./useBoxProjectedEnv.cjs.js"),pe=require("./BBAnchor.cjs.js"),le=require("./useTrailTexture.cjs.js"),xe=require("./useCubeCamera.cjs.js"),qe=require("./Example.cjs.js"),de=require("./SpriteAnimator.cjs.js"),me=require("./CurveModifier.cjs.js"),he=require("./MeshDistortMaterial.cjs.js"),Ce=require("./MeshWobbleMaterial.cjs.js"),Se=require("./MeshReflectorMaterial.cjs.js"),Me=require("./MeshRefractionMaterial.cjs.js"),Te=require("./MeshTransmissionMaterial.cjs.js"),Pe=require("./MeshDiscardMaterial.cjs.js"),be=require("./PointMaterial.cjs.js"),fe=require("./shaderMaterial.cjs.js"),ge=require("./softShadows.cjs.js"),Be=require("./shapes.cjs.js"),ve=require("./RoundedBox.cjs.js"),Ae=require("./ScreenQuad.cjs.js"),Le=require("./Center.cjs.js"),Re=require("./Resize.cjs.js"),Ge=require("./Bounds.cjs.js"),Fe=require("./CameraShake.cjs.js"),De=require("./Float.cjs.js"),Ee=require("./Stage.cjs.js"),ke=require("./Backdrop.cjs.js"),we=require("./Shadow.cjs.js"),ze=require("./Caustics.cjs.js"),Oe=require("./ContactShadows.cjs.js"),Ie=require("./AccumulativeShadows.cjs.js"),ye=require("./Reflector.cjs.js"),He=require("./SpotLight.cjs.js"),Ve=require("./Environment.cjs.js"),We=require("./Lightformer.cjs.js"),Qe=require("./Sky.cjs.js"),Xe=require("./Stars.cjs.js"),Ke=require("./Cloud.cjs.js"),Ne=require("./Sparkles.cjs.js"),Ue=require("./useEnvironment.cjs.js"),_e=require("./useMatcapTexture.cjs.js"),Je=require("./useNormalTexture.cjs.js"),Ye=require("./Wireframe.cjs.js"),Ze=require("./ShadowAlpha.cjs.js"),$e=require("./Points.cjs.js"),er=require("./Instances.cjs.js"),rr=require("./Segments.cjs.js"),sr=require("./Detailed.cjs.js"),tr=require("./Preload.cjs.js"),or=require("./BakeShadows.cjs.js"),ir=require("./meshBounds.cjs.js"),ar=require("./AdaptiveDpr.cjs.js"),ur=require("./AdaptiveEvents.cjs.js"),cr=require("./PerformanceMonitor.cjs.js"),nr=require("./RenderTexture.cjs.js"),jr=require("./RenderCubeTexture.cjs.js"),pr=require("./Mask.cjs.js"),lr=require("./Hud.cjs.js"),xr=require("./Fisheye.cjs.js"),qr=require("./MeshPortalMaterial.cjs.js"),dr=require("./calculateScaleFactor.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("three"),require("@react-three/fiber"),require("react-merge-refs"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("../helpers/constants.cjs.js"),require("meshline"),require("camera-controls"),require("maath"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("stats-gl"),require("detect-gpu"),require("three-mesh-bvh"),require("react-composer"),require("../helpers/deprecated.cjs.js"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../materials/MeshRefractionMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("uuid"),require("../materials/WireframeMaterial.cjs.js"),exports.Billboard=e.Billboard,exports.ScreenSpace=r.ScreenSpace,exports.ScreenSizer=s.ScreenSizer,exports.QuadraticBezierLine=t.QuadraticBezierLine,exports.CubicBezierLine=o.CubicBezierLine,exports.CatmullRomLine=i.CatmullRomLine,exports.Line=a.Line,exports.PositionalAudio=u.PositionalAudio,exports.Text=c.Text,exports.Text3D=n.Text3D,exports.Effects=j.Effects,exports.isWebGL2Available=j.isWebGL2Available,exports.GradientTexture=p.GradientTexture,exports.GradientType=p.GradientType,exports.Image=l.Image,exports.Edges=x.Edges,exports.Outlines=q.Outlines,exports.Trail=d.Trail,exports.useTrail=d.useTrail,exports.Sampler=m.Sampler,exports.useSurfaceSampler=m.useSurfaceSampler,exports.ComputedAttribute=h.ComputedAttribute,exports.Clone=C.Clone,exports.MarchingCube=S.MarchingCube,exports.MarchingCubes=S.MarchingCubes,exports.MarchingPlane=S.MarchingPlane,exports.Decal=M.Decal,exports.Svg=T.Svg,exports.Gltf=P.Gltf,exports.AsciiRenderer=b.AsciiRenderer,exports.Splat=f.Splat,exports.OrthographicCamera=g.OrthographicCamera,exports.PerspectiveCamera=B.PerspectiveCamera,exports.CubeCamera=v.CubeCamera,exports.DeviceOrientationControls=A.DeviceOrientationControls,exports.FlyControls=L.FlyControls,exports.MapControls=R.MapControls,exports.OrbitControls=G.OrbitControls,exports.TrackballControls=F.TrackballControls,exports.ArcballControls=D.ArcballControls,exports.TransformControls=E.TransformControls,exports.PointerLockControls=k.PointerLockControls,exports.FirstPersonControls=w.FirstPersonControls,exports.CameraControls=z.CameraControls,exports.MotionPathControls=O.MotionPathControls,exports.useMotion=O.useMotion,exports.GizmoHelper=I.GizmoHelper,exports.useGizmoContext=I.useGizmoContext,exports.GizmoViewcube=y.GizmoViewcube,exports.GizmoViewport=H.GizmoViewport,exports.Grid=V.Grid,exports.useCubeTexture=W.useCubeTexture,exports.useFBX=Q.useFBX,exports.useGLTF=X.useGLTF,exports.useKTX2=K.useKTX2,exports.useProgress=N.useProgress,exports.IsObject=U.IsObject,exports.useTexture=U.useTexture,exports.useVideoTexture=_.useVideoTexture,exports.useFont=J.useFont,exports.calculateAspectRatio=Y.calculateAspectRatio,exports.getFirstItem=Y.getFirstItem,exports.useSpriteLoader=Y.useSpriteLoader,exports.Stats=Z.Stats,exports.StatsGl=$.StatsGl,exports.useDepthBuffer=ee.useDepthBuffer,exports.useAspect=re.useAspect,exports.useCamera=se.useCamera,exports.useDetectGPU=te.useDetectGPU,exports.useHelper=oe.useHelper,exports.Bvh=ie.Bvh,exports.useBVH=ie.useBVH,exports.useContextBridge=ae.useContextBridge,exports.useAnimations=ue.useAnimations,exports.useFBO=ce.useFBO,exports.useIntersect=ne.useIntersect,exports.useBoxProjectedEnv=je.useBoxProjectedEnv,exports.BBAnchor=pe.BBAnchor,exports.useTrailTexture=le.useTrailTexture,exports.useCubeCamera=xe.useCubeCamera,exports.Example=qe.Example,exports.SpriteAnimator=de.SpriteAnimator,exports.useSpriteAnimator=de.useSpriteAnimator,exports.CurveModifier=me.CurveModifier,exports.MeshDistortMaterial=he.MeshDistortMaterial,exports.MeshWobbleMaterial=Ce.MeshWobbleMaterial,exports.MeshReflectorMaterial=Se.MeshReflectorMaterial,exports.MeshRefractionMaterial=Me.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Te.MeshTransmissionMaterial,exports.MeshDiscardMaterial=Pe.MeshDiscardMaterial,exports.PointMaterial=be.PointMaterial,exports.PointMaterialImpl=be.PointMaterialImpl,exports.shaderMaterial=fe.shaderMaterial,exports.SoftShadows=ge.SoftShadows,exports.Box=Be.Box,exports.Capsule=Be.Capsule,exports.Circle=Be.Circle,exports.Cone=Be.Cone,exports.Cylinder=Be.Cylinder,exports.Dodecahedron=Be.Dodecahedron,exports.Extrude=Be.Extrude,exports.Icosahedron=Be.Icosahedron,exports.Lathe=Be.Lathe,exports.Octahedron=Be.Octahedron,exports.Plane=Be.Plane,exports.Polyhedron=Be.Polyhedron,exports.Ring=Be.Ring,exports.Shape=Be.Shape,exports.Sphere=Be.Sphere,exports.Tetrahedron=Be.Tetrahedron,exports.Torus=Be.Torus,exports.TorusKnot=Be.TorusKnot,exports.Tube=Be.Tube,exports.RoundedBox=ve.RoundedBox,exports.ScreenQuad=Ae.ScreenQuad,exports.Center=Le.Center,exports.Resize=Re.Resize,exports.Bounds=Ge.Bounds,exports.useBounds=Ge.useBounds,exports.CameraShake=Fe.CameraShake,exports.Float=De.Float,exports.Stage=Ee.Stage,exports.Backdrop=ke.Backdrop,exports.Shadow=we.Shadow,exports.Caustics=ze.Caustics,exports.ContactShadows=Oe.ContactShadows,exports.AccumulativeShadows=Ie.AccumulativeShadows,exports.RandomizedLight=Ie.RandomizedLight,exports.accumulativeContext=Ie.accumulativeContext,exports.Reflector=ye.Reflector,exports.SpotLight=He.SpotLight,exports.SpotLightShadow=He.SpotLightShadow,exports.Environment=Ve.Environment,exports.EnvironmentCube=Ve.EnvironmentCube,exports.EnvironmentMap=Ve.EnvironmentMap,exports.EnvironmentPortal=Ve.EnvironmentPortal,exports.Lightformer=We.Lightformer,exports.Sky=Qe.Sky,exports.calcPosFromAngles=Qe.calcPosFromAngles,exports.Stars=Xe.Stars,exports.Cloud=Ke.Cloud,exports.CloudInstance=Ke.CloudInstance,exports.Clouds=Ke.Clouds,exports.Sparkles=Ne.Sparkles,exports.useEnvironment=Ue.useEnvironment,exports.useMatcapTexture=_e.useMatcapTexture,exports.useNormalTexture=Je.useNormalTexture,exports.Wireframe=Ye.Wireframe,exports.ShadowAlpha=Ze.ShadowAlpha,exports.Point=$e.Point,exports.Points=$e.Points,exports.PointsBuffer=$e.PointsBuffer,exports.PositionPoint=$e.PositionPoint,exports.Instance=er.Instance,exports.Instances=er.Instances,exports.Merged=er.Merged,exports.Segment=rr.Segment,exports.SegmentObject=rr.SegmentObject,exports.Segments=rr.Segments,exports.Detailed=sr.Detailed,exports.Preload=tr.Preload,exports.BakeShadows=or.BakeShadows,exports.meshBounds=ir.meshBounds,exports.AdaptiveDpr=ar.AdaptiveDpr,exports.AdaptiveEvents=ur.AdaptiveEvents,exports.PerformanceMonitor=cr.PerformanceMonitor,exports.usePerformanceMonitor=cr.usePerformanceMonitor,exports.RenderTexture=nr.RenderTexture,exports.RenderCubeTexture=jr.RenderCubeTexture,exports.Mask=pr.Mask,exports.useMask=pr.useMask,exports.Hud=lr.Hud,exports.Fisheye=xr.Fisheye,exports.MeshPortalMaterial=qr.MeshPortalMaterial,exports.calculateScaleFactor=dr.calculateScaleFactor;
package/core/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './Billboard';
2
2
  export * from './ScreenSpace';
3
+ export * from './ScreenSizer';
3
4
  export * from './QuadraticBezierLine';
4
5
  export * from './CubicBezierLine';
5
6
  export * from './CatmullRomLine';
@@ -48,6 +49,7 @@ export * from './useProgress';
48
49
  export * from './useTexture';
49
50
  export * from './useVideoTexture';
50
51
  export * from './useFont';
52
+ export * from './useSpriteLoader';
51
53
  export * from './Stats';
52
54
  export * from './StatsGl';
53
55
  export * from './useDepthBuffer';
@@ -119,3 +121,4 @@ export * from './Mask';
119
121
  export * from './Hud';
120
122
  export * from './Fisheye';
121
123
  export * from './MeshPortalMaterial';
124
+ export * from './calculateScaleFactor';
package/core/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { Billboard } from './Billboard.js';
2
2
  export { ScreenSpace } from './ScreenSpace.js';
3
+ export { ScreenSizer } from './ScreenSizer.js';
3
4
  export { QuadraticBezierLine } from './QuadraticBezierLine.js';
4
5
  export { CubicBezierLine } from './CubicBezierLine.js';
5
6
  export { CatmullRomLine } from './CatmullRomLine.js';
@@ -48,6 +49,7 @@ export { useProgress } from './useProgress.js';
48
49
  export { IsObject, useTexture } from './useTexture.js';
49
50
  export { useVideoTexture } from './useVideoTexture.js';
50
51
  export { useFont } from './useFont.js';
52
+ export { calculateAspectRatio, getFirstItem, useSpriteLoader } from './useSpriteLoader.js';
51
53
  export { Stats } from './Stats.js';
52
54
  export { StatsGl } from './StatsGl.js';
53
55
  export { useDepthBuffer } from './useDepthBuffer.js';
@@ -119,6 +121,7 @@ export { Mask, useMask } from './Mask.js';
119
121
  export { Hud } from './Hud.js';
120
122
  export { Fisheye } from './Fisheye.js';
121
123
  export { MeshPortalMaterial } from './MeshPortalMaterial.js';
124
+ export { calculateScaleFactor } from './calculateScaleFactor.js';
122
125
  import '@babel/runtime/helpers/esm/extends';
123
126
  import 'react';
124
127
  import 'three';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("@react-three/fiber"),t=require("react");function n(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 s=n(e),u=n(t);const a=e=>{if(Array.isArray(e))return e[0];if("object"==typeof e&&null!==e){return e[Object.keys(e)[0]][0]}return{w:0,h:0}},o=(e,r,t,n)=>{const u=r*(n.aspect>e/r?n.width/e:n.height/r),a=e*(n.aspect>e/r?n.width/e:n.height/r)*t,o=u*t;let i=Math.min(1,a),c=Math.min(1,o);return a>1&&(i=1,c=o/a*1),new s.Vector3(i,c,1)};function i(n,i,c,f,l){const h=r.useThree((e=>e.viewport)),d=r.useThree((e=>e.gl)),m=u.useRef(null),p=u.useRef(0),[w,y]=t.useState(null),[x,g]=u.useState(new s.Texture),b=new s.TextureLoader,[L,S]=t.useState(null);function j(e){(e||n)&&new Promise((r=>{b.load(null!=e?e:n,r)})).then((e=>{T(null,e)}))}function O(e,r,t){const n=fetch(e).then((e=>e.json())),s=new Promise((e=>{b.load(r,e)}));Promise.all([n,s]).then((e=>{t(e[0],e[1])}))}u.useLayoutEffect((()=>(i&&n?O(i,n,T):n&&j(),()=>{n&&r.useLoader.clear(e.TextureLoader,n)})),[]);const T=(e,r)=>{let t=new s.Vector3(1,1,1);if(null===e){if(r&&f){const e=r.image.width,n=r.image.height,s=e/f,u=n;if(p.current=f,m.current={frames:[],meta:{version:"1.0",size:{w:e,h:n},scale:"1"}},parseInt(s.toString(),10)===s)for(let e=0;e<f;e++)m.current.frames.push({frame:{x:e*s,y:0,w:s,h:u},rotated:!1,trimmed:!1,spriteSourceSize:{x:0,y:0,w:s,h:u},sourceSize:{w:s,h:n}});t=o(s,u,.1,h)}}else if(r){m.current=e,m.current.frames=Array.isArray(e.frames)?e.frames:A(),p.current=Array.isArray(e.frames)?e.frames.length:Object.keys(e.frames).length;const{w:r,h:n}=a(e.frames).sourceSize;t=o(r,n,.1,h)}y(m.current),r.encoding=s.sRGBEncoding,g(r),S({spriteTexture:r,spriteData:m.current,aspect:t})},A=()=>{const e={},r=m.current,t=c;if(t)for(let n=0;n<t.length;n++){e[t[n]]=[];for(const s in r.frames){const u=r.frames[s],a=u.frame,o=a.x,i=a.y,c=a.w,f=a.h,l=u.sourceSize.w,h=u.sourceSize.h;"string"==typeof s&&-1!==s.toLowerCase().indexOf(t[n].toLowerCase())&&e[t[n]].push({x:o,y:i,w:c,h:f,frame:a,sourceSize:{w:l,h:h}})}}return e};return u.useLayoutEffect((()=>{null==l||l(x,w)}),[x,w]),t.useEffect((()=>{if("initTexture"in d){(Array.isArray(x)?x:[x]).forEach(d.initTexture)}}),[d,x]),{spriteObj:L,loadJsonAndTexture:function(e,r){r&&e?O(r,e,T):j(e)}}}i.preload=t=>r.useLoader.preload(e.TextureLoader,t),i.clear=t=>r.useLoader.clear(e.TextureLoader,t),exports.calculateAspectRatio=o,exports.getFirstItem=a,exports.useSpriteLoader=i;
@@ -0,0 +1,9 @@
1
+ import { Texture } from 'three';
2
+ import * as THREE from 'three';
3
+ export declare const getFirstItem: (param: any) => any;
4
+ export declare const calculateAspectRatio: (width: number, height: number, factor: number, v: any) => THREE.Vector3;
5
+ export declare function useSpriteLoader<Url extends string>(input?: Url | null, json?: string | null, animationNames?: string[] | null, numberOfFrames?: number | null, onLoad?: (texture: Texture, textureData?: any) => void): any;
6
+ export declare namespace useSpriteLoader {
7
+ var preload: (url: string) => undefined;
8
+ var clear: (input: string) => void;
9
+ }
@@ -0,0 +1,215 @@
1
+ import * as THREE from 'three';
2
+ import { TextureLoader } from 'three';
3
+ import { useThree, useLoader } from '@react-three/fiber';
4
+ import * as React from 'react';
5
+ import { useState, useEffect } from 'react';
6
+
7
+ // utils
8
+ const getFirstItem = param => {
9
+ if (Array.isArray(param)) {
10
+ return param[0];
11
+ } else if (typeof param === 'object' && param !== null) {
12
+ const keys = Object.keys(param);
13
+ return param[keys[0]][0];
14
+ } else {
15
+ return {
16
+ w: 0,
17
+ h: 0
18
+ };
19
+ }
20
+ };
21
+ const calculateAspectRatio = (width, height, factor, v) => {
22
+ const adaptedHeight = height * (v.aspect > width / height ? v.width / width : v.height / height);
23
+ const adaptedWidth = width * (v.aspect > width / height ? v.width / width : v.height / height);
24
+ const scaleX = adaptedWidth * factor;
25
+ const scaleY = adaptedHeight * factor;
26
+ const currentMaxScale = 1;
27
+ // Calculate the maximum scale based on the aspect ratio and max scale limit
28
+ let finalMaxScaleW = Math.min(currentMaxScale, scaleX);
29
+ let finalMaxScaleH = Math.min(currentMaxScale, scaleY);
30
+
31
+ // Ensure that scaleX and scaleY do not exceed the max scale while maintaining aspect ratio
32
+ if (scaleX > currentMaxScale) {
33
+ finalMaxScaleW = currentMaxScale;
34
+ finalMaxScaleH = scaleY / scaleX * currentMaxScale;
35
+ }
36
+ return new THREE.Vector3(finalMaxScaleW, finalMaxScaleH, 1);
37
+ };
38
+ function useSpriteLoader(input, json, animationNames, numberOfFrames, onLoad) {
39
+ const v = useThree(state => state.viewport);
40
+ const gl = useThree(state => state.gl);
41
+ const spriteDataRef = React.useRef(null);
42
+ const totalFrames = React.useRef(0);
43
+ const aspectFactor = 0.1;
44
+ const [spriteData, setSpriteData] = useState(null);
45
+ const [spriteTexture, setSpriteTexture] = React.useState(new THREE.Texture());
46
+ const textureLoader = new THREE.TextureLoader();
47
+ const [spriteObj, setSpriteObj] = useState(null);
48
+ React.useLayoutEffect(() => {
49
+ if (json && input) {
50
+ loadJsonAndTextureAndExecuteCallback(json, input, parseSpriteData);
51
+ } else if (input) {
52
+ // only load the texture, this is an image sprite only
53
+ loadStandaloneSprite();
54
+ }
55
+ return () => {
56
+ if (input) {
57
+ useLoader.clear(TextureLoader, input);
58
+ }
59
+ };
60
+ }, []);
61
+ function loadJsonAndTexture(textureUrl, jsonUrl) {
62
+ if (jsonUrl && textureUrl) {
63
+ loadJsonAndTextureAndExecuteCallback(jsonUrl, textureUrl, parseSpriteData);
64
+ } else {
65
+ loadStandaloneSprite(textureUrl);
66
+ }
67
+ }
68
+ function loadStandaloneSprite(textureUrl) {
69
+ if (textureUrl || input) {
70
+ new Promise(resolve => {
71
+ textureLoader.load(textureUrl !== null && textureUrl !== void 0 ? textureUrl : input, resolve);
72
+ }).then(texture => {
73
+ parseSpriteData(null, texture);
74
+ });
75
+ }
76
+ }
77
+
78
+ /**
79
+ *
80
+ */
81
+ function loadJsonAndTextureAndExecuteCallback(jsonUrl, textureUrl, callback) {
82
+ const jsonPromise = fetch(jsonUrl).then(response => response.json());
83
+ const texturePromise = new Promise(resolve => {
84
+ textureLoader.load(textureUrl, resolve);
85
+ });
86
+ Promise.all([jsonPromise, texturePromise]).then(response => {
87
+ callback(response[0], response[1]);
88
+ });
89
+ }
90
+ const parseSpriteData = (json, _spriteTexture) => {
91
+ let aspect = new THREE.Vector3(1, 1, 1);
92
+ // sprite only case
93
+ if (json === null) {
94
+ if (_spriteTexture && numberOfFrames) {
95
+ //get size from texture
96
+ const width = _spriteTexture.image.width;
97
+ const height = _spriteTexture.image.height;
98
+ const frameWidth = width / numberOfFrames;
99
+ const frameHeight = height;
100
+ totalFrames.current = numberOfFrames;
101
+ spriteDataRef.current = {
102
+ frames: [],
103
+ meta: {
104
+ version: '1.0',
105
+ size: {
106
+ w: width,
107
+ h: height
108
+ },
109
+ scale: '1'
110
+ }
111
+ };
112
+ if (parseInt(frameWidth.toString(), 10) === frameWidth) {
113
+ // if it fits
114
+ for (let i = 0; i < numberOfFrames; i++) {
115
+ spriteDataRef.current.frames.push({
116
+ frame: {
117
+ x: i * frameWidth,
118
+ y: 0,
119
+ w: frameWidth,
120
+ h: frameHeight
121
+ },
122
+ rotated: false,
123
+ trimmed: false,
124
+ spriteSourceSize: {
125
+ x: 0,
126
+ y: 0,
127
+ w: frameWidth,
128
+ h: frameHeight
129
+ },
130
+ sourceSize: {
131
+ w: frameWidth,
132
+ h: height
133
+ }
134
+ });
135
+ }
136
+ }
137
+ aspect = calculateAspectRatio(frameWidth, frameHeight, aspectFactor, v);
138
+ }
139
+ } else if (_spriteTexture) {
140
+ spriteDataRef.current = json;
141
+ spriteDataRef.current.frames = Array.isArray(json.frames) ? json.frames : parseFrames();
142
+ totalFrames.current = Array.isArray(json.frames) ? json.frames.length : Object.keys(json.frames).length;
143
+ const {
144
+ w,
145
+ h
146
+ } = getFirstItem(json.frames).sourceSize;
147
+ aspect = calculateAspectRatio(w, h, aspectFactor, v);
148
+ }
149
+ setSpriteData(spriteDataRef.current);
150
+ _spriteTexture.encoding = THREE.sRGBEncoding;
151
+ setSpriteTexture(_spriteTexture);
152
+ setSpriteObj({
153
+ spriteTexture: _spriteTexture,
154
+ spriteData: spriteDataRef.current,
155
+ aspect: aspect
156
+ });
157
+ };
158
+
159
+ // for frame based JSON Hash sprite data
160
+ const parseFrames = () => {
161
+ const sprites = {};
162
+ const data = spriteDataRef.current;
163
+ const delimiters = animationNames;
164
+ if (delimiters) {
165
+ for (let i = 0; i < delimiters.length; i++) {
166
+ sprites[delimiters[i]] = [];
167
+ for (const innerKey in data['frames']) {
168
+ const value = data['frames'][innerKey];
169
+ const frameData = value['frame'];
170
+ const x = frameData['x'];
171
+ const y = frameData['y'];
172
+ const width = frameData['w'];
173
+ const height = frameData['h'];
174
+ const sourceWidth = value['sourceSize']['w'];
175
+ const sourceHeight = value['sourceSize']['h'];
176
+ if (typeof innerKey === 'string' && innerKey.toLowerCase().indexOf(delimiters[i].toLowerCase()) !== -1) {
177
+ sprites[delimiters[i]].push({
178
+ x: x,
179
+ y: y,
180
+ w: width,
181
+ h: height,
182
+ frame: frameData,
183
+ sourceSize: {
184
+ w: sourceWidth,
185
+ h: sourceHeight
186
+ }
187
+ });
188
+ }
189
+ }
190
+ }
191
+ }
192
+ return sprites;
193
+ };
194
+ React.useLayoutEffect(() => {
195
+ onLoad == null || onLoad(spriteTexture, spriteData);
196
+ }, [spriteTexture, spriteData]);
197
+
198
+ // https://github.com/mrdoob/three.js/issues/22696
199
+ // Upload the texture to the GPU immediately instead of waiting for the first render
200
+ // NOTE: only available for WebGLRenderer
201
+ useEffect(() => {
202
+ if ('initTexture' in gl) {
203
+ const array = Array.isArray(spriteTexture) ? spriteTexture : [spriteTexture];
204
+ array.forEach(gl.initTexture);
205
+ }
206
+ }, [gl, spriteTexture]);
207
+ return {
208
+ spriteObj,
209
+ loadJsonAndTexture
210
+ };
211
+ }
212
+ useSpriteLoader.preload = url => useLoader.preload(TextureLoader, url);
213
+ useSpriteLoader.clear = input => useLoader.clear(TextureLoader, input);
214
+
215
+ export { calculateAspectRatio, getFirstItem, useSpriteLoader };