@needle-tools/engine 4.7.3-next.1603bb0 → 4.7.3-next.3bba8e3
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/dist/gltf-progressive-BMJtMiwp.js +1204 -0
- package/dist/gltf-progressive-DMJSXxbo.umd.cjs +8 -0
- package/dist/gltf-progressive-zQ2CaD2H.min.js +8 -0
- package/dist/{needle-engine.bundle-CL5SiInU.js → needle-engine.bundle-BJYLZI6V.js} +4 -4
- package/dist/{needle-engine.bundle-6bPQlS1q.min.js → needle-engine.bundle-B_whWHGK.min.js} +3 -3
- package/dist/{needle-engine.bundle-Dm9L7JpU.umd.cjs → needle-engine.bundle-Bd2symsR.umd.cjs} +4 -4
- package/dist/needle-engine.js +3 -3
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/lib/engine/engine_lods.js +1 -1
- package/lib/engine/engine_lods.js.map +1 -1
- package/package.json +2 -2
- package/src/engine/engine_lods.ts +3 -3
- package/dist/gltf-progressive-BCZdu3Gc.min.js +0 -8
- package/dist/gltf-progressive-C6QbvrB4.umd.cjs +0 -8
- package/dist/gltf-progressive-CCddD-3B.js +0 -1159
|
@@ -1 +1 @@
|
|
|
1
|
-
import{GameObject as s,onClear as o,onDestroy as r,onInitialized as n,onAfterRender as i,onBeforeRender as l,onUpdate as d,onStart as c,loadAsset as m,NeedleXRSession as p,Context as g,VERSION as u,Component as y,Components as R}from"./needle-engine.bundle-6bPQlS1q.min.js";import{$physicsKey as E,ActionBuilder as h,ActionCollection as v,ActionModel as f,Addressables as P,AlignmentConstraint as A,AmbientMode as b,Animation as T,AnimationCurve as M,AnimationExtension as I,AnimationTrackHandler as O,AnimationUtils as D,Animator as x,AnimatorConditionMode as k,AnimatorController as L,AnimatorControllerParameterType as B,AnimatorStateInfo as F,Antialiasing as N,Application as W,AssetDatabase as U,AssetReference as w,AudioExtension as G,AudioListener as H,AudioSource as X,AudioTrackHandler as z,Avatar as V,AvatarBlink_Simple as j,AvatarEyeLook_Rotation as _,AvatarLoader as K,AvatarMarker as Q,AvatarModel as Z,Avatar_Brain_LookAt as Y,Avatar_MouthShapes as J,Avatar_MustacheShake as $,Avatar_POI as q,Axes as ee,AxesHelper as ae,BUILD_TIME as se,BaseUIComponent as te,BasicIKConstraint as oe,BehaviorExtension as re,BehaviorModel as ne,Component$1 as ie,BlobStorage as le,BloomEffect as de,BoxCollider as ce,BoxGizmo as me,BoxHelperComponent as pe,Button as ge,ButtonsFactory as ue,CallDirection as Se,CallInfo as Ce,Camera as ye,CameraTargetReachedEvent as Re,Canvas as Ee,CanvasGroup as he,CapsuleCollider as ve,ChangeMaterialOnClick as fe,ChangeTransformOnClick as Pe,CharacterController as Ae,CharacterControllerInput as be,ChromaticAberration as Te,CircularBuffer as Me,ClearFlags as Ie,ClipExtrapolation as Oe,Collider as De,Collision as xe,CollisionDetectionMode as ke,ColorAdjustments as Le,ColorBySpeedModule as Be,ColorOverLifetimeModule as Fe,Component$1 as Ne,ComponentLifecycleEvents as We,ConnectionEvents as Ue,ContactPoint as we,ContactShadows as Ge,ContextArgs as He,ContextEvent as Xe,ContextRegistry as ze,ControlTrackHandler as Ve,CustomBranding as je,CustomShader as _e,DefaultReflectionMode as Ke,Deletable as Qe,DeleteBox as Ze,DepthOfField as Ye,DeviceFlag as Je,DeviceUtilities as $e,DocumentExtension as qe,DragControls as ea,DragMode as aa,DropListener as sa,Duplicatable as ta,EffectWrapper as oa,EmissionModule as ra,EmphasizeOnClick as na,EngineLoadingView as ia,EnvironmentScene as la,EventList as da,EventListEvent as ca,EventSystem as ma,EventTrigger as pa,FieldWithDefault as ga,FileReference as ua,FileReferenceSerializer as Sa,FileSpawnModel as Ca,File_Event as ya,FixedJoint as Ra,Fog as Ea,FrameEvent as ha,GENERATOR as va,Gizmos as fa,GltfExport as Pa,GltfExportBox as Aa,Gradient as ba,Graphic as Ta,GraphicRaycaster as Ma,Graphics as Ia,GridHelper as Oa,GridLayoutGroup as Da,GroundProjectedEnv as xa,GroupActionModel as ka,HideFlags as La,HideOnStart as Ba,HingeJoint as Fa,HorizontalLayoutGroup as Na,HostData as Wa,Image as Ua,ImageReference as wa,ImageReferenceSerializer as Ga,InheritVelocityModule as Ha,Input as Xa,InputEventQueue as za,InputEvents as Va,InputField as ja,InstanceHandle as _a,InstancingHandler as Ka,InstancingUtil as Qa,InstantiateEvent as Za,InstantiateIdProvider as Ya,InstantiateOptions as Ja,Interactable as $a,InternalScreenshotUtils as qa,JoinedRoomResponse as es,KeyEventArgs as as,Keyframe as ss,LODGroup as ts,LODModel as os,LeftRoomResponse as rs,Light as ns,LightData as is,LimitVelocityOverLifetimeModule as ls,LoadingElementOptions as ds,LogStats as cs,LogType as ms,LookAt as ps,LookAtConstraint as gs,MainModule as us,MarkerType as Ss,MaskableGraphic as Cs,Mathf as ys,MeshCollider as Rs,MeshRenderer as Es,MinMaxCurve as hs,MinMaxGradient as vs,MODULES as fs,NEKeyboardEvent as Ps,NEPointerEvent as As,NeedleButtonElement as bs,ContextRegistry as Ts,NeedleEngineModelLoader as Ms,NeedleEngineWebComponent as Is,NeedleMenu as Os,NeedlePatchesKey as Ds,USDZExporter$1 as xs,NeedleXRController as ks,NeedleXRSync as Ls,NeedleXRUtils as Bs,NestedGltf as Fs,NetworkConnection as Ns,NetworkedStreamEvents as Ws,NetworkedStreams as Us,Networking as ws,NewInstanceModel as Gs,NoiseModule as Hs,ObjectRaycaster as Xs,ObjectUtils as zs,OffsetConstraint as Vs,OneEuroFilter as js,OneEuroFilterXYZ as _s,OpenURL as Ks,OrbitControls as Qs,Outline as Zs,OwnershipEvent as Ys,OwnershipModel as Js,PUBLIC_KEY as $s,Padding as qs,ParticleBurst as et,ParticleSubEmitter as at,ParticleSystem as st,ParticleSystemBaseBehaviour as tt,ParticleSystemRenderer as ot,ParticleSystemShapeType as rt,PeerHandle as nt,PeerNetworking as it,Physics as lt,PhysicsExtension as dt,PhysicsMaterialCombine as ct,PixelationEffect as mt,PlayAnimationOnClick as pt,PlayAudioOnClick as gt,PlayableDirector as ut,PlayerColor as St,PlayerState as Ct,PlayerStateEvent as yt,PlayerSync as Rt,PlayerView as Et,PlayerViewManager as ht,PointerEventData as vt,PointerType as ft,PostProcessingEffect as Pt,PostProcessingEffectOrder as At,PostProcessingHandler as bt,Volume as Tt,PreliminaryAction as Mt,PreliminaryTrigger as It,PreviewHelper as Ot,PrimitiveType as Dt,Progress as xt,PromiseAllWithErrors as kt,PromiseErrorResult as Lt,RGBAColor as Bt,RapierPhysics as Ft,RawImage as Nt,RaycastOptions as Wt,Rect as Ut,RectTransform as wt,ReflectionProbe as Gt,RegisteredAnimationInfo as Ht,RemoteSkybox as Xt,RenderTexture as zt,RenderTextureSerializer as Vt,Renderer as jt,RendererData as _t,RendererLightmap as Kt,Rigidbody as Qt,RigidbodyConstraints as Zt,RoomEvents as Yt,RotationBySpeedModule as Jt,RotationOverLifetimeModule as $t,SceneLightSettings as qt,SceneSwitcher as eo,ScreenCapture as ao,ScreenSpaceAmbientOcclusion as so,ScreenSpaceAmbientOcclusionN8 as to,SendQueue as oo,SerializationContext as ro,SetActiveOnClick as no,ShadowCatcher as io,ShapeModule as lo,SharpeningEffect as co,SignalAsset as mo,SignalReceiver as po,SignalReceiverEvent as go,SignalTrackHandler as uo,Size as So,SizeBySpeedModule as Co,SizeOverLifetimeModule as yo,SkinnedMeshRenderer as Ro,SmoothFollow as Eo,SpatialGrabRaycaster as ho,SpatialHtml as vo,SpatialTrigger as fo,SpatialTriggerReceiver as Po,SpectatorCamera as Ao,SphereCollider as bo,SphereIntersection as To,SphereOverlapResult as Mo,Sprite as Io,SpriteData as Oo,SpriteRenderer as Do,SpriteSheet as xo,StateMachineBehaviour as ko,StreamEndedEvent as Lo,StreamReceivedEvent as Bo,SubEmitterSystem as Fo,SyncedCamera as No,SyncedRoom as Wo,SyncedTransform as Uo,TapGestureTrigger as wo,TeleportTarget as Go,TestRunner as Ho,TestSceneUtils as Xo,TestSimulateUserData as zo,Text as Vo,TextBuilder as jo,TextExtension as _o,TextureSheetAnimationModule as Ko,TiltShiftEffect as Qo,Time as Zo,ToneMappingEffect as Yo,TrackHandler as Jo,TrackType as $o,TrailModule as qo,TransformData as er,TransformGizmo as ar,TriggerBuilder as sr,TriggerModel as tr,TypeStore as or,UIRaycastUtils as rr,UIRootComponent as nr,USDDocument as ir,USDObject as lr,USDWriter as dr,USDZExporter as cr,USDZText as mr,USDZUIExtension as pr,UriSerializer as gr,UsageMarker as ur,UserJoinedOrLeftRoomModel as Sr,VariantAction as Cr,VelocityOverLifetimeModule as yr,VerticalLayoutGroup as Rr,VideoPlayer as Er,ViewDevice as hr,Vignette as vr,VisibilityAction as fr,Voip as Pr,Volume as Ar,VolumeParameter as br,VolumeProfile as Tr,WaitForFrames as Mr,WaitForPromise as Ir,WaitForSeconds as Or,Watch as Dr,WebARCameraBackground as xr,WebARSessionRoot as kr,WebXR as Lr,WebXRButtonFactory as Br,WebXRImageTracking as Fr,WebXRImageTrackingModel as Nr,WebXRPlaneTracking as Wr,WebXRTrackedImage as Ur,XRControllerFollow as wr,XRControllerModel as Gr,XRControllerMovement as Hr,XRFlag as Xr,XRRig as zr,XRState as Vr,XRStateFlag as jr,__Ignore as _r,__internalNotifyObjectDestroyed as Kr,activeInHierarchyFieldName as Qr,addAttributeChangeCallback as Zr,addComponent as Yr,addCustomExtensionPlugin as Jr,addNewComponent as $r,addPatch as qr,apply as en,applyHMRChanges as an,applyPrototypeExtensions as sn,beginListenDestroy as tn,beginListenInstantiate as on,binaryIdentifierCasts as rn,build_scene_functions as nn,builtinComponentKeyName as ln,calculateProgress01 as dn,clearMessages as cn,clearMessages as mn,colorSerializer as pn,compareAssociation as gn,componentSerializer as un,copyTexture as Sn,createMotion as Cn,debugNet as yn,debugOwner as Rn,decompressGpuTexture as En,deepClone as hn,delay as vn,delayForFrames as fn,deserializeObject as Pn,destroy as An,destroyComponentInstance as bn,determineMimeTypeFromExtension as Tn,disposeObjectResources as Mn,disposeStream as In,editorGuidKeyName as On,enableSpatialConsole as Dn,euler as xn,eventListSerializer as kn,exportAsGLTF as Ln,findByGuid as Bn,findObjectOfType as Fn,findObjectsOfType as Nn,findResourceUsers as Wn,fitObjectIntoVolume as Un,foreachComponent as wn,foreachComponentEnumerator as Gn,forward as Hn,generateQRCode as Xn,generateSeed as zn,getBoundingBox as Vn,getCameraController as jn,getComponent as _n,getComponentInChildren as Kn,getComponentInParent as Qn,getComponents as Zn,getComponentsInChildren as Yn,getComponentsInParent as Jn,getFormattedDate as $n,getIconElement as qn,getIconTexture as ei,getLoader as ai,getOrAddComponent as si,getParam as ti,getParentHierarchyPath as oi,getPath as ri,getPeerOptions as ni,getPeerjsInstance as ii,getResourceUserCount as li,getTempColor as di,getTempQuaternion as ci,getTempVector as mi,getUrlParams as pi,getVisibleInCustomShadowRendering as gi,getWorldDirection as ui,getWorldEuler as Si,getWorldPosition as Ci,getWorldQuaternion as yi,getWorldRotation as Ri,getWorldScale as Ei,hasCommercialLicense as hi,hasIndieLicense as vi,hasPointerEventComponent as fi,hasProLicense as Pi,hideDebugConsole as Ai,imageToCanvas as bi,instantiate as Ti,invokeLoadedImportPluginHooks as Mi,invokeXRSessionEnd as Ii,invokeXRSessionStart as Oi,isActiveInHierarchy as Di,isActiveSelf as xi,isAndroidDevice as ki,isAnimationAction as Li,isComponent as Bi,isDebugMode as Fi,isDesktop as Ni,isDestroyed as Wi,isDevEnvironment as Ui,isDisposed as wi,isExporting as Gi,isGLTFModel as Hi,isHostedOnGlitch as Xi,isHotReloadEnabled as zi,isHotReloading as Vi,isIPad as ji,isIconElement as _i,isLocalNetwork as Ki,isMacOS as Qi,isMobileDevice as Zi,isMozillaXR as Yi,isQuest as Ji,isResourceTrackingEnabled as $i,isSafari as qi,isUsingInstancing as el,isiOS as al,isiPad as sl,loadSync as tl,logHierarchy as ol,lookAtInverse as rl,lookAtObject as nl,lookAtScreenPoint as il,makeId as ll,makeIdFromRandomWords as dl,makeNameSafe as cl,markAsInstancedRendered as ml,microphonePermissionsGranted as pl,nameof as gl,nameofFactory as ul,objectSerializer as Sl,offXRSessionEnd as Cl,offXRSessionStart as yl,onXRSessionEnd as Rl,onXRSessionStart as El,parseSync as hl,placeOnSurface as vl,postprocessFBXMaterials as fl,prefix as Pl,pushState as Al,randomNumber as bl,registerBinaryType as Tl,registerComponent as Ml,registerComponentExtension as Il,registerCustomEffectType as Ol,registerExportExtensions as Dl,registerExtensions as xl,registerHotReloadType as kl,registerLoader as Ll,registerPrefabProvider as Bl,registerPrototypeExtensions as Fl,registerType as Nl,relativePathPrefix as Wl,removeAttributeChangeCallback as Ul,removeComponent as wl,removeCustomImportExtensionType as Gl,removePatch as Hl,resolveUrl as Xl,sanitizeString as zl,saveImage as Vl,screenshot as jl,screenshot2 as _l,sendDestroyed as Kl,serializable as Ql,serializeObject as Zl,serializeable as Yl,setActive as Jl,setAllowBalloonMessages as $l,setAllowOverlayMessages as ql,setAutoFitEnabled as ed,setCameraController as ad,setDestroyed as sd,setDevEnvironment as td,setDisposable as od,setDontDestroy as rd,setOrAddParamsToUrl as nd,setParam as id,setParamWithoutReload as ld,setPeerOptions as dd,setResourceTrackingEnabled as cd,setState as md,setVisibleInCustomShadowRendering as pd,setWorldEuler as gd,setWorldPosition as ud,setWorldPositionXYZ as Sd,setWorldQuaternion as Cd,setWorldQuaternionXYZW as yd,setWorldRotation as Rd,setWorldRotationXYZ as Ed,setWorldScale as hd,showBalloonError as vd,showBalloonMessage as fd,showBalloonWarning as Pd,showDebugConsole as Ad,slerp as bd,syncDestroy as Td,syncField as Md,syncInstantiate as Id,textureToCanvas as Od,tryCastBinary as Dd,tryDetermineMimetypeFromBinary as xd,tryDetermineMimetypeFromURL as kd,tryFindObject as Ld,tryGetGuid as Bd,unregisterHotReloadType as Fd,unwatchWrite as Nd,useForAutoFit as Wd,validate as Ud,watchWrite as wd}from"./needle-engine.bundle-6bPQlS1q.min.js";import{NEEDLE_progressive as Gd}from"./gltf-progressive-BCZdu3Gc.min.js";import{THREE as Hd}from"./three-DuDKwKB8.min.js";const a={VERSION:u,Context:g,NeedleXRSession:p,assets:{loadFromURL:m},onStart:c,onUpdate:d,onBeforeRender:l,onAfterRender:i,onInitializedContext:n,onDestroyContext:r,onClearContext:o};var S;((S=globalThis.Needle)==null?void 0:S.VERSION)!==void 0&&console.warn(`Needle Engine is already imported: ${globalThis.Needle.VERSION}`);function C(e){for(const t in e)a[t]=e[t]}C(y),C(R);for(const e of Object.getOwnPropertyNames(s))switch(e){case"prototype":case"constructor":case"length":case"name":continue;default:a[e]=s[e];break}if(!globalThis.Needle)globalThis.Needle=a;else for(const e in a)globalThis.Needle[e]=a[e];globalThis.THREE?console.warn("Three.js is already imported"):globalThis.THREE=Hd;export{E as $physicsKey,h as ActionBuilder,v as ActionCollection,f as ActionModel,P as Addressables,A as AlignmentConstraint,b as AmbientMode,T as Animation,M as AnimationCurve,I as AnimationExtension,O as AnimationTrackHandler,D as AnimationUtils,x as Animator,k as AnimatorConditionMode,L as AnimatorController,B as AnimatorControllerParameterType,F as AnimatorStateInfo,N as Antialiasing,W as Application,U as AssetDatabase,w as AssetReference,G as AudioExtension,H as AudioListener,X as AudioSource,z as AudioTrackHandler,V as Avatar,j as AvatarBlink_Simple,_ as AvatarEyeLook_Rotation,K as AvatarLoader,Q as AvatarMarker,Z as AvatarModel,Y as Avatar_Brain_LookAt,J as Avatar_MouthShapes,$ as Avatar_MustacheShake,q as Avatar_POI,ee as Axes,ae as AxesHelper,se as BUILD_TIME,te as BaseUIComponent,oe as BasicIKConstraint,re as BehaviorExtension,ne as BehaviorModel,ie as Behaviour,le as BlobStorage,de as BloomEffect,ce as BoxCollider,me as BoxGizmo,pe as BoxHelperComponent,ge as Button,ue as ButtonsFactory,Se as CallDirection,Ce as CallInfo,ye as Camera,Re as CameraTargetReachedEvent,Ee as Canvas,he as CanvasGroup,ve as CapsuleCollider,fe as ChangeMaterialOnClick,Pe as ChangeTransformOnClick,Ae as CharacterController,be as CharacterControllerInput,Te as ChromaticAberration,Me as CircularBuffer,Ie as ClearFlags,Oe as ClipExtrapolation,De as Collider,xe as Collision,ke as CollisionDetectionMode,Le as ColorAdjustments,Be as ColorBySpeedModule,Fe as ColorOverLifetimeModule,Ne as Component,We as ComponentLifecycleEvents,Ue as ConnectionEvents,we as ContactPoint,Ge as ContactShadows,g as Context,He as ContextArgs,Xe as ContextEvent,ze as ContextRegistry,Ve as ControlTrackHandler,je as CustomBranding,_e as CustomShader,Ke as DefaultReflectionMode,Qe as Deletable,Ze as DeleteBox,Ye as DepthOfField,Je as DeviceFlag,$e as DeviceUtilities,qe as DocumentExtension,ea as DragControls,aa as DragMode,sa as DropListener,ta as Duplicatable,oa as EffectWrapper,ra as EmissionModule,na as EmphasizeOnClick,ia as EngineLoadingView,la as EnvironmentScene,da as EventList,ca as EventListEvent,ma as EventSystem,pa as EventTrigger,ga as FieldWithDefault,ua as FileReference,Sa as FileReferenceSerializer,Ca as FileSpawnModel,ya as File_Event,Ra as FixedJoint,Ea as Fog,ha as FrameEvent,va as GENERATOR,s as GameObject,fa as Gizmos,Pa as GltfExport,Aa as GltfExportBox,ba as Gradient,Ta as Graphic,Ma as GraphicRaycaster,Ia as Graphics,Oa as GridHelper,Da as GridLayoutGroup,xa as GroundProjectedEnv,ka as GroupActionModel,La as HideFlags,Ba as HideOnStart,Fa as HingeJoint,Na as HorizontalLayoutGroup,Wa as HostData,Ua as Image,wa as ImageReference,Ga as ImageReferenceSerializer,Ha as InheritVelocityModule,Xa as Input,za as InputEventQueue,Va as InputEvents,ja as InputField,_a as InstanceHandle,Ka as InstancingHandler,Qa as InstancingUtil,Za as InstantiateEvent,Ya as InstantiateIdProvider,Ja as InstantiateOptions,$a as Interactable,qa as InternalScreenshotUtils,es as JoinedRoomResponse,as as KeyEventArgs,ss as Keyframe,ts as LODGroup,os as LODModel,rs as LeftRoomResponse,ns as Light,is as LightData,ls as LimitVelocityOverLifetimeModule,ds as LoadingElementOptions,cs as LogStats,ms as LogType,ps as LookAt,gs as LookAtConstraint,us as MainModule,Ss as MarkerType,Cs as MaskableGraphic,ys as Mathf,Rs as MeshCollider,Es as MeshRenderer,hs as MinMaxCurve,vs as MinMaxGradient,fs as NEEDLE_ENGINE_MODULES,Gd as NEEDLE_progressive,Ps as NEKeyboardEvent,As as NEPointerEvent,bs as NeedleButtonElement,Ts as NeedleEngine,Ms as NeedleEngineModelLoader,Is as NeedleEngineWebComponent,Os as NeedleMenu,Ds as NeedlePatchesKey,xs as NeedleUSDZExporter,ks as NeedleXRController,p as NeedleXRSession,Ls as NeedleXRSync,Bs as NeedleXRUtils,Fs as NestedGltf,Ns as NetworkConnection,Ws as NetworkedStreamEvents,Us as NetworkedStreams,ws as Networking,Gs as NewInstanceModel,Hs as NoiseModule,Xs as ObjectRaycaster,zs as ObjectUtils,Vs as OffsetConstraint,js as OneEuroFilter,_s as OneEuroFilterXYZ,Ks as OpenURL,Qs as OrbitControls,Zs as Outline,Ys as OwnershipEvent,Js as OwnershipModel,$s as PUBLIC_KEY,qs as Padding,et as ParticleBurst,at as ParticleSubEmitter,st as ParticleSystem,tt as ParticleSystemBaseBehaviour,ot as ParticleSystemRenderer,rt as ParticleSystemShapeType,nt as PeerHandle,it as PeerNetworking,lt as Physics,dt as PhysicsExtension,ct as PhysicsMaterialCombine,mt as PixelationEffect,pt as PlayAnimationOnClick,gt as PlayAudioOnClick,ut as PlayableDirector,St as PlayerColor,Ct as PlayerState,yt as PlayerStateEvent,Rt as PlayerSync,Et as PlayerView,ht as PlayerViewManager,vt as PointerEventData,ft as PointerType,Pt as PostProcessingEffect,At as PostProcessingEffectOrder,bt as PostProcessingHandler,Tt as PostProcessingManager,Mt as PreliminaryAction,It as PreliminaryTrigger,Ot as PreviewHelper,Dt as PrimitiveType,xt as Progress,kt as PromiseAllWithErrors,Lt as PromiseErrorResult,Bt as RGBAColor,Ft as RapierPhysics,Nt as RawImage,Wt as RaycastOptions,Ut as Rect,wt as RectTransform,Gt as ReflectionProbe,Ht as RegisteredAnimationInfo,Xt as RemoteSkybox,zt as RenderTexture,Vt as RenderTextureSerializer,jt as Renderer,_t as RendererData,Kt as RendererLightmap,Qt as Rigidbody,Zt as RigidbodyConstraints,Yt as RoomEvents,Jt as RotationBySpeedModule,$t as RotationOverLifetimeModule,qt as SceneLightSettings,eo as SceneSwitcher,ao as ScreenCapture,so as ScreenSpaceAmbientOcclusion,to as ScreenSpaceAmbientOcclusionN8,oo as SendQueue,ro as SerializationContext,no as SetActiveOnClick,io as ShadowCatcher,lo as ShapeModule,co as SharpeningEffect,mo as SignalAsset,po as SignalReceiver,go as SignalReceiverEvent,uo as SignalTrackHandler,So as Size,Co as SizeBySpeedModule,yo as SizeOverLifetimeModule,Ro as SkinnedMeshRenderer,Eo as SmoothFollow,ho as SpatialGrabRaycaster,vo as SpatialHtml,fo as SpatialTrigger,Po as SpatialTriggerReceiver,Ao as SpectatorCamera,bo as SphereCollider,To as SphereIntersection,Mo as SphereOverlapResult,Io as Sprite,Oo as SpriteData,Do as SpriteRenderer,xo as SpriteSheet,ko as StateMachineBehaviour,Lo as StreamEndedEvent,Bo as StreamReceivedEvent,Fo as SubEmitterSystem,No as SyncedCamera,Wo as SyncedRoom,Uo as SyncedTransform,wo as TapGestureTrigger,Go as TeleportTarget,Ho as TestRunner,Xo as TestSceneUtils,zo as TestSimulateUserData,Vo as Text,jo as TextBuilder,_o as TextExtension,Ko as TextureSheetAnimationModule,Qo as TiltShiftEffect,Zo as Time,Yo as ToneMappingEffect,Jo as TrackHandler,$o as TrackType,qo as TrailModule,er as TransformData,ar as TransformGizmo,sr as TriggerBuilder,tr as TriggerModel,or as TypeStore,rr as UIRaycastUtils,nr as UIRootComponent,ir as USDDocument,lr as USDObject,dr as USDWriter,cr as USDZExporter,mr as USDZText,pr as USDZUIExtension,gr as UriSerializer,ur as UsageMarker,Sr as UserJoinedOrLeftRoomModel,u as VERSION,Cr as VariantAction,yr as VelocityOverLifetimeModule,Rr as VerticalLayoutGroup,Er as VideoPlayer,hr as ViewDevice,vr as Vignette,fr as VisibilityAction,Pr as Voip,Ar as Volume,br as VolumeParameter,Tr as VolumeProfile,Mr as WaitForFrames,Ir as WaitForPromise,Or as WaitForSeconds,Dr as Watch,xr as WebARCameraBackground,kr as WebARSessionRoot,Lr as WebXR,Br as WebXRButtonFactory,Fr as WebXRImageTracking,Nr as WebXRImageTrackingModel,Wr as WebXRPlaneTracking,Ur as WebXRTrackedImage,wr as XRControllerFollow,Gr as XRControllerModel,Hr as XRControllerMovement,Xr as XRFlag,zr as XRRig,Vr as XRState,jr as XRStateFlag,_r as __Ignore,Kr as __internalNotifyObjectDestroyed,Qr as activeInHierarchyFieldName,Zr as addAttributeChangeCallback,Yr as addComponent,Jr as addCustomExtensionPlugin,$r as addNewComponent,qr as addPatch,en as apply,an as applyHMRChanges,sn as applyPrototypeExtensions,tn as beginListenDestroy,on as beginListenInstantiate,rn as binaryIdentifierCasts,nn as build_scene_functions,ln as builtinComponentKeyName,dn as calculateProgress01,cn as clearBalloonMessages,mn as clearOverlayMessages,pn as colorSerializer,gn as compareAssociation,un as componentSerializer,Sn as copyTexture,Cn as createMotion,yn as debugNet,Rn as debugOwner,En as decompressGpuTexture,hn as deepClone,vn as delay,fn as delayForFrames,Pn as deserializeObject,An as destroy,bn as destroyComponentInstance,Tn as determineMimeTypeFromExtension,Mn as disposeObjectResources,In as disposeStream,On as editorGuidKeyName,Dn as enableSpatialConsole,xn as euler,kn as eventListSerializer,Ln as exportAsGLTF,Bn as findByGuid,Fn as findObjectOfType,Nn as findObjectsOfType,Wn as findResourceUsers,Un as fitObjectIntoVolume,wn as foreachComponent,Gn as foreachComponentEnumerator,Hn as forward,Xn as generateQRCode,zn as generateSeed,Vn as getBoundingBox,jn as getCameraController,_n as getComponent,Kn as getComponentInChildren,Qn as getComponentInParent,Zn as getComponents,Yn as getComponentsInChildren,Jn as getComponentsInParent,$n as getFormattedDate,qn as getIconElement,ei as getIconTexture,ai as getLoader,si as getOrAddComponent,ti as getParam,oi as getParentHierarchyPath,ri as getPath,ni as getPeerOptions,ii as getPeerjsInstance,li as getResourceUserCount,di as getTempColor,ci as getTempQuaternion,mi as getTempVector,pi as getUrlParams,gi as getVisibleInCustomShadowRendering,ui as getWorldDirection,Si as getWorldEuler,Ci as getWorldPosition,yi as getWorldQuaternion,Ri as getWorldRotation,Ei as getWorldScale,hi as hasCommercialLicense,vi as hasIndieLicense,fi as hasPointerEventComponent,Pi as hasProLicense,Ai as hideDebugConsole,bi as imageToCanvas,Ti as instantiate,Mi as invokeLoadedImportPluginHooks,Ii as invokeXRSessionEnd,Oi as invokeXRSessionStart,Di as isActiveInHierarchy,xi as isActiveSelf,ki as isAndroidDevice,Li as isAnimationAction,Bi as isComponent,Fi as isDebugMode,Ni as isDesktop,Wi as isDestroyed,Ui as isDevEnvironment,wi as isDisposed,Gi as isExporting,Hi as isGLTFModel,Xi as isHostedOnGlitch,zi as isHotReloadEnabled,Vi as isHotReloading,ji as isIPad,_i as isIconElement,Ki as isLocalNetwork,Qi as isMacOS,Zi as isMobileDevice,Yi as isMozillaXR,Ji as isQuest,$i as isResourceTrackingEnabled,qi as isSafari,el as isUsingInstancing,al as isiOS,sl as isiPad,m as loadAsset,tl as loadSync,ol as logHierarchy,rl as lookAtInverse,nl as lookAtObject,il as lookAtScreenPoint,ll as makeId,dl as makeIdFromRandomWords,cl as makeNameSafeForUSD,ml as markAsInstancedRendered,pl as microphonePermissionsGranted,gl as nameof,ul as nameofFactory,Sl as objectSerializer,Cl as offXRSessionEnd,yl as offXRSessionStart,i as onAfterRender,l as onBeforeRender,o as onClear,r as onDestroy,n as onInitialized,c as onStart,d as onUpdate,Rl as onXRSessionEnd,El as onXRSessionStart,hl as parseSync,vl as placeOnSurface,fl as postprocessFBXMaterials,Pl as prefix,Al as pushState,bl as randomNumber,Tl as registerBinaryType,Ml as registerComponent,Il as registerComponentExtension,Ol as registerCustomEffectType,Dl as registerExportExtensions,xl as registerExtensions,kl as registerHotReloadType,Ll as registerLoader,Bl as registerPrefabProvider,Fl as registerPrototypeExtensions,Nl as registerType,Wl as relativePathPrefix,Ul as removeAttributeChangeCallback,wl as removeComponent,Gl as removeCustomImportExtensionType,Hl as removePatch,Xl as resolveUrl,zl as sanitizeString,Vl as saveImage,jl as screenshot,_l as screenshot2,Kl as sendDestroyed,Ql as serializable,Zl as serializeObject,Yl as serializeable,Jl as setActive,$l as setAllowBalloonMessages,ql as setAllowOverlayMessages,ed as setAutoFitEnabled,ad as setCameraController,sd as setDestroyed,td as setDevEnvironment,od as setDisposable,rd as setDontDestroy,nd as setOrAddParamsToUrl,id as setParam,ld as setParamWithoutReload,dd as setPeerOptions,cd as setResourceTrackingEnabled,md as setState,pd as setVisibleInCustomShadowRendering,gd as setWorldEuler,ud as setWorldPosition,Sd as setWorldPositionXYZ,Cd as setWorldQuaternion,yd as setWorldQuaternionXYZW,Rd as setWorldRotation,Ed as setWorldRotationXYZ,hd as setWorldScale,vd as showBalloonError,fd as showBalloonMessage,Pd as showBalloonWarning,Ad as showDebugConsole,bd as slerp,Td as syncDestroy,Md as syncField,Id as syncInstantiate,Od as textureToCanvas,Dd as tryCastBinary,xd as tryDetermineMimetypeFromBinary,kd as tryDetermineMimetypeFromURL,Ld as tryFindObject,Bd as tryGetGuid,Fd as unregisterHotReloadType,Nd as unwatchWrite,Wd as useForAutoFit,Ud as validate,wd as watchWrite};
|
|
1
|
+
import{GameObject as s,onClear as o,onDestroy as r,onInitialized as n,onAfterRender as i,onBeforeRender as l,onUpdate as d,onStart as c,loadAsset as m,NeedleXRSession as p,Context as g,VERSION as u,Component as y,Components as R}from"./needle-engine.bundle-B_whWHGK.min.js";import{$physicsKey as E,ActionBuilder as h,ActionCollection as v,ActionModel as f,Addressables as P,AlignmentConstraint as A,AmbientMode as b,Animation as T,AnimationCurve as M,AnimationExtension as I,AnimationTrackHandler as O,AnimationUtils as D,Animator as x,AnimatorConditionMode as k,AnimatorController as L,AnimatorControllerParameterType as B,AnimatorStateInfo as F,Antialiasing as N,Application as W,AssetDatabase as U,AssetReference as w,AudioExtension as G,AudioListener as H,AudioSource as X,AudioTrackHandler as z,Avatar as V,AvatarBlink_Simple as j,AvatarEyeLook_Rotation as _,AvatarLoader as K,AvatarMarker as Q,AvatarModel as Z,Avatar_Brain_LookAt as Y,Avatar_MouthShapes as J,Avatar_MustacheShake as $,Avatar_POI as q,Axes as ee,AxesHelper as ae,BUILD_TIME as se,BaseUIComponent as te,BasicIKConstraint as oe,BehaviorExtension as re,BehaviorModel as ne,Component$1 as ie,BlobStorage as le,BloomEffect as de,BoxCollider as ce,BoxGizmo as me,BoxHelperComponent as pe,Button as ge,ButtonsFactory as ue,CallDirection as Se,CallInfo as Ce,Camera as ye,CameraTargetReachedEvent as Re,Canvas as Ee,CanvasGroup as he,CapsuleCollider as ve,ChangeMaterialOnClick as fe,ChangeTransformOnClick as Pe,CharacterController as Ae,CharacterControllerInput as be,ChromaticAberration as Te,CircularBuffer as Me,ClearFlags as Ie,ClipExtrapolation as Oe,Collider as De,Collision as xe,CollisionDetectionMode as ke,ColorAdjustments as Le,ColorBySpeedModule as Be,ColorOverLifetimeModule as Fe,Component$1 as Ne,ComponentLifecycleEvents as We,ConnectionEvents as Ue,ContactPoint as we,ContactShadows as Ge,ContextArgs as He,ContextEvent as Xe,ContextRegistry as ze,ControlTrackHandler as Ve,CustomBranding as je,CustomShader as _e,DefaultReflectionMode as Ke,Deletable as Qe,DeleteBox as Ze,DepthOfField as Ye,DeviceFlag as Je,DeviceUtilities as $e,DocumentExtension as qe,DragControls as ea,DragMode as aa,DropListener as sa,Duplicatable as ta,EffectWrapper as oa,EmissionModule as ra,EmphasizeOnClick as na,EngineLoadingView as ia,EnvironmentScene as la,EventList as da,EventListEvent as ca,EventSystem as ma,EventTrigger as pa,FieldWithDefault as ga,FileReference as ua,FileReferenceSerializer as Sa,FileSpawnModel as Ca,File_Event as ya,FixedJoint as Ra,Fog as Ea,FrameEvent as ha,GENERATOR as va,Gizmos as fa,GltfExport as Pa,GltfExportBox as Aa,Gradient as ba,Graphic as Ta,GraphicRaycaster as Ma,Graphics as Ia,GridHelper as Oa,GridLayoutGroup as Da,GroundProjectedEnv as xa,GroupActionModel as ka,HideFlags as La,HideOnStart as Ba,HingeJoint as Fa,HorizontalLayoutGroup as Na,HostData as Wa,Image as Ua,ImageReference as wa,ImageReferenceSerializer as Ga,InheritVelocityModule as Ha,Input as Xa,InputEventQueue as za,InputEvents as Va,InputField as ja,InstanceHandle as _a,InstancingHandler as Ka,InstancingUtil as Qa,InstantiateEvent as Za,InstantiateIdProvider as Ya,InstantiateOptions as Ja,Interactable as $a,InternalScreenshotUtils as qa,JoinedRoomResponse as es,KeyEventArgs as as,Keyframe as ss,LODGroup as ts,LODModel as os,LeftRoomResponse as rs,Light as ns,LightData as is,LimitVelocityOverLifetimeModule as ls,LoadingElementOptions as ds,LogStats as cs,LogType as ms,LookAt as ps,LookAtConstraint as gs,MainModule as us,MarkerType as Ss,MaskableGraphic as Cs,Mathf as ys,MeshCollider as Rs,MeshRenderer as Es,MinMaxCurve as hs,MinMaxGradient as vs,MODULES as fs,NEKeyboardEvent as Ps,NEPointerEvent as As,NeedleButtonElement as bs,ContextRegistry as Ts,NeedleEngineModelLoader as Ms,NeedleEngineWebComponent as Is,NeedleMenu as Os,NeedlePatchesKey as Ds,USDZExporter$1 as xs,NeedleXRController as ks,NeedleXRSync as Ls,NeedleXRUtils as Bs,NestedGltf as Fs,NetworkConnection as Ns,NetworkedStreamEvents as Ws,NetworkedStreams as Us,Networking as ws,NewInstanceModel as Gs,NoiseModule as Hs,ObjectRaycaster as Xs,ObjectUtils as zs,OffsetConstraint as Vs,OneEuroFilter as js,OneEuroFilterXYZ as _s,OpenURL as Ks,OrbitControls as Qs,Outline as Zs,OwnershipEvent as Ys,OwnershipModel as Js,PUBLIC_KEY as $s,Padding as qs,ParticleBurst as et,ParticleSubEmitter as at,ParticleSystem as st,ParticleSystemBaseBehaviour as tt,ParticleSystemRenderer as ot,ParticleSystemShapeType as rt,PeerHandle as nt,PeerNetworking as it,Physics as lt,PhysicsExtension as dt,PhysicsMaterialCombine as ct,PixelationEffect as mt,PlayAnimationOnClick as pt,PlayAudioOnClick as gt,PlayableDirector as ut,PlayerColor as St,PlayerState as Ct,PlayerStateEvent as yt,PlayerSync as Rt,PlayerView as Et,PlayerViewManager as ht,PointerEventData as vt,PointerType as ft,PostProcessingEffect as Pt,PostProcessingEffectOrder as At,PostProcessingHandler as bt,Volume as Tt,PreliminaryAction as Mt,PreliminaryTrigger as It,PreviewHelper as Ot,PrimitiveType as Dt,Progress as xt,PromiseAllWithErrors as kt,PromiseErrorResult as Lt,RGBAColor as Bt,RapierPhysics as Ft,RawImage as Nt,RaycastOptions as Wt,Rect as Ut,RectTransform as wt,ReflectionProbe as Gt,RegisteredAnimationInfo as Ht,RemoteSkybox as Xt,RenderTexture as zt,RenderTextureSerializer as Vt,Renderer as jt,RendererData as _t,RendererLightmap as Kt,Rigidbody as Qt,RigidbodyConstraints as Zt,RoomEvents as Yt,RotationBySpeedModule as Jt,RotationOverLifetimeModule as $t,SceneLightSettings as qt,SceneSwitcher as eo,ScreenCapture as ao,ScreenSpaceAmbientOcclusion as so,ScreenSpaceAmbientOcclusionN8 as to,SendQueue as oo,SerializationContext as ro,SetActiveOnClick as no,ShadowCatcher as io,ShapeModule as lo,SharpeningEffect as co,SignalAsset as mo,SignalReceiver as po,SignalReceiverEvent as go,SignalTrackHandler as uo,Size as So,SizeBySpeedModule as Co,SizeOverLifetimeModule as yo,SkinnedMeshRenderer as Ro,SmoothFollow as Eo,SpatialGrabRaycaster as ho,SpatialHtml as vo,SpatialTrigger as fo,SpatialTriggerReceiver as Po,SpectatorCamera as Ao,SphereCollider as bo,SphereIntersection as To,SphereOverlapResult as Mo,Sprite as Io,SpriteData as Oo,SpriteRenderer as Do,SpriteSheet as xo,StateMachineBehaviour as ko,StreamEndedEvent as Lo,StreamReceivedEvent as Bo,SubEmitterSystem as Fo,SyncedCamera as No,SyncedRoom as Wo,SyncedTransform as Uo,TapGestureTrigger as wo,TeleportTarget as Go,TestRunner as Ho,TestSceneUtils as Xo,TestSimulateUserData as zo,Text as Vo,TextBuilder as jo,TextExtension as _o,TextureSheetAnimationModule as Ko,TiltShiftEffect as Qo,Time as Zo,ToneMappingEffect as Yo,TrackHandler as Jo,TrackType as $o,TrailModule as qo,TransformData as er,TransformGizmo as ar,TriggerBuilder as sr,TriggerModel as tr,TypeStore as or,UIRaycastUtils as rr,UIRootComponent as nr,USDDocument as ir,USDObject as lr,USDWriter as dr,USDZExporter as cr,USDZText as mr,USDZUIExtension as pr,UriSerializer as gr,UsageMarker as ur,UserJoinedOrLeftRoomModel as Sr,VariantAction as Cr,VelocityOverLifetimeModule as yr,VerticalLayoutGroup as Rr,VideoPlayer as Er,ViewDevice as hr,Vignette as vr,VisibilityAction as fr,Voip as Pr,Volume as Ar,VolumeParameter as br,VolumeProfile as Tr,WaitForFrames as Mr,WaitForPromise as Ir,WaitForSeconds as Or,Watch as Dr,WebARCameraBackground as xr,WebARSessionRoot as kr,WebXR as Lr,WebXRButtonFactory as Br,WebXRImageTracking as Fr,WebXRImageTrackingModel as Nr,WebXRPlaneTracking as Wr,WebXRTrackedImage as Ur,XRControllerFollow as wr,XRControllerModel as Gr,XRControllerMovement as Hr,XRFlag as Xr,XRRig as zr,XRState as Vr,XRStateFlag as jr,__Ignore as _r,__internalNotifyObjectDestroyed as Kr,activeInHierarchyFieldName as Qr,addAttributeChangeCallback as Zr,addComponent as Yr,addCustomExtensionPlugin as Jr,addNewComponent as $r,addPatch as qr,apply as en,applyHMRChanges as an,applyPrototypeExtensions as sn,beginListenDestroy as tn,beginListenInstantiate as on,binaryIdentifierCasts as rn,build_scene_functions as nn,builtinComponentKeyName as ln,calculateProgress01 as dn,clearMessages as cn,clearMessages as mn,colorSerializer as pn,compareAssociation as gn,componentSerializer as un,copyTexture as Sn,createMotion as Cn,debugNet as yn,debugOwner as Rn,decompressGpuTexture as En,deepClone as hn,delay as vn,delayForFrames as fn,deserializeObject as Pn,destroy as An,destroyComponentInstance as bn,determineMimeTypeFromExtension as Tn,disposeObjectResources as Mn,disposeStream as In,editorGuidKeyName as On,enableSpatialConsole as Dn,euler as xn,eventListSerializer as kn,exportAsGLTF as Ln,findByGuid as Bn,findObjectOfType as Fn,findObjectsOfType as Nn,findResourceUsers as Wn,fitObjectIntoVolume as Un,foreachComponent as wn,foreachComponentEnumerator as Gn,forward as Hn,generateQRCode as Xn,generateSeed as zn,getBoundingBox as Vn,getCameraController as jn,getComponent as _n,getComponentInChildren as Kn,getComponentInParent as Qn,getComponents as Zn,getComponentsInChildren as Yn,getComponentsInParent as Jn,getFormattedDate as $n,getIconElement as qn,getIconTexture as ei,getLoader as ai,getOrAddComponent as si,getParam as ti,getParentHierarchyPath as oi,getPath as ri,getPeerOptions as ni,getPeerjsInstance as ii,getResourceUserCount as li,getTempColor as di,getTempQuaternion as ci,getTempVector as mi,getUrlParams as pi,getVisibleInCustomShadowRendering as gi,getWorldDirection as ui,getWorldEuler as Si,getWorldPosition as Ci,getWorldQuaternion as yi,getWorldRotation as Ri,getWorldScale as Ei,hasCommercialLicense as hi,hasIndieLicense as vi,hasPointerEventComponent as fi,hasProLicense as Pi,hideDebugConsole as Ai,imageToCanvas as bi,instantiate as Ti,invokeLoadedImportPluginHooks as Mi,invokeXRSessionEnd as Ii,invokeXRSessionStart as Oi,isActiveInHierarchy as Di,isActiveSelf as xi,isAndroidDevice as ki,isAnimationAction as Li,isComponent as Bi,isDebugMode as Fi,isDesktop as Ni,isDestroyed as Wi,isDevEnvironment as Ui,isDisposed as wi,isExporting as Gi,isGLTFModel as Hi,isHostedOnGlitch as Xi,isHotReloadEnabled as zi,isHotReloading as Vi,isIPad as ji,isIconElement as _i,isLocalNetwork as Ki,isMacOS as Qi,isMobileDevice as Zi,isMozillaXR as Yi,isQuest as Ji,isResourceTrackingEnabled as $i,isSafari as qi,isUsingInstancing as el,isiOS as al,isiPad as sl,loadSync as tl,logHierarchy as ol,lookAtInverse as rl,lookAtObject as nl,lookAtScreenPoint as il,makeId as ll,makeIdFromRandomWords as dl,makeNameSafe as cl,markAsInstancedRendered as ml,microphonePermissionsGranted as pl,nameof as gl,nameofFactory as ul,objectSerializer as Sl,offXRSessionEnd as Cl,offXRSessionStart as yl,onXRSessionEnd as Rl,onXRSessionStart as El,parseSync as hl,placeOnSurface as vl,postprocessFBXMaterials as fl,prefix as Pl,pushState as Al,randomNumber as bl,registerBinaryType as Tl,registerComponent as Ml,registerComponentExtension as Il,registerCustomEffectType as Ol,registerExportExtensions as Dl,registerExtensions as xl,registerHotReloadType as kl,registerLoader as Ll,registerPrefabProvider as Bl,registerPrototypeExtensions as Fl,registerType as Nl,relativePathPrefix as Wl,removeAttributeChangeCallback as Ul,removeComponent as wl,removeCustomImportExtensionType as Gl,removePatch as Hl,resolveUrl as Xl,sanitizeString as zl,saveImage as Vl,screenshot as jl,screenshot2 as _l,sendDestroyed as Kl,serializable as Ql,serializeObject as Zl,serializeable as Yl,setActive as Jl,setAllowBalloonMessages as $l,setAllowOverlayMessages as ql,setAutoFitEnabled as ed,setCameraController as ad,setDestroyed as sd,setDevEnvironment as td,setDisposable as od,setDontDestroy as rd,setOrAddParamsToUrl as nd,setParam as id,setParamWithoutReload as ld,setPeerOptions as dd,setResourceTrackingEnabled as cd,setState as md,setVisibleInCustomShadowRendering as pd,setWorldEuler as gd,setWorldPosition as ud,setWorldPositionXYZ as Sd,setWorldQuaternion as Cd,setWorldQuaternionXYZW as yd,setWorldRotation as Rd,setWorldRotationXYZ as Ed,setWorldScale as hd,showBalloonError as vd,showBalloonMessage as fd,showBalloonWarning as Pd,showDebugConsole as Ad,slerp as bd,syncDestroy as Td,syncField as Md,syncInstantiate as Id,textureToCanvas as Od,tryCastBinary as Dd,tryDetermineMimetypeFromBinary as xd,tryDetermineMimetypeFromURL as kd,tryFindObject as Ld,tryGetGuid as Bd,unregisterHotReloadType as Fd,unwatchWrite as Nd,useForAutoFit as Wd,validate as Ud,watchWrite as wd}from"./needle-engine.bundle-B_whWHGK.min.js";import{NEEDLE_progressive as Gd}from"./gltf-progressive-zQ2CaD2H.min.js";import{THREE as Hd}from"./three-DuDKwKB8.min.js";const a={VERSION:u,Context:g,NeedleXRSession:p,assets:{loadFromURL:m},onStart:c,onUpdate:d,onBeforeRender:l,onAfterRender:i,onInitializedContext:n,onDestroyContext:r,onClearContext:o};var S;((S=globalThis.Needle)==null?void 0:S.VERSION)!==void 0&&console.warn(`Needle Engine is already imported: ${globalThis.Needle.VERSION}`);function C(e){for(const t in e)a[t]=e[t]}C(y),C(R);for(const e of Object.getOwnPropertyNames(s))switch(e){case"prototype":case"constructor":case"length":case"name":continue;default:a[e]=s[e];break}if(!globalThis.Needle)globalThis.Needle=a;else for(const e in a)globalThis.Needle[e]=a[e];globalThis.THREE?console.warn("Three.js is already imported"):globalThis.THREE=Hd;export{E as $physicsKey,h as ActionBuilder,v as ActionCollection,f as ActionModel,P as Addressables,A as AlignmentConstraint,b as AmbientMode,T as Animation,M as AnimationCurve,I as AnimationExtension,O as AnimationTrackHandler,D as AnimationUtils,x as Animator,k as AnimatorConditionMode,L as AnimatorController,B as AnimatorControllerParameterType,F as AnimatorStateInfo,N as Antialiasing,W as Application,U as AssetDatabase,w as AssetReference,G as AudioExtension,H as AudioListener,X as AudioSource,z as AudioTrackHandler,V as Avatar,j as AvatarBlink_Simple,_ as AvatarEyeLook_Rotation,K as AvatarLoader,Q as AvatarMarker,Z as AvatarModel,Y as Avatar_Brain_LookAt,J as Avatar_MouthShapes,$ as Avatar_MustacheShake,q as Avatar_POI,ee as Axes,ae as AxesHelper,se as BUILD_TIME,te as BaseUIComponent,oe as BasicIKConstraint,re as BehaviorExtension,ne as BehaviorModel,ie as Behaviour,le as BlobStorage,de as BloomEffect,ce as BoxCollider,me as BoxGizmo,pe as BoxHelperComponent,ge as Button,ue as ButtonsFactory,Se as CallDirection,Ce as CallInfo,ye as Camera,Re as CameraTargetReachedEvent,Ee as Canvas,he as CanvasGroup,ve as CapsuleCollider,fe as ChangeMaterialOnClick,Pe as ChangeTransformOnClick,Ae as CharacterController,be as CharacterControllerInput,Te as ChromaticAberration,Me as CircularBuffer,Ie as ClearFlags,Oe as ClipExtrapolation,De as Collider,xe as Collision,ke as CollisionDetectionMode,Le as ColorAdjustments,Be as ColorBySpeedModule,Fe as ColorOverLifetimeModule,Ne as Component,We as ComponentLifecycleEvents,Ue as ConnectionEvents,we as ContactPoint,Ge as ContactShadows,g as Context,He as ContextArgs,Xe as ContextEvent,ze as ContextRegistry,Ve as ControlTrackHandler,je as CustomBranding,_e as CustomShader,Ke as DefaultReflectionMode,Qe as Deletable,Ze as DeleteBox,Ye as DepthOfField,Je as DeviceFlag,$e as DeviceUtilities,qe as DocumentExtension,ea as DragControls,aa as DragMode,sa as DropListener,ta as Duplicatable,oa as EffectWrapper,ra as EmissionModule,na as EmphasizeOnClick,ia as EngineLoadingView,la as EnvironmentScene,da as EventList,ca as EventListEvent,ma as EventSystem,pa as EventTrigger,ga as FieldWithDefault,ua as FileReference,Sa as FileReferenceSerializer,Ca as FileSpawnModel,ya as File_Event,Ra as FixedJoint,Ea as Fog,ha as FrameEvent,va as GENERATOR,s as GameObject,fa as Gizmos,Pa as GltfExport,Aa as GltfExportBox,ba as Gradient,Ta as Graphic,Ma as GraphicRaycaster,Ia as Graphics,Oa as GridHelper,Da as GridLayoutGroup,xa as GroundProjectedEnv,ka as GroupActionModel,La as HideFlags,Ba as HideOnStart,Fa as HingeJoint,Na as HorizontalLayoutGroup,Wa as HostData,Ua as Image,wa as ImageReference,Ga as ImageReferenceSerializer,Ha as InheritVelocityModule,Xa as Input,za as InputEventQueue,Va as InputEvents,ja as InputField,_a as InstanceHandle,Ka as InstancingHandler,Qa as InstancingUtil,Za as InstantiateEvent,Ya as InstantiateIdProvider,Ja as InstantiateOptions,$a as Interactable,qa as InternalScreenshotUtils,es as JoinedRoomResponse,as as KeyEventArgs,ss as Keyframe,ts as LODGroup,os as LODModel,rs as LeftRoomResponse,ns as Light,is as LightData,ls as LimitVelocityOverLifetimeModule,ds as LoadingElementOptions,cs as LogStats,ms as LogType,ps as LookAt,gs as LookAtConstraint,us as MainModule,Ss as MarkerType,Cs as MaskableGraphic,ys as Mathf,Rs as MeshCollider,Es as MeshRenderer,hs as MinMaxCurve,vs as MinMaxGradient,fs as NEEDLE_ENGINE_MODULES,Gd as NEEDLE_progressive,Ps as NEKeyboardEvent,As as NEPointerEvent,bs as NeedleButtonElement,Ts as NeedleEngine,Ms as NeedleEngineModelLoader,Is as NeedleEngineWebComponent,Os as NeedleMenu,Ds as NeedlePatchesKey,xs as NeedleUSDZExporter,ks as NeedleXRController,p as NeedleXRSession,Ls as NeedleXRSync,Bs as NeedleXRUtils,Fs as NestedGltf,Ns as NetworkConnection,Ws as NetworkedStreamEvents,Us as NetworkedStreams,ws as Networking,Gs as NewInstanceModel,Hs as NoiseModule,Xs as ObjectRaycaster,zs as ObjectUtils,Vs as OffsetConstraint,js as OneEuroFilter,_s as OneEuroFilterXYZ,Ks as OpenURL,Qs as OrbitControls,Zs as Outline,Ys as OwnershipEvent,Js as OwnershipModel,$s as PUBLIC_KEY,qs as Padding,et as ParticleBurst,at as ParticleSubEmitter,st as ParticleSystem,tt as ParticleSystemBaseBehaviour,ot as ParticleSystemRenderer,rt as ParticleSystemShapeType,nt as PeerHandle,it as PeerNetworking,lt as Physics,dt as PhysicsExtension,ct as PhysicsMaterialCombine,mt as PixelationEffect,pt as PlayAnimationOnClick,gt as PlayAudioOnClick,ut as PlayableDirector,St as PlayerColor,Ct as PlayerState,yt as PlayerStateEvent,Rt as PlayerSync,Et as PlayerView,ht as PlayerViewManager,vt as PointerEventData,ft as PointerType,Pt as PostProcessingEffect,At as PostProcessingEffectOrder,bt as PostProcessingHandler,Tt as PostProcessingManager,Mt as PreliminaryAction,It as PreliminaryTrigger,Ot as PreviewHelper,Dt as PrimitiveType,xt as Progress,kt as PromiseAllWithErrors,Lt as PromiseErrorResult,Bt as RGBAColor,Ft as RapierPhysics,Nt as RawImage,Wt as RaycastOptions,Ut as Rect,wt as RectTransform,Gt as ReflectionProbe,Ht as RegisteredAnimationInfo,Xt as RemoteSkybox,zt as RenderTexture,Vt as RenderTextureSerializer,jt as Renderer,_t as RendererData,Kt as RendererLightmap,Qt as Rigidbody,Zt as RigidbodyConstraints,Yt as RoomEvents,Jt as RotationBySpeedModule,$t as RotationOverLifetimeModule,qt as SceneLightSettings,eo as SceneSwitcher,ao as ScreenCapture,so as ScreenSpaceAmbientOcclusion,to as ScreenSpaceAmbientOcclusionN8,oo as SendQueue,ro as SerializationContext,no as SetActiveOnClick,io as ShadowCatcher,lo as ShapeModule,co as SharpeningEffect,mo as SignalAsset,po as SignalReceiver,go as SignalReceiverEvent,uo as SignalTrackHandler,So as Size,Co as SizeBySpeedModule,yo as SizeOverLifetimeModule,Ro as SkinnedMeshRenderer,Eo as SmoothFollow,ho as SpatialGrabRaycaster,vo as SpatialHtml,fo as SpatialTrigger,Po as SpatialTriggerReceiver,Ao as SpectatorCamera,bo as SphereCollider,To as SphereIntersection,Mo as SphereOverlapResult,Io as Sprite,Oo as SpriteData,Do as SpriteRenderer,xo as SpriteSheet,ko as StateMachineBehaviour,Lo as StreamEndedEvent,Bo as StreamReceivedEvent,Fo as SubEmitterSystem,No as SyncedCamera,Wo as SyncedRoom,Uo as SyncedTransform,wo as TapGestureTrigger,Go as TeleportTarget,Ho as TestRunner,Xo as TestSceneUtils,zo as TestSimulateUserData,Vo as Text,jo as TextBuilder,_o as TextExtension,Ko as TextureSheetAnimationModule,Qo as TiltShiftEffect,Zo as Time,Yo as ToneMappingEffect,Jo as TrackHandler,$o as TrackType,qo as TrailModule,er as TransformData,ar as TransformGizmo,sr as TriggerBuilder,tr as TriggerModel,or as TypeStore,rr as UIRaycastUtils,nr as UIRootComponent,ir as USDDocument,lr as USDObject,dr as USDWriter,cr as USDZExporter,mr as USDZText,pr as USDZUIExtension,gr as UriSerializer,ur as UsageMarker,Sr as UserJoinedOrLeftRoomModel,u as VERSION,Cr as VariantAction,yr as VelocityOverLifetimeModule,Rr as VerticalLayoutGroup,Er as VideoPlayer,hr as ViewDevice,vr as Vignette,fr as VisibilityAction,Pr as Voip,Ar as Volume,br as VolumeParameter,Tr as VolumeProfile,Mr as WaitForFrames,Ir as WaitForPromise,Or as WaitForSeconds,Dr as Watch,xr as WebARCameraBackground,kr as WebARSessionRoot,Lr as WebXR,Br as WebXRButtonFactory,Fr as WebXRImageTracking,Nr as WebXRImageTrackingModel,Wr as WebXRPlaneTracking,Ur as WebXRTrackedImage,wr as XRControllerFollow,Gr as XRControllerModel,Hr as XRControllerMovement,Xr as XRFlag,zr as XRRig,Vr as XRState,jr as XRStateFlag,_r as __Ignore,Kr as __internalNotifyObjectDestroyed,Qr as activeInHierarchyFieldName,Zr as addAttributeChangeCallback,Yr as addComponent,Jr as addCustomExtensionPlugin,$r as addNewComponent,qr as addPatch,en as apply,an as applyHMRChanges,sn as applyPrototypeExtensions,tn as beginListenDestroy,on as beginListenInstantiate,rn as binaryIdentifierCasts,nn as build_scene_functions,ln as builtinComponentKeyName,dn as calculateProgress01,cn as clearBalloonMessages,mn as clearOverlayMessages,pn as colorSerializer,gn as compareAssociation,un as componentSerializer,Sn as copyTexture,Cn as createMotion,yn as debugNet,Rn as debugOwner,En as decompressGpuTexture,hn as deepClone,vn as delay,fn as delayForFrames,Pn as deserializeObject,An as destroy,bn as destroyComponentInstance,Tn as determineMimeTypeFromExtension,Mn as disposeObjectResources,In as disposeStream,On as editorGuidKeyName,Dn as enableSpatialConsole,xn as euler,kn as eventListSerializer,Ln as exportAsGLTF,Bn as findByGuid,Fn as findObjectOfType,Nn as findObjectsOfType,Wn as findResourceUsers,Un as fitObjectIntoVolume,wn as foreachComponent,Gn as foreachComponentEnumerator,Hn as forward,Xn as generateQRCode,zn as generateSeed,Vn as getBoundingBox,jn as getCameraController,_n as getComponent,Kn as getComponentInChildren,Qn as getComponentInParent,Zn as getComponents,Yn as getComponentsInChildren,Jn as getComponentsInParent,$n as getFormattedDate,qn as getIconElement,ei as getIconTexture,ai as getLoader,si as getOrAddComponent,ti as getParam,oi as getParentHierarchyPath,ri as getPath,ni as getPeerOptions,ii as getPeerjsInstance,li as getResourceUserCount,di as getTempColor,ci as getTempQuaternion,mi as getTempVector,pi as getUrlParams,gi as getVisibleInCustomShadowRendering,ui as getWorldDirection,Si as getWorldEuler,Ci as getWorldPosition,yi as getWorldQuaternion,Ri as getWorldRotation,Ei as getWorldScale,hi as hasCommercialLicense,vi as hasIndieLicense,fi as hasPointerEventComponent,Pi as hasProLicense,Ai as hideDebugConsole,bi as imageToCanvas,Ti as instantiate,Mi as invokeLoadedImportPluginHooks,Ii as invokeXRSessionEnd,Oi as invokeXRSessionStart,Di as isActiveInHierarchy,xi as isActiveSelf,ki as isAndroidDevice,Li as isAnimationAction,Bi as isComponent,Fi as isDebugMode,Ni as isDesktop,Wi as isDestroyed,Ui as isDevEnvironment,wi as isDisposed,Gi as isExporting,Hi as isGLTFModel,Xi as isHostedOnGlitch,zi as isHotReloadEnabled,Vi as isHotReloading,ji as isIPad,_i as isIconElement,Ki as isLocalNetwork,Qi as isMacOS,Zi as isMobileDevice,Yi as isMozillaXR,Ji as isQuest,$i as isResourceTrackingEnabled,qi as isSafari,el as isUsingInstancing,al as isiOS,sl as isiPad,m as loadAsset,tl as loadSync,ol as logHierarchy,rl as lookAtInverse,nl as lookAtObject,il as lookAtScreenPoint,ll as makeId,dl as makeIdFromRandomWords,cl as makeNameSafeForUSD,ml as markAsInstancedRendered,pl as microphonePermissionsGranted,gl as nameof,ul as nameofFactory,Sl as objectSerializer,Cl as offXRSessionEnd,yl as offXRSessionStart,i as onAfterRender,l as onBeforeRender,o as onClear,r as onDestroy,n as onInitialized,c as onStart,d as onUpdate,Rl as onXRSessionEnd,El as onXRSessionStart,hl as parseSync,vl as placeOnSurface,fl as postprocessFBXMaterials,Pl as prefix,Al as pushState,bl as randomNumber,Tl as registerBinaryType,Ml as registerComponent,Il as registerComponentExtension,Ol as registerCustomEffectType,Dl as registerExportExtensions,xl as registerExtensions,kl as registerHotReloadType,Ll as registerLoader,Bl as registerPrefabProvider,Fl as registerPrototypeExtensions,Nl as registerType,Wl as relativePathPrefix,Ul as removeAttributeChangeCallback,wl as removeComponent,Gl as removeCustomImportExtensionType,Hl as removePatch,Xl as resolveUrl,zl as sanitizeString,Vl as saveImage,jl as screenshot,_l as screenshot2,Kl as sendDestroyed,Ql as serializable,Zl as serializeObject,Yl as serializeable,Jl as setActive,$l as setAllowBalloonMessages,ql as setAllowOverlayMessages,ed as setAutoFitEnabled,ad as setCameraController,sd as setDestroyed,td as setDevEnvironment,od as setDisposable,rd as setDontDestroy,nd as setOrAddParamsToUrl,id as setParam,ld as setParamWithoutReload,dd as setPeerOptions,cd as setResourceTrackingEnabled,md as setState,pd as setVisibleInCustomShadowRendering,gd as setWorldEuler,ud as setWorldPosition,Sd as setWorldPositionXYZ,Cd as setWorldQuaternion,yd as setWorldQuaternionXYZW,Rd as setWorldRotation,Ed as setWorldRotationXYZ,hd as setWorldScale,vd as showBalloonError,fd as showBalloonMessage,Pd as showBalloonWarning,Ad as showDebugConsole,bd as slerp,Td as syncDestroy,Md as syncField,Id as syncInstantiate,Od as textureToCanvas,Dd as tryCastBinary,xd as tryDetermineMimetypeFromBinary,kd as tryDetermineMimetypeFromURL,Ld as tryFindObject,Bd as tryGetGuid,Fd as unregisterHotReloadType,Nd as unwatchWrite,Wd as useForAutoFit,Ud as validate,wd as watchWrite};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./needle-engine.bundle-Dm9L7JpU.umd.cjs"),a=require("./gltf-progressive-C6QbvrB4.umd.cjs"),s=require("./three-B_hneGZr.umd.cjs"),o={VERSION:e.VERSION,Context:e.Context,NeedleXRSession:e.NeedleXRSession,assets:{loadFromURL:e.loadAsset},onStart:e.onStart,onUpdate:e.onUpdate,onBeforeRender:e.onBeforeRender,onAfterRender:e.onAfterRender,onInitializedContext:e.onInitialized,onDestroyContext:e.onDestroy,onClearContext:e.onClear};var n;((n=globalThis.Needle)==null?void 0:n.VERSION)!==void 0&&console.warn(`Needle Engine is already imported: ${globalThis.Needle.VERSION}`);function i(t){for(const r in t)o[r]=t[r]}i(e.Component);i(e.Components);for(const t of Object.getOwnPropertyNames(e.GameObject))switch(t){case"prototype":case"constructor":case"length":case"name":continue;default:o[t]=e.GameObject[t];break}if(!globalThis.Needle)globalThis.Needle=o;else for(const t in o)globalThis.Needle[t]=o[t];globalThis.THREE?console.warn("Three.js is already imported"):globalThis.THREE=s.THREE;exports.$physicsKey=e.$physicsKey;exports.ActionBuilder=e.ActionBuilder;exports.ActionCollection=e.ActionCollection;exports.ActionModel=e.ActionModel;exports.Addressables=e.Addressables;exports.AlignmentConstraint=e.AlignmentConstraint;exports.AmbientMode=e.AmbientMode;exports.Animation=e.Animation;exports.AnimationCurve=e.AnimationCurve;exports.AnimationExtension=e.AnimationExtension;exports.AnimationTrackHandler=e.AnimationTrackHandler;exports.AnimationUtils=e.AnimationUtils;exports.Animator=e.Animator;exports.AnimatorConditionMode=e.AnimatorConditionMode;exports.AnimatorController=e.AnimatorController;exports.AnimatorControllerParameterType=e.AnimatorControllerParameterType;exports.AnimatorStateInfo=e.AnimatorStateInfo;exports.Antialiasing=e.Antialiasing;exports.Application=e.Application;exports.AssetDatabase=e.AssetDatabase;exports.AssetReference=e.AssetReference;exports.AudioExtension=e.AudioExtension;exports.AudioListener=e.AudioListener;exports.AudioSource=e.AudioSource;exports.AudioTrackHandler=e.AudioTrackHandler;exports.Avatar=e.Avatar;exports.AvatarBlink_Simple=e.AvatarBlink_Simple;exports.AvatarEyeLook_Rotation=e.AvatarEyeLook_Rotation;exports.AvatarLoader=e.AvatarLoader;exports.AvatarMarker=e.AvatarMarker;exports.AvatarModel=e.AvatarModel;exports.Avatar_Brain_LookAt=e.Avatar_Brain_LookAt;exports.Avatar_MouthShapes=e.Avatar_MouthShapes;exports.Avatar_MustacheShake=e.Avatar_MustacheShake;exports.Avatar_POI=e.Avatar_POI;exports.Axes=e.Axes;exports.AxesHelper=e.AxesHelper;exports.BUILD_TIME=e.BUILD_TIME;exports.BaseUIComponent=e.BaseUIComponent;exports.BasicIKConstraint=e.BasicIKConstraint;exports.BehaviorExtension=e.BehaviorExtension;exports.BehaviorModel=e.BehaviorModel;exports.Behaviour=e.Component$1;Object.defineProperty(exports,"BlobStorage",{enumerable:!0,get:()=>e.BlobStorage});exports.BloomEffect=e.BloomEffect;exports.BoxCollider=e.BoxCollider;exports.BoxGizmo=e.BoxGizmo;exports.BoxHelperComponent=e.BoxHelperComponent;exports.Button=e.Button;exports.ButtonsFactory=e.ButtonsFactory;exports.CallDirection=e.CallDirection;exports.CallInfo=e.CallInfo;exports.Camera=e.Camera;exports.CameraTargetReachedEvent=e.CameraTargetReachedEvent;exports.Canvas=e.Canvas;exports.CanvasGroup=e.CanvasGroup;exports.CapsuleCollider=e.CapsuleCollider;exports.ChangeMaterialOnClick=e.ChangeMaterialOnClick;exports.ChangeTransformOnClick=e.ChangeTransformOnClick;exports.CharacterController=e.CharacterController;exports.CharacterControllerInput=e.CharacterControllerInput;exports.ChromaticAberration=e.ChromaticAberration;exports.CircularBuffer=e.CircularBuffer;exports.ClearFlags=e.ClearFlags;exports.ClipExtrapolation=e.ClipExtrapolation;exports.Collider=e.Collider;exports.Collision=e.Collision;exports.CollisionDetectionMode=e.CollisionDetectionMode;exports.ColorAdjustments=e.ColorAdjustments;exports.ColorBySpeedModule=e.ColorBySpeedModule;exports.ColorOverLifetimeModule=e.ColorOverLifetimeModule;exports.Component=e.Component$1;exports.ComponentLifecycleEvents=e.ComponentLifecycleEvents;exports.ConnectionEvents=e.ConnectionEvents;exports.ContactPoint=e.ContactPoint;exports.ContactShadows=e.ContactShadows;exports.Context=e.Context;exports.ContextArgs=e.ContextArgs;exports.ContextEvent=e.ContextEvent;exports.ContextRegistry=e.ContextRegistry;exports.ControlTrackHandler=e.ControlTrackHandler;exports.CustomBranding=e.CustomBranding;exports.CustomShader=e.CustomShader;exports.DefaultReflectionMode=e.DefaultReflectionMode;exports.Deletable=e.Deletable;exports.DeleteBox=e.DeleteBox;exports.DepthOfField=e.DepthOfField;exports.DeviceFlag=e.DeviceFlag;Object.defineProperty(exports,"DeviceUtilities",{enumerable:!0,get:()=>e.DeviceUtilities});exports.DocumentExtension=e.DocumentExtension;exports.DragControls=e.DragControls;exports.DragMode=e.DragMode;exports.DropListener=e.DropListener;exports.Duplicatable=e.Duplicatable;exports.EffectWrapper=e.EffectWrapper;exports.EmissionModule=e.EmissionModule;exports.EmphasizeOnClick=e.EmphasizeOnClick;exports.EngineLoadingView=e.EngineLoadingView;exports.EnvironmentScene=e.EnvironmentScene;exports.EventList=e.EventList;exports.EventListEvent=e.EventListEvent;exports.EventSystem=e.EventSystem;exports.EventTrigger=e.EventTrigger;exports.FieldWithDefault=e.FieldWithDefault;exports.FileReference=e.FileReference;exports.FileReferenceSerializer=e.FileReferenceSerializer;exports.FileSpawnModel=e.FileSpawnModel;exports.File_Event=e.File_Event;exports.FixedJoint=e.FixedJoint;exports.Fog=e.Fog;exports.FrameEvent=e.FrameEvent;exports.GENERATOR=e.GENERATOR;exports.GameObject=e.GameObject;exports.Gizmos=e.Gizmos;exports.GltfExport=e.GltfExport;exports.GltfExportBox=e.GltfExportBox;exports.Gradient=e.Gradient;exports.Graphic=e.Graphic;exports.GraphicRaycaster=e.GraphicRaycaster;exports.Graphics=e.Graphics;exports.GridHelper=e.GridHelper;exports.GridLayoutGroup=e.GridLayoutGroup;exports.GroundProjectedEnv=e.GroundProjectedEnv;exports.GroupActionModel=e.GroupActionModel;exports.HideFlags=e.HideFlags;exports.HideOnStart=e.HideOnStart;exports.HingeJoint=e.HingeJoint;exports.HorizontalLayoutGroup=e.HorizontalLayoutGroup;exports.HostData=e.HostData;exports.Image=e.Image;exports.ImageReference=e.ImageReference;exports.ImageReferenceSerializer=e.ImageReferenceSerializer;exports.InheritVelocityModule=e.InheritVelocityModule;exports.Input=e.Input;exports.InputEventQueue=e.InputEventQueue;exports.InputEvents=e.InputEvents;exports.InputField=e.InputField;exports.InstanceHandle=e.InstanceHandle;exports.InstancingHandler=e.InstancingHandler;exports.InstancingUtil=e.InstancingUtil;exports.InstantiateEvent=e.InstantiateEvent;exports.InstantiateIdProvider=e.InstantiateIdProvider;exports.InstantiateOptions=e.InstantiateOptions;exports.Interactable=e.Interactable;Object.defineProperty(exports,"InternalScreenshotUtils",{enumerable:!0,get:()=>e.InternalScreenshotUtils});exports.JoinedRoomResponse=e.JoinedRoomResponse;exports.KeyEventArgs=e.KeyEventArgs;exports.Keyframe=e.Keyframe;exports.LODGroup=e.LODGroup;exports.LODModel=e.LODModel;exports.LeftRoomResponse=e.LeftRoomResponse;exports.Light=e.Light;exports.LightData=e.LightData;exports.LimitVelocityOverLifetimeModule=e.LimitVelocityOverLifetimeModule;exports.LoadingElementOptions=e.LoadingElementOptions;exports.LogStats=e.LogStats;exports.LogType=e.LogType;exports.LookAt=e.LookAt;exports.LookAtConstraint=e.LookAtConstraint;exports.MainModule=e.MainModule;exports.MarkerType=e.MarkerType;exports.MaskableGraphic=e.MaskableGraphic;exports.Mathf=e.Mathf;exports.MeshCollider=e.MeshCollider;exports.MeshRenderer=e.MeshRenderer;exports.MinMaxCurve=e.MinMaxCurve;exports.MinMaxGradient=e.MinMaxGradient;Object.defineProperty(exports,"NEEDLE_ENGINE_MODULES",{enumerable:!0,get:()=>e.MODULES});exports.NEKeyboardEvent=e.NEKeyboardEvent;exports.NEPointerEvent=e.NEPointerEvent;exports.NeedleButtonElement=e.NeedleButtonElement;exports.NeedleEngine=e.ContextRegistry;Object.defineProperty(exports,"NeedleEngineModelLoader",{enumerable:!0,get:()=>e.NeedleEngineModelLoader});exports.NeedleEngineWebComponent=e.NeedleEngineWebComponent;exports.NeedleMenu=e.NeedleMenu;exports.NeedlePatchesKey=e.NeedlePatchesKey;exports.NeedleUSDZExporter=e.USDZExporter$1;exports.NeedleXRController=e.NeedleXRController;exports.NeedleXRSession=e.NeedleXRSession;exports.NeedleXRSync=e.NeedleXRSync;exports.NeedleXRUtils=e.NeedleXRUtils;exports.NestedGltf=e.NestedGltf;exports.NetworkConnection=e.NetworkConnection;exports.NetworkedStreamEvents=e.NetworkedStreamEvents;exports.NetworkedStreams=e.NetworkedStreams;exports.Networking=e.Networking;exports.NewInstanceModel=e.NewInstanceModel;exports.NoiseModule=e.NoiseModule;exports.ObjectRaycaster=e.ObjectRaycaster;exports.ObjectUtils=e.ObjectUtils;exports.OffsetConstraint=e.OffsetConstraint;exports.OneEuroFilter=e.OneEuroFilter;exports.OneEuroFilterXYZ=e.OneEuroFilterXYZ;exports.OpenURL=e.OpenURL;exports.OrbitControls=e.OrbitControls;exports.Outline=e.Outline;exports.OwnershipEvent=e.OwnershipEvent;exports.OwnershipModel=e.OwnershipModel;exports.PUBLIC_KEY=e.PUBLIC_KEY;exports.Padding=e.Padding;exports.ParticleBurst=e.ParticleBurst;exports.ParticleSubEmitter=e.ParticleSubEmitter;exports.ParticleSystem=e.ParticleSystem;exports.ParticleSystemBaseBehaviour=e.ParticleSystemBaseBehaviour;exports.ParticleSystemRenderer=e.ParticleSystemRenderer;exports.ParticleSystemShapeType=e.ParticleSystemShapeType;exports.PeerHandle=e.PeerHandle;exports.PeerNetworking=e.PeerNetworking;exports.Physics=e.Physics;exports.PhysicsExtension=e.PhysicsExtension;exports.PhysicsMaterialCombine=e.PhysicsMaterialCombine;exports.PixelationEffect=e.PixelationEffect;exports.PlayAnimationOnClick=e.PlayAnimationOnClick;exports.PlayAudioOnClick=e.PlayAudioOnClick;exports.PlayableDirector=e.PlayableDirector;exports.PlayerColor=e.PlayerColor;exports.PlayerState=e.PlayerState;exports.PlayerStateEvent=e.PlayerStateEvent;exports.PlayerSync=e.PlayerSync;exports.PlayerView=e.PlayerView;exports.PlayerViewManager=e.PlayerViewManager;exports.PointerEventData=e.PointerEventData;exports.PointerType=e.PointerType;exports.PostProcessingEffect=e.PostProcessingEffect;exports.PostProcessingEffectOrder=e.PostProcessingEffectOrder;exports.PostProcessingHandler=e.PostProcessingHandler;exports.PostProcessingManager=e.Volume;exports.PreliminaryAction=e.PreliminaryAction;exports.PreliminaryTrigger=e.PreliminaryTrigger;Object.defineProperty(exports,"PreviewHelper",{enumerable:!0,get:()=>e.PreviewHelper});exports.PrimitiveType=e.PrimitiveType;exports.Progress=e.Progress;exports.PromiseAllWithErrors=e.PromiseAllWithErrors;exports.PromiseErrorResult=e.PromiseErrorResult;exports.RGBAColor=e.RGBAColor;exports.RapierPhysics=e.RapierPhysics;exports.RawImage=e.RawImage;exports.RaycastOptions=e.RaycastOptions;exports.Rect=e.Rect;exports.RectTransform=e.RectTransform;exports.ReflectionProbe=e.ReflectionProbe;exports.RegisteredAnimationInfo=e.RegisteredAnimationInfo;exports.RemoteSkybox=e.RemoteSkybox;exports.RenderTexture=e.RenderTexture;exports.RenderTextureSerializer=e.RenderTextureSerializer;exports.Renderer=e.Renderer;exports.RendererData=e.RendererData;exports.RendererLightmap=e.RendererLightmap;exports.Rigidbody=e.Rigidbody;exports.RigidbodyConstraints=e.RigidbodyConstraints;exports.RoomEvents=e.RoomEvents;exports.RotationBySpeedModule=e.RotationBySpeedModule;exports.RotationOverLifetimeModule=e.RotationOverLifetimeModule;exports.SceneLightSettings=e.SceneLightSettings;exports.SceneSwitcher=e.SceneSwitcher;exports.ScreenCapture=e.ScreenCapture;exports.ScreenSpaceAmbientOcclusion=e.ScreenSpaceAmbientOcclusion;exports.ScreenSpaceAmbientOcclusionN8=e.ScreenSpaceAmbientOcclusionN8;exports.SendQueue=e.SendQueue;exports.SerializationContext=e.SerializationContext;exports.SetActiveOnClick=e.SetActiveOnClick;exports.ShadowCatcher=e.ShadowCatcher;exports.ShapeModule=e.ShapeModule;exports.SharpeningEffect=e.SharpeningEffect;exports.SignalAsset=e.SignalAsset;exports.SignalReceiver=e.SignalReceiver;exports.SignalReceiverEvent=e.SignalReceiverEvent;exports.SignalTrackHandler=e.SignalTrackHandler;exports.Size=e.Size;exports.SizeBySpeedModule=e.SizeBySpeedModule;exports.SizeOverLifetimeModule=e.SizeOverLifetimeModule;exports.SkinnedMeshRenderer=e.SkinnedMeshRenderer;exports.SmoothFollow=e.SmoothFollow;exports.SpatialGrabRaycaster=e.SpatialGrabRaycaster;exports.SpatialHtml=e.SpatialHtml;exports.SpatialTrigger=e.SpatialTrigger;exports.SpatialTriggerReceiver=e.SpatialTriggerReceiver;exports.SpectatorCamera=e.SpectatorCamera;exports.SphereCollider=e.SphereCollider;exports.SphereIntersection=e.SphereIntersection;exports.SphereOverlapResult=e.SphereOverlapResult;exports.Sprite=e.Sprite;exports.SpriteData=e.SpriteData;exports.SpriteRenderer=e.SpriteRenderer;exports.SpriteSheet=e.SpriteSheet;exports.StateMachineBehaviour=e.StateMachineBehaviour;exports.StreamEndedEvent=e.StreamEndedEvent;exports.StreamReceivedEvent=e.StreamReceivedEvent;exports.SubEmitterSystem=e.SubEmitterSystem;exports.SyncedCamera=e.SyncedCamera;exports.SyncedRoom=e.SyncedRoom;exports.SyncedTransform=e.SyncedTransform;exports.TapGestureTrigger=e.TapGestureTrigger;exports.TeleportTarget=e.TeleportTarget;exports.TestRunner=e.TestRunner;exports.TestSceneUtils=e.TestSceneUtils;exports.TestSimulateUserData=e.TestSimulateUserData;exports.Text=e.Text;exports.TextBuilder=e.TextBuilder;exports.TextExtension=e.TextExtension;exports.TextureSheetAnimationModule=e.TextureSheetAnimationModule;exports.TiltShiftEffect=e.TiltShiftEffect;exports.Time=e.Time;exports.ToneMappingEffect=e.ToneMappingEffect;exports.TrackHandler=e.TrackHandler;exports.TrackType=e.TrackType;exports.TrailModule=e.TrailModule;exports.TransformData=e.TransformData;exports.TransformGizmo=e.TransformGizmo;exports.TriggerBuilder=e.TriggerBuilder;exports.TriggerModel=e.TriggerModel;exports.TypeStore=e.TypeStore;exports.UIRaycastUtils=e.UIRaycastUtils;exports.UIRootComponent=e.UIRootComponent;exports.USDDocument=e.USDDocument;exports.USDObject=e.USDObject;exports.USDWriter=e.USDWriter;exports.USDZExporter=e.USDZExporter;exports.USDZText=e.USDZText;exports.USDZUIExtension=e.USDZUIExtension;exports.UriSerializer=e.UriSerializer;exports.UsageMarker=e.UsageMarker;exports.UserJoinedOrLeftRoomModel=e.UserJoinedOrLeftRoomModel;exports.VERSION=e.VERSION;exports.VariantAction=e.VariantAction;exports.VelocityOverLifetimeModule=e.VelocityOverLifetimeModule;exports.VerticalLayoutGroup=e.VerticalLayoutGroup;exports.VideoPlayer=e.VideoPlayer;exports.ViewDevice=e.ViewDevice;exports.Vignette=e.Vignette;exports.VisibilityAction=e.VisibilityAction;exports.Voip=e.Voip;exports.Volume=e.Volume;exports.VolumeParameter=e.VolumeParameter;exports.VolumeProfile=e.VolumeProfile;exports.WaitForFrames=e.WaitForFrames;exports.WaitForPromise=e.WaitForPromise;exports.WaitForSeconds=e.WaitForSeconds;exports.Watch=e.Watch;exports.WebARCameraBackground=e.WebARCameraBackground;exports.WebARSessionRoot=e.WebARSessionRoot;exports.WebXR=e.WebXR;exports.WebXRButtonFactory=e.WebXRButtonFactory;exports.WebXRImageTracking=e.WebXRImageTracking;exports.WebXRImageTrackingModel=e.WebXRImageTrackingModel;exports.WebXRPlaneTracking=e.WebXRPlaneTracking;exports.WebXRTrackedImage=e.WebXRTrackedImage;exports.XRControllerFollow=e.XRControllerFollow;exports.XRControllerModel=e.XRControllerModel;exports.XRControllerMovement=e.XRControllerMovement;exports.XRFlag=e.XRFlag;exports.XRRig=e.XRRig;exports.XRState=e.XRState;exports.XRStateFlag=e.XRStateFlag;exports.__Ignore=e.__Ignore;exports.__internalNotifyObjectDestroyed=e.__internalNotifyObjectDestroyed;exports.activeInHierarchyFieldName=e.activeInHierarchyFieldName;exports.addAttributeChangeCallback=e.addAttributeChangeCallback;exports.addComponent=e.addComponent;exports.addCustomExtensionPlugin=e.addCustomExtensionPlugin;exports.addNewComponent=e.addNewComponent;exports.addPatch=e.addPatch;exports.apply=e.apply;exports.applyHMRChanges=e.applyHMRChanges;exports.applyPrototypeExtensions=e.applyPrototypeExtensions;exports.beginListenDestroy=e.beginListenDestroy;exports.beginListenInstantiate=e.beginListenInstantiate;exports.binaryIdentifierCasts=e.binaryIdentifierCasts;exports.build_scene_functions=e.build_scene_functions;exports.builtinComponentKeyName=e.builtinComponentKeyName;exports.calculateProgress01=e.calculateProgress01;exports.clearBalloonMessages=e.clearMessages;exports.clearOverlayMessages=e.clearMessages;exports.colorSerializer=e.colorSerializer;exports.compareAssociation=e.compareAssociation;exports.componentSerializer=e.componentSerializer;exports.copyTexture=e.copyTexture;exports.createMotion=e.createMotion;exports.debugNet=e.debugNet;exports.debugOwner=e.debugOwner;exports.decompressGpuTexture=e.decompressGpuTexture;exports.deepClone=e.deepClone;exports.delay=e.delay;exports.delayForFrames=e.delayForFrames;exports.deserializeObject=e.deserializeObject;exports.destroy=e.destroy;exports.destroyComponentInstance=e.destroyComponentInstance;exports.determineMimeTypeFromExtension=e.determineMimeTypeFromExtension;exports.disposeObjectResources=e.disposeObjectResources;exports.disposeStream=e.disposeStream;exports.editorGuidKeyName=e.editorGuidKeyName;exports.enableSpatialConsole=e.enableSpatialConsole;exports.euler=e.euler;exports.eventListSerializer=e.eventListSerializer;exports.exportAsGLTF=e.exportAsGLTF;exports.findByGuid=e.findByGuid;exports.findObjectOfType=e.findObjectOfType;exports.findObjectsOfType=e.findObjectsOfType;exports.findResourceUsers=e.findResourceUsers;exports.fitObjectIntoVolume=e.fitObjectIntoVolume;exports.foreachComponent=e.foreachComponent;exports.foreachComponentEnumerator=e.foreachComponentEnumerator;exports.forward=e.forward;exports.generateQRCode=e.generateQRCode;exports.generateSeed=e.generateSeed;exports.getBoundingBox=e.getBoundingBox;exports.getCameraController=e.getCameraController;exports.getComponent=e.getComponent;exports.getComponentInChildren=e.getComponentInChildren;exports.getComponentInParent=e.getComponentInParent;exports.getComponents=e.getComponents;exports.getComponentsInChildren=e.getComponentsInChildren;exports.getComponentsInParent=e.getComponentsInParent;exports.getFormattedDate=e.getFormattedDate;exports.getIconElement=e.getIconElement;exports.getIconTexture=e.getIconTexture;exports.getLoader=e.getLoader;exports.getOrAddComponent=e.getOrAddComponent;exports.getParam=e.getParam;exports.getParentHierarchyPath=e.getParentHierarchyPath;exports.getPath=e.getPath;exports.getPeerOptions=e.getPeerOptions;exports.getPeerjsInstance=e.getPeerjsInstance;exports.getResourceUserCount=e.getResourceUserCount;exports.getTempColor=e.getTempColor;exports.getTempQuaternion=e.getTempQuaternion;exports.getTempVector=e.getTempVector;exports.getUrlParams=e.getUrlParams;exports.getVisibleInCustomShadowRendering=e.getVisibleInCustomShadowRendering;exports.getWorldDirection=e.getWorldDirection;exports.getWorldEuler=e.getWorldEuler;exports.getWorldPosition=e.getWorldPosition;exports.getWorldQuaternion=e.getWorldQuaternion;exports.getWorldRotation=e.getWorldRotation;exports.getWorldScale=e.getWorldScale;exports.hasCommercialLicense=e.hasCommercialLicense;exports.hasIndieLicense=e.hasIndieLicense;exports.hasPointerEventComponent=e.hasPointerEventComponent;exports.hasProLicense=e.hasProLicense;exports.hideDebugConsole=e.hideDebugConsole;exports.imageToCanvas=e.imageToCanvas;exports.instantiate=e.instantiate;exports.invokeLoadedImportPluginHooks=e.invokeLoadedImportPluginHooks;exports.invokeXRSessionEnd=e.invokeXRSessionEnd;exports.invokeXRSessionStart=e.invokeXRSessionStart;exports.isActiveInHierarchy=e.isActiveInHierarchy;exports.isActiveSelf=e.isActiveSelf;exports.isAndroidDevice=e.isAndroidDevice;exports.isAnimationAction=e.isAnimationAction;exports.isComponent=e.isComponent;exports.isDebugMode=e.isDebugMode;exports.isDesktop=e.isDesktop;exports.isDestroyed=e.isDestroyed;exports.isDevEnvironment=e.isDevEnvironment;exports.isDisposed=e.isDisposed;exports.isExporting=e.isExporting;exports.isGLTFModel=e.isGLTFModel;exports.isHostedOnGlitch=e.isHostedOnGlitch;exports.isHotReloadEnabled=e.isHotReloadEnabled;exports.isHotReloading=e.isHotReloading;exports.isIPad=e.isIPad;exports.isIconElement=e.isIconElement;exports.isLocalNetwork=e.isLocalNetwork;exports.isMacOS=e.isMacOS;exports.isMobileDevice=e.isMobileDevice;exports.isMozillaXR=e.isMozillaXR;exports.isQuest=e.isQuest;exports.isResourceTrackingEnabled=e.isResourceTrackingEnabled;exports.isSafari=e.isSafari;exports.isUsingInstancing=e.isUsingInstancing;exports.isiOS=e.isiOS;exports.isiPad=e.isiPad;exports.loadAsset=e.loadAsset;exports.loadSync=e.loadSync;exports.logHierarchy=e.logHierarchy;exports.lookAtInverse=e.lookAtInverse;exports.lookAtObject=e.lookAtObject;exports.lookAtScreenPoint=e.lookAtScreenPoint;exports.makeId=e.makeId;exports.makeIdFromRandomWords=e.makeIdFromRandomWords;exports.makeNameSafeForUSD=e.makeNameSafe;exports.markAsInstancedRendered=e.markAsInstancedRendered;exports.microphonePermissionsGranted=e.microphonePermissionsGranted;exports.nameof=e.nameof;exports.nameofFactory=e.nameofFactory;exports.objectSerializer=e.objectSerializer;exports.offXRSessionEnd=e.offXRSessionEnd;exports.offXRSessionStart=e.offXRSessionStart;exports.onAfterRender=e.onAfterRender;exports.onBeforeRender=e.onBeforeRender;exports.onClear=e.onClear;exports.onDestroy=e.onDestroy;exports.onInitialized=e.onInitialized;exports.onStart=e.onStart;exports.onUpdate=e.onUpdate;exports.onXRSessionEnd=e.onXRSessionEnd;exports.onXRSessionStart=e.onXRSessionStart;exports.parseSync=e.parseSync;exports.placeOnSurface=e.placeOnSurface;exports.postprocessFBXMaterials=e.postprocessFBXMaterials;exports.prefix=e.prefix;exports.pushState=e.pushState;exports.randomNumber=e.randomNumber;exports.registerBinaryType=e.registerBinaryType;exports.registerComponent=e.registerComponent;exports.registerComponentExtension=e.registerComponentExtension;exports.registerCustomEffectType=e.registerCustomEffectType;exports.registerExportExtensions=e.registerExportExtensions;exports.registerExtensions=e.registerExtensions;exports.registerHotReloadType=e.registerHotReloadType;exports.registerLoader=e.registerLoader;exports.registerPrefabProvider=e.registerPrefabProvider;exports.registerPrototypeExtensions=e.registerPrototypeExtensions;exports.registerType=e.registerType;exports.relativePathPrefix=e.relativePathPrefix;exports.removeAttributeChangeCallback=e.removeAttributeChangeCallback;exports.removeComponent=e.removeComponent;exports.removeCustomImportExtensionType=e.removeCustomImportExtensionType;exports.removePatch=e.removePatch;exports.resolveUrl=e.resolveUrl;exports.sanitizeString=e.sanitizeString;exports.saveImage=e.saveImage;exports.screenshot=e.screenshot;exports.screenshot2=e.screenshot2;exports.sendDestroyed=e.sendDestroyed;exports.serializable=e.serializable;exports.serializeObject=e.serializeObject;exports.serializeable=e.serializeable;exports.setActive=e.setActive;exports.setAllowBalloonMessages=e.setAllowBalloonMessages;exports.setAllowOverlayMessages=e.setAllowOverlayMessages;exports.setAutoFitEnabled=e.setAutoFitEnabled;exports.setCameraController=e.setCameraController;exports.setDestroyed=e.setDestroyed;exports.setDevEnvironment=e.setDevEnvironment;exports.setDisposable=e.setDisposable;exports.setDontDestroy=e.setDontDestroy;exports.setOrAddParamsToUrl=e.setOrAddParamsToUrl;exports.setParam=e.setParam;exports.setParamWithoutReload=e.setParamWithoutReload;exports.setPeerOptions=e.setPeerOptions;exports.setResourceTrackingEnabled=e.setResourceTrackingEnabled;exports.setState=e.setState;exports.setVisibleInCustomShadowRendering=e.setVisibleInCustomShadowRendering;exports.setWorldEuler=e.setWorldEuler;exports.setWorldPosition=e.setWorldPosition;exports.setWorldPositionXYZ=e.setWorldPositionXYZ;exports.setWorldQuaternion=e.setWorldQuaternion;exports.setWorldQuaternionXYZW=e.setWorldQuaternionXYZW;exports.setWorldRotation=e.setWorldRotation;exports.setWorldRotationXYZ=e.setWorldRotationXYZ;exports.setWorldScale=e.setWorldScale;exports.showBalloonError=e.showBalloonError;exports.showBalloonMessage=e.showBalloonMessage;exports.showBalloonWarning=e.showBalloonWarning;exports.showDebugConsole=e.showDebugConsole;exports.slerp=e.slerp;exports.syncDestroy=e.syncDestroy;exports.syncField=e.syncField;exports.syncInstantiate=e.syncInstantiate;exports.textureToCanvas=e.textureToCanvas;exports.tryCastBinary=e.tryCastBinary;exports.tryDetermineMimetypeFromBinary=e.tryDetermineMimetypeFromBinary;exports.tryDetermineMimetypeFromURL=e.tryDetermineMimetypeFromURL;exports.tryFindObject=e.tryFindObject;exports.tryGetGuid=e.tryGetGuid;exports.unregisterHotReloadType=e.unregisterHotReloadType;exports.unwatchWrite=e.unwatchWrite;exports.useForAutoFit=e.useForAutoFit;exports.validate=e.validate;exports.watchWrite=e.watchWrite;exports.NEEDLE_progressive=a.NEEDLE_progressive;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./needle-engine.bundle-Bd2symsR.umd.cjs"),a=require("./gltf-progressive-DMJSXxbo.umd.cjs"),s=require("./three-B_hneGZr.umd.cjs"),o={VERSION:e.VERSION,Context:e.Context,NeedleXRSession:e.NeedleXRSession,assets:{loadFromURL:e.loadAsset},onStart:e.onStart,onUpdate:e.onUpdate,onBeforeRender:e.onBeforeRender,onAfterRender:e.onAfterRender,onInitializedContext:e.onInitialized,onDestroyContext:e.onDestroy,onClearContext:e.onClear};var n;((n=globalThis.Needle)==null?void 0:n.VERSION)!==void 0&&console.warn(`Needle Engine is already imported: ${globalThis.Needle.VERSION}`);function i(t){for(const r in t)o[r]=t[r]}i(e.Component);i(e.Components);for(const t of Object.getOwnPropertyNames(e.GameObject))switch(t){case"prototype":case"constructor":case"length":case"name":continue;default:o[t]=e.GameObject[t];break}if(!globalThis.Needle)globalThis.Needle=o;else for(const t in o)globalThis.Needle[t]=o[t];globalThis.THREE?console.warn("Three.js is already imported"):globalThis.THREE=s.THREE;exports.$physicsKey=e.$physicsKey;exports.ActionBuilder=e.ActionBuilder;exports.ActionCollection=e.ActionCollection;exports.ActionModel=e.ActionModel;exports.Addressables=e.Addressables;exports.AlignmentConstraint=e.AlignmentConstraint;exports.AmbientMode=e.AmbientMode;exports.Animation=e.Animation;exports.AnimationCurve=e.AnimationCurve;exports.AnimationExtension=e.AnimationExtension;exports.AnimationTrackHandler=e.AnimationTrackHandler;exports.AnimationUtils=e.AnimationUtils;exports.Animator=e.Animator;exports.AnimatorConditionMode=e.AnimatorConditionMode;exports.AnimatorController=e.AnimatorController;exports.AnimatorControllerParameterType=e.AnimatorControllerParameterType;exports.AnimatorStateInfo=e.AnimatorStateInfo;exports.Antialiasing=e.Antialiasing;exports.Application=e.Application;exports.AssetDatabase=e.AssetDatabase;exports.AssetReference=e.AssetReference;exports.AudioExtension=e.AudioExtension;exports.AudioListener=e.AudioListener;exports.AudioSource=e.AudioSource;exports.AudioTrackHandler=e.AudioTrackHandler;exports.Avatar=e.Avatar;exports.AvatarBlink_Simple=e.AvatarBlink_Simple;exports.AvatarEyeLook_Rotation=e.AvatarEyeLook_Rotation;exports.AvatarLoader=e.AvatarLoader;exports.AvatarMarker=e.AvatarMarker;exports.AvatarModel=e.AvatarModel;exports.Avatar_Brain_LookAt=e.Avatar_Brain_LookAt;exports.Avatar_MouthShapes=e.Avatar_MouthShapes;exports.Avatar_MustacheShake=e.Avatar_MustacheShake;exports.Avatar_POI=e.Avatar_POI;exports.Axes=e.Axes;exports.AxesHelper=e.AxesHelper;exports.BUILD_TIME=e.BUILD_TIME;exports.BaseUIComponent=e.BaseUIComponent;exports.BasicIKConstraint=e.BasicIKConstraint;exports.BehaviorExtension=e.BehaviorExtension;exports.BehaviorModel=e.BehaviorModel;exports.Behaviour=e.Component$1;Object.defineProperty(exports,"BlobStorage",{enumerable:!0,get:()=>e.BlobStorage});exports.BloomEffect=e.BloomEffect;exports.BoxCollider=e.BoxCollider;exports.BoxGizmo=e.BoxGizmo;exports.BoxHelperComponent=e.BoxHelperComponent;exports.Button=e.Button;exports.ButtonsFactory=e.ButtonsFactory;exports.CallDirection=e.CallDirection;exports.CallInfo=e.CallInfo;exports.Camera=e.Camera;exports.CameraTargetReachedEvent=e.CameraTargetReachedEvent;exports.Canvas=e.Canvas;exports.CanvasGroup=e.CanvasGroup;exports.CapsuleCollider=e.CapsuleCollider;exports.ChangeMaterialOnClick=e.ChangeMaterialOnClick;exports.ChangeTransformOnClick=e.ChangeTransformOnClick;exports.CharacterController=e.CharacterController;exports.CharacterControllerInput=e.CharacterControllerInput;exports.ChromaticAberration=e.ChromaticAberration;exports.CircularBuffer=e.CircularBuffer;exports.ClearFlags=e.ClearFlags;exports.ClipExtrapolation=e.ClipExtrapolation;exports.Collider=e.Collider;exports.Collision=e.Collision;exports.CollisionDetectionMode=e.CollisionDetectionMode;exports.ColorAdjustments=e.ColorAdjustments;exports.ColorBySpeedModule=e.ColorBySpeedModule;exports.ColorOverLifetimeModule=e.ColorOverLifetimeModule;exports.Component=e.Component$1;exports.ComponentLifecycleEvents=e.ComponentLifecycleEvents;exports.ConnectionEvents=e.ConnectionEvents;exports.ContactPoint=e.ContactPoint;exports.ContactShadows=e.ContactShadows;exports.Context=e.Context;exports.ContextArgs=e.ContextArgs;exports.ContextEvent=e.ContextEvent;exports.ContextRegistry=e.ContextRegistry;exports.ControlTrackHandler=e.ControlTrackHandler;exports.CustomBranding=e.CustomBranding;exports.CustomShader=e.CustomShader;exports.DefaultReflectionMode=e.DefaultReflectionMode;exports.Deletable=e.Deletable;exports.DeleteBox=e.DeleteBox;exports.DepthOfField=e.DepthOfField;exports.DeviceFlag=e.DeviceFlag;Object.defineProperty(exports,"DeviceUtilities",{enumerable:!0,get:()=>e.DeviceUtilities});exports.DocumentExtension=e.DocumentExtension;exports.DragControls=e.DragControls;exports.DragMode=e.DragMode;exports.DropListener=e.DropListener;exports.Duplicatable=e.Duplicatable;exports.EffectWrapper=e.EffectWrapper;exports.EmissionModule=e.EmissionModule;exports.EmphasizeOnClick=e.EmphasizeOnClick;exports.EngineLoadingView=e.EngineLoadingView;exports.EnvironmentScene=e.EnvironmentScene;exports.EventList=e.EventList;exports.EventListEvent=e.EventListEvent;exports.EventSystem=e.EventSystem;exports.EventTrigger=e.EventTrigger;exports.FieldWithDefault=e.FieldWithDefault;exports.FileReference=e.FileReference;exports.FileReferenceSerializer=e.FileReferenceSerializer;exports.FileSpawnModel=e.FileSpawnModel;exports.File_Event=e.File_Event;exports.FixedJoint=e.FixedJoint;exports.Fog=e.Fog;exports.FrameEvent=e.FrameEvent;exports.GENERATOR=e.GENERATOR;exports.GameObject=e.GameObject;exports.Gizmos=e.Gizmos;exports.GltfExport=e.GltfExport;exports.GltfExportBox=e.GltfExportBox;exports.Gradient=e.Gradient;exports.Graphic=e.Graphic;exports.GraphicRaycaster=e.GraphicRaycaster;exports.Graphics=e.Graphics;exports.GridHelper=e.GridHelper;exports.GridLayoutGroup=e.GridLayoutGroup;exports.GroundProjectedEnv=e.GroundProjectedEnv;exports.GroupActionModel=e.GroupActionModel;exports.HideFlags=e.HideFlags;exports.HideOnStart=e.HideOnStart;exports.HingeJoint=e.HingeJoint;exports.HorizontalLayoutGroup=e.HorizontalLayoutGroup;exports.HostData=e.HostData;exports.Image=e.Image;exports.ImageReference=e.ImageReference;exports.ImageReferenceSerializer=e.ImageReferenceSerializer;exports.InheritVelocityModule=e.InheritVelocityModule;exports.Input=e.Input;exports.InputEventQueue=e.InputEventQueue;exports.InputEvents=e.InputEvents;exports.InputField=e.InputField;exports.InstanceHandle=e.InstanceHandle;exports.InstancingHandler=e.InstancingHandler;exports.InstancingUtil=e.InstancingUtil;exports.InstantiateEvent=e.InstantiateEvent;exports.InstantiateIdProvider=e.InstantiateIdProvider;exports.InstantiateOptions=e.InstantiateOptions;exports.Interactable=e.Interactable;Object.defineProperty(exports,"InternalScreenshotUtils",{enumerable:!0,get:()=>e.InternalScreenshotUtils});exports.JoinedRoomResponse=e.JoinedRoomResponse;exports.KeyEventArgs=e.KeyEventArgs;exports.Keyframe=e.Keyframe;exports.LODGroup=e.LODGroup;exports.LODModel=e.LODModel;exports.LeftRoomResponse=e.LeftRoomResponse;exports.Light=e.Light;exports.LightData=e.LightData;exports.LimitVelocityOverLifetimeModule=e.LimitVelocityOverLifetimeModule;exports.LoadingElementOptions=e.LoadingElementOptions;exports.LogStats=e.LogStats;exports.LogType=e.LogType;exports.LookAt=e.LookAt;exports.LookAtConstraint=e.LookAtConstraint;exports.MainModule=e.MainModule;exports.MarkerType=e.MarkerType;exports.MaskableGraphic=e.MaskableGraphic;exports.Mathf=e.Mathf;exports.MeshCollider=e.MeshCollider;exports.MeshRenderer=e.MeshRenderer;exports.MinMaxCurve=e.MinMaxCurve;exports.MinMaxGradient=e.MinMaxGradient;Object.defineProperty(exports,"NEEDLE_ENGINE_MODULES",{enumerable:!0,get:()=>e.MODULES});exports.NEKeyboardEvent=e.NEKeyboardEvent;exports.NEPointerEvent=e.NEPointerEvent;exports.NeedleButtonElement=e.NeedleButtonElement;exports.NeedleEngine=e.ContextRegistry;Object.defineProperty(exports,"NeedleEngineModelLoader",{enumerable:!0,get:()=>e.NeedleEngineModelLoader});exports.NeedleEngineWebComponent=e.NeedleEngineWebComponent;exports.NeedleMenu=e.NeedleMenu;exports.NeedlePatchesKey=e.NeedlePatchesKey;exports.NeedleUSDZExporter=e.USDZExporter$1;exports.NeedleXRController=e.NeedleXRController;exports.NeedleXRSession=e.NeedleXRSession;exports.NeedleXRSync=e.NeedleXRSync;exports.NeedleXRUtils=e.NeedleXRUtils;exports.NestedGltf=e.NestedGltf;exports.NetworkConnection=e.NetworkConnection;exports.NetworkedStreamEvents=e.NetworkedStreamEvents;exports.NetworkedStreams=e.NetworkedStreams;exports.Networking=e.Networking;exports.NewInstanceModel=e.NewInstanceModel;exports.NoiseModule=e.NoiseModule;exports.ObjectRaycaster=e.ObjectRaycaster;exports.ObjectUtils=e.ObjectUtils;exports.OffsetConstraint=e.OffsetConstraint;exports.OneEuroFilter=e.OneEuroFilter;exports.OneEuroFilterXYZ=e.OneEuroFilterXYZ;exports.OpenURL=e.OpenURL;exports.OrbitControls=e.OrbitControls;exports.Outline=e.Outline;exports.OwnershipEvent=e.OwnershipEvent;exports.OwnershipModel=e.OwnershipModel;exports.PUBLIC_KEY=e.PUBLIC_KEY;exports.Padding=e.Padding;exports.ParticleBurst=e.ParticleBurst;exports.ParticleSubEmitter=e.ParticleSubEmitter;exports.ParticleSystem=e.ParticleSystem;exports.ParticleSystemBaseBehaviour=e.ParticleSystemBaseBehaviour;exports.ParticleSystemRenderer=e.ParticleSystemRenderer;exports.ParticleSystemShapeType=e.ParticleSystemShapeType;exports.PeerHandle=e.PeerHandle;exports.PeerNetworking=e.PeerNetworking;exports.Physics=e.Physics;exports.PhysicsExtension=e.PhysicsExtension;exports.PhysicsMaterialCombine=e.PhysicsMaterialCombine;exports.PixelationEffect=e.PixelationEffect;exports.PlayAnimationOnClick=e.PlayAnimationOnClick;exports.PlayAudioOnClick=e.PlayAudioOnClick;exports.PlayableDirector=e.PlayableDirector;exports.PlayerColor=e.PlayerColor;exports.PlayerState=e.PlayerState;exports.PlayerStateEvent=e.PlayerStateEvent;exports.PlayerSync=e.PlayerSync;exports.PlayerView=e.PlayerView;exports.PlayerViewManager=e.PlayerViewManager;exports.PointerEventData=e.PointerEventData;exports.PointerType=e.PointerType;exports.PostProcessingEffect=e.PostProcessingEffect;exports.PostProcessingEffectOrder=e.PostProcessingEffectOrder;exports.PostProcessingHandler=e.PostProcessingHandler;exports.PostProcessingManager=e.Volume;exports.PreliminaryAction=e.PreliminaryAction;exports.PreliminaryTrigger=e.PreliminaryTrigger;Object.defineProperty(exports,"PreviewHelper",{enumerable:!0,get:()=>e.PreviewHelper});exports.PrimitiveType=e.PrimitiveType;exports.Progress=e.Progress;exports.PromiseAllWithErrors=e.PromiseAllWithErrors;exports.PromiseErrorResult=e.PromiseErrorResult;exports.RGBAColor=e.RGBAColor;exports.RapierPhysics=e.RapierPhysics;exports.RawImage=e.RawImage;exports.RaycastOptions=e.RaycastOptions;exports.Rect=e.Rect;exports.RectTransform=e.RectTransform;exports.ReflectionProbe=e.ReflectionProbe;exports.RegisteredAnimationInfo=e.RegisteredAnimationInfo;exports.RemoteSkybox=e.RemoteSkybox;exports.RenderTexture=e.RenderTexture;exports.RenderTextureSerializer=e.RenderTextureSerializer;exports.Renderer=e.Renderer;exports.RendererData=e.RendererData;exports.RendererLightmap=e.RendererLightmap;exports.Rigidbody=e.Rigidbody;exports.RigidbodyConstraints=e.RigidbodyConstraints;exports.RoomEvents=e.RoomEvents;exports.RotationBySpeedModule=e.RotationBySpeedModule;exports.RotationOverLifetimeModule=e.RotationOverLifetimeModule;exports.SceneLightSettings=e.SceneLightSettings;exports.SceneSwitcher=e.SceneSwitcher;exports.ScreenCapture=e.ScreenCapture;exports.ScreenSpaceAmbientOcclusion=e.ScreenSpaceAmbientOcclusion;exports.ScreenSpaceAmbientOcclusionN8=e.ScreenSpaceAmbientOcclusionN8;exports.SendQueue=e.SendQueue;exports.SerializationContext=e.SerializationContext;exports.SetActiveOnClick=e.SetActiveOnClick;exports.ShadowCatcher=e.ShadowCatcher;exports.ShapeModule=e.ShapeModule;exports.SharpeningEffect=e.SharpeningEffect;exports.SignalAsset=e.SignalAsset;exports.SignalReceiver=e.SignalReceiver;exports.SignalReceiverEvent=e.SignalReceiverEvent;exports.SignalTrackHandler=e.SignalTrackHandler;exports.Size=e.Size;exports.SizeBySpeedModule=e.SizeBySpeedModule;exports.SizeOverLifetimeModule=e.SizeOverLifetimeModule;exports.SkinnedMeshRenderer=e.SkinnedMeshRenderer;exports.SmoothFollow=e.SmoothFollow;exports.SpatialGrabRaycaster=e.SpatialGrabRaycaster;exports.SpatialHtml=e.SpatialHtml;exports.SpatialTrigger=e.SpatialTrigger;exports.SpatialTriggerReceiver=e.SpatialTriggerReceiver;exports.SpectatorCamera=e.SpectatorCamera;exports.SphereCollider=e.SphereCollider;exports.SphereIntersection=e.SphereIntersection;exports.SphereOverlapResult=e.SphereOverlapResult;exports.Sprite=e.Sprite;exports.SpriteData=e.SpriteData;exports.SpriteRenderer=e.SpriteRenderer;exports.SpriteSheet=e.SpriteSheet;exports.StateMachineBehaviour=e.StateMachineBehaviour;exports.StreamEndedEvent=e.StreamEndedEvent;exports.StreamReceivedEvent=e.StreamReceivedEvent;exports.SubEmitterSystem=e.SubEmitterSystem;exports.SyncedCamera=e.SyncedCamera;exports.SyncedRoom=e.SyncedRoom;exports.SyncedTransform=e.SyncedTransform;exports.TapGestureTrigger=e.TapGestureTrigger;exports.TeleportTarget=e.TeleportTarget;exports.TestRunner=e.TestRunner;exports.TestSceneUtils=e.TestSceneUtils;exports.TestSimulateUserData=e.TestSimulateUserData;exports.Text=e.Text;exports.TextBuilder=e.TextBuilder;exports.TextExtension=e.TextExtension;exports.TextureSheetAnimationModule=e.TextureSheetAnimationModule;exports.TiltShiftEffect=e.TiltShiftEffect;exports.Time=e.Time;exports.ToneMappingEffect=e.ToneMappingEffect;exports.TrackHandler=e.TrackHandler;exports.TrackType=e.TrackType;exports.TrailModule=e.TrailModule;exports.TransformData=e.TransformData;exports.TransformGizmo=e.TransformGizmo;exports.TriggerBuilder=e.TriggerBuilder;exports.TriggerModel=e.TriggerModel;exports.TypeStore=e.TypeStore;exports.UIRaycastUtils=e.UIRaycastUtils;exports.UIRootComponent=e.UIRootComponent;exports.USDDocument=e.USDDocument;exports.USDObject=e.USDObject;exports.USDWriter=e.USDWriter;exports.USDZExporter=e.USDZExporter;exports.USDZText=e.USDZText;exports.USDZUIExtension=e.USDZUIExtension;exports.UriSerializer=e.UriSerializer;exports.UsageMarker=e.UsageMarker;exports.UserJoinedOrLeftRoomModel=e.UserJoinedOrLeftRoomModel;exports.VERSION=e.VERSION;exports.VariantAction=e.VariantAction;exports.VelocityOverLifetimeModule=e.VelocityOverLifetimeModule;exports.VerticalLayoutGroup=e.VerticalLayoutGroup;exports.VideoPlayer=e.VideoPlayer;exports.ViewDevice=e.ViewDevice;exports.Vignette=e.Vignette;exports.VisibilityAction=e.VisibilityAction;exports.Voip=e.Voip;exports.Volume=e.Volume;exports.VolumeParameter=e.VolumeParameter;exports.VolumeProfile=e.VolumeProfile;exports.WaitForFrames=e.WaitForFrames;exports.WaitForPromise=e.WaitForPromise;exports.WaitForSeconds=e.WaitForSeconds;exports.Watch=e.Watch;exports.WebARCameraBackground=e.WebARCameraBackground;exports.WebARSessionRoot=e.WebARSessionRoot;exports.WebXR=e.WebXR;exports.WebXRButtonFactory=e.WebXRButtonFactory;exports.WebXRImageTracking=e.WebXRImageTracking;exports.WebXRImageTrackingModel=e.WebXRImageTrackingModel;exports.WebXRPlaneTracking=e.WebXRPlaneTracking;exports.WebXRTrackedImage=e.WebXRTrackedImage;exports.XRControllerFollow=e.XRControllerFollow;exports.XRControllerModel=e.XRControllerModel;exports.XRControllerMovement=e.XRControllerMovement;exports.XRFlag=e.XRFlag;exports.XRRig=e.XRRig;exports.XRState=e.XRState;exports.XRStateFlag=e.XRStateFlag;exports.__Ignore=e.__Ignore;exports.__internalNotifyObjectDestroyed=e.__internalNotifyObjectDestroyed;exports.activeInHierarchyFieldName=e.activeInHierarchyFieldName;exports.addAttributeChangeCallback=e.addAttributeChangeCallback;exports.addComponent=e.addComponent;exports.addCustomExtensionPlugin=e.addCustomExtensionPlugin;exports.addNewComponent=e.addNewComponent;exports.addPatch=e.addPatch;exports.apply=e.apply;exports.applyHMRChanges=e.applyHMRChanges;exports.applyPrototypeExtensions=e.applyPrototypeExtensions;exports.beginListenDestroy=e.beginListenDestroy;exports.beginListenInstantiate=e.beginListenInstantiate;exports.binaryIdentifierCasts=e.binaryIdentifierCasts;exports.build_scene_functions=e.build_scene_functions;exports.builtinComponentKeyName=e.builtinComponentKeyName;exports.calculateProgress01=e.calculateProgress01;exports.clearBalloonMessages=e.clearMessages;exports.clearOverlayMessages=e.clearMessages;exports.colorSerializer=e.colorSerializer;exports.compareAssociation=e.compareAssociation;exports.componentSerializer=e.componentSerializer;exports.copyTexture=e.copyTexture;exports.createMotion=e.createMotion;exports.debugNet=e.debugNet;exports.debugOwner=e.debugOwner;exports.decompressGpuTexture=e.decompressGpuTexture;exports.deepClone=e.deepClone;exports.delay=e.delay;exports.delayForFrames=e.delayForFrames;exports.deserializeObject=e.deserializeObject;exports.destroy=e.destroy;exports.destroyComponentInstance=e.destroyComponentInstance;exports.determineMimeTypeFromExtension=e.determineMimeTypeFromExtension;exports.disposeObjectResources=e.disposeObjectResources;exports.disposeStream=e.disposeStream;exports.editorGuidKeyName=e.editorGuidKeyName;exports.enableSpatialConsole=e.enableSpatialConsole;exports.euler=e.euler;exports.eventListSerializer=e.eventListSerializer;exports.exportAsGLTF=e.exportAsGLTF;exports.findByGuid=e.findByGuid;exports.findObjectOfType=e.findObjectOfType;exports.findObjectsOfType=e.findObjectsOfType;exports.findResourceUsers=e.findResourceUsers;exports.fitObjectIntoVolume=e.fitObjectIntoVolume;exports.foreachComponent=e.foreachComponent;exports.foreachComponentEnumerator=e.foreachComponentEnumerator;exports.forward=e.forward;exports.generateQRCode=e.generateQRCode;exports.generateSeed=e.generateSeed;exports.getBoundingBox=e.getBoundingBox;exports.getCameraController=e.getCameraController;exports.getComponent=e.getComponent;exports.getComponentInChildren=e.getComponentInChildren;exports.getComponentInParent=e.getComponentInParent;exports.getComponents=e.getComponents;exports.getComponentsInChildren=e.getComponentsInChildren;exports.getComponentsInParent=e.getComponentsInParent;exports.getFormattedDate=e.getFormattedDate;exports.getIconElement=e.getIconElement;exports.getIconTexture=e.getIconTexture;exports.getLoader=e.getLoader;exports.getOrAddComponent=e.getOrAddComponent;exports.getParam=e.getParam;exports.getParentHierarchyPath=e.getParentHierarchyPath;exports.getPath=e.getPath;exports.getPeerOptions=e.getPeerOptions;exports.getPeerjsInstance=e.getPeerjsInstance;exports.getResourceUserCount=e.getResourceUserCount;exports.getTempColor=e.getTempColor;exports.getTempQuaternion=e.getTempQuaternion;exports.getTempVector=e.getTempVector;exports.getUrlParams=e.getUrlParams;exports.getVisibleInCustomShadowRendering=e.getVisibleInCustomShadowRendering;exports.getWorldDirection=e.getWorldDirection;exports.getWorldEuler=e.getWorldEuler;exports.getWorldPosition=e.getWorldPosition;exports.getWorldQuaternion=e.getWorldQuaternion;exports.getWorldRotation=e.getWorldRotation;exports.getWorldScale=e.getWorldScale;exports.hasCommercialLicense=e.hasCommercialLicense;exports.hasIndieLicense=e.hasIndieLicense;exports.hasPointerEventComponent=e.hasPointerEventComponent;exports.hasProLicense=e.hasProLicense;exports.hideDebugConsole=e.hideDebugConsole;exports.imageToCanvas=e.imageToCanvas;exports.instantiate=e.instantiate;exports.invokeLoadedImportPluginHooks=e.invokeLoadedImportPluginHooks;exports.invokeXRSessionEnd=e.invokeXRSessionEnd;exports.invokeXRSessionStart=e.invokeXRSessionStart;exports.isActiveInHierarchy=e.isActiveInHierarchy;exports.isActiveSelf=e.isActiveSelf;exports.isAndroidDevice=e.isAndroidDevice;exports.isAnimationAction=e.isAnimationAction;exports.isComponent=e.isComponent;exports.isDebugMode=e.isDebugMode;exports.isDesktop=e.isDesktop;exports.isDestroyed=e.isDestroyed;exports.isDevEnvironment=e.isDevEnvironment;exports.isDisposed=e.isDisposed;exports.isExporting=e.isExporting;exports.isGLTFModel=e.isGLTFModel;exports.isHostedOnGlitch=e.isHostedOnGlitch;exports.isHotReloadEnabled=e.isHotReloadEnabled;exports.isHotReloading=e.isHotReloading;exports.isIPad=e.isIPad;exports.isIconElement=e.isIconElement;exports.isLocalNetwork=e.isLocalNetwork;exports.isMacOS=e.isMacOS;exports.isMobileDevice=e.isMobileDevice;exports.isMozillaXR=e.isMozillaXR;exports.isQuest=e.isQuest;exports.isResourceTrackingEnabled=e.isResourceTrackingEnabled;exports.isSafari=e.isSafari;exports.isUsingInstancing=e.isUsingInstancing;exports.isiOS=e.isiOS;exports.isiPad=e.isiPad;exports.loadAsset=e.loadAsset;exports.loadSync=e.loadSync;exports.logHierarchy=e.logHierarchy;exports.lookAtInverse=e.lookAtInverse;exports.lookAtObject=e.lookAtObject;exports.lookAtScreenPoint=e.lookAtScreenPoint;exports.makeId=e.makeId;exports.makeIdFromRandomWords=e.makeIdFromRandomWords;exports.makeNameSafeForUSD=e.makeNameSafe;exports.markAsInstancedRendered=e.markAsInstancedRendered;exports.microphonePermissionsGranted=e.microphonePermissionsGranted;exports.nameof=e.nameof;exports.nameofFactory=e.nameofFactory;exports.objectSerializer=e.objectSerializer;exports.offXRSessionEnd=e.offXRSessionEnd;exports.offXRSessionStart=e.offXRSessionStart;exports.onAfterRender=e.onAfterRender;exports.onBeforeRender=e.onBeforeRender;exports.onClear=e.onClear;exports.onDestroy=e.onDestroy;exports.onInitialized=e.onInitialized;exports.onStart=e.onStart;exports.onUpdate=e.onUpdate;exports.onXRSessionEnd=e.onXRSessionEnd;exports.onXRSessionStart=e.onXRSessionStart;exports.parseSync=e.parseSync;exports.placeOnSurface=e.placeOnSurface;exports.postprocessFBXMaterials=e.postprocessFBXMaterials;exports.prefix=e.prefix;exports.pushState=e.pushState;exports.randomNumber=e.randomNumber;exports.registerBinaryType=e.registerBinaryType;exports.registerComponent=e.registerComponent;exports.registerComponentExtension=e.registerComponentExtension;exports.registerCustomEffectType=e.registerCustomEffectType;exports.registerExportExtensions=e.registerExportExtensions;exports.registerExtensions=e.registerExtensions;exports.registerHotReloadType=e.registerHotReloadType;exports.registerLoader=e.registerLoader;exports.registerPrefabProvider=e.registerPrefabProvider;exports.registerPrototypeExtensions=e.registerPrototypeExtensions;exports.registerType=e.registerType;exports.relativePathPrefix=e.relativePathPrefix;exports.removeAttributeChangeCallback=e.removeAttributeChangeCallback;exports.removeComponent=e.removeComponent;exports.removeCustomImportExtensionType=e.removeCustomImportExtensionType;exports.removePatch=e.removePatch;exports.resolveUrl=e.resolveUrl;exports.sanitizeString=e.sanitizeString;exports.saveImage=e.saveImage;exports.screenshot=e.screenshot;exports.screenshot2=e.screenshot2;exports.sendDestroyed=e.sendDestroyed;exports.serializable=e.serializable;exports.serializeObject=e.serializeObject;exports.serializeable=e.serializeable;exports.setActive=e.setActive;exports.setAllowBalloonMessages=e.setAllowBalloonMessages;exports.setAllowOverlayMessages=e.setAllowOverlayMessages;exports.setAutoFitEnabled=e.setAutoFitEnabled;exports.setCameraController=e.setCameraController;exports.setDestroyed=e.setDestroyed;exports.setDevEnvironment=e.setDevEnvironment;exports.setDisposable=e.setDisposable;exports.setDontDestroy=e.setDontDestroy;exports.setOrAddParamsToUrl=e.setOrAddParamsToUrl;exports.setParam=e.setParam;exports.setParamWithoutReload=e.setParamWithoutReload;exports.setPeerOptions=e.setPeerOptions;exports.setResourceTrackingEnabled=e.setResourceTrackingEnabled;exports.setState=e.setState;exports.setVisibleInCustomShadowRendering=e.setVisibleInCustomShadowRendering;exports.setWorldEuler=e.setWorldEuler;exports.setWorldPosition=e.setWorldPosition;exports.setWorldPositionXYZ=e.setWorldPositionXYZ;exports.setWorldQuaternion=e.setWorldQuaternion;exports.setWorldQuaternionXYZW=e.setWorldQuaternionXYZW;exports.setWorldRotation=e.setWorldRotation;exports.setWorldRotationXYZ=e.setWorldRotationXYZ;exports.setWorldScale=e.setWorldScale;exports.showBalloonError=e.showBalloonError;exports.showBalloonMessage=e.showBalloonMessage;exports.showBalloonWarning=e.showBalloonWarning;exports.showDebugConsole=e.showDebugConsole;exports.slerp=e.slerp;exports.syncDestroy=e.syncDestroy;exports.syncField=e.syncField;exports.syncInstantiate=e.syncInstantiate;exports.textureToCanvas=e.textureToCanvas;exports.tryCastBinary=e.tryCastBinary;exports.tryDetermineMimetypeFromBinary=e.tryDetermineMimetypeFromBinary;exports.tryDetermineMimetypeFromURL=e.tryDetermineMimetypeFromURL;exports.tryFindObject=e.tryFindObject;exports.tryGetGuid=e.tryGetGuid;exports.unregisterHotReloadType=e.unregisterHotReloadType;exports.unwatchWrite=e.unwatchWrite;exports.useForAutoFit=e.useForAutoFit;exports.validate=e.validate;exports.watchWrite=e.watchWrite;exports.NEEDLE_progressive=a.NEEDLE_progressive;
|
|
@@ -56,7 +56,7 @@ export class LODsManager {
|
|
|
56
56
|
_LODsManager.removePlugin(this);
|
|
57
57
|
_LODsManager.addPlugin(this);
|
|
58
58
|
_LODsManager.debugDrawLine = Gizmos.DrawLine;
|
|
59
|
-
this._lodsManager = _LODsManager.get(renderer);
|
|
59
|
+
this._lodsManager = _LODsManager.get(renderer, { engine: "needle-engine" });
|
|
60
60
|
this.applySettings();
|
|
61
61
|
this._lodsManager.enable();
|
|
62
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_lods.js","sourceRoot":"","sources":["../../src/engine/engine_lods.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,kBAAkB,EAA6B,MAAM,gCAAgC,CAAC;AAC5H,OAAO,EAAE,IAAI,EAA0C,MAAM,EAAiB,MAAM,OAAO,CAAC;AAG5F,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,KAAK,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAE3C,MAAM,QAAQ,GAAS,IAAI,IAAI,EAAE,CAAC;AAClC,MAAM,WAAW,GAAW,IAAI,MAAM,EAAE,CAAC;AAEzC;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACX,OAAO,CAAU;IAClB,YAAY,CAAgB;IAE5B,SAAS,GAAiG,EACjH,CAAA;IAED;;;OAGG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAI,mCAAmC;QACnC,OAAO,IAAI,CAAC,YAAY,EAAE,mCAAmC,IAAI,IAAI,CAAC,SAAS,CAAC,mCAAmC,IAAI,CAAC,CAAC;IAC7H,CAAC;IACD,IAAI,mCAAmC,CAAC,KAAa;QACjD,IAAI,CAAC,SAAS,CAAC,mCAAmC,GAAG,KAAK,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,IAAI,qBAAqB;QACrB,OAAO,IAAI,CAAC,YAAY,EAAE,qBAAqB,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,IAAI,OAAO,CAAC,CAAC,gBAAgB;IACxH,CAAC;IACD,IAAI,qBAAqB,CAAC,KAAa;QACnC,IAAI,CAAC,SAAS,CAAC,qBAAqB,GAAG,KAAK,CAAC;QAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,YAAY,OAAgB;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEO,aAAa;QACjB,
|
|
1
|
+
{"version":3,"file":"engine_lods.js","sourceRoot":"","sources":["../../src/engine/engine_lods.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,kBAAkB,EAA6B,MAAM,gCAAgC,CAAC;AAC5H,OAAO,EAAE,IAAI,EAA0C,MAAM,EAAiB,MAAM,OAAO,CAAC;AAG5F,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,KAAK,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAE3C,MAAM,QAAQ,GAAS,IAAI,IAAI,EAAE,CAAC;AAClC,MAAM,WAAW,GAAW,IAAI,MAAM,EAAE,CAAC;AAEzC;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACX,OAAO,CAAU;IAClB,YAAY,CAAgB;IAE5B,SAAS,GAAiG,EACjH,CAAA;IAED;;;OAGG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAI,mCAAmC;QACnC,OAAO,IAAI,CAAC,YAAY,EAAE,mCAAmC,IAAI,IAAI,CAAC,SAAS,CAAC,mCAAmC,IAAI,CAAC,CAAC;IAC7H,CAAC;IACD,IAAI,mCAAmC,CAAC,KAAa;QACjD,IAAI,CAAC,SAAS,CAAC,mCAAmC,GAAG,KAAK,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,IAAI,qBAAqB;QACrB,OAAO,IAAI,CAAC,YAAY,EAAE,qBAAqB,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,IAAI,OAAO,CAAC,CAAC,gBAAgB;IACxH,CAAC;IACD,IAAI,qBAAqB,CAAC,KAAa;QACnC,IAAI,CAAC,SAAS,CAAC,qBAAqB,GAAG,KAAK,CAAC;QAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,YAAY,OAAgB;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEO,aAAa;QACjB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE;gBAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aAChD;SACJ;IACL,CAAC;IAED,gBAAgB;IAChB,WAAW,CAAC,QAAuB;QAC/B,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAC7B,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO;QACH,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAC7B,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAGD,gBAAgB;IAChB,iBAAiB,CAAC,SAAwB,EAAE,MAAa,EAAE,MAAc,EAAE,IAAU,EAAE,KAAkB;QACrG,IAAI,KAAK;YAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAEO,aAAa,CAAC,MAAc,EAAE,IAAU,EAAE,OAAoB;QAElE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO;QAE/H,MAAM,KAAK,GAAG,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK;YAAE,OAAO;QAGnB,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,iBAAiB,IAAI,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,oBAAoB,CAAC;QAEjH,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC5C,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC;YACxC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;YAClC,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACvE,6EAA6E;YAC7E,IAAI,OAAO,EAAE;gBACT,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;aAClE;iBACI;gBACD,oIAAoI;gBACpI,6GAA6G;gBAC7G,wFAAwF;gBACxF,2DAA2D;gBAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1D,MAAM,IAAI,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;gBACzE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,IAAI,OAAO,GAAG,EAAE,CAAC;gBACjB,IAAI,IAAI,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,EAAE;oBACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAClC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC1B,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;wBAClC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;qBACjG;iBACJ;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEjD,yCAAyC;gBACzC,sEAAsE;gBACtE,gEAAgE;gBAEhE,gDAAgD;gBAChD,6FAA6F;gBAC7F,kDAAkD;gBAClD,6CAA6C;gBAC7C,oEAAoE;gBACpE,qGAAqG;gBACrG,uGAAuG;gBACvG,IAAI,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;gBACtE,IAAI,KAAK,IAAI,SAAS,EAAE;oBACpB,IAAI;wBACA,IAAI,GAAG,aAAa,GAAG,OAAO;4BAC9B,8CAA8C;4BAC9C,IAAI,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO;4BAChE,IAAI,GAAG,CAAC,KAAK,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO;4BAC5D,kKAAkK;4BAClK,8CAA8C;4BAC9C,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS;4BAC1D,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM;4BACjJ,+EAA+E;4BAC/E,mBAAmB;4BACnB,iBAAiB;4BACjB,yBAAyB;4BACzB,EAAE,CAAC;iBACV;gBAED,gBAAgB;gBAChB,6BAA6B;gBAC7B,gBAAgB;gBAChB,IAAI;gBACJ,IAAI,KAAK,CAAC,kBAAkB,GAAG,EAAE,EAAE;oBAC/B,MAAM,GAAG,GAAG,MAA4B,CAAC;oBACzC,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC;oBACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC;oBAEnC,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;oBACtC,+DAA+D;oBAC/D,MAAM,GAAG,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC9D,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAC1C,sDAAsD;oBACtD,6DAA6D;oBAC7D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;oBAC3E,qCAAqC;oBACrC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5F,MAAM,gBAAgB,GAAI,MAA4B,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAE,MAA4B,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjJ,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,WAAW,GAAG,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;iBAC3G;aACJ;SAEJ;IACL,CAAC;CAEJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "4.7.3-next.
|
|
3
|
+
"version": "4.7.3-next.3bba8e3",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.",
|
|
5
5
|
"main": "dist/needle-engine.min.js",
|
|
6
6
|
"exports": {
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
],
|
|
94
94
|
"dependencies": {
|
|
95
95
|
"@dimforge/rapier3d-compat": "^0.14.0",
|
|
96
|
-
"@needle-tools/gltf-progressive": "3.0
|
|
96
|
+
"@needle-tools/gltf-progressive": "3.1.0",
|
|
97
97
|
"@webxr-input-profiles/motion-controllers": "^1.0.0",
|
|
98
98
|
"flatbuffers": "2.0.4",
|
|
99
99
|
"md5": "^2.3.0",
|
|
@@ -58,8 +58,8 @@ export class LODsManager implements NEEDLE_progressive_plugin {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
private applySettings() {
|
|
61
|
-
if(this._lodsManager) {
|
|
62
|
-
for(const key in this._settings) {
|
|
61
|
+
if (this._lodsManager) {
|
|
62
|
+
for (const key in this._settings) {
|
|
63
63
|
this._lodsManager[key] = this._settings[key];
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -71,7 +71,7 @@ export class LODsManager implements NEEDLE_progressive_plugin {
|
|
|
71
71
|
_LODsManager.removePlugin(this);
|
|
72
72
|
_LODsManager.addPlugin(this);
|
|
73
73
|
_LODsManager.debugDrawLine = Gizmos.DrawLine;
|
|
74
|
-
this._lodsManager = _LODsManager.get(renderer);
|
|
74
|
+
this._lodsManager = _LODsManager.get(renderer, { engine: "needle-engine" });
|
|
75
75
|
this.applySettings();
|
|
76
76
|
this._lodsManager.enable();
|
|
77
77
|
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
var Ke=Object.defineProperty,Ee=s=>{throw TypeError(s)},He=(s,e,t)=>e in s?Ke(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,c=(s,e,t)=>He(s,typeof e!="symbol"?e+"":e,t),Ce=(s,e,t)=>e.has(s)||Ee("Cannot "+t),v=(s,e,t)=>(Ce(s,e,"read from private field"),t?t.call(s):e.get(s)),J=(s,e,t)=>e.has(s)?Ee("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(s):e.set(s,t),$=(s,e,t,n)=>(Ce(s,e,"write to private field"),n?n.call(s,t):e.set(s,t),t);import{BufferGeometry as de,Mesh as Q,Texture as se,TextureLoader as Ye,Matrix4 as Ie,Clock as Je,MeshStandardMaterial as Qe,Sphere as Ze,Box3 as Be,Vector3 as F}from"./three-DuDKwKB8.min.js";import{DRACOLoader as et,KTX2Loader as tt,MeshoptDecoder as st,GLTFLoader as Le}from"./three-examples-BMOhDaYR.min.js";const rt="";globalThis.GLTF_PROGRESSIVE_VERSION=rt,console.debug("[gltf-progressive] version -");let W="https://www.gstatic.com/draco/versioned/decoders/1.5.7/",ee="https://www.gstatic.com/basis-universal/versioned/2021-04-15-ba1c3e4/";const nt=W,ot=ee,Ge=new URL(W+"draco_decoder.js");Ge.searchParams.append("range","true"),fetch(Ge,{method:"GET",headers:{Range:"bytes=0-1"}}).catch(s=>{console.debug(`Failed to fetch remote Draco decoder from ${W} (offline: ${typeof navigator<"u"?navigator.onLine:"unknown"})`),W===nt&&ke("./include/draco/"),ee===ot&&je("./include/ktx2/")}).finally(()=>{Re()});function ke(s){W=s,A&&A[we]!=W?(console.debug("Updating Draco decoder path to "+s),A[we]=W,A.setDecoderPath(W),A.preload()):console.debug("Setting Draco decoder path to "+s)}function je(s){ee=s,B&&B.transcoderPath!=ee?(console.debug("Updating KTX2 transcoder path to "+s),B.setTranscoderPath(ee),B.init()):console.debug("Setting KTX2 transcoder path to "+s)}const we=Symbol("dracoDecoderPath");let A,ce,B;function Re(){A||(A=new et,A[we]=W,A.setDecoderPath(W),A.setDecoderConfig({type:"js"}),A.preload()),B||(B=new tt,B.setTranscoderPath(ee),B.init()),ce||(ce=st)}function _e(s){return Re(),s?B.detectSupport(s):s!==null&&console.warn("No renderer provided to detect ktx2 support - loading KTX2 textures might fail"),{dracoLoader:A,ktx2Loader:B,meshoptDecoder:ce}}function Me(s){s.dracoLoader||s.setDRACOLoader(A),s.ktx2Loader||s.setKTX2Loader(B),s.meshoptDecoder||s.setMeshoptDecoder(ce)}const De=new WeakMap;function be(s,e){let t=De.get(s);t?t=Object.assign(t,e):t=e,De.set(s,t)}const Ne=Le.prototype.load;function it(...s){const e=De.get(this);let t=s[0];const n=new URL(t,window.location.href);if(n.hostname.endsWith("needle.tools")){const r=e?.progressive!==void 0?e.progressive:!0,i=e!=null&&e.usecase?e.usecase:"default";r?this.requestHeader.Accept=`*/*;progressive=allowed;usecase=${i}`:this.requestHeader.Accept=`*/*;usecase=${i}`,t=n.toString()}return s[0]=t,Ne?.call(this,...s)}Le.prototype.load=it,re("debugprogressive");function re(s){if(typeof window>"u")return!1;const e=new URL(window.location.href).searchParams.get(s);return e==null||e==="0"||e==="false"?!1:e===""?!0:e}function at(s,e){if(e===void 0||e.startsWith("./")||e.startsWith("http")||s===void 0)return e;const t=s.lastIndexOf("/");if(t>=0){const n=s.substring(0,t+1);for(;n.endsWith("/")&&e.startsWith("/");)e=e.substring(1);return n+e}return e}let he;function lt(){return he!==void 0||(he=/iPhone|iPad|iPod|Android|IEMobile/i.test(navigator.userAgent),re("debugprogressive")&&console.log("[glTF Progressive]: isMobileDevice",he)),he}function ut(){if(typeof window>"u")return!1;const s=new URL(window.location.href),e=s.hostname==="localhost"||/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(s.hostname);return s.hostname==="127.0.0.1"||e}const dt=typeof window>"u"&&typeof document>"u",Oe=Symbol("needle:raycast-mesh");function te(s){return s?.[Oe]instanceof de?s[Oe]:null}function ct(s,e){if((s.type==="Mesh"||s.type==="SkinnedMesh")&&!te(s)){const t=gt(e);t.userData={isRaycastMesh:!0},s[Oe]=t}}function ht(s=!0){if(s){if(ne)return;const e=ne=Q.prototype.raycast;Q.prototype.raycast=function(t,n){const r=this,i=te(r);let o;i&&r.isMesh&&(o=r.geometry,r.geometry=i),e.call(this,t,n),o&&(r.geometry=o)}}else{if(!ne)return;Q.prototype.raycast=ne,ne=null}}let ne=null;function gt(s){const e=new de;for(const t in s.attributes)e.setAttribute(t,s.getAttribute(t));return e.setIndex(s.getIndex()),e}const X=new Array,x=re("debugprogressive");let ge,Z=-1;if(x){let s=function(){Z+=1,Z>=e&&(Z=-1),console.log(`Toggle LOD level [${Z}]`)},e=6;window.addEventListener("keyup",t=>{t.key==="p"&&s(),t.key==="w"&&(ge=!ge,console.log(`Toggle wireframe [${ge}]`));const n=parseInt(t.key);!isNaN(n)&&n>=0&&(Z=n,console.log(`Set LOD level to [${Z}]`))})}function We(s){if(x)if(Array.isArray(s))for(const e of s)We(e);else s&&"wireframe"in s&&(s.wireframe=ge===!0)}const U="NEEDLE_progressive",Se=Symbol("needle-progressive-texture"),E=class k{constructor(e,t){c(this,"parser"),c(this,"url"),c(this,"_isLoadingMesh"),c(this,"loadMesh",n=>{var r,i;if(this._isLoadingMesh)return null;const o=(i=(r=this.parser.json.meshes[n])==null?void 0:r.extensions)==null?void 0:i[U];return o?(this._isLoadingMesh=!0,this.parser.getDependency("mesh",n).then(a=>{var l;return this._isLoadingMesh=!1,a&&k.registerMesh(this.url,o.guid,a,(l=o.lods)==null?void 0:l.length,0,o),a})):null}),x&&console.log("Progressive extension registered for",t),this.parser=e,this.url=t}get name(){return U}static getMeshLODExtension(e){const t=this.getAssignedLODInformation(e);return t!=null&&t.key?this.lodInfos.get(t.key):null}static getPrimitiveIndex(e){var t;return((t=this.getAssignedLODInformation(e))==null?void 0:t.index)??-1}static getMaterialMinMaxLODsCount(e,t){const n=this,r="LODS:minmax",i=e[r];if(i!=null)return i;if(t||(t={min_count:1/0,max_count:0,lods:[]}),Array.isArray(e)){for(const a of e)this.getMaterialMinMaxLODsCount(a,t);return e[r]=t,t}if(x==="verbose"&&console.log("getMaterialMinMaxLODsCount",e),e.type==="ShaderMaterial"||e.type==="RawShaderMaterial"){const a=e;for(const l of Object.keys(a.uniforms)){const u=a.uniforms[l].value;u?.isTexture===!0&&o(u,t)}}else if(e.isMaterial)for(const a of Object.keys(e)){const l=e[a];l?.isTexture===!0&&o(l,t)}return e[r]=t,t;function o(a,l){const u=n.getAssignedLODInformation(a);if(u){const d=n.lodInfos.get(u.key);if(d&&d.lods){l.min_count=Math.min(l.min_count,d.lods.length),l.max_count=Math.max(l.max_count,d.lods.length);for(let w=0;w<d.lods.length;w++){const y=d.lods[w];y.width&&(l.lods[w]=l.lods[w]||{min_height:1/0,max_height:0},l.lods[w].min_height=Math.min(l.lods[w].min_height,y.height),l.lods[w].max_height=Math.max(l.lods[w].max_height,y.height))}}}}}static hasLODLevelAvailable(e,t){var n;if(Array.isArray(e)){for(const o of e)if(this.hasLODLevelAvailable(o,t))return!0;return!1}if(e.isMaterial===!0){for(const o of Object.keys(e)){const a=e[o];if(a&&a.isTexture&&this.hasLODLevelAvailable(a,t))return!0}return!1}else if(e.isGroup===!0){for(const o of e.children)if(o.isMesh===!0&&this.hasLODLevelAvailable(o,t))return!0}let r,i;if(e.isMesh?r=e.geometry:(e.isBufferGeometry||e.isTexture)&&(r=e),r&&(n=r?.userData)!=null&&n.LODS){const o=r.userData.LODS;if(i=this.lodInfos.get(o.key),t===void 0)return i!=null;if(i)return Array.isArray(i.lods)?t<i.lods.length:t===0}return!1}static assignMeshLOD(e,t){var n;if(!e)return Promise.resolve(null);if(e instanceof Q||e.isMesh===!0){const r=e.geometry,i=this.getAssignedLODInformation(r);if(!i)return Promise.resolve(null);for(const o of X)(n=o.onBeforeGetLODMesh)==null||n.call(o,e,t);return e["LOD:requested level"]=t,k.getOrLoadLOD(r,t).then(o=>{if(Array.isArray(o)){const a=i.index||0;o=o[a]}return e["LOD:requested level"]===t&&(delete e["LOD:requested level"],o&&r!=o&&(o?.isBufferGeometry?e.geometry=o:x&&console.error("Invalid LOD geometry",o))),o}).catch(o=>(console.error("Error loading mesh LOD",e,o),null))}else x&&console.error("Invalid call to assignMeshLOD: Request mesh LOD but the object is not a mesh",e);return Promise.resolve(null)}static assignTextureLOD(e,t=0){if(!e)return Promise.resolve(null);if(e.isMesh===!0){const n=e;if(Array.isArray(n.material)){const r=new Array;for(const i of n.material){const o=this.assignTextureLOD(i,t);r.push(o)}return Promise.all(r).then(i=>{const o=new Array;for(const a of i)Array.isArray(a)&&o.push(...a);return o})}else return this.assignTextureLOD(n.material,t)}if(e.isMaterial===!0){const n=e,r=[],i=new Array;if(n.uniforms&&(n.isRawShaderMaterial||n.isShaderMaterial===!0)){const o=n;for(const a of Object.keys(o.uniforms)){const l=o.uniforms[a].value;if(l?.isTexture===!0){const u=this.assignTextureLODForSlot(l,t,n,a).then(d=>(d&&o.uniforms[a].value!=d&&(o.uniforms[a].value=d,o.uniformsNeedUpdate=!0),d));r.push(u),i.push(a)}}}else for(const o of Object.keys(n)){const a=n[o];if(a?.isTexture===!0){const l=this.assignTextureLODForSlot(a,t,n,o);r.push(l),i.push(o)}}return Promise.all(r).then(o=>{const a=new Array;for(let l=0;l<o.length;l++){const u=o[l],d=i[l];u&&u.isTexture===!0?a.push({material:n,slot:d,texture:u,level:t}):a.push({material:n,slot:d,texture:null,level:t})}return a})}if(e instanceof se||e.isTexture===!0){const n=e;return this.assignTextureLODForSlot(n,t,null,null)}return Promise.resolve(null)}static assignTextureLODForSlot(e,t,n,r){return e?.isTexture!==!0?Promise.resolve(null):r==="glyphMap"?Promise.resolve(e):k.getOrLoadLOD(e,t).then(i=>{if(Array.isArray(i))return null;if(i?.isTexture===!0){if(i!=e&&n&&r){const o=n[r];if(o&&!x){const a=this.getAssignedLODInformation(o);if(a&&a?.level<t)return x==="verbose"&&console.warn("Assigned texture level is already higher: ",a.level,t,n,o,i),null}n[r]=i}return i}else x=="verbose"&&console.warn("No LOD found for",e,t);return null}).catch(i=>(console.error("Error loading LOD",e,i),null))}afterRoot(e){var t,n;return x&&console.log("AFTER",this.url,e),(t=this.parser.json.textures)==null||t.forEach((r,i)=>{var o;if(r!=null&&r.extensions){const a=r?.extensions[U];if(a){if(!a.lods){x&&console.warn("Texture has no LODs",a);return}let l=!1;for(const u of this.parser.associations.keys())if(u.isTexture===!0){const d=this.parser.associations.get(u);d?.textures===i&&(l=!0,k.registerTexture(this.url,u,(o=a.lods)==null?void 0:o.length,i,a))}l||this.parser.getDependency("texture",i).then(u=>{var d;u&&k.registerTexture(this.url,u,(d=a.lods)==null?void 0:d.length,i,a)})}}}),(n=this.parser.json.meshes)==null||n.forEach((r,i)=>{if(r!=null&&r.extensions){const o=r?.extensions[U];if(o&&o.lods){for(const a of this.parser.associations.keys())if(a.isMesh){const l=this.parser.associations.get(a);l?.meshes===i&&k.registerMesh(this.url,o.guid,a,o.lods.length,l.primitives,o)}}}}),null}static async getOrLoadLOD(e,t){var n,r,i,o;const a=x=="verbose",l=e.userData.LODS;if(!l)return null;const u=l?.key;let d;if(e.isTexture===!0){const w=e;w.source&&w.source[Se]&&(d=w.source[Se])}if(d||(d=k.lodInfos.get(u)),d){if(t>0){let m=!1;const j=Array.isArray(d.lods);if(j&&t>=d.lods.length?m=!0:j||(m=!0),m)return this.lowresCache.get(u)}const w=Array.isArray(d.lods)?(n=d.lods[t])==null?void 0:n.path:d.lods;if(!w)return x&&!d["missing:uri"]&&(d["missing:uri"]=!0,console.warn("Missing uri for progressive asset for LOD "+t,d)),null;const y=at(l.url,w);if(y.endsWith(".glb")||y.endsWith(".gltf")){if(!d.guid)return console.warn("missing pointer for glb/gltf texture",d),null;const m=y+"_"+d.guid,j=this.previouslyLoaded.get(m);if(j!==void 0){a&&console.log(`LOD ${t} was already loading/loaded: ${m}`);let g=await j.catch(I=>(console.error(`Error loading LOD ${t} from ${y}
|
|
2
|
-
`,I),null)),p=!1;if(g==null||(g instanceof se&&e instanceof se?(r=g.image)!=null&&r.data||(i=g.source)!=null&&i.data?g=this.copySettings(e,g):(p=!0,this.previouslyLoaded.delete(m)):g instanceof de&&e instanceof de&&((o=g.attributes.position)!=null&&o.array||(p=!0,this.previouslyLoaded.delete(m)))),!p)return g}const M=d,C=new Promise(async(g,p)=>{const I=new Le;Me(I),x&&(await new Promise(f=>setTimeout(f,1e3)),a&&console.warn("Start loading (delayed) "+y,M.guid));let R=y;if(M&&Array.isArray(M.lods)){const f=M.lods[t];f.hash&&(R+="?v="+f.hash)}const D=await I.loadAsync(R).catch(f=>(console.error(`Error loading LOD ${t} from ${y}
|
|
3
|
-
`,f),null));if(!D)return null;const N=D.parser;a&&console.log("Loading finished "+y,M.guid);let b=0;if(D.parser.json.textures){let f=!1;for(const h of D.parser.json.textures){if(h!=null&&h.extensions){const L=h?.extensions[U];if(L!=null&&L.guid&&L.guid===M.guid){f=!0;break}}b++}if(f){let h=await N.getDependency("texture",b);return h&&k.assignLODInformation(l.url,h,u,t,void 0),a&&console.log('change "'+e.name+'" \u2192 "'+h.name+'"',y,b,h,m),e instanceof se&&(h=this.copySettings(e,h)),h&&(h.guid=M.guid),g(h)}else x&&console.warn("Could not find texture with guid",M.guid,D.parser.json)}if(b=0,D.parser.json.meshes){let f=!1;for(const h of D.parser.json.meshes){if(h!=null&&h.extensions){const L=h?.extensions[U];if(L!=null&&L.guid&&L.guid===M.guid){f=!0;break}}b++}if(f){const h=await N.getDependency("mesh",b);if(a&&console.log(`Loaded Mesh "${h.name}"`,y,b,h,m),h.isMesh===!0){const L=h.geometry;return k.assignLODInformation(l.url,L,u,t,0),g(L)}else{const L=new Array;for(let O=0;O<h.children.length;O++){const T=h.children[O];if(T.isMesh===!0){const V=T.geometry;k.assignLODInformation(l.url,V,u,t,O),L.push(V)}}return g(L)}}else x&&console.warn("Could not find mesh with guid",M.guid,D.parser.json)}return g(null)});return this.previouslyLoaded.set(m,C),await C}else if(e instanceof se){a&&console.log("Load texture from uri: "+y);const m=await new Ye().loadAsync(y);return m?(m.guid=d.guid,m.flipY=!1,m.needsUpdate=!0,m.colorSpace=e.colorSpace,a&&console.log(d,m)):x&&console.warn("failed loading",y),m}}else x&&console.warn(`Can not load LOD ${t}: no LOD info found for "${u}" ${e.name}`,e.type);return null}static assignLODInformation(e,t,n,r,i){if(!t)return;t.userData||(t.userData={});const o=new ft(e,n,r,i);t.userData.LODS=o}static getAssignedLODInformation(e){var t;return((t=e?.userData)==null?void 0:t.LODS)||null}static copySettings(e,t){return t?(x&&console.warn(`Copy texture settings
|
|
4
|
-
`,e.uuid,`
|
|
5
|
-
`,t.uuid),t=t.clone(),t.offset=e.offset,t.repeat=e.repeat,t.colorSpace=e.colorSpace,t.magFilter=e.magFilter,t.minFilter=e.minFilter,t.wrapS=e.wrapS,t.wrapT=e.wrapT,t.flipY=e.flipY,t.anisotropy=e.anisotropy,t.mipmaps||(t.generateMipmaps=e.generateMipmaps),t):e}};c(E,"registerTexture",(s,e,t,n,r)=>{if(x&&console.log("> Progressive: register texture",n,e.name,e.uuid,e,r),!e){x&&console.error("gltf-progressive: Register texture without texture");return}e.source&&(e.source[Se]=r);const i=r.guid;E.assignLODInformation(s,e,i,t,n),E.lodInfos.set(i,r),E.lowresCache.set(i,e)}),c(E,"registerMesh",(s,e,t,n,r,i)=>{var o;const a=t.geometry;if(!a){x&&console.warn("gltf-progressive: Register mesh without geometry");return}a.userData||(a.userData={}),x&&console.log("> Progressive: register mesh "+t.name,{index:r,uuid:t.uuid},i,t),E.assignLODInformation(s,a,e,n,r),E.lodInfos.set(e,i);let l=E.lowresCache.get(e);l?l.push(t.geometry):l=[t.geometry],E.lowresCache.set(e,l),n>0&&!te(t)&&ct(t,a);for(const u of X)(o=u.onRegisteredNewMesh)==null||o.call(u,t,i)}),c(E,"lodInfos",new Map),c(E,"previouslyLoaded",new Map),c(E,"lowresCache",new Map);let z=E;class ft{constructor(e,t,n,r){c(this,"url"),c(this,"key"),c(this,"level"),c(this,"index"),this.url=e,this.key=t,this.level=n,r!=null&&(this.index=r)}}class fe{constructor(e,t){c(this,"frame_start"),c(this,"frame_capture_end"),c(this,"ready"),c(this,"_resolve"),c(this,"_signal"),c(this,"_resolved",!1),c(this,"_addedCount",0),c(this,"_resolvedCount",0),c(this,"_awaiting",[]),c(this,"_maxPromisesPerObject",1),c(this,"_currentFrame",0),c(this,"_seen",new WeakMap);var n;const r=Math.max(t.frames??2,2);this.frame_start=e,this.frame_capture_end=e+r,this.ready=new Promise(i=>{this._resolve=i}),this.ready.finally(()=>{this._resolved=!0,this._awaiting.length=0}),this._signal=t.signal,(n=this._signal)==null||n.addEventListener("abort",()=>{this.resolveNow()}),this._maxPromisesPerObject=Math.max(1,t.maxPromisesPerObject??1)}get awaitedCount(){return this._addedCount}get resolvedCount(){return this._resolvedCount}get currentlyAwaiting(){return this._awaiting.length}update(e){var t;this._currentFrame=e,((t=this._signal)!=null&&t.aborted||this._currentFrame>this.frame_capture_end&&this._awaiting.length===0)&&this.resolveNow()}add(e,t,n){if(this._resolved){x&&console.warn("PromiseGroup: Trying to add a promise to a resolved group, ignoring.");return}if(!(this._currentFrame>this.frame_capture_end)){if(this._maxPromisesPerObject>=1)if(this._seen.has(t)){let r=this._seen.get(t);if(r>=this._maxPromisesPerObject){x&&console.warn("PromiseGroup: Already awaiting object ignoring new promise for it.");return}this._seen.set(t,r+1)}else this._seen.set(t,1);this._awaiting.push(n),this._addedCount++,n.finally(()=>{this._resolvedCount++,this._awaiting.splice(this._awaiting.indexOf(n),1)})}}resolveNow(){var e,t;this._resolved||(t=this._resolve)==null||t.call(this,{awaited_count:this._addedCount,resolved_count:this._resolvedCount,cancelled:((e=this._signal)==null?void 0:e.aborted)??!1})}}c(fe,"addPromise",(s,e,t,n)=>{n.forEach(r=>{r.add(s,e,t)})});const G=re("debugprogressive"),mt=re("noprogressive"),Pe=Symbol("Needle:LODSManager"),Te=Symbol("Needle:LODState"),q=Symbol("Needle:CurrentLOD"),S={mesh_lod:-1,texture_lod:-1};var _,P,K,Ae,H,oe,me,Y;let ie=(_=class{constructor(s,e){c(this,"renderer"),c(this,"context"),c(this,"projectionScreenMatrix",new Ie),c(this,"targetTriangleDensity",2e5),c(this,"skinnedMeshAutoUpdateBoundsInterval",30),c(this,"updateInterval","auto"),J(this,P,1),c(this,"pause",!1),c(this,"manual",!1),c(this,"_newPromiseGroups",[]),c(this,"_promiseGroupIds",0),c(this,"_lodchangedlisteners",[]),J(this,K),J(this,Ae,new Je),J(this,H,0),J(this,oe,0),J(this,me,0),J(this,Y,0),c(this,"_fpsBuffer",[60,60,60,60,60]),c(this,"_sphere",new Ze),c(this,"_tempBox",new Be),c(this,"_tempBox2",new Be),c(this,"tempMatrix",new Ie),c(this,"_tempWorldPosition",new F),c(this,"_tempBoxSize",new F),c(this,"_tempBox2Size",new F),this.renderer=s,this.context={...e}}static getObjectLODState(s){return s[Te]}static addPlugin(s){X.push(s)}static removePlugin(s){const e=X.indexOf(s);e>=0&&X.splice(e,1)}static get(s,e){if(s[Pe])return console.debug("[gltf-progressive] LODsManager already exists for this renderer"),s[Pe];const t=new _(s,{engine:"unknown",...e});return s[Pe]=t,t}get plugins(){return X}awaitLoading(s){const e=this._promiseGroupIds++,t=new fe(v(this,H),{...s});this._newPromiseGroups.push(t);const n=performance.now();return t.ready.finally(()=>{const r=this._newPromiseGroups.indexOf(t);r>=0&&(this._newPromiseGroups.splice(r,1),ut()&&performance.measure("LODsManager:awaitLoading",{start:n,detail:{id:e,name:s?.name,awaited:t.awaitedCount,resolved:t.resolvedCount}}))}),t.ready}_postprocessPromiseGroups(){if(this._newPromiseGroups.length!==0)for(let s=this._newPromiseGroups.length-1;s>=0;s--)this._newPromiseGroups[s].update(v(this,H))}addEventListener(s,e){s==="changed"&&this._lodchangedlisteners.push(e)}removeEventListener(s,e){if(s==="changed"){const t=this._lodchangedlisteners.indexOf(e);t>=0&&this._lodchangedlisteners.splice(t,1)}}enable(){if(v(this,K))return;console.debug("[gltf-progressive] Enabling LODsManager for renderer");let s=0;$(this,K,this.renderer.render);const e=this;_e(this.renderer),this.renderer.render=function(t,n){const r=e.renderer.getRenderTarget();(r==null||"isXRRenderTarget"in r&&r.isXRRenderTarget)&&(s=0,$(e,H,v(e,H)+1),$(e,oe,v(e,Ae).getDelta()),$(e,me,v(e,me)+v(e,oe)),e._fpsBuffer.shift(),e._fpsBuffer.push(1/v(e,oe)),$(e,Y,e._fpsBuffer.reduce((o,a)=>o+a)/e._fpsBuffer.length),G&&v(e,H)%200===0&&console.log("FPS",Math.round(v(e,Y)),"Interval:",v(e,P)));const i=s++;v(e,K).call(this,t,n),e.onAfterRender(t,n,i)}}disable(){v(this,K)&&(console.debug("[gltf-progressive] Disabling LODsManager for renderer"),this.renderer.render=v(this,K),$(this,K,void 0))}update(s,e){this.internalUpdate(s,e)}onAfterRender(s,e,t){if(this.pause)return;const n=this.renderer.renderLists.get(s,0).opaque;let r=!0;if(n.length===1){const i=n[0].material;(i.name==="EffectMaterial"||i.name==="CopyShader")&&(r=!1)}if((e.parent&&e.parent.type==="CubeCamera"||t>=1&&e.type==="OrthographicCamera")&&(r=!1),r){if(mt||(this.updateInterval==="auto"?v(this,Y)<40&&v(this,P)<10?($(this,P,v(this,P)+1),G&&console.warn("\u2193 Reducing LOD updates",v(this,P),v(this,Y).toFixed(0))):v(this,Y)>=60&&v(this,P)>1&&($(this,P,v(this,P)-1),G&&console.warn("\u2191 Increasing LOD updates",v(this,P),v(this,Y).toFixed(0))):$(this,P,this.updateInterval),v(this,P)>0&&v(this,H)%v(this,P)!=0))return;this.internalUpdate(s,e),this._postprocessPromiseGroups()}}internalUpdate(s,e){var t,n;const r=this.renderer.renderLists.get(s,0),i=r.opaque;this.projectionScreenMatrix.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse);const o=this.targetTriangleDensity;for(const u of i){if(u.material&&(((t=u.geometry)==null?void 0:t.type)==="BoxGeometry"||((n=u.geometry)==null?void 0:n.type)==="BufferGeometry")&&(u.material.name==="SphericalGaussianBlur"||u.material.name=="BackgroundCubeMaterial"||u.material.name==="CubemapFromEquirect"||u.material.name==="EquirectangularToCubeUV")){G&&(u.material["NEEDLE_PROGRESSIVE:IGNORE-WARNING"]||(u.material["NEEDLE_PROGRESSIVE:IGNORE-WARNING"]=!0,console.warn("Ignoring skybox or BLIT object",u,u.material.name,u.material.type)));continue}switch(u.material.type){case"LineBasicMaterial":case"LineDashedMaterial":case"PointsMaterial":case"ShadowMaterial":case"MeshDistanceMaterial":case"MeshDepthMaterial":continue}if(G==="color"&&u.material&&!u.object.progressive_debug_color){u.object.progressive_debug_color=!0;const w=Math.random()*16777215,y=new Qe({color:w});u.object.material=y}const d=u.object;(d instanceof Q||d.isMesh)&&this.updateLODs(s,e,d,o)}const a=r.transparent;for(const u of a){const d=u.object;(d instanceof Q||d.isMesh)&&this.updateLODs(s,e,d,o)}const l=r.transmissive;for(const u of l){const d=u.object;(d instanceof Q||d.isMesh)&&this.updateLODs(s,e,d,o)}}updateLODs(s,e,t,n){var r,i;t.userData||(t.userData={});let o=t[Te];if(o||(o=new pt,t[Te]=o),o.frames++<2)return;for(const l of X)(r=l.onBeforeUpdateLOD)==null||r.call(l,this.renderer,s,e,t);const a=_.overrideGlobalLodLevel!==void 0?_.overrideGlobalLodLevel:Z;a>=0?(S.mesh_lod=a,S.texture_lod=a):(this.calculateLodLevel(e,t,o,n,S),S.mesh_lod=Math.round(S.mesh_lod),S.texture_lod=Math.round(S.texture_lod)),S.mesh_lod>=0&&this.loadProgressiveMeshes(t,S.mesh_lod),t.material&&S.texture_lod>=0&&this.loadProgressiveTextures(t.material,S.texture_lod),x&&t.material&&!t.isGizmo&&We(t.material);for(const l of X)(i=l.onAfterUpdatedLOD)==null||i.call(l,this.renderer,s,e,t,S);o.lastLodLevel_Mesh=S.mesh_lod,o.lastLodLevel_Texture=S.texture_lod}loadProgressiveTextures(s,e){if(!s)return;if(Array.isArray(s)){for(const r of s)this.loadProgressiveTextures(r,e);return}let t=!1;(s[q]===void 0||e<s[q])&&(t=!0);const n=s["DEBUG:LOD"];if(n!=null&&(t=s[q]!=n,e=n),t){s[q]=e;const r=z.assignTextureLOD(s,e).then(i=>{this._lodchangedlisteners.forEach(o=>o({type:"texture",level:e,object:s}))});fe.addPromise("texture",s,r,this._newPromiseGroups)}}loadProgressiveMeshes(s,e){if(!s)return Promise.resolve(null);let t=s[q]!==e;const n=s["DEBUG:LOD"];if(n!=null&&(t=s[q]!=n,e=n),t){s[q]=e;const r=s.geometry,i=z.assignMeshLOD(s,e).then(o=>(o&&s[q]==e&&r!=s.geometry&&this._lodchangedlisteners.forEach(a=>a({type:"mesh",level:e,object:s})),o));return fe.addPromise("mesh",s,i,this._newPromiseGroups),i}return Promise.resolve(null)}static isInside(s,e){const t=s.min,n=s.max,r=(t.x+n.x)*.5,i=(t.y+n.y)*.5;return this._tempPtInside.set(r,i,t.z).applyMatrix4(e).z<0}calculateLodLevel(s,e,t,n,r){var i,o,a;if(!e){r.mesh_lod=-1,r.texture_lod=-1;return}if(!s){r.mesh_lod=-1,r.texture_lod=-1;return}let l=10+1,u=!1;if(G&&e["DEBUG:LOD"]!=null)return e["DEBUG:LOD"];const d=(i=z.getMeshLODExtension(e.geometry))==null?void 0:i.lods,w=z.getPrimitiveIndex(e.geometry),y=d&&d.length>0,m=z.getMaterialMinMaxLODsCount(e.material),j=m?.min_count!=1/0&&m.min_count>0&&m.max_count>0;if(!y&&!j){r.mesh_lod=0,r.texture_lod=0;return}y||(u=!0,l=0);const M=this.renderer.domElement.clientHeight||this.renderer.domElement.height;let C=e.geometry.boundingBox;if(e.type==="SkinnedMesh"){const g=e;if(!g.boundingBox)g.computeBoundingBox();else if(this.skinnedMeshAutoUpdateBoundsInterval>0&&t.frames%this.skinnedMeshAutoUpdateBoundsInterval===0){const p=te(g),I=g.geometry;p&&(g.geometry=p),g.computeBoundingBox(),g.geometry=I}C=g.boundingBox}if(C){const g=s;if(e.geometry.attributes.color&&e.geometry.attributes.color.count<100&&e.geometry.boundingSphere){this._sphere.copy(e.geometry.boundingSphere),this._sphere.applyMatrix4(e.matrixWorld);const f=s.getWorldPosition(this._tempWorldPosition);if(this._sphere.containsPoint(f)){r.mesh_lod=0,r.texture_lod=0;return}}if(this._tempBox.copy(C),this._tempBox.applyMatrix4(e.matrixWorld),g.isPerspectiveCamera&&_.isInside(this._tempBox,this.projectionScreenMatrix)){r.mesh_lod=0,r.texture_lod=0;return}if(this._tempBox.applyMatrix4(this.projectionScreenMatrix),this.renderer.xr.enabled&&g.isPerspectiveCamera&&g.fov>70){const f=this._tempBox.min,h=this._tempBox.max;let L=f.x,O=f.y,T=h.x,V=h.y;const ae=2,xe=1.5,le=(f.x+h.x)*.5,ue=(f.y+h.y)*.5;L=(L-le)*ae+le,O=(O-ue)*ae+ue,T=(T-le)*ae+le,V=(V-ue)*ae+ue;const Xe=L<0&&T>0?0:Math.min(Math.abs(f.x),Math.abs(h.x)),qe=O<0&&V>0?0:Math.min(Math.abs(f.y),Math.abs(h.y)),ye=Math.max(Xe,qe);t.lastCentrality=(xe-ye)*(xe-ye)*(xe-ye)}else t.lastCentrality=1;const p=this._tempBox.getSize(this._tempBoxSize);p.multiplyScalar(.5),screen.availHeight>0&&M>0&&p.multiplyScalar(M/screen.availHeight),s.isPerspectiveCamera?p.x*=s.aspect:s.isOrthographicCamera;const I=s.matrixWorldInverse,R=this._tempBox2;R.copy(C),R.applyMatrix4(e.matrixWorld),R.applyMatrix4(I);const D=R.getSize(this._tempBox2Size),N=Math.max(D.x,D.y);if(Math.max(p.x,p.y)!=0&&N!=0&&(p.z=D.z/Math.max(D.x,D.y)*Math.max(p.x,p.y)),t.lastScreenCoverage=Math.max(p.x,p.y,p.z),t.lastScreenspaceVolume.copy(p),t.lastScreenCoverage*=t.lastCentrality,G&&_.debugDrawLine){const f=this.tempMatrix.copy(this.projectionScreenMatrix);f.invert();const h=_.corner0,L=_.corner1,O=_.corner2,T=_.corner3;h.copy(this._tempBox.min),L.copy(this._tempBox.max),L.x=h.x,O.copy(this._tempBox.max),O.y=h.y,T.copy(this._tempBox.max);const V=(h.z+T.z)*.5;h.z=L.z=O.z=T.z=V,h.applyMatrix4(f),L.applyMatrix4(f),O.applyMatrix4(f),T.applyMatrix4(f),_.debugDrawLine(h,L,255),_.debugDrawLine(h,O,255),_.debugDrawLine(L,T,255),_.debugDrawLine(O,T,255)}let b=999;if(d&&t.lastScreenCoverage>0)for(let f=0;f<d.length;f++){const h=d[f];if((((o=h.densities)==null?void 0:o[w])||h.density||1e-5)/t.lastScreenCoverage<n){b=f;break}}b<l&&(l=b,u=!0)}if(u?r.mesh_lod=l:r.mesh_lod=t.lastLodLevel_Mesh,G&&r.mesh_lod!=t.lastLodLevel_Mesh){const g=d?.[r.mesh_lod];g&&console.log(`Mesh LOD changed: ${t.lastLodLevel_Mesh} \u2192 ${r.mesh_lod} (${g.density.toFixed(0)}) - ${e.name}`)}if(j){const g="saveData"in globalThis.navigator&&globalThis.navigator.saveData===!0;if(t.lastLodLevel_Texture<0){if(r.texture_lod=m.max_count-1,G){const p=m.lods[m.max_count-1];G&&console.log(`First Texture LOD ${r.texture_lod} (${p.max_height}px) - ${e.name}`)}}else{const p=t.lastScreenspaceVolume.x+t.lastScreenspaceVolume.y+t.lastScreenspaceVolume.z;let I=t.lastScreenCoverage*4;((a=this.context)==null?void 0:a.engine)==="model-viewer"&&(I*=1.5);const R=M/window.devicePixelRatio*I;let D=!1;for(let N=m.lods.length-1;N>=0;N--){const b=m.lods[N];if(!(g&&b.max_height>=2048)&&!(lt()&&b.max_height>4096)&&(b.max_height>R||!D&&N===0)){if(D=!0,r.texture_lod=N,r.texture_lod<t.lastLodLevel_Texture){const f=b.max_height;G&&console.log(`Texture LOD changed: ${t.lastLodLevel_Texture} \u2192 ${r.texture_lod} = ${f}px
|
|
6
|
-
Screensize: ${R.toFixed(0)}px, Coverage: ${(100*t.lastScreenCoverage).toFixed(2)}%, Volume ${p.toFixed(1)}
|
|
7
|
-
${e.name}`)}break}}}}else r.texture_lod=0}},P=new WeakMap,K=new WeakMap,Ae=new WeakMap,H=new WeakMap,oe=new WeakMap,me=new WeakMap,Y=new WeakMap,c(_,"debugDrawLine"),c(_,"overrideGlobalLodLevel"),c(_,"corner0",new F),c(_,"corner1",new F),c(_,"corner2",new F),c(_,"corner3",new F),c(_,"_tempPtInside",new F),_);class pt{constructor(){c(this,"frames",0),c(this,"lastLodLevel_Mesh",-1),c(this,"lastLodLevel_Texture",-1),c(this,"lastScreenCoverage",0),c(this,"lastScreenspaceVolume",new F),c(this,"lastCentrality",0)}}const $e=Symbol("NEEDLE_mesh_lod"),pe=Symbol("NEEDLE_texture_lod");let ve=null;function Fe(){const s=vt();s&&(s.mapURLs(function(e){return Ue(),e}),Ue(),ve?.disconnect(),ve=new MutationObserver(e=>{e.forEach(t=>{t.addedNodes.forEach(n=>{n instanceof HTMLElement&&n.tagName.toLowerCase()==="model-viewer"&&Ve(n)})})}),ve.observe(document,{childList:!0,subtree:!0}))}function vt(){return typeof customElements>"u"?null:customElements.get("model-viewer")||(customElements.whenDefined("model-viewer").then(()=>{console.debug("[gltf-progressive] model-viewer defined"),Fe()}),null)}function Ue(){typeof document>"u"||document.querySelectorAll("model-viewer").forEach(s=>{Ve(s)})}const ze=new WeakSet;let xt=0;function Ve(s){if(!s||ze.has(s))return null;ze.add(s),console.debug("[gltf-progressive] found new model-viewer..."+ ++xt+`
|
|
8
|
-
`,s.getAttribute("src"));let e=null,t=null,n=null;for(let r=s;r!=null;r=Object.getPrototypeOf(r)){const i=Object.getOwnPropertySymbols(r),o=i.find(u=>u.toString()=="Symbol(renderer)"),a=i.find(u=>u.toString()=="Symbol(scene)"),l=i.find(u=>u.toString()=="Symbol(needsRender)");!e&&o!=null&&(e=s[o].threeRenderer),!t&&a!=null&&(t=s[a]),!n&&l!=null&&(n=s[l])}if(e&&t){let r=function(){if(n){let o=0,a=setInterval(()=>{if(o++>5){clearInterval(a);return}n?.call(s)},300)}};console.debug("[gltf-progressive] setup model-viewer");const i=ie.get(e,{engine:"model-viewer"});return ie.addPlugin(new yt),i.enable(),i.addEventListener("changed",()=>{n?.call(s)}),s.addEventListener("model-visibility",o=>{o.detail.visible&&n?.call(s)}),s.addEventListener("load",()=>{r()}),()=>{i.disable()}}return null}class yt{constructor(){c(this,"_didWarnAboutMissingUrl",!1)}onBeforeUpdateLOD(e,t,n,r){this.tryParseMeshLOD(t,r),this.tryParseTextureLOD(t,r)}getUrl(e){if(!e)return null;let t=e.getAttribute("src");return t||(t=e.src),t||(this._didWarnAboutMissingUrl||console.warn("No url found in modelviewer",e),this._didWarnAboutMissingUrl=!0),t}tryGetCurrentGLTF(e){return e._currentGLTF}tryGetCurrentModelViewer(e){return e.element}tryParseTextureLOD(e,t){if(t[pe]==!0)return;t[pe]=!0;const n=this.tryGetCurrentGLTF(e),r=this.tryGetCurrentModelViewer(e),i=this.getUrl(r);if(i&&n&&t.material){let o=function(l){var u,d,w;if(l[pe]==!0)return;l[pe]=!0,l.userData&&(l.userData.LOD=-1);const y=Object.keys(l);for(let m=0;m<y.length;m++){const j=y[m],M=l[j];if(M?.isTexture===!0){const C=(d=(u=M.userData)==null?void 0:u.associations)==null?void 0:d.textures;if(C==null)continue;const g=n.parser.json.textures[C];if(!g){console.warn("Texture data not found for texture index "+C);continue}if((w=g?.extensions)!=null&&w[U]){const p=g.extensions[U];p&&i&&z.registerTexture(i,M,p.lods.length,C,p)}}}};const a=t.material;if(Array.isArray(a))for(const l of a)o(l);else o(a)}}tryParseMeshLOD(e,t){var n,r;if(t[$e]==!0)return;t[$e]=!0;const i=this.tryGetCurrentModelViewer(e),o=this.getUrl(i);if(!o)return;const a=(r=(n=t.userData)==null?void 0:n.gltfExtensions)==null?void 0:r[U];if(a&&o){const l=t.uuid;z.registerMesh(o,l,t,0,a.lods.length,a)}}}function Lt(s,e,t,n){_e(e),Me(t),be(t,{progressive:!0,...n?.hints}),t.register(i=>new z(i,s));const r=ie.get(e);return n?.enableLODsManager!==!1&&r.enable(),r}if(Fe(),!dt){const s={gltfProgressive:{useNeedleProgressive:Lt,LODsManager:ie,configureLoader:be,getRaycastMesh:te,useRaycastMeshes:ht}};if(!globalThis.Needle)globalThis.Needle=s;else for(const e in s)globalThis.Needle[e]=s[e]}export{ie as LODsManager,z as NEEDLE_progressive,Me as addDracoAndKTX2Loaders,be as configureLoader,_e as createLoaders,te as getRaycastMesh,ke as setDracoDecoderLocation,je as setKTX2TranscoderLocation};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";var qe=Object.defineProperty;var Ee=n=>{throw TypeError(n)};var Ke=(n,t,e)=>t in n?qe(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var c=(n,t,e)=>Ke(n,typeof t!="symbol"?t+"":t,e),Ge=(n,t,e)=>t.has(n)||Ee("Cannot "+e);var m=(n,t,e)=>(Ge(n,t,"read from private field"),e?e.call(n):t.get(n)),j=(n,t,e)=>t.has(n)?Ee("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(n):t.set(n,e),z=(n,t,e,s)=>(Ge(n,t,"write to private field"),s?s.call(n,e):t.set(n,e),e);const p=require("./three-B_hneGZr.umd.cjs"),te=require("./three-examples-DUcCNw9s.umd.cjs"),Ye="";globalThis.GLTF_PROGRESSIVE_VERSION=Ye;console.debug("[gltf-progressive] version -");let W="https://www.gstatic.com/draco/versioned/decoders/1.5.7/",se="https://www.gstatic.com/basis-universal/versioned/2021-04-15-ba1c3e4/";const He=W,je=se,ke=new URL(W+"draco_decoder.js");ke.searchParams.append("range","true");fetch(ke,{method:"GET",headers:{Range:"bytes=0-1"}}).catch(n=>{console.debug(`Failed to fetch remote Draco decoder from ${W} (offline: ${typeof navigator<"u"?navigator.onLine:"unknown"})`),W===He&&$e("./include/draco/"),se===je&&Fe("./include/ktx2/")}).finally(()=>{Ue()});function $e(n){W=n,B&&B[be]!=W?(console.debug("Updating Draco decoder path to "+n),B[be]=W,B.setDecoderPath(W),B.preload()):console.debug("Setting Draco decoder path to "+n)}function Fe(n){se=n,U&&U.transcoderPath!=se?(console.debug("Updating KTX2 transcoder path to "+n),U.setTranscoderPath(se),U.init()):console.debug("Setting KTX2 transcoder path to "+n)}const be=Symbol("dracoDecoderPath");let B,ye,U;function Ue(){B||(B=new te.DRACOLoader,B[be]=W,B.setDecoderPath(W),B.setDecoderConfig({type:"js"}),B.preload()),U||(U=new te.KTX2Loader,U.setTranscoderPath(se),U.init()),ye||(ye=te.MeshoptDecoder)}function Te(n){return Ue(),n?U.detectSupport(n):n!==null&&console.warn("No renderer provided to detect ktx2 support - loading KTX2 textures might fail"),{dracoLoader:B,ktx2Loader:U,meshoptDecoder:ye}}function Ae(n){n.dracoLoader||n.setDRACOLoader(B),n.ktx2Loader||n.setKTX2Loader(U),n.meshoptDecoder||n.setMeshoptDecoder(ye)}const Se=new WeakMap;function Ce(n,t){let e=Se.get(n);e?e=Object.assign(e,t):e=t,Se.set(n,e)}const Me=te.GLTFLoader.prototype.load;function Je(...n){const t=Se.get(this);let e=n[0];const s=new URL(e,window.location.href);if(s.hostname.endsWith("needle.tools")){const r=(t==null?void 0:t.progressive)!==void 0?t.progressive:!0,i=t!=null&&t.usecase?t.usecase:"default";r?this.requestHeader.Accept=`*/*;progressive=allowed;usecase=${i}`:this.requestHeader.Accept=`*/*;usecase=${i}`,e=s.toString()}return n[0]=e,Me==null?void 0:Me.call(this,...n)}te.GLTFLoader.prototype.load=Je;de("debugprogressive");function de(n){if(typeof window>"u")return!1;const e=new URL(window.location.href).searchParams.get(n);return e==null||e==="0"||e==="false"?!1:e===""?!0:e}function Qe(n,t){if(t===void 0||t.startsWith("./")||t.startsWith("http")||n===void 0)return t;const e=n.lastIndexOf("/");if(e>=0){const s=n.substring(0,e+1);for(;s.endsWith("/")&&t.startsWith("/");)t=t.substring(1);return s+t}return t}let ne;function Ze(){return ne!==void 0||(ne=/iPhone|iPad|iPod|Android|IEMobile/i.test(navigator.userAgent),de("debugprogressive")&&console.log("[glTF Progressive]: isMobileDevice",ne)),ne}function et(){if(typeof window>"u")return!1;const n=new URL(window.location.href),t=n.hostname==="localhost"||/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(n.hostname);return n.hostname==="127.0.0.1"||t}const tt=typeof window>"u"&&typeof document>"u",Pe=Symbol("needle:raycast-mesh");function ie(n){return(n==null?void 0:n[Pe])instanceof p.BufferGeometry?n[Pe]:null}function st(n,t){if((n.type==="Mesh"||n.type==="SkinnedMesh")&&!ie(n)){const s=it(t);s.userData={isRaycastMesh:!0},n[Pe]=s}}function rt(n=!0){if(n){if(ae)return;const t=ae=p.Mesh.prototype.raycast;p.Mesh.prototype.raycast=function(e,s){const o=this,r=ie(o);let i;r&&o.isMesh&&(i=o.geometry,o.geometry=r),t.call(this,e,s),i&&(o.geometry=i)}}else{if(!ae)return;p.Mesh.prototype.raycast=ae,ae=null}}let ae=null;function it(n){const t=new p.BufferGeometry;for(const e in n.attributes)t.setAttribute(e,n.getAttribute(e));return t.setIndex(n.getIndex()),t}const Q=new Array,L=de("debugprogressive");let pe,ee=-1;if(L){let n=function(){ee+=1,ee>=t&&(ee=-1),console.log(`Toggle LOD level [${ee}]`)},t=6;window.addEventListener("keyup",e=>{e.key==="p"&&n(),e.key==="w"&&(pe=!pe,console.log(`Toggle wireframe [${pe}]`));const s=parseInt(e.key);!isNaN(s)&&s>=0&&(ee=s,console.log(`Set LOD level to [${ee}]`))})}function Ne(n){if(L)if(Array.isArray(n))for(const t of n)Ne(t);else n&&"wireframe"in n&&(n.wireframe=pe===!0)}const K="NEEDLE_progressive",De=Symbol("needle-progressive-texture"),_=class _{constructor(t,e){c(this,"parser");c(this,"url");c(this,"_isLoadingMesh");c(this,"loadMesh",t=>{var s,o;if(this._isLoadingMesh)return null;const e=(o=(s=this.parser.json.meshes[t])==null?void 0:s.extensions)==null?void 0:o[K];return e?(this._isLoadingMesh=!0,this.parser.getDependency("mesh",t).then(r=>{var i;return this._isLoadingMesh=!1,r&&_.registerMesh(this.url,e.guid,r,(i=e.lods)==null?void 0:i.length,0,e),r})):null});L&&console.log("Progressive extension registered for",e),this.parser=t,this.url=e}get name(){return K}static getMeshLODExtension(t){const e=this.getAssignedLODInformation(t);return e!=null&&e.key?this.lodInfos.get(e.key):null}static getPrimitiveIndex(t){var s;const e=(s=this.getAssignedLODInformation(t))==null?void 0:s.index;return e??-1}static getMaterialMinMaxLODsCount(t,e){const s=this,o="LODS:minmax",r=t[o];if(r!=null)return r;if(e||(e={min_count:1/0,max_count:0,lods:[]}),Array.isArray(t)){for(const a of t)this.getMaterialMinMaxLODsCount(a,e);return t[o]=e,e}if(L==="verbose"&&console.log("getMaterialMinMaxLODsCount",t),t.type==="ShaderMaterial"||t.type==="RawShaderMaterial"){const a=t;for(const l of Object.keys(a.uniforms)){const u=a.uniforms[l].value;(u==null?void 0:u.isTexture)===!0&&i(u,e)}}else if(t.isMaterial)for(const a of Object.keys(t)){const l=t[a];(l==null?void 0:l.isTexture)===!0&&i(l,e)}return t[o]=e,e;function i(a,l){const u=s.getAssignedLODInformation(a);if(u){const d=s.lodInfos.get(u.key);if(d&&d.lods){l.min_count=Math.min(l.min_count,d.lods.length),l.max_count=Math.max(l.max_count,d.lods.length);for(let h=0;h<d.lods.length;h++){const g=d.lods[h];g.width&&(l.lods[h]=l.lods[h]||{min_height:1/0,max_height:0},l.lods[h].min_height=Math.min(l.lods[h].min_height,g.height),l.lods[h].max_height=Math.max(l.lods[h].max_height,g.height))}}}}}static hasLODLevelAvailable(t,e){var r;if(Array.isArray(t)){for(const i of t)if(this.hasLODLevelAvailable(i,e))return!0;return!1}if(t.isMaterial===!0){for(const i of Object.keys(t)){const a=t[i];if(a&&a.isTexture&&this.hasLODLevelAvailable(a,e))return!0}return!1}else if(t.isGroup===!0){for(const i of t.children)if(i.isMesh===!0&&this.hasLODLevelAvailable(i,e))return!0}let s,o;if(t.isMesh?s=t.geometry:(t.isBufferGeometry||t.isTexture)&&(s=t),s&&(r=s==null?void 0:s.userData)!=null&&r.LODS){const i=s.userData.LODS;if(o=this.lodInfos.get(i.key),e===void 0)return o!=null;if(o)return Array.isArray(o.lods)?e<o.lods.length:e===0}return!1}static assignMeshLOD(t,e){var s;if(!t)return Promise.resolve(null);if(t instanceof p.Mesh||t.isMesh===!0){const o=t.geometry,r=this.getAssignedLODInformation(o);if(!r)return Promise.resolve(null);for(const i of Q)(s=i.onBeforeGetLODMesh)==null||s.call(i,t,e);return t["LOD:requested level"]=e,_.getOrLoadLOD(o,e).then(i=>{if(Array.isArray(i)){const a=r.index||0;i=i[a]}return t["LOD:requested level"]===e&&(delete t["LOD:requested level"],i&&o!=i&&((i==null?void 0:i.isBufferGeometry)?t.geometry=i:L&&console.error("Invalid LOD geometry",i))),i}).catch(i=>(console.error("Error loading mesh LOD",t,i),null))}else L&&console.error("Invalid call to assignMeshLOD: Request mesh LOD but the object is not a mesh",t);return Promise.resolve(null)}static assignTextureLOD(t,e=0){if(!t)return Promise.resolve(null);if(t.isMesh===!0){const s=t;if(Array.isArray(s.material)){const o=new Array;for(const r of s.material){const i=this.assignTextureLOD(r,e);o.push(i)}return Promise.all(o).then(r=>{const i=new Array;for(const a of r)Array.isArray(a)&&i.push(...a);return i})}else return this.assignTextureLOD(s.material,e)}if(t.isMaterial===!0){const s=t,o=[],r=new Array;if(s.uniforms&&(s.isRawShaderMaterial||s.isShaderMaterial===!0)){const i=s;for(const a of Object.keys(i.uniforms)){const l=i.uniforms[a].value;if((l==null?void 0:l.isTexture)===!0){const u=this.assignTextureLODForSlot(l,e,s,a).then(d=>(d&&i.uniforms[a].value!=d&&(i.uniforms[a].value=d,i.uniformsNeedUpdate=!0),d));o.push(u),r.push(a)}}}else for(const i of Object.keys(s)){const a=s[i];if((a==null?void 0:a.isTexture)===!0){const l=this.assignTextureLODForSlot(a,e,s,i);o.push(l),r.push(i)}}return Promise.all(o).then(i=>{const a=new Array;for(let l=0;l<i.length;l++){const u=i[l],d=r[l];u&&u.isTexture===!0?a.push({material:s,slot:d,texture:u,level:e}):a.push({material:s,slot:d,texture:null,level:e})}return a})}if(t instanceof p.Texture||t.isTexture===!0){const s=t;return this.assignTextureLODForSlot(s,e,null,null)}return Promise.resolve(null)}static assignTextureLODForSlot(t,e,s,o){return(t==null?void 0:t.isTexture)!==!0?Promise.resolve(null):o==="glyphMap"?Promise.resolve(t):_.getOrLoadLOD(t,e).then(r=>{if(Array.isArray(r))return null;if((r==null?void 0:r.isTexture)===!0){if(r!=t&&s&&o){const i=s[o];if(i&&!L){const a=this.getAssignedLODInformation(i);if(a&&(a==null?void 0:a.level)<e)return L==="verbose"&&console.warn("Assigned texture level is already higher: ",a.level,e,s,i,r),null}s[o]=r}return r}else L=="verbose"&&console.warn("No LOD found for",t,e);return null}).catch(r=>(console.error("Error loading LOD",t,r),null))}afterRoot(t){var e,s;return L&&console.log("AFTER",this.url,t),(e=this.parser.json.textures)==null||e.forEach((o,r)=>{var i;if(o!=null&&o.extensions){const a=o==null?void 0:o.extensions[K];if(a){if(!a.lods){L&&console.warn("Texture has no LODs",a);return}let l=!1;for(const u of this.parser.associations.keys())if(u.isTexture===!0){const d=this.parser.associations.get(u);(d==null?void 0:d.textures)===r&&(l=!0,_.registerTexture(this.url,u,(i=a.lods)==null?void 0:i.length,r,a))}l||this.parser.getDependency("texture",r).then(u=>{var d;u&&_.registerTexture(this.url,u,(d=a.lods)==null?void 0:d.length,r,a)})}}}),(s=this.parser.json.meshes)==null||s.forEach((o,r)=>{if(o!=null&&o.extensions){const i=o==null?void 0:o.extensions[K];if(i&&i.lods){for(const a of this.parser.associations.keys())if(a.isMesh){const l=this.parser.associations.get(a);(l==null?void 0:l.meshes)===r&&_.registerMesh(this.url,i.guid,a,i.lods.length,l.primitives,i)}}}}),null}static async getOrLoadLOD(t,e){var a,l,u,d;const s=L=="verbose",o=t.userData.LODS;if(!o)return null;const r=o==null?void 0:o.key;let i;if(t.isTexture===!0){const h=t;h.source&&h.source[De]&&(i=h.source[De])}if(i||(i=_.lodInfos.get(r)),i){if(e>0){let D=!1;const S=Array.isArray(i.lods);if(S&&e>=i.lods.length?D=!0:S||(D=!0),D)return this.lowresCache.get(r)}const h=Array.isArray(i.lods)?(a=i.lods[e])==null?void 0:a.path:i.lods;if(!h)return L&&!i["missing:uri"]&&(i["missing:uri"]=!0,console.warn("Missing uri for progressive asset for LOD "+e,i)),null;const g=Qe(o.url,h);if(g.endsWith(".glb")||g.endsWith(".gltf")){if(!i.guid)return console.warn("missing pointer for glb/gltf texture",i),null;const D=g+"_"+i.guid,S=this.previouslyLoaded.get(D);if(S!==void 0){s&&console.log(`LOD ${e} was already loading/loaded: ${D}`);let v=await S.catch(y=>(console.error(`Error loading LOD ${e} from ${g}
|
|
2
|
-
`,y),null)),b=!1;if(v==null||(v instanceof p.Texture&&t instanceof p.Texture?(l=v.image)!=null&&l.data||(u=v.source)!=null&&u.data?v=this.copySettings(t,v):(b=!0,this.previouslyLoaded.delete(D)):v instanceof p.BufferGeometry&&t instanceof p.BufferGeometry&&((d=v.attributes.position)!=null&&d.array||(b=!0,this.previouslyLoaded.delete(D)))),!b)return v}const M=i,N=new Promise(async(v,b)=>{const y=new te.GLTFLoader;Ae(y),L&&(await new Promise(P=>setTimeout(P,1e3)),s&&console.warn("Start loading (delayed) "+g,M.guid));let q=g;if(M&&Array.isArray(M.lods)){const P=M.lods[e];P.hash&&(q+="?v="+P.hash)}const A=await y.loadAsync(q).catch(P=>(console.error(`Error loading LOD ${e} from ${g}
|
|
3
|
-
`,P),null));if(!A)return null;const R=A.parser;s&&console.log("Loading finished "+g,M.guid);let I=0;if(A.parser.json.textures){let P=!1;for(const f of A.parser.json.textures){if(f!=null&&f.extensions){const T=f==null?void 0:f.extensions[K];if(T!=null&&T.guid&&T.guid===M.guid){P=!0;break}}I++}if(P){let f=await R.getDependency("texture",I);return f&&_.assignLODInformation(o.url,f,r,e,void 0),s&&console.log('change "'+t.name+'" → "'+f.name+'"',g,I,f,D),t instanceof p.Texture&&(f=this.copySettings(t,f)),f&&(f.guid=M.guid),v(f)}else L&&console.warn("Could not find texture with guid",M.guid,A.parser.json)}if(I=0,A.parser.json.meshes){let P=!1;for(const f of A.parser.json.meshes){if(f!=null&&f.extensions){const T=f==null?void 0:f.extensions[K];if(T!=null&&T.guid&&T.guid===M.guid){P=!0;break}}I++}if(P){const f=await R.getDependency("mesh",I);if(s&&console.log(`Loaded Mesh "${f.name}"`,g,I,f,D),f.isMesh===!0){const T=f.geometry;return _.assignLODInformation(o.url,T,r,e,0),v(T)}else{const T=new Array;for(let w=0;w<f.children.length;w++){const O=f.children[w];if(O.isMesh===!0){const C=O.geometry;_.assignLODInformation(o.url,C,r,e,w),T.push(C)}}return v(T)}}else L&&console.warn("Could not find mesh with guid",M.guid,A.parser.json)}return v(null)});return this.previouslyLoaded.set(D,N),await N}else if(t instanceof p.Texture){s&&console.log("Load texture from uri: "+g);const S=await new p.TextureLoader().loadAsync(g);return S?(S.guid=i.guid,S.flipY=!1,S.needsUpdate=!0,S.colorSpace=t.colorSpace,s&&console.log(i,S)):L&&console.warn("failed loading",g),S}}else L&&console.warn(`Can not load LOD ${e}: no LOD info found for "${r}" ${t.name}`,t.type);return null}static assignLODInformation(t,e,s,o,r){if(!e)return;e.userData||(e.userData={});const i=new ot(t,s,o,r);e.userData.LODS=i}static getAssignedLODInformation(t){var e;return((e=t==null?void 0:t.userData)==null?void 0:e.LODS)||null}static copySettings(t,e){return e?(L&&console.warn(`Copy texture settings
|
|
4
|
-
`,t.uuid,`
|
|
5
|
-
`,e.uuid),e=e.clone(),e.offset=t.offset,e.repeat=t.repeat,e.colorSpace=t.colorSpace,e.magFilter=t.magFilter,e.minFilter=t.minFilter,e.wrapS=t.wrapS,e.wrapT=t.wrapT,e.flipY=t.flipY,e.anisotropy=t.anisotropy,e.mipmaps||(e.generateMipmaps=t.generateMipmaps),e):t}};c(_,"registerTexture",(t,e,s,o,r)=>{if(L&&console.log("> Progressive: register texture",o,e.name,e.uuid,e,r),!e){L&&console.error("gltf-progressive: Register texture without texture");return}e.source&&(e.source[De]=r);const i=r.guid;_.assignLODInformation(t,e,i,s,o),_.lodInfos.set(i,r),_.lowresCache.set(i,e)}),c(_,"registerMesh",(t,e,s,o,r,i)=>{var u;const a=s.geometry;if(!a){L&&console.warn("gltf-progressive: Register mesh without geometry");return}a.userData||(a.userData={}),L&&console.log("> Progressive: register mesh "+s.name,{index:r,uuid:s.uuid},i,s),_.assignLODInformation(t,a,e,o,r),_.lodInfos.set(e,i);let l=_.lowresCache.get(e);l?l.push(s.geometry):l=[s.geometry],_.lowresCache.set(e,l),o>0&&!ie(s)&&st(s,a);for(const d of Q)(u=d.onRegisteredNewMesh)==null||u.call(d,s,i)}),c(_,"lodInfos",new Map),c(_,"previouslyLoaded",new Map),c(_,"lowresCache",new Map);let F=_;class ot{constructor(t,e,s,o){c(this,"url");c(this,"key");c(this,"level");c(this,"index");this.url=t,this.key=e,this.level=s,o!=null&&(this.index=o)}}class me{constructor(t,e){c(this,"frame_start");c(this,"frame_capture_end");c(this,"ready");c(this,"_resolve");c(this,"_signal");c(this,"_resolved",!1);c(this,"_addedCount",0);c(this,"_resolvedCount",0);c(this,"_awaiting",[]);c(this,"_maxPromisesPerObject",1);c(this,"_currentFrame",0);c(this,"_seen",new WeakMap);var r;const o=Math.max(e.frames??2,2);this.frame_start=t,this.frame_capture_end=t+o,this.ready=new Promise(i=>{this._resolve=i}),this.ready.finally(()=>{this._resolved=!0,this._awaiting.length=0}),this._signal=e.signal,(r=this._signal)==null||r.addEventListener("abort",()=>{this.resolveNow()}),this._maxPromisesPerObject=Math.max(1,e.maxPromisesPerObject??1)}get awaitedCount(){return this._addedCount}get resolvedCount(){return this._resolvedCount}get currentlyAwaiting(){return this._awaiting.length}update(t){var e;this._currentFrame=t,((e=this._signal)!=null&&e.aborted||this._currentFrame>this.frame_capture_end&&this._awaiting.length===0)&&this.resolveNow()}add(t,e,s){if(this._resolved){L&&console.warn("PromiseGroup: Trying to add a promise to a resolved group, ignoring.");return}if(!(this._currentFrame>this.frame_capture_end)){if(this._maxPromisesPerObject>=1)if(this._seen.has(e)){let o=this._seen.get(e);if(o>=this._maxPromisesPerObject){L&&console.warn("PromiseGroup: Already awaiting object ignoring new promise for it.");return}this._seen.set(e,o+1)}else this._seen.set(e,1);this._awaiting.push(s),this._addedCount++,s.finally(()=>{this._resolvedCount++,this._awaiting.splice(this._awaiting.indexOf(s),1)})}}resolveNow(){var t,e;this._resolved||(e=this._resolve)==null||e.call(this,{awaited_count:this._addedCount,resolved_count:this._resolvedCount,cancelled:((t=this._signal)==null?void 0:t.aborted)??!1})}}c(me,"addPromise",(t,e,s,o)=>{o.forEach(r=>{r.add(t,e,s)})});const $=de("debugprogressive"),nt=de("noprogressive"),ve=Symbol("Needle:LODSManager"),Oe=Symbol("Needle:LODState"),J=Symbol("Needle:CurrentLOD"),E={mesh_lod:-1,texture_lod:-1};var x,G,Y,Le,Z,re,xe,H;let ce=(x=class{constructor(t,e){c(this,"renderer");c(this,"context");c(this,"projectionScreenMatrix",new p.Matrix4);c(this,"targetTriangleDensity",2e5);c(this,"skinnedMeshAutoUpdateBoundsInterval",30);c(this,"updateInterval","auto");j(this,G,1);c(this,"pause",!1);c(this,"manual",!1);c(this,"_newPromiseGroups",[]);c(this,"_promiseGroupIds",0);c(this,"_lodchangedlisteners",[]);j(this,Y);j(this,Le,new p.Clock);j(this,Z,0);j(this,re,0);j(this,xe,0);j(this,H,0);c(this,"_fpsBuffer",[60,60,60,60,60]);c(this,"_sphere",new p.Sphere);c(this,"_tempBox",new p.Box3);c(this,"_tempBox2",new p.Box3);c(this,"tempMatrix",new p.Matrix4);c(this,"_tempWorldPosition",new p.Vector3);c(this,"_tempBoxSize",new p.Vector3);c(this,"_tempBox2Size",new p.Vector3);this.renderer=t,this.context={...e}}static getObjectLODState(t){return t[Oe]}static addPlugin(t){Q.push(t)}static removePlugin(t){const e=Q.indexOf(t);e>=0&&Q.splice(e,1)}static get(t,e){if(t[ve])return console.debug("[gltf-progressive] LODsManager already exists for this renderer"),t[ve];const s=new x(t,{engine:"unknown",...e});return t[ve]=s,s}get plugins(){return Q}awaitLoading(t){const e=this._promiseGroupIds++,s=new me(m(this,Z),{...t});this._newPromiseGroups.push(s);const o=performance.now();return s.ready.finally(()=>{const r=this._newPromiseGroups.indexOf(s);r>=0&&(this._newPromiseGroups.splice(r,1),et()&&performance.measure("LODsManager:awaitLoading",{start:o,detail:{id:e,name:t==null?void 0:t.name,awaited:s.awaitedCount,resolved:s.resolvedCount}}))}),s.ready}_postprocessPromiseGroups(){if(this._newPromiseGroups.length!==0)for(let t=this._newPromiseGroups.length-1;t>=0;t--)this._newPromiseGroups[t].update(m(this,Z))}addEventListener(t,e){t==="changed"&&this._lodchangedlisteners.push(e)}removeEventListener(t,e){if(t==="changed"){const s=this._lodchangedlisteners.indexOf(e);s>=0&&this._lodchangedlisteners.splice(s,1)}}enable(){if(m(this,Y))return;console.debug("[gltf-progressive] Enabling LODsManager for renderer");let t=0;z(this,Y,this.renderer.render);const e=this;Te(this.renderer),this.renderer.render=function(s,o){const r=e.renderer.getRenderTarget();(r==null||"isXRRenderTarget"in r&&r.isXRRenderTarget)&&(t=0,z(e,Z,m(e,Z)+1),z(e,re,m(e,Le).getDelta()),z(e,xe,m(e,xe)+m(e,re)),e._fpsBuffer.shift(),e._fpsBuffer.push(1/m(e,re)),z(e,H,e._fpsBuffer.reduce((a,l)=>a+l)/e._fpsBuffer.length),$&&m(e,Z)%200===0&&console.log("FPS",Math.round(m(e,H)),"Interval:",m(e,G)));const i=t++;m(e,Y).call(this,s,o),e.onAfterRender(s,o,i)}}disable(){m(this,Y)&&(console.debug("[gltf-progressive] Disabling LODsManager for renderer"),this.renderer.render=m(this,Y),z(this,Y,void 0))}update(t,e){this.internalUpdate(t,e)}onAfterRender(t,e,s){if(this.pause)return;const r=this.renderer.renderLists.get(t,0).opaque;let i=!0;if(r.length===1){const a=r[0].material;(a.name==="EffectMaterial"||a.name==="CopyShader")&&(i=!1)}if((e.parent&&e.parent.type==="CubeCamera"||s>=1&&e.type==="OrthographicCamera")&&(i=!1),i){if(nt||(this.updateInterval==="auto"?m(this,H)<40&&m(this,G)<10?(z(this,G,m(this,G)+1),$&&console.warn("↓ Reducing LOD updates",m(this,G),m(this,H).toFixed(0))):m(this,H)>=60&&m(this,G)>1&&(z(this,G,m(this,G)-1),$&&console.warn("↑ Increasing LOD updates",m(this,G),m(this,H).toFixed(0))):z(this,G,this.updateInterval),m(this,G)>0&&m(this,Z)%m(this,G)!=0))return;this.internalUpdate(t,e),this._postprocessPromiseGroups()}}internalUpdate(t,e){var l,u;const s=this.renderer.renderLists.get(t,0),o=s.opaque;this.projectionScreenMatrix.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse);const r=this.targetTriangleDensity;for(const d of o){if(d.material&&(((l=d.geometry)==null?void 0:l.type)==="BoxGeometry"||((u=d.geometry)==null?void 0:u.type)==="BufferGeometry")&&(d.material.name==="SphericalGaussianBlur"||d.material.name=="BackgroundCubeMaterial"||d.material.name==="CubemapFromEquirect"||d.material.name==="EquirectangularToCubeUV")){$&&(d.material["NEEDLE_PROGRESSIVE:IGNORE-WARNING"]||(d.material["NEEDLE_PROGRESSIVE:IGNORE-WARNING"]=!0,console.warn("Ignoring skybox or BLIT object",d,d.material.name,d.material.type)));continue}switch(d.material.type){case"LineBasicMaterial":case"LineDashedMaterial":case"PointsMaterial":case"ShadowMaterial":case"MeshDistanceMaterial":case"MeshDepthMaterial":continue}if($==="color"&&d.material&&!d.object.progressive_debug_color){d.object.progressive_debug_color=!0;const g=Math.random()*16777215,D=new p.MeshStandardMaterial({color:g});d.object.material=D}const h=d.object;(h instanceof p.Mesh||h.isMesh)&&this.updateLODs(t,e,h,r)}const i=s.transparent;for(const d of i){const h=d.object;(h instanceof p.Mesh||h.isMesh)&&this.updateLODs(t,e,h,r)}const a=s.transmissive;for(const d of a){const h=d.object;(h instanceof p.Mesh||h.isMesh)&&this.updateLODs(t,e,h,r)}}updateLODs(t,e,s,o){var a,l;s.userData||(s.userData={});let r=s[Oe];if(r||(r=new at,s[Oe]=r),r.frames++<2)return;for(const u of Q)(a=u.onBeforeUpdateLOD)==null||a.call(u,this.renderer,t,e,s);const i=x.overrideGlobalLodLevel!==void 0?x.overrideGlobalLodLevel:ee;i>=0?(E.mesh_lod=i,E.texture_lod=i):(this.calculateLodLevel(e,s,r,o,E),E.mesh_lod=Math.round(E.mesh_lod),E.texture_lod=Math.round(E.texture_lod)),E.mesh_lod>=0&&this.loadProgressiveMeshes(s,E.mesh_lod),s.material&&E.texture_lod>=0&&this.loadProgressiveTextures(s.material,E.texture_lod),L&&s.material&&!s.isGizmo&&Ne(s.material);for(const u of Q)(l=u.onAfterUpdatedLOD)==null||l.call(u,this.renderer,t,e,s,E);r.lastLodLevel_Mesh=E.mesh_lod,r.lastLodLevel_Texture=E.texture_lod}loadProgressiveTextures(t,e){if(!t)return;if(Array.isArray(t)){for(const r of t)this.loadProgressiveTextures(r,e);return}let s=!1;(t[J]===void 0||e<t[J])&&(s=!0);const o=t["DEBUG:LOD"];if(o!=null&&(s=t[J]!=o,e=o),s){t[J]=e;const r=F.assignTextureLOD(t,e).then(i=>{this._lodchangedlisteners.forEach(a=>a({type:"texture",level:e,object:t}))});me.addPromise("texture",t,r,this._newPromiseGroups)}}loadProgressiveMeshes(t,e){if(!t)return Promise.resolve(null);let s=t[J]!==e;const o=t["DEBUG:LOD"];if(o!=null&&(s=t[J]!=o,e=o),s){t[J]=e;const r=t.geometry,i=F.assignMeshLOD(t,e).then(a=>(a&&t[J]==e&&r!=t.geometry&&this._lodchangedlisteners.forEach(l=>l({type:"mesh",level:e,object:t})),a));return me.addPromise("mesh",t,i,this._newPromiseGroups),i}return Promise.resolve(null)}static isInside(t,e){const s=t.min,o=t.max,r=(s.x+o.x)*.5,i=(s.y+o.y)*.5;return this._tempPtInside.set(r,i,s.z).applyMatrix4(e).z<0}calculateLodLevel(t,e,s,o,r){var N,X,v;if(!e){r.mesh_lod=-1,r.texture_lod=-1;return}if(!t){r.mesh_lod=-1,r.texture_lod=-1;return}let a=10+1,l=!1;if($&&e["DEBUG:LOD"]!=null)return e["DEBUG:LOD"];const u=(N=F.getMeshLODExtension(e.geometry))==null?void 0:N.lods,d=F.getPrimitiveIndex(e.geometry),h=u&&u.length>0,g=F.getMaterialMinMaxLODsCount(e.material),D=(g==null?void 0:g.min_count)!=1/0&&g.min_count>0&&g.max_count>0;if(!h&&!D){r.mesh_lod=0,r.texture_lod=0;return}h||(l=!0,a=0);const S=this.renderer.domElement.clientHeight||this.renderer.domElement.height;let M=e.geometry.boundingBox;if(e.type==="SkinnedMesh"){const b=e;if(!b.boundingBox)b.computeBoundingBox();else if(this.skinnedMeshAutoUpdateBoundsInterval>0&&s.frames%this.skinnedMeshAutoUpdateBoundsInterval===0){const y=ie(b),q=b.geometry;y&&(b.geometry=y),b.computeBoundingBox(),b.geometry=q}M=b.boundingBox}if(M){const b=t;if(e.geometry.attributes.color&&e.geometry.attributes.color.count<100&&e.geometry.boundingSphere){this._sphere.copy(e.geometry.boundingSphere),this._sphere.applyMatrix4(e.matrixWorld);const w=t.getWorldPosition(this._tempWorldPosition);if(this._sphere.containsPoint(w)){r.mesh_lod=0,r.texture_lod=0;return}}if(this._tempBox.copy(M),this._tempBox.applyMatrix4(e.matrixWorld),b.isPerspectiveCamera&&x.isInside(this._tempBox,this.projectionScreenMatrix)){r.mesh_lod=0,r.texture_lod=0;return}if(this._tempBox.applyMatrix4(this.projectionScreenMatrix),this.renderer.xr.enabled&&b.isPerspectiveCamera&&b.fov>70){const w=this._tempBox.min,O=this._tempBox.max;let C=w.x,k=w.y,V=O.x,oe=O.y;const ue=2,we=1.5,fe=(w.x+O.x)*.5,he=(w.y+O.y)*.5;C=(C-fe)*ue+fe,k=(k-he)*ue+he,V=(V-fe)*ue+fe,oe=(oe-he)*ue+he;const We=C<0&&V>0?0:Math.min(Math.abs(w.x),Math.abs(O.x)),Xe=k<0&&oe>0?0:Math.min(Math.abs(w.y),Math.abs(O.y)),_e=Math.max(We,Xe);s.lastCentrality=(we-_e)*(we-_e)*(we-_e)}else s.lastCentrality=1;const y=this._tempBox.getSize(this._tempBoxSize);y.multiplyScalar(.5),screen.availHeight>0&&S>0&&y.multiplyScalar(S/screen.availHeight),t.isPerspectiveCamera?y.x*=t.aspect:t.isOrthographicCamera;const q=t.matrixWorldInverse,A=this._tempBox2;A.copy(M),A.applyMatrix4(e.matrixWorld),A.applyMatrix4(q);const R=A.getSize(this._tempBox2Size),I=Math.max(R.x,R.y);if(Math.max(y.x,y.y)!=0&&I!=0&&(y.z=R.z/Math.max(R.x,R.y)*Math.max(y.x,y.y)),s.lastScreenCoverage=Math.max(y.x,y.y,y.z),s.lastScreenspaceVolume.copy(y),s.lastScreenCoverage*=s.lastCentrality,$&&x.debugDrawLine){const w=this.tempMatrix.copy(this.projectionScreenMatrix);w.invert();const O=x.corner0,C=x.corner1,k=x.corner2,V=x.corner3;O.copy(this._tempBox.min),C.copy(this._tempBox.max),C.x=O.x,k.copy(this._tempBox.max),k.y=O.y,V.copy(this._tempBox.max);const oe=(O.z+V.z)*.5;O.z=C.z=k.z=V.z=oe,O.applyMatrix4(w),C.applyMatrix4(w),k.applyMatrix4(w),V.applyMatrix4(w),x.debugDrawLine(O,C,255),x.debugDrawLine(O,k,255),x.debugDrawLine(C,V,255),x.debugDrawLine(k,V,255)}let f=999;if(u&&s.lastScreenCoverage>0)for(let w=0;w<u.length;w++){const O=u[w];if((((X=O.densities)==null?void 0:X[d])||O.density||1e-5)/s.lastScreenCoverage<o){f=w;break}}f<a&&(a=f,l=!0)}if(l?r.mesh_lod=a:r.mesh_lod=s.lastLodLevel_Mesh,$&&r.mesh_lod!=s.lastLodLevel_Mesh){const y=u==null?void 0:u[r.mesh_lod];y&&console.log(`Mesh LOD changed: ${s.lastLodLevel_Mesh} → ${r.mesh_lod} (${y.density.toFixed(0)}) - ${e.name}`)}if(D){const b="saveData"in globalThis.navigator&&globalThis.navigator.saveData===!0;if(s.lastLodLevel_Texture<0){if(r.texture_lod=g.max_count-1,$){const y=g.lods[g.max_count-1];$&&console.log(`First Texture LOD ${r.texture_lod} (${y.max_height}px) - ${e.name}`)}}else{const y=s.lastScreenspaceVolume.x+s.lastScreenspaceVolume.y+s.lastScreenspaceVolume.z;let q=s.lastScreenCoverage*4;((v=this.context)==null?void 0:v.engine)==="model-viewer"&&(q*=1.5);const R=S/window.devicePixelRatio*q;let I=!1;for(let P=g.lods.length-1;P>=0;P--){const f=g.lods[P];if(!(b&&f.max_height>=2048)&&!(Ze()&&f.max_height>4096)&&(f.max_height>R||!I&&P===0)){if(I=!0,r.texture_lod=P,r.texture_lod<s.lastLodLevel_Texture){const T=f.max_height;$&&console.log(`Texture LOD changed: ${s.lastLodLevel_Texture} → ${r.texture_lod} = ${T}px
|
|
6
|
-
Screensize: ${R.toFixed(0)}px, Coverage: ${(100*s.lastScreenCoverage).toFixed(2)}%, Volume ${y.toFixed(1)}
|
|
7
|
-
${e.name}`)}break}}}}else r.texture_lod=0}},G=new WeakMap,Y=new WeakMap,Le=new WeakMap,Z=new WeakMap,re=new WeakMap,xe=new WeakMap,H=new WeakMap,c(x,"debugDrawLine"),c(x,"overrideGlobalLodLevel"),c(x,"corner0",new p.Vector3),c(x,"corner1",new p.Vector3),c(x,"corner2",new p.Vector3),c(x,"corner3",new p.Vector3),c(x,"_tempPtInside",new p.Vector3),x);class at{constructor(){c(this,"frames",0);c(this,"lastLodLevel_Mesh",-1);c(this,"lastLodLevel_Texture",-1);c(this,"lastScreenCoverage",0);c(this,"lastScreenspaceVolume",new p.Vector3);c(this,"lastCentrality",0)}}const Be=Symbol("NEEDLE_mesh_lod"),ge=Symbol("NEEDLE_texture_lod");let le=null;function Ve(){const n=lt();n&&(n.mapURLs(function(t){return Ie(),t}),Ie(),le==null||le.disconnect(),le=new MutationObserver(t=>{t.forEach(e=>{e.addedNodes.forEach(s=>{s instanceof HTMLElement&&s.tagName.toLowerCase()==="model-viewer"&&ze(s)})})}),le.observe(document,{childList:!0,subtree:!0}))}function lt(){if(typeof customElements>"u")return null;const n=customElements.get("model-viewer");return n||(customElements.whenDefined("model-viewer").then(()=>{console.debug("[gltf-progressive] model-viewer defined"),Ve()}),null)}function Ie(){if(typeof document>"u")return;document.querySelectorAll("model-viewer").forEach(t=>{ze(t)})}const Re=new WeakSet;let ct=0;function ze(n){if(!n||Re.has(n))return null;Re.add(n),console.debug("[gltf-progressive] found new model-viewer..."+ ++ct+`
|
|
8
|
-
`,n.getAttribute("src"));let t=null,e=null,s=null;for(let o=n;o!=null;o=Object.getPrototypeOf(o)){const r=Object.getOwnPropertySymbols(o),i=r.find(u=>u.toString()=="Symbol(renderer)"),a=r.find(u=>u.toString()=="Symbol(scene)"),l=r.find(u=>u.toString()=="Symbol(needsRender)");!t&&i!=null&&(t=n[i].threeRenderer),!e&&a!=null&&(e=n[a]),!s&&l!=null&&(s=n[l])}if(t&&e){let o=function(){if(s){let i=0,a=setInterval(()=>{if(i++>5){clearInterval(a);return}s==null||s.call(n)},300)}};console.debug("[gltf-progressive] setup model-viewer");const r=ce.get(t,{engine:"model-viewer"});return ce.addPlugin(new dt),r.enable(),r.addEventListener("changed",()=>{s==null||s.call(n)}),n.addEventListener("model-visibility",i=>{i.detail.visible&&(s==null||s.call(n))}),n.addEventListener("load",()=>{o()}),()=>{r.disable()}}return null}class dt{constructor(){c(this,"_didWarnAboutMissingUrl",!1)}onBeforeUpdateLOD(t,e,s,o){this.tryParseMeshLOD(e,o),this.tryParseTextureLOD(e,o)}getUrl(t){if(!t)return null;let e=t.getAttribute("src");return e||(e=t.src),e||(this._didWarnAboutMissingUrl||console.warn("No url found in modelviewer",t),this._didWarnAboutMissingUrl=!0),e}tryGetCurrentGLTF(t){return t._currentGLTF}tryGetCurrentModelViewer(t){return t.element}tryParseTextureLOD(t,e){if(e[ge]==!0)return;e[ge]=!0;const s=this.tryGetCurrentGLTF(t),o=this.tryGetCurrentModelViewer(t),r=this.getUrl(o);if(r&&s&&e.material){let i=function(l){var d,h,g;if(l[ge]==!0)return;l[ge]=!0,l.userData&&(l.userData.LOD=-1);const u=Object.keys(l);for(let D=0;D<u.length;D++){const S=u[D],M=l[S];if((M==null?void 0:M.isTexture)===!0){const N=(h=(d=M.userData)==null?void 0:d.associations)==null?void 0:h.textures;if(N==null)continue;const X=s.parser.json.textures[N];if(!X){console.warn("Texture data not found for texture index "+N);continue}if((g=X==null?void 0:X.extensions)!=null&&g[K]){const v=X.extensions[K];v&&r&&F.registerTexture(r,M,v.lods.length,N,v)}}}};const a=e.material;if(Array.isArray(a))for(const l of a)i(l);else i(a)}}tryParseMeshLOD(t,e){var i,a;if(e[Be]==!0)return;e[Be]=!0;const s=this.tryGetCurrentModelViewer(t),o=this.getUrl(s);if(!o)return;const r=(a=(i=e.userData)==null?void 0:i.gltfExtensions)==null?void 0:a[K];if(r&&o){const l=e.uuid;F.registerMesh(o,l,e,0,r.lods.length,r)}}}function ut(n,t,e,s){Te(t),Ae(e),Ce(e,{progressive:!0,...s==null?void 0:s.hints}),e.register(r=>new F(r,n));const o=ce.get(t);return(s==null?void 0:s.enableLODsManager)!==!1&&o.enable(),o}Ve();if(!tt){const n={gltfProgressive:{useNeedleProgressive:ut,LODsManager:ce,configureLoader:Ce,getRaycastMesh:ie,useRaycastMeshes:rt}};if(!globalThis.Needle)globalThis.Needle=n;else for(const t in n)globalThis.Needle[t]=n[t]}exports.LODsManager=ce;exports.NEEDLE_progressive=F;exports.addDracoAndKTX2Loaders=Ae;exports.configureLoader=Ce;exports.createLoaders=Te;exports.getRaycastMesh=ie;exports.setDracoDecoderLocation=$e;exports.setKTX2TranscoderLocation=Fe;
|