gl-draw 0.15.15 → 0.15.16

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/index.js CHANGED
@@ -95,4 +95,4 @@
95
95
  gl_FragColor = ( base_color + vec4( 1.0 ) * bloom_color );
96
96
  }
97
97
  }
98
- `,defines:{}}),"baseTexture");return e.needsSwap=!0,e},ns=new v.MeshBasicMaterial({color:"black"}),as=new v.PointsMaterial({color:"black",sizeAttenuation:!1}),ls=new v.PointsMaterial({color:"black",sizeAttenuation:!0}),hs=new v.SpriteMaterial({color:"black",sizeAttenuation:!0}),cs=new v.SpriteMaterial({color:"black",sizeAttenuation:!1}),ds=new U.MeshLineMaterial({color:"black",sizeAttenuation:0,lineWidth:0}),ps={kernelRadius:8,minDistance:.005,maxDistance:.1},ms={threshold:0,strength:.4,radius:.1,bloomAlphaType:0},us={multisampling:4,premultiplieAlpha:!1};class fs{constructor(e){this.bloomComposerActive=!1,this.active=!0,this.bloomSelection=new Set,this.bloomLayer=new v.Layers,this.bloomMaterials={},this.bloomVisible={},this.bloomComposerRenderIng=!1,this.pipViewportState=null,this.options=e;const{rendererController:t,sceneController:s,cameraController:i,composerParams:r}=e,{renderer:o}=t;this.renderer=o;const{multisampling:n}=r,{maxSamples:a}=o.capabilities,c=o.getDrawingBufferSize(new v.Vector2),f=new v.WebGLRenderTarget(c.width,c.height,{samples:Math.min(n,a),type:v.HalfFloatType}),p=new Ae.EffectComposer(o,f),C=this.getSize();p.setSize(C.width,C.height);const m=new bt.RenderPass(s.scene,i.camera);p.addPass(m),this.scene=s.scene,this.camera=i.camera,this.finalComposer=p,this.renderPass=m,i.event.on("pageChange",u=>{this.changeCamera(u)}),s.event.on("pageChange",u=>{this.changeScene(u)})}changeCamera(e){this.renderPass.camera=e,this.camera=e}changeScene(e){this.renderPass.scene=e,this.ssaoPass&&(this.ssaoPass.scene=e),this.scene=e}addOutputPass(){const{premultiplieAlpha:e}=this.options.composerParams,t=new rs;this.outputPass=t,this.setPremultiplieAlpha(e),this.finalComposer.addPass(t)}setPremultiplieAlpha(e){this.outputPass&&(this.outputPass.uniforms.premultiplieAlpha.value=e?1:0)}addSSAOPass(e){const{scene:t,camera:s,renderer:i}=this,r=i.getSize(new v.Vector2),o=r.width,n=r.height,a=new wt.SSAOPass(t,s,o,n);a.kernelRadius=e.kernelRadius,a.minDistance=e.minDistance,a.maxDistance=e.maxDistance,this.ssaoPass=a,this.finalComposer.addPass(a)}addBloomPass(e){const{renderer:t}=this,{threshold:s,strength:i,radius:r,bloomAlphaType:o}=e,n=new Pt.UnrealBloomPass(new v.Vector2(window.innerWidth,window.innerHeight),i,r,s);this.bloomPass=n;const a=new Ae.EffectComposer(t);a.renderToScreen=!1,a.addPass(this.renderPass),a.addPass(n),this.bloomComposer=a;const c=os(a);c.uniforms.bloomAlphaType.value=o,this.bloomComposer=a,this.finalComposer.addPass(c),this.mixPass=c,this.bloomLayer.set(U.BLOOM_SCENE)}setBloomSelection(e,t){if(!this.bloomComposer){console.warn("err:pencil.options.bloom");return}e.traverse(s=>{const{object3d:i}=s;i&&(t?(this.bloomSelection.add(s),i.layers.enable(U.BLOOM_SCENE)):(this.bloomSelection.delete(s),i.layers.disable(U.BLOOM_SCENE)))}),this.bloomSelection.size===0?this.bloomComposerActive=!1:this.bloomComposerActive=!0}enable(){this.active||(this.active=!0)}disable(){this.active&&(this.active=!1)}setSize(e,t){var s;(s=this.bloomComposer)==null||s.setSize(e,t),this.finalComposer.setSize(e,t)}setPixelRatio(e){var t;(t=this.bloomComposer)==null||t.setPixelRatio(e),this.finalComposer.setPixelRatio(e)}darkenNonBloomed(){const e=[],t=[];this.scene.children.forEach(s=>{s.isTransformControls||s.isTransformControlsRoot||s.type==="RectAreaLightHelper"?e.push(s):t.push(s)}),t.forEach(s=>{s.traverse(i=>{var a;const r=i,o=i,n=i;(a=r.material)!=null&&a.isShadowMaterial?e.push(r):r.material&&this.bloomLayer.test(r.layers)===!1&&(this.bloomMaterials[r.uuid]=r.material,o.isSprite?o.material.sizeAttenuation?o.material=hs:o.material=cs:r.material instanceof U.MeshLineMaterial?r.material=ds:n.isPoints?n.material.sizeAttenuation?n.material=ls:n.material=as:r.material=ns)})}),e.forEach(s=>{this.bloomVisible[s.uuid]=s.visible,s.visible=!1})}restoreNonBloomed(){this.scene.traverse(e=>{const t=e;this.bloomMaterials[t.uuid]?(t.material=this.bloomMaterials[t.uuid],delete this.bloomMaterials[t.uuid]):this.bloomVisible[t.uuid]!==void 0&&(t.visible=this.bloomVisible[t.uuid],delete this.bloomVisible[t.uuid])})}finalComposerRender(){this.bloomComposerActive&&this.bloomComposer?(this.bloomComposerRenderIng=!0,this.mixPass.enabled=!0,this.darkenNonBloomed(),this.bloomComposer.render(),this.restoreNonBloomed(),this.bloomComposerRenderIng=!1):this.mixPass&&(this.mixPass.enabled=!1),this.finalComposer.render()}getSize(){return this.renderer.getSize(new v.Vector2)}render(){if(!this.active)return;const{cameraController:e,rendererController:t,sceneController:s}=this.options;if(this.finalComposerRender(),this.pipViewportState){e.setPageActive(31),e.setAspect(this.pipViewportState.width/this.pipViewportState.height),t.setViewport(ee(k({},this.pipViewportState),{scissor:!0,scissorTest:!0})),this.finalComposerRender(),e.setPageActive(s.activeIndex);const i=this.getSize();t.setViewport({x:0,y:0,width:i.width,height:i.height,scissor:!0,scissorTest:!1})}}dispose(){var e;this.bloomMaterials={},this.bloomVisible={},this.bloomSelection.clear(),this.finalComposer.dispose(),(e=this.bloomComposer)==null||e.dispose()}}class $e extends v.Loader{constructor(e){super(e),this.options={type:"image"}}setOptions(e){return this.options=e,this}load(e,t,s,i){let r,o;this.options.type==="image"?(o=document.createElement("img"),r=new v.Texture(o)):this.options.type==="video"?(o=document.createElement("video"),o.preload="auto",o.autoplay=!1,o.loop=!1,o.muted=!0,o.setAttribute("webkit-playsinline","webkit-playsinline"),o.setAttribute("playsinline",""),r=new v.VideoTexture(o)):r=new v.Texture;const n=new v.FileLoader(this.manager);return n.setResponseType("blob"),n.setRequestHeader(this.requestHeader),n.setPath(this.path),n.setWithCredentials(this.withCredentials),n.load(e,a=>{let c=a;const f=e.split(".").pop(),p=this.options.type==="image"?`image/${f||"png"}`:`video/${f||"mp4"}`;c=c.slice(0,a.size,p);const C=()=>{o.removeEventListener("load",m,!1),o.removeEventListener("error",u,!1)},m=()=>{C(),r.needsUpdate=!0,t&&t(r)},u=y=>{C(),i&&i(y),this.manager.itemError(e),this.manager.itemEnd(e)};o.addEventListener("load",m,!1),o.addEventListener("error",u,!1);const g=window.URL.createObjectURL(c);o.src=g},s,i),r}}class _s extends v.Loader{constructor(e){super(e)}load(e,t,s,i){const r=new v.FileLoader(this.manager);r.setResponseType("blob"),r.setRequestHeader(this.requestHeader),r.setPath(this.path),r.setWithCredentials(this.withCredentials),r.load(e,o=>{const n=o,a=new DecompressionStream("gzip"),c=n.stream().pipeThrough(a);new Response(c).json().then(p=>{t==null||t(p)}).catch(p=>{i==null||i(p)})},s,i)}}const gs={images:["png","jpg","jpeg","ico","webp","avif"],media:["mp4","webm","ogg"],gltf:["gltf","glb"],json:["json","geojson"],gzipJson:["json.gzip"],exr:["exr"],lottie:["lottie.json"]};class ys{constructor(e){this.loadObj=[],this.delLoadArr=[],this.assets=new Map,this.event=new _e.EventEmitter,this.options=k({simpleTexture4deleted:!1,prefix:""},e),this.loadingManager=new v.LoadingManager(()=>{},(t,s,i)=>{this.emit("progress",s,i)},t=>{console.warn(`Failed to load ${t}`)})}emit(e,...t){this.event.emit(e,...t)}on(e,t){this.event.on(e,t)}getAsset(e){const t=this.getAssetType(e);if(!t)return;const s=this.assets.get(e);if(!s){if((t==="images"||t==="media"||t==="exr")&&this.options.simpleTexture4deleted&&this.delLoadArr.includes(e))return new v.Texture;console.warn(`Asset ${e} not found`)}return s}getAssetType(e){var s;const t=(s=e.split(".").pop())==null?void 0:s.toLowerCase();if(t){if(e.endsWith("lottie.json"))return"lottie";if(e.endsWith("json.gzip"))return"gzipJson"}else return;for(const[i,r]of Object.entries(gs))if(r.includes(t))return i}getLoader(e,t){if(e==="images")return this.textureLoader||(this.textureLoader=new $e(this.loadingManager),this.options.prefix&&this.textureLoader.setPath(this.options.prefix)),this.textureLoader;if(e==="media")return this.videoTextureLoader||(this.videoTextureLoader=new $e(this.loadingManager),this.videoTextureLoader.setOptions({type:"video"}),this.options.prefix&&this.videoTextureLoader.setPath(this.options.prefix)),this.videoTextureLoader;if(e==="gltf"&&(t!=null&&t.dracoPath))return this.dracoGltfLoader||(this.dracoGltfLoader=new Re.GLTFLoader(this.loadingManager),this.dracoLoader=new St.DRACOLoader,this.dracoLoader.setDecoderPath(t==null?void 0:t.dracoPath),this.dracoGltfLoader.setDRACOLoader(this.dracoLoader),this.options.prefix&&this.dracoGltfLoader.setPath(this.options.prefix)),this.dracoGltfLoader;if(e==="gltf")return this.gltfLoader||(this.gltfLoader=new Re.GLTFLoader(this.loadingManager),this.options.prefix&&this.gltfLoader.setPath(this.options.prefix)),this.gltfLoader;if(e==="lottie")return this.lottieLoader||(this.lottieLoader=new Mt.LottieLoader(this.loadingManager),this.options.prefix&&this.lottieLoader.setPath(this.options.prefix)),this.lottieLoader;if(e==="gzipJson")return this.gzipJsonLoader||(this.gzipJsonLoader=new _s(this.loadingManager),this.options.prefix&&this.gzipJsonLoader.setPath(this.options.prefix)),this.gzipJsonLoader;if(e==="json")return this.jsonLoader||(this.jsonLoader=new v.FileLoader(this.loadingManager),this.jsonLoader.setResponseType("json"),this.options.prefix&&this.jsonLoader.setPath(this.options.prefix)),this.jsonLoader;if(e==="exr")return this.exrLoader||(this.exrLoader=new At.EXRLoader(this.loadingManager),this.options.prefix&&this.exrLoader.setPath(this.options.prefix)),this.exrLoader}add(e,t){typeof e=="string"&&(e=[e]),e.forEach(s=>{const i=k({src:s},t);this.loadObj.push(i)})}getSrcByAsset(e,t=this.assets){let s;return t.forEach((i,r)=>{i===e&&(s=r)}),s}get textureAssets(){const e=new Map;return this.assets.forEach((t,s)=>{(t instanceof v.Texture||t instanceof v.DataTexture||t instanceof v.VideoTexture)&&e.set(s,t)}),e}loadAll(){return te(this,null,function*(){const e=this.loadObj.filter(t=>!this.delLoadArr.includes(t.src));return yield Promise.all(e.map(t=>this.load(t.src,t)))})}load(e,t){return te(this,null,function*(){var n,a;const s=(n=t==null?void 0:t.type)!=null?n:this.getAssetType(e);if(!s)return;const i=(t==null?void 0:t.cache)!==!1,r=we.makePromiseCreator();if(i){if(this.assets.has(e))return this.assets.get(e);this.assets.set(e,r.promise)}const o=this.getLoader(s,t);try{const c=yield o.loadAsync(e);if(this.assets.set(e,c),r.resolve(c),s==="images"||s==="media"||s==="exr"||s==="lottie"){(t==null?void 0:t.colorCorrection)!==!1&&xe.colorCorrection({texture:c});const f=(a=t==null?void 0:t.anisotropy)!=null?a:this.options.anisotropy;c.anisotropy=f}return c}catch(c){r.reject(`Failed to load ${e}`);return}})}getUnusedAssets(){const{scene:e}=this.options;if(!e)return[...this.delLoadArr];const t=new Set,s=this.textureAssets;e.traverse(r=>{const o=r;o.material&&(Array.isArray(o.material)?o.material:[o.material]).forEach(a=>{[a.map,a.emissiveMap,a.normalMap,a.roughnessMap,a.metalnessMap,a.aoMap].forEach(c=>{if(c){const f=this.getSrcByAsset(c,s);f&&t.add(f)}})})});const i=new Set(this.textureAssets.keys());return t.forEach(r=>{i.delete(r)}),[...i,...this.delLoadArr]}dispose(){var e;this.assets.clear(),(e=this.dracoLoader)==null||e.dispose(),this.event.removeAllListeners(),this.delLoadArr.length=0,this.loadObj.length=0}}const vs={prefix:""};class Cs extends J{get loader(){return this.controller}constructor(e){super(),this.options=e}addLoader(e,t){const{loaderParams:s}=this.options,i=new ys(ee(k({},s),{scene:e}));return this.addController(i,t)}removePage(e){super.removePage(e,t=>{t.dispose()})}}function Xe(h){let e=!1,t=[];return function(...s){t=s,e||(e=!0,requestAnimationFrame(()=>{e=!1,h(...t)}))}}class Os{constructor(e){var t;this.enabled=!0,this.pickFunctionsMap=new Map,this.pickNodeFunctionsMap=new Map,this.pickFunctionsMapIndex=-1,this.pickNodeFunctionsMapIndex=-1,this.activeObjects=new Set,this.activeObject=null,this.prevActiveObjects=new Set,this.objCallbackMap=new Map,this.pickListener={move:!1,down:!1},this.pencil=e,this.domElement=((t=e.options.controls)==null?void 0:t.domElement)||e.options.container}addPickListener(e){const t=new Set(["move","enter","leave"]),s=new Set(["down","downOutside","click"]),i=r=>{var C;if(!this.enabled)return;r.preventDefault();const o=e==="move"?t:s,n=[];if(this.pickFunctionsMap.forEach(m=>{o.has(m.type)&&n.push(ee(k({},m),{objArr:m.objArr instanceof Function?m.objArr():m.objArr}))}),n.length===0)return;this.activeObjects.clear(),this.objCallbackMap.clear(),this.activeObject=null;const a=this.objCallbackMap;for(const m of n)for(const u of m.objArr){if(!u.object3d||!u.visibleWithAncestors)continue;a.has(u)||a.set(u,new Map);const g=a.get(u);g.has(m.type)||g.set(m.type,[]),g.get(m.type).push(m.cb)}if(a.size===0)return;const c=[...a.keys()].map(m=>m.object3d);console.time(`Pick:listener:${e}:pick`);const f=(C=this.pencil.pick(r,c,!0))==null?void 0:C.intersects;if(console.timeEnd(`Pick:listener:${e}:pick`),!f||f.length===0)e==="down"?this.handleDownOutside(r):e==="move"&&this.handleLeaveEvents(r);else{const m=f[0];this.processIntersection(m,r,e)}const p=this.prevActiveObjects;this.prevActiveObjects=this.activeObjects,this.activeObjects=p,this.activeObjects.clear()};this.domElement.addEventListener(`pointer${e}`,Xe(i),{passive:!1})}processIntersection(e,t,s){const i=this.objCallbackMap,r=e.index||-1;let o=e.object;for(;o;){const n=this.pencil.lead.objMap.get(o);n&&n.visible&&(this.activeObject||(this.activeObject=n),i.has(n)&&this.activeObjects.add(n)),o=o.parent}s==="move"?this.handleLeaveEvents(t):s==="down"&&this.handleDownOutside(t),this.processObjectHierarchy(t,s,r)}processObjectHierarchy(e,t,s){const i=this.objCallbackMap;let r=!1;const o=()=>{r=!0};for(const n of this.activeObjects){if(r)break;const a=i.get(n);if(a)if(t==="move"){const c=a.get("enter");if(c&&!this.prevActiveObjects.has(n))for(const p of c)p({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s});const f=a.get("move");if(f)for(const p of f)p({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s})}else{const c=a.get("down");if(c)for(const p of c)p({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s});const f=a.get("click");if(f){const p=C=>{C.preventDefault();const m=5;if(!r&&Math.abs(C.clientX-e.clientX)<=m&&Math.abs(C.clientY-e.clientY)<=m)for(const u of f)u({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s});this.domElement.removeEventListener("pointerup",p)};this.domElement.addEventListener("pointerup",p)}}}}handleLeaveEvents(e){this.objCallbackMap.forEach((s,i)=>{const r=s.get("leave");if(r&&this.prevActiveObjects.has(i)&&!this.activeObjects.has(i))for(const o of r)o({baseObject:i,mouseEvent:e})})}handleDownOutside(e){this.objCallbackMap.forEach((s,i)=>{const r=s.get("downOutside");if(r&&!this.activeObjects.has(i))for(const o of r)o({baseObject:i,mouseEvent:e})})}handlePick(e,t,s){let i=t;i==="mousemove"?i="move":i==="mouseenter"?i="enter":i==="mouseleave"&&(i="leave"),this.pickFunctionsMapIndex+=1;const r=this.pickFunctionsMapIndex;return this.pickFunctionsMap.set(r,{objArr:e,type:i,cb:s}),this.pickListener.move||Array.from(this.pickFunctionsMap.values()).some(n=>["move","enter","leave"].includes(n.type))&&(this.pickListener.move=!0,this.addPickListener("move")),this.pickListener.down||Array.from(this.pickFunctionsMap.values()).some(n=>["down","downOutside","click"].includes(n.type))&&(this.pickListener.down=!0,this.addPickListener("down")),r}removePick(e){this.pickFunctionsMap.delete(e)}handlePickNode(e,t,s){if(t==="downOutside")return console.warn("handlePickNode:err:不支持 downOutside"),-1;this.pickNodeFunctionsMapIndex+=1;const i=this.pickNodeFunctionsMapIndex,r=e instanceof Function?e():e,o=[];for(const n of r){const a=n;a.element.style.pointerEvents="auto";const c=p=>{this.enabled&&(p.preventDefault(),s({baseObject:a,mouseEvent:p}))},f=`pointer${t}`;a.element.addEventListener(f,Xe(c),!1),o.push({arr:a,type:f,listener:c})}return this.pickNodeFunctionsMap.set(i,o),i}removePickNode(e){const t=this.pickNodeFunctionsMap.get(e);if(t){for(const s of t)s.arr.element.style.pointerEvents="none",s.arr.element.removeEventListener(s.type,s.listener,!1);this.pickNodeFunctionsMap.delete(e)}}dispose(){this.pickFunctionsMap.clear(),this.pickNodeFunctionsMap.clear(),this.activeObjects.clear(),this.prevActiveObjects.clear(),this.objCallbackMap.clear()}}class Es extends Os{constructor(e,t){super(e),this.objMap=new Map,this.objects=new Map,this.objectsPm=new Map,this.objectWrapChindIdMap=new Map,this.objectNamesToFactories=new Map,this.mList=t.mList,this.scene=this.createBaseObject(t.scene||new v.Scene,{key:"@Scene",name:"场景",mList:!1}),this.group=this.createBaseObject(new v.Group,{key:"@Group",name:"物体组",target:this.scene,mList:!1}),this.prefabGroup=this.createBaseObject(new v.Group,{key:"@PrefabGroup",name:"预制组",target:this.scene,mList:!1})}get objectsPromise(){return this.objectsPm.values()}createBaseObject(e,t={}){const s=k({mList:!0},t),i=new U.BaseObject;if(i.object3d=e,i.pencil=this.pencil,i.lead=this,i.mList=this.mList,s.key)i.key=s.key;else if(s.target){const r=s.target.key,o=this.objectWrapChindIdMap.get(s.target)?this.objectWrapChindIdMap.get(s.target)+1:0;this.objectWrapChindIdMap.set(s.target,o),i.key=`${r}__c__${o}`}return s.name&&(e.name=s.name),s.target&&s.target.object3d.add(i.object3d),this.objects.set(i.key,i),this.objMap.set(i.object3d,i),this.pencil.options.mList&&s.mList&&(this.mList.proxyBaseObject(i),this.mList.addBaseObjectMap(i)),e.children&&e.children.forEach(r=>{this.createBaseObject(r,{target:i,mList:s.mList})}),i}init(e){return Object.keys(e).forEach(t=>{const s=class{create(r={}){return new e[t](r)}};this.objectNamesToFactories.set(t,s)}),this}getObject(e,t){e.includes("#")&&console.warn("getObject:err:不支持 #",e);const{key:s}=t||{},i=`${e}${s?`#${s}`:""}`;return this.objects.get(i)}getAllObject(e,t){e.includes("#")&&console.warn("getAllObject:err:不支持 #",e);const{key:s}=t||{},i=`${e}${s?`#${s}`:""}`,r=[];return this.objects.forEach((o,n)=>{(n.startsWith(s?i:`${i}#`)||n===i)&&r.push(o)}),r}draw(e,t,s){return te(this,null,function*(){var r,o,n,a;const i=this.objectNamesToFactories.get(e);if(i){t||(t={}),t.target===void 0&&(t.target=s);const c=t.target,f=(r=t.onTop)!=null?r:0,p=(o=t.prefab)!=null?o:!1,C=(n=t.create)!=null?n:!0,m=new i().create(t);let u;return c===null?u=null:typeof c=="string"?u=this.objects.get(c):(a=c==null?void 0:c.objectType)!=null&&a.startsWith("BaseObject")||c?u=c:p?u=this.prefabGroup:u=this.group,C===!1?m.create=()=>{}:C!==!0&&(m.create=()=>{C(m)}),m.pencil=this.pencil,m.lead=this,m.mList=this.mList,m.prefab=p,m.objectType=`BaseObject#${e}`,m.objectOptions=t,this.setBaseObjectKey(m,t.key?`$t:#${t.key}`:"$t:",u==null?void 0:u.key),this.objectsPm.set(m,this.addBaseObject(m,u,f)),yield this.objectsPm.get(m),this.objectsPm.delete(m),m}throw new Error(`Unrecognized:${e}`)})}setBaseObjectKey(e,t,s){const i=e.objectType,[,r]=i.split("#");let o=t.replace("$t:",r);if(s){const[,n]=s.split("#");o=o.replace("$p:",n)}return this.objects.has(o)&&(o.includes("#")?o+=`-${we.generateUUID()}`:o+=`#${we.generateUUID()}`),e.key=o,this.objects.set(o,e),o}updateBaseObjectKey(e,t){var o;let s;for(const[n,a]of this.objects.entries())if(a===e){s=n;break}const i=(o=e.parent)==null?void 0:o.key,r=this.setBaseObjectKey(e,t,i);return s&&this.objects.delete(s),this.pencil.event.emit("lead.updateKey",{baseObject:e,key:r,oldKey:s}),e.children.forEach((n,a)=>{n.key.includes("__c__")&&this.updateBaseObjectKey(n,`${r}__c__${a}`)}),r}addBaseObject(e,t,s){return te(this,null,function*(){if(yield e.create(),e.object3d){const i=e.object3d;i.material&&Array.isArray(i.material)&&(i.material=i.material.slice()),this.pencil.options.mList&&(this.mList.proxyBaseObject(e),this.mList.addBaseObjectMap(e)),s&&e.setTop(s),t!==null&&t.object3d.add(e.object3d),this.objMap.set(e.object3d,e),i.children.forEach(r=>{this.objMap.get(r)||this.createBaseObject(r,{target:e})})}e.render(),this.pencil.event.emit("lead.draw",{baseObject:e})})}erase(...e){this.handleErase(!0,...e)}eraseWithoutMaterial(...e){this.handleErase(!1,...e)}handleErase(e,...t){[...t].forEach(s=>{const i=[];if(typeof s=="string"){const[r,o]=s.split("#");i.push(...this.getAllObject(r,{key:o}))}else i.push(s);i.forEach(r=>{r.disposeMaterialIfNotUsed=e,r.dispose()})}),this.pencil.event.emit("lead.erase")}update(e,t){this.objects.forEach(s=>{s.update(e,t)})}setSize(e,t){this.objects.forEach(s=>{s.resize(e,t)})}eraseAll(){this.group&&(this.objects.forEach(e=>{e.key.startsWith("Node")&&this.erase(e)}),this.erase(this.group))}dispose(){super.dispose(),this.scene.erase(),this.objects.forEach(e=>{e.erase()}),this.objects.clear(),this.objectsPm.clear(),this.objMap.clear(),this.objectWrapChindIdMap.clear(),this.objectNamesToFactories.clear()}}class Ts extends J{get lead(){return this.controller}constructor(e){super(),this.options=e}addLead(e,t,s){const{pencil:i}=this.options,r=new Es(i,{scene:e,mList:t});return this.addController(r,s)}removePage(e){super.removePage(e,t=>{t.dispose()})}setPageActive(e){super.setPageActive(e,(t,s)=>{t.enabled=s})}setSize(e,t){this.controllerMap.forEach((s,i)=>{i.setSize(e,t)})}}class bs{constructor(e){this.materials=new Map,this.fixBaseObjects=new Map,this.materialBaseObjectMap=new Map,this.pencil=e}add(e,t){this.materials.set(e,t);const s={object3d:new Proxy({material:t},{set:(i,r,o)=>{var n;if(r==="material"&&!((n=this.pencil.composerController)!=null&&n.bloomComposerRenderIng)){const a=i.material;return i.material=o,this.materials.set(e,o),this.disposeMaterial(a),this.syncChangeMaterial(a,o),!0}return i[r]=o,!0}})};this.fixBaseObjects.set(e,s),this.pencil.event.emit("mList.add",{key:e,material:t,baseObject:s})}get(e){const t=this.materials.get(e);return t||console.warn(`Material with key "${e}" not found.`),t}getByName(e){for(const[t,s]of this.materials.entries())if(s.name===e)return s;console.warn(`Material with name "${e}" not found.`)}getKey(e){for(const[t,s]of this.materials.entries())if(s===e)return t}getKeyByName(e){for(const[t,s]of this.materials.entries())if(s.name===e)return t;console.warn(`Material key with name "${e}" not found.`)}addMultiple(e,t){for(const[s,i]of Object.entries(t)){const r=`${e}#${s}`;i&&this.add(r,i)}}getMultiple(e){const t={},s=`${e}#`;let i=!1;for(const[r,o]of this.materials.entries())if(r.startsWith(s)){const n=r.substring(s.length);t[n]=o,i=!0}return i?t:null}copy(e,t,s={}){const i=this.get(e);if(!i)return console.warn(`Material with key "${e}" not found.`),null;const r=i.clone();return s.name&&(r.name=s.name),this.add(t,r),r}copyMultiple(e,t){const s={},i=`${e}#`;for(const[r,o]of this.materials.entries())if(r.startsWith(i)){const n=r.substring(i.length),a=o.clone();s[n]=a;const c=`${t}#${n}`;this.add(c,a)}return s}disposeMaterial(e){if(!e)return;const t=new U.ResourceTracker;t.track(Array.isArray(e)?e:[e]),t.dispose()}remove(e){const t=this.materials.get(e);t&&this.disposeMaterial(t),this.materials.delete(e),this.fixBaseObjects.delete(e),this.pencil.event.emit("mList.remove",{key:e,material:t})}removeByMaterial(e){[...this.materials.entries()].some(([t,s])=>s===e?(this.remove(t),!0):!1)}proxyBaseObject(e){const t=e.object3d;if(!t.material)return;const s=o=>{if(o.hasOwnProperty("__isProxy"))return o;const n=new Proxy(o,{set:(a,c,f)=>{if(typeof c=="string"&&!isNaN(Number(c))){const p=Number(c);if(p>=0&&p<a.length){const C=a[p];return this.rmBaseObjectMap(e,C),a[p]=f,f&&this.addBaseObjectMap(e),!0}}return a[c]=f,!0}});return Object.defineProperty(n,"__isProxy",{value:!0,enumerable:!1}),n};e.materialList&&(e.materialList=new Proxy(e.materialList,{set:(o,n,a)=>{if(typeof n=="string"){const c=o[n];return this.rmBaseObjectMap(e,c),o[n]=a,a&&this.addBaseObjectMap(e),!0}return o[n]=a,!0},get:(o,n)=>{if(typeof n=="string"&&o[n]){const a=o[n];if(Array.isArray(a)){const c=s(a);return c!==a&&(o[n]=c),c}return a}return o[n]},deleteProperty:(o,n)=>{if(typeof n=="string"&&o[n]){const a=o[n];this.rmBaseObjectMap(e,a)}return delete o[n],!0}}));const i=t.material,r="_enhancedMaterial";t[r]=i,Object.defineProperty(t,"material",{get:()=>{var n;const o=t[r];if(!((n=this.pencil.composerController)!=null&&n.bloomComposerRenderIng)&&Array.isArray(o)){const a=s(o);return a!==o&&(t[r]=a),a}return o},set:o=>{var n;if((n=this.pencil.composerController)!=null&&n.bloomComposerRenderIng)t[r]=o;else{if(e.materialList&&Object.values(e.materialList).includes(o)){t[r]=o;return}this.rmBaseObjectMap(e),t[r]=o,this.addBaseObjectMap(e)}},enumerable:!0,configurable:!0})}material2array(e){return Array.isArray(e)?e:[e]}addBaseObjectMap(e){const t=e.object3d;t.material&&([...Object.values(e.materialList),t.material].forEach(s=>{s&&this.material2array(s).forEach(r=>{const o=this.materialBaseObjectMap.get(r);o?o.add(e):this.materialBaseObjectMap.set(r,new Set([e]))})}),this.pencil.event.emit("mList.addBaseObjectMap"))}rmBaseObjectMap(e,t,s=!0){const i=t&&this.material2array(t);this.materialBaseObjectMap.forEach((r,o)=>{i&&!i.includes(o)||r.has(e)&&(r.delete(e),r.size===0&&s&&(this.materialBaseObjectMap.delete(o),this.disposeMaterial(o)))}),this.pencil.event.emit("mList.rmBaseObjectMap")}getBaseObjectMap(e){return this.materialBaseObjectMap.get(e)||new Set}syncChangeMaterial(e,t){const s=this.materialBaseObjectMap.get(e);s&&s.forEach(i=>{const r=i.object3d,o=r.material;if(Array.isArray(o)){const n=o.indexOf(e);n!==-1&&(o[n]=t)}else o===e&&(r.material=t);i.materialList&&Object.keys(i.materialList).forEach(n=>{const a=i.materialList[n];if(Array.isArray(a)){const c=a.indexOf(e);c!==-1&&(a[c]=t)}else a===e&&(i.materialList[n]=t)})})}dispose(){const e=new U.ResourceTracker;e.track([...this.materials.values()]),e.dispose(),this.materials.clear(),this.fixBaseObjects.clear(),this.materialBaseObjectMap.clear()}}class ws extends J{get mList(){return this.controller}constructor(e){super(),this.options=e}addMList(e,t){const{pencil:s}=this.options,i=new bs(s);return this.addController(i,t)}removePage(e){super.removePage(e,t=>{t.dispose()})}}const ue=class ue{constructor(e){var r,o;this.raycaster=new v.Raycaster,this.maxBackufferArea=5760*5760,this.installPlugins=new Map,this._cameraPositon=new v.Vector3,this._cameraTarget=new v.Vector3,this.event=new _e.EventEmitter,this.timer=new gt.Timer,this.userData={},this.pageActiveIndex=0,this.pageCountIndex=0,this.userSetDprCache=1,this.viewPadding=[0,0,0,0],this.event.setMaxListeners(1/0),(o=(r=this.timer).connect)==null||o.call(r,document),this.options=vt(ue.options,e,{isMergeableObject:xe.isPlainObject}),this.userSetDprCache=this.options.renderer.devicePixelRatio;const{container:t,stats:s,transformControls:i}=this.options;if(this.init(),this.options.WebGPUTHREE||this.initComposer(),this.initCSSRenderer(),i&&this.initTransformControls(),s){const n=new Ct({horizontal:!1});n.dom.style.position="absolute",n.init(this.renderer),t.appendChild(n.dom),this.stats=n}this.initResizeObserver(),this.tweenUpdateRaf()}getPlugin(e){return this.installPlugins.get(e)}get renderer(){return this.rendererController.renderer}get maxAnisotropy(){return this.options.WebGPUTHREE?0:this.renderer.capabilities.getMaxAnisotropy()}get controls(){return this.controlsController.cameraControls}get cameraPositon(){return this.controls.getPosition(this._cameraPositon,!1)}get cameraTarget(){return this.controls.getTarget(this._cameraTarget,!1)}get camera(){return this.cameraController.camera}get scene(){return this.sceneController.scene}get loader(){return this.loaderController.loader}get lead(){return this.leadController.lead}get mList(){return this.mListController.mList}tweenUpdateRaf(){ye.update(),this.TweenRaf=requestAnimationFrame(this.tweenUpdateRaf.bind(this))}use(e,...t){this.installPlugins.has(e.pluginName)?console.log("plugin already installed"):typeof e.install=="function"&&(e.install(this,...t),this.installPlugins.set(e.pluginName,e))}addPage({sceneOptions:e,cameraOptions:t}={}){const s=this.pageCountIndex+1,i=this.cameraController.addPerspectiveCamera(t,s),r=this.sceneController.addScene(e,s);r.add(i),this.controlsController.addCameraControls(i,s),this.loaderController.addLoader(r,s);const o=this.mListController.addMList(null,s);return this.leadController.addLead(r,o,s),this.pageCountIndex=s,s}removePage(e){this.cameraController.removePage(e),this.sceneController.removePage(e),this.controlsController.removePage(e),this.loaderController.removePage(e),this.mListController.removePage(e),this.leadController.removePage(e),this.pageCountIndex===e&&(this.pageCountIndex-=1),this.pageActiveIndex===e&&(this.render(),this.showPage(0))}showPage(e){var s;if(e===this.pageActiveIndex)return;const t=this.scene;this.sceneController.setPageActive(e),t&&((s=this.cssRendererController)==null||s.render(t,this.camera)),this.cameraController.setPageActive(e),this.controlsController.setPageActive(e),this.loaderController.setPageActive(e),this.mListController.setPageActive(e),this.leadController.setPageActive(e),this.pageActiveIndex=e}init(){var _;const{container:e,WebGPUTHREE:t,helper:s,viewHelper:i,renderer:r,controls:o,loader:n}=this.options,{width:a,height:c}=this.getSize(),f=t?new Yt({width:a,height:c,renderer:t.WebGPURenderer,rendererParams:Vt}):new Bt({width:a,height:c,rendererParams:ee(k({},r),{antialias:!1})}),p=new Wt({width:a,height:c}),C=new Kt({}),m=new $t({controlsParams:{domElement:(_=o==null?void 0:o.domElement)!=null?_:f.renderer.domElement}}),u=new Cs({loaderParams:k({anisotropy:f.renderer.capabilities.getMaxAnisotropy()},n)}),g=new ws({pencil:this}),y=new Ts({pencil:this});this.sceneController=C,this.cameraController=p,this.controlsController=m,this.rendererController=f,this.loaderController=u,this.mListController=g,this.leadController=y;const l=this.addPage({sceneOptions:this.options.scene,cameraOptions:this.options.camera});if(this.showPage(l),s){const E=new Gt({container:e,sceneController:C,cameraController:p});E.add(C.scene),this.helperController=E,i&&E.addViewHelper()}e.appendChild(f.renderer.domElement)}initComposer(){const{bloom:e,bloomParams:t,ssao:s,ssaoParams:i,composer:r}=this.options,o=new fs({rendererController:this.rendererController,sceneController:this.sceneController,cameraController:this.cameraController,composerParams:r});this.composerController=o,e&&o.addBloomPass(k({},t)),s&&o.addSSAOPass(k({},i)),o.addOutputPass()}initCSSRenderer(){const{container:e,css2DRenderer:t,css3DRenderer:s,css2DRendererParams:i,css3DRendererParams:r}=this.options;if(t||s){const o=new ss(e);t&&o.addRenderer("css2d",i),s&&o.addRenderer("css3d",r),this.cssRendererController=o}}initTransformControls(){const e=new Xt({camera:this.camera,renderer:this.renderer,scene:this.scene});e.event.on("mouseDown",()=>{var t;(t=this.controlsController)==null||t.disable()}),e.event.on("mouseUp",()=>{var t;(t=this.controlsController)==null||t.enable()}),this.transformController=e}getSize(){const{container:e}=this.options;return{width:e.offsetWidth,height:e.offsetHeight}}initResizeObserver(){const{container:e}=this.options;if(this.resizeObserver)return;const t=new ResizeObserver(s=>{for(const i of s){const r=i.contentRect;this.handeleResize(r.width,r.height),this.setDevicePixelRatio(this.userSetDprCache)}});t.observe(e),this.resizeObserver=t}handeleResize(e,t,s=!0){const{rendererController:i,cameraController:r,composerController:o,cssRendererController:n,leadController:a}=this,c=this.renderer.getSize(new v.Vector2);c.x===e&&c.y===t||(r.setSize(e,t),i.setSize(e,t),o==null||o.setSize(e,t),n==null||n.setSize(e,t),a.setSize(e,t),this.installPlugins.forEach(f=>{var p;(p=f.setSize)==null||p.call(f,e,t)}),this.viewPadding.some(f=>f!==0)&&this.setViewPadding(...this.viewPadding),this.render(),s&&this.event.emit("resize",{width:e,height:t}))}setDevicePixelRatio(e){var n;this.userSetDprCache=e;const{width:t,height:s}=this.getSize();let i=Math.sqrt(this.maxBackufferArea/(t*s));i=(i*100|0)/100;const r=Math.min(e,i);r!==e&&console.warn("maxBackufferArea:",this.maxBackufferArea," the pixel ratio is set to",r);const o=this.renderer.getPixelRatio();r!==o&&(this.rendererController.setPixelRatio(r),(n=this.composerController)==null||n.setPixelRatio(r),this.viewPadding.some(a=>a!==0)&&this.setViewPadding(...this.viewPadding))}setViewPadding(e=0,t=0,s=0,i=0){const{width:r,height:o}=this.renderer.getSize(new v.Vector2),n={x:i,y:s,width:r-i-t,height:o-e-s};this.rendererController.setViewport(n),this.cameraController.setAspect(n.width/n.height),this.viewPadding=[e,t,s,i]}pick(e,t,s=!0){const{raycaster:i,options:r}=this,{container:o}=r,n=new v.Vector2,a=o.getBoundingClientRect();if(n.x=(e.clientX-a.left)/(a.right-a.left)*2-1,n.y=-((e.clientY-a.top)/(a.bottom-a.top))*2+1,this.camera&&this.scene){i.setFromCamera(n,this.camera);const c=i.intersectObjects(t||this.scene.children,s);if(c.length)return{object:c[0].object,index:c[0].index,intersects:c}}}render(){var s,i,r,o,n,a;if(!this.camera||!this.scene)return;this.timer.update(),ye.update();const e=this.timer.getDelta(),t=this.timer.getElapsed();this.controlsController.update(e,t),this.leadController.update(e,t),this.installPlugins.forEach(c=>{var f;(f=c.update)==null||f.call(c,e,t)}),(s=this.helperController)==null||s.update(e,this.controlsController,this.cameraTarget),(i=this.composerController)!=null&&i.active?this.composerController.render():(r=this.rendererController)==null||r.render(this.scene,this.camera),(o=this.helperController)==null||o.renderViewHelper(this.renderer),(n=this.cssRendererController)==null||n.render(this.scene,this.camera),(a=this.stats)==null||a.update(),this.event.emit("render",{delta:e,elapsed:t})}start(){window.cancelAnimationFrame(this.TweenRaf),this.renderer.setAnimationLoop(this.render.bind(this)),this.event.emit("start")}stop(){this.tweenUpdateRaf(),this.renderer.setAnimationLoop(null),this.event.emit("stop")}autoRotate(e){this.controlsController.autoRotateSpeed=e}showPipViewport(e){this.composerController.pipViewportState=e;let t=this.pipCameraControls;if(e){const{width:s,height:i}=this.getSize(),r=new DOMRect(e.x/s,(i-e.y-e.height)/i,e.width/s,e.height/i);if(t)t.enabled=!0,t.camera.position.copy(this.camera.position);else{const o=this.cameraController.cloneCamera(31);o.aspect=e.width/e.height,o.updateProjectionMatrix(),t=this.controlsController.addCameraControls(o,this.sceneController.activeIndex),t.addEventListener("update",()=>{this.controls.enabled=!1}),t.addEventListener("sleep",()=>{this.controls.enabled=!0}),this.pipCameraControls=t}t.interactiveArea=r}}dispose(){var e,t,s,i,r,o,n,a,c,f,p,C,m,u;this.stop(),this.timer.dispose(),ye.removeAll(),this.event.removeAllListeners(),(e=this.resizeObserver)==null||e.unobserve(this.options.container),this.installPlugins.forEach(g=>{var y;(y=g.dispose)==null||y.call(g)}),(t=this.controlsController)==null||t.dispose(),(s=this.transformController)==null||s.dispose(),(i=this.cssRendererController)==null||i.dispose(),(r=this.sceneController)==null||r.dispose(),(o=this.cameraController)==null||o.dispose(),(n=this.helperController)==null||n.dispose(),(a=this.composerController)==null||a.dispose(),(c=this.rendererController)==null||c.dispose(),(f=this.loaderController)==null||f.dispose(),(p=this.leadController)==null||p.dispose(),(C=this.mListController)==null||C.dispose(),this.cssRendererController=void 0,this.installPlugins.clear(),(m=this.stats)==null||m.dom.remove(),(u=this.renderer)==null||u.domElement.remove()}};ue.options={stats:U.IS_DEV,helper:U.IS_DEV,viewHelper:U.IS_DEV,controls:!0,transformControls:U.IS_DEV,renderer:Ht,composer:us,scene:qt,camera:at,bloom:!1,bloomParams:ms,ssao:!1,loader:vs,ssaoParams:ps,css2DRenderer:!1,css2DRendererParams:k({},Ge),css3DRenderer:!1,css3DRendererParams:k({},Ge),mList:!0};let me=ue;const xs=Q.ACTION;exports.BaseObject=U.BaseObject;exports.ResourceTracker=U.ResourceTracker;exports.Pencil=me;exports.cameraControlsAction=xs;exports.default=me;
98
+ `,defines:{}}),"baseTexture");return e.needsSwap=!0,e},ns=new v.MeshBasicMaterial({color:"black"}),as=new v.PointsMaterial({color:"black",sizeAttenuation:!1}),ls=new v.PointsMaterial({color:"black",sizeAttenuation:!0}),hs=new v.SpriteMaterial({color:"black",sizeAttenuation:!0}),cs=new v.SpriteMaterial({color:"black",sizeAttenuation:!1}),ds=new U.MeshLineMaterial({color:"black",sizeAttenuation:0,lineWidth:0}),ps={kernelRadius:8,minDistance:.005,maxDistance:.1},ms={threshold:0,strength:.4,radius:.1,bloomAlphaType:0},us={multisampling:4,premultiplieAlpha:!1};class fs{constructor(e){this.bloomComposerActive=!1,this.active=!0,this.bloomSelection=new Set,this.bloomLayer=new v.Layers,this.bloomMaterials={},this.bloomVisible={},this.bloomComposerRenderIng=!1,this.pipViewportState=null,this.options=e;const{rendererController:t,sceneController:s,cameraController:i,composerParams:r}=e,{renderer:o}=t;this.renderer=o;const{multisampling:n}=r,{maxSamples:a}=o.capabilities,c=o.getDrawingBufferSize(new v.Vector2),f=new v.WebGLRenderTarget(c.width,c.height,{samples:Math.min(n,a),type:v.HalfFloatType}),p=new Ae.EffectComposer(o,f),C=this.getSize();p.setSize(C.width,C.height);const m=new bt.RenderPass(s.scene,i.camera);p.addPass(m),this.scene=s.scene,this.camera=i.camera,this.finalComposer=p,this.renderPass=m,i.event.on("pageChange",u=>{this.changeCamera(u)}),s.event.on("pageChange",u=>{this.changeScene(u)})}changeCamera(e){this.renderPass.camera=e,this.camera=e}changeScene(e){this.renderPass.scene=e,this.ssaoPass&&(this.ssaoPass.scene=e),this.scene=e}addOutputPass(){const{premultiplieAlpha:e}=this.options.composerParams,t=new rs;this.outputPass=t,this.setPremultiplieAlpha(e),this.finalComposer.addPass(t)}setPremultiplieAlpha(e){this.outputPass&&(this.outputPass.uniforms.premultiplieAlpha.value=e?1:0)}addSSAOPass(e){const{scene:t,camera:s,renderer:i}=this,r=i.getSize(new v.Vector2),o=r.width,n=r.height,a=new wt.SSAOPass(t,s,o,n);a.kernelRadius=e.kernelRadius,a.minDistance=e.minDistance,a.maxDistance=e.maxDistance,this.ssaoPass=a,this.finalComposer.addPass(a)}addBloomPass(e){const{renderer:t}=this,{threshold:s,strength:i,radius:r,bloomAlphaType:o}=e,n=new Pt.UnrealBloomPass(new v.Vector2(window.innerWidth,window.innerHeight),i,r,s);this.bloomPass=n;const a=new Ae.EffectComposer(t);a.renderToScreen=!1,a.addPass(this.renderPass),a.addPass(n),this.bloomComposer=a;const c=os(a);c.uniforms.bloomAlphaType.value=o,this.bloomComposer=a,this.finalComposer.addPass(c),this.mixPass=c,this.bloomLayer.set(U.BLOOM_SCENE)}setBloomSelection(e,t){if(!this.bloomComposer){console.warn("err:pencil.options.bloom");return}e.traverse(s=>{const{object3d:i}=s;i&&(t?(this.bloomSelection.add(s),i.layers.enable(U.BLOOM_SCENE)):(this.bloomSelection.delete(s),i.layers.disable(U.BLOOM_SCENE)))}),this.bloomSelection.size===0?this.bloomComposerActive=!1:this.bloomComposerActive=!0}enable(){this.active||(this.active=!0)}disable(){this.active&&(this.active=!1)}setSize(e,t){var s;(s=this.bloomComposer)==null||s.setSize(e,t),this.finalComposer.setSize(e,t)}setPixelRatio(e){var t;(t=this.bloomComposer)==null||t.setPixelRatio(e),this.finalComposer.setPixelRatio(e)}darkenNonBloomed(){const e=[],t=[];this.scene.children.forEach(s=>{s.isTransformControls||s.isTransformControlsRoot||s.type==="RectAreaLightHelper"?e.push(s):t.push(s)}),t.forEach(s=>{s.traverse(i=>{var a;const r=i,o=i,n=i;(a=r.material)!=null&&a.isShadowMaterial?e.push(r):r.material&&this.bloomLayer.test(r.layers)===!1&&(this.bloomMaterials[r.uuid]=r.material,o.isSprite?o.material.sizeAttenuation?o.material=hs:o.material=cs:r.material instanceof U.MeshLineMaterial?r.material=ds:n.isPoints?n.material.sizeAttenuation?n.material=ls:n.material=as:r.material=ns)})}),e.forEach(s=>{this.bloomVisible[s.uuid]=s.visible,s.visible=!1})}restoreNonBloomed(){this.scene.traverse(e=>{const t=e;this.bloomMaterials[t.uuid]?(t.material=this.bloomMaterials[t.uuid],delete this.bloomMaterials[t.uuid]):this.bloomVisible[t.uuid]!==void 0&&(t.visible=this.bloomVisible[t.uuid],delete this.bloomVisible[t.uuid])})}finalComposerRender(){this.bloomComposerActive&&this.bloomComposer?(this.bloomComposerRenderIng=!0,this.mixPass.enabled=!0,this.darkenNonBloomed(),this.bloomComposer.render(),this.restoreNonBloomed(),this.bloomComposerRenderIng=!1):this.mixPass&&(this.mixPass.enabled=!1),this.finalComposer.render()}getSize(){return this.renderer.getSize(new v.Vector2)}render(){if(!this.active)return;const{cameraController:e,rendererController:t,sceneController:s}=this.options;if(this.finalComposerRender(),this.pipViewportState){e.setPageActive(31),e.setAspect(this.pipViewportState.width/this.pipViewportState.height),t.setViewport(ee(k({},this.pipViewportState),{scissor:!0,scissorTest:!0})),this.finalComposerRender(),e.setPageActive(s.activeIndex);const i=this.getSize();t.setViewport({x:0,y:0,width:i.width,height:i.height,scissor:!0,scissorTest:!1})}}dispose(){var e;this.bloomMaterials={},this.bloomVisible={},this.bloomSelection.clear(),this.finalComposer.dispose(),(e=this.bloomComposer)==null||e.dispose()}}class $e extends v.Loader{constructor(e){super(e),this.options={type:"image"}}setOptions(e){return this.options=e,this}load(e,t,s,i){let r,o;this.options.type==="image"?(o=document.createElement("img"),r=new v.Texture(o)):this.options.type==="video"?(o=document.createElement("video"),o.preload="auto",o.autoplay=!1,o.loop=!1,o.muted=!0,o.setAttribute("webkit-playsinline","webkit-playsinline"),o.setAttribute("playsinline",""),r=new v.VideoTexture(o)):r=new v.Texture;const n=new v.FileLoader(this.manager);return n.setResponseType("blob"),n.setRequestHeader(this.requestHeader),n.setPath(this.path),n.setWithCredentials(this.withCredentials),n.load(e,a=>{let c=a;const f=e.split(".").pop(),p=this.options.type==="image"?`image/${f||"png"}`:`video/${f||"mp4"}`;c=c.slice(0,a.size,p);const C=()=>{o.removeEventListener("load",m,!1),o.removeEventListener("error",u,!1)},m=()=>{C(),r.needsUpdate=!0,t&&t(r)},u=y=>{C(),i&&i(y),this.manager.itemError(e),this.manager.itemEnd(e)};o.addEventListener("load",m,!1),o.addEventListener("error",u,!1);const g=window.URL.createObjectURL(c);o.src=g},s,i),r}}class _s extends v.Loader{constructor(e){super(e)}load(e,t,s,i){const r=new v.FileLoader(this.manager);r.setResponseType("blob"),r.setRequestHeader(this.requestHeader),r.setPath(this.path),r.setWithCredentials(this.withCredentials),r.load(e,o=>{const n=o,a=new DecompressionStream("gzip"),c=n.stream().pipeThrough(a);new Response(c).json().then(p=>{t==null||t(p)}).catch(p=>{i==null||i(p)})},s,i)}}const gs={images:["png","jpg","jpeg","ico","webp","avif"],media:["mp4","webm","ogg"],gltf:["gltf","glb"],json:["json","geojson"],gzipJson:["json.gzip"],exr:["exr"],lottie:["lottie.json"]};class ys{constructor(e){this.loadObj=[],this.delLoadArr=[],this.assets=new Map,this.event=new _e.EventEmitter,this.options=k({simpleTexture4deleted:!1,prefix:""},e),this.loadingManager=new v.LoadingManager(()=>{},(t,s,i)=>{this.emit("progress",s,i)},t=>{console.warn(`Failed to load ${t}`)})}emit(e,...t){this.event.emit(e,...t)}on(e,t){this.event.on(e,t)}getAsset(e){const t=this.getAssetType(e);if(!t)return;const s=this.assets.get(e);if(!s){if((t==="images"||t==="media"||t==="exr")&&this.options.simpleTexture4deleted&&this.delLoadArr.includes(e))return new v.Texture;console.warn(`Asset ${e} not found`)}return s}getAssetType(e){var s;const t=(s=e.split(".").pop())==null?void 0:s.toLowerCase();if(t){if(e.endsWith("lottie.json"))return"lottie";if(e.endsWith("json.gzip"))return"gzipJson"}else return;for(const[i,r]of Object.entries(gs))if(r.includes(t))return i}getLoader(e,t){if(e==="images")return this.textureLoader||(this.textureLoader=new $e(this.loadingManager),this.options.prefix&&this.textureLoader.setPath(this.options.prefix)),this.textureLoader;if(e==="media")return this.videoTextureLoader||(this.videoTextureLoader=new $e(this.loadingManager),this.videoTextureLoader.setOptions({type:"video"}),this.options.prefix&&this.videoTextureLoader.setPath(this.options.prefix)),this.videoTextureLoader;if(e==="gltf"&&(t!=null&&t.dracoPath))return this.dracoGltfLoader||(this.dracoGltfLoader=new Re.GLTFLoader(this.loadingManager),this.dracoLoader=new St.DRACOLoader,this.dracoLoader.setDecoderPath(t==null?void 0:t.dracoPath),this.dracoGltfLoader.setDRACOLoader(this.dracoLoader),this.options.prefix&&this.dracoGltfLoader.setPath(this.options.prefix)),this.dracoGltfLoader;if(e==="gltf")return this.gltfLoader||(this.gltfLoader=new Re.GLTFLoader(this.loadingManager),this.options.prefix&&this.gltfLoader.setPath(this.options.prefix)),this.gltfLoader;if(e==="lottie")return this.lottieLoader||(this.lottieLoader=new Mt.LottieLoader(this.loadingManager),this.options.prefix&&this.lottieLoader.setPath(this.options.prefix)),this.lottieLoader;if(e==="gzipJson")return this.gzipJsonLoader||(this.gzipJsonLoader=new _s(this.loadingManager),this.options.prefix&&this.gzipJsonLoader.setPath(this.options.prefix)),this.gzipJsonLoader;if(e==="json")return this.jsonLoader||(this.jsonLoader=new v.FileLoader(this.loadingManager),this.jsonLoader.setResponseType("json"),this.options.prefix&&this.jsonLoader.setPath(this.options.prefix)),this.jsonLoader;if(e==="exr")return this.exrLoader||(this.exrLoader=new At.EXRLoader(this.loadingManager),this.options.prefix&&this.exrLoader.setPath(this.options.prefix)),this.exrLoader}add(e,t){typeof e=="string"&&(e=[e]),e.forEach(s=>{const i=k({src:s},t);this.loadObj.push(i)})}getSrcByAsset(e,t=this.assets){let s;return t.forEach((i,r)=>{i===e&&(s=r)}),s}get textureAssets(){const e=new Map;return this.assets.forEach((t,s)=>{(t instanceof v.Texture||t instanceof v.DataTexture||t instanceof v.VideoTexture)&&e.set(s,t)}),e}loadAll(){return te(this,null,function*(){const e=this.loadObj.filter(t=>!this.delLoadArr.includes(t.src));return yield Promise.all(e.map(t=>this.load(t.src,t)))})}load(e,t){return te(this,null,function*(){var n,a;const s=(n=t==null?void 0:t.type)!=null?n:this.getAssetType(e);if(!s)return;const i=(t==null?void 0:t.cache)!==!1,r=we.makePromiseCreator();if(i){if(this.assets.has(e))return this.assets.get(e);this.assets.set(e,r.promise)}const o=this.getLoader(s,t);try{const c=yield o.loadAsync(e);if(this.assets.set(e,c),r.resolve(c),s==="images"||s==="media"||s==="exr"||s==="lottie"){(t==null?void 0:t.colorCorrection)!==!1&&xe.colorCorrection({texture:c});const f=(a=t==null?void 0:t.anisotropy)!=null?a:this.options.anisotropy;c.anisotropy=f}return c}catch(c){r.reject(`Failed to load ${e}`);return}})}getUnusedAssets(){const{scene:e}=this.options;if(!e)return[...this.delLoadArr];const t=new Set,s=this.textureAssets;e.traverse(r=>{const o=r;o.material&&(Array.isArray(o.material)?o.material:[o.material]).forEach(a=>{[a.map,a.emissiveMap,a.normalMap,a.roughnessMap,a.metalnessMap,a.aoMap].forEach(c=>{if(c){const f=this.getSrcByAsset(c,s);f&&t.add(f)}})})});const i=new Set(this.textureAssets.keys());return t.forEach(r=>{i.delete(r)}),[...i,...this.delLoadArr]}dispose(){var e;this.assets.clear(),(e=this.dracoLoader)==null||e.dispose(),this.event.removeAllListeners(),this.delLoadArr.length=0,this.loadObj.length=0}}const vs={prefix:""};class Cs extends J{get loader(){return this.controller}constructor(e){super(),this.options=e}addLoader(e,t){const{loaderParams:s}=this.options,i=new ys(ee(k({},s),{scene:e}));return this.addController(i,t)}removePage(e){super.removePage(e,t=>{t.dispose()})}}function Xe(h){let e=!1,t=[];return function(...s){t=s,e||(e=!0,requestAnimationFrame(()=>{e=!1,h(...t)}))}}class Os{constructor(e){var t;this.enabled=!0,this.pickFunctionsMap=new Map,this.pickNodeFunctionsMap=new Map,this.pickFunctionsMapIndex=-1,this.pickNodeFunctionsMapIndex=-1,this.activeObjects=new Set,this.activeObject=null,this.prevActiveObjects=new Set,this.objCallbackMap=new Map,this.pickListener={move:!1,down:!1},this.pencil=e,this.domElement=((t=e.options.controls)==null?void 0:t.domElement)||e.options.container}addPickListener(e){const t=new Set(["move","enter","leave"]),s=new Set(["down","downOutside","click"]),i=r=>{var C;if(!this.enabled)return;r.preventDefault();const o=e==="move"?t:s,n=[];if(this.pickFunctionsMap.forEach(m=>{o.has(m.type)&&n.push(ee(k({},m),{objArr:m.objArr instanceof Function?m.objArr():m.objArr}))}),n.length===0)return;this.activeObjects.clear(),this.objCallbackMap.clear(),this.activeObject=null;const a=this.objCallbackMap;for(const m of n)for(const u of m.objArr){if(!u.object3d||!u.visibleWithAncestors)continue;a.has(u)||a.set(u,new Map);const g=a.get(u);g.has(m.type)||g.set(m.type,[]),g.get(m.type).push(m.cb)}if(a.size===0)return;const c=[...a.keys()].map(m=>m.object3d),f=(C=this.pencil.pick(r,c,!0))==null?void 0:C.intersects;if(!f||f.length===0)e==="down"?this.handleDownOutside(r):e==="move"&&this.handleLeaveEvents(r);else{const m=f[0];this.processIntersection(m,r,e)}const p=this.prevActiveObjects;this.prevActiveObjects=this.activeObjects,this.activeObjects=p,this.activeObjects.clear()};this.domElement.addEventListener(`pointer${e}`,Xe(i),{passive:!1})}processIntersection(e,t,s){const i=this.objCallbackMap,r=e.index||-1;let o=e.object;for(;o;){const n=this.pencil.lead.objMap.get(o);n&&n.visible&&(this.activeObject||(this.activeObject=n),i.has(n)&&this.activeObjects.add(n)),o=o.parent}s==="move"?this.handleLeaveEvents(t):s==="down"&&this.handleDownOutside(t),this.processObjectHierarchy(t,s,r)}processObjectHierarchy(e,t,s){const i=this.objCallbackMap;let r=!1;const o=()=>{r=!0};for(const n of this.activeObjects){if(r)break;const a=i.get(n);if(a)if(t==="move"){const c=a.get("enter");if(c&&!this.prevActiveObjects.has(n))for(const p of c)p({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s});const f=a.get("move");if(f)for(const p of f)p({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s})}else{const c=a.get("down");if(c)for(const p of c)p({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s});const f=a.get("click");if(f){const p=C=>{C.preventDefault();const m=5;if(!r&&Math.abs(C.clientX-e.clientX)<=m&&Math.abs(C.clientY-e.clientY)<=m)for(const u of f)u({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s});this.domElement.removeEventListener("pointerup",p)};this.domElement.addEventListener("pointerup",p)}}}}handleLeaveEvents(e){this.objCallbackMap.forEach((s,i)=>{const r=s.get("leave");if(r&&this.prevActiveObjects.has(i)&&!this.activeObjects.has(i))for(const o of r)o({baseObject:i,mouseEvent:e})})}handleDownOutside(e){this.objCallbackMap.forEach((s,i)=>{const r=s.get("downOutside");if(r&&!this.activeObjects.has(i))for(const o of r)o({baseObject:i,mouseEvent:e})})}handlePick(e,t,s){let i=t;i==="mousemove"?i="move":i==="mouseenter"?i="enter":i==="mouseleave"&&(i="leave"),this.pickFunctionsMapIndex+=1;const r=this.pickFunctionsMapIndex;return this.pickFunctionsMap.set(r,{objArr:e,type:i,cb:s}),this.pickListener.move||Array.from(this.pickFunctionsMap.values()).some(n=>["move","enter","leave"].includes(n.type))&&(this.pickListener.move=!0,this.addPickListener("move")),this.pickListener.down||Array.from(this.pickFunctionsMap.values()).some(n=>["down","downOutside","click"].includes(n.type))&&(this.pickListener.down=!0,this.addPickListener("down")),r}removePick(e){this.pickFunctionsMap.delete(e)}handlePickNode(e,t,s){if(t==="downOutside")return console.warn("handlePickNode:err:不支持 downOutside"),-1;this.pickNodeFunctionsMapIndex+=1;const i=this.pickNodeFunctionsMapIndex,r=e instanceof Function?e():e,o=[];for(const n of r){const a=n;a.element.style.pointerEvents="auto";const c=p=>{this.enabled&&(p.preventDefault(),s({baseObject:a,mouseEvent:p}))},f=`pointer${t}`;a.element.addEventListener(f,Xe(c),!1),o.push({arr:a,type:f,listener:c})}return this.pickNodeFunctionsMap.set(i,o),i}removePickNode(e){const t=this.pickNodeFunctionsMap.get(e);if(t){for(const s of t)s.arr.element.style.pointerEvents="none",s.arr.element.removeEventListener(s.type,s.listener,!1);this.pickNodeFunctionsMap.delete(e)}}dispose(){this.pickFunctionsMap.clear(),this.pickNodeFunctionsMap.clear(),this.activeObjects.clear(),this.prevActiveObjects.clear(),this.objCallbackMap.clear()}}class Es extends Os{constructor(e,t){super(e),this.objMap=new Map,this.objects=new Map,this.objectsPm=new Map,this.objectWrapChindIdMap=new Map,this.objectNamesToFactories=new Map,this.mList=t.mList,this.scene=this.createBaseObject(t.scene||new v.Scene,{key:"@Scene",name:"场景",mList:!1}),this.group=this.createBaseObject(new v.Group,{key:"@Group",name:"物体组",target:this.scene,mList:!1}),this.prefabGroup=this.createBaseObject(new v.Group,{key:"@PrefabGroup",name:"预制组",target:this.scene,mList:!1})}get objectsPromise(){return this.objectsPm.values()}createBaseObject(e,t={}){const s=k({mList:!0},t),i=new U.BaseObject;if(i.object3d=e,i.pencil=this.pencil,i.lead=this,i.mList=this.mList,s.key)i.key=s.key;else if(s.target){const r=s.target.key;if(r==="@Scene"&&e instanceof v.Camera)i.key="@Camera";else{const o=this.objectWrapChindIdMap.get(s.target)?this.objectWrapChindIdMap.get(s.target)+1:0;this.objectWrapChindIdMap.set(s.target,o),i.key=`${r}__c__${o}`}}return s.name&&(e.name=s.name),s.target&&s.target.object3d.add(i.object3d),this.objects.set(i.key,i),this.objMap.set(i.object3d,i),this.pencil.options.mList&&s.mList&&(this.mList.proxyBaseObject(i),this.mList.addBaseObjectMap(i)),e.children&&e.children.forEach(r=>{this.createBaseObject(r,{target:i,mList:s.mList})}),i}init(e){return Object.keys(e).forEach(t=>{const s=class{create(r={}){return new e[t](r)}};this.objectNamesToFactories.set(t,s)}),this}getObject(e,t){e.includes("#")&&console.warn("getObject:err:不支持 #",e);const{key:s}=t||{},i=`${e}${s?`#${s}`:""}`;return this.objects.get(i)}getAllObject(e,t){e.includes("#")&&console.warn("getAllObject:err:不支持 #",e);const{key:s}=t||{},i=`${e}${s?`#${s}`:""}`,r=[];return this.objects.forEach((o,n)=>{(n.startsWith(s?i:`${i}#`)||n===i)&&r.push(o)}),r}draw(e,t,s){return te(this,null,function*(){var r,o,n,a;const i=this.objectNamesToFactories.get(e);if(i){t||(t={}),t.target===void 0&&(t.target=s);const c=t.target,f=(r=t.onTop)!=null?r:0,p=(o=t.prefab)!=null?o:!1,C=(n=t.create)!=null?n:!0,m=new i().create(t);let u;return c===null?u=null:typeof c=="string"?u=this.objects.get(c):(a=c==null?void 0:c.objectType)!=null&&a.startsWith("BaseObject")||c?u=c:p?u=this.prefabGroup:u=this.group,C===!1?m.create=()=>{}:C!==!0&&(m.create=()=>{C(m)}),m.pencil=this.pencil,m.lead=this,m.mList=this.mList,m.prefab=p,m.objectType=`BaseObject#${e}`,m.objectOptions=t,this.setBaseObjectKey(m,t.key?`$t:#${t.key}`:"$t:",u==null?void 0:u.key),this.objectsPm.set(m,this.addBaseObject(m,u,f)),yield this.objectsPm.get(m),this.objectsPm.delete(m),m}throw new Error(`Unrecognized:${e}`)})}setBaseObjectKey(e,t,s){const i=e.objectType,[,r]=i.split("#");let o=t.replace("$t:",r);if(s){const[,n]=s.split("#");o=o.replace("$p:",n)}return this.objects.has(o)&&(o.includes("#")?o+=`-${we.generateUUID()}`:o+=`#${we.generateUUID()}`),e.key=o,this.objects.set(o,e),o}updateBaseObjectKey(e,t){var o;let s;for(const[n,a]of this.objects.entries())if(a===e){s=n;break}const i=(o=e.parent)==null?void 0:o.key,r=this.setBaseObjectKey(e,t,i);return s&&this.objects.delete(s),this.pencil.event.emit("lead.updateKey",{baseObject:e,key:r,oldKey:s}),e.children.forEach((n,a)=>{n.key.includes("__c__")&&this.updateBaseObjectKey(n,`${r}__c__${a}`)}),r}addBaseObject(e,t,s){return te(this,null,function*(){if(yield e.create(),e.object3d){const i=e.object3d;i.material&&Array.isArray(i.material)&&(i.material=i.material.slice()),this.pencil.options.mList&&(this.mList.proxyBaseObject(e),this.mList.addBaseObjectMap(e)),s&&e.setTop(s),t!==null&&t.object3d.add(e.object3d),this.objMap.set(e.object3d,e),i.children.forEach(r=>{this.objMap.get(r)||this.createBaseObject(r,{target:e})})}e.render(),this.pencil.event.emit("lead.draw",{baseObject:e})})}erase(...e){this.handleErase(!0,...e)}eraseWithoutMaterial(...e){this.handleErase(!1,...e)}handleErase(e,...t){[...t].forEach(s=>{const i=[];if(typeof s=="string"){const[r,o]=s.split("#");i.push(...this.getAllObject(r,{key:o}))}else i.push(s);i.forEach(r=>{r.disposeMaterialIfNotUsed=e,r.dispose()})}),this.pencil.event.emit("lead.erase")}update(e,t){this.objects.forEach(s=>{s.update(e,t)})}setSize(e,t){this.objects.forEach(s=>{s.resize(e,t)})}eraseAll(){this.group&&(this.objects.forEach(e=>{e.key.startsWith("Node")&&this.erase(e)}),this.erase(this.group))}dispose(){super.dispose(),this.scene.erase(),this.objects.forEach(e=>{e.erase()}),this.objects.clear(),this.objectsPm.clear(),this.objMap.clear(),this.objectWrapChindIdMap.clear(),this.objectNamesToFactories.clear()}}class Ts extends J{get lead(){return this.controller}constructor(e){super(),this.options=e}addLead(e,t,s){const{pencil:i}=this.options,r=new Es(i,{scene:e,mList:t});return this.addController(r,s)}removePage(e){super.removePage(e,t=>{t.dispose()})}setPageActive(e){super.setPageActive(e,(t,s)=>{t.enabled=s})}setSize(e,t){this.controllerMap.forEach((s,i)=>{i.setSize(e,t)})}}class bs{constructor(e){this.materials=new Map,this.fixBaseObjects=new Map,this.materialBaseObjectMap=new Map,this.pencil=e}add(e,t){this.materials.set(e,t);const s={object3d:new Proxy({material:t},{set:(i,r,o)=>{var n;if(r==="material"&&!((n=this.pencil.composerController)!=null&&n.bloomComposerRenderIng)){const a=i.material;return i.material=o,this.materials.set(e,o),this.disposeMaterial(a),this.syncChangeMaterial(a,o),!0}return i[r]=o,!0}})};this.fixBaseObjects.set(e,s),this.pencil.event.emit("mList.add",{key:e,material:t,baseObject:s})}get(e){const t=this.materials.get(e);return t||console.warn(`Material with key "${e}" not found.`),t}getByName(e){for(const[t,s]of this.materials.entries())if(s.name===e)return s;console.warn(`Material with name "${e}" not found.`)}getKey(e){for(const[t,s]of this.materials.entries())if(s===e)return t}getKeyByName(e){for(const[t,s]of this.materials.entries())if(s.name===e)return t;console.warn(`Material key with name "${e}" not found.`)}addMultiple(e,t){for(const[s,i]of Object.entries(t)){const r=`${e}#${s}`;i&&this.add(r,i)}}getMultiple(e){const t={},s=`${e}#`;let i=!1;for(const[r,o]of this.materials.entries())if(r.startsWith(s)){const n=r.substring(s.length);t[n]=o,i=!0}return i?t:null}copy(e,t,s={}){const i=this.get(e);if(!i)return console.warn(`Material with key "${e}" not found.`),null;const r=i.clone();return s.name&&(r.name=s.name),this.add(t,r),r}copyMultiple(e,t){const s={},i=`${e}#`;for(const[r,o]of this.materials.entries())if(r.startsWith(i)){const n=r.substring(i.length),a=o.clone();s[n]=a;const c=`${t}#${n}`;this.add(c,a)}return s}disposeMaterial(e){if(!e)return;const t=new U.ResourceTracker;t.track(Array.isArray(e)?e:[e]),t.dispose()}remove(e){const t=this.materials.get(e);t&&this.disposeMaterial(t),this.materials.delete(e),this.fixBaseObjects.delete(e),this.pencil.event.emit("mList.remove",{key:e,material:t})}removeByMaterial(e){[...this.materials.entries()].some(([t,s])=>s===e?(this.remove(t),!0):!1)}proxyBaseObject(e){const t=e.object3d;if(!t.material)return;const s=o=>{if(o.hasOwnProperty("__isProxy"))return o;const n=new Proxy(o,{set:(a,c,f)=>{if(typeof c=="string"&&!isNaN(Number(c))){const p=Number(c);if(p>=0&&p<a.length){const C=a[p];return this.rmBaseObjectMap(e,C),a[p]=f,f&&this.addBaseObjectMap(e),!0}}return a[c]=f,!0}});return Object.defineProperty(n,"__isProxy",{value:!0,enumerable:!1}),n};e.materialList&&(e.materialList=new Proxy(e.materialList,{set:(o,n,a)=>{if(typeof n=="string"){const c=o[n];return this.rmBaseObjectMap(e,c),o[n]=a,a&&this.addBaseObjectMap(e),!0}return o[n]=a,!0},get:(o,n)=>{if(typeof n=="string"&&o[n]){const a=o[n];if(Array.isArray(a)){const c=s(a);return c!==a&&(o[n]=c),c}return a}return o[n]},deleteProperty:(o,n)=>{if(typeof n=="string"&&o[n]){const a=o[n];this.rmBaseObjectMap(e,a)}return delete o[n],!0}}));const i=t.material,r="_enhancedMaterial";t[r]=i,Object.defineProperty(t,"material",{get:()=>{var n;const o=t[r];if(!((n=this.pencil.composerController)!=null&&n.bloomComposerRenderIng)&&Array.isArray(o)){const a=s(o);return a!==o&&(t[r]=a),a}return o},set:o=>{var n;if((n=this.pencil.composerController)!=null&&n.bloomComposerRenderIng)t[r]=o;else{if(e.materialList&&Object.values(e.materialList).includes(o)){t[r]=o;return}this.rmBaseObjectMap(e),t[r]=o,this.addBaseObjectMap(e)}},enumerable:!0,configurable:!0})}material2array(e){return Array.isArray(e)?e:[e]}addBaseObjectMap(e){const t=e.object3d;t.material&&([...Object.values(e.materialList),t.material].forEach(s=>{s&&this.material2array(s).forEach(r=>{const o=this.materialBaseObjectMap.get(r);o?o.add(e):this.materialBaseObjectMap.set(r,new Set([e]))})}),this.pencil.event.emit("mList.addBaseObjectMap"))}rmBaseObjectMap(e,t,s=!0){const i=t&&this.material2array(t);this.materialBaseObjectMap.forEach((r,o)=>{i&&!i.includes(o)||r.has(e)&&(r.delete(e),r.size===0&&s&&(this.materialBaseObjectMap.delete(o),this.disposeMaterial(o)))}),this.pencil.event.emit("mList.rmBaseObjectMap")}getBaseObjectMap(e){return this.materialBaseObjectMap.get(e)||new Set}syncChangeMaterial(e,t){const s=this.materialBaseObjectMap.get(e);s&&s.forEach(i=>{const r=i.object3d,o=r.material;if(Array.isArray(o)){const n=o.indexOf(e);n!==-1&&(o[n]=t)}else o===e&&(r.material=t);i.materialList&&Object.keys(i.materialList).forEach(n=>{const a=i.materialList[n];if(Array.isArray(a)){const c=a.indexOf(e);c!==-1&&(a[c]=t)}else a===e&&(i.materialList[n]=t)})})}dispose(){const e=new U.ResourceTracker;e.track([...this.materials.values()]),e.dispose(),this.materials.clear(),this.fixBaseObjects.clear(),this.materialBaseObjectMap.clear()}}class ws extends J{get mList(){return this.controller}constructor(e){super(),this.options=e}addMList(e,t){const{pencil:s}=this.options,i=new bs(s);return this.addController(i,t)}removePage(e){super.removePage(e,t=>{t.dispose()})}}const ue=class ue{constructor(e){var r,o;this.raycaster=new v.Raycaster,this.maxBackufferArea=5760*5760,this.installPlugins=new Map,this._cameraPositon=new v.Vector3,this._cameraTarget=new v.Vector3,this.event=new _e.EventEmitter,this.timer=new gt.Timer,this.userData={},this.pageActiveIndex=0,this.pageCountIndex=0,this.userSetDprCache=1,this.viewPadding=[0,0,0,0],this.event.setMaxListeners(1/0),(o=(r=this.timer).connect)==null||o.call(r,document),this.options=vt(ue.options,e,{isMergeableObject:xe.isPlainObject}),this.userSetDprCache=this.options.renderer.devicePixelRatio;const{container:t,stats:s,transformControls:i}=this.options;if(this.init(),this.options.WebGPUTHREE||this.initComposer(),this.initCSSRenderer(),i&&this.initTransformControls(),s){const n=new Ct({horizontal:!1});n.dom.style.position="absolute",n.init(this.renderer),t.appendChild(n.dom),this.stats=n}this.initResizeObserver(),this.tweenUpdateRaf()}getPlugin(e){return this.installPlugins.get(e)}get renderer(){return this.rendererController.renderer}get maxAnisotropy(){return this.options.WebGPUTHREE?0:this.renderer.capabilities.getMaxAnisotropy()}get controls(){return this.controlsController.cameraControls}get cameraPositon(){return this.controls.getPosition(this._cameraPositon,!1)}get cameraTarget(){return this.controls.getTarget(this._cameraTarget,!1)}get camera(){return this.cameraController.camera}get scene(){return this.sceneController.scene}get loader(){return this.loaderController.loader}get lead(){return this.leadController.lead}get mList(){return this.mListController.mList}tweenUpdateRaf(){ye.update(),this.TweenRaf=requestAnimationFrame(this.tweenUpdateRaf.bind(this))}use(e,...t){this.installPlugins.has(e.pluginName)?console.log("plugin already installed"):typeof e.install=="function"&&(e.install(this,...t),this.installPlugins.set(e.pluginName,e))}addPage({sceneOptions:e,cameraOptions:t}={}){const s=this.pageCountIndex+1,i=this.cameraController.addPerspectiveCamera(t,s),r=this.sceneController.addScene(e,s);r.add(i),this.controlsController.addCameraControls(i,s),this.loaderController.addLoader(r,s);const o=this.mListController.addMList(null,s);return this.leadController.addLead(r,o,s),this.pageCountIndex=s,s}removePage(e){this.cameraController.removePage(e),this.sceneController.removePage(e),this.controlsController.removePage(e),this.loaderController.removePage(e),this.mListController.removePage(e),this.leadController.removePage(e),this.pageCountIndex===e&&(this.pageCountIndex-=1),this.pageActiveIndex===e&&(this.render(),this.showPage(0))}showPage(e){var s;if(e===this.pageActiveIndex)return;const t=this.scene;this.sceneController.setPageActive(e),t&&((s=this.cssRendererController)==null||s.render(t,this.camera)),this.cameraController.setPageActive(e),this.controlsController.setPageActive(e),this.loaderController.setPageActive(e),this.mListController.setPageActive(e),this.leadController.setPageActive(e),this.pageActiveIndex=e}init(){var _;const{container:e,WebGPUTHREE:t,helper:s,viewHelper:i,renderer:r,controls:o,loader:n}=this.options,{width:a,height:c}=this.getSize(),f=t?new Yt({width:a,height:c,renderer:t.WebGPURenderer,rendererParams:Vt}):new Bt({width:a,height:c,rendererParams:ee(k({},r),{antialias:!1})}),p=new Wt({width:a,height:c}),C=new Kt({}),m=new $t({controlsParams:{domElement:(_=o==null?void 0:o.domElement)!=null?_:f.renderer.domElement}}),u=new Cs({loaderParams:k({anisotropy:f.renderer.capabilities.getMaxAnisotropy()},n)}),g=new ws({pencil:this}),y=new Ts({pencil:this});this.sceneController=C,this.cameraController=p,this.controlsController=m,this.rendererController=f,this.loaderController=u,this.mListController=g,this.leadController=y;const l=this.addPage({sceneOptions:this.options.scene,cameraOptions:this.options.camera});if(this.showPage(l),s){const E=new Gt({container:e,sceneController:C,cameraController:p});E.add(C.scene),this.helperController=E,i&&E.addViewHelper()}e.appendChild(f.renderer.domElement)}initComposer(){const{bloom:e,bloomParams:t,ssao:s,ssaoParams:i,composer:r}=this.options,o=new fs({rendererController:this.rendererController,sceneController:this.sceneController,cameraController:this.cameraController,composerParams:r});this.composerController=o,e&&o.addBloomPass(k({},t)),s&&o.addSSAOPass(k({},i)),o.addOutputPass()}initCSSRenderer(){const{container:e,css2DRenderer:t,css3DRenderer:s,css2DRendererParams:i,css3DRendererParams:r}=this.options;if(t||s){const o=new ss(e);t&&o.addRenderer("css2d",i),s&&o.addRenderer("css3d",r),this.cssRendererController=o}}initTransformControls(){const e=new Xt({camera:this.camera,renderer:this.renderer,scene:this.scene});e.event.on("mouseDown",()=>{var t;(t=this.controlsController)==null||t.disable()}),e.event.on("mouseUp",()=>{var t;(t=this.controlsController)==null||t.enable()}),this.transformController=e}getSize(){const{container:e}=this.options;return{width:e.offsetWidth,height:e.offsetHeight}}initResizeObserver(){const{container:e}=this.options;if(this.resizeObserver)return;const t=new ResizeObserver(s=>{for(const i of s){const r=i.contentRect;this.handeleResize(r.width,r.height),this.setDevicePixelRatio(this.userSetDprCache)}});t.observe(e),this.resizeObserver=t}handeleResize(e,t,s=!0){const{rendererController:i,cameraController:r,composerController:o,cssRendererController:n,leadController:a}=this,c=this.renderer.getSize(new v.Vector2);c.x===e&&c.y===t||(r.setSize(e,t),i.setSize(e,t),o==null||o.setSize(e,t),n==null||n.setSize(e,t),a.setSize(e,t),this.installPlugins.forEach(f=>{var p;(p=f.setSize)==null||p.call(f,e,t)}),this.viewPadding.some(f=>f!==0)&&this.setViewPadding(...this.viewPadding),this.render(),s&&this.event.emit("resize",{width:e,height:t}))}setDevicePixelRatio(e){var n;this.userSetDprCache=e;const{width:t,height:s}=this.getSize();let i=Math.sqrt(this.maxBackufferArea/(t*s));i=(i*100|0)/100;const r=Math.min(e,i);r!==e&&console.warn("maxBackufferArea:",this.maxBackufferArea," the pixel ratio is set to",r);const o=this.renderer.getPixelRatio();r!==o&&(this.rendererController.setPixelRatio(r),(n=this.composerController)==null||n.setPixelRatio(r),this.viewPadding.some(a=>a!==0)&&this.setViewPadding(...this.viewPadding))}setViewPadding(e=0,t=0,s=0,i=0){const{width:r,height:o}=this.renderer.getSize(new v.Vector2),n={x:i,y:s,width:r-i-t,height:o-e-s};this.rendererController.setViewport(n),this.cameraController.setAspect(n.width/n.height),this.viewPadding=[e,t,s,i]}pick(e,t,s=!0){const{raycaster:i,options:r}=this,{container:o}=r,n=new v.Vector2,a=o.getBoundingClientRect();if(n.x=(e.clientX-a.left)/(a.right-a.left)*2-1,n.y=-((e.clientY-a.top)/(a.bottom-a.top))*2+1,this.camera&&this.scene){i.setFromCamera(n,this.camera);const c=i.intersectObjects(t||this.scene.children,s);if(c.length)return{object:c[0].object,index:c[0].index,intersects:c}}}render(){var s,i,r,o,n,a;if(!this.camera||!this.scene)return;this.timer.update(),ye.update();const e=this.timer.getDelta(),t=this.timer.getElapsed();this.controlsController.update(e,t),this.leadController.update(e,t),this.installPlugins.forEach(c=>{var f;(f=c.update)==null||f.call(c,e,t)}),(s=this.helperController)==null||s.update(e,this.controlsController,this.cameraTarget),(i=this.composerController)!=null&&i.active?this.composerController.render():(r=this.rendererController)==null||r.render(this.scene,this.camera),(o=this.helperController)==null||o.renderViewHelper(this.renderer),(n=this.cssRendererController)==null||n.render(this.scene,this.camera),(a=this.stats)==null||a.update(),this.event.emit("render",{delta:e,elapsed:t})}start(){window.cancelAnimationFrame(this.TweenRaf),this.renderer.setAnimationLoop(this.render.bind(this)),this.event.emit("start")}stop(){this.tweenUpdateRaf(),this.renderer.setAnimationLoop(null),this.event.emit("stop")}autoRotate(e){this.controlsController.autoRotateSpeed=e}showPipViewport(e){this.composerController.pipViewportState=e;let t=this.pipCameraControls;if(e){const{width:s,height:i}=this.getSize(),r=new DOMRect(e.x/s,(i-e.y-e.height)/i,e.width/s,e.height/i);if(t)t.enabled=!0,t.camera.position.copy(this.camera.position);else{const o=this.cameraController.cloneCamera(31);o.aspect=e.width/e.height,o.updateProjectionMatrix(),t=this.controlsController.addCameraControls(o,this.sceneController.activeIndex),t.addEventListener("update",()=>{this.controls.enabled=!1}),t.addEventListener("sleep",()=>{this.controls.enabled=!0}),this.pipCameraControls=t}t.interactiveArea=r}}dispose(){var e,t,s,i,r,o,n,a,c,f,p,C,m,u;this.stop(),this.timer.dispose(),ye.removeAll(),this.event.removeAllListeners(),(e=this.resizeObserver)==null||e.unobserve(this.options.container),this.installPlugins.forEach(g=>{var y;(y=g.dispose)==null||y.call(g)}),(t=this.controlsController)==null||t.dispose(),(s=this.transformController)==null||s.dispose(),(i=this.cssRendererController)==null||i.dispose(),(r=this.sceneController)==null||r.dispose(),(o=this.cameraController)==null||o.dispose(),(n=this.helperController)==null||n.dispose(),(a=this.composerController)==null||a.dispose(),(c=this.rendererController)==null||c.dispose(),(f=this.loaderController)==null||f.dispose(),(p=this.leadController)==null||p.dispose(),(C=this.mListController)==null||C.dispose(),this.cssRendererController=void 0,this.installPlugins.clear(),(m=this.stats)==null||m.dom.remove(),(u=this.renderer)==null||u.domElement.remove()}};ue.options={stats:U.IS_DEV,helper:U.IS_DEV,viewHelper:U.IS_DEV,controls:!0,transformControls:U.IS_DEV,renderer:Ht,composer:us,scene:qt,camera:at,bloom:!1,bloomParams:ms,ssao:!1,loader:vs,ssaoParams:ps,css2DRenderer:!1,css2DRendererParams:k({},Ge),css3DRenderer:!1,css3DRendererParams:k({},Ge),mList:!0};let me=ue;const xs=Q.ACTION;exports.BaseObject=U.BaseObject;exports.ResourceTracker=U.ResourceTracker;exports.Pencil=me;exports.cameraControlsAction=xs;exports.default=me;
@@ -26,23 +26,23 @@ var se = (h, e, t) => new Promise((s, i) => {
26
26
  }, n = (a) => a.done ? s(a.value) : Promise.resolve(a.value).then(r, o);
27
27
  n((t = t.apply(h, e)).next());
28
28
  });
29
- import { WebGLRenderer as Ut, Vector3 as I, PerspectiveCamera as zt, Matrix4 as W, Scene as nt, AxesHelper as De, CameraHelper as kt, PointLightHelper as Ft, DirectionalLightHelper as Nt, SpotLightHelper as jt, HemisphereLightHelper as It, Box3 as at, Box3Helper as Ue, MathUtils as Ht, Vector2 as B, Vector4 as Bt, Quaternion as lt, Spherical as Vt, Sphere as Yt, Raycaster as ht, REVISION as Zt, Object3D as Wt, UniformsUtils as Kt, RawShaderMaterial as $t, ShaderMaterial as Gt, MeshBasicMaterial as Xt, PointsMaterial as ct, SpriteMaterial as dt, Layers as qt, WebGLRenderTarget as Qt, HalfFloatType as Jt, Loader as mt, Texture as ue, VideoTexture as pt, FileLoader as Ae, LoadingManager as es, DataTexture as ts, Group as ze } from "three";
30
- import { Timer as ss } from "three/examples/jsm/misc/Timer";
29
+ import { WebGLRenderer as Ut, Vector3 as I, PerspectiveCamera as zt, Matrix4 as W, Scene as nt, AxesHelper as De, CameraHelper as kt, PointLightHelper as Ft, DirectionalLightHelper as Nt, SpotLightHelper as jt, HemisphereLightHelper as It, Box3 as at, Box3Helper as Ue, MathUtils as Ht, Vector2 as B, Vector4 as Bt, Quaternion as lt, Spherical as Vt, Sphere as Yt, Raycaster as ht, REVISION as Zt, Object3D as Wt, UniformsUtils as Kt, RawShaderMaterial as $t, ShaderMaterial as Gt, MeshBasicMaterial as Xt, PointsMaterial as ct, SpriteMaterial as dt, Layers as qt, WebGLRenderTarget as Qt, HalfFloatType as Jt, Loader as mt, Texture as ue, VideoTexture as pt, FileLoader as Ae, LoadingManager as es, DataTexture as ts, Group as ze, Camera as ss } from "three";
30
+ import { Timer as is } from "three/examples/jsm/misc/Timer";
31
31
  import * as Ce from "@tweenjs/tween.js";
32
- import is from "deepmerge";
33
- import rs from "stats-gl";
34
- import { C as os, c as ns, i as as } from "./isPlainObject.module.js";
35
- import { R as Pe, M as ft, B as Oe, a as ls, I as he } from "./index.module2.js";
36
- import { RectAreaLightHelper as hs } from "three/examples/jsm/helpers/RectAreaLightHelper";
37
- import { ViewHelper as cs } from "three/examples/jsm/helpers/ViewHelper";
38
- import { TransformControls as ds } from "three/examples/jsm/controls/TransformControls";
32
+ import rs from "deepmerge";
33
+ import os from "stats-gl";
34
+ import { C as ns, c as as, i as ls } from "./isPlainObject.module.js";
35
+ import { R as Pe, M as ft, B as Oe, a as hs, I as he } from "./index.module2.js";
36
+ import { RectAreaLightHelper as cs } from "three/examples/jsm/helpers/RectAreaLightHelper";
37
+ import { ViewHelper as ds } from "three/examples/jsm/helpers/ViewHelper";
38
+ import { TransformControls as ms } from "three/examples/jsm/controls/TransformControls";
39
39
  import { EffectComposer as ke } from "three/examples/jsm/postprocessing/EffectComposer";
40
- import { RenderPass as ms } from "three/examples/jsm/postprocessing/RenderPass";
41
- import { SSAOPass as ps } from "three/examples/jsm/postprocessing/SSAOPass";
40
+ import { RenderPass as ps } from "three/examples/jsm/postprocessing/RenderPass";
41
+ import { SSAOPass as fs } from "three/examples/jsm/postprocessing/SSAOPass";
42
42
  import { FullScreenQuad as Fe } from "three/examples/jsm/postprocessing/Pass";
43
- import { OutputPass as fs } from "three/examples/jsm/postprocessing/OutputPass";
44
- import { ShaderPass as us } from "three/examples/jsm/postprocessing/ShaderPass";
45
- import { UnrealBloomPass as _s } from "three/examples/jsm/postprocessing/UnrealBloomPass";
43
+ import { OutputPass as us } from "three/examples/jsm/postprocessing/OutputPass";
44
+ import { ShaderPass as _s } from "three/examples/jsm/postprocessing/ShaderPass";
45
+ import { UnrealBloomPass as gs } from "three/examples/jsm/postprocessing/UnrealBloomPass";
46
46
  import "three/examples/jsm/renderers/CSS2DRenderer";
47
47
  import "three/examples/jsm/renderers/CSS3DRenderer";
48
48
  import "d3-geo";
@@ -54,10 +54,10 @@ import "three/examples/jsm/lines/LineSegmentsGeometry";
54
54
  import "three/examples/jsm/lines/LineMaterial";
55
55
  import "three-bvh-csg";
56
56
  import { GLTFLoader as Ne } from "three/examples/jsm/loaders/GLTFLoader";
57
- import { DRACOLoader as gs } from "three/examples/jsm/loaders/DRACOLoader";
58
- import { EXRLoader as ys } from "three/examples/jsm/loaders/EXRLoader";
59
- import { LottieLoader as vs } from "three/examples/jsm/loaders/LottieLoader";
60
- import { makePromiseCreator as Cs, generateUUID as je } from "esus-lite";
57
+ import { DRACOLoader as ys } from "three/examples/jsm/loaders/DRACOLoader";
58
+ import { EXRLoader as vs } from "three/examples/jsm/loaders/EXRLoader";
59
+ import { LottieLoader as Cs } from "three/examples/jsm/loaders/LottieLoader";
60
+ import { makePromiseCreator as Os, generateUUID as je } from "esus-lite";
61
61
  const M = {
62
62
  LEFT: 1,
63
63
  RIGHT: 2,
@@ -148,7 +148,7 @@ function Ee(h, e) {
148
148
  function Te(h, e) {
149
149
  return H(h) ? (console.warn(`${e} is not supported in OrthographicCamera`), !0) : !1;
150
150
  }
151
- class Os {
151
+ class Es {
152
152
  constructor() {
153
153
  this._listeners = {};
154
154
  }
@@ -212,9 +212,9 @@ class Os {
212
212
  }
213
213
  }
214
214
  }
215
- const de = 1 / 8, Es = /Mac/.test(navigator.platform);
215
+ const de = 1 / 8, Ts = /Mac/.test(navigator.platform);
216
216
  let T, Ve, me, we, D, b, L, G, ne, F, N, Z, Ye, Ze, z, ae, X, We, be, Ke, xe, Le, pe;
217
- class J extends Os {
217
+ class J extends Es {
218
218
  static install(e) {
219
219
  T = e.THREE, Ve = Object.freeze(new T.Vector3(0, 0, 0)), me = Object.freeze(new T.Vector3(0, 1, 0)), we = Object.freeze(new T.Vector3(0, 0, 1)), D = new T.Vector2(), b = new T.Vector3(), L = new T.Vector3(), G = new T.Vector3(), ne = new T.Vector3(), F = new T.Vector3(), N = new T.Vector3(), Z = new T.Vector3(), Ye = new T.Vector3(), Ze = new T.Vector3(), z = new T.Spherical(), ae = new T.Spherical(), X = new T.Box3(), We = new T.Box3(), be = new T.Sphere(), Ke = new T.Quaternion(), xe = new T.Quaternion(), Le = new T.Matrix4(), pe = new T.Raycaster();
220
220
  }
@@ -392,7 +392,7 @@ class J extends Os {
392
392
  const E = performance.now();
393
393
  c - E < 1e3 && this._getClientRect(this._elementRect), c = E;
394
394
  }
395
- const _ = Es ? -1 : -3, O = l.deltaMode === 1 || l.ctrlKey ? l.deltaY / _ : l.deltaY / (_ * 10), C = this.dollyToCursor ? (l.clientX - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0, w = this.dollyToCursor ? (l.clientY - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0;
395
+ const _ = Ts ? -1 : -3, O = l.deltaMode === 1 || l.ctrlKey ? l.deltaY / _ : l.deltaY / (_ * 10), C = this.dollyToCursor ? (l.clientX - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0, w = this.dollyToCursor ? (l.clientY - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0;
396
396
  switch (this.mouseButtons.wheel) {
397
397
  case d.ROTATE: {
398
398
  this._rotateInternal(l.deltaX, l.deltaY), this._isUserControllingRotate = !0;
@@ -1716,7 +1716,7 @@ Q && typeof Q.ownKeys == "function" ? fe = Q.ownKeys : Object.getOwnPropertySymb
1716
1716
  } : fe = function(e) {
1717
1717
  return Object.getOwnPropertyNames(e);
1718
1718
  };
1719
- function Ts(h) {
1719
+ function ws(h) {
1720
1720
  console && console.warn && console.warn(h);
1721
1721
  }
1722
1722
  var _t = Number.isNaN || function(e) {
@@ -1726,7 +1726,7 @@ function A() {
1726
1726
  A.init.call(this);
1727
1727
  }
1728
1728
  Se.exports = A;
1729
- Se.exports.once = Ls;
1729
+ Se.exports.once = Ps;
1730
1730
  A.EventEmitter = A;
1731
1731
  A.prototype._events = void 0;
1732
1732
  A.prototype._eventsCount = 0;
@@ -1796,7 +1796,7 @@ function yt(h, e, t, s) {
1796
1796
  else if (typeof o == "function" ? o = r[e] = s ? [t, o] : [o, t] : s ? o.unshift(t) : o.push(t), i = gt(h), i > 0 && o.length > i && !o.warned) {
1797
1797
  o.warned = !0;
1798
1798
  var n = new Error("Possible EventEmitter memory leak detected. " + o.length + " " + String(e) + " listeners added. Use emitter.setMaxListeners() to increase limit");
1799
- n.name = "MaxListenersExceededWarning", n.emitter = h, n.type = e, n.count = o.length, Ts(n);
1799
+ n.name = "MaxListenersExceededWarning", n.emitter = h, n.type = e, n.count = o.length, ws(n);
1800
1800
  }
1801
1801
  return h;
1802
1802
  }
@@ -1807,12 +1807,12 @@ A.prototype.on = A.prototype.addListener;
1807
1807
  A.prototype.prependListener = function(e, t) {
1808
1808
  return yt(this, e, t, !0);
1809
1809
  };
1810
- function ws() {
1810
+ function bs() {
1811
1811
  if (!this.fired)
1812
1812
  return this.target.removeListener(this.type, this.wrapFn), this.fired = !0, arguments.length === 0 ? this.listener.call(this.target) : this.listener.apply(this.target, arguments);
1813
1813
  }
1814
1814
  function vt(h, e, t) {
1815
- var s = { fired: !1, wrapFn: void 0, target: h, type: e, listener: t }, i = ws.bind(s);
1815
+ var s = { fired: !1, wrapFn: void 0, target: h, type: e, listener: t }, i = bs.bind(s);
1816
1816
  return i.listener = t, s.wrapFn = i, i;
1817
1817
  }
1818
1818
  A.prototype.once = function(e, t) {
@@ -1837,7 +1837,7 @@ A.prototype.removeListener = function(e, t) {
1837
1837
  }
1838
1838
  if (r < 0)
1839
1839
  return this;
1840
- r === 0 ? s.shift() : bs(s, r), s.length === 1 && (i[e] = s[0]), i.removeListener !== void 0 && this.emit("removeListener", e, n || t);
1840
+ r === 0 ? s.shift() : xs(s, r), s.length === 1 && (i[e] = s[0]), i.removeListener !== void 0 && this.emit("removeListener", e, n || t);
1841
1841
  }
1842
1842
  return this;
1843
1843
  };
@@ -1866,7 +1866,7 @@ function Ct(h, e, t) {
1866
1866
  if (s === void 0)
1867
1867
  return [];
1868
1868
  var i = s[e];
1869
- return i === void 0 ? [] : typeof i == "function" ? t ? [i.listener || i] : [i] : t ? xs(i) : Et(i, i.length);
1869
+ return i === void 0 ? [] : typeof i == "function" ? t ? [i.listener || i] : [i] : t ? Ls(i) : Et(i, i.length);
1870
1870
  }
1871
1871
  A.prototype.listeners = function(e) {
1872
1872
  return Ct(this, e, !0);
@@ -1897,17 +1897,17 @@ function Et(h, e) {
1897
1897
  t[s] = h[s];
1898
1898
  return t;
1899
1899
  }
1900
- function bs(h, e) {
1900
+ function xs(h, e) {
1901
1901
  for (; e + 1 < h.length; e++)
1902
1902
  h[e] = h[e + 1];
1903
1903
  h.pop();
1904
1904
  }
1905
- function xs(h) {
1905
+ function Ls(h) {
1906
1906
  for (var e = new Array(h.length), t = 0; t < e.length; ++t)
1907
1907
  e[t] = h[t].listener || h[t];
1908
1908
  return e;
1909
1909
  }
1910
- function Ls(h, e) {
1910
+ function Ps(h, e) {
1911
1911
  return new Promise(function(t, s) {
1912
1912
  function i(o) {
1913
1913
  h.removeListener(e, r), s(o);
@@ -1915,10 +1915,10 @@ function Ls(h, e) {
1915
1915
  function r() {
1916
1916
  typeof h.removeListener == "function" && h.removeListener("error", i), t([].slice.call(arguments));
1917
1917
  }
1918
- Tt(h, e, r, { once: !0 }), e !== "error" && Ps(h, i, { once: !0 });
1918
+ Tt(h, e, r, { once: !0 }), e !== "error" && As(h, i, { once: !0 });
1919
1919
  });
1920
1920
  }
1921
- function Ps(h, e, t) {
1921
+ function As(h, e, t) {
1922
1922
  typeof h.on == "function" && Tt(h, "error", e, t);
1923
1923
  }
1924
1924
  function Tt(h, e, t, s) {
@@ -1932,19 +1932,19 @@ function Tt(h, e, t, s) {
1932
1932
  throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof h);
1933
1933
  }
1934
1934
  var ye = Se.exports;
1935
- const As = {
1935
+ const Ss = {
1936
1936
  antialias: !1,
1937
1937
  devicePixelRatio: window.devicePixelRatio,
1938
1938
  powerPreference: "high-performance",
1939
1939
  toneMappingExposure: 1,
1940
1940
  alpha: !1,
1941
- outputColorSpace: os.sRGB,
1941
+ outputColorSpace: ns.sRGB,
1942
1942
  logarithmicDepthBuffer: !1,
1943
1943
  preserveDrawingBuffer: !1,
1944
1944
  stencil: !1,
1945
1945
  depth: !1
1946
1946
  };
1947
- class Ss {
1947
+ class Ms {
1948
1948
  constructor(e) {
1949
1949
  this.options = e;
1950
1950
  const { width: t, height: s, rendererParams: i } = e, {
@@ -1988,11 +1988,11 @@ class Ss {
1988
1988
  this.setSize(1, 1), (e = this.renderer) == null || e.clear(), (t = this.renderer) == null || t.dispose();
1989
1989
  }
1990
1990
  }
1991
- const Ms = {
1991
+ const Rs = {
1992
1992
  antialias: !0,
1993
1993
  devicePixelRatio: window.devicePixelRatio
1994
1994
  };
1995
- class Rs {
1995
+ class Ds {
1996
1996
  constructor(e) {
1997
1997
  this.options = e;
1998
1998
  const { width: t, height: s, rendererParams: i, renderer: r } = e, { devicePixelRatio: o, antialias: n } = i, a = new r({
@@ -2011,7 +2011,7 @@ class Rs {
2011
2011
  this.setSize(1, 1), (e = this.renderer) == null || e.clear(), (t = this.renderer) == null || t.dispose();
2012
2012
  }
2013
2013
  }
2014
- let Ds = class {
2014
+ let Us = class {
2015
2015
  constructor() {
2016
2016
  this.mask = 1;
2017
2017
  }
@@ -2042,7 +2042,7 @@ class ee {
2042
2042
  this.event = new ye.EventEmitter(), this.controllerMap = /* @__PURE__ */ new Map(), this.activeIndex = -1, this.activeControllerSet = /* @__PURE__ */ new Set();
2043
2043
  }
2044
2044
  addController(e, t) {
2045
- const s = new Ds();
2045
+ const s = new Us();
2046
2046
  return s.disableAll(), t !== void 0 && s.set(t), this.controllerMap.set(e, s), t === this.activeIndex && this.activeControllerSet.add(e), e;
2047
2047
  }
2048
2048
  removePage(e, t) {
@@ -2077,7 +2077,7 @@ const wt = {
2077
2077
  far: 1e3,
2078
2078
  up: new I(0, 1, 0)
2079
2079
  };
2080
- class Us extends ee {
2080
+ class zs extends ee {
2081
2081
  constructor(e) {
2082
2082
  super(), this.width = 0, this.height = 0, this.width = e.width, this.height = e.height;
2083
2083
  }
@@ -2157,10 +2157,10 @@ class Us extends ee {
2157
2157
  }
2158
2158
  }
2159
2159
  }
2160
- const zs = {
2160
+ const ks = {
2161
2161
  background: null
2162
2162
  };
2163
- class ks extends ee {
2163
+ class Fs extends ee {
2164
2164
  get scene() {
2165
2165
  return this.controller;
2166
2166
  }
@@ -2183,7 +2183,7 @@ class ks extends ee {
2183
2183
  });
2184
2184
  }
2185
2185
  }
2186
- class Fs {
2186
+ class Ns {
2187
2187
  constructor(e) {
2188
2188
  this.helpers = {}, this.options = e;
2189
2189
  }
@@ -2204,7 +2204,7 @@ class Fs {
2204
2204
  else if (e.isHemisphereLight)
2205
2205
  i = new It(e, 10);
2206
2206
  else if (e.isRectAreaLight)
2207
- i = new hs(e);
2207
+ i = new cs(e);
2208
2208
  else {
2209
2209
  const r = new at();
2210
2210
  if (r.setFromObject(e, !0), r.isEmpty() === !1) {
@@ -2218,7 +2218,7 @@ class Fs {
2218
2218
  }
2219
2219
  }
2220
2220
  addViewHelper() {
2221
- const { cameraController: e, container: t } = this.options, s = new cs(e.camera, t);
2221
+ const { cameraController: e, container: t } = this.options, s = new ds(e.camera, t);
2222
2222
  t.addEventListener("pointerdown", (i) => {
2223
2223
  i.preventDefault(), s.handleClick(i);
2224
2224
  }), this.viewHelper = s;
@@ -2268,7 +2268,7 @@ class Fs {
2268
2268
  this.helpers = {}, (e = this.viewHelper) == null || e.dispose();
2269
2269
  }
2270
2270
  }
2271
- class Ns extends ee {
2271
+ class js extends ee {
2272
2272
  constructor(e) {
2273
2273
  super(), this.autoRotateSpeed = 0, this.options = e;
2274
2274
  const t = {
@@ -2315,10 +2315,10 @@ class Ns extends ee {
2315
2315
  super.update(e, t), this.autoRotateSpeed && this.cameraControls && (this.cameraControls.azimuthAngle += this.autoRotateSpeed * e * Ht.DEG2RAD);
2316
2316
  }
2317
2317
  }
2318
- class js {
2318
+ class Is {
2319
2319
  constructor(e) {
2320
2320
  this.event = new ye.EventEmitter();
2321
- const { renderer: t, scene: s, camera: i } = e, r = new ds(
2321
+ const { renderer: t, scene: s, camera: i } = e, r = new ms(
2322
2322
  i,
2323
2323
  t.domElement
2324
2324
  );
@@ -2384,8 +2384,8 @@ class js {
2384
2384
  this.event.removeAllListeners(), (e = this.controls) == null || e.dispose();
2385
2385
  }
2386
2386
  }
2387
- const Xe = new I(), Is = new lt(), qe = new I(), j = new W(), Hs = new W();
2388
- class Bs {
2387
+ const Xe = new I(), Hs = new lt(), qe = new I(), j = new W(), Bs = new W();
2388
+ class Vs {
2389
2389
  /**
2390
2390
  * Constructs a new CSS3D renderer.
2391
2391
  *
@@ -2443,7 +2443,7 @@ class Bs {
2443
2443
  if (w.style.display = C === !0 ? "" : "none", C === !0) {
2444
2444
  y.onBeforeRender(t, l, _);
2445
2445
  let E;
2446
- y.isCSS3DSprite ? (j.copy(_.matrixWorldInverse), j.transpose(), y.rotation2D !== 0 && j.multiply(Hs.makeRotationZ(y.rotation2D)), y.matrixWorld.decompose(Xe, Is, qe), j.setPosition(Xe), j.scale(qe), j.elements[3] = 0, j.elements[7] = 0, j.elements[11] = 0, j.elements[15] = 1, E = p(j)) : E = p(y.matrixWorld);
2446
+ y.isCSS3DSprite ? (j.copy(_.matrixWorldInverse), j.transpose(), y.rotation2D !== 0 && j.multiply(Bs.makeRotationZ(y.rotation2D)), y.matrixWorld.decompose(Xe, Hs, qe), j.setPosition(Xe), j.scale(qe), j.elements[3] = 0, j.elements[7] = 0, j.elements[11] = 0, j.elements[15] = 1, E = p(j)) : E = p(y.matrixWorld);
2447
2447
  const x = n.objects.get(y);
2448
2448
  if (x === void 0 || x.style !== E) {
2449
2449
  w.style.transform = E;
@@ -2459,7 +2459,7 @@ class Bs {
2459
2459
  }
2460
2460
  }
2461
2461
  const q = new I(), Qe = new W(), Je = new W(), et = new I(), tt = new I();
2462
- class Vs {
2462
+ class Ys {
2463
2463
  /**
2464
2464
  * Constructs a new CSS2D renderer.
2465
2465
  *
@@ -2527,12 +2527,12 @@ class Vs {
2527
2527
  const st = {
2528
2528
  zIndex: "auto"
2529
2529
  };
2530
- class Ys {
2530
+ class Zs {
2531
2531
  constructor(e) {
2532
2532
  this.container = e;
2533
2533
  }
2534
2534
  addRenderer(e, t) {
2535
- const s = t.container || this.container, i = s.offsetWidth, r = s.offsetHeight, o = e === "css2d" ? new Vs() : new Bs();
2535
+ const s = t.container || this.container, i = s.offsetWidth, r = s.offsetHeight, o = e === "css2d" ? new Ys() : new Vs();
2536
2536
  o.domElement.style.position = "absolute", o.domElement.style.top = "0", o.domElement.style.pointerEvents = "none", o.domElement.style.zIndex = t.zIndex, o.setSize(i, r), s.appendChild(o.domElement), e === "css2d" ? this.css2Drenderer = o : e === "css3d" && (this.css3Drenderer = o);
2537
2537
  }
2538
2538
  setSize(e, t) {
@@ -2548,7 +2548,7 @@ class Ys {
2548
2548
  (e = this.css2Drenderer) == null || e.domElement.remove(), (t = this.css3Drenderer) == null || t.domElement.remove(), this.css2Drenderer = void 0, this.css3Drenderer = void 0;
2549
2549
  }
2550
2550
  }
2551
- const Zs = {
2551
+ const Ws = {
2552
2552
  name: "OutputShader",
2553
2553
  uniforms: {
2554
2554
  tDiffuse: { value: null },
@@ -2642,10 +2642,10 @@ const Zs = {
2642
2642
  }`
2643
2643
  )
2644
2644
  };
2645
- class Ws extends fs {
2645
+ class Ks extends us {
2646
2646
  constructor() {
2647
2647
  super();
2648
- const e = Zs;
2648
+ const e = Ws;
2649
2649
  this.uniforms = Kt.clone(e.uniforms), this.material = new $t({
2650
2650
  name: e.name,
2651
2651
  uniforms: this.uniforms,
@@ -2654,8 +2654,8 @@ class Ws extends fs {
2654
2654
  }), this.fsQuad ? this.fsQuad = new Fe(this.material) : this._fsQuad && (this._fsQuad = new Fe(this.material));
2655
2655
  }
2656
2656
  }
2657
- const Ks = (h) => {
2658
- const e = new us(
2657
+ const $s = (h) => {
2658
+ const e = new _s(
2659
2659
  new Gt({
2660
2660
  uniforms: {
2661
2661
  baseTexture: { value: null },
@@ -2690,36 +2690,36 @@ const Ks = (h) => {
2690
2690
  "baseTexture"
2691
2691
  );
2692
2692
  return e.needsSwap = !0, e;
2693
- }, $s = new Xt({ color: "black" }), Gs = new ct({
2693
+ }, Gs = new Xt({ color: "black" }), Xs = new ct({
2694
2694
  color: "black",
2695
2695
  sizeAttenuation: !1
2696
- }), Xs = new ct({
2696
+ }), qs = new ct({
2697
2697
  color: "black",
2698
2698
  sizeAttenuation: !0
2699
- }), qs = new dt({
2699
+ }), Qs = new dt({
2700
2700
  color: "black",
2701
2701
  sizeAttenuation: !0
2702
- }), Qs = new dt({
2702
+ }), Js = new dt({
2703
2703
  color: "black",
2704
2704
  sizeAttenuation: !1
2705
- }), Js = new ft({
2705
+ }), ei = new ft({
2706
2706
  color: "black",
2707
2707
  sizeAttenuation: 0,
2708
2708
  lineWidth: 0
2709
- }), ei = {
2709
+ }), ti = {
2710
2710
  kernelRadius: 8,
2711
2711
  minDistance: 5e-3,
2712
2712
  maxDistance: 0.1
2713
- }, ti = {
2713
+ }, si = {
2714
2714
  threshold: 0,
2715
2715
  strength: 0.4,
2716
2716
  radius: 0.1,
2717
2717
  bloomAlphaType: 0
2718
- }, si = {
2718
+ }, ii = {
2719
2719
  multisampling: 4,
2720
2720
  premultiplieAlpha: !1
2721
2721
  };
2722
- class ii {
2722
+ class ri {
2723
2723
  constructor(e) {
2724
2724
  this.bloomComposerActive = !1, this.active = !0, this.bloomSelection = /* @__PURE__ */ new Set(), this.bloomLayer = new qt(), this.bloomMaterials = {}, this.bloomVisible = {}, this.bloomComposerRenderIng = !1, this.pipViewportState = null, this.options = e;
2725
2725
  const {
@@ -2738,7 +2738,7 @@ class ii {
2738
2738
  }
2739
2739
  ), m = new ke(o, u), v = this.getSize();
2740
2740
  m.setSize(v.width, v.height);
2741
- const p = new ms(
2741
+ const p = new ps(
2742
2742
  s.scene,
2743
2743
  i.camera
2744
2744
  );
@@ -2755,18 +2755,18 @@ class ii {
2755
2755
  this.renderPass.scene = e, this.ssaoPass && (this.ssaoPass.scene = e), this.scene = e;
2756
2756
  }
2757
2757
  addOutputPass() {
2758
- const { premultiplieAlpha: e } = this.options.composerParams, t = new Ws();
2758
+ const { premultiplieAlpha: e } = this.options.composerParams, t = new Ks();
2759
2759
  this.outputPass = t, this.setPremultiplieAlpha(e), this.finalComposer.addPass(t);
2760
2760
  }
2761
2761
  setPremultiplieAlpha(e) {
2762
2762
  this.outputPass && (this.outputPass.uniforms.premultiplieAlpha.value = e ? 1 : 0);
2763
2763
  }
2764
2764
  addSSAOPass(e) {
2765
- const { scene: t, camera: s, renderer: i } = this, r = i.getSize(new B()), o = r.width, n = r.height, a = new ps(t, s, o, n);
2765
+ const { scene: t, camera: s, renderer: i } = this, r = i.getSize(new B()), o = r.width, n = r.height, a = new fs(t, s, o, n);
2766
2766
  a.kernelRadius = e.kernelRadius, a.minDistance = e.minDistance, a.maxDistance = e.maxDistance, this.ssaoPass = a, this.finalComposer.addPass(a);
2767
2767
  }
2768
2768
  addBloomPass(e) {
2769
- const { renderer: t } = this, { threshold: s, strength: i, radius: r, bloomAlphaType: o } = e, n = new _s(
2769
+ const { renderer: t } = this, { threshold: s, strength: i, radius: r, bloomAlphaType: o } = e, n = new gs(
2770
2770
  new B(window.innerWidth, window.innerHeight),
2771
2771
  i,
2772
2772
  r,
@@ -2775,7 +2775,7 @@ class ii {
2775
2775
  this.bloomPass = n;
2776
2776
  const a = new ke(t);
2777
2777
  a.renderToScreen = !1, a.addPass(this.renderPass), a.addPass(n), this.bloomComposer = a;
2778
- const c = Ks(a);
2778
+ const c = $s(a);
2779
2779
  c.uniforms.bloomAlphaType.value = o, this.bloomComposer = a, this.finalComposer.addPass(c), this.mixPass = c, this.bloomLayer.set(Oe);
2780
2780
  }
2781
2781
  setBloomSelection(e, t) {
@@ -2810,7 +2810,7 @@ class ii {
2810
2810
  s.traverse((i) => {
2811
2811
  var a;
2812
2812
  const r = i, o = i, n = i;
2813
- (a = r.material) != null && a.isShadowMaterial ? e.push(r) : r.material && this.bloomLayer.test(r.layers) === !1 && (this.bloomMaterials[r.uuid] = r.material, o.isSprite ? o.material.sizeAttenuation ? o.material = qs : o.material = Qs : r.material instanceof ft ? r.material = Js : n.isPoints ? n.material.sizeAttenuation ? n.material = Xs : n.material = Gs : r.material = $s);
2813
+ (a = r.material) != null && a.isShadowMaterial ? e.push(r) : r.material && this.bloomLayer.test(r.layers) === !1 && (this.bloomMaterials[r.uuid] = r.material, o.isSprite ? o.material.sizeAttenuation ? o.material = Qs : o.material = Js : r.material instanceof ft ? r.material = ei : n.isPoints ? n.material.sizeAttenuation ? n.material = qs : n.material = Xs : r.material = Gs);
2814
2814
  });
2815
2815
  }), e.forEach((s) => {
2816
2816
  this.bloomVisible[s.uuid] = s.visible, s.visible = !1;
@@ -2887,7 +2887,7 @@ class it extends mt {
2887
2887
  ), r;
2888
2888
  }
2889
2889
  }
2890
- class ri extends mt {
2890
+ class oi extends mt {
2891
2891
  constructor(e) {
2892
2892
  super(e);
2893
2893
  }
@@ -2908,7 +2908,7 @@ class ri extends mt {
2908
2908
  );
2909
2909
  }
2910
2910
  }
2911
- const oi = {
2911
+ const ni = {
2912
2912
  images: ["png", "jpg", "jpeg", "ico", "webp", "avif"],
2913
2913
  media: ["mp4", "webm", "ogg"],
2914
2914
  gltf: ["gltf", "glb"],
@@ -2917,7 +2917,7 @@ const oi = {
2917
2917
  exr: ["exr"],
2918
2918
  lottie: ["lottie.json"]
2919
2919
  };
2920
- class ni {
2920
+ class ai {
2921
2921
  constructor(e) {
2922
2922
  this.loadObj = [], this.delLoadArr = [], this.assets = /* @__PURE__ */ new Map(), this.event = new ye.EventEmitter(), this.options = U({
2923
2923
  simpleTexture4deleted: !1,
@@ -2960,7 +2960,7 @@ class ni {
2960
2960
  if (e.endsWith("json.gzip"))
2961
2961
  return "gzipJson";
2962
2962
  } else return;
2963
- for (const [i, r] of Object.entries(oi))
2963
+ for (const [i, r] of Object.entries(ni))
2964
2964
  if (r.includes(t))
2965
2965
  return i;
2966
2966
  }
@@ -2970,17 +2970,17 @@ class ni {
2970
2970
  if (e === "media")
2971
2971
  return this.videoTextureLoader || (this.videoTextureLoader = new it(this.loadingManager), this.videoTextureLoader.setOptions({ type: "video" }), this.options.prefix && this.videoTextureLoader.setPath(this.options.prefix)), this.videoTextureLoader;
2972
2972
  if (e === "gltf" && (t != null && t.dracoPath))
2973
- return this.dracoGltfLoader || (this.dracoGltfLoader = new Ne(this.loadingManager), this.dracoLoader = new gs(), this.dracoLoader.setDecoderPath(t == null ? void 0 : t.dracoPath), this.dracoGltfLoader.setDRACOLoader(this.dracoLoader), this.options.prefix && this.dracoGltfLoader.setPath(this.options.prefix)), this.dracoGltfLoader;
2973
+ return this.dracoGltfLoader || (this.dracoGltfLoader = new Ne(this.loadingManager), this.dracoLoader = new ys(), this.dracoLoader.setDecoderPath(t == null ? void 0 : t.dracoPath), this.dracoGltfLoader.setDRACOLoader(this.dracoLoader), this.options.prefix && this.dracoGltfLoader.setPath(this.options.prefix)), this.dracoGltfLoader;
2974
2974
  if (e === "gltf")
2975
2975
  return this.gltfLoader || (this.gltfLoader = new Ne(this.loadingManager), this.options.prefix && this.gltfLoader.setPath(this.options.prefix)), this.gltfLoader;
2976
2976
  if (e === "lottie")
2977
- return this.lottieLoader || (this.lottieLoader = new vs(this.loadingManager), this.options.prefix && this.lottieLoader.setPath(this.options.prefix)), this.lottieLoader;
2977
+ return this.lottieLoader || (this.lottieLoader = new Cs(this.loadingManager), this.options.prefix && this.lottieLoader.setPath(this.options.prefix)), this.lottieLoader;
2978
2978
  if (e === "gzipJson")
2979
- return this.gzipJsonLoader || (this.gzipJsonLoader = new ri(this.loadingManager), this.options.prefix && this.gzipJsonLoader.setPath(this.options.prefix)), this.gzipJsonLoader;
2979
+ return this.gzipJsonLoader || (this.gzipJsonLoader = new oi(this.loadingManager), this.options.prefix && this.gzipJsonLoader.setPath(this.options.prefix)), this.gzipJsonLoader;
2980
2980
  if (e === "json")
2981
2981
  return this.jsonLoader || (this.jsonLoader = new Ae(this.loadingManager), this.jsonLoader.setResponseType("json"), this.options.prefix && this.jsonLoader.setPath(this.options.prefix)), this.jsonLoader;
2982
2982
  if (e === "exr")
2983
- return this.exrLoader || (this.exrLoader = new ys(this.loadingManager), this.options.prefix && this.exrLoader.setPath(this.options.prefix)), this.exrLoader;
2983
+ return this.exrLoader || (this.exrLoader = new vs(this.loadingManager), this.options.prefix && this.exrLoader.setPath(this.options.prefix)), this.exrLoader;
2984
2984
  }
2985
2985
  add(e, t) {
2986
2986
  typeof e == "string" && (e = [e]), e.forEach((s) => {
@@ -3016,7 +3016,7 @@ class ni {
3016
3016
  const s = (n = t == null ? void 0 : t.type) != null ? n : this.getAssetType(e);
3017
3017
  if (!s)
3018
3018
  return;
3019
- const i = (t == null ? void 0 : t.cache) !== !1, r = Cs();
3019
+ const i = (t == null ? void 0 : t.cache) !== !1, r = Os();
3020
3020
  if (i) {
3021
3021
  if (this.assets.has(e))
3022
3022
  return this.assets.get(e);
@@ -3026,7 +3026,7 @@ class ni {
3026
3026
  try {
3027
3027
  const c = yield o.loadAsync(e);
3028
3028
  if (this.assets.set(e, c), r.resolve(c), s === "images" || s === "media" || s === "exr" || s === "lottie") {
3029
- (t == null ? void 0 : t.colorCorrection) !== !1 && ns({ texture: c });
3029
+ (t == null ? void 0 : t.colorCorrection) !== !1 && as({ texture: c });
3030
3030
  const u = (a = t == null ? void 0 : t.anisotropy) != null ? a : this.options.anisotropy;
3031
3031
  c.anisotropy = u;
3032
3032
  }
@@ -3070,10 +3070,10 @@ class ni {
3070
3070
  this.assets.clear(), (e = this.dracoLoader) == null || e.dispose(), this.event.removeAllListeners(), this.delLoadArr.length = 0, this.loadObj.length = 0;
3071
3071
  }
3072
3072
  }
3073
- const ai = {
3073
+ const li = {
3074
3074
  prefix: ""
3075
3075
  };
3076
- class li extends ee {
3076
+ class hi extends ee {
3077
3077
  get loader() {
3078
3078
  return this.controller;
3079
3079
  }
@@ -3081,7 +3081,7 @@ class li extends ee {
3081
3081
  super(), this.options = e;
3082
3082
  }
3083
3083
  addLoader(e, t) {
3084
- const { loaderParams: s } = this.options, i = new ni(te(U({}, s), {
3084
+ const { loaderParams: s } = this.options, i = new ai(te(U({}, s), {
3085
3085
  scene: e
3086
3086
  }));
3087
3087
  return this.addController(i, t);
@@ -3100,7 +3100,7 @@ function rt(h) {
3100
3100
  }));
3101
3101
  };
3102
3102
  }
3103
- class hi {
3103
+ class ci {
3104
3104
  constructor(e) {
3105
3105
  var t;
3106
3106
  this.enabled = !0, this.pickFunctionsMap = /* @__PURE__ */ new Map(), this.pickNodeFunctionsMap = /* @__PURE__ */ new Map(), this.pickFunctionsMapIndex = -1, this.pickNodeFunctionsMapIndex = -1, this.activeObjects = /* @__PURE__ */ new Set(), this.activeObject = null, this.prevActiveObjects = /* @__PURE__ */ new Set(), this.objCallbackMap = /* @__PURE__ */ new Map(), this.pickListener = {
@@ -3130,10 +3130,8 @@ class hi {
3130
3130
  g.has(p.type) || g.set(p.type, []), g.get(p.type).push(p.cb);
3131
3131
  }
3132
3132
  if (a.size === 0) return;
3133
- const c = [...a.keys()].map((p) => p.object3d);
3134
- console.time(`Pick:listener:${e}:pick`);
3135
- const u = (v = this.pencil.pick(r, c, !0)) == null ? void 0 : v.intersects;
3136
- if (console.timeEnd(`Pick:listener:${e}:pick`), !u || u.length === 0)
3133
+ const c = [...a.keys()].map((p) => p.object3d), u = (v = this.pencil.pick(r, c, !0)) == null ? void 0 : v.intersects;
3134
+ if (!u || u.length === 0)
3137
3135
  e === "down" ? this.handleDownOutside(r) : e === "move" && this.handleLeaveEvents(r);
3138
3136
  else {
3139
3137
  const p = u[0];
@@ -3289,7 +3287,7 @@ class hi {
3289
3287
  this.pickFunctionsMap.clear(), this.pickNodeFunctionsMap.clear(), this.activeObjects.clear(), this.prevActiveObjects.clear(), this.objCallbackMap.clear();
3290
3288
  }
3291
3289
  }
3292
- class ci extends hi {
3290
+ class di extends ci {
3293
3291
  constructor(e, t) {
3294
3292
  super(e), this.objMap = /* @__PURE__ */ new Map(), this.objects = /* @__PURE__ */ new Map(), this.objectsPm = /* @__PURE__ */ new Map(), this.objectWrapChindIdMap = /* @__PURE__ */ new Map(), this.objectNamesToFactories = /* @__PURE__ */ new Map(), this.mList = t.mList, this.scene = this.createBaseObject(t.scene || new nt(), {
3295
3293
  key: "@Scene",
@@ -3313,12 +3311,17 @@ class ci extends hi {
3313
3311
  createBaseObject(e, t = {}) {
3314
3312
  const s = U({
3315
3313
  mList: !0
3316
- }, t), i = new ls();
3314
+ }, t), i = new hs();
3317
3315
  if (i.object3d = e, i.pencil = this.pencil, i.lead = this, i.mList = this.mList, s.key)
3318
3316
  i.key = s.key;
3319
3317
  else if (s.target) {
3320
- const r = s.target.key, o = this.objectWrapChindIdMap.get(s.target) ? this.objectWrapChindIdMap.get(s.target) + 1 : 0;
3321
- this.objectWrapChindIdMap.set(s.target, o), i.key = `${r}__c__${o}`;
3318
+ const r = s.target.key;
3319
+ if (r === "@Scene" && e instanceof ss)
3320
+ i.key = "@Camera";
3321
+ else {
3322
+ const o = this.objectWrapChindIdMap.get(s.target) ? this.objectWrapChindIdMap.get(s.target) + 1 : 0;
3323
+ this.objectWrapChindIdMap.set(s.target, o), i.key = `${r}__c__${o}`;
3324
+ }
3322
3325
  }
3323
3326
  return s.name && (e.name = s.name), s.target && s.target.object3d.add(i.object3d), this.objects.set(i.key, i), this.objMap.set(i.object3d, i), this.pencil.options.mList && s.mList && (this.mList.proxyBaseObject(i), this.mList.addBaseObjectMap(i)), e.children && e.children.forEach((r) => {
3324
3327
  this.createBaseObject(r, {
@@ -3447,7 +3450,7 @@ class ci extends hi {
3447
3450
  }), this.objects.clear(), this.objectsPm.clear(), this.objMap.clear(), this.objectWrapChindIdMap.clear(), this.objectNamesToFactories.clear();
3448
3451
  }
3449
3452
  }
3450
- class di extends ee {
3453
+ class mi extends ee {
3451
3454
  get lead() {
3452
3455
  return this.controller;
3453
3456
  }
@@ -3455,7 +3458,7 @@ class di extends ee {
3455
3458
  super(), this.options = e;
3456
3459
  }
3457
3460
  addLead(e, t, s) {
3458
- const { pencil: i } = this.options, r = new ci(i, {
3461
+ const { pencil: i } = this.options, r = new di(i, {
3459
3462
  scene: e,
3460
3463
  mList: t
3461
3464
  });
@@ -3477,7 +3480,7 @@ class di extends ee {
3477
3480
  });
3478
3481
  }
3479
3482
  }
3480
- class mi {
3483
+ class pi {
3481
3484
  constructor(e) {
3482
3485
  this.materials = /* @__PURE__ */ new Map(), this.fixBaseObjects = /* @__PURE__ */ new Map(), this.materialBaseObjectMap = /* @__PURE__ */ new Map(), this.pencil = e;
3483
3486
  }
@@ -3696,7 +3699,7 @@ class mi {
3696
3699
  e.track([...this.materials.values()]), e.dispose(), this.materials.clear(), this.fixBaseObjects.clear(), this.materialBaseObjectMap.clear();
3697
3700
  }
3698
3701
  }
3699
- class pi extends ee {
3702
+ class fi extends ee {
3700
3703
  get mList() {
3701
3704
  return this.controller;
3702
3705
  }
@@ -3704,7 +3707,7 @@ class pi extends ee {
3704
3707
  super(), this.options = e;
3705
3708
  }
3706
3709
  addMList(e, t) {
3707
- const { pencil: s } = this.options, i = new mi(s);
3710
+ const { pencil: s } = this.options, i = new pi(s);
3708
3711
  return this.addController(i, t);
3709
3712
  }
3710
3713
  removePage(e) {
@@ -3716,8 +3719,8 @@ class pi extends ee {
3716
3719
  const _e = class _e {
3717
3720
  constructor(e) {
3718
3721
  var r, o;
3719
- this.raycaster = new ht(), this.maxBackufferArea = 5760 * 5760, this.installPlugins = /* @__PURE__ */ new Map(), this._cameraPositon = new I(), this._cameraTarget = new I(), this.event = new ye.EventEmitter(), this.timer = new ss(), this.userData = {}, this.pageActiveIndex = 0, this.pageCountIndex = 0, this.userSetDprCache = 1, this.viewPadding = [0, 0, 0, 0], this.event.setMaxListeners(1 / 0), (o = (r = this.timer).connect) == null || o.call(r, document), this.options = is(_e.options, e, {
3720
- isMergeableObject: as
3722
+ this.raycaster = new ht(), this.maxBackufferArea = 5760 * 5760, this.installPlugins = /* @__PURE__ */ new Map(), this._cameraPositon = new I(), this._cameraTarget = new I(), this.event = new ye.EventEmitter(), this.timer = new is(), this.userData = {}, this.pageActiveIndex = 0, this.pageCountIndex = 0, this.userSetDprCache = 1, this.viewPadding = [0, 0, 0, 0], this.event.setMaxListeners(1 / 0), (o = (r = this.timer).connect) == null || o.call(r, document), this.options = rs(_e.options, e, {
3723
+ isMergeableObject: ls
3721
3724
  }), this.userSetDprCache = this.options.renderer.devicePixelRatio;
3722
3725
  const {
3723
3726
  container: t,
@@ -3725,7 +3728,7 @@ const _e = class _e {
3725
3728
  transformControls: i
3726
3729
  } = this.options;
3727
3730
  if (this.init(), this.options.WebGPUTHREE || this.initComposer(), this.initCSSRenderer(), i && this.initTransformControls(), s) {
3728
- const n = new rs({
3731
+ const n = new os({
3729
3732
  horizontal: !1
3730
3733
  });
3731
3734
  n.dom.style.position = "absolute", n.init(this.renderer), t.appendChild(n.dom), this.stats = n;
@@ -3802,31 +3805,31 @@ const _e = class _e {
3802
3805
  renderer: r,
3803
3806
  controls: o,
3804
3807
  loader: n
3805
- } = this.options, { width: a, height: c } = this.getSize(), u = t ? new Rs({
3808
+ } = this.options, { width: a, height: c } = this.getSize(), u = t ? new Ds({
3806
3809
  width: a,
3807
3810
  height: c,
3808
3811
  renderer: t.WebGPURenderer,
3809
- rendererParams: Ms
3810
- }) : new Ss({
3812
+ rendererParams: Rs
3813
+ }) : new Ms({
3811
3814
  width: a,
3812
3815
  height: c,
3813
3816
  rendererParams: te(U({}, r), {
3814
3817
  antialias: !1
3815
3818
  })
3816
- }), m = new Us({
3819
+ }), m = new zs({
3817
3820
  width: a,
3818
3821
  height: c
3819
- }), v = new ks({}), p = new Ns({
3822
+ }), v = new Fs({}), p = new js({
3820
3823
  controlsParams: {
3821
3824
  domElement: (_ = o == null ? void 0 : o.domElement) != null ? _ : u.renderer.domElement
3822
3825
  }
3823
- }), f = new li({
3826
+ }), f = new hi({
3824
3827
  loaderParams: U({
3825
3828
  anisotropy: u.renderer.capabilities.getMaxAnisotropy()
3826
3829
  }, n)
3827
- }), g = new pi({
3830
+ }), g = new fi({
3828
3831
  pencil: this
3829
- }), y = new di({
3832
+ }), y = new mi({
3830
3833
  pencil: this
3831
3834
  });
3832
3835
  this.sceneController = v, this.cameraController = m, this.controlsController = p, this.rendererController = u, this.loaderController = f, this.mListController = g, this.leadController = y;
@@ -3835,7 +3838,7 @@ const _e = class _e {
3835
3838
  cameraOptions: this.options.camera
3836
3839
  });
3837
3840
  if (this.showPage(l), s) {
3838
- const O = new Fs({
3841
+ const O = new Ns({
3839
3842
  container: e,
3840
3843
  sceneController: v,
3841
3844
  cameraController: m
@@ -3851,7 +3854,7 @@ const _e = class _e {
3851
3854
  ssao: s,
3852
3855
  ssaoParams: i,
3853
3856
  composer: r
3854
- } = this.options, o = new ii({
3857
+ } = this.options, o = new ri({
3855
3858
  rendererController: this.rendererController,
3856
3859
  sceneController: this.sceneController,
3857
3860
  cameraController: this.cameraController,
@@ -3868,12 +3871,12 @@ const _e = class _e {
3868
3871
  css3DRendererParams: r
3869
3872
  } = this.options;
3870
3873
  if (t || s) {
3871
- const o = new Ys(e);
3874
+ const o = new Zs(e);
3872
3875
  t && o.addRenderer("css2d", i), s && o.addRenderer("css3d", r), this.cssRendererController = o;
3873
3876
  }
3874
3877
  }
3875
3878
  initTransformControls() {
3876
- const e = new js({
3879
+ const e = new Is({
3877
3880
  camera: this.camera,
3878
3881
  renderer: this.renderer,
3879
3882
  scene: this.scene
@@ -4022,15 +4025,15 @@ _e.options = {
4022
4025
  viewHelper: he,
4023
4026
  controls: !0,
4024
4027
  transformControls: he,
4025
- renderer: As,
4026
- composer: si,
4027
- scene: zs,
4028
+ renderer: Ss,
4029
+ composer: ii,
4030
+ scene: ks,
4028
4031
  camera: wt,
4029
4032
  bloom: !1,
4030
- bloomParams: ti,
4033
+ bloomParams: si,
4031
4034
  ssao: !1,
4032
- loader: ai,
4033
- ssaoParams: ei,
4035
+ loader: li,
4036
+ ssaoParams: ti,
4034
4037
  css2DRenderer: !1,
4035
4038
  css2DRendererParams: U({}, st),
4036
4039
  css3DRenderer: !1,
@@ -4038,11 +4041,11 @@ _e.options = {
4038
4041
  mList: !0
4039
4042
  };
4040
4043
  let ot = _e;
4041
- const $i = J.ACTION;
4044
+ const Gi = J.ACTION;
4042
4045
  export {
4043
- ls as BaseObject,
4046
+ hs as BaseObject,
4044
4047
  ot as Pencil,
4045
4048
  Pe as ResourceTracker,
4046
- $i as cameraControlsAction,
4049
+ Gi as cameraControlsAction,
4047
4050
  ot as default
4048
4051
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gl-draw",
3
- "version": "0.15.15",
3
+ "version": "0.15.16",
4
4
  "author": "gitplus <hstits@gmail.com>",
5
5
  "scripts": {
6
6
  "start": "bundler-dev",