gl-draw 0.11.0 → 0.11.1
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/core/Controls.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import CameraControls from './CameraControls';
|
|
|
3
3
|
export interface ControlsParams {
|
|
4
4
|
domElement: HTMLElement;
|
|
5
5
|
}
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const defaultControlsParams: {};
|
|
7
7
|
interface Options {
|
|
8
8
|
camera: THREE.PerspectiveCamera | THREE.OrthographicCamera;
|
|
9
9
|
controlsParams: ControlsParams;
|
package/dist/core/Pencil.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -91,4 +91,4 @@
|
|
|
91
91
|
gl_FragColor = ( base_color + vec4( 1.0 ) * bloom_color );
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
|
-
`,defines:{}}),"baseTexture");return t.needsSwap=!0,t},Nt=1,ut=!1,cs=new P.MeshBasicMaterial({color:"black"}),ds=new P.SpriteMaterial({color:"black",sizeAttenuation:!0}),ms=new P.SpriteMaterial({color:"black",sizeAttenuation:!1}),ps={threshold:0,strength:.4,radius:.1,bloomAlphaType:0},_s={multisampling:4,premultiplieAlpha:!1};class us{constructor(t){this.bloomComposerActive=!1,this.active=!0,this.bloomSelection=new Set,this.bloomLayer=new P.Layers,this.bloomMaterials={},this.bloomVisible={},this.options=t;const{renderer:e,scene:s,camera:i,composerParams:r}=t,{multisampling:o}=r,{maxSamples:a}=e.capabilities,l=e.getDrawingBufferSize(new P.Vector2),m=new P.WebGLRenderTarget(l.width,l.height,{samples:Math.min(o,a),type:P.HalfFloatType}),E=new Ae.RenderPass(s,i),_=new qt.EffectComposer(e,m);_.addPass(E),this.renderer=e,this.scene=s,this.camera=i,this.finalComposer=_,this.renderPass=E;const C=e.getSize(new P.Vector2);this.setSize(C.width,C.height)}setRenderPassCamera(t){this.renderPass.camera=t}resetRenderPassCamera(){this.renderPass.camera=this.camera}addOutputPass(){const{premultiplieAlpha:t}=this.options.composerParams,e=new hs;this.outputPass=e,this.setPremultiplieAlpha(t),this.finalComposer.addPass(e)}setPremultiplieAlpha(t){this.outputPass&&(this.outputPass.uniforms.premultiplieAlpha.value=t?1:0)}addBloomPass(t){const{renderer:e}=this,{threshold:s,strength:i,radius:r,bloomAlphaType:o}=t,a=new ze.UnrealBloomPass(new P.Vector2(window.innerWidth,window.innerHeight),i,r,s);this.bloomPass=a;const l=new qt.EffectComposer(e);l.renderToScreen=!1,l.addPass(this.renderPass),l.addPass(a),this.bloomComposer=l;const m=ls(l);m.uniforms.bloomAlphaType.value=o,this.bloomComposer=l,this.finalComposer.addPass(m),this.mixPass=m,this.bloomLayer.set(Nt)}addBloomGui(t){if(!this.bloomComposer)return;new Gt({bloom:{threshold:{min:0,max:1,step:.01,target:()=>this.bloomPass},radius:{min:0,max:1,step:.001,target:()=>this.bloomPass},strength:{min:0,max:10,step:.001,target:()=>this.bloomPass}}}).showGui(t)}toggleBloomSelection(t,e){if(!this.bloomComposer){console.warn("err:pencil.options.bloom");return}const{object3d:s}=t;if(!s)return;let i=e;e===void 0&&(i=!this.bloomSelection.has(s)),i?(this.bloomSelection.add(s),s.layers.enable(Nt)):(this.bloomSelection.delete(s),s.layers.disable(Nt)),this.bloomSelection.size===0?this.bloomComposerActive=!1:this.bloomComposerActive=!0}enable(){this.active||(this.active=!0)}disable(){this.active&&(this.active=!1)}setSize(t,e){var s;(s=this.bloomComposer)==null||s.setSize(t,e),this.finalComposer.setSize(t,e)}setPixelRatio(t){var e;(e=this.bloomComposer)==null||e.setPixelRatio(t),this.finalComposer.setPixelRatio(t)}darkenNonBloomed(){const t=[],e=[];this.scene.children.forEach(s=>{s.isTransformControls||s.isTransformControlsRoot||s.type==="RectAreaLightHelper"?t.push(s):e.push(s)}),t.forEach(s=>{this.bloomVisible[s.uuid]=s.visible,s.visible=!1}),e.forEach(s=>{s.traverse(i=>{const r=i,o=i;r.material&&this.bloomLayer.test(r.layers)===!1&&(this.bloomMaterials[r.uuid]=r.material,o.isSprite?o.material.sizeAttenuation?o.material=ds:o.material=ms:r.material=cs)})})}restoreNonBloomed(){this.scene.traverse(t=>{const e=t;this.bloomMaterials[e.uuid]?(e.material=this.bloomMaterials[e.uuid],delete this.bloomMaterials[e.uuid]):this.bloomVisible[e.uuid]!==void 0&&(e.visible=this.bloomVisible[e.uuid],delete this.bloomVisible[e.uuid])})}render(){this.active&&(this.bloomComposerActive&&this.bloomComposer?(this.mixPass.enabled=!0,this.darkenNonBloomed(),this.bloomComposer.render(),this.restoreNonBloomed()):this.mixPass&&(this.mixPass.enabled=!1),this.finalComposer.render())}render2(){this.active}dispose(){var t;this.bloomMaterials={},this.bloomVisible={},this.bloomSelection.clear(),this.finalComposer.dispose(),(t=this.bloomComposer)==null||t.dispose()}}const At=class At{constructor(t,e){this.raycaster=new P.Raycaster,this.installPlugins=new Map,this._cameraPositon=new P.Vector3,this._cameraTarget=new P.Vector3,this.event=new pe.eventsExports.EventEmitter,this.clock=new P.Clock,this.userData={},this.pipViewportState=!1,this.options=Oe(At.options,t,{isMergeableObject:Ie.isPlainObject}),this.event.setMaxListeners(1/0);const{container:s,stats:i,gui:r,resizeObserver:o}=this.options;if(r){const a=new xe;a.open(!1),this.gui=a}if(this.init(),i){const a=new ve({horizontal:!1});a.init(this.renderer),a.dom.style.position="absolute",s.appendChild(a.dom),this.stats=a}this.options.WebGPUTHREE||this.initComposer(),this.initCSSRenderer(),this.initControls(),o&&this.initResizeObserver(),this.clock.getDelta(),this.clock.getElapsedTime(),e&&(Array.isArray(e)||(e=[e]),e.forEach(a=>{Array.isArray(a)||(a=[a]),this.use(a[0],a[1])}))}getPlugin(t){return this.installPlugins.get(t)}get renderer(){return this.rendererController.renderer}get maxAnisotropy(){return this.options.WebGPUTHREE?0:this.renderer.capabilities.getMaxAnisotropy()}get controls(){return this.controlsController.cameraControls}get cameraPositon(){return this.controls.getPosition(this._cameraPositon,!1)}get cameraTarget(){return this.controls.getTarget(this._cameraTarget,!1)}get camera(){return this.cameraController.camera}get scene(){return this.sceneController.scene}use(t,...e){this.installPlugins.has(t.pluginName)?console.log("plugin already installed"):typeof t.install=="function"&&(t.install(this,...e),this.installPlugins.set(t.pluginName,t))}init(){const{container:t,isdev:e,WebGPUTHREE:s,helper:i,renderer:r,scene:o,camera:a,controls:l}=this.options,{width:m,height:E}=this.getSize(),_=new Ge({isdev:e,width:m,height:E,cameraParams:a,cameraControls:l===!0});this.gui&&_.setGui(this.gui);const C=_.camera,y=new Qe({camera:C,sceneParams:o}),b=y.scene,u=s?new Be({width:m,height:E,scene:b,camera:C,isdev:e,renderer:s.WebGPURenderer,rendererParams:Ze}):new ke({width:m,height:E,scene:b,camera:C,isdev:e,rendererParams:zt(it({},r),{antialias:!1})});if(i){const O=new je({scene:b});O.add(b),this.helperController=O}this.sceneController=y,this.rendererController=u,this.cameraController=_,t.appendChild(u.renderer.domElement)}initComposer(){const{bloom:t,bloomParams:e,composer:s}=this.options,i=new us({renderer:this.renderer,scene:this.scene,camera:this.camera,composerParams:s});this.composerController=i,t&&(i.addBloomPass(it({},e)),this.gui&&i.addBloomGui(this.gui)),i.addOutputPass()}initCSSRenderer(){const{container:t,css2DRenderer:e,css3DRenderer:s,css2DRendererParams:i,css3DRendererParams:r}=this.options;if(e||s){const o=new ns(t);e&&o.addRenderer("css2d",i),s&&o.addRenderer("css3d",r),this.cssRendererController=o}}initControls(){const{controls:t,controlsParams:e,transformControls:s}=this.options;if(t){const i=new qe({camera:this.camera,controlsParams:{domElement:(e==null?void 0:e.domElement)||this.renderer.domElement},customControls:typeof t=="boolean"?void 0:t});this.controlsController=i}if(s){const i=new rs({camera:this.camera,renderer:this.renderer,scene:this.scene});i.event.on("mouseDown",()=>{var r;(r=this.controlsController)==null||r.disable()}),i.event.on("mouseUp",()=>{var r;(r=this.controlsController)==null||r.enable()}),this.transformController=i}}getSize(){const{container:t}=this.options;return{width:t.offsetWidth,height:t.offsetHeight}}initResizeObserver(){const{container:t}=this.options;if(this.resizeObserver)return;const e=this.getSize(),s=new ResizeObserver(i=>{for(const r of i){const o=r.contentRect;(o.width!==e.width||o.height!==e.height)&&(e.width=o.width,e.height=o.height,this.handeleResize(o.width,o.height),this.render())}});s.observe(t),this.resizeObserver=s}handeleResize(t,e,s=!0){const{rendererController:i,cameraController:r,composerController:o,cssRendererController:a}=this;r==null||r.setSize(t,e),i==null||i.setSize(t,e),o==null||o.setSize(t,e),a==null||a.setSize(t,e),this.installPlugins.forEach(l=>{var m;(m=l.setSize)==null||m.call(l,t,e)}),s&&this.event.emit("resize",{width:t,height:e})}setDevicePixelRatio(t){var e;this.rendererController.setPixelRatio(t),(e=this.composerController)==null||e.setPixelRatio(t)}pick(t,e,s=!0){const{raycaster:i,options:r}=this,{container:o}=r,a=new P.Vector2,l=o.getBoundingClientRect();if(a.x=(t.clientX-l.left)/(l.right-l.left)*2-1,a.y=-((t.clientY-l.top)/(l.bottom-l.top))*2+1,this.camera&&this.scene){i.setFromCamera(a,this.camera);const m=i.intersectObjects(e||this.scene.children,s);if(m.length)return{object:m[0].object,intersects:m}}}render(){var o,a,l,m,E,_;const{scene:t,camera:e,clock:s}=this,i=s.getDelta(),r=s.getElapsedTime();Wt.update(),(o=this.controlsController)==null||o.update(i),this.installPlugins.forEach(C=>{var y;(y=C.update)==null||y.call(C,i,r)}),(a=this.helperController)==null||a.update(),(l=this.composerController)!=null&&l.active?this.cameraController.camera2?(this.composerController.resetRenderPassCamera(),this.setViewportFull(),this.composerController.render(),this.pipViewportState&&(this.setViewportPip(),this.composerController.setRenderPassCamera(this.cameraController.camera2),this.composerController.render())):this.composerController.render():(m=this.rendererController)==null||m.render(),(E=this.cssRendererController)==null||E.render(t,e),(_=this.stats)==null||_.update(),this.event.emit("render",{delta:i,elapsed:r})}start(){this.renderer.setAnimationLoop(this.render.bind(this)),this.event.emit("start")}stop(){this.renderer.setAnimationLoop(null),this.event.emit("stop")}autoRotate(t){this.controlsController.autoRotateSpeed=t}showPipViewport(t){if(t===!0){const e=this.getSize(),s=240,i=s/e.width,r=s/e.height,o=1-i,a=1-r;t={left:o,top:a,width:i,height:r}}if(this.pipViewportState=t,t){if(this.controlsController.cameraControls2)this.controlsController.cameraControls2.enabled=!0,this.cameraController.camera2.position.copy(this.cameraController.camera.position);else{const e=this.cameraController.addCamera2();this.controlsController.addCameraControls2(e)}this.controlsController.cameraControls2.interactiveArea=new DOMRect(t.left,t.top,t.width,t.height)}else this.controlsController.cameraControls2&&(this.controlsController.cameraControls2.enabled=!1)}setViewportFull(){const t=this.getSize(),e=0,s=0,i=t.width,r=t.height,o=i/r;this.camera.aspect!==o&&(this.camera.aspect=o,this.camera.updateProjectionMatrix()),this.renderer.setViewport(e,s,i,r),this.renderer.setScissor(e,s,i,r),this.renderer.setScissorTest(!0)}setViewportPip(){if(!this.pipViewportState)return;const t=this.pipViewportState,e=this.getSize(),s=e.width*t.left,i=(1-(t.top+t.height))*e.height,r=e.width*t.width,o=e.height*t.height,a=r/o,l=this.cameraController.camera2;l&&l.aspect!==a&&(l.aspect=a,l.updateProjectionMatrix()),this.renderer.setViewport(s,i,r,o),this.renderer.setScissor(s,i,r,o),this.renderer.setScissorTest(!0)}dispose(){var t,e,s,i,r,o,a,l,m,E,_;this.stop(),Wt.removeAll(),this.event.removeAllListeners(),(t=this.resizeObserver)==null||t.unobserve(this.options.container),this.installPlugins.forEach(C=>{var y;(y=C.dispose)==null||y.call(C)}),(e=this.controlsController)==null||e.dispose(),(s=this.transformController)==null||s.dispose(),(i=this.cssRendererController)==null||i.dispose(),(r=this.sceneController)==null||r.dispose(),(o=this.helperController)==null||o.dispose(),(a=this.composerController)==null||a.dispose(),(l=this.rendererController)==null||l.dispose(),this.cssRendererController=void 0,(m=this.gui)==null||m.destroy(),this.installPlugins.clear(),(E=this.stats)==null||E.dom.remove(),(_=this.renderer)==null||_.domElement.remove()}};At.options={isdev:ut,stats:ut,gui:ut,helper:ut,control:!0,transformControls:ut,resizeObserver:!0,renderer:Ve,composer:_s,scene:Xe,camera:Ne,bloom:!1,bloomParams:ps,css2DRenderer:!1,css2DRendererParams:it({},me),css3DRenderer:!1,css3DRendererParams:it({},me)};let Dt=At;const fs=J.ACTION;exports.BaseObject=Fe.BaseObject;exports.GUIObject=Gt;exports.Pencil=Dt;exports.cameraControlsAction=fs;exports.default=Dt;
|
|
94
|
+
`,defines:{}}),"baseTexture");return t.needsSwap=!0,t},Nt=1,ut=!1,cs=new P.MeshBasicMaterial({color:"black"}),ds=new P.SpriteMaterial({color:"black",sizeAttenuation:!0}),ms=new P.SpriteMaterial({color:"black",sizeAttenuation:!1}),ps={threshold:0,strength:.4,radius:.1,bloomAlphaType:0},_s={multisampling:4,premultiplieAlpha:!1};class us{constructor(t){this.bloomComposerActive=!1,this.active=!0,this.bloomSelection=new Set,this.bloomLayer=new P.Layers,this.bloomMaterials={},this.bloomVisible={},this.options=t;const{renderer:e,scene:s,camera:i,composerParams:r}=t,{multisampling:o}=r,{maxSamples:a}=e.capabilities,l=e.getDrawingBufferSize(new P.Vector2),m=new P.WebGLRenderTarget(l.width,l.height,{samples:Math.min(o,a),type:P.HalfFloatType}),E=new Ae.RenderPass(s,i),_=new qt.EffectComposer(e,m);_.addPass(E),this.renderer=e,this.scene=s,this.camera=i,this.finalComposer=_,this.renderPass=E;const C=e.getSize(new P.Vector2);this.setSize(C.width,C.height)}setRenderPassCamera(t){this.renderPass.camera=t}resetRenderPassCamera(){this.renderPass.camera=this.camera}addOutputPass(){const{premultiplieAlpha:t}=this.options.composerParams,e=new hs;this.outputPass=e,this.setPremultiplieAlpha(t),this.finalComposer.addPass(e)}setPremultiplieAlpha(t){this.outputPass&&(this.outputPass.uniforms.premultiplieAlpha.value=t?1:0)}addBloomPass(t){const{renderer:e}=this,{threshold:s,strength:i,radius:r,bloomAlphaType:o}=t,a=new ze.UnrealBloomPass(new P.Vector2(window.innerWidth,window.innerHeight),i,r,s);this.bloomPass=a;const l=new qt.EffectComposer(e);l.renderToScreen=!1,l.addPass(this.renderPass),l.addPass(a),this.bloomComposer=l;const m=ls(l);m.uniforms.bloomAlphaType.value=o,this.bloomComposer=l,this.finalComposer.addPass(m),this.mixPass=m,this.bloomLayer.set(Nt)}addBloomGui(t){if(!this.bloomComposer)return;new Gt({bloom:{threshold:{min:0,max:1,step:.01,target:()=>this.bloomPass},radius:{min:0,max:1,step:.001,target:()=>this.bloomPass},strength:{min:0,max:10,step:.001,target:()=>this.bloomPass}}}).showGui(t)}toggleBloomSelection(t,e){if(!this.bloomComposer){console.warn("err:pencil.options.bloom");return}const{object3d:s}=t;if(!s)return;let i=e;e===void 0&&(i=!this.bloomSelection.has(s)),i?(this.bloomSelection.add(s),s.layers.enable(Nt)):(this.bloomSelection.delete(s),s.layers.disable(Nt)),this.bloomSelection.size===0?this.bloomComposerActive=!1:this.bloomComposerActive=!0}enable(){this.active||(this.active=!0)}disable(){this.active&&(this.active=!1)}setSize(t,e){var s;(s=this.bloomComposer)==null||s.setSize(t,e),this.finalComposer.setSize(t,e)}setPixelRatio(t){var e;(e=this.bloomComposer)==null||e.setPixelRatio(t),this.finalComposer.setPixelRatio(t)}darkenNonBloomed(){const t=[],e=[];this.scene.children.forEach(s=>{s.isTransformControls||s.isTransformControlsRoot||s.type==="RectAreaLightHelper"?t.push(s):e.push(s)}),t.forEach(s=>{this.bloomVisible[s.uuid]=s.visible,s.visible=!1}),e.forEach(s=>{s.traverse(i=>{const r=i,o=i;r.material&&this.bloomLayer.test(r.layers)===!1&&(this.bloomMaterials[r.uuid]=r.material,o.isSprite?o.material.sizeAttenuation?o.material=ds:o.material=ms:r.material=cs)})})}restoreNonBloomed(){this.scene.traverse(t=>{const e=t;this.bloomMaterials[e.uuid]?(e.material=this.bloomMaterials[e.uuid],delete this.bloomMaterials[e.uuid]):this.bloomVisible[e.uuid]!==void 0&&(e.visible=this.bloomVisible[e.uuid],delete this.bloomVisible[e.uuid])})}render(){this.active&&(this.bloomComposerActive&&this.bloomComposer?(this.mixPass.enabled=!0,this.darkenNonBloomed(),this.bloomComposer.render(),this.restoreNonBloomed()):this.mixPass&&(this.mixPass.enabled=!1),this.finalComposer.render())}render2(){this.active}dispose(){var t;this.bloomMaterials={},this.bloomVisible={},this.bloomSelection.clear(),this.finalComposer.dispose(),(t=this.bloomComposer)==null||t.dispose()}}const At=class At{constructor(t,e){this.raycaster=new P.Raycaster,this.installPlugins=new Map,this._cameraPositon=new P.Vector3,this._cameraTarget=new P.Vector3,this.event=new pe.eventsExports.EventEmitter,this.clock=new P.Clock,this.userData={},this.pipViewportState=!1,this.options=Oe(At.options,t,{isMergeableObject:Ie.isPlainObject}),this.event.setMaxListeners(1/0);const{container:s,stats:i,gui:r,resizeObserver:o}=this.options;if(r){const a=new xe;a.open(!1),this.gui=a}if(this.init(),i){const a=new ve({horizontal:!1});a.init(this.renderer),a.dom.style.position="absolute",s.appendChild(a.dom),this.stats=a}this.options.WebGPUTHREE||this.initComposer(),this.initCSSRenderer(),this.initControls(),o&&this.initResizeObserver(),this.clock.getDelta(),this.clock.getElapsedTime(),e&&(Array.isArray(e)||(e=[e]),e.forEach(a=>{Array.isArray(a)||(a=[a]),this.use(a[0],a[1])}))}getPlugin(t){return this.installPlugins.get(t)}get renderer(){return this.rendererController.renderer}get maxAnisotropy(){return this.options.WebGPUTHREE?0:this.renderer.capabilities.getMaxAnisotropy()}get controls(){return this.controlsController.cameraControls}get cameraPositon(){return this.controls.getPosition(this._cameraPositon,!1)}get cameraTarget(){return this.controls.getTarget(this._cameraTarget,!1)}get camera(){return this.cameraController.camera}get scene(){return this.sceneController.scene}use(t,...e){this.installPlugins.has(t.pluginName)?console.log("plugin already installed"):typeof t.install=="function"&&(t.install(this,...e),this.installPlugins.set(t.pluginName,t))}init(){const{container:t,isdev:e,WebGPUTHREE:s,helper:i,renderer:r,scene:o,camera:a,controls:l}=this.options,{width:m,height:E}=this.getSize(),_=new Ge({isdev:e,width:m,height:E,cameraParams:a,cameraControls:l===!0});this.gui&&_.setGui(this.gui);const C=_.camera,y=new Qe({camera:C,sceneParams:o}),b=y.scene,u=s?new Be({width:m,height:E,scene:b,camera:C,isdev:e,renderer:s.WebGPURenderer,rendererParams:Ze}):new ke({width:m,height:E,scene:b,camera:C,isdev:e,rendererParams:zt(it({},r),{antialias:!1})});if(i){const O=new je({scene:b});O.add(b),this.helperController=O}this.sceneController=y,this.rendererController=u,this.cameraController=_,t.appendChild(u.renderer.domElement)}initComposer(){const{bloom:t,bloomParams:e,composer:s}=this.options,i=new us({renderer:this.renderer,scene:this.scene,camera:this.camera,composerParams:s});this.composerController=i,t&&(i.addBloomPass(it({},e)),this.gui&&i.addBloomGui(this.gui)),i.addOutputPass()}initCSSRenderer(){const{container:t,css2DRenderer:e,css3DRenderer:s,css2DRendererParams:i,css3DRendererParams:r}=this.options;if(e||s){const o=new ns(t);e&&o.addRenderer("css2d",i),s&&o.addRenderer("css3d",r),this.cssRendererController=o}}initControls(){const{controls:t,controlsParams:e,transformControls:s}=this.options;if(t){const i=new qe({camera:this.camera,controlsParams:{domElement:(e==null?void 0:e.domElement)||this.renderer.domElement},customControls:typeof t=="boolean"?void 0:t});this.controlsController=i}if(s){const i=new rs({camera:this.camera,renderer:this.renderer,scene:this.scene});i.event.on("mouseDown",()=>{var r;(r=this.controlsController)==null||r.disable()}),i.event.on("mouseUp",()=>{var r;(r=this.controlsController)==null||r.enable()}),this.transformController=i}}getSize(){const{container:t}=this.options;return{width:t.offsetWidth,height:t.offsetHeight}}initResizeObserver(){const{container:t}=this.options;if(this.resizeObserver)return;const e=this.getSize(),s=new ResizeObserver(i=>{for(const r of i){const o=r.contentRect;(o.width!==e.width||o.height!==e.height)&&(e.width=o.width,e.height=o.height,this.handeleResize(o.width,o.height),this.render())}});s.observe(t),this.resizeObserver=s}handeleResize(t,e,s=!0){const{rendererController:i,cameraController:r,composerController:o,cssRendererController:a}=this;r==null||r.setSize(t,e),i==null||i.setSize(t,e),o==null||o.setSize(t,e),a==null||a.setSize(t,e),this.installPlugins.forEach(l=>{var m;(m=l.setSize)==null||m.call(l,t,e)}),s&&this.event.emit("resize",{width:t,height:e})}setDevicePixelRatio(t){var e;this.rendererController.setPixelRatio(t),(e=this.composerController)==null||e.setPixelRatio(t)}pick(t,e,s=!0){const{raycaster:i,options:r}=this,{container:o}=r,a=new P.Vector2,l=o.getBoundingClientRect();if(a.x=(t.clientX-l.left)/(l.right-l.left)*2-1,a.y=-((t.clientY-l.top)/(l.bottom-l.top))*2+1,this.camera&&this.scene){i.setFromCamera(a,this.camera);const m=i.intersectObjects(e||this.scene.children,s);if(m.length)return{object:m[0].object,intersects:m}}}render(){var o,a,l,m,E,_;const{scene:t,camera:e,clock:s}=this,i=s.getDelta(),r=s.getElapsedTime();Wt.update(),(o=this.controlsController)==null||o.update(i),this.installPlugins.forEach(C=>{var y;(y=C.update)==null||y.call(C,i,r)}),(a=this.helperController)==null||a.update(),(l=this.composerController)!=null&&l.active?this.cameraController.camera2?(this.composerController.resetRenderPassCamera(),this.setViewportFull(),this.composerController.render(),this.pipViewportState&&(this.setViewportPip(),this.composerController.setRenderPassCamera(this.cameraController.camera2),this.composerController.render())):this.composerController.render():(m=this.rendererController)==null||m.render(),(E=this.cssRendererController)==null||E.render(t,e),(_=this.stats)==null||_.update(),this.event.emit("render",{delta:i,elapsed:r})}start(){this.renderer.setAnimationLoop(this.render.bind(this)),this.event.emit("start")}stop(){this.renderer.setAnimationLoop(null),this.event.emit("stop")}autoRotate(t){this.controlsController.autoRotateSpeed=t}showPipViewport(t){if(t===!0){const e=this.getSize(),s=240,i=s/e.width,r=s/e.height,o=1-i,a=1-r;t={left:o,top:a,width:i,height:r}}if(this.pipViewportState=t,t){if(this.controlsController.cameraControls2)this.controlsController.cameraControls2.enabled=!0,this.cameraController.camera2.position.copy(this.cameraController.camera.position);else{const e=this.cameraController.addCamera2();this.controlsController.addCameraControls2(e)}this.controlsController.cameraControls2.interactiveArea=new DOMRect(t.left,t.top,t.width,t.height)}else this.controlsController.cameraControls2&&(this.controlsController.cameraControls2.enabled=!1)}setViewportFull(){const t=this.getSize(),e=0,s=0,i=t.width,r=t.height,o=i/r;this.camera.aspect!==o&&(this.camera.aspect=o,this.camera.updateProjectionMatrix()),this.renderer.setViewport(e,s,i,r),this.renderer.setScissor(e,s,i,r),this.renderer.setScissorTest(!0)}setViewportPip(){if(!this.pipViewportState)return;const t=this.pipViewportState,e=this.getSize(),s=e.width*t.left,i=(1-(t.top+t.height))*e.height,r=e.width*t.width,o=e.height*t.height,a=r/o,l=this.cameraController.camera2;l&&l.aspect!==a&&(l.aspect=a,l.updateProjectionMatrix()),this.renderer.setViewport(s,i,r,o),this.renderer.setScissor(s,i,r,o),this.renderer.setScissorTest(!0)}dispose(){var t,e,s,i,r,o,a,l,m,E,_;this.stop(),Wt.removeAll(),this.event.removeAllListeners(),(t=this.resizeObserver)==null||t.unobserve(this.options.container),this.installPlugins.forEach(C=>{var y;(y=C.dispose)==null||y.call(C)}),(e=this.controlsController)==null||e.dispose(),(s=this.transformController)==null||s.dispose(),(i=this.cssRendererController)==null||i.dispose(),(r=this.sceneController)==null||r.dispose(),(o=this.helperController)==null||o.dispose(),(a=this.composerController)==null||a.dispose(),(l=this.rendererController)==null||l.dispose(),this.cssRendererController=void 0,(m=this.gui)==null||m.destroy(),this.installPlugins.clear(),(E=this.stats)==null||E.dom.remove(),(_=this.renderer)==null||_.domElement.remove()}};At.options={isdev:ut,stats:ut,gui:ut,helper:ut,controls:!0,transformControls:ut,resizeObserver:!0,renderer:Ve,composer:_s,scene:Xe,camera:Ne,bloom:!1,bloomParams:ps,css2DRenderer:!1,css2DRendererParams:it({},me),css3DRenderer:!1,css3DRendererParams:it({},me)};let Dt=At;const fs=J.ACTION;exports.BaseObject=Fe.BaseObject;exports.GUIObject=Gt;exports.Pencil=Dt;exports.cameraControlsAction=fs;exports.default=Dt;
|