gl-draw 0.16.0-beta.3 → 0.16.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -95,4 +95,4 @@
95
95
 
96
96
  #endif
97
97
 
98
- }`};class Zt extends xt.OutputPass{constructor(){super();const e=Yt;this.uniforms=v.UniformsUtils.clone(e.uniforms),this.material=new v.RawShaderMaterial({name:e.name,uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader}),this.fsQuad?this.fsQuad=new Me.FullScreenQuad(this.material):this._fsQuad&&(this._fsQuad=new Me.FullScreenQuad(this.material))}}const Wt=new v.MeshBasicMaterial({color:"black"}),qt=new v.PointsMaterial({color:"black",sizeAttenuation:!1}),Kt=new v.PointsMaterial({color:"black",sizeAttenuation:!0}),Gt=new v.SpriteMaterial({color:"black",sizeAttenuation:!0}),$t=new v.SpriteMaterial({color:"black",sizeAttenuation:!1}),Xt=new U.MeshLineMaterial({color:"black",sizeAttenuation:!1,lineWidth:0}),Ve=new v.Color(0),Qt={kernelRadius:8,minDistance:.005,maxDistance:.1},Jt={threshold:0,strength:.4,radius:.1,bloomAlphaType:0},es={multisampling:4,premultiplieAlpha:!1};class ts{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,d=o.getDrawingBufferSize(new v.Vector2),m=new v.WebGLRenderTarget(d.width,d.height,{samples:Math.min(n,a),type:v.HalfFloatType}),p=new Ae.EffectComposer(o,m),C=this.getSize();p.setSize(C.width,C.height);const u=new Ot.RenderPass(s.scene,i.camera);p.addPass(u),this.scene=s.scene,this.camera=i.camera,this.finalComposer=p,this.renderPass=u,i.event.on("pageChange",f=>{this.changeCamera(f)}),s.event.on("pageChange",f=>{this.changeScene(f)})}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 Zt;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 Et.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 Tt.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 d=Vt(a);d.uniforms.bloomAlphaType.value=o,this.bloomComposer=a,this.finalComposer.addPass(d),this.mixPass=d,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(i=>{i.isTransformControls||i.isTransformControlsRoot||i.type==="RectAreaLightHelper"?e.push(i):t.push(i)}),t.forEach(i=>{i.traverse(r=>{var d;const o=r,n=r,a=r;if((d=o.material)!=null&&d.isShadowMaterial)e.push(o);else if(o.material&&this.bloomLayer.test(o.layers)===!1){if(o.material.transparent===!0&&(o.material.opacity!==1||o.material.alphaMap)){e.push(o);return}this.bloomMaterials[o.uuid]=o.material,n.isSprite?n.material.sizeAttenuation?n.material=Gt:n.material=$t:o.material instanceof U.MeshLineMaterial?o.material=Xt:a.isPoints?a.material.sizeAttenuation?a.material=Kt:a.material=qt:o.material=Wt}})}),e.forEach(i=>{this.bloomVisible[i.uuid]=i.visible,i.visible=!1});const s=this.scene.background;s!=null&&s.isTexture&&(this.scene.userData._backgroundOriginal=s,this.scene.background=Ve)}restoreNonBloomed(){if(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])}),this.scene.background===Ve){const e=this.scene.userData._backgroundOriginal;e&&(this.scene.background=e,delete this.scene.userData._backgroundOriginal)}}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 ss extends J{constructor(e){super(),this.autoRotateSpeed=0,this.options=e;const t={Vector2:v.Vector2,Vector3:v.Vector3,Vector4:v.Vector4,Quaternion:v.Quaternion,Matrix4:v.Matrix4,Spherical:v.Spherical,Box3:v.Box3,Sphere:v.Sphere,Raycaster:v.Raycaster};Q.install({THREE:t})}get cameraControls(){return this.controller}addCameraControls(e,t){const{domElement:s}=this.options.controlsParams,i=new Q(e,s);return i.setLookAt(0,0,400,0,0,0,!1),this.addController(i,t)}setPageActive(e){super.setPageActive(e,(t,s)=>{t.enabled=s})}removePage(e){super.removePage(e,t=>{t.dispose()})}enable(){this.activeControllerSet.forEach(e=>{e.enabled=!0})}disable(){this.activeControllerSet.forEach(e=>{e.enabled=!1})}update(e,t){super.update(e,t),this.autoRotateSpeed&&this.cameraControls&&(this.cameraControls.azimuthAngle+=this.autoRotateSpeed*e*v.MathUtils.DEG2RAD)}}const Ye=new v.Vector3,is=new v.Quaternion,Ze=new v.Vector3,H=new v.Matrix4,rs=new v.Matrix4;class os{constructor(e={}){const t=this;let s,i,r,o;const n={camera:{style:""},objects:new WeakMap},a=e.element!==void 0?e.element:document.createElement("div");a.style.overflow="hidden",this.domElement=a;const d=document.createElement("div");d.style.transformOrigin="0 0",d.style.pointerEvents="none",a.appendChild(d);const m=document.createElement("div");m.style.transformStyle="preserve-3d",d.appendChild(m),this.getSize=function(){return{width:s,height:i}},this.render=function(y,l){const _=l.projectionMatrix.elements[5]*o;l.view&&l.view.enabled?(d.style.transform=`translate( ${-l.view.offsetX*(s/l.view.width)}px, ${-l.view.offsetY*(i/l.view.height)}px )`,d.style.transform+=`scale( ${l.view.fullWidth/l.view.width}, ${l.view.fullHeight/l.view.height} )`):d.style.transform="",y.matrixWorldAutoUpdate===!0&&y.updateMatrixWorld(),l.parent===null&&l.matrixWorldAutoUpdate===!0&&l.updateMatrixWorld();let E,O;l.isOrthographicCamera&&(E=-(l.right+l.left)/2,O=(l.top+l.bottom)/2);const x=l.view&&l.view.enabled?l.view.height/l.view.fullHeight:1,T=l.isOrthographicCamera?`scale( ${x} )scale(`+_+")translate("+p(E)+"px,"+p(O)+"px)"+C(l.matrixWorldInverse):`scale( ${x} )translateZ(`+_+"px)"+C(l.matrixWorldInverse),D=(l.isPerspectiveCamera?"perspective("+_+"px) ":"")+T+"translate("+r+"px,"+o+"px)";n.camera.style!==D&&(m.style.transform=D,n.camera.style=D),g(y,y,l)},this.setSize=function(y,l){s=y,i=l,r=s/2,o=i/2,a.style.width=y+"px",a.style.height=l+"px",d.style.width=y+"px",d.style.height=l+"px",m.style.width=y+"px",m.style.height=l+"px"};function p(y){return Math.abs(y)<1e-10?0:y}function C(y){const l=y.elements;return"matrix3d("+p(l[0])+","+p(-l[1])+","+p(l[2])+","+p(l[3])+","+p(l[4])+","+p(-l[5])+","+p(l[6])+","+p(l[7])+","+p(l[8])+","+p(-l[9])+","+p(l[10])+","+p(l[11])+","+p(l[12])+","+p(-l[13])+","+p(l[14])+","+p(l[15])+")"}function u(y){const l=y.elements;return"translate(-50%,-50%)"+("matrix3d("+p(l[0])+","+p(l[1])+","+p(l[2])+","+p(l[3])+","+p(-l[4])+","+p(-l[5])+","+p(-l[6])+","+p(-l[7])+","+p(l[8])+","+p(l[9])+","+p(l[10])+","+p(l[11])+","+p(l[12])+","+p(l[13])+","+p(l[14])+","+p(l[15])+")")}function f(y){y.isCSS3DObject&&(y.element.style.display="none");for(let l=0,_=y.children.length;l<_;l++)f(y.children[l])}function g(y,l,_,E){if(y.visible===!1){f(y);return}if(y.isCSS3DObject){const O=y.layers.test(_.layers)===!0,x=y.element;if(x.style.display=O===!0?"":"none",O===!0){y.onBeforeRender(t,l,_);let T;y.isCSS3DSprite?(H.copy(_.matrixWorldInverse),H.transpose(),y.rotation2D!==0&&H.multiply(rs.makeRotationZ(y.rotation2D)),y.matrixWorld.decompose(Ye,is,Ze),H.setPosition(Ye),H.scale(Ze),H.elements[3]=0,H.elements[7]=0,H.elements[11]=0,H.elements[15]=1,T=u(H)):T=u(y.matrixWorld);const L=n.objects.get(y);if(L===void 0||L.style!==T){x.style.transform=T;const D={style:T};n.objects.set(y,D)}x.parentNode!==m&&m.appendChild(x),y.onAfterRender(t,l,_)}}for(let O=0,x=y.children.length;O<x;O++)g(y.children[O],l,_)}}}const $=new v.Vector3,We=new v.Matrix4,qe=new v.Matrix4,Ke=new v.Vector3,Ge=new v.Vector3;class ns{constructor(e={}){const t=this;let s,i,r,o;const n={objects:new WeakMap},a=e.element!==void 0?e.element:document.createElement("div");a.style.overflow="hidden",this.domElement=a,this.getSize=function(){return{width:s,height:i}},this.render=function(f,g){f.matrixWorldAutoUpdate===!0&&f.updateMatrixWorld(),g.parent===null&&g.matrixWorldAutoUpdate===!0&&g.updateMatrixWorld(),We.copy(g.matrixWorldInverse),qe.multiplyMatrices(g.projectionMatrix,We),m(f,f,g),u(f)},this.setSize=function(f,g){s=f,i=g,r=s/2,o=i/2,a.style.width=f+"px",a.style.height=g+"px"};function d(f){f.isCSS2DObject&&(f.element.style.display="none");for(let g=0,y=f.children.length;g<y;g++)d(f.children[g])}function m(f,g,y){if(f.visible===!1){d(f);return}if(f.isCSS2DObject){$.setFromMatrixPosition(f.matrixWorld),$.applyMatrix4(qe);const l=$.z>=-1&&$.z<=1&&f.layers.test(y.layers)===!0,_=f.element;_.style.display=l===!0?"":"none",l===!0&&(f.onBeforeRender(t,g,y),_.style.transform="translate("+-100*f.center.x+"%,"+-100*f.center.y+"%)translate("+($.x*r+r)+"px,"+(-$.y*o+o)+"px)",_.parentNode!==a&&a.appendChild(_),f.onAfterRender(t,g,y));const E={distanceToCameraSquared:p(y,f)};n.objects.set(f,E)}for(let l=0,_=f.children.length;l<_;l++)m(f.children[l],g,y)}function p(f,g){return Ke.setFromMatrixPosition(f.matrixWorld),Ge.setFromMatrixPosition(g.matrixWorld),Ke.distanceToSquared(Ge)}function C(f){const g=[];return f.traverseVisible(function(y){y.isCSS2DObject&&g.push(y)}),g}function u(f){const g=C(f).sort(function(l,_){if(l.renderOrder!==_.renderOrder)return _.renderOrder-l.renderOrder;const E=n.objects.get(l).distanceToCameraSquared,O=n.objects.get(_).distanceToCameraSquared;return E-O}),y=g.length;for(let l=0,_=g.length;l<_;l++)g[l].element.style.zIndex=y-l}}}const $e={zIndex:"auto"};class as{constructor(e){this.container=e}addRenderer(e,t){const s=t.container||this.container,i=s.offsetWidth,r=s.offsetHeight,o=e==="css2d"?new ns:new os;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)}setSize(e,t){var s,i;(s=this.css2Drenderer)==null||s.setSize(e,t),(i=this.css3Drenderer)==null||i.setSize(e,t)}render(e,t){var s,i;(s=this.css2Drenderer)==null||s.render(e,t),(i=this.css3Drenderer)==null||i.render(e,t)}dispose(){var e,t;(e=this.css2Drenderer)==null||e.domElement.remove(),(t=this.css3Drenderer)==null||t.domElement.remove(),this.css2Drenderer=void 0,this.css3Drenderer=void 0}}class ls{constructor(e){this.helpers={},this.options=e}add(e){const t=e.uuid,{sceneController:s}=this.options;let i=this.helpers[t];if(i===void 0){if(e.isScene)i=new v.AxesHelper(100);else if(e.isCamera)i=new v.CameraHelper(e);else if(e.isPointLight)i=new v.PointLightHelper(e,1);else if(e.isDirectionalLight)i=new v.DirectionalLightHelper(e,1);else if(e.isSpotLight)i=new v.SpotLightHelper(e);else if(e.isHemisphereLight)i=new v.HemisphereLightHelper(e,10);else if(e.isRectAreaLight)i=new wt.RectAreaLightHelper(e);else{const r=new v.Box3;if(r.setFromObject(e,!0),r.isEmpty()===!1){i=new v.Box3Helper(r);const o=i.material;o.userData.object=e,o.depthTest=!1,o.transparent=!0}else return}s.scene.add(i),this.helpers[t]=i}}addViewHelper(){const{cameraController:e,container:t}=this.options,s=new Lt.ViewHelper(e.camera,t);t.addEventListener("pointerdown",i=>{i.preventDefault(),s.handleClick(i)}),this.viewHelper=s}remove(e){var i;const t=e.uuid,{sceneController:s}=this.options;if(this.helpers[t]!==void 0){const r=this.helpers[t];s.scene.remove(r),delete this.helpers[t],(i=r.dispose)==null||i.call(r)}}removeAll(){Object.keys(this.helpers).forEach(e=>{this.remove({uuid:e})}),this.helpers={}}removeAllExcludeScene(){Object.keys(this.helpers).forEach(e=>{this.helpers[e]instanceof v.AxesHelper||this.remove({uuid:e})})}update(e,t,s){var r,o;const{cameraController:i}=this.options;Object.values(this.helpers).forEach(n=>{if(n.update&&n.update(),n instanceof v.Box3Helper){const a=n.material,{object:d}=a.userData;d&&n.box.setFromObject(d,!0)}}),((r=this.viewHelper)==null?void 0:r.animating)===!0&&(this.viewHelper.update(e),(o=t.cameraControls)==null||o.setPosition(...i.camera.position.toArray()),this.viewHelper.center.copy(s))}renderViewHelper(e){if(!this.viewHelper)return;const t=e.autoClear;e.autoClear=!1,this.viewHelper.render(e),e.autoClear=t}dispose(){var e;this.helpers={},(e=this.viewHelper)==null||e.dispose()}}function Xe(h){let e=!1,t=[];return function(...s){t=s,e||(e=!0,requestAnimationFrame(()=>{e=!1,h(...t)}))}}class hs{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(u=>{o.has(u.type)&&n.push(ee(k({},u),{objArr:u.objArr instanceof Function?u.objArr():u.objArr}))}),n.length===0)return;this.activeObjects.clear(),this.objCallbackMap.clear(),this.activeObject=null;const a=this.objCallbackMap;for(const u of n)for(const f of u.objArr){if(!f.object3d||!f.visibleWithAncestors)continue;a.has(f)||a.set(f,new Map);const g=a.get(f);g.has(u.type)||g.set(u.type,[]),g.get(u.type).push(u.cb)}if(a.size===0)return;const d=[...a.keys()].map(u=>u.object3d),m=(C=this.pencil.pick(r,d,!0))==null?void 0:C.intersects;if(!m||m.length===0)e==="down"?this.handleDownOutside(r):e==="move"&&this.handleLeaveEvents(r);else{const u=m[0];this.processIntersection(u,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 d=a.get("enter");if(d&&!this.prevActiveObjects.has(n))for(const p of d)p({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s});const m=a.get("move");if(m)for(const p of m)p({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s})}else{const d=a.get("down");if(d)for(const p of d)p({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s});const m=a.get("click");if(m){const p=C=>{C.preventDefault();const u=5;if(!r&&Math.abs(C.clientX-e.clientX)<=u&&Math.abs(C.clientY-e.clientY)<=u)for(const f of m)f({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 d=p=>{this.enabled&&(p.preventDefault(),s({baseObject:a,mouseEvent:p}))},m=`pointer${t}`;a.element.addEventListener(m,Xe(d),!1),o.push({arr:a,type:m,listener:d})}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 cs extends hs{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.getObjectById(e.id)&&s.target.object3d.add(e),this.objects.set(i.key,i),this.objMap.set(i.object3d,i),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;const i=this.objectNamesToFactories.get(e);if(i){t||(t={}),t.target===void 0&&(t.target=s);const a=t.target,d=(r=t.onTop)!=null?r:0,m=(o=t.prefab)!=null?o:!1,p=(n=t.create)!=null?n:!0,C=new i().create(t);let u;return a===null?u=null:typeof a=="string"?u=this.objects.get(a):a!=null&&a.isBaseObject||a?u=a:m?u=this.prefabGroup:u=this.group,p===!1?C.create=()=>{}:p!==!0&&(C.create=()=>{p(C)}),C.pencil=this.pencil,C.lead=this,C.mList=this.mList,C.isPrefab=m,C.objectType=`${e}`,C.objectOptions=t,this.setBaseObjectKey(C,t.key?`$t:#${t.key}`:"$t:",u==null?void 0:u.key),this.objectsPm.set(C,this.addBaseObject(C,u,d)),yield this.objectsPm.get(C),this.objectsPm.delete(C),C}throw new Error(`Unrecognized:${e}`)})}setBaseObjectKey(e,t,s){const i=e.objectType;let r=t.replace("$t:",i);if(s){const[,o]=s.split("#");r=r.replace("$p:",o)}return this.objects.has(r)&&(r.includes("#")?r+=`-${xe.generateUUID()}`:r+=`#${xe.generateUUID()}`),e.key=r,this.objects.set(r,e),r}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.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 ds extends J{get lead(){return this.controller}constructor(e){super(),this.options=e}addLead(e,t,s){const{pencil:i}=this.options,r=new cs(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 ps 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"),d=n.stream().pipeThrough(a);new Response(d).json().then(p=>{t==null||t(p)}).catch(p=>{i==null||i(p)})},s,i)}}class Qe 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 d=a;const m=e.split(".").pop(),p=this.options.type==="image"?`image/${m||"png"}`:`video/${m||"mp4"}`;d=d.slice(0,a.size,p);const C=()=>{o.removeEventListener("load",u,!1),o.removeEventListener("error",f,!1)},u=()=>{C(),r.needsUpdate=!0,t&&t(r)},f=y=>{C(),i&&i(y),this.manager.itemError(e),this.manager.itemEnd(e)};o.addEventListener("load",u,!1),o.addEventListener("error",f,!1);const g=window.URL.createObjectURL(d);o.src=g},s,i),r}}const ms={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 us{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(ms))if(r.includes(t))return i}getLoader(e,t){if(e==="images")return this.textureLoader||(this.textureLoader=new Qe(this.loadingManager),this.options.prefix&&this.textureLoader.setPath(this.options.prefix)),this.textureLoader;if(e==="media")return this.videoTextureLoader||(this.videoTextureLoader=new Qe(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 Pt.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 At.LottieLoader(this.loadingManager),this.options.prefix&&this.lottieLoader.setPath(this.options.prefix)),this.lottieLoader;if(e==="gzipJson")return this.gzipJsonLoader||(this.gzipJsonLoader=new ps(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 St.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.isVideoTexture)&&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=xe.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 d=yield o.loadAsync(e);if(this.assets.set(e,d),r.resolve(d),s==="images"||s==="media"||s==="exr"||s==="lottie"){const m=(a=t==null?void 0:t.anisotropy)!=null?a:this.options.anisotropy;d.anisotropy=m}return d}catch(d){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(d=>{if(d){const m=this.getSrcByAsset(d,s);m&&t.add(m)}})})});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 fs={prefix:""};class _s extends J{get loader(){return this.controller}constructor(e){super(),this.options=e}addLoader(e,t){const{loaderParams:s}=this.options,i=new us(ee(k({},s),{scene:e}));return this.addController(i,t)}removePage(e){super.removePage(e,t=>{t.dispose()})}}class gs{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]of this.materials.entries())if(t.name===e)return t;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 d=`${t}#${n}`;this.add(d,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;this.applyColorSpaceToMaterials(t.material);const s=o=>{if("__isProxy"in o)return o;const n=new Proxy(o,{set:(a,d,m)=>{if(typeof d=="string"&&!Number.isNaN(Number(d))){const p=Number(d);if(p>=0&&p<a.length){const C=a[p];return this.rmBaseObjectMap(e,C),a[p]=m,m&&(this.applyColorSpaceToMaterials(m),this.addBaseObjectMap(e)),!0}}return a[d]=m,!0}});return Object.defineProperty(n,"__isProxy",{value:!0,enumerable:!1}),n};e.materialList&&(Object.values(e.materialList).forEach(o=>{o&&this.applyColorSpaceToMaterials(o)}),e.materialList=new Proxy(e.materialList,{set:(o,n,a)=>{if(typeof n=="string"){const d=o[n];return this.rmBaseObjectMap(e,d),o[n]=a,a&&(this.applyColorSpaceToMaterials(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 d=s(a);return d!==a&&(o[n]=d),d}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,o&&this.applyColorSpaceToMaterials(o),this.addBaseObjectMap(e)}e.handleMaterialChange(o)},enumerable:!0,configurable:!0})}applyColorSpaceToMaterials(e){we.applyTextureColorSpace({material:e})}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=>{var d;const a=(d=i.materialList)==null?void 0:d[n];if(Array.isArray(a)){const m=a.indexOf(e);m!==-1&&(a[m]=t)}else a===e&&i.materialList&&(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 ys extends J{get mList(){return this.controller}constructor(e){super(),this.options=e}addMList(e,t){const{pencil:s}=this.options,i=new gs(s);return this.addController(i,t)}removePage(e){super.removePage(e,t=>{t.dispose()})}}const vs={antialias:!1,devicePixelRatio:window.devicePixelRatio,powerPreference:"high-performance",toneMappingExposure:1,alpha:!1,outputColorSpace:we.ColorSpace.sRGB,logarithmicDepthBuffer:!1,preserveDrawingBuffer:!1,stencil:!1,depth:!1};class Cs{constructor(e){this.options=e;const{width:t,height:s,rendererParams:i}=e,{alpha:r,devicePixelRatio:o,antialias:n,powerPreference:a,toneMappingExposure:d,outputColorSpace:m,logarithmicDepthBuffer:p,preserveDrawingBuffer:C,stencil:u,depth:f}=i,g=new v.WebGLRenderer({alpha:r,antialias:n,powerPreference:a,logarithmicDepthBuffer:p,preserveDrawingBuffer:C,stencil:u,depth:f});g.setSize(t,s),g.setPixelRatio(o),g.toneMappingExposure=d,g.outputColorSpace=m,this.renderer=g}setSize(e,t){this.renderer.setSize(e,t)}setPixelRatio(e){this.renderer.setPixelRatio(e)}render(e,t){this.renderer.render(e,t)}setViewport(e){var a,d;const{x:t,y:s,width:i,height:r}=e,o=(a=e.scissor)!=null?a:!1,n=(d=e.scissorTest)!=null?d:!1;this.renderer.setViewport(t,s,i,r),o&&(this.renderer.setScissor(t,s,i,r),this.renderer.setScissorTest(n))}dispose(){var e,t,s;this.setSize(0,0),(e=this.renderer)==null||e.clear(),(t=this.renderer)==null||t.dispose(),(s=this.renderer)==null||s.forceContextLoss()}}const Os={background:null};class Es extends J{get scene(){return this.controller}constructor(e){super(),this.options=e}addScene(e,t){const s=new v.Scene;return e!=null&&e.background&&(s.background=e.background),this.addController(s,t)}removePage(e){super.removePage(e,t=>{const s=new U.ResourceTracker;s.track(t),s.dispose()})}setPageActive(e){super.setPageActive(e,(t,s)=>{t.visible=s})}}class Ts{constructor(e){this.event=new _e.EventEmitter;const{renderer:t,scene:s,camera:i}=e,r=new Mt.TransformControls(i,t.domElement);if(r.getHelper){const o=r.getHelper();if(s.add(o),+v.REVISION<170){const n=r._root;n.dispose=()=>{n.traverse(a=>{a.geometry&&a.geometry.dispose(),a.material&&a.material.dispose()})},r.dispose=()=>{r.disconnect(),n.dispose()}}}else r instanceof v.Object3D&&s.add(r);this.controls=r,this.addEvent()}get detach(){return this.controls.detach.bind(this.controls)}get attach(){return this.controls.attach.bind(this.controls)}addEvent(){let e=null,t=null,s=null;const i=this.controls;i.addEventListener("change",()=>{const r=i.object;r!==void 0&&this.event.emit("change",r)}),i.addEventListener("mouseDown",()=>{const r=i.object;e=r.position.clone(),t=r.rotation.clone(),s=r.scale.clone(),this.event.emit("mouseDown",r)}),i.addEventListener("mouseUp",()=>{const r=i.object;if(r!==void 0)switch(i.getMode()){case"translate":e.equals(r.position)||this.event.emit("translate",r,r.position,e);break;case"rotate":t.equals(r.rotation)||this.event.emit("rotate",r,r.rotation,t);break;case"scale":s.equals(r.scale)||this.event.emit("scale",r,r.scale,s);break}this.event.emit("mouseUp")})}dispose(){var e;this.event.removeAllListeners(),(e=this.controls)==null||e.dispose()}}const bs={antialias:!0,devicePixelRatio:window.devicePixelRatio};class xs{constructor(e){this.options=e;const{width:t,height:s,rendererParams:i,renderer:r}=e,{devicePixelRatio:o,antialias:n}=i,a=new r({antialias:n});a.setSize(t,s),a.setPixelRatio(o),this.renderer=a}setSize(e,t){this.renderer.setSize(e,t)}render(e,t){this.renderer.render(e,t)}dispose(){var e,t;this.setSize(1,1),(e=this.renderer)==null||e.clear(),(t=this.renderer)==null||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 v.Timer,this.userData={},this.pageActiveIndex=0,this.pageCountIndex=0,this.userSetDprCache=1,this.viewPadding=[0,0,0,0],this._isDispose=!1,this.event.setMaxListeners(1/0),(o=(r=this.timer).connect)==null||o.call(r,document),this.options=vt(ue.options,e,{isMergeableObject:we.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?2: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:d}=this.getSize(),m=t?new xs({width:a,height:d,renderer:this.options.WebGPURenderer,rendererParams:bs}):new Cs({width:a,height:d,rendererParams:ee(k({},r),{antialias:!1})});this.rendererController=m;const p=new Bt({width:a,height:d}),C=new Es({}),u=new ss({controlsParams:{domElement:(_=o==null?void 0:o.domElement)!=null?_:m.renderer.domElement}}),f=new _s({loaderParams:k({anisotropy:this.maxAnisotropy},n)}),g=new ys({pencil:this}),y=new ds({pencil:this});this.sceneController=C,this.cameraController=p,this.controlsController=u,this.loaderController=f,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 ls({container:e,sceneController:C,cameraController:p});E.add(C.scene),this.helperController=E,i&&E.addViewHelper()}e.appendChild(m.renderer.domElement)}initComposer(){const{bloom:e,bloomParams:t,ssao:s,ssaoParams:i,composer:r}=this.options,o=new ts({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 as(e);t&&o.addRenderer("css2d",i),s&&o.addRenderer("css3d",r),this.cssRendererController=o}}initTransformControls(){const e=new Ts({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,d=this.renderer.getSize(new v.Vector2);d.x===e&&d.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(m=>{var p;(p=m.setSize)==null||p.call(m,e,t)}),this.viewPadding.some(m=>m!==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 d=i.intersectObjects(t||this.scene.children,s);if(d.length)return{object:d[0].object,index:d[0].index,intersects:d}}}render(){var s,i,r,o,n,a;if(!this.camera||!this.scene)return;this.event.emit("beforeRender"),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(d=>{var m;(m=d.update)==null||m.call(d,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(){var e;window.cancelAnimationFrame(this.TweenRaf),(e=this.renderer)==null||e.setAnimationLoop(this.render.bind(this)),this.event.emit("start")}stop(){var e;this.tweenUpdateRaf(),(e=this.renderer)==null||e.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,d,m,p,C,u,f;this.handeleResize(1,1,!1),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(),(d=this.rendererController)==null||d.dispose(),(m=this.loaderController)==null||m.dispose(),(p=this.leadController)==null||p.dispose(),(C=this.mListController)==null||C.dispose(),this.cssRendererController=void 0,this.installPlugins.clear(),(u=this.stats)==null||u.dom.remove(),(f=this.renderer)==null||f.domElement.remove(),this._isDispose=!0}};ue.options={stats:U.IS_DEV,helper:U.IS_DEV,viewHelper:U.IS_DEV,controls:!0,transformControls:U.IS_DEV,renderer:vs,composer:es,scene:Os,camera:lt,bloom:!1,bloomParams:Jt,ssao:!1,loader:fs,ssaoParams:Qt,css2DRenderer:!1,css2DRendererParams:k({},$e),css3DRenderer:!1,css3DRendererParams:k({},$e)};let me=ue;const ws=Q.ACTION;exports.BaseObject=U.BaseObject;exports.ResourceTracker=U.ResourceTracker;exports.Pencil=me;exports.cameraControlsAction=ws;exports.default=me;
98
+ }`};class Zt extends xt.OutputPass{constructor(){super();const e=Yt;this.uniforms=v.UniformsUtils.clone(e.uniforms),this.material=new v.RawShaderMaterial({name:e.name,uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader}),this.fsQuad?this.fsQuad=new Me.FullScreenQuad(this.material):this._fsQuad&&(this._fsQuad=new Me.FullScreenQuad(this.material))}}const Wt=new v.MeshBasicMaterial({color:"black"}),qt=new v.PointsMaterial({color:"black",sizeAttenuation:!1}),Kt=new v.PointsMaterial({color:"black",sizeAttenuation:!0}),Gt=new v.SpriteMaterial({color:"black",sizeAttenuation:!0}),$t=new v.SpriteMaterial({color:"black",sizeAttenuation:!1}),Xt=new U.MeshLineMaterial({color:"black",sizeAttenuation:!1,lineWidth:0}),Ve=new v.Color(0),Qt={kernelRadius:8,minDistance:.005,maxDistance:.1},Jt={threshold:0,strength:.4,radius:.1,bloomAlphaType:0},es={multisampling:4,premultiplieAlpha:!1};class ts{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,d=o.getDrawingBufferSize(new v.Vector2),m=new v.WebGLRenderTarget(d.width,d.height,{samples:Math.min(n,a),type:v.HalfFloatType}),p=new Ae.EffectComposer(o,m),C=this.getSize();p.setSize(C.width,C.height);const u=new Ot.RenderPass(s.scene,i.camera);p.addPass(u),this.scene=s.scene,this.camera=i.camera,this.finalComposer=p,this.renderPass=u,i.event.on("pageChange",f=>{this.changeCamera(f)}),s.event.on("pageChange",f=>{this.changeScene(f)})}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 Zt;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 Et.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 Tt.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 d=Vt(a);d.uniforms.bloomAlphaType.value=o,this.bloomComposer=a,this.finalComposer.addPass(d),this.mixPass=d,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(i=>{i.isTransformControls||i.isTransformControlsRoot||i.type==="RectAreaLightHelper"?e.push(i):t.push(i)}),t.forEach(i=>{i.traverse(r=>{var d;const o=r,n=r,a=r;if((d=o.material)!=null&&d.isShadowMaterial)e.push(o);else if(o.material&&this.bloomLayer.test(o.layers)===!1){if(o.material.transparent===!0&&(o.material.opacity!==1||o.material.alphaMap)){e.push(o);return}this.bloomMaterials[o.uuid]=o.material,n.isSprite?n.material.sizeAttenuation?n.material=Gt:n.material=$t:o.material instanceof U.MeshLineMaterial?o.material=Xt:a.isPoints?a.material.sizeAttenuation?a.material=Kt:a.material=qt:o.material=Wt}})}),e.forEach(i=>{this.bloomVisible[i.uuid]=i.visible,i.visible=!1});const s=this.scene.background;s!=null&&s.isTexture&&(this.scene.userData._backgroundOriginal=s,this.scene.background=Ve)}restoreNonBloomed(){if(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])}),this.scene.background===Ve){const e=this.scene.userData._backgroundOriginal;e&&(this.scene.background=e,delete this.scene.userData._backgroundOriginal)}}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 ss extends J{constructor(e){super(),this.autoRotateSpeed=0,this.options=e;const t={Vector2:v.Vector2,Vector3:v.Vector3,Vector4:v.Vector4,Quaternion:v.Quaternion,Matrix4:v.Matrix4,Spherical:v.Spherical,Box3:v.Box3,Sphere:v.Sphere,Raycaster:v.Raycaster};Q.install({THREE:t})}get cameraControls(){return this.controller}addCameraControls(e,t){const{domElement:s}=this.options.controlsParams,i=new Q(e,s);return i.setLookAt(0,0,400,0,0,0,!1),this.addController(i,t)}setPageActive(e){super.setPageActive(e,(t,s)=>{t.enabled=s})}removePage(e){super.removePage(e,t=>{t.dispose()})}enable(){this.activeControllerSet.forEach(e=>{e.enabled=!0})}disable(){this.activeControllerSet.forEach(e=>{e.enabled=!1})}update(e,t){super.update(e,t),this.autoRotateSpeed&&this.cameraControls&&(this.cameraControls.azimuthAngle+=this.autoRotateSpeed*e*v.MathUtils.DEG2RAD)}}const Ye=new v.Vector3,is=new v.Quaternion,Ze=new v.Vector3,H=new v.Matrix4,rs=new v.Matrix4;class os{constructor(e={}){const t=this;let s,i,r,o;const n={camera:{style:""},objects:new WeakMap},a=e.element!==void 0?e.element:document.createElement("div");a.style.overflow="hidden",this.domElement=a;const d=document.createElement("div");d.style.transformOrigin="0 0",d.style.pointerEvents="none",a.appendChild(d);const m=document.createElement("div");m.style.transformStyle="preserve-3d",d.appendChild(m),this.getSize=function(){return{width:s,height:i}},this.render=function(y,l){const _=l.projectionMatrix.elements[5]*o;l.view&&l.view.enabled?(d.style.transform=`translate( ${-l.view.offsetX*(s/l.view.width)}px, ${-l.view.offsetY*(i/l.view.height)}px )`,d.style.transform+=`scale( ${l.view.fullWidth/l.view.width}, ${l.view.fullHeight/l.view.height} )`):d.style.transform="",y.matrixWorldAutoUpdate===!0&&y.updateMatrixWorld(),l.parent===null&&l.matrixWorldAutoUpdate===!0&&l.updateMatrixWorld();let E,O;l.isOrthographicCamera&&(E=-(l.right+l.left)/2,O=(l.top+l.bottom)/2);const x=l.view&&l.view.enabled?l.view.height/l.view.fullHeight:1,T=l.isOrthographicCamera?`scale( ${x} )scale(`+_+")translate("+p(E)+"px,"+p(O)+"px)"+C(l.matrixWorldInverse):`scale( ${x} )translateZ(`+_+"px)"+C(l.matrixWorldInverse),D=(l.isPerspectiveCamera?"perspective("+_+"px) ":"")+T+"translate("+r+"px,"+o+"px)";n.camera.style!==D&&(m.style.transform=D,n.camera.style=D),g(y,y,l)},this.setSize=function(y,l){s=y,i=l,r=s/2,o=i/2,a.style.width=y+"px",a.style.height=l+"px",d.style.width=y+"px",d.style.height=l+"px",m.style.width=y+"px",m.style.height=l+"px"};function p(y){return Math.abs(y)<1e-10?0:y}function C(y){const l=y.elements;return"matrix3d("+p(l[0])+","+p(-l[1])+","+p(l[2])+","+p(l[3])+","+p(l[4])+","+p(-l[5])+","+p(l[6])+","+p(l[7])+","+p(l[8])+","+p(-l[9])+","+p(l[10])+","+p(l[11])+","+p(l[12])+","+p(-l[13])+","+p(l[14])+","+p(l[15])+")"}function u(y){const l=y.elements;return"translate(-50%,-50%)"+("matrix3d("+p(l[0])+","+p(l[1])+","+p(l[2])+","+p(l[3])+","+p(-l[4])+","+p(-l[5])+","+p(-l[6])+","+p(-l[7])+","+p(l[8])+","+p(l[9])+","+p(l[10])+","+p(l[11])+","+p(l[12])+","+p(l[13])+","+p(l[14])+","+p(l[15])+")")}function f(y){y.isCSS3DObject&&(y.element.style.display="none");for(let l=0,_=y.children.length;l<_;l++)f(y.children[l])}function g(y,l,_,E){if(y.visible===!1){f(y);return}if(y.isCSS3DObject){const O=y.layers.test(_.layers)===!0,x=y.element;if(x.style.display=O===!0?"":"none",O===!0){y.onBeforeRender(t,l,_);let T;y.isCSS3DSprite?(H.copy(_.matrixWorldInverse),H.transpose(),y.rotation2D!==0&&H.multiply(rs.makeRotationZ(y.rotation2D)),y.matrixWorld.decompose(Ye,is,Ze),H.setPosition(Ye),H.scale(Ze),H.elements[3]=0,H.elements[7]=0,H.elements[11]=0,H.elements[15]=1,T=u(H)):T=u(y.matrixWorld);const L=n.objects.get(y);if(L===void 0||L.style!==T){x.style.transform=T;const D={style:T};n.objects.set(y,D)}x.parentNode!==m&&m.appendChild(x),y.onAfterRender(t,l,_)}}for(let O=0,x=y.children.length;O<x;O++)g(y.children[O],l,_)}}}const $=new v.Vector3,We=new v.Matrix4,qe=new v.Matrix4,Ke=new v.Vector3,Ge=new v.Vector3;class ns{constructor(e={}){const t=this;let s,i,r,o;const n={objects:new WeakMap},a=e.element!==void 0?e.element:document.createElement("div");a.style.overflow="hidden",this.domElement=a,this.getSize=function(){return{width:s,height:i}},this.render=function(f,g){f.matrixWorldAutoUpdate===!0&&f.updateMatrixWorld(),g.parent===null&&g.matrixWorldAutoUpdate===!0&&g.updateMatrixWorld(),We.copy(g.matrixWorldInverse),qe.multiplyMatrices(g.projectionMatrix,We),m(f,f,g),u(f)},this.setSize=function(f,g){s=f,i=g,r=s/2,o=i/2,a.style.width=f+"px",a.style.height=g+"px"};function d(f){f.isCSS2DObject&&(f.element.style.display="none");for(let g=0,y=f.children.length;g<y;g++)d(f.children[g])}function m(f,g,y){if(f.visible===!1){d(f);return}if(f.isCSS2DObject){$.setFromMatrixPosition(f.matrixWorld),$.applyMatrix4(qe);const l=$.z>=-1&&$.z<=1&&f.layers.test(y.layers)===!0,_=f.element;_.style.display=l===!0?"":"none",l===!0&&(f.onBeforeRender(t,g,y),_.style.transform="translate("+-100*f.center.x+"%,"+-100*f.center.y+"%)translate("+($.x*r+r)+"px,"+(-$.y*o+o)+"px)",_.parentNode!==a&&a.appendChild(_),f.onAfterRender(t,g,y));const E={distanceToCameraSquared:p(y,f)};n.objects.set(f,E)}for(let l=0,_=f.children.length;l<_;l++)m(f.children[l],g,y)}function p(f,g){return Ke.setFromMatrixPosition(f.matrixWorld),Ge.setFromMatrixPosition(g.matrixWorld),Ke.distanceToSquared(Ge)}function C(f){const g=[];return f.traverseVisible(function(y){y.isCSS2DObject&&g.push(y)}),g}function u(f){const g=C(f).sort(function(l,_){if(l.renderOrder!==_.renderOrder)return _.renderOrder-l.renderOrder;const E=n.objects.get(l).distanceToCameraSquared,O=n.objects.get(_).distanceToCameraSquared;return E-O}),y=g.length;for(let l=0,_=g.length;l<_;l++)g[l].element.style.zIndex=y-l}}}const $e={zIndex:"auto"};class as{constructor(e){this.container=e}addRenderer(e,t){const s=t.container||this.container,i=s.offsetWidth,r=s.offsetHeight,o=e==="css2d"?new ns:new os;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)}setSize(e,t){var s,i;(s=this.css2Drenderer)==null||s.setSize(e,t),(i=this.css3Drenderer)==null||i.setSize(e,t)}render(e,t){var s,i;(s=this.css2Drenderer)==null||s.render(e,t),(i=this.css3Drenderer)==null||i.render(e,t)}dispose(){var e,t;(e=this.css2Drenderer)==null||e.domElement.remove(),(t=this.css3Drenderer)==null||t.domElement.remove(),this.css2Drenderer=void 0,this.css3Drenderer=void 0}}class ls{constructor(e){this.helpers={},this.options=e}add(e){const t=e.uuid,{sceneController:s}=this.options;let i=this.helpers[t];if(i===void 0){if(e.isScene)i=new v.AxesHelper(100);else if(e.isCamera)i=new v.CameraHelper(e);else if(e.isPointLight)i=new v.PointLightHelper(e,1);else if(e.isDirectionalLight)i=new v.DirectionalLightHelper(e,1);else if(e.isSpotLight)i=new v.SpotLightHelper(e);else if(e.isHemisphereLight)i=new v.HemisphereLightHelper(e,10);else if(e.isRectAreaLight)i=new wt.RectAreaLightHelper(e);else{const r=new v.Box3;if(r.setFromObject(e,!0),r.isEmpty()===!1){i=new v.Box3Helper(r);const o=i.material;o.userData.object=e,o.depthTest=!1,o.transparent=!0}else return}s.scene.add(i),this.helpers[t]=i}}addViewHelper(){const{cameraController:e,container:t}=this.options,s=new Lt.ViewHelper(e.camera,t);t.addEventListener("pointerdown",i=>{i.preventDefault(),s.handleClick(i)}),this.viewHelper=s}remove(e){var i;const t=e.uuid,{sceneController:s}=this.options;if(this.helpers[t]!==void 0){const r=this.helpers[t];s.scene.remove(r),delete this.helpers[t],(i=r.dispose)==null||i.call(r)}}removeAll(){Object.keys(this.helpers).forEach(e=>{this.remove({uuid:e})}),this.helpers={}}removeAllExcludeScene(){Object.keys(this.helpers).forEach(e=>{this.helpers[e]instanceof v.AxesHelper||this.remove({uuid:e})})}update(e,t,s){var r,o;const{cameraController:i}=this.options;Object.values(this.helpers).forEach(n=>{if(n.update&&n.update(),n instanceof v.Box3Helper){const a=n.material,{object:d}=a.userData;d&&n.box.setFromObject(d,!0)}}),((r=this.viewHelper)==null?void 0:r.animating)===!0&&(this.viewHelper.update(e),(o=t.cameraControls)==null||o.setPosition(...i.camera.position.toArray()),this.viewHelper.center.copy(s))}renderViewHelper(e){if(!this.viewHelper)return;const t=e.autoClear;e.autoClear=!1,this.viewHelper.render(e),e.autoClear=t}dispose(){var e;this.helpers={},(e=this.viewHelper)==null||e.dispose()}}function Xe(h){let e=!1,t=[];return function(...s){t=s,e||(e=!0,requestAnimationFrame(()=>{e=!1,h(...t)}))}}class hs{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(u=>{o.has(u.type)&&n.push(ee(k({},u),{objArr:u.objArr instanceof Function?u.objArr():u.objArr}))}),n.length===0)return;this.activeObjects.clear(),this.objCallbackMap.clear(),this.activeObject=null;const a=this.objCallbackMap;for(const u of n)for(const f of u.objArr){if(!f.object3d||!f.visibleWithAncestors)continue;a.has(f)||a.set(f,new Map);const g=a.get(f);g.has(u.type)||g.set(u.type,[]),g.get(u.type).push(u.cb)}if(a.size===0)return;const d=[...a.keys()].map(u=>u.object3d),m=(C=this.pencil.pick(r,d,!0))==null?void 0:C.intersects;if(!m||m.length===0)e==="down"?this.handleDownOutside(r):e==="move"&&this.handleLeaveEvents(r);else{const u=m[0];this.processIntersection(u,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 d=a.get("enter");if(d&&!this.prevActiveObjects.has(n))for(const p of d)p({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s});const m=a.get("move");if(m)for(const p of m)p({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s})}else{const d=a.get("down");if(d)for(const p of d)p({baseObject:n,realBaseObject:this.activeObject,mouseEvent:e,sp:o,intersectionIndex:s});const m=a.get("click");if(m){const p=C=>{C.preventDefault();const u=5;if(!r&&Math.abs(C.clientX-e.clientX)<=u&&Math.abs(C.clientY-e.clientY)<=u)for(const f of m)f({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 d=p=>{this.enabled&&(p.preventDefault(),s({baseObject:a,mouseEvent:p}))},m=`pointer${t}`;a.element.addEventListener(m,Xe(d),!1),o.push({arr:a,type:m,listener:d})}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 cs extends hs{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.getObjectById(e.id)&&s.target.object3d.add(e),this.objects.set(i.key,i),this.objMap.set(i.object3d,i),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;const i=this.objectNamesToFactories.get(e);if(i){t||(t={}),t.target===void 0&&(t.target=s);const a=t.target,d=(r=t.onTop)!=null?r:0,m=(o=t.prefab)!=null?o:!1,p=(n=t.create)!=null?n:!0,C=new i().create(t);let u;return a===null?u=null:typeof a=="string"?u=this.objects.get(a):a!=null&&a.isBaseObject||a?u=a:m?u=this.prefabGroup:u=this.group,p===!1?C.create=()=>{}:p!==!0&&(C.create=()=>{p(C)}),C.pencil=this.pencil,C.lead=this,C.mList=this.mList,C.isPrefab=m,C.objectType=`${e}`,C.objectOptions=t,this.setBaseObjectKey(C,t.key?`$t:#${t.key}`:"$t:",u==null?void 0:u.key),this.objectsPm.set(C,this.addBaseObject(C,u,d)),yield this.objectsPm.get(C),this.objectsPm.delete(C),C}throw new Error(`Unrecognized:${e}`)})}setBaseObjectKey(e,t,s){const i=e.objectType;let r=t.replace("$t:",i);return s&&(r=r.replace("$p:",s)),this.objects.has(r)&&(r.includes("#")?r+=`-${xe.generateUUID()}`:r+=`#${xe.generateUUID()}`),e.key=r,this.objects.set(r,e),r}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.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 ds extends J{get lead(){return this.controller}constructor(e){super(),this.options=e}addLead(e,t,s){const{pencil:i}=this.options,r=new cs(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 ps 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"),d=n.stream().pipeThrough(a);new Response(d).json().then(p=>{t==null||t(p)}).catch(p=>{i==null||i(p)})},s,i)}}class Qe 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 d=a;const m=e.split(".").pop(),p=this.options.type==="image"?`image/${m||"png"}`:`video/${m||"mp4"}`;d=d.slice(0,a.size,p);const C=()=>{o.removeEventListener("load",u,!1),o.removeEventListener("error",f,!1)},u=()=>{C(),r.needsUpdate=!0,t&&t(r)},f=y=>{C(),i&&i(y),this.manager.itemError(e),this.manager.itemEnd(e)};o.addEventListener("load",u,!1),o.addEventListener("error",f,!1);const g=window.URL.createObjectURL(d);o.src=g},s,i),r}}const ms={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 us{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(ms))if(r.includes(t))return i}getLoader(e,t){if(e==="images")return this.textureLoader||(this.textureLoader=new Qe(this.loadingManager),this.options.prefix&&this.textureLoader.setPath(this.options.prefix)),this.textureLoader;if(e==="media")return this.videoTextureLoader||(this.videoTextureLoader=new Qe(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 Pt.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 At.LottieLoader(this.loadingManager),this.options.prefix&&this.lottieLoader.setPath(this.options.prefix)),this.lottieLoader;if(e==="gzipJson")return this.gzipJsonLoader||(this.gzipJsonLoader=new ps(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 St.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.isVideoTexture)&&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=xe.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 d=yield o.loadAsync(e);if(this.assets.set(e,d),r.resolve(d),s==="images"||s==="media"||s==="exr"||s==="lottie"){const m=(a=t==null?void 0:t.anisotropy)!=null?a:this.options.anisotropy;d.anisotropy=m}return d}catch(d){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(d=>{if(d){const m=this.getSrcByAsset(d,s);m&&t.add(m)}})})});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 fs={prefix:""};class _s extends J{get loader(){return this.controller}constructor(e){super(),this.options=e}addLoader(e,t){const{loaderParams:s}=this.options,i=new us(ee(k({},s),{scene:e}));return this.addController(i,t)}removePage(e){super.removePage(e,t=>{t.dispose()})}}class gs{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]of this.materials.entries())if(t.name===e)return t;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 d=`${t}#${n}`;this.add(d,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;this.applyColorSpaceToMaterials(t.material);const s=o=>{if("__isProxy"in o)return o;const n=new Proxy(o,{set:(a,d,m)=>{if(typeof d=="string"&&!Number.isNaN(Number(d))){const p=Number(d);if(p>=0&&p<a.length){const C=a[p];return this.rmBaseObjectMap(e,C),a[p]=m,m&&(this.applyColorSpaceToMaterials(m),this.addBaseObjectMap(e)),!0}}return a[d]=m,!0}});return Object.defineProperty(n,"__isProxy",{value:!0,enumerable:!1}),n};e.materialList&&(Object.values(e.materialList).forEach(o=>{o&&this.applyColorSpaceToMaterials(o)}),e.materialList=new Proxy(e.materialList,{set:(o,n,a)=>{if(typeof n=="string"){const d=o[n];return this.rmBaseObjectMap(e,d),o[n]=a,a&&(this.applyColorSpaceToMaterials(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 d=s(a);return d!==a&&(o[n]=d),d}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,o&&this.applyColorSpaceToMaterials(o),this.addBaseObjectMap(e)}e.handleMaterialChange(o)},enumerable:!0,configurable:!0})}applyColorSpaceToMaterials(e){we.applyTextureColorSpace({material:e})}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=>{var d;const a=(d=i.materialList)==null?void 0:d[n];if(Array.isArray(a)){const m=a.indexOf(e);m!==-1&&(a[m]=t)}else a===e&&i.materialList&&(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 ys extends J{get mList(){return this.controller}constructor(e){super(),this.options=e}addMList(e,t){const{pencil:s}=this.options,i=new gs(s);return this.addController(i,t)}removePage(e){super.removePage(e,t=>{t.dispose()})}}const vs={antialias:!1,devicePixelRatio:window.devicePixelRatio,powerPreference:"high-performance",toneMappingExposure:1,alpha:!1,outputColorSpace:we.ColorSpace.sRGB,logarithmicDepthBuffer:!1,preserveDrawingBuffer:!1,stencil:!1,depth:!1};class Cs{constructor(e){this.options=e;const{width:t,height:s,rendererParams:i}=e,{alpha:r,devicePixelRatio:o,antialias:n,powerPreference:a,toneMappingExposure:d,outputColorSpace:m,logarithmicDepthBuffer:p,preserveDrawingBuffer:C,stencil:u,depth:f}=i,g=new v.WebGLRenderer({alpha:r,antialias:n,powerPreference:a,logarithmicDepthBuffer:p,preserveDrawingBuffer:C,stencil:u,depth:f});g.setSize(t,s),g.setPixelRatio(o),g.toneMappingExposure=d,g.outputColorSpace=m,this.renderer=g}setSize(e,t){this.renderer.setSize(e,t)}setPixelRatio(e){this.renderer.setPixelRatio(e)}render(e,t){this.renderer.render(e,t)}setViewport(e){var a,d;const{x:t,y:s,width:i,height:r}=e,o=(a=e.scissor)!=null?a:!1,n=(d=e.scissorTest)!=null?d:!1;this.renderer.setViewport(t,s,i,r),o&&(this.renderer.setScissor(t,s,i,r),this.renderer.setScissorTest(n))}dispose(){var e,t,s;this.setSize(0,0),(e=this.renderer)==null||e.clear(),(t=this.renderer)==null||t.dispose(),(s=this.renderer)==null||s.forceContextLoss()}}const Os={background:null};class Es extends J{get scene(){return this.controller}constructor(e){super(),this.options=e}addScene(e,t){const s=new v.Scene;return e!=null&&e.background&&(s.background=e.background),this.addController(s,t)}removePage(e){super.removePage(e,t=>{const s=new U.ResourceTracker;s.track(t),s.dispose()})}setPageActive(e){super.setPageActive(e,(t,s)=>{t.visible=s})}}class Ts{constructor(e){this.event=new _e.EventEmitter;const{renderer:t,scene:s,camera:i}=e,r=new Mt.TransformControls(i,t.domElement);if(r.getHelper){const o=r.getHelper();if(s.add(o),+v.REVISION<170){const n=r._root;n.dispose=()=>{n.traverse(a=>{a.geometry&&a.geometry.dispose(),a.material&&a.material.dispose()})},r.dispose=()=>{r.disconnect(),n.dispose()}}}else r instanceof v.Object3D&&s.add(r);this.controls=r,this.addEvent()}get detach(){return this.controls.detach.bind(this.controls)}get attach(){return this.controls.attach.bind(this.controls)}addEvent(){let e=null,t=null,s=null;const i=this.controls;i.addEventListener("change",()=>{const r=i.object;r!==void 0&&this.event.emit("change",r)}),i.addEventListener("mouseDown",()=>{const r=i.object;e=r.position.clone(),t=r.rotation.clone(),s=r.scale.clone(),this.event.emit("mouseDown",r)}),i.addEventListener("mouseUp",()=>{const r=i.object;if(r!==void 0)switch(i.getMode()){case"translate":e.equals(r.position)||this.event.emit("translate",r,r.position,e);break;case"rotate":t.equals(r.rotation)||this.event.emit("rotate",r,r.rotation,t);break;case"scale":s.equals(r.scale)||this.event.emit("scale",r,r.scale,s);break}this.event.emit("mouseUp")})}dispose(){var e;this.event.removeAllListeners(),(e=this.controls)==null||e.dispose()}}const bs={antialias:!0,devicePixelRatio:window.devicePixelRatio};class xs{constructor(e){this.options=e;const{width:t,height:s,rendererParams:i,renderer:r}=e,{devicePixelRatio:o,antialias:n}=i,a=new r({antialias:n});a.setSize(t,s),a.setPixelRatio(o),this.renderer=a}setSize(e,t){this.renderer.setSize(e,t)}render(e,t){this.renderer.render(e,t)}dispose(){var e,t;this.setSize(1,1),(e=this.renderer)==null||e.clear(),(t=this.renderer)==null||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 v.Timer,this.userData={},this.pageActiveIndex=0,this.pageCountIndex=0,this.userSetDprCache=1,this.viewPadding=[0,0,0,0],this._isDispose=!1,this.event.setMaxListeners(1/0),(o=(r=this.timer).connect)==null||o.call(r,document),this.options=vt(ue.options,e,{isMergeableObject:we.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?2: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:d}=this.getSize(),m=t?new xs({width:a,height:d,renderer:this.options.WebGPURenderer,rendererParams:bs}):new Cs({width:a,height:d,rendererParams:ee(k({},r),{antialias:!1})});this.rendererController=m;const p=new Bt({width:a,height:d}),C=new Es({}),u=new ss({controlsParams:{domElement:(_=o==null?void 0:o.domElement)!=null?_:m.renderer.domElement}}),f=new _s({loaderParams:k({anisotropy:this.maxAnisotropy},n)}),g=new ys({pencil:this}),y=new ds({pencil:this});this.sceneController=C,this.cameraController=p,this.controlsController=u,this.loaderController=f,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 ls({container:e,sceneController:C,cameraController:p});E.add(C.scene),this.helperController=E,i&&E.addViewHelper()}e.appendChild(m.renderer.domElement)}initComposer(){const{bloom:e,bloomParams:t,ssao:s,ssaoParams:i,composer:r}=this.options,o=new ts({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 as(e);t&&o.addRenderer("css2d",i),s&&o.addRenderer("css3d",r),this.cssRendererController=o}}initTransformControls(){const e=new Ts({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,d=this.renderer.getSize(new v.Vector2);d.x===e&&d.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(m=>{var p;(p=m.setSize)==null||p.call(m,e,t)}),this.viewPadding.some(m=>m!==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 d=i.intersectObjects(t||this.scene.children,s);if(d.length)return{object:d[0].object,index:d[0].index,intersects:d}}}render(){var s,i,r,o,n,a;if(!this.camera||!this.scene)return;this.event.emit("beforeRender"),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(d=>{var m;(m=d.update)==null||m.call(d,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(){var e;window.cancelAnimationFrame(this.TweenRaf),(e=this.renderer)==null||e.setAnimationLoop(this.render.bind(this)),this.event.emit("start")}stop(){var e;this.tweenUpdateRaf(),(e=this.renderer)==null||e.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,d,m,p,C,u,f;this.handeleResize(1,1,!1),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(),(d=this.rendererController)==null||d.dispose(),(m=this.loaderController)==null||m.dispose(),(p=this.leadController)==null||p.dispose(),(C=this.mListController)==null||C.dispose(),this.cssRendererController=void 0,this.installPlugins.clear(),(u=this.stats)==null||u.dom.remove(),(f=this.renderer)==null||f.domElement.remove(),this._isDispose=!0}};ue.options={stats:U.IS_DEV,helper:U.IS_DEV,viewHelper:U.IS_DEV,controls:!0,transformControls:U.IS_DEV,renderer:vs,composer:es,scene:Os,camera:lt,bloom:!1,bloomParams:Jt,ssao:!1,loader:fs,ssaoParams:Qt,css2DRenderer:!1,css2DRendererParams:k({},$e),css3DRenderer:!1,css3DRendererParams:k({},$e)};let me=ue;const ws=Q.ACTION;exports.BaseObject=U.BaseObject;exports.ResourceTracker=U.ResourceTracker;exports.Pencil=me;exports.cameraControlsAction=ws;exports.default=me;
@@ -29,7 +29,7 @@ var se = (h, e, t) => new Promise((s, i) => {
29
29
  import * as Ce from "@tweenjs/tween.js";
30
30
  import Ut from "deepmerge";
31
31
  import zt from "stats-gl";
32
- import { Vector3 as j, PerspectiveCamera as kt, Matrix4 as W, ShaderMaterial as Ft, UniformsUtils as Nt, RawShaderMaterial as It, MeshBasicMaterial as jt, PointsMaterial as at, SpriteMaterial as lt, Color as Ht, Layers as Bt, Vector2 as B, WebGLRenderTarget as Vt, HalfFloatType as Yt, MathUtils as Zt, Vector4 as Wt, Quaternion as ht, Spherical as Kt, Box3 as ct, Sphere as $t, Raycaster as dt, AxesHelper as De, CameraHelper as Gt, PointLightHelper as Xt, DirectionalLightHelper as qt, SpotLightHelper as Qt, HemisphereLightHelper as Jt, Box3Helper as Ue, Scene as pt, Group as ze, Camera as es, Loader as mt, FileLoader as Se, Texture as fe, VideoTexture as ts, LoadingManager as ss, DataTexture as is, WebGLRenderer as rs, REVISION as os, Object3D as ns, Timer as as } from "three";
32
+ import { Vector3 as j, PerspectiveCamera as kt, Matrix4 as W, ShaderMaterial as Ft, UniformsUtils as Nt, RawShaderMaterial as It, MeshBasicMaterial as jt, PointsMaterial as at, SpriteMaterial as lt, Color as Ht, Layers as Bt, Vector2 as B, WebGLRenderTarget as Vt, HalfFloatType as Yt, MathUtils as Zt, Vector4 as Wt, Quaternion as ht, Spherical as Kt, Box3 as ct, Sphere as $t, Raycaster as dt, AxesHelper as De, CameraHelper as Gt, PointLightHelper as Xt, DirectionalLightHelper as qt, SpotLightHelper as Qt, HemisphereLightHelper as Jt, Box3Helper as Ue, Scene as mt, Group as ze, Camera as es, Loader as pt, FileLoader as Se, Texture as fe, VideoTexture as ts, LoadingManager as ss, DataTexture as is, WebGLRenderer as rs, REVISION as os, Object3D as ns, Timer as as } from "three";
33
33
  import { M as ut, B as Oe, a as ls, R as Pe, I as he } from "./WebGPULineSegments2.module.js";
34
34
  import { EffectComposer as ke } from "three/examples/jsm/postprocessing/EffectComposer";
35
35
  import { RenderPass as hs } from "three/examples/jsm/postprocessing/RenderPass";
@@ -45,8 +45,8 @@ import "three/examples/jsm/utils/BufferGeometryUtils";
45
45
  import "three-bvh-csg";
46
46
  import "three/examples/jsm/lights/RectAreaLightUniformsLib";
47
47
  import "three/examples/jsm/lines/LineSegments2";
48
- import { ShaderPass as ps } from "three/examples/jsm/postprocessing/ShaderPass";
49
- import { OutputPass as ms } from "three/examples/jsm/postprocessing/OutputPass";
48
+ import { ShaderPass as ms } from "three/examples/jsm/postprocessing/ShaderPass";
49
+ import { OutputPass as ps } from "three/examples/jsm/postprocessing/OutputPass";
50
50
  import { FullScreenQuad as Fe } from "three/examples/jsm/postprocessing/Pass";
51
51
  import { RectAreaLightHelper as us } from "three/examples/jsm/helpers/RectAreaLightHelper";
52
52
  import { ViewHelper as fs } from "three/examples/jsm/helpers/ViewHelper";
@@ -117,25 +117,25 @@ function ce(h, e, t, s, i = 1 / 0, r) {
117
117
  s = Math.max(1e-4, s);
118
118
  const o = 2 / s, n = o * r, a = 1 / (1 + n + 0.48 * n * n + 0.235 * n * n * n);
119
119
  let d = h - e;
120
- const m = e, p = i * s;
121
- d = k(d, -p, p), e = h - d;
120
+ const p = e, m = i * s;
121
+ d = k(d, -m, m), e = h - d;
122
122
  const v = (t.value + o * d) * r;
123
123
  t.value = (t.value - o * v) * a;
124
124
  let u = e + (d + v) * a;
125
- return m - h > 0 == u > m && (u = m, t.value = (u - m) / r), u;
125
+ return p - h > 0 == u > p && (u = p, t.value = (u - p) / r), u;
126
126
  }
127
127
  function Be(h, e, t, s, i = 1 / 0, r, o) {
128
128
  s = Math.max(1e-4, s);
129
129
  const n = 2 / s, a = n * r, d = 1 / (1 + a + 0.48 * a * a + 0.235 * a * a * a);
130
- let m = e.x, p = e.y, v = e.z, u = h.x - m, f = h.y - p, g = h.z - v;
131
- const y = m, l = p, _ = v, O = i * s, C = O * O, w = u * u + f * f + g * g;
130
+ let p = e.x, m = e.y, v = e.z, u = h.x - p, f = h.y - m, g = h.z - v;
131
+ const y = p, l = m, _ = v, O = i * s, C = O * O, w = u * u + f * f + g * g;
132
132
  if (w > C) {
133
133
  const ve = Math.sqrt(w);
134
134
  u = u / ve * O, f = f / ve * O, g = g / ve * O;
135
135
  }
136
- m = h.x - u, p = h.y - f, v = h.z - g;
136
+ p = h.x - u, m = h.y - f, v = h.z - g;
137
137
  const E = (t.x + n * u) * r, x = (t.y + n * f) * r, R = (t.z + n * g) * r;
138
- t.x = (t.x - n * E) * d, t.y = (t.y - n * x) * d, t.z = (t.z - n * R) * d, o.x = m + (u + E) * d, o.y = p + (f + x) * d, o.z = v + (g + R) * d;
138
+ t.x = (t.x - n * E) * d, t.y = (t.y - n * x) * d, t.z = (t.z - n * R) * d, o.x = p + (u + E) * d, o.y = m + (f + x) * d, o.z = v + (g + R) * d;
139
139
  const V = y - h.x, le = l - h.y, bt = _ - h.z, xt = o.x - y, Lt = o.y - l, Pt = o.z - _;
140
140
  return V * xt + le * Lt + bt * Pt > 0 && (o.x = y, o.y = l, o.z = _, t.x = (o.x - y) / r, t.y = (o.y - l) / r, t.z = (o.z - _) / r), o;
141
141
  }
@@ -212,10 +212,10 @@ class ws {
212
212
  }
213
213
  }
214
214
  const de = 1 / 8, bs = /Mac/.test(navigator.platform);
215
- let T, Ve, pe, we, D, b, L, G, ne, F, N, Z, Ye, Ze, z, ae, X, We, be, Ke, xe, Le, me;
215
+ let T, Ve, me, we, D, b, L, G, ne, F, N, Z, Ye, Ze, z, ae, X, We, be, Ke, xe, Le, pe;
216
216
  class J extends ws {
217
217
  static install(e) {
218
- T = e.THREE, Ve = Object.freeze(new T.Vector3(0, 0, 0)), pe = 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(), me = new T.Raycaster();
218
+ 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();
219
219
  }
220
220
  /**
221
221
  * list all ACTIONs
@@ -281,7 +281,7 @@ class J extends ws {
281
281
  "camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information."
282
282
  ), this._camera = e, this._yAxisUpSpace = new T.Quaternion().setFromUnitVectors(
283
283
  this._camera.up,
284
- pe
284
+ me
285
285
  ), this._yAxisUpSpaceInverse = this._yAxisUpSpace.clone().invert(), this._state = c.NONE, this._target = new T.Vector3(), this._targetEnd = this._target.clone(), this._focalOffset = new T.Vector3(), this._focalOffsetEnd = this._focalOffset.clone(), this._spherical = new T.Spherical().setFromVector3(
286
286
  b.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace)
287
287
  ), this._sphericalEnd = this._spherical.clone(), this._lastDistance = this._spherical.radius, this._zoom = this._camera.zoom, this._zoomEnd = this._zoom, this._lastZoom = this._zoom, this._nearPlaneCorners = [
@@ -380,7 +380,7 @@ class J extends ws {
380
380
  }
381
381
  };
382
382
  let d = -1;
383
- const m = (l) => {
383
+ const p = (l) => {
384
384
  if (!this._domElement || !this._enabled || this.mouseButtons.wheel === c.NONE) return;
385
385
  if (this._interactiveArea.left !== 0 || this._interactiveArea.top !== 0 || this._interactiveArea.width !== 1 || this._interactiveArea.height !== 1) {
386
386
  const E = this._domElement.getBoundingClientRect(), x = (l.clientX - E.left) / (E.right - E.left), R = (l.clientY - E.top) / (E.bottom - E.top);
@@ -419,7 +419,7 @@ class J extends ws {
419
419
  }
420
420
  }
421
421
  this.dispatchEvent({ type: "control" });
422
- }, p = (l) => {
422
+ }, m = (l) => {
423
423
  if (!(!this._domElement || !this._enabled)) {
424
424
  if (this.mouseButtons.right === J.ACTION.NONE) {
425
425
  const _ = l instanceof PointerEvent ? l.pointerId : 0, O = this._findPointerById(_);
@@ -535,13 +535,13 @@ class J extends ws {
535
535
  this.unlockPointer();
536
536
  };
537
537
  this._addAllEventListeners = (l) => {
538
- this._domElement = l, this._domElement.style.touchAction = "none", this._domElement.style.userSelect = "none", this._domElement.style.webkitUserSelect = "none", this._domElement.addEventListener("pointerdown", o), this._domElement.addEventListener("pointercancel", a), this._domElement.addEventListener("wheel", m, {
538
+ this._domElement = l, this._domElement.style.touchAction = "none", this._domElement.style.userSelect = "none", this._domElement.style.webkitUserSelect = "none", this._domElement.addEventListener("pointerdown", o), this._domElement.addEventListener("pointercancel", a), this._domElement.addEventListener("wheel", p, {
539
539
  passive: !1
540
- }), this._domElement.addEventListener("contextmenu", p);
540
+ }), this._domElement.addEventListener("contextmenu", m);
541
541
  }, this._removeAllEventListeners = () => {
542
- this._domElement && (this._domElement.style.touchAction = "", this._domElement.style.userSelect = "", this._domElement.style.webkitUserSelect = "", this._domElement.removeEventListener("pointerdown", o), this._domElement.removeEventListener("pointercancel", a), this._domElement.removeEventListener("wheel", m, {
542
+ this._domElement && (this._domElement.style.touchAction = "", this._domElement.style.userSelect = "", this._domElement.style.webkitUserSelect = "", this._domElement.removeEventListener("pointerdown", o), this._domElement.removeEventListener("pointercancel", a), this._domElement.removeEventListener("wheel", p, {
543
543
  passive: !1
544
- }), this._domElement.removeEventListener("contextmenu", p), this._domElement.ownerDocument.removeEventListener(
544
+ }), this._domElement.removeEventListener("contextmenu", m), this._domElement.ownerDocument.removeEventListener(
545
545
  "pointermove",
546
546
  n,
547
547
  { passive: !1 }
@@ -985,10 +985,10 @@ class J extends ws {
985
985
  d.isEmpty() && (console.warn(
986
986
  "camera-controls: fitTo() cannot be used with an empty box. Aborting"
987
987
  ), Promise.resolve());
988
- const m = He(this._sphericalEnd.theta, je), p = He(this._sphericalEnd.phi, je);
989
- a.push(this.rotateTo(m, p, t));
988
+ const p = He(this._sphericalEnd.theta, je), m = He(this._sphericalEnd.phi, je);
989
+ a.push(this.rotateTo(p, m, t));
990
990
  const v = b.setFromSpherical(this._sphericalEnd).normalize(), u = Ke.setFromUnitVectors(v, we), f = P(Math.abs(v.y), 1);
991
- f && u.multiply(xe.setFromAxisAngle(pe, m)), u.multiply(this._yAxisUpSpaceInverse);
991
+ f && u.multiply(xe.setFromAxisAngle(me, p)), u.multiply(this._yAxisUpSpaceInverse);
992
992
  const g = We.makeEmpty();
993
993
  L.copy(d.min).applyQuaternion(u), g.expandByPoint(L), L.copy(d.min).setX(d.max.x).applyQuaternion(u), g.expandByPoint(L), L.copy(d.min).setY(d.max.y).applyQuaternion(u), g.expandByPoint(L), L.copy(d.max).setZ(d.min.z).applyQuaternion(u), g.expandByPoint(L), L.copy(d.min).setZ(d.max.z).applyQuaternion(u), g.expandByPoint(L), L.copy(d.max).setY(d.min.y).applyQuaternion(u), g.expandByPoint(L), L.copy(d.max).setX(d.min.x).applyQuaternion(u), g.expandByPoint(L), L.copy(d.max).applyQuaternion(u), g.expandByPoint(L), g.min.x -= i, g.min.y -= o, g.max.x += r, g.max.y += n, u.setFromUnitVectors(we, v), f && u.premultiply(xe.invert()), u.premultiply(this._yAxisUpSpace);
994
994
  const y = g.getSize(b), l = g.getCenter(L).applyQuaternion(u);
@@ -1051,7 +1051,7 @@ class J extends ws {
1051
1051
  this._targetEnd.copy(a), this._sphericalEnd.setFromVector3(
1052
1052
  d.sub(a).applyQuaternion(this._yAxisUpSpace)
1053
1053
  ), this.normalizeRotations(), this._needsUpdate = !0, n || (this._target.copy(this._targetEnd), this._spherical.copy(this._sphericalEnd));
1054
- const m = !n || P(this._target.x, this._targetEnd.x, this.restThreshold) && P(this._target.y, this._targetEnd.y, this.restThreshold) && P(this._target.z, this._targetEnd.z, this.restThreshold) && P(
1054
+ const p = !n || P(this._target.x, this._targetEnd.x, this.restThreshold) && P(this._target.y, this._targetEnd.y, this.restThreshold) && P(this._target.z, this._targetEnd.z, this.restThreshold) && P(
1055
1055
  this._spherical.theta,
1056
1056
  this._sphericalEnd.theta,
1057
1057
  this.restThreshold
@@ -1064,7 +1064,7 @@ class J extends ws {
1064
1064
  this._sphericalEnd.radius,
1065
1065
  this.restThreshold
1066
1066
  );
1067
- return this._createOnRestPromise(m);
1067
+ return this._createOnRestPromise(p);
1068
1068
  }
1069
1069
  /**
1070
1070
  * Similar to setLookAt, but it interpolates between two states.
@@ -1084,13 +1084,13 @@ class J extends ws {
1084
1084
  * @param enableTransition
1085
1085
  * @category Methods
1086
1086
  */
1087
- lerpLookAt(e, t, s, i, r, o, n, a, d, m, p, v, u, f = !1) {
1087
+ lerpLookAt(e, t, s, i, r, o, n, a, d, p, m, v, u, f = !1) {
1088
1088
  this._isUserControllingRotate = !1, this._isUserControllingDolly = !1, this._isUserControllingTruck = !1, this._lastDollyDirection = K.NONE, this._changedDolly = 0;
1089
1089
  const g = b.set(i, r, o), y = L.set(e, t, s);
1090
1090
  z.setFromVector3(
1091
1091
  y.sub(g).applyQuaternion(this._yAxisUpSpace)
1092
1092
  );
1093
- const l = G.set(m, p, v), _ = L.set(n, a, d);
1093
+ const l = G.set(p, m, v), _ = L.set(n, a, d);
1094
1094
  ae.setFromVector3(
1095
1095
  _.sub(l).applyQuaternion(this._yAxisUpSpace)
1096
1096
  ), this._targetEnd.copy(g.lerp(l, u));
@@ -1347,7 +1347,7 @@ class J extends ws {
1347
1347
  * @category Methods
1348
1348
  */
1349
1349
  updateCameraUp() {
1350
- this._yAxisUpSpace.setFromUnitVectors(this._camera.up, pe), this._yAxisUpSpaceInverse.copy(this._yAxisUpSpace).invert();
1350
+ this._yAxisUpSpace.setFromUnitVectors(this._camera.up, me), this._yAxisUpSpaceInverse.copy(this._yAxisUpSpace).invert();
1351
1351
  }
1352
1352
  /**
1353
1353
  * Apply current camera-up direction to the camera.
@@ -1375,12 +1375,12 @@ class J extends ws {
1375
1375
  if (A(t))
1376
1376
  this._thetaVelocity.value = 0, this._spherical.theta = this._sphericalEnd.theta;
1377
1377
  else {
1378
- const p = this._isUserControllingRotate ? this.draggingSmoothTime : this.smoothTime;
1378
+ const m = this._isUserControllingRotate ? this.draggingSmoothTime : this.smoothTime;
1379
1379
  this._spherical.theta = ce(
1380
1380
  this._spherical.theta,
1381
1381
  this._sphericalEnd.theta,
1382
1382
  this._thetaVelocity,
1383
- p,
1383
+ m,
1384
1384
  1 / 0,
1385
1385
  e
1386
1386
  ), this._needsUpdate = !0;
@@ -1388,12 +1388,12 @@ class J extends ws {
1388
1388
  if (A(s))
1389
1389
  this._phiVelocity.value = 0, this._spherical.phi = this._sphericalEnd.phi;
1390
1390
  else {
1391
- const p = this._isUserControllingRotate ? this.draggingSmoothTime : this.smoothTime;
1391
+ const m = this._isUserControllingRotate ? this.draggingSmoothTime : this.smoothTime;
1392
1392
  this._spherical.phi = ce(
1393
1393
  this._spherical.phi,
1394
1394
  this._sphericalEnd.phi,
1395
1395
  this._phiVelocity,
1396
- p,
1396
+ m,
1397
1397
  1 / 0,
1398
1398
  e
1399
1399
  ), this._needsUpdate = !0;
@@ -1401,12 +1401,12 @@ class J extends ws {
1401
1401
  if (A(i))
1402
1402
  this._radiusVelocity.value = 0, this._spherical.radius = this._sphericalEnd.radius;
1403
1403
  else {
1404
- const p = this._isUserControllingDolly ? this.draggingSmoothTime : this.smoothTime;
1404
+ const m = this._isUserControllingDolly ? this.draggingSmoothTime : this.smoothTime;
1405
1405
  this._spherical.radius = ce(
1406
1406
  this._spherical.radius,
1407
1407
  this._sphericalEnd.radius,
1408
1408
  this._radiusVelocity,
1409
- p,
1409
+ m,
1410
1410
  this.maxSpeed,
1411
1411
  e
1412
1412
  ), this._needsUpdate = !0;
@@ -1414,12 +1414,12 @@ class J extends ws {
1414
1414
  if (A(r.x) && A(r.y) && A(r.z))
1415
1415
  this._targetVelocity.set(0, 0, 0), this._target.copy(this._targetEnd);
1416
1416
  else {
1417
- const p = this._isUserControllingTruck ? this.draggingSmoothTime : this.smoothTime;
1417
+ const m = this._isUserControllingTruck ? this.draggingSmoothTime : this.smoothTime;
1418
1418
  Be(
1419
1419
  this._target,
1420
1420
  this._targetEnd,
1421
1421
  this._targetVelocity,
1422
- p,
1422
+ m,
1423
1423
  this.maxSpeed,
1424
1424
  e,
1425
1425
  this._target
@@ -1428,12 +1428,12 @@ class J extends ws {
1428
1428
  if (A(o.x) && A(o.y) && A(o.z))
1429
1429
  this._focalOffsetVelocity.set(0, 0, 0), this._focalOffset.copy(this._focalOffsetEnd);
1430
1430
  else {
1431
- const p = this._isUserControllingOffset ? this.draggingSmoothTime : this.smoothTime;
1431
+ const m = this._isUserControllingOffset ? this.draggingSmoothTime : this.smoothTime;
1432
1432
  Be(
1433
1433
  this._focalOffset,
1434
1434
  this._focalOffsetEnd,
1435
1435
  this._focalOffsetVelocity,
1436
- p,
1436
+ m,
1437
1437
  this.maxSpeed,
1438
1438
  e,
1439
1439
  this._focalOffset
@@ -1442,21 +1442,21 @@ class J extends ws {
1442
1442
  if (A(n))
1443
1443
  this._zoomVelocity.value = 0, this._zoom = this._zoomEnd;
1444
1444
  else {
1445
- const p = this._isUserControllingZoom ? this.draggingSmoothTime : this.smoothTime;
1445
+ const m = this._isUserControllingZoom ? this.draggingSmoothTime : this.smoothTime;
1446
1446
  this._zoom = ce(
1447
1447
  this._zoom,
1448
1448
  this._zoomEnd,
1449
1449
  this._zoomVelocity,
1450
- p,
1450
+ m,
1451
1451
  1 / 0,
1452
1452
  e
1453
1453
  );
1454
1454
  }
1455
1455
  if (this.dollyToCursor) {
1456
1456
  if (Y(this._camera) && this._changedDolly !== 0) {
1457
- const p = this._spherical.radius - this._lastDistance, v = this._camera, u = this._getCameraDirection(ne), f = b.copy(u).cross(v.up).normalize();
1457
+ const m = this._spherical.radius - this._lastDistance, v = this._camera, u = this._getCameraDirection(ne), f = b.copy(u).cross(v.up).normalize();
1458
1458
  f.lengthSq() === 0 && (f.x = 1);
1459
- const g = L.crossVectors(f, u), y = this._sphericalEnd.radius * Math.tan(v.getEffectiveFOV() * ie * 0.5), _ = (this._sphericalEnd.radius - p - this._sphericalEnd.radius) / this._sphericalEnd.radius, O = G.copy(this._targetEnd).add(
1459
+ const g = L.crossVectors(f, u), y = this._sphericalEnd.radius * Math.tan(v.getEffectiveFOV() * ie * 0.5), _ = (this._sphericalEnd.radius - m - this._sphericalEnd.radius) / this._sphericalEnd.radius, O = G.copy(this._targetEnd).add(
1460
1460
  f.multiplyScalar(
1461
1461
  this._dollyControlCoord.x * y * v.aspect
1462
1462
  )
@@ -1464,24 +1464,24 @@ class J extends ws {
1464
1464
  g.multiplyScalar(this._dollyControlCoord.y * y)
1465
1465
  ), C = b.copy(this._targetEnd).lerp(O, _), w = this._lastDollyDirection === K.IN && this._spherical.radius <= this.minDistance, E = this._lastDollyDirection === K.OUT && this.maxDistance <= this._spherical.radius;
1466
1466
  if (this.infinityDolly && (w || E)) {
1467
- this._sphericalEnd.radius -= p, this._spherical.radius -= p;
1468
- const R = L.copy(u).multiplyScalar(-p);
1467
+ this._sphericalEnd.radius -= m, this._spherical.radius -= m;
1468
+ const R = L.copy(u).multiplyScalar(-m);
1469
1469
  C.add(R);
1470
1470
  }
1471
1471
  this._boundary.clampPoint(C, C);
1472
1472
  const x = L.subVectors(C, this._targetEnd);
1473
- this._targetEnd.copy(C), this._target.add(x), this._changedDolly -= p, A(this._changedDolly) && (this._changedDolly = 0);
1473
+ this._targetEnd.copy(C), this._target.add(x), this._changedDolly -= m, A(this._changedDolly) && (this._changedDolly = 0);
1474
1474
  } else if (H(this._camera) && this._changedZoom !== 0) {
1475
- const p = this._zoom - this._lastZoom, v = this._camera, u = b.set(
1475
+ const m = this._zoom - this._lastZoom, v = this._camera, u = b.set(
1476
1476
  this._dollyControlCoord.x,
1477
1477
  this._dollyControlCoord.y,
1478
1478
  (v.near + v.far) / (v.near - v.far)
1479
- ).unproject(v), f = L.set(0, 0, -1).applyQuaternion(v.quaternion), g = G.copy(u).add(f.multiplyScalar(-u.dot(v.up))), l = -(this._zoom - p - this._zoom) / this._zoom, _ = this._getCameraDirection(ne), O = this._targetEnd.dot(_), C = b.copy(this._targetEnd).lerp(g, l), w = C.dot(_), E = _.multiplyScalar(
1479
+ ).unproject(v), f = L.set(0, 0, -1).applyQuaternion(v.quaternion), g = G.copy(u).add(f.multiplyScalar(-u.dot(v.up))), l = -(this._zoom - m - this._zoom) / this._zoom, _ = this._getCameraDirection(ne), O = this._targetEnd.dot(_), C = b.copy(this._targetEnd).lerp(g, l), w = C.dot(_), E = _.multiplyScalar(
1480
1480
  w - O
1481
1481
  );
1482
1482
  C.sub(E), this._boundary.clampPoint(C, C);
1483
1483
  const x = L.subVectors(C, this._targetEnd);
1484
- this._targetEnd.copy(C), this._target.add(x), this._changedZoom -= p, A(this._changedZoom) && (this._changedZoom = 0);
1484
+ this._targetEnd.copy(C), this._target.add(x), this._changedZoom -= m, A(this._changedZoom) && (this._changedZoom = 0);
1485
1485
  }
1486
1486
  }
1487
1487
  this._camera.zoom !== this._zoom && (this._camera.zoom = this._zoom, this._camera.updateProjectionMatrix(), this._updateNearPlaneCorners(), this._needsUpdate = !0), this._dragNeedsUpdate = !0;
@@ -1491,8 +1491,8 @@ class J extends ws {
1491
1491
  b.setFromSpherical(this._spherical).applyQuaternion(this._yAxisUpSpaceInverse),
1492
1492
  1
1493
1493
  );
1494
- const m = this._needsUpdate;
1495
- return m && !this._updatedLastTime ? (this._hasRested = !1, this.dispatchEvent({ type: "wake" }), this.dispatchEvent({ type: "update" })) : m ? (this.dispatchEvent({ type: "update" }), A(t, this.restThreshold) && A(s, this.restThreshold) && A(i, this.restThreshold) && A(r.x, this.restThreshold) && A(r.y, this.restThreshold) && A(r.z, this.restThreshold) && A(o.x, this.restThreshold) && A(o.y, this.restThreshold) && A(o.z, this.restThreshold) && A(n, this.restThreshold) && !this._hasRested && (this._hasRested = !0, this.dispatchEvent({ type: "rest" }))) : !m && this._updatedLastTime && (this._hasRested || (this._hasRested = !0, this.dispatchEvent({ type: "rest" })), this.dispatchEvent({ type: "sleep" })), this._lastDistance = this._spherical.radius, this._lastZoom = this._zoom, this._updatedLastTime = m, this._needsUpdate = !1, m;
1494
+ const p = this._needsUpdate;
1495
+ return p && !this._updatedLastTime ? (this._hasRested = !1, this.dispatchEvent({ type: "wake" }), this.dispatchEvent({ type: "update" })) : p ? (this.dispatchEvent({ type: "update" }), A(t, this.restThreshold) && A(s, this.restThreshold) && A(i, this.restThreshold) && A(r.x, this.restThreshold) && A(r.y, this.restThreshold) && A(r.z, this.restThreshold) && A(o.x, this.restThreshold) && A(o.y, this.restThreshold) && A(o.z, this.restThreshold) && A(n, this.restThreshold) && !this._hasRested && (this._hasRested = !0, this.dispatchEvent({ type: "rest" }))) : !p && this._updatedLastTime && (this._hasRested || (this._hasRested = !0, this.dispatchEvent({ type: "rest" })), this.dispatchEvent({ type: "sleep" })), this._lastDistance = this._spherical.radius, this._lastZoom = this._zoom, this._updatedLastTime = p, this._needsUpdate = !1, p;
1496
1496
  }
1497
1497
  /**
1498
1498
  * Get all state in JSON string
@@ -1622,8 +1622,8 @@ class J extends ws {
1622
1622
  const r = L.copy(this._nearPlaneCorners[i]);
1623
1623
  r.applyMatrix4(Le);
1624
1624
  const o = G.addVectors(this._target, r);
1625
- me.set(o, s), me.far = this._spherical.radius + 1;
1626
- const n = me.intersectObjects(this.colliderMeshes);
1625
+ pe.set(o, s), pe.far = this._spherical.radius + 1;
1626
+ const n = pe.intersectObjects(this.colliderMeshes);
1627
1627
  n.length !== 0 && n[0].distance < e && (e = n[0].distance);
1628
1628
  }
1629
1629
  return e;
@@ -1701,9 +1701,9 @@ class J extends ws {
1701
1701
  if (!n.geometry) return;
1702
1702
  const a = n.geometry.clone();
1703
1703
  a.applyMatrix4(n.matrixWorld);
1704
- const m = a.attributes.position;
1705
- for (let p = 0, v = m.count; p < v; p++)
1706
- b.fromBufferAttribute(m, p), r = Math.max(r, i.distanceToSquared(b));
1704
+ const p = a.attributes.position;
1705
+ for (let m = 0, v = p.count; m < v; m++)
1706
+ b.fromBufferAttribute(p, m), r = Math.max(r, i.distanceToSquared(b));
1707
1707
  }), s.radius = Math.sqrt(r), s;
1708
1708
  }
1709
1709
  }
@@ -1780,8 +1780,8 @@ S.prototype.emit = function(e) {
1780
1780
  if (typeof a == "function")
1781
1781
  $e(a, this, t);
1782
1782
  else
1783
- for (var d = a.length, m = Et(a, d), s = 0; s < d; ++s)
1784
- $e(m[s], this, t);
1783
+ for (var d = a.length, p = Et(a, d), s = 0; s < d; ++s)
1784
+ $e(p[s], this, t);
1785
1785
  return !0;
1786
1786
  };
1787
1787
  function yt(h, e, t, s) {
@@ -2078,7 +2078,7 @@ class Ds extends ee {
2078
2078
  }
2079
2079
  }
2080
2080
  const Us = (h) => {
2081
- const e = new ps(
2081
+ const e = new ms(
2082
2082
  new Ft({
2083
2083
  uniforms: {
2084
2084
  baseTexture: { value: null },
@@ -2207,7 +2207,7 @@ const Us = (h) => {
2207
2207
  }`
2208
2208
  )
2209
2209
  };
2210
- class ks extends ms {
2210
+ class ks extends ps {
2211
2211
  constructor() {
2212
2212
  super();
2213
2213
  const e = zs;
@@ -2258,20 +2258,20 @@ class Ws {
2258
2258
  composerParams: r
2259
2259
  } = e, { renderer: o } = t;
2260
2260
  this.renderer = o;
2261
- const { multisampling: n } = r, { maxSamples: a } = o.capabilities, d = o.getDrawingBufferSize(new B()), m = new Vt(
2261
+ const { multisampling: n } = r, { maxSamples: a } = o.capabilities, d = o.getDrawingBufferSize(new B()), p = new Vt(
2262
2262
  d.width,
2263
2263
  d.height,
2264
2264
  {
2265
2265
  samples: Math.min(n, a),
2266
2266
  type: Yt
2267
2267
  }
2268
- ), p = new ke(o, m), v = this.getSize();
2269
- p.setSize(v.width, v.height);
2268
+ ), m = new ke(o, p), v = this.getSize();
2269
+ m.setSize(v.width, v.height);
2270
2270
  const u = new hs(
2271
2271
  s.scene,
2272
2272
  i.camera
2273
2273
  );
2274
- p.addPass(u), this.scene = s.scene, this.camera = i.camera, this.finalComposer = p, this.renderPass = u, i.event.on("pageChange", (f) => {
2274
+ m.addPass(u), this.scene = s.scene, this.camera = i.camera, this.finalComposer = m, this.renderPass = u, i.event.on("pageChange", (f) => {
2275
2275
  this.changeCamera(f);
2276
2276
  }), s.event.on("pageChange", (f) => {
2277
2277
  this.changeScene(f);
@@ -2460,8 +2460,8 @@ class Xs {
2460
2460
  a.style.overflow = "hidden", this.domElement = a;
2461
2461
  const d = document.createElement("div");
2462
2462
  d.style.transformOrigin = "0 0", d.style.pointerEvents = "none", a.appendChild(d);
2463
- const m = document.createElement("div");
2464
- m.style.transformStyle = "preserve-3d", d.appendChild(m), this.getSize = function() {
2463
+ const p = document.createElement("div");
2464
+ p.style.transformStyle = "preserve-3d", d.appendChild(p), this.getSize = function() {
2465
2465
  return {
2466
2466
  width: s,
2467
2467
  height: i
@@ -2471,21 +2471,21 @@ class Xs {
2471
2471
  l.view && l.view.enabled ? (d.style.transform = `translate( ${-l.view.offsetX * (s / l.view.width)}px, ${-l.view.offsetY * (i / l.view.height)}px )`, d.style.transform += `scale( ${l.view.fullWidth / l.view.width}, ${l.view.fullHeight / l.view.height} )`) : d.style.transform = "", y.matrixWorldAutoUpdate === !0 && y.updateMatrixWorld(), l.parent === null && l.matrixWorldAutoUpdate === !0 && l.updateMatrixWorld();
2472
2472
  let O, C;
2473
2473
  l.isOrthographicCamera && (O = -(l.right + l.left) / 2, C = (l.top + l.bottom) / 2);
2474
- const w = l.view && l.view.enabled ? l.view.height / l.view.fullHeight : 1, E = l.isOrthographicCamera ? `scale( ${w} )scale(` + _ + ")translate(" + p(O) + "px," + p(C) + "px)" + v(l.matrixWorldInverse) : `scale( ${w} )translateZ(` + _ + "px)" + v(l.matrixWorldInverse), R = (l.isPerspectiveCamera ? "perspective(" + _ + "px) " : "") + E + "translate(" + r + "px," + o + "px)";
2475
- n.camera.style !== R && (m.style.transform = R, n.camera.style = R), g(y, y, l);
2474
+ const w = l.view && l.view.enabled ? l.view.height / l.view.fullHeight : 1, E = l.isOrthographicCamera ? `scale( ${w} )scale(` + _ + ")translate(" + m(O) + "px," + m(C) + "px)" + v(l.matrixWorldInverse) : `scale( ${w} )translateZ(` + _ + "px)" + v(l.matrixWorldInverse), R = (l.isPerspectiveCamera ? "perspective(" + _ + "px) " : "") + E + "translate(" + r + "px," + o + "px)";
2475
+ n.camera.style !== R && (p.style.transform = R, n.camera.style = R), g(y, y, l);
2476
2476
  }, this.setSize = function(y, l) {
2477
- s = y, i = l, r = s / 2, o = i / 2, a.style.width = y + "px", a.style.height = l + "px", d.style.width = y + "px", d.style.height = l + "px", m.style.width = y + "px", m.style.height = l + "px";
2477
+ s = y, i = l, r = s / 2, o = i / 2, a.style.width = y + "px", a.style.height = l + "px", d.style.width = y + "px", d.style.height = l + "px", p.style.width = y + "px", p.style.height = l + "px";
2478
2478
  };
2479
- function p(y) {
2479
+ function m(y) {
2480
2480
  return Math.abs(y) < 1e-10 ? 0 : y;
2481
2481
  }
2482
2482
  function v(y) {
2483
2483
  const l = y.elements;
2484
- return "matrix3d(" + p(l[0]) + "," + p(-l[1]) + "," + p(l[2]) + "," + p(l[3]) + "," + p(l[4]) + "," + p(-l[5]) + "," + p(l[6]) + "," + p(l[7]) + "," + p(l[8]) + "," + p(-l[9]) + "," + p(l[10]) + "," + p(l[11]) + "," + p(l[12]) + "," + p(-l[13]) + "," + p(l[14]) + "," + p(l[15]) + ")";
2484
+ return "matrix3d(" + m(l[0]) + "," + m(-l[1]) + "," + m(l[2]) + "," + m(l[3]) + "," + m(l[4]) + "," + m(-l[5]) + "," + m(l[6]) + "," + m(l[7]) + "," + m(l[8]) + "," + m(-l[9]) + "," + m(l[10]) + "," + m(l[11]) + "," + m(l[12]) + "," + m(-l[13]) + "," + m(l[14]) + "," + m(l[15]) + ")";
2485
2485
  }
2486
2486
  function u(y) {
2487
2487
  const l = y.elements;
2488
- return "translate(-50%,-50%)" + ("matrix3d(" + p(l[0]) + "," + p(l[1]) + "," + p(l[2]) + "," + p(l[3]) + "," + p(-l[4]) + "," + p(-l[5]) + "," + p(-l[6]) + "," + p(-l[7]) + "," + p(l[8]) + "," + p(l[9]) + "," + p(l[10]) + "," + p(l[11]) + "," + p(l[12]) + "," + p(l[13]) + "," + p(l[14]) + "," + p(l[15]) + ")");
2488
+ return "translate(-50%,-50%)" + ("matrix3d(" + m(l[0]) + "," + m(l[1]) + "," + m(l[2]) + "," + m(l[3]) + "," + m(-l[4]) + "," + m(-l[5]) + "," + m(-l[6]) + "," + m(-l[7]) + "," + m(l[8]) + "," + m(l[9]) + "," + m(l[10]) + "," + m(l[11]) + "," + m(l[12]) + "," + m(l[13]) + "," + m(l[14]) + "," + m(l[15]) + ")");
2489
2489
  }
2490
2490
  function f(y) {
2491
2491
  y.isCSS3DObject && (y.element.style.display = "none");
@@ -2509,7 +2509,7 @@ class Xs {
2509
2509
  const R = { style: E };
2510
2510
  n.objects.set(y, R);
2511
2511
  }
2512
- w.parentNode !== m && m.appendChild(w), y.onAfterRender(t, l, _);
2512
+ w.parentNode !== p && p.appendChild(w), y.onAfterRender(t, l, _);
2513
2513
  }
2514
2514
  }
2515
2515
  for (let C = 0, w = y.children.length; C < w; C++)
@@ -2536,7 +2536,7 @@ class qs {
2536
2536
  height: i
2537
2537
  };
2538
2538
  }, this.render = function(f, g) {
2539
- f.matrixWorldAutoUpdate === !0 && f.updateMatrixWorld(), g.parent === null && g.matrixWorldAutoUpdate === !0 && g.updateMatrixWorld(), Je.copy(g.matrixWorldInverse), et.multiplyMatrices(g.projectionMatrix, Je), m(f, f, g), u(f);
2539
+ f.matrixWorldAutoUpdate === !0 && f.updateMatrixWorld(), g.parent === null && g.matrixWorldAutoUpdate === !0 && g.updateMatrixWorld(), Je.copy(g.matrixWorldInverse), et.multiplyMatrices(g.projectionMatrix, Je), p(f, f, g), u(f);
2540
2540
  }, this.setSize = function(f, g) {
2541
2541
  s = f, i = g, r = s / 2, o = i / 2, a.style.width = f + "px", a.style.height = g + "px";
2542
2542
  };
@@ -2545,7 +2545,7 @@ class qs {
2545
2545
  for (let g = 0, y = f.children.length; g < y; g++)
2546
2546
  d(f.children[g]);
2547
2547
  }
2548
- function m(f, g, y) {
2548
+ function p(f, g, y) {
2549
2549
  if (f.visible === !1) {
2550
2550
  d(f);
2551
2551
  return;
@@ -2555,14 +2555,14 @@ class qs {
2555
2555
  const l = q.z >= -1 && q.z <= 1 && f.layers.test(y.layers) === !0, _ = f.element;
2556
2556
  _.style.display = l === !0 ? "" : "none", l === !0 && (f.onBeforeRender(t, g, y), _.style.transform = "translate(" + -100 * f.center.x + "%," + -100 * f.center.y + "%)translate(" + (q.x * r + r) + "px," + (-q.y * o + o) + "px)", _.parentNode !== a && a.appendChild(_), f.onAfterRender(t, g, y));
2557
2557
  const O = {
2558
- distanceToCameraSquared: p(y, f)
2558
+ distanceToCameraSquared: m(y, f)
2559
2559
  };
2560
2560
  n.objects.set(f, O);
2561
2561
  }
2562
2562
  for (let l = 0, _ = f.children.length; l < _; l++)
2563
- m(f.children[l], g, y);
2563
+ p(f.children[l], g, y);
2564
2564
  }
2565
- function p(f, g) {
2565
+ function m(f, g) {
2566
2566
  return tt.setFromMatrixPosition(f.matrixWorld), st.setFromMatrixPosition(g.matrixWorld), tt.distanceToSquared(st);
2567
2567
  }
2568
2568
  function v(f) {
@@ -2730,15 +2730,15 @@ class ei {
2730
2730
  g.has(u.type) || g.set(u.type, []), g.get(u.type).push(u.cb);
2731
2731
  }
2732
2732
  if (a.size === 0) return;
2733
- const d = [...a.keys()].map((u) => u.object3d), m = (v = this.pencil.pick(r, d, !0)) == null ? void 0 : v.intersects;
2734
- if (!m || m.length === 0)
2733
+ const d = [...a.keys()].map((u) => u.object3d), p = (v = this.pencil.pick(r, d, !0)) == null ? void 0 : v.intersects;
2734
+ if (!p || p.length === 0)
2735
2735
  e === "down" ? this.handleDownOutside(r) : e === "move" && this.handleLeaveEvents(r);
2736
2736
  else {
2737
- const u = m[0];
2737
+ const u = p[0];
2738
2738
  this.processIntersection(u, r, e);
2739
2739
  }
2740
- const p = this.prevActiveObjects;
2741
- this.prevActiveObjects = this.activeObjects, this.activeObjects = p, this.activeObjects.clear();
2740
+ const m = this.prevActiveObjects;
2741
+ this.prevActiveObjects = this.activeObjects, this.activeObjects = m, this.activeObjects.clear();
2742
2742
  };
2743
2743
  this.domElement.addEventListener(
2744
2744
  `pointer${e}`,
@@ -2768,18 +2768,18 @@ class ei {
2768
2768
  if (t === "move") {
2769
2769
  const d = a.get("enter");
2770
2770
  if (d && !this.prevActiveObjects.has(n))
2771
- for (const p of d)
2772
- p({
2771
+ for (const m of d)
2772
+ m({
2773
2773
  baseObject: n,
2774
2774
  realBaseObject: this.activeObject,
2775
2775
  mouseEvent: e,
2776
2776
  sp: o,
2777
2777
  intersectionIndex: s
2778
2778
  });
2779
- const m = a.get("move");
2780
- if (m)
2781
- for (const p of m)
2782
- p({
2779
+ const p = a.get("move");
2780
+ if (p)
2781
+ for (const m of p)
2782
+ m({
2783
2783
  baseObject: n,
2784
2784
  realBaseObject: this.activeObject,
2785
2785
  mouseEvent: e,
@@ -2789,21 +2789,21 @@ class ei {
2789
2789
  } else {
2790
2790
  const d = a.get("down");
2791
2791
  if (d)
2792
- for (const p of d)
2793
- p({
2792
+ for (const m of d)
2793
+ m({
2794
2794
  baseObject: n,
2795
2795
  realBaseObject: this.activeObject,
2796
2796
  mouseEvent: e,
2797
2797
  sp: o,
2798
2798
  intersectionIndex: s
2799
2799
  });
2800
- const m = a.get("click");
2801
- if (m) {
2802
- const p = (v) => {
2800
+ const p = a.get("click");
2801
+ if (p) {
2802
+ const m = (v) => {
2803
2803
  v.preventDefault();
2804
2804
  const u = 5;
2805
2805
  if (!r && Math.abs(v.clientX - e.clientX) <= u && Math.abs(v.clientY - e.clientY) <= u)
2806
- for (const f of m)
2806
+ for (const f of p)
2807
2807
  f({
2808
2808
  baseObject: n,
2809
2809
  realBaseObject: this.activeObject,
@@ -2811,9 +2811,9 @@ class ei {
2811
2811
  sp: o,
2812
2812
  intersectionIndex: s
2813
2813
  });
2814
- this.domElement.removeEventListener("pointerup", p);
2814
+ this.domElement.removeEventListener("pointerup", m);
2815
2815
  };
2816
- this.domElement.addEventListener("pointerup", p);
2816
+ this.domElement.addEventListener("pointerup", m);
2817
2817
  }
2818
2818
  }
2819
2819
  }
@@ -2861,13 +2861,13 @@ class ei {
2861
2861
  for (const n of r) {
2862
2862
  const a = n;
2863
2863
  a.element.style.pointerEvents = "auto";
2864
- const d = (p) => {
2865
- this.enabled && (p.preventDefault(), s({
2864
+ const d = (m) => {
2865
+ this.enabled && (m.preventDefault(), s({
2866
2866
  baseObject: a,
2867
- mouseEvent: p
2867
+ mouseEvent: m
2868
2868
  }));
2869
- }, m = `pointer${t}`;
2870
- a.element.addEventListener(m, rt(d), !1), o.push({ arr: a, type: m, listener: d });
2869
+ }, p = `pointer${t}`;
2870
+ a.element.addEventListener(p, rt(d), !1), o.push({ arr: a, type: p, listener: d });
2871
2871
  }
2872
2872
  return this.pickNodeFunctionsMap.set(i, o), i;
2873
2873
  }
@@ -2889,7 +2889,7 @@ class ei {
2889
2889
  }
2890
2890
  class ti extends ei {
2891
2891
  constructor(e, t) {
2892
- 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 pt(), {
2892
+ 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 mt(), {
2893
2893
  key: "@Scene",
2894
2894
  name: "场景",
2895
2895
  mList: !1
@@ -2958,12 +2958,12 @@ class ti extends ei {
2958
2958
  const i = this.objectNamesToFactories.get(e);
2959
2959
  if (i) {
2960
2960
  t || (t = {}), t.target === void 0 && (t.target = s);
2961
- const a = t.target, d = (r = t.onTop) != null ? r : 0, m = (o = t.prefab) != null ? o : !1, p = (n = t.create) != null ? n : !0, v = new i().create(t);
2961
+ const a = t.target, d = (r = t.onTop) != null ? r : 0, p = (o = t.prefab) != null ? o : !1, m = (n = t.create) != null ? n : !0, v = new i().create(t);
2962
2962
  let u;
2963
- return a === null ? u = null : typeof a == "string" ? u = this.objects.get(a) : a != null && a.isBaseObject || a ? u = a : m ? u = this.prefabGroup : u = this.group, p === !1 ? v.create = () => {
2964
- } : p !== !0 && (v.create = () => {
2965
- p(v);
2966
- }), v.pencil = this.pencil, v.lead = this, v.mList = this.mList, v.isPrefab = m, v.objectType = `${e}`, v.objectOptions = t, this.setBaseObjectKey(
2963
+ return a === null ? u = null : typeof a == "string" ? u = this.objects.get(a) : a != null && a.isBaseObject || a ? u = a : p ? u = this.prefabGroup : u = this.group, m === !1 ? v.create = () => {
2964
+ } : m !== !0 && (v.create = () => {
2965
+ m(v);
2966
+ }), v.pencil = this.pencil, v.lead = this, v.mList = this.mList, v.isPrefab = p, v.objectType = `${e}`, v.objectOptions = t, this.setBaseObjectKey(
2967
2967
  v,
2968
2968
  t.key ? `$t:#${t.key}` : "$t:",
2969
2969
  u == null ? void 0 : u.key
@@ -2978,11 +2978,7 @@ class ti extends ei {
2978
2978
  setBaseObjectKey(e, t, s) {
2979
2979
  const i = e.objectType;
2980
2980
  let r = t.replace("$t:", i);
2981
- if (s) {
2982
- const [, o] = s.split("#");
2983
- r = r.replace("$p:", o);
2984
- }
2985
- return this.objects.has(r) && (r.includes("#") ? r += `-${Ne()}` : r += `#${Ne()}`), e.key = r, this.objects.set(r, e), r;
2981
+ return s && (r = r.replace("$p:", s)), this.objects.has(r) && (r.includes("#") ? r += `-${Ne()}` : r += `#${Ne()}`), e.key = r, this.objects.set(r, e), r;
2986
2982
  }
2987
2983
  updateBaseObjectKey(e, t) {
2988
2984
  var o;
@@ -3080,7 +3076,7 @@ class si extends ee {
3080
3076
  });
3081
3077
  }
3082
3078
  }
3083
- class ii extends mt {
3079
+ class ii extends pt {
3084
3080
  constructor(e) {
3085
3081
  super(e);
3086
3082
  }
@@ -3090,10 +3086,10 @@ class ii extends mt {
3090
3086
  e,
3091
3087
  (o) => {
3092
3088
  const n = o, a = new DecompressionStream("gzip"), d = n.stream().pipeThrough(a);
3093
- new Response(d).json().then((p) => {
3094
- t == null || t(p);
3095
- }).catch((p) => {
3096
- i == null || i(p);
3089
+ new Response(d).json().then((m) => {
3090
+ t == null || t(m);
3091
+ }).catch((m) => {
3092
+ i == null || i(m);
3097
3093
  });
3098
3094
  },
3099
3095
  s,
@@ -3101,7 +3097,7 @@ class ii extends mt {
3101
3097
  );
3102
3098
  }
3103
3099
  }
3104
- class ot extends mt {
3100
+ class ot extends pt {
3105
3101
  constructor(e) {
3106
3102
  super(e), this.options = { type: "image" };
3107
3103
  }
@@ -3116,8 +3112,8 @@ class ot extends mt {
3116
3112
  e,
3117
3113
  (a) => {
3118
3114
  let d = a;
3119
- const m = e.split(".").pop(), p = this.options.type === "image" ? `image/${m || "png"}` : `video/${m || "mp4"}`;
3120
- d = d.slice(0, a.size, p);
3115
+ const p = e.split(".").pop(), m = this.options.type === "image" ? `image/${p || "png"}` : `video/${p || "mp4"}`;
3116
+ d = d.slice(0, a.size, m);
3121
3117
  const v = () => {
3122
3118
  o.removeEventListener("load", u, !1), o.removeEventListener("error", f, !1);
3123
3119
  }, u = () => {
@@ -3252,8 +3248,8 @@ class oi {
3252
3248
  try {
3253
3249
  const d = yield o.loadAsync(e);
3254
3250
  if (this.assets.set(e, d), r.resolve(d), s === "images" || s === "media" || s === "exr" || s === "lottie") {
3255
- const m = (a = t == null ? void 0 : t.anisotropy) != null ? a : this.options.anisotropy;
3256
- d.anisotropy = m;
3251
+ const p = (a = t == null ? void 0 : t.anisotropy) != null ? a : this.options.anisotropy;
3252
+ d.anisotropy = p;
3257
3253
  }
3258
3254
  return d;
3259
3255
  } catch (d) {
@@ -3279,8 +3275,8 @@ class oi {
3279
3275
  a.aoMap
3280
3276
  ].forEach((d) => {
3281
3277
  if (d) {
3282
- const m = this.getSrcByAsset(d, s);
3283
- m && t.add(m);
3278
+ const p = this.getSrcByAsset(d, s);
3279
+ p && t.add(p);
3284
3280
  }
3285
3281
  });
3286
3282
  });
@@ -3422,15 +3418,15 @@ class li {
3422
3418
  if ("__isProxy" in o)
3423
3419
  return o;
3424
3420
  const n = new Proxy(o, {
3425
- set: (a, d, m) => {
3421
+ set: (a, d, p) => {
3426
3422
  if (typeof d == "string" && !Number.isNaN(Number(d))) {
3427
- const p = Number(d);
3428
- if (p >= 0 && p < a.length) {
3429
- const v = a[p];
3430
- return this.rmBaseObjectMap(e, v), a[p] = m, m && (this.applyColorSpaceToMaterials(m), this.addBaseObjectMap(e)), !0;
3423
+ const m = Number(d);
3424
+ if (m >= 0 && m < a.length) {
3425
+ const v = a[m];
3426
+ return this.rmBaseObjectMap(e, v), a[m] = p, p && (this.applyColorSpaceToMaterials(p), this.addBaseObjectMap(e)), !0;
3431
3427
  }
3432
3428
  }
3433
- return a[d] = m, !0;
3429
+ return a[d] = p, !0;
3434
3430
  }
3435
3431
  });
3436
3432
  return Object.defineProperty(n, "__isProxy", {
@@ -3533,8 +3529,8 @@ class li {
3533
3529
  var d;
3534
3530
  const a = (d = i.materialList) == null ? void 0 : d[n];
3535
3531
  if (Array.isArray(a)) {
3536
- const m = a.indexOf(e);
3537
- m !== -1 && (a[m] = t);
3532
+ const p = a.indexOf(e);
3533
+ p !== -1 && (a[p] = t);
3538
3534
  } else a === e && i.materialList && (i.materialList[n] = t);
3539
3535
  });
3540
3536
  });
@@ -3582,8 +3578,8 @@ class di {
3582
3578
  antialias: n,
3583
3579
  powerPreference: a,
3584
3580
  toneMappingExposure: d,
3585
- outputColorSpace: m,
3586
- logarithmicDepthBuffer: p,
3581
+ outputColorSpace: p,
3582
+ logarithmicDepthBuffer: m,
3587
3583
  preserveDrawingBuffer: v,
3588
3584
  stencil: u,
3589
3585
  depth: f
@@ -3591,12 +3587,12 @@ class di {
3591
3587
  alpha: r,
3592
3588
  antialias: n,
3593
3589
  powerPreference: a,
3594
- logarithmicDepthBuffer: p,
3590
+ logarithmicDepthBuffer: m,
3595
3591
  preserveDrawingBuffer: v,
3596
3592
  stencil: u,
3597
3593
  depth: f
3598
3594
  });
3599
- g.setSize(t, s), g.setPixelRatio(o), g.toneMappingExposure = d, g.outputColorSpace = m, this.renderer = g;
3595
+ g.setSize(t, s), g.setPixelRatio(o), g.toneMappingExposure = d, g.outputColorSpace = p, this.renderer = g;
3600
3596
  }
3601
3597
  setSize(e, t) {
3602
3598
  this.renderer.setSize(e, t);
@@ -3617,10 +3613,10 @@ class di {
3617
3613
  this.setSize(0, 0), (e = this.renderer) == null || e.clear(), (t = this.renderer) == null || t.dispose(), (s = this.renderer) == null || s.forceContextLoss();
3618
3614
  }
3619
3615
  }
3620
- const pi = {
3616
+ const mi = {
3621
3617
  background: null
3622
3618
  };
3623
- class mi extends ee {
3619
+ class pi extends ee {
3624
3620
  get scene() {
3625
3621
  return this.controller;
3626
3622
  }
@@ -3628,7 +3624,7 @@ class mi extends ee {
3628
3624
  super(), this.options = e;
3629
3625
  }
3630
3626
  addScene(e, t) {
3631
- const s = new pt();
3627
+ const s = new mt();
3632
3628
  return e != null && e.background && (s.background = e.background), this.addController(s, t);
3633
3629
  }
3634
3630
  removePage(e) {
@@ -3824,7 +3820,7 @@ const _e = class _e {
3824
3820
  renderer: r,
3825
3821
  controls: o,
3826
3822
  loader: n
3827
- } = this.options, { width: a, height: d } = this.getSize(), m = t ? new _i({
3823
+ } = this.options, { width: a, height: d } = this.getSize(), p = t ? new _i({
3828
3824
  width: a,
3829
3825
  height: d,
3830
3826
  //@ts-ignore
@@ -3837,13 +3833,13 @@ const _e = class _e {
3837
3833
  antialias: !1
3838
3834
  })
3839
3835
  });
3840
- this.rendererController = m;
3841
- const p = new Ds({
3836
+ this.rendererController = p;
3837
+ const m = new Ds({
3842
3838
  width: a,
3843
3839
  height: d
3844
- }), v = new mi({}), u = new Ks({
3840
+ }), v = new pi({}), u = new Ks({
3845
3841
  controlsParams: {
3846
- domElement: (_ = o == null ? void 0 : o.domElement) != null ? _ : m.renderer.domElement
3842
+ domElement: (_ = o == null ? void 0 : o.domElement) != null ? _ : p.renderer.domElement
3847
3843
  }
3848
3844
  }), f = new ai({
3849
3845
  loaderParams: U({
@@ -3854,7 +3850,7 @@ const _e = class _e {
3854
3850
  }), y = new si({
3855
3851
  pencil: this
3856
3852
  });
3857
- this.sceneController = v, this.cameraController = p, this.controlsController = u, this.loaderController = f, this.mListController = g, this.leadController = y;
3853
+ this.sceneController = v, this.cameraController = m, this.controlsController = u, this.loaderController = f, this.mListController = g, this.leadController = y;
3858
3854
  const l = this.addPage({
3859
3855
  sceneOptions: this.options.scene,
3860
3856
  cameraOptions: this.options.camera
@@ -3863,11 +3859,11 @@ const _e = class _e {
3863
3859
  const O = new Js({
3864
3860
  container: e,
3865
3861
  sceneController: v,
3866
- cameraController: p
3862
+ cameraController: m
3867
3863
  });
3868
3864
  O.add(v.scene), this.helperController = O, i && O.addViewHelper();
3869
3865
  }
3870
- e.appendChild(m.renderer.domElement);
3866
+ e.appendChild(p.renderer.domElement);
3871
3867
  }
3872
3868
  initComposer() {
3873
3869
  const {
@@ -3937,10 +3933,10 @@ const _e = class _e {
3937
3933
  cssRendererController: n,
3938
3934
  leadController: a
3939
3935
  } = this, d = this.renderer.getSize(new B());
3940
- d.x === e && d.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((m) => {
3941
- var p;
3942
- (p = m.setSize) == null || p.call(m, e, t);
3943
- }), this.viewPadding.some((m) => m !== 0) && this.setViewPadding(...this.viewPadding), this.render(), s && this.event.emit("resize", { width: e, height: t }));
3936
+ d.x === e && d.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((p) => {
3937
+ var m;
3938
+ (m = p.setSize) == null || m.call(p, e, t);
3939
+ }), this.viewPadding.some((p) => p !== 0) && this.setViewPadding(...this.viewPadding), this.render(), s && this.event.emit("resize", { width: e, height: t }));
3944
3940
  }
3945
3941
  setDevicePixelRatio(e) {
3946
3942
  var n;
@@ -3990,8 +3986,8 @@ const _e = class _e {
3990
3986
  this.event.emit("beforeRender"), this.timer.update(), Ce.update();
3991
3987
  const e = this.timer.getDelta(), t = this.timer.getElapsed();
3992
3988
  this.controlsController.update(e, t), this.leadController.update(e, t), this.installPlugins.forEach((d) => {
3993
- var m;
3994
- (m = d.update) == null || m.call(d, e, t);
3989
+ var p;
3990
+ (p = d.update) == null || p.call(d, e, t);
3995
3991
  }), (s = this.helperController) == null || s.update(
3996
3992
  e,
3997
3993
  this.controlsController,
@@ -4036,11 +4032,11 @@ const _e = class _e {
4036
4032
  }
4037
4033
  }
4038
4034
  dispose() {
4039
- var e, t, s, i, r, o, n, a, d, m, p, v, u, f;
4035
+ var e, t, s, i, r, o, n, a, d, p, m, v, u, f;
4040
4036
  this.handeleResize(1, 1, !1), this.stop(), this.timer.dispose(), Ce.removeAll(), this.event.removeAllListeners(), (e = this.resizeObserver) == null || e.unobserve(this.options.container), this.installPlugins.forEach((g) => {
4041
4037
  var y;
4042
4038
  (y = g.dispose) == null || y.call(g);
4043
- }), (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(), (d = this.rendererController) == null || d.dispose(), (m = this.loaderController) == null || m.dispose(), (p = this.leadController) == null || p.dispose(), (v = this.mListController) == null || v.dispose(), this.cssRendererController = void 0, this.installPlugins.clear(), (u = this.stats) == null || u.dom.remove(), (f = this.renderer) == null || f.domElement.remove(), this._isDispose = !0;
4039
+ }), (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(), (d = this.rendererController) == null || d.dispose(), (p = this.loaderController) == null || p.dispose(), (m = this.leadController) == null || m.dispose(), (v = this.mListController) == null || v.dispose(), this.cssRendererController = void 0, this.installPlugins.clear(), (u = this.stats) == null || u.dom.remove(), (f = this.renderer) == null || f.domElement.remove(), this._isDispose = !0;
4044
4040
  }
4045
4041
  };
4046
4042
  _e.options = {
@@ -4051,7 +4047,7 @@ _e.options = {
4051
4047
  transformControls: he,
4052
4048
  renderer: ci,
4053
4049
  composer: Zs,
4054
- scene: pi,
4050
+ scene: mi,
4055
4051
  camera: wt,
4056
4052
  bloom: !1,
4057
4053
  bloomParams: Ys,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gl-draw",
3
- "version": "0.16.0-beta.3",
3
+ "version": "0.16.0-beta.4",
4
4
  "author": "gitplus <hstits@gmail.com>",
5
5
  "scripts": {
6
6
  "start": "bundler-dev",