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 +1 -1
- package/dist/index.module.js +130 -127
- package/package.json +1 -1
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;
|
package/dist/index.module.js
CHANGED
|
@@ -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
|
|
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
|
|
33
|
-
import
|
|
34
|
-
import { C as
|
|
35
|
-
import { R as Pe, M as ft, B as Oe, a as
|
|
36
|
-
import { RectAreaLightHelper as
|
|
37
|
-
import { ViewHelper as
|
|
38
|
-
import { TransformControls as
|
|
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
|
|
41
|
-
import { SSAOPass as
|
|
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
|
|
44
|
-
import { ShaderPass as
|
|
45
|
-
import { UnrealBloomPass as
|
|
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
|
|
58
|
-
import { EXRLoader as
|
|
59
|
-
import { LottieLoader as
|
|
60
|
-
import { makePromiseCreator as
|
|
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
|
|
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,
|
|
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
|
|
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 _ =
|
|
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
|
|
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 =
|
|
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,
|
|
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
|
|
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 =
|
|
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() :
|
|
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 ?
|
|
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
|
|
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
|
|
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
|
|
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" &&
|
|
1918
|
+
Tt(h, e, r, { once: !0 }), e !== "error" && As(h, i, { once: !0 });
|
|
1919
1919
|
});
|
|
1920
1920
|
}
|
|
1921
|
-
function
|
|
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
|
|
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:
|
|
1941
|
+
outputColorSpace: ns.sRGB,
|
|
1942
1942
|
logarithmicDepthBuffer: !1,
|
|
1943
1943
|
preserveDrawingBuffer: !1,
|
|
1944
1944
|
stencil: !1,
|
|
1945
1945
|
depth: !1
|
|
1946
1946
|
};
|
|
1947
|
-
class
|
|
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
|
|
1991
|
+
const Rs = {
|
|
1992
1992
|
antialias: !0,
|
|
1993
1993
|
devicePixelRatio: window.devicePixelRatio
|
|
1994
1994
|
};
|
|
1995
|
-
class
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2160
|
+
const ks = {
|
|
2161
2161
|
background: null
|
|
2162
2162
|
};
|
|
2163
|
-
class
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(),
|
|
2388
|
-
class
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2645
|
+
class Ks extends us {
|
|
2646
2646
|
constructor() {
|
|
2647
2647
|
super();
|
|
2648
|
-
const e =
|
|
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
|
|
2658
|
-
const e = new
|
|
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
|
-
},
|
|
2693
|
+
}, Gs = new Xt({ color: "black" }), Xs = new ct({
|
|
2694
2694
|
color: "black",
|
|
2695
2695
|
sizeAttenuation: !1
|
|
2696
|
-
}),
|
|
2696
|
+
}), qs = new ct({
|
|
2697
2697
|
color: "black",
|
|
2698
2698
|
sizeAttenuation: !0
|
|
2699
|
-
}),
|
|
2699
|
+
}), Qs = new dt({
|
|
2700
2700
|
color: "black",
|
|
2701
2701
|
sizeAttenuation: !0
|
|
2702
|
-
}),
|
|
2702
|
+
}), Js = new dt({
|
|
2703
2703
|
color: "black",
|
|
2704
2704
|
sizeAttenuation: !1
|
|
2705
|
-
}),
|
|
2705
|
+
}), ei = new ft({
|
|
2706
2706
|
color: "black",
|
|
2707
2707
|
sizeAttenuation: 0,
|
|
2708
2708
|
lineWidth: 0
|
|
2709
|
-
}),
|
|
2709
|
+
}), ti = {
|
|
2710
2710
|
kernelRadius: 8,
|
|
2711
2711
|
minDistance: 5e-3,
|
|
2712
2712
|
maxDistance: 0.1
|
|
2713
|
-
},
|
|
2713
|
+
}, si = {
|
|
2714
2714
|
threshold: 0,
|
|
2715
2715
|
strength: 0.4,
|
|
2716
2716
|
radius: 0.1,
|
|
2717
2717
|
bloomAlphaType: 0
|
|
2718
|
-
},
|
|
2718
|
+
}, ii = {
|
|
2719
2719
|
multisampling: 4,
|
|
2720
2720
|
premultiplieAlpha: !1
|
|
2721
2721
|
};
|
|
2722
|
-
class
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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 &&
|
|
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
|
|
3073
|
+
const li = {
|
|
3074
3074
|
prefix: ""
|
|
3075
3075
|
};
|
|
3076
|
-
class
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
3321
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
3720
|
-
isMergeableObject:
|
|
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
|
|
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
|
|
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:
|
|
3810
|
-
}) : new
|
|
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
|
|
3819
|
+
}), m = new zs({
|
|
3817
3820
|
width: a,
|
|
3818
3821
|
height: c
|
|
3819
|
-
}), v = new
|
|
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
|
|
3826
|
+
}), f = new hi({
|
|
3824
3827
|
loaderParams: U({
|
|
3825
3828
|
anisotropy: u.renderer.capabilities.getMaxAnisotropy()
|
|
3826
3829
|
}, n)
|
|
3827
|
-
}), g = new
|
|
3830
|
+
}), g = new fi({
|
|
3828
3831
|
pencil: this
|
|
3829
|
-
}), y = new
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
4026
|
-
composer:
|
|
4027
|
-
scene:
|
|
4028
|
+
renderer: Ss,
|
|
4029
|
+
composer: ii,
|
|
4030
|
+
scene: ks,
|
|
4028
4031
|
camera: wt,
|
|
4029
4032
|
bloom: !1,
|
|
4030
|
-
bloomParams:
|
|
4033
|
+
bloomParams: si,
|
|
4031
4034
|
ssao: !1,
|
|
4032
|
-
loader:
|
|
4033
|
-
ssaoParams:
|
|
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
|
|
4044
|
+
const Gi = J.ACTION;
|
|
4042
4045
|
export {
|
|
4043
|
-
|
|
4046
|
+
hs as BaseObject,
|
|
4044
4047
|
ot as Pencil,
|
|
4045
4048
|
Pe as ResourceTracker,
|
|
4046
|
-
|
|
4049
|
+
Gi as cameraControlsAction,
|
|
4047
4050
|
ot as default
|
|
4048
4051
|
};
|