gl-draw 0.9.2 → 0.9.3

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
@@ -15,4 +15,4 @@
15
15
  vUv = position.xy * 0.5 + 0.5;
16
16
  gl_Position = vec4(position.xy, 1.0, 1.0);
17
17
  }
18
- `,toneMapped:!1,depthWrite:!1,depthTest:!1})}}class fe extends u.Pass{constructor(){super("CrossFadePass"),this.fullscreenMaterial=new pe}render(e,t,s){const r=this.fullscreenMaterial;r.uniforms.inputBuffer.value=t.texture,e.setRenderTarget(this.renderToScreen?null:s),e.render(this.scene,this.camera)}}const k={luminancePass:!1,luminanceThreshold:.4,luminanceSmoothing:.3,mipmapBlur:!0,intensity:3,mipmapBlurPassRadius:.85,blendFunction:u.BlendFunction.ADD,ignoreBackground:!0,epsilon:.001},ue={mode:u.ToneMappingMode.REINHARD2_ADAPTIVE,resolution:256,whitePoint:16,middleGrey:.6,minLuminance:.01,averageLuminance:.01,adaptationRate:1};class ge{constructor(e){this.active=!0,this.options=e;const{renderer:t,scene:s,camera:r}=e;this.finalComposer=this.addFinalComposer(r),this.renderer=t,this.scene=s,this.camera=r}addFinalComposer(e){const{renderer:t,scene:s,composerParams:r}=this.options,{multisampling:o,frameBufferType:n}=r,{maxSamples:i}=t.capabilities,a=new u.EffectComposer(t,{multisampling:Math.min(o,i),frameBufferType:n});return a.addPass(new u.RenderPass(s,e)),a}addFinalComposer2(e){const t=this.addFinalComposer(e);this.finalComposer2=t}addCopyPass(){const e=new u.CopyPass;this.finalComposer.addPass(e),this.copyPass=e}addCrossFadePass(){const e=new fe;this.finalComposer.addPass(e),this.crossFadePass=e}addFXAAPass(){const{camera:e}=this,t=new u.FXAAEffect({blendFunction:u.BlendFunction.NORMAL}),s=new u.EffectPass(e,t);this.finalComposer.addPass(s),this.fxaaPass=s}addToneMappingPass(e){const{camera:t}=this,s=new u.ToneMappingEffect(v({},e));this.toneMappingEffect=s;const r=new u.EffectPass(t,s);this.finalComposer.addPass(r),this.toneMappingPass=r}addToneMappingGui(e){if(!this.toneMappingEffect)return;new y({toneMapping:{blendFunction:{value:this.toneMappingEffect.mode,items:u.ToneMappingMode,onChange:s=>{this.toneMappingEffect.mode=Number(s)}},exposure:{min:0,max:2,value:this.renderer.toneMappingExposure,step:.001,onChange:s=>{this.renderer.toneMappingExposure=s}}},"Reinhard (Modified)":{whitePoint:{min:2,max:32,step:.001,target:()=>this.toneMappingEffect},middleGrey:{min:0,max:1,step:1e-4,target:()=>this.toneMappingEffect},averageLuminance:{min:1e-4,max:1,step:1e-4,target:()=>this.toneMappingEffect}}}).showGui(e)}addBloomPass(e){const{camera:t,scene:s}=this,d=v(v({},k),e),{epsilon:r,ignoreBackground:o,mipmapBlurPassRadius:n}=d,i=T(d,["epsilon","ignoreBackground","mipmapBlurPassRadius"]),a=new u.SelectiveBloomEffect(s,t,v({},i));o&&(a.ignoreBackground=o),n&&(a.mipmapBlurPass.radius=n),a.depthMaskMaterial.epsilon=r,a.luminancePass.enabled=!1,a.luminancePass.enabled=e.luminancePass;const l=new u.EffectPass(t,a);this.finalComposer.addPass(l),this.bloomPass=l,this.bloomEffect=a}addBloomGui(e){if(!this.bloomEffect)return;new y({bloom:{intensity:{min:0,max:10,step:.01,target:()=>this.bloomEffect},radius:{min:0,max:1,step:.001,target:()=>this.bloomEffect.mipmapBlurPass},blendFunction:{value:this.bloomEffect.blendMode.blendFunction,items:u.BlendFunction,onChange:s=>{this.bloomEffect.blendMode.blendFunction=Number(s)}},ignoreBackground:{value:this.bloomEffect.ignoreBackground,onChange:s=>{this.bloomEffect.ignoreBackground=s}}},bloomLuminanceFilter:{enabled:{value:this.bloomEffect.luminancePass.enabled,onChange:s=>{this.bloomEffect.luminancePass.enabled=s}},threshold:{min:0,max:1,step:.01,target:()=>this.bloomEffect.luminanceMaterial},smoothing:{min:0,max:1,step:.01,target:()=>this.bloomEffect.luminanceMaterial}}}).showGui(e)}toggleBloomSelection(e,t){if(!this.bloomEffect||!this.bloomPass){console.warn("err:pencil.options.bloom");return}e?t===!0?this.bloomEffect.selection.add(e):t===!1?this.bloomEffect.selection.delete(e):this.bloomEffect.selection.toggle(e):this.bloomEffect.selection.clear()}getSize(){const{renderer:e}=this.options;return e.getSize(new h.Vector2)}enable(){this.active||(this.active=!0)}disable(){this.active&&(this.active=!1)}setSize(e,t){var s;this.finalComposer.setSize(e,t),(s=this.finalComposer2)==null||s.setSize(e,t)}render(){this.active&&this.finalComposer.render()}render2(){var e;this.active&&((e=this.finalComposer2)==null||e.render())}dispose(){var e;this.finalComposer.dispose(),(e=this.finalComposer2)==null||e.dispose()}}const Ce=()=>{try{const c=document.createElement("canvas");return!!(window.WebGL2RenderingContext&&c.getContext("webgl2"))}catch(c){return!1}},E=!1,q=Ce()!==!1,O=class O{constructor(e,t){this.raycaster=new h.Raycaster,this.installPlugins=new Map,this.event=new G.eventsExports.EventEmitter,this.clock=new h.Clock,this.userData={},this.mulitViewport=!1,this.options=W(O.options,e,{isMergeableObject:te.isPlainObject}),this.event.setMaxListeners(1/0);const{container:s,stats:r,gui:o,resizeObserver:n}=this.options;if(o){const i=new $;i.open(!1),this.gui=i}if(r){const i=new X;i.showPanel(0),i.dom.style.position="absolute",s.appendChild(i.dom),this.stats=i}this.init(),this.initComposer(),this.initCSSRenderer(),this.initControls(),n&&this.initResizeObserver(),this.clock.getDelta(),this.clock.getElapsedTime(),t&&(Array.isArray(t)||(t=[t]),t.forEach(i=>{Array.isArray(i)||(i=[i]),this.use(i[0],i[1])}))}getPlugin(e){return this.installPlugins.get(e)}get renderer(){return this.rendererController.renderer}get cameraControls(){return this.controlsController.cameraControls}get cameraPositon(){return this.cameraControls.getPosition(new h.Vector3,!1)}get cameraTarget(){return this.cameraControls.getTarget(new h.Vector3,!1)}get camera(){return this.cameraController.camera}get scene(){return this.sceneController.scene}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))}init(){const{container:e,isdev:t,helper:s,renderer:r,scene:o,camera:n,control:i}=this.options,{width:a,height:l}=this.getSize(),d=new ie({isdev:t,width:a,height:l,cameraParams:n,cameraControls:i===!0});this.gui&&d.setGui(this.gui);const m=d.camera,f=new ce({camera:m,sceneParams:o}),g=f.scene,P=new oe({width:a,height:l,scene:g,camera:m,isdev:t,rendererParams:R(v({},r),{antialias:!1})});if(s){const p=new le({scene:g});p.add(g),this.helperController=p}this.sceneController=f,this.rendererController=P,this.cameraController=d,e.appendChild(P.renderer.domElement)}initComposer(){const{bloom:e,bloomParams:t,toneMapping:s,toneMappingParams:r,crossOpacity:o,renderer:n,multisampling:i,frameBufferType:a,passes:l}=this.options;let{antialias:d}=n;d==="msaa"&&!q&&(d=!1,console.warn("MSAA is not supported on this browser"));const m=new ge({renderer:this.renderer,scene:this.scene,camera:this.camera,composerParams:{multisampling:d==="msaa"?i:0,frameBufferType:s?h.HalfFloatType:a}});this.composerController=m,e&&(m.addBloomPass(t),this.gui&&m.addBloomGui(this.gui)),s&&(m.addToneMappingPass(r),this.gui&&m.addToneMappingGui(this.gui)),d==="fxaa"&&m.addFXAAPass(),o&&m.addCrossFadePass(),l&&l.forEach(f=>{m.finalComposer.addPass(f)}),m.finalComposer.passes.length===1&&m.addCopyPass()}get opacity(){const{crossFadePass:e}=this.composerController;return e?e.fullscreenMaterial.uniforms.ratio.value:1}set opacity(e){const{crossFadePass:t}=this.composerController;if(!t){console.warn("err:pencil.options.crossOpacity");return}t.fullscreenMaterial.uniforms.ratio.value=e}initCSSRenderer(){const{container:e,css2DRenderer:t,css3DRenderer:s,css2DRendererParams:r,css3DRendererParams:o}=this.options;if(t||s){const n=new me(e);t&&n.addRenderer("css2d",r),s&&n.addRenderer("css3d",o),this.cssRendererController=n}}initControls(){const{control:e,controlParams:t,transformControls:s}=this.options;if(e){const r=new he({camera:this.camera,controlsParams:{domElement:(t==null?void 0:t.domElement)||this.renderer.domElement},customControl:typeof e=="boolean"?void 0:e});this.controlsController=r}if(s){const r=new de({camera:this.camera,renderer:this.renderer,scene:this.scene});r.event.on("mouseDown",()=>{var o;(o=this.controlsController)==null||o.disable()}),r.event.on("mouseUp",()=>{var o;(o=this.controlsController)==null||o.enable()}),this.transformController=r}}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 r of s){const o=r.contentRect;this.handeleResize(o.width,o.height),this.render()}});t.observe(e),this.resizeObserver=t}handeleResize(e,t,s=!0){const{rendererController:r,cameraController:o,composerController:n,cssRendererController:i}=this;o==null||o.setSize(e,t),r==null||r.setSize(e,t),n==null||n.setSize(e,t),i==null||i.setSize(e,t),this.installPlugins.forEach(a=>{var l;(l=a.setSize)==null||l.call(a,e,t)}),s&&this.event.emit("resize",{width:e,height:t})}pick(e,t,s=!1){const{raycaster:r,options:o}=this,{container:n}=o,i=new h.Vector2,a=n.getBoundingClientRect();if(i.x=(e.clientX-a.left)/(a.right-a.left)*2-1,i.y=-((e.clientY-a.top)/(a.bottom-a.top))*2+1,this.camera&&this.scene){r.setFromCamera(i,this.camera);const l=r.intersectObjects(t||this.scene.children,s);if(l.length)return{object:l[0].object,intersects:l}}}render(){var n,i,a,l,d,m;const{scene:e,camera:t,clock:s}=this,r=s.getDelta(),o=s.getElapsedTime();F.update(),(n=this.controlsController)==null||n.update(r),this.installPlugins.forEach(f=>{var g;(g=f.update)==null||g.call(f,r,o)}),(i=this.helperController)==null||i.update(),(a=this.composerController)!=null&&a.active?this.mulitViewport?(this.setViewportLeft(),this.composerController.render(),this.setViewportRight(),this.composerController.render2()):this.composerController.render():(l=this.rendererController)==null||l.render(),(d=this.cssRendererController)==null||d.render(e,t),(m=this.stats)==null||m.update(),this.event.emit("render",{delta:r,elapsed:o})}start(){this.renderer.setAnimationLoop(this.render.bind(this)),this.event.emit("start")}stop(){this.renderer.setAnimationLoop(null),this.event.emit("stop")}autoRotate(e){this.controlsController.autoRotateSpeed=e}setMulitViewport(e){if(this.mulitViewport=e,e){if(!this.controlsController.cameraControls2){const t=this.cameraController.addCamera2();this.composerController.addFinalComposer2(t),this.controlsController.addCameraControls2(t)}this.controlsController.cameraControls.interactiveArea=new DOMRect(0,0,.5,1),this.controlsController.cameraControls2.interactiveArea=new DOMRect(.5,0,.5,1)}else e||(this.controlsController.cameraControls2&&(this.controlsController.cameraControls2.interactiveArea=new DOMRect(0,0,1,1)),this.setViewportFull())}setViewportFull(){const e=this.getSize(),t=0,s=0,r=e.width,o=e.height,n=r/o;this.camera.aspect!==n&&(this.camera.aspect=n,this.camera.updateProjectionMatrix()),this.renderer.setViewport(t,s,r,o),this.renderer.setScissor(t,s,r,o),this.renderer.setScissorTest(!0)}setViewportLeft(){const e=this.getSize(),t=0,s=0,r=e.width/2,o=e.height,n=r/o;this.camera.aspect!==n&&(this.camera.aspect=n,this.camera.updateProjectionMatrix()),this.renderer.setViewport(t,s,r,o),this.renderer.setScissor(t,s,r,o),this.renderer.setScissorTest(!0)}setViewportRight(){const e=this.getSize(),t=e.width/2,s=0,r=e.width/2,o=e.height,n=r/o,i=this.cameraController.camera2;i&&i.aspect!==n&&(i.aspect=n,i.updateProjectionMatrix()),this.renderer.setViewport(t,s,r,o),this.renderer.setScissor(t,s,r,o),this.renderer.setScissorTest(!0)}dispose(){var e,t,s,r,o,n,i,a,l,d,m;this.stop(),F.removeAll(),this.event.removeAllListeners(),(e=this.resizeObserver)==null||e.unobserve(this.options.container),this.handeleResize(0,0),this.installPlugins.forEach(f=>{var g;(g=f.dispose)==null||g.call(f)}),(t=this.controlsController)==null||t.dispose(),(s=this.transformController)==null||s.dispose(),(r=this.cssRendererController)==null||r.dispose(),(o=this.sceneController)==null||o.dispose(),(n=this.helperController)==null||n.dispose(),(i=this.composerController)==null||i.dispose(),(a=this.rendererController)==null||a.dispose(),this.cssRendererController=void 0,(l=this.gui)==null||l.destroy(),this.installPlugins.clear(),(d=this.stats)==null||d.dom.remove(),(m=this.renderer)==null||m.domElement.remove()}};O.options={isdev:E,stats:E,gui:E,helper:E,control:!0,transformControls:E,resizeObserver:!0,renderer:R(v({},re),{antialias:q?"msaa":"fxaa"}),multisampling:4,frameBufferType:h.UnsignedByteType,scene:ae,camera:ne,bloom:!1,bloomParams:k,toneMapping:!1,toneMappingParams:ue,crossOpacity:!1,css2DRenderer:!1,css2DRendererParams:v({},j),css3DRenderer:!1,css3DRendererParams:v({},j)};let D=O;const ve=x.ACTION;exports.BaseObject=se.BaseObject;exports.GUIObject=y;exports.Pencil=D;exports.cameraControlsAction=ve;exports.default=D;
18
+ `,toneMapped:!1,depthWrite:!1,depthTest:!1})}}class fe extends u.Pass{constructor(){super("CrossFadePass"),this.fullscreenMaterial=new pe}render(e,t,s){const r=this.fullscreenMaterial;r.uniforms.inputBuffer.value=t.texture,e.setRenderTarget(this.renderToScreen?null:s),e.render(this.scene,this.camera)}}const k={luminancePass:!1,luminanceThreshold:.4,luminanceSmoothing:.3,mipmapBlur:!0,intensity:3,mipmapBlurPassRadius:.85,blendFunction:u.BlendFunction.ADD,ignoreBackground:!0,epsilon:.001},ue={mode:u.ToneMappingMode.REINHARD2_ADAPTIVE,resolution:256,whitePoint:16,middleGrey:.6,minLuminance:.01,averageLuminance:.01,adaptationRate:1};class ge{constructor(e){this.active=!0,this.options=e;const{renderer:t,scene:s,camera:r}=e;this.finalComposer=this.addFinalComposer(r),this.renderer=t,this.scene=s,this.camera=r}addFinalComposer(e){const{renderer:t,scene:s,composerParams:r}=this.options,{multisampling:o,frameBufferType:n}=r,{maxSamples:i}=t.capabilities,a=new u.EffectComposer(t,{multisampling:Math.min(o,i),frameBufferType:n});return a.addPass(new u.RenderPass(s,e)),a}addFinalComposer2(e){const t=this.addFinalComposer(e);this.finalComposer2=t}addCopyPass(){const e=new u.CopyPass;this.finalComposer.addPass(e),this.copyPass=e}addCrossFadePass(){const e=new fe;this.finalComposer.addPass(e),this.crossFadePass=e}addFXAAPass(){const{camera:e}=this,t=new u.FXAAEffect({blendFunction:u.BlendFunction.NORMAL}),s=new u.EffectPass(e,t);this.finalComposer.addPass(s),this.fxaaPass=s}addToneMappingPass(e){const{camera:t}=this,s=new u.ToneMappingEffect(v({},e));this.toneMappingEffect=s;const r=new u.EffectPass(t,s);this.finalComposer.addPass(r),this.toneMappingPass=r}addToneMappingGui(e){if(!this.toneMappingEffect)return;new y({toneMapping:{blendFunction:{value:this.toneMappingEffect.mode,items:u.ToneMappingMode,onChange:s=>{this.toneMappingEffect.mode=Number(s)}},exposure:{min:0,max:2,value:this.renderer.toneMappingExposure,step:.001,onChange:s=>{this.renderer.toneMappingExposure=s}}},"Reinhard (Modified)":{whitePoint:{min:2,max:32,step:.001,target:()=>this.toneMappingEffect},middleGrey:{min:0,max:1,step:1e-4,target:()=>this.toneMappingEffect},averageLuminance:{min:1e-4,max:1,step:1e-4,target:()=>this.toneMappingEffect}}}).showGui(e)}addBloomPass(e){const{camera:t,scene:s}=this,d=v(v({},k),e),{epsilon:r,ignoreBackground:o,mipmapBlurPassRadius:n}=d,i=T(d,["epsilon","ignoreBackground","mipmapBlurPassRadius"]),a=new u.SelectiveBloomEffect(s,t,v({},i));o&&(a.ignoreBackground=o),n&&(a.mipmapBlurPass.radius=n),a.depthMaskMaterial.epsilon=r,a.luminancePass.enabled=!1,a.luminancePass.enabled=e.luminancePass;const l=new u.EffectPass(t,a);this.finalComposer.addPass(l),this.bloomPass=l,this.bloomEffect=a}addBloomGui(e){if(!this.bloomEffect)return;new y({bloom:{intensity:{min:0,max:10,step:.01,target:()=>this.bloomEffect},radius:{min:0,max:1,step:.001,target:()=>this.bloomEffect.mipmapBlurPass},blendFunction:{value:this.bloomEffect.blendMode.blendFunction,items:u.BlendFunction,onChange:s=>{this.bloomEffect.blendMode.blendFunction=Number(s)}},ignoreBackground:{value:this.bloomEffect.ignoreBackground,onChange:s=>{this.bloomEffect.ignoreBackground=s}}},bloomLuminanceFilter:{enabled:{value:this.bloomEffect.luminancePass.enabled,onChange:s=>{this.bloomEffect.luminancePass.enabled=s}},threshold:{min:0,max:1,step:.01,target:()=>this.bloomEffect.luminanceMaterial},smoothing:{min:0,max:1,step:.01,target:()=>this.bloomEffect.luminanceMaterial}}}).showGui(e)}toggleBloomSelection(e,t){if(!this.bloomEffect||!this.bloomPass){console.warn("err:pencil.options.bloom");return}e?t===!0?this.bloomEffect.selection.add(e):t===!1?this.bloomEffect.selection.delete(e):this.bloomEffect.selection.toggle(e):this.bloomEffect.selection.clear()}getSize(){const{renderer:e}=this.options;return e.getSize(new h.Vector2)}enable(){this.active||(this.active=!0)}disable(){this.active&&(this.active=!1)}setSize(e,t){var s;this.finalComposer.setSize(e,t),(s=this.finalComposer2)==null||s.setSize(e,t)}render(){this.active&&this.finalComposer.render()}render2(){var e;this.active&&((e=this.finalComposer2)==null||e.render())}dispose(){var e;this.finalComposer.dispose(),(e=this.finalComposer2)==null||e.dispose()}}const Ce=()=>{try{const c=document.createElement("canvas");return!!(window.WebGL2RenderingContext&&c.getContext("webgl2"))}catch(c){return!1}},E=!1,q=Ce()!==!1,O=class O{constructor(e,t){this.raycaster=new h.Raycaster,this.installPlugins=new Map,this.event=new G.eventsExports.EventEmitter,this.clock=new h.Clock,this.userData={},this.mulitViewport=!1,this.options=W(O.options,e,{isMergeableObject:te.isPlainObject}),this.event.setMaxListeners(1/0);const{container:s,stats:r,gui:o,resizeObserver:n}=this.options;if(o){const i=new $;i.open(!1),this.gui=i}if(r){const i=new X;i.showPanel(0),i.dom.style.position="absolute",s.appendChild(i.dom),this.stats=i}this.init(),this.initComposer(),this.initCSSRenderer(),this.initControls(),n&&this.initResizeObserver(),this.clock.getDelta(),this.clock.getElapsedTime(),t&&(Array.isArray(t)||(t=[t]),t.forEach(i=>{Array.isArray(i)||(i=[i]),this.use(i[0],i[1])}))}getPlugin(e){return this.installPlugins.get(e)}get renderer(){return this.rendererController.renderer}get cameraControls(){return this.controlsController.cameraControls}get cameraPositon(){return this.cameraControls.getPosition(new h.Vector3,!1)}get cameraTarget(){return this.cameraControls.getTarget(new h.Vector3,!1)}get camera(){return this.cameraController.camera}get scene(){return this.sceneController.scene}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))}init(){const{container:e,isdev:t,helper:s,renderer:r,scene:o,camera:n,control:i}=this.options,{width:a,height:l}=this.getSize(),d=new ie({isdev:t,width:a,height:l,cameraParams:n,cameraControls:i===!0});this.gui&&d.setGui(this.gui);const m=d.camera,f=new ce({camera:m,sceneParams:o}),g=f.scene,P=new oe({width:a,height:l,scene:g,camera:m,isdev:t,rendererParams:R(v({},r),{antialias:!1})});if(s){const p=new le({scene:g});p.add(g),this.helperController=p}this.sceneController=f,this.rendererController=P,this.cameraController=d,e.appendChild(P.renderer.domElement)}initComposer(){const{bloom:e,bloomParams:t,toneMapping:s,toneMappingParams:r,crossOpacity:o,renderer:n,multisampling:i,frameBufferType:a,passes:l}=this.options;let{antialias:d}=n;d==="msaa"&&!q&&(d=!1,console.warn("MSAA is not supported on this browser"));const m=new ge({renderer:this.renderer,scene:this.scene,camera:this.camera,composerParams:{multisampling:d==="msaa"?i:0,frameBufferType:s?h.HalfFloatType:a}});this.composerController=m,e&&(m.addBloomPass(t),this.gui&&m.addBloomGui(this.gui)),s&&(m.addToneMappingPass(r),this.gui&&m.addToneMappingGui(this.gui)),d==="fxaa"&&m.addFXAAPass(),o&&m.addCrossFadePass(),l&&l.forEach(f=>{m.finalComposer.addPass(f)}),m.finalComposer.passes.length===1&&m.addCopyPass()}get opacity(){const{crossFadePass:e}=this.composerController;return e?e.fullscreenMaterial.uniforms.ratio.value:1}set opacity(e){const{crossFadePass:t}=this.composerController;if(!t){console.warn("err:pencil.options.crossOpacity");return}t.fullscreenMaterial.uniforms.ratio.value=e}initCSSRenderer(){const{container:e,css2DRenderer:t,css3DRenderer:s,css2DRendererParams:r,css3DRendererParams:o}=this.options;if(t||s){const n=new me(e);t&&n.addRenderer("css2d",r),s&&n.addRenderer("css3d",o),this.cssRendererController=n}}initControls(){const{control:e,controlParams:t,transformControls:s}=this.options;if(e){const r=new he({camera:this.camera,controlsParams:{domElement:(t==null?void 0:t.domElement)||this.renderer.domElement},customControl:typeof e=="boolean"?void 0:e});this.controlsController=r}if(s){const r=new de({camera:this.camera,renderer:this.renderer,scene:this.scene});r.event.on("mouseDown",()=>{var o;(o=this.controlsController)==null||o.disable()}),r.event.on("mouseUp",()=>{var o;(o=this.controlsController)==null||o.enable()}),this.transformController=r}}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 r of s){const o=r.contentRect;this.handeleResize(o.width,o.height),this.render()}});t.observe(e),this.resizeObserver=t}handeleResize(e,t,s=!0){const{rendererController:r,cameraController:o,composerController:n,cssRendererController:i}=this;o==null||o.setSize(e,t),r==null||r.setSize(e,t),n==null||n.setSize(e,t),i==null||i.setSize(e,t),this.installPlugins.forEach(a=>{var l;(l=a.setSize)==null||l.call(a,e,t)}),s&&this.event.emit("resize",{width:e,height:t})}pick(e,t,s=!1){const{raycaster:r,options:o}=this,{container:n}=o,i=new h.Vector2,a=n.getBoundingClientRect();if(i.x=(e.clientX-a.left)/(a.right-a.left)*2-1,i.y=-((e.clientY-a.top)/(a.bottom-a.top))*2+1,this.camera&&this.scene){r.setFromCamera(i,this.camera);const l=r.intersectObjects(t||this.scene.children,s);if(l.length)return{object:l[0].object,intersects:l}}}render(){var n,i,a,l,d,m;const{scene:e,camera:t,clock:s}=this,r=s.getDelta(),o=s.getElapsedTime();F.update(),(n=this.controlsController)==null||n.update(r),this.installPlugins.forEach(f=>{var g;(g=f.update)==null||g.call(f,r,o)}),(i=this.helperController)==null||i.update(),(a=this.composerController)!=null&&a.active?this.mulitViewport?(this.setViewportLeft(),this.composerController.render(),this.setViewportRight(),this.composerController.render2()):this.composerController.render():(l=this.rendererController)==null||l.render(),(d=this.cssRendererController)==null||d.render(e,t),(m=this.stats)==null||m.update(),this.event.emit("render",{delta:r,elapsed:o})}start(){this.renderer.setAnimationLoop(this.render.bind(this)),this.event.emit("start")}stop(){this.renderer.setAnimationLoop(null),this.event.emit("stop")}autoRotate(e){this.controlsController.autoRotateSpeed=e}setMulitViewport(e){if(this.mulitViewport=e,e){if(!this.controlsController.cameraControls2){const t=this.cameraController.addCamera2();this.composerController.addFinalComposer2(t),this.controlsController.addCameraControls2(t)}this.controlsController.cameraControls.interactiveArea=new DOMRect(0,0,.5,1),this.controlsController.cameraControls2.interactiveArea=new DOMRect(.5,0,.5,1)}else e||(this.controlsController.cameraControls2&&(this.controlsController.cameraControls.interactiveArea=new DOMRect(0,0,1,1)),this.setViewportFull())}setViewportFull(){const e=this.getSize(),t=0,s=0,r=e.width,o=e.height,n=r/o;this.camera.aspect!==n&&(this.camera.aspect=n,this.camera.updateProjectionMatrix()),this.renderer.setViewport(t,s,r,o),this.renderer.setScissor(t,s,r,o),this.renderer.setScissorTest(!0)}setViewportLeft(){const e=this.getSize(),t=0,s=0,r=e.width/2,o=e.height,n=r/o;this.camera.aspect!==n&&(this.camera.aspect=n,this.camera.updateProjectionMatrix()),this.renderer.setViewport(t,s,r,o),this.renderer.setScissor(t,s,r,o),this.renderer.setScissorTest(!0)}setViewportRight(){const e=this.getSize(),t=e.width/2,s=0,r=e.width/2,o=e.height,n=r/o,i=this.cameraController.camera2;i&&i.aspect!==n&&(i.aspect=n,i.updateProjectionMatrix()),this.renderer.setViewport(t,s,r,o),this.renderer.setScissor(t,s,r,o),this.renderer.setScissorTest(!0)}dispose(){var e,t,s,r,o,n,i,a,l,d,m;this.stop(),F.removeAll(),this.event.removeAllListeners(),(e=this.resizeObserver)==null||e.unobserve(this.options.container),this.handeleResize(0,0),this.installPlugins.forEach(f=>{var g;(g=f.dispose)==null||g.call(f)}),(t=this.controlsController)==null||t.dispose(),(s=this.transformController)==null||s.dispose(),(r=this.cssRendererController)==null||r.dispose(),(o=this.sceneController)==null||o.dispose(),(n=this.helperController)==null||n.dispose(),(i=this.composerController)==null||i.dispose(),(a=this.rendererController)==null||a.dispose(),this.cssRendererController=void 0,(l=this.gui)==null||l.destroy(),this.installPlugins.clear(),(d=this.stats)==null||d.dom.remove(),(m=this.renderer)==null||m.domElement.remove()}};O.options={isdev:E,stats:E,gui:E,helper:E,control:!0,transformControls:E,resizeObserver:!0,renderer:R(v({},re),{antialias:q?"msaa":"fxaa"}),multisampling:4,frameBufferType:h.UnsignedByteType,scene:ae,camera:ne,bloom:!1,bloomParams:k,toneMapping:!1,toneMappingParams:ue,crossOpacity:!1,css2DRenderer:!1,css2DRendererParams:v({},j),css3DRenderer:!1,css3DRendererParams:v({},j)};let D=O;const ve=x.ACTION;exports.BaseObject=se.BaseObject;exports.GUIObject=y;exports.Pencil=D;exports.cameraControlsAction=ve;exports.default=D;
@@ -935,7 +935,7 @@ const Re = () => {
935
935
  0.5,
936
936
  1
937
937
  );
938
- } else e || (this.controlsController.cameraControls2 && (this.controlsController.cameraControls2.interactiveArea = new DOMRect(
938
+ } else e || (this.controlsController.cameraControls2 && (this.controlsController.cameraControls.interactiveArea = new DOMRect(
939
939
  0,
940
940
  0,
941
941
  1,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gl-draw",
3
- "version": "0.9.2",
3
+ "version": "0.9.3",
4
4
  "author": "gitplus <hstits@gmail.com>",
5
5
  "scripts": {
6
6
  "start": "bundler-dev",