gl-draw 0.9.1 → 0.9.2

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.
@@ -22,9 +22,11 @@ interface Options {
22
22
  export default class {
23
23
  options: Options;
24
24
  camera: THREE.PerspectiveCamera;
25
+ camera2?: THREE.PerspectiveCamera;
25
26
  customCamera: boolean;
26
27
  constructor(options: Options);
27
28
  setSize(width: number, height: number): void;
29
+ addCamera2(): THREE.PerspectiveCamera;
28
30
  setGui(gui: GUI): void;
29
31
  }
30
32
  export {};
@@ -57,6 +57,7 @@ export default class {
57
57
  scene: THREE.Scene;
58
58
  camera: THREE.Camera;
59
59
  finalComposer: EffectComposer;
60
+ finalComposer2?: EffectComposer;
60
61
  copyPass: CopyPass;
61
62
  fxaaPass?: EffectPass;
62
63
  bloomPass?: EffectPass;
@@ -67,6 +68,8 @@ export default class {
67
68
  options: Options;
68
69
  active: boolean;
69
70
  constructor(options: Options);
71
+ addFinalComposer(c: THREE.Camera): EffectComposer;
72
+ addFinalComposer2(c: THREE.Camera): void;
70
73
  addCopyPass(): void;
71
74
  addCrossFadePass(): void;
72
75
  addFXAAPass(): void;
@@ -80,6 +83,7 @@ export default class {
80
83
  disable(): void;
81
84
  setSize(width: number, height: number): void;
82
85
  render(): void;
86
+ render2(): void;
83
87
  dispose(): void;
84
88
  }
85
89
  export {};
@@ -13,8 +13,10 @@ export default class {
13
13
  options: Options;
14
14
  controls?: any;
15
15
  cameraControls: CameraControls;
16
+ cameraControls2?: CameraControls;
16
17
  autoRotateSpeed: number;
17
18
  constructor(options: Options);
19
+ addCameraControls2(c: THREE.PerspectiveCamera): void;
18
20
  enable(): void;
19
21
  disable(): void;
20
22
  update(delta: number): void;
@@ -162,6 +162,11 @@ export default class Pencil {
162
162
  start(): void;
163
163
  stop(): void;
164
164
  autoRotate(speed: number): void;
165
+ mulitViewport: boolean;
166
+ setMulitViewport(state: boolean): void;
167
+ private setViewportFull;
168
+ private setViewportLeft;
169
+ private setViewportRight;
165
170
  dispose(): void;
166
171
  }
167
172
  export {};
@@ -41,7 +41,7 @@ export default class {
41
41
  options: Options;
42
42
  constructor(options: Options);
43
43
  setSize(width: number, height: number): void;
44
- render(): void;
44
+ render(c?: THREE.Camera): void;
45
45
  dispose(): void;
46
46
  }
47
47
  export {};
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var U=Object.defineProperty,V=Object.defineProperties;var N=Object.getOwnPropertyDescriptors;var R=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var O=(c,e,t)=>e in c?U(c,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[e]=t,v=(c,e)=>{for(var t in e||(e={}))A.call(e,t)&&O(c,t,e[t]);if(R)for(var t of R(e))T.call(e,t)&&O(c,t,e[t]);return c},M=(c,e)=>V(c,N(e));var z=(c,e)=>{var t={};for(var s in c)A.call(c,s)&&e.indexOf(s)<0&&(t[s]=c[s]);if(c!=null&&R)for(var s of R(c))e.indexOf(s)<0&&T.call(c,s)&&(t[s]=c[s]);return t};Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const B=require("camera-controls"),S=require("three"),_=require("@tweenjs/tween.js"),H=require("./events.js"),W=require("deepmerge"),X=require("three/examples/jsm/libs/stats.module"),$=require("lil-gui"),Y=require("./colorCorrection.js"),Z=require("./disposeMesh.js");require("idb-keyval");require("esus-lite");require("d3-geo");const L=require("./MeshLineMaterial.js"),J=require("three/examples/jsm/helpers/RectAreaLightHelper"),K=require("three/examples/jsm/controls/TransformControls"),Q=require("three/examples/jsm/renderers/CSS3DRenderer"),ee=require("three/examples/jsm/renderers/CSS2DRenderer"),p=require("postprocessing"),te=require("./isPlainObject.js"),se=require("./BaseObject.js");function k(c){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(c){for(const t in c)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(c,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>c[t]})}}return e.default=c,Object.freeze(e)}const d=k(S),F=k(_),re={antialias:!1,devicePixelRatio:window.devicePixelRatio,powerPreference:"high-performance",toneMappingExposure:1,alpha:!1,outputColorSpace:Y.ColorSpace.sRGB,logarithmicDepthBuffer:!1,preserveDrawingBuffer:!1,stencil:!1,depth:!1,physicallyCorrectLights:!1};class oe{constructor(e){this.options=e;const{width:t,height:s,rendererParams:r}=e,{canvas:o,context:n,alpha:i,devicePixelRatio:a,antialias:l,powerPreference:h,toneMappingExposure:m,outputColorSpace:u,logarithmicDepthBuffer:g,preserveDrawingBuffer:P,stencil:f,depth:E,physicallyCorrectLights:b}=r,C=new d.WebGLRenderer({canvas:o,context:n,alpha:i,antialias:l,powerPreference:h,logarithmicDepthBuffer:g,preserveDrawingBuffer:P,stencil:f,depth:E});C.setSize(t,s),C.setPixelRatio(a),C.toneMappingExposure=m,C.outputColorSpace=u,+d.REVISION<155&&(C.useLegacyLights=b),this.renderer=C}setSize(e,t){this.renderer.setSize(e,t)}render(){const{scene:e,camera:t}=this.options;this.renderer.render(e,t)}dispose(){var e,t;(e=this.renderer)==null||e.clear(),(t=this.renderer)==null||t.dispose()}}class x{constructor(e){this.guiParams={},e&&(this.guiParams=e)}showGui(e){e&&Object.keys(this.guiParams).forEach(t=>{const s=e.addFolder(t),r=this.guiParams[t];Object.keys(r).forEach(o=>{const{min:n,max:i,step:a,name:l,paramMap:h,items:m,value:u,target:g}=r[o],P=o.toLowerCase().indexOf("color")>-1;let f;const E=typeof u=="undefined"&&g,b=E?g():r[o],C=E?o:"value";m?f=s.add(b,C,m):P?f=s.addColor(b,C):f=s.add(b,C),f=f.name(l||o),typeof n!="undefined"&&(f=f.min(n)),typeof i!="undefined"&&(f=f.max(i)),typeof a!="undefined"&&(f=f.step(a)),f=f.onChange(()=>{this.setTargetValue(t,o,b[C],h)}),E&&f.listen()})})}setTargetValue(e,t,s,r){const{onChange:o,target:n,value:i}=this.guiParams[e][t],a=t.toLowerCase().indexOf("color")>-1;if(n&&!(typeof i=="undefined"&&n)){let h=n();Array.isArray(h)||(h=[h]),h.forEach(m=>{if(m)if(a)try{m[r||t].set(s)}catch(u){t!=="color"&&!r&&console.warn(`${t} is not a color,set paramMap`)}else m[r||t]=s})}o&&o(s)}setTargetValueByParams(){Object.keys(this.guiParams).forEach(e=>{Object.keys(this.guiParams[e]).forEach(t=>{const s=this.guiParams[e][t];typeof s.value!="undefined"&&this.setTargetValue(e,t,s.value,s.paramMap)})})}}const ne={fov:45,near:1,far:1e3,up:new d.Vector3(0,1,0)};class ie{constructor(e){this.customCamera=!1,this.options=e;const{width:t,height:s,cameraParams:r}=e;if(r instanceof d.Camera)this.camera=r,this.customCamera=!0;else{const{fov:o,far:n,near:i,up:a}=r,l=new d.PerspectiveCamera(o,t/s,i,n);l.position.set(0,0,400),l.lookAt(0,0,0),l.up=a,this.camera=l}}setSize(e,t){this.camera instanceof d.PerspectiveCamera&&(this.camera.aspect=e/t),this.camera.updateProjectionMatrix()}setGui(e){const t=new x({camera:M(v({},this.options.cameraControls?{}:{x:{min:-1e4,max:1e4,step:1,target:()=>this.camera.position},y:{min:-1e4,max:1e4,step:1,target:()=>this.camera.position},z:{min:-1e4,max:1e4,step:1,target:()=>this.camera.position}}),{near:{min:0,max:1e3,step:1,target:()=>this.camera,onChange:s=>{this.camera.updateProjectionMatrix()}},far:{min:0,max:2e4,step:1,target:()=>this.camera,onChange:s=>{this.camera.updateProjectionMatrix()}}})});this.camera instanceof d.PerspectiveCamera&&(t.guiParams.camera.fov={min:0,max:90,step:1,target:()=>this.camera,onChange:s=>{this.camera.updateProjectionMatrix()}}),t.showGui(e)}}const ae={background:null,om:!0};class le{constructor(e){this.overrideMaterial=!1,this.options=e;const{camera:t,sceneParams:s}=e,{background:r,om:o}=s,n=o?new d.Scene:new Proxy(new d.Scene,{set:(i,a,l)=>Reflect.set(i,a,l),get:(i,a)=>{if(a==="overrideMaterial"){const l=Reflect.get(i,a);return this.overrideMaterial=!!l,L.meshLineMaterialArr.forEach(h=>{this.overrideMaterial?h.useDepth=1:h.useDepth=0}),null}return Reflect.get(i,a)}});r&&(n.background=r),n.add(t),this.scene=n}dispose(){var e;(e=this.scene)==null||e.traverse(t=>{Z.disposeMesh(t)}),L.meshLineMaterialArr.length=0}}class ce{constructor(e){this.helpers={},this.options=e}add(e){const t=e.uuid,{scene:s}=this.options;let r=this.helpers[t];if(r===void 0){if(e.isScene)r=new d.AxesHelper(100);else if(e.isCamera)r=new d.CameraHelper(e);else if(e.isPointLight)r=new d.PointLightHelper(e,1);else if(e.isDirectionalLight)r=new d.DirectionalLightHelper(e,1);else if(e.isSpotLight)r=new d.SpotLightHelper(e);else if(e.isHemisphereLight)r=new d.HemisphereLightHelper(e,10);else if(e.isRectAreaLight)r=new J.RectAreaLightHelper(e);else{const o=new d.Box3;if(o.setFromObject(e,!0),o.isEmpty()===!1){r=new d.Box3Helper(o);const n=r.material;n.userData.object=e,n.depthTest=!1,n.transparent=!0}else return}s.add(r),this.helpers[t]=r}}remove(e){const t=e.uuid,{scene:s}=this.options;if(this.helpers[t]!==void 0){const r=this.helpers[t];s.remove(r),delete this.helpers[t],r instanceof d.Box3Helper&&r.dispose()}}removeAll(){Object.keys(this.helpers).forEach(e=>{this.remove({uuid:e})}),this.helpers={}}removeAllExcludeScene(){Object.keys(this.helpers).forEach(e=>{this.helpers[e]instanceof d.AxesHelper||this.remove({uuid:e})})}update(){Object.values(this.helpers).forEach(e=>{if(e.update&&e.update(),e instanceof d.Box3Helper){const t=e.material,{object:s}=t.userData;s&&e.box.setFromObject(s,!0)}})}dispose(){this.helpers={}}}class de{constructor(e){this.autoRotateSpeed=0,this.options=e;const{camera:t,controlsParams:s,customControl:r}=e,{domElement:o}=s;if(r){const n=new r(t,o);n.enableDamping=!0,n.dampingFactor=.063,n.autoRotate=!1,n.autoRotateSpeed=-60,n.enableZoom=!0,n.zoomSpeed=.2,this.controls=n}else B.install({THREE:d}),this.cameraControls=new B(t,o)}enable(){this.controls?this.controls.enabled=!0:this.cameraControls&&(this.cameraControls.enabled=!0)}disable(){this.controls?this.controls.enabled=!1:this.cameraControls&&(this.cameraControls.enabled=!1)}update(e){var t,s;(t=this.controls)==null||t.update(),(s=this.cameraControls)==null||s.update(e),this.autoRotateSpeed&&this.cameraControls&&(this.cameraControls.azimuthAngle+=this.autoRotateSpeed*e*d.MathUtils.DEG2RAD)}dispose(){var e,t;(e=this.controls)==null||e.dispose(),(t=this.cameraControls)==null||t.dispose()}}class he{constructor(e){this.event=new H.eventsExports.EventEmitter;const{renderer:t,scene:s,camera:r}=e,o=new K.TransformControls(r,t.domElement);s.add(o),this.controls=o,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 r=this.controls;r.addEventListener("change",()=>{const o=r.object;o!==void 0&&this.event.emit("change",o)}),r.addEventListener("mouseDown",()=>{const o=r.object;e=o.position.clone(),t=o.rotation.clone(),s=o.scale.clone(),this.event.emit("mouseDown",o)}),r.addEventListener("mouseUp",()=>{const o=r.object;if(o!==void 0)switch(r.getMode()){case"translate":e.equals(o.position)||this.event.emit("translate",o,o.position,e);break;case"rotate":t.equals(o.rotation)||this.event.emit("rotate",o,o.rotation,t);break;case"scale":s.equals(o.scale)||this.event.emit("scale",o,o.scale,s);break}this.event.emit("mouseUp")})}dispose(){var e;this.event.removeAllListeners(),(e=this.controls)==null||e.dispose()}}const j={zIndex:"auto"};class me{constructor(e){this.container=e}addRenderer(e,t){const s=t.container||this.container,r=s.offsetWidth,o=s.offsetHeight,n=e==="css2d"?new ee.CSS2DRenderer:new Q.CSS3DRenderer;n.domElement.style.position="absolute",n.domElement.style.top="0",n.domElement.style.pointerEvents="none",n.domElement.style.zIndex=t.zIndex,n.setSize(r,o),s.appendChild(n.domElement),e==="css2d"?this.css2Drenderer=n:e==="css3d"&&(this.css3Drenderer=n)}setSize(e,t){var s,r;(s=this.css2Drenderer)==null||s.setSize(e,t),(r=this.css3Drenderer)==null||r.setSize(e,t)}render(e,t){var s,r;(s=this.css2Drenderer)==null||s.render(e,t),(r=this.css3Drenderer)==null||r.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}}const q=["encodings_fragment","colorspace_fragment"];class fe extends S.ShaderMaterial{constructor(){super({uniforms:{inputBuffer:new S.Uniform(null),ratio:new S.Uniform(1)},fragmentShader:`
1
+ "use strict";var I=Object.defineProperty,U=Object.defineProperties;var N=Object.getOwnPropertyDescriptors;var M=Object.getOwnPropertySymbols;var B=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var A=(c,e,t)=>e in c?I(c,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[e]=t,v=(c,e)=>{for(var t in e||(e={}))B.call(e,t)&&A(c,t,e[t]);if(M)for(var t of M(e))z.call(e,t)&&A(c,t,e[t]);return c},R=(c,e)=>U(c,N(e));var T=(c,e)=>{var t={};for(var s in c)B.call(c,s)&&e.indexOf(s)<0&&(t[s]=c[s]);if(c!=null&&M)for(var s of M(c))e.indexOf(s)<0&&z.call(c,s)&&(t[s]=c[s]);return t};Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const x=require("camera-controls"),S=require("three"),_=require("@tweenjs/tween.js"),G=require("./events.js"),W=require("deepmerge"),X=require("three/examples/jsm/libs/stats.module"),$=require("lil-gui"),Y=require("./colorCorrection.js"),Z=require("./disposeMesh.js");require("idb-keyval");require("esus-lite");require("d3-geo");const L=require("./MeshLineMaterial.js"),J=require("three/examples/jsm/helpers/RectAreaLightHelper"),K=require("three/examples/jsm/controls/TransformControls"),Q=require("three/examples/jsm/renderers/CSS3DRenderer"),ee=require("three/examples/jsm/renderers/CSS2DRenderer"),u=require("postprocessing"),te=require("./isPlainObject.js"),se=require("./BaseObject.js");function H(c){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(c){for(const t in c)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(c,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>c[t]})}}return e.default=c,Object.freeze(e)}const h=H(S),F=H(_),re={antialias:!1,devicePixelRatio:window.devicePixelRatio,powerPreference:"high-performance",toneMappingExposure:1,alpha:!1,outputColorSpace:Y.ColorSpace.sRGB,logarithmicDepthBuffer:!1,preserveDrawingBuffer:!1,stencil:!1,depth:!1,physicallyCorrectLights:!1};class oe{constructor(e){this.options=e;const{width:t,height:s,rendererParams:r}=e,{canvas:o,context:n,alpha:i,devicePixelRatio:a,antialias:l,powerPreference:d,toneMappingExposure:m,outputColorSpace:f,logarithmicDepthBuffer:g,preserveDrawingBuffer:P,stencil:p,depth:b,physicallyCorrectLights:w}=r,C=new h.WebGLRenderer({canvas:o,context:n,alpha:i,antialias:l,powerPreference:d,logarithmicDepthBuffer:g,preserveDrawingBuffer:P,stencil:p,depth:b});C.setSize(t,s),C.setPixelRatio(a),C.toneMappingExposure=m,C.outputColorSpace=f,+h.REVISION<155&&(C.useLegacyLights=w),this.renderer=C}setSize(e,t){this.renderer.setSize(e,t)}render(e){const{scene:t,camera:s}=this.options;this.renderer.render(t,e||s)}dispose(){var e,t;(e=this.renderer)==null||e.clear(),(t=this.renderer)==null||t.dispose()}}class y{constructor(e){this.guiParams={},e&&(this.guiParams=e)}showGui(e){e&&Object.keys(this.guiParams).forEach(t=>{const s=e.addFolder(t),r=this.guiParams[t];Object.keys(r).forEach(o=>{const{min:n,max:i,step:a,name:l,paramMap:d,items:m,value:f,target:g}=r[o],P=o.toLowerCase().indexOf("color")>-1;let p;const b=typeof f=="undefined"&&g,w=b?g():r[o],C=b?o:"value";m?p=s.add(w,C,m):P?p=s.addColor(w,C):p=s.add(w,C),p=p.name(l||o),typeof n!="undefined"&&(p=p.min(n)),typeof i!="undefined"&&(p=p.max(i)),typeof a!="undefined"&&(p=p.step(a)),p=p.onChange(()=>{this.setTargetValue(t,o,w[C],d)}),b&&p.listen()})})}setTargetValue(e,t,s,r){const{onChange:o,target:n,value:i}=this.guiParams[e][t],a=t.toLowerCase().indexOf("color")>-1;if(n&&!(typeof i=="undefined"&&n)){let d=n();Array.isArray(d)||(d=[d]),d.forEach(m=>{if(m)if(a)try{m[r||t].set(s)}catch(f){t!=="color"&&!r&&console.warn(`${t} is not a color,set paramMap`)}else m[r||t]=s})}o&&o(s)}setTargetValueByParams(){Object.keys(this.guiParams).forEach(e=>{Object.keys(this.guiParams[e]).forEach(t=>{const s=this.guiParams[e][t];typeof s.value!="undefined"&&this.setTargetValue(e,t,s.value,s.paramMap)})})}}const ne={fov:45,near:1,far:1e3,up:new h.Vector3(0,1,0)};class ie{constructor(e){this.customCamera=!1,this.options=e;const{width:t,height:s,cameraParams:r}=e;if(r instanceof h.Camera)this.camera=r,this.customCamera=!0;else{const{fov:o,far:n,near:i,up:a}=r,l=new h.PerspectiveCamera(o,t/s,i,n);l.position.set(0,0,400),l.lookAt(0,0,0),l.up=a,this.camera=l}}setSize(e,t){this.camera instanceof h.PerspectiveCamera&&(this.camera.aspect=e/t),this.camera.updateProjectionMatrix(),this.camera2&&(this.camera2.aspect=e/t,this.camera2.updateProjectionMatrix())}addCamera2(){const e=new h.PerspectiveCamera(this.camera.fov,this.camera.aspect,this.camera.near,this.camera.far);return e.position.copy(this.camera.position),this.camera2=e,e}setGui(e){const t=new y({camera:R(v({},this.options.cameraControls?{}:{x:{min:-1e4,max:1e4,step:1,target:()=>this.camera.position},y:{min:-1e4,max:1e4,step:1,target:()=>this.camera.position},z:{min:-1e4,max:1e4,step:1,target:()=>this.camera.position}}),{near:{min:0,max:1e3,step:1,target:()=>this.camera,onChange:s=>{this.camera.updateProjectionMatrix()}},far:{min:0,max:2e4,step:1,target:()=>this.camera,onChange:s=>{this.camera.updateProjectionMatrix()}}})});this.camera instanceof h.PerspectiveCamera&&(t.guiParams.camera.fov={min:0,max:90,step:1,target:()=>this.camera,onChange:s=>{this.camera.updateProjectionMatrix()}}),t.showGui(e)}}const ae={background:null,om:!0};class ce{constructor(e){this.overrideMaterial=!1,this.options=e;const{camera:t,sceneParams:s}=e,{background:r,om:o}=s,n=o?new h.Scene:new Proxy(new h.Scene,{set:(i,a,l)=>Reflect.set(i,a,l),get:(i,a)=>{if(a==="overrideMaterial"){const l=Reflect.get(i,a);return this.overrideMaterial=!!l,L.meshLineMaterialArr.forEach(d=>{this.overrideMaterial?d.useDepth=1:d.useDepth=0}),null}return Reflect.get(i,a)}});r&&(n.background=r),n.add(t),this.scene=n}dispose(){var e;(e=this.scene)==null||e.traverse(t=>{Z.disposeMesh(t)}),L.meshLineMaterialArr.length=0}}class le{constructor(e){this.helpers={},this.options=e}add(e){const t=e.uuid,{scene:s}=this.options;let r=this.helpers[t];if(r===void 0){if(e.isScene)r=new h.AxesHelper(100);else if(e.isCamera)r=new h.CameraHelper(e);else if(e.isPointLight)r=new h.PointLightHelper(e,1);else if(e.isDirectionalLight)r=new h.DirectionalLightHelper(e,1);else if(e.isSpotLight)r=new h.SpotLightHelper(e);else if(e.isHemisphereLight)r=new h.HemisphereLightHelper(e,10);else if(e.isRectAreaLight)r=new J.RectAreaLightHelper(e);else{const o=new h.Box3;if(o.setFromObject(e,!0),o.isEmpty()===!1){r=new h.Box3Helper(o);const n=r.material;n.userData.object=e,n.depthTest=!1,n.transparent=!0}else return}s.add(r),this.helpers[t]=r}}remove(e){const t=e.uuid,{scene:s}=this.options;if(this.helpers[t]!==void 0){const r=this.helpers[t];s.remove(r),delete this.helpers[t],r instanceof h.Box3Helper&&r.dispose()}}removeAll(){Object.keys(this.helpers).forEach(e=>{this.remove({uuid:e})}),this.helpers={}}removeAllExcludeScene(){Object.keys(this.helpers).forEach(e=>{this.helpers[e]instanceof h.AxesHelper||this.remove({uuid:e})})}update(){Object.values(this.helpers).forEach(e=>{if(e.update&&e.update(),e instanceof h.Box3Helper){const t=e.material,{object:s}=t.userData;s&&e.box.setFromObject(s,!0)}})}dispose(){this.helpers={}}}class he{constructor(e){this.autoRotateSpeed=0,this.options=e;const{camera:t,controlsParams:s,customControl:r}=e,{domElement:o}=s;if(r){const n=new r(t,o);n.enableDamping=!0,n.dampingFactor=.063,n.autoRotate=!1,n.autoRotateSpeed=-60,n.enableZoom=!0,n.zoomSpeed=.2,this.controls=n}else x.install({THREE:h}),this.cameraControls=new x(t,o)}addCameraControls2(e){const{controlsParams:t}=this.options,{domElement:s}=t;this.cameraControls2=new x(e,s)}enable(){this.controls?this.controls.enabled=!0:this.cameraControls&&(this.cameraControls.enabled=!0)}disable(){this.controls?this.controls.enabled=!1:this.cameraControls&&(this.cameraControls.enabled=!1)}update(e){var t,s,r;(t=this.controls)==null||t.update(),(s=this.cameraControls)==null||s.update(e),(r=this.cameraControls2)==null||r.update(e),this.autoRotateSpeed&&this.cameraControls&&(this.cameraControls.azimuthAngle+=this.autoRotateSpeed*e*h.MathUtils.DEG2RAD)}dispose(){var e,t,s;(e=this.controls)==null||e.dispose(),(t=this.cameraControls)==null||t.dispose(),(s=this.cameraControls2)==null||s.dispose()}}class de{constructor(e){this.event=new G.eventsExports.EventEmitter;const{renderer:t,scene:s,camera:r}=e,o=new K.TransformControls(r,t.domElement);s.add(o),this.controls=o,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 r=this.controls;r.addEventListener("change",()=>{const o=r.object;o!==void 0&&this.event.emit("change",o)}),r.addEventListener("mouseDown",()=>{const o=r.object;e=o.position.clone(),t=o.rotation.clone(),s=o.scale.clone(),this.event.emit("mouseDown",o)}),r.addEventListener("mouseUp",()=>{const o=r.object;if(o!==void 0)switch(r.getMode()){case"translate":e.equals(o.position)||this.event.emit("translate",o,o.position,e);break;case"rotate":t.equals(o.rotation)||this.event.emit("rotate",o,o.rotation,t);break;case"scale":s.equals(o.scale)||this.event.emit("scale",o,o.scale,s);break}this.event.emit("mouseUp")})}dispose(){var e;this.event.removeAllListeners(),(e=this.controls)==null||e.dispose()}}const j={zIndex:"auto"};class me{constructor(e){this.container=e}addRenderer(e,t){const s=t.container||this.container,r=s.offsetWidth,o=s.offsetHeight,n=e==="css2d"?new ee.CSS2DRenderer:new Q.CSS3DRenderer;n.domElement.style.position="absolute",n.domElement.style.top="0",n.domElement.style.pointerEvents="none",n.domElement.style.zIndex=t.zIndex,n.setSize(r,o),s.appendChild(n.domElement),e==="css2d"?this.css2Drenderer=n:e==="css3d"&&(this.css3Drenderer=n)}setSize(e,t){var s,r;(s=this.css2Drenderer)==null||s.setSize(e,t),(r=this.css3Drenderer)==null||r.setSize(e,t)}render(e,t){var s,r;(s=this.css2Drenderer)==null||s.render(e,t),(r=this.css3Drenderer)==null||r.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}}const V=["encodings_fragment","colorspace_fragment"];class pe extends S.ShaderMaterial{constructor(){super({uniforms:{inputBuffer:new S.Uniform(null),ratio:new S.Uniform(1)},fragmentShader:`
2
2
  uniform sampler2D inputBuffer;
3
3
  uniform float ratio;
4
4
  varying vec2 vUv;
@@ -6,7 +6,7 @@
6
6
  vec4 texel = texture2D(inputBuffer, vUv);
7
7
  gl_FragColor = texel * ratio;
8
8
  // Support automatic output encoding.
9
- #include <${+S.REVISION<154?q[0]:q[1]}>
9
+ #include <${+S.REVISION<154?V[0]:V[1]}>
10
10
 
11
11
  }
12
12
  `,vertexShader:`
@@ -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 ue extends p.Pass{constructor(){super("CrossFadePass"),this.fullscreenMaterial=new fe}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 I={luminancePass:!1,luminanceThreshold:.4,luminanceSmoothing:.3,mipmapBlur:!0,intensity:3,mipmapBlurPassRadius:.85,blendFunction:p.BlendFunction.ADD,ignoreBackground:!0,epsilon:.001},pe={mode:p.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,composerParams:o}=e,{multisampling:n,frameBufferType:i}=o,{maxSamples:a}=t.capabilities,l=new p.EffectComposer(t,{multisampling:Math.min(n,a),frameBufferType:i});l.addPass(new p.RenderPass(s,r)),this.finalComposer=l,this.renderer=t,this.scene=s,this.camera=r}addCopyPass(){const e=new p.CopyPass;this.finalComposer.addPass(e),this.copyPass=e}addCrossFadePass(){const e=new ue;this.finalComposer.addPass(e),this.crossFadePass=e}addFXAAPass(){const{camera:e}=this,t=new p.FXAAEffect({blendFunction:p.BlendFunction.NORMAL}),s=new p.EffectPass(e,t);this.finalComposer.addPass(s),this.fxaaPass=s}addToneMappingPass(e){const{camera:t}=this,s=new p.ToneMappingEffect(v({},e));this.toneMappingEffect=s;const r=new p.EffectPass(t,s);this.finalComposer.addPass(r),this.toneMappingPass=r}addToneMappingGui(e){if(!this.toneMappingEffect)return;new x({toneMapping:{blendFunction:{value:this.toneMappingEffect.mode,items:p.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,h=v(v({},I),e),{epsilon:r,ignoreBackground:o,mipmapBlurPassRadius:n}=h,i=z(h,["epsilon","ignoreBackground","mipmapBlurPassRadius"]),a=new p.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 p.EffectPass(t,a);this.finalComposer.addPass(l),this.bloomPass=l,this.bloomEffect=a}addBloomGui(e){if(!this.bloomEffect)return;new x({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:p.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 d.Vector2)}enable(){this.active||(this.active=!0)}disable(){this.active&&(this.active=!1)}setSize(e,t){this.finalComposer.setSize(e,t)}render(){this.active&&this.finalComposer.render()}dispose(){this.finalComposer.dispose()}}const Ce=()=>{try{const c=document.createElement("canvas");return!!(window.WebGL2RenderingContext&&c.getContext("webgl2"))}catch(c){return!1}},w=!1,G=Ce()!==!1,D=class D{constructor(e,t){this.raycaster=new d.Raycaster,this.installPlugins=new Map,this.event=new H.eventsExports.EventEmitter,this.clock=new d.Clock,this.userData={},this.options=W(D.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 d.Vector3,!1)}get cameraTarget(){return this.cameraControls.getTarget(new d.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(),h=new ie({isdev:t,width:a,height:l,cameraParams:n,cameraControls:i===!0});this.gui&&h.setGui(this.gui);const m=h.camera,u=new le({camera:m,sceneParams:o}),g=u.scene,P=new oe({width:a,height:l,scene:g,camera:m,isdev:t,rendererParams:M(v({},r),{antialias:!1})});if(s){const f=new ce({scene:g});f.add(g),this.helperController=f}this.sceneController=u,this.rendererController=P,this.cameraController=h,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:h}=n;h==="msaa"&&!G&&(h=!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:h==="msaa"?i:0,frameBufferType:s?d.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)),h==="fxaa"&&m.addFXAAPass(),o&&m.addCrossFadePass(),l&&l.forEach(u=>{m.finalComposer.addPass(u)}),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 de({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 he({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 d.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,h,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(u=>{var g;(g=u.update)==null||g.call(u,r,o)}),(i=this.helperController)==null||i.update(),(a=this.composerController)!=null&&a.active?this.composerController.render():(l=this.rendererController)==null||l.render(),(h=this.cssRendererController)==null||h.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}dispose(){var e,t,s,r,o,n,i,a,l,h,m;this.stop(),F.removeAll(),this.event.removeAllListeners(),(e=this.resizeObserver)==null||e.unobserve(this.options.container),this.handeleResize(0,0),this.installPlugins.forEach(u=>{var g;(g=u.dispose)==null||g.call(u)}),(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(),(h=this.stats)==null||h.dom.remove(),(m=this.renderer)==null||m.domElement.remove()}};D.options={isdev:w,stats:w,gui:w,helper:w,control:!0,transformControls:w,resizeObserver:!0,renderer:M(v({},re),{antialias:G?"msaa":"fxaa"}),multisampling:4,frameBufferType:d.UnsignedByteType,scene:ae,camera:ne,bloom:!1,bloomParams:I,toneMapping:!1,toneMappingParams:pe,crossOpacity:!1,css2DRenderer:!1,css2DRendererParams:v({},j),css3DRenderer:!1,css3DRendererParams:v({},j)};let y=D;const ve=B.ACTION;exports.BaseObject=se.BaseObject;exports.GUIObject=x;exports.Pencil=y;exports.cameraControlsAction=ve;exports.default=y;
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;
@@ -1,28 +1,28 @@
1
1
  var N = Object.defineProperty, W = Object.defineProperties;
2
2
  var _ = Object.getOwnPropertyDescriptors;
3
- var w = Object.getOwnPropertySymbols;
4
- var A = Object.prototype.hasOwnProperty, z = Object.prototype.propertyIsEnumerable;
5
- var B = (c, e, t) => e in c ? N(c, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : c[e] = t, C = (c, e) => {
3
+ var E = Object.getOwnPropertySymbols;
4
+ var A = Object.prototype.hasOwnProperty, B = Object.prototype.propertyIsEnumerable;
5
+ var z = (l, e, t) => e in l ? N(l, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : l[e] = t, C = (l, e) => {
6
6
  for (var t in e || (e = {}))
7
- A.call(e, t) && B(c, t, e[t]);
8
- if (w)
9
- for (var t of w(e))
10
- z.call(e, t) && B(c, t, e[t]);
11
- return c;
12
- }, S = (c, e) => W(c, _(e));
13
- var O = (c, e) => {
7
+ A.call(e, t) && z(l, t, e[t]);
8
+ if (E)
9
+ for (var t of E(e))
10
+ B.call(e, t) && z(l, t, e[t]);
11
+ return l;
12
+ }, S = (l, e) => W(l, _(e));
13
+ var O = (l, e) => {
14
14
  var t = {};
15
- for (var s in c)
16
- A.call(c, s) && e.indexOf(s) < 0 && (t[s] = c[s]);
17
- if (c != null && w)
18
- for (var s of w(c))
19
- e.indexOf(s) < 0 && z.call(c, s) && (t[s] = c[s]);
15
+ for (var s in l)
16
+ A.call(l, s) && e.indexOf(s) < 0 && (t[s] = l[s]);
17
+ if (l != null && E)
18
+ for (var s of E(l))
19
+ e.indexOf(s) < 0 && B.call(l, s) && (t[s] = l[s]);
20
20
  return t;
21
21
  };
22
- import M from "camera-controls";
23
- import * as d from "three";
24
- import { ShaderMaterial as X, Uniform as L, REVISION as q } from "three";
25
- import * as T from "@tweenjs/tween.js";
22
+ import x from "camera-controls";
23
+ import * as h from "three";
24
+ import { ShaderMaterial as X, Uniform as T, REVISION as q } from "three";
25
+ import * as L from "@tweenjs/tween.js";
26
26
  import { e as j } from "./events.module.js";
27
27
  import $ from "deepmerge";
28
28
  import Y from "three/examples/jsm/libs/stats.module";
@@ -37,8 +37,8 @@ import { RectAreaLightHelper as Q } from "three/examples/jsm/helpers/RectAreaLig
37
37
  import { TransformControls as ee } from "three/examples/jsm/controls/TransformControls";
38
38
  import { CSS3DRenderer as te } from "three/examples/jsm/renderers/CSS3DRenderer";
39
39
  import { CSS2DRenderer as se } from "three/examples/jsm/renderers/CSS2DRenderer";
40
- import { Pass as re, BlendFunction as y, ToneMappingMode as V, EffectComposer as oe, RenderPass as ne, CopyPass as ie, FXAAEffect as ae, EffectPass as R, ToneMappingEffect as le, SelectiveBloomEffect as ce } from "postprocessing";
41
- import { i as de } from "./isPlainObject.module.js";
40
+ import { Pass as re, BlendFunction as y, ToneMappingMode as I, EffectComposer as oe, RenderPass as ie, CopyPass as ne, FXAAEffect as ae, EffectPass as M, ToneMappingEffect as ce, SelectiveBloomEffect as le } from "postprocessing";
41
+ import { i as he } from "./isPlainObject.module.js";
42
42
  import { B as $e } from "./BaseObject.module.js";
43
43
  const me = {
44
44
  antialias: !1,
@@ -53,42 +53,42 @@ const me = {
53
53
  depth: !1,
54
54
  physicallyCorrectLights: !1
55
55
  };
56
- class he {
56
+ class de {
57
57
  constructor(e) {
58
58
  this.options = e;
59
59
  const { width: t, height: s, rendererParams: r } = e, {
60
60
  canvas: o,
61
- context: n,
62
- alpha: i,
61
+ context: i,
62
+ alpha: n,
63
63
  devicePixelRatio: a,
64
- antialias: l,
64
+ antialias: c,
65
65
  powerPreference: m,
66
- toneMappingExposure: h,
67
- outputColorSpace: p,
66
+ toneMappingExposure: d,
67
+ outputColorSpace: f,
68
68
  logarithmicDepthBuffer: u,
69
69
  preserveDrawingBuffer: v,
70
- stencil: f,
71
- depth: b,
70
+ stencil: p,
71
+ depth: w,
72
72
  physicallyCorrectLights: P
73
- } = r, g = new d.WebGLRenderer({
73
+ } = r, g = new h.WebGLRenderer({
74
74
  canvas: o,
75
- context: n,
76
- alpha: i,
77
- antialias: l,
75
+ context: i,
76
+ alpha: n,
77
+ antialias: c,
78
78
  powerPreference: m,
79
79
  logarithmicDepthBuffer: u,
80
80
  preserveDrawingBuffer: v,
81
- stencil: f,
82
- depth: b
81
+ stencil: p,
82
+ depth: w
83
83
  });
84
- g.setSize(t, s), g.setPixelRatio(a), g.toneMappingExposure = h, g.outputColorSpace = p, +d.REVISION < 155 && (g.useLegacyLights = P), this.renderer = g;
84
+ g.setSize(t, s), g.setPixelRatio(a), g.toneMappingExposure = d, g.outputColorSpace = f, +h.REVISION < 155 && (g.useLegacyLights = P), this.renderer = g;
85
85
  }
86
86
  setSize(e, t) {
87
87
  this.renderer.setSize(e, t);
88
88
  }
89
- render() {
90
- const { scene: e, camera: t } = this.options;
91
- this.renderer.render(e, t);
89
+ render(e) {
90
+ const { scene: t, camera: s } = this.options;
91
+ this.renderer.render(t, e || s);
92
92
  }
93
93
  dispose() {
94
94
  var e, t;
@@ -104,41 +104,41 @@ class D {
104
104
  const s = e.addFolder(t), r = this.guiParams[t];
105
105
  Object.keys(r).forEach((o) => {
106
106
  const {
107
- min: n,
108
- max: i,
107
+ min: i,
108
+ max: n,
109
109
  step: a,
110
- name: l,
110
+ name: c,
111
111
  paramMap: m,
112
- items: h,
113
- value: p,
112
+ items: d,
113
+ value: f,
114
114
  target: u
115
115
  } = r[o], v = o.toLowerCase().indexOf("color") > -1;
116
- let f;
117
- const b = typeof p == "undefined" && u, P = b ? u() : r[o], g = b ? o : "value";
118
- h ? f = s.add(P, g, h) : v ? f = s.addColor(P, g) : f = s.add(P, g), f = f.name(l || o), typeof n != "undefined" && (f = f.min(n)), typeof i != "undefined" && (f = f.max(i)), typeof a != "undefined" && (f = f.step(a)), f = f.onChange(() => {
116
+ let p;
117
+ const w = typeof f == "undefined" && u, P = w ? u() : r[o], g = w ? o : "value";
118
+ d ? p = s.add(P, g, d) : v ? p = s.addColor(P, g) : p = s.add(P, g), p = p.name(c || o), typeof i != "undefined" && (p = p.min(i)), typeof n != "undefined" && (p = p.max(n)), typeof a != "undefined" && (p = p.step(a)), p = p.onChange(() => {
119
119
  this.setTargetValue(t, o, P[g], m);
120
- }), b && f.listen();
120
+ }), w && p.listen();
121
121
  });
122
122
  });
123
123
  }
124
124
  setTargetValue(e, t, s, r) {
125
125
  const {
126
126
  onChange: o,
127
- target: n,
128
- value: i
127
+ target: i,
128
+ value: n
129
129
  } = this.guiParams[e][t], a = t.toLowerCase().indexOf("color") > -1;
130
- if (n && !(typeof i == "undefined" && n)) {
131
- let m = n();
132
- Array.isArray(m) || (m = [m]), m.forEach((h) => {
133
- if (h)
130
+ if (i && !(typeof n == "undefined" && i)) {
131
+ let m = i();
132
+ Array.isArray(m) || (m = [m]), m.forEach((d) => {
133
+ if (d)
134
134
  if (a)
135
135
  try {
136
- h[r || t].set(s);
137
- } catch (p) {
136
+ d[r || t].set(s);
137
+ } catch (f) {
138
138
  t !== "color" && !r && console.warn(`${t} is not a color,set paramMap`);
139
139
  }
140
140
  else
141
- h[r || t] = s;
141
+ d[r || t] = s;
142
142
  });
143
143
  }
144
144
  o && o(s);
@@ -152,30 +152,39 @@ class D {
152
152
  });
153
153
  }
154
154
  }
155
- const fe = {
155
+ const pe = {
156
156
  fov: 45,
157
157
  near: 1,
158
158
  far: 1e3,
159
- up: new d.Vector3(0, 1, 0)
159
+ up: new h.Vector3(0, 1, 0)
160
160
  };
161
- class pe {
161
+ class fe {
162
162
  constructor(e) {
163
163
  this.customCamera = !1, this.options = e;
164
164
  const { width: t, height: s, cameraParams: r } = e;
165
- if (r instanceof d.Camera)
165
+ if (r instanceof h.Camera)
166
166
  this.camera = r, this.customCamera = !0;
167
167
  else {
168
- const { fov: o, far: n, near: i, up: a } = r, l = new d.PerspectiveCamera(
168
+ const { fov: o, far: i, near: n, up: a } = r, c = new h.PerspectiveCamera(
169
169
  o,
170
170
  t / s,
171
- i,
172
- n
171
+ n,
172
+ i
173
173
  );
174
- l.position.set(0, 0, 400), l.lookAt(0, 0, 0), l.up = a, this.camera = l;
174
+ c.position.set(0, 0, 400), c.lookAt(0, 0, 0), c.up = a, this.camera = c;
175
175
  }
176
176
  }
177
177
  setSize(e, t) {
178
- this.camera instanceof d.PerspectiveCamera && (this.camera.aspect = e / t), this.camera.updateProjectionMatrix();
178
+ this.camera instanceof h.PerspectiveCamera && (this.camera.aspect = e / t), this.camera.updateProjectionMatrix(), this.camera2 && (this.camera2.aspect = e / t, this.camera2.updateProjectionMatrix());
179
+ }
180
+ addCamera2() {
181
+ const e = new h.PerspectiveCamera(
182
+ this.camera.fov,
183
+ this.camera.aspect,
184
+ this.camera.near,
185
+ this.camera.far
186
+ );
187
+ return e.position.copy(this.camera.position), this.camera2 = e, e;
179
188
  }
180
189
  setGui(e) {
181
190
  const t = new D({
@@ -219,7 +228,7 @@ class pe {
219
228
  }
220
229
  })
221
230
  });
222
- this.camera instanceof d.PerspectiveCamera && (t.guiParams.camera.fov = {
231
+ this.camera instanceof h.PerspectiveCamera && (t.guiParams.camera.fov = {
223
232
  min: 0,
224
233
  max: 90,
225
234
  step: 1,
@@ -237,19 +246,19 @@ const ue = {
237
246
  class ge {
238
247
  constructor(e) {
239
248
  this.overrideMaterial = !1, this.options = e;
240
- const { camera: t, sceneParams: s } = e, { background: r, om: o } = s, n = o ? new d.Scene() : new Proxy(new d.Scene(), {
241
- set: (i, a, l) => Reflect.set(i, a, l),
242
- get: (i, a) => {
249
+ const { camera: t, sceneParams: s } = e, { background: r, om: o } = s, i = o ? new h.Scene() : new Proxy(new h.Scene(), {
250
+ set: (n, a, c) => Reflect.set(n, a, c),
251
+ get: (n, a) => {
243
252
  if (a === "overrideMaterial") {
244
- const l = Reflect.get(i, a);
245
- return this.overrideMaterial = !!l, F.forEach((m) => {
253
+ const c = Reflect.get(n, a);
254
+ return this.overrideMaterial = !!c, F.forEach((m) => {
246
255
  this.overrideMaterial ? m.useDepth = 1 : m.useDepth = 0;
247
256
  }), null;
248
257
  }
249
- return Reflect.get(i, a);
258
+ return Reflect.get(n, a);
250
259
  }
251
260
  });
252
- r && (n.background = r), n.add(t), this.scene = n;
261
+ r && (i.background = r), i.add(t), this.scene = i;
253
262
  }
254
263
  dispose() {
255
264
  var e;
@@ -267,25 +276,25 @@ class Ce {
267
276
  let r = this.helpers[t];
268
277
  if (r === void 0) {
269
278
  if (e.isScene)
270
- r = new d.AxesHelper(100);
279
+ r = new h.AxesHelper(100);
271
280
  else if (e.isCamera)
272
- r = new d.CameraHelper(e);
281
+ r = new h.CameraHelper(e);
273
282
  else if (e.isPointLight)
274
- r = new d.PointLightHelper(e, 1);
283
+ r = new h.PointLightHelper(e, 1);
275
284
  else if (e.isDirectionalLight)
276
- r = new d.DirectionalLightHelper(e, 1);
285
+ r = new h.DirectionalLightHelper(e, 1);
277
286
  else if (e.isSpotLight)
278
- r = new d.SpotLightHelper(e);
287
+ r = new h.SpotLightHelper(e);
279
288
  else if (e.isHemisphereLight)
280
- r = new d.HemisphereLightHelper(e, 10);
289
+ r = new h.HemisphereLightHelper(e, 10);
281
290
  else if (e.isRectAreaLight)
282
291
  r = new Q(e);
283
292
  else {
284
- const o = new d.Box3();
293
+ const o = new h.Box3();
285
294
  if (o.setFromObject(e, !0), o.isEmpty() === !1) {
286
- r = new d.Box3Helper(o);
287
- const n = r.material;
288
- n.userData.object = e, n.depthTest = !1, n.transparent = !0;
295
+ r = new h.Box3Helper(o);
296
+ const i = r.material;
297
+ i.userData.object = e, i.depthTest = !1, i.transparent = !0;
289
298
  } else
290
299
  return;
291
300
  }
@@ -296,7 +305,7 @@ class Ce {
296
305
  const t = e.uuid, { scene: s } = this.options;
297
306
  if (this.helpers[t] !== void 0) {
298
307
  const r = this.helpers[t];
299
- s.remove(r), delete this.helpers[t], r instanceof d.Box3Helper && r.dispose();
308
+ s.remove(r), delete this.helpers[t], r instanceof h.Box3Helper && r.dispose();
300
309
  }
301
310
  }
302
311
  removeAll() {
@@ -308,14 +317,14 @@ class Ce {
308
317
  }
309
318
  removeAllExcludeScene() {
310
319
  Object.keys(this.helpers).forEach((e) => {
311
- this.helpers[e] instanceof d.AxesHelper || this.remove({
320
+ this.helpers[e] instanceof h.AxesHelper || this.remove({
312
321
  uuid: e
313
322
  });
314
323
  });
315
324
  }
316
325
  update() {
317
326
  Object.values(this.helpers).forEach((e) => {
318
- if (e.update && e.update(), e instanceof d.Box3Helper) {
327
+ if (e.update && e.update(), e instanceof h.Box3Helper) {
319
328
  const t = e.material, { object: s } = t.userData;
320
329
  s && e.box.setFromObject(s, !0);
321
330
  }
@@ -330,10 +339,14 @@ class ve {
330
339
  this.autoRotateSpeed = 0, this.options = e;
331
340
  const { camera: t, controlsParams: s, customControl: r } = e, { domElement: o } = s;
332
341
  if (r) {
333
- const n = new r(t, o);
334
- n.enableDamping = !0, n.dampingFactor = 0.063, n.autoRotate = !1, n.autoRotateSpeed = -60, n.enableZoom = !0, n.zoomSpeed = 0.2, this.controls = n;
342
+ const i = new r(t, o);
343
+ i.enableDamping = !0, i.dampingFactor = 0.063, i.autoRotate = !1, i.autoRotateSpeed = -60, i.enableZoom = !0, i.zoomSpeed = 0.2, this.controls = i;
335
344
  } else
336
- M.install({ THREE: d }), this.cameraControls = new M(t, o);
345
+ x.install({ THREE: h }), this.cameraControls = new x(t, o);
346
+ }
347
+ addCameraControls2(e) {
348
+ const { controlsParams: t } = this.options, { domElement: s } = t;
349
+ this.cameraControls2 = new x(e, s);
337
350
  }
338
351
  enable() {
339
352
  this.controls ? this.controls.enabled = !0 : this.cameraControls && (this.cameraControls.enabled = !0);
@@ -342,12 +355,12 @@ class ve {
342
355
  this.controls ? this.controls.enabled = !1 : this.cameraControls && (this.cameraControls.enabled = !1);
343
356
  }
344
357
  update(e) {
345
- var t, s;
346
- (t = this.controls) == null || t.update(), (s = this.cameraControls) == null || s.update(e), this.autoRotateSpeed && this.cameraControls && (this.cameraControls.azimuthAngle += this.autoRotateSpeed * e * d.MathUtils.DEG2RAD);
358
+ var t, s, r;
359
+ (t = this.controls) == null || t.update(), (s = this.cameraControls) == null || s.update(e), (r = this.cameraControls2) == null || r.update(e), this.autoRotateSpeed && this.cameraControls && (this.cameraControls.azimuthAngle += this.autoRotateSpeed * e * h.MathUtils.DEG2RAD);
347
360
  }
348
361
  dispose() {
349
- var e, t;
350
- (e = this.controls) == null || e.dispose(), (t = this.cameraControls) == null || t.dispose();
362
+ var e, t, s;
363
+ (e = this.controls) == null || e.dispose(), (t = this.cameraControls) == null || t.dispose(), (s = this.cameraControls2) == null || s.dispose();
351
364
  }
352
365
  }
353
366
  class Pe {
@@ -406,16 +419,16 @@ class Pe {
406
419
  this.event.removeAllListeners(), (e = this.controls) == null || e.dispose();
407
420
  }
408
421
  }
409
- const G = {
422
+ const V = {
410
423
  zIndex: "auto"
411
424
  };
412
- class be {
425
+ class we {
413
426
  constructor(e) {
414
427
  this.container = e;
415
428
  }
416
429
  addRenderer(e, t) {
417
- const s = t.container || this.container, r = s.offsetWidth, o = s.offsetHeight, n = e === "css2d" ? new se() : new te();
418
- n.domElement.style.position = "absolute", n.domElement.style.top = "0", n.domElement.style.pointerEvents = "none", n.domElement.style.zIndex = t.zIndex, n.setSize(r, o), s.appendChild(n.domElement), e === "css2d" ? this.css2Drenderer = n : e === "css3d" && (this.css3Drenderer = n);
430
+ const s = t.container || this.container, r = s.offsetWidth, o = s.offsetHeight, i = e === "css2d" ? new se() : new te();
431
+ i.domElement.style.position = "absolute", i.domElement.style.top = "0", i.domElement.style.pointerEvents = "none", i.domElement.style.zIndex = t.zIndex, i.setSize(r, o), s.appendChild(i.domElement), e === "css2d" ? this.css2Drenderer = i : e === "css3d" && (this.css3Drenderer = i);
419
432
  }
420
433
  setSize(e, t) {
421
434
  var s, r;
@@ -430,13 +443,13 @@ class be {
430
443
  (e = this.css2Drenderer) == null || e.domElement.remove(), (t = this.css3Drenderer) == null || t.domElement.remove(), this.css2Drenderer = void 0, this.css3Drenderer = void 0;
431
444
  }
432
445
  }
433
- const H = ["encodings_fragment", "colorspace_fragment"];
434
- class Ee extends X {
446
+ const G = ["encodings_fragment", "colorspace_fragment"];
447
+ class be extends X {
435
448
  constructor() {
436
449
  super({
437
450
  uniforms: {
438
- inputBuffer: new L(null),
439
- ratio: new L(1)
451
+ inputBuffer: new T(null),
452
+ ratio: new T(1)
440
453
  },
441
454
  fragmentShader: `
442
455
  uniform sampler2D inputBuffer;
@@ -446,7 +459,7 @@ class Ee extends X {
446
459
  vec4 texel = texture2D(inputBuffer, vUv);
447
460
  gl_FragColor = texel * ratio;
448
461
  // Support automatic output encoding.
449
- #include <${+q < 154 ? H[0] : H[1]}>
462
+ #include <${+q < 154 ? G[0] : G[1]}>
450
463
 
451
464
  }
452
465
  `,
@@ -463,9 +476,9 @@ class Ee extends X {
463
476
  });
464
477
  }
465
478
  }
466
- class we extends re {
479
+ class Ee extends re {
467
480
  constructor() {
468
- super("CrossFadePass"), this.fullscreenMaterial = new Ee();
481
+ super("CrossFadePass"), this.fullscreenMaterial = new be();
469
482
  }
470
483
  render(e, t, s) {
471
484
  const r = this.fullscreenMaterial;
@@ -483,7 +496,7 @@ const U = {
483
496
  ignoreBackground: !0,
484
497
  epsilon: 1e-3
485
498
  }, Se = {
486
- mode: V.REINHARD2_ADAPTIVE,
499
+ mode: I.REINHARD2_ADAPTIVE,
487
500
  resolution: 256,
488
501
  whitePoint: 16,
489
502
  middleGrey: 0.6,
@@ -494,28 +507,36 @@ const U = {
494
507
  class xe {
495
508
  constructor(e) {
496
509
  this.active = !0, this.options = e;
497
- const { renderer: t, scene: s, camera: r, composerParams: o } = e, { multisampling: n, frameBufferType: i } = o, { maxSamples: a } = t.capabilities, l = new oe(t, {
498
- multisampling: Math.min(n, a),
510
+ const { renderer: t, scene: s, camera: r } = e;
511
+ this.finalComposer = this.addFinalComposer(r), this.renderer = t, this.scene = s, this.camera = r;
512
+ }
513
+ addFinalComposer(e) {
514
+ const { renderer: t, scene: s, composerParams: r } = this.options, { multisampling: o, frameBufferType: i } = r, { maxSamples: n } = t.capabilities, a = new oe(t, {
515
+ multisampling: Math.min(o, n),
499
516
  frameBufferType: i
500
517
  });
501
- l.addPass(new ne(s, r)), this.finalComposer = l, this.renderer = t, this.scene = s, this.camera = r;
518
+ return a.addPass(new ie(s, e)), a;
519
+ }
520
+ addFinalComposer2(e) {
521
+ const t = this.addFinalComposer(e);
522
+ this.finalComposer2 = t;
502
523
  }
503
524
  addCopyPass() {
504
- const e = new ie();
525
+ const e = new ne();
505
526
  this.finalComposer.addPass(e), this.copyPass = e;
506
527
  }
507
528
  addCrossFadePass() {
508
- const e = new we();
529
+ const e = new Ee();
509
530
  this.finalComposer.addPass(e), this.crossFadePass = e;
510
531
  }
511
532
  addFXAAPass() {
512
- const { camera: e } = this, t = new ae({ blendFunction: y.NORMAL }), s = new R(e, t);
533
+ const { camera: e } = this, t = new ae({ blendFunction: y.NORMAL }), s = new M(e, t);
513
534
  this.finalComposer.addPass(s), this.fxaaPass = s;
514
535
  }
515
536
  addToneMappingPass(e) {
516
- const { camera: t } = this, s = new le(C({}, e));
537
+ const { camera: t } = this, s = new ce(C({}, e));
517
538
  this.toneMappingEffect = s;
518
- const r = new R(t, s);
539
+ const r = new M(t, s);
519
540
  this.finalComposer.addPass(r), this.toneMappingPass = r;
520
541
  }
521
542
  addToneMappingGui(e) {
@@ -524,7 +545,7 @@ class xe {
524
545
  toneMapping: {
525
546
  blendFunction: {
526
547
  value: this.toneMappingEffect.mode,
527
- items: V,
548
+ items: I,
528
549
  onChange: (s) => {
529
550
  this.toneMappingEffect.mode = Number(s);
530
551
  }
@@ -562,10 +583,10 @@ class xe {
562
583
  }).showGui(e);
563
584
  }
564
585
  addBloomPass(e) {
565
- const { camera: t, scene: s } = this, m = C(C({}, U), e), { epsilon: r, ignoreBackground: o, mipmapBlurPassRadius: n } = m, i = O(m, ["epsilon", "ignoreBackground", "mipmapBlurPassRadius"]), a = new ce(s, t, C({}, i));
566
- o && (a.ignoreBackground = o), n && (a.mipmapBlurPass.radius = n), a.depthMaskMaterial.epsilon = r, a.luminancePass.enabled = !1, a.luminancePass.enabled = e.luminancePass;
567
- const l = new R(t, a);
568
- this.finalComposer.addPass(l), this.bloomPass = l, this.bloomEffect = a;
586
+ const { camera: t, scene: s } = this, m = C(C({}, U), e), { epsilon: r, ignoreBackground: o, mipmapBlurPassRadius: i } = m, n = O(m, ["epsilon", "ignoreBackground", "mipmapBlurPassRadius"]), a = new le(s, t, C({}, n));
587
+ o && (a.ignoreBackground = o), i && (a.mipmapBlurPass.radius = i), a.depthMaskMaterial.epsilon = r, a.luminancePass.enabled = !1, a.luminancePass.enabled = e.luminancePass;
588
+ const c = new M(t, a);
589
+ this.finalComposer.addPass(c), this.bloomPass = c, this.bloomEffect = a;
569
590
  }
570
591
  addBloomGui(e) {
571
592
  if (!this.bloomEffect) return;
@@ -636,7 +657,7 @@ class xe {
636
657
  }
637
658
  getSize() {
638
659
  const { renderer: e } = this.options;
639
- return e.getSize(new d.Vector2());
660
+ return e.getSize(new h.Vector2());
640
661
  }
641
662
  enable() {
642
663
  this.active || (this.active = !0);
@@ -645,43 +666,49 @@ class xe {
645
666
  this.active && (this.active = !1);
646
667
  }
647
668
  setSize(e, t) {
648
- this.finalComposer.setSize(e, t);
669
+ var s;
670
+ this.finalComposer.setSize(e, t), (s = this.finalComposer2) == null || s.setSize(e, t);
649
671
  }
650
672
  render() {
651
673
  this.active && this.finalComposer.render();
652
674
  }
675
+ render2() {
676
+ var e;
677
+ this.active && ((e = this.finalComposer2) == null || e.render());
678
+ }
653
679
  dispose() {
654
- this.finalComposer.dispose();
680
+ var e;
681
+ this.finalComposer.dispose(), (e = this.finalComposer2) == null || e.dispose();
655
682
  }
656
683
  }
657
684
  const Re = () => {
658
685
  try {
659
- const c = document.createElement("canvas");
660
- return !!(window.WebGL2RenderingContext && c.getContext("webgl2"));
661
- } catch (c) {
686
+ const l = document.createElement("canvas");
687
+ return !!(window.WebGL2RenderingContext && l.getContext("webgl2"));
688
+ } catch (l) {
662
689
  return !1;
663
690
  }
664
- }, E = !1, k = Re() !== !1, x = class x {
691
+ }, b = !1, H = Re() !== !1, R = class R {
665
692
  constructor(e, t) {
666
- this.raycaster = new d.Raycaster(), this.installPlugins = /* @__PURE__ */ new Map(), this.event = new j.EventEmitter(), this.clock = new d.Clock(), this.userData = {}, this.options = $(x.options, e, {
667
- isMergeableObject: de
693
+ this.raycaster = new h.Raycaster(), this.installPlugins = /* @__PURE__ */ new Map(), this.event = new j.EventEmitter(), this.clock = new h.Clock(), this.userData = {}, this.mulitViewport = !1, this.options = $(R.options, e, {
694
+ isMergeableObject: he
668
695
  }), this.event.setMaxListeners(1 / 0);
669
696
  const {
670
697
  container: s,
671
698
  stats: r,
672
699
  gui: o,
673
- resizeObserver: n
700
+ resizeObserver: i
674
701
  } = this.options;
675
702
  if (o) {
676
- const i = new Z();
677
- i.open(!1), this.gui = i;
703
+ const n = new Z();
704
+ n.open(!1), this.gui = n;
678
705
  }
679
706
  if (r) {
680
- const i = new Y();
681
- i.showPanel(0), i.dom.style.position = "absolute", s.appendChild(i.dom), this.stats = i;
707
+ const n = new Y();
708
+ n.showPanel(0), n.dom.style.position = "absolute", s.appendChild(n.dom), this.stats = n;
682
709
  }
683
- 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) => {
684
- Array.isArray(i) || (i = [i]), this.use(i[0], i[1]);
710
+ this.init(), this.initComposer(), this.initCSSRenderer(), this.initControls(), i && this.initResizeObserver(), this.clock.getDelta(), this.clock.getElapsedTime(), t && (Array.isArray(t) || (t = [t]), t.forEach((n) => {
711
+ Array.isArray(n) || (n = [n]), this.use(n[0], n[1]);
685
712
  }));
686
713
  }
687
714
  getPlugin(e) {
@@ -694,10 +721,10 @@ const Re = () => {
694
721
  return this.controlsController.cameraControls;
695
722
  }
696
723
  get cameraPositon() {
697
- return this.cameraControls.getPosition(new d.Vector3(), !1);
724
+ return this.cameraControls.getPosition(new h.Vector3(), !1);
698
725
  }
699
726
  get cameraTarget() {
700
- return this.cameraControls.getTarget(new d.Vector3(), !1);
727
+ return this.cameraControls.getTarget(new h.Vector3(), !1);
701
728
  }
702
729
  get camera() {
703
730
  return this.cameraController.camera;
@@ -715,36 +742,36 @@ const Re = () => {
715
742
  helper: s,
716
743
  renderer: r,
717
744
  scene: o,
718
- camera: n,
719
- control: i
720
- } = this.options, { width: a, height: l } = this.getSize(), m = new pe({
745
+ camera: i,
746
+ control: n
747
+ } = this.options, { width: a, height: c } = this.getSize(), m = new fe({
721
748
  isdev: t,
722
749
  width: a,
723
- height: l,
724
- cameraParams: n,
725
- cameraControls: i === !0
750
+ height: c,
751
+ cameraParams: i,
752
+ cameraControls: n === !0
726
753
  });
727
754
  this.gui && m.setGui(this.gui);
728
- const h = m.camera, p = new ge({
729
- camera: h,
755
+ const d = m.camera, f = new ge({
756
+ camera: d,
730
757
  sceneParams: o
731
- }), u = p.scene, v = new he({
758
+ }), u = f.scene, v = new de({
732
759
  width: a,
733
- height: l,
760
+ height: c,
734
761
  scene: u,
735
- camera: h,
762
+ camera: d,
736
763
  isdev: t,
737
764
  rendererParams: S(C({}, r), {
738
765
  antialias: !1
739
766
  })
740
767
  });
741
768
  if (s) {
742
- const f = new Ce({
769
+ const p = new Ce({
743
770
  scene: u
744
771
  });
745
- f.add(u), this.helperController = f;
772
+ p.add(u), this.helperController = p;
746
773
  }
747
- this.sceneController = p, this.rendererController = v, this.cameraController = m, e.appendChild(v.renderer.domElement);
774
+ this.sceneController = f, this.rendererController = v, this.cameraController = m, e.appendChild(v.renderer.domElement);
748
775
  }
749
776
  initComposer() {
750
777
  const {
@@ -753,25 +780,25 @@ const Re = () => {
753
780
  toneMapping: s,
754
781
  toneMappingParams: r,
755
782
  crossOpacity: o,
756
- renderer: n,
757
- multisampling: i,
783
+ renderer: i,
784
+ multisampling: n,
758
785
  frameBufferType: a,
759
- passes: l
786
+ passes: c
760
787
  } = this.options;
761
- let { antialias: m } = n;
762
- m === "msaa" && !k && (m = !1, console.warn("MSAA is not supported on this browser"));
763
- const h = new xe({
788
+ let { antialias: m } = i;
789
+ m === "msaa" && !H && (m = !1, console.warn("MSAA is not supported on this browser"));
790
+ const d = new xe({
764
791
  renderer: this.renderer,
765
792
  scene: this.scene,
766
793
  camera: this.camera,
767
794
  composerParams: {
768
- multisampling: m === "msaa" ? i : 0,
769
- frameBufferType: s ? d.HalfFloatType : a
795
+ multisampling: m === "msaa" ? n : 0,
796
+ frameBufferType: s ? h.HalfFloatType : a
770
797
  }
771
798
  });
772
- this.composerController = h, e && (h.addBloomPass(t), this.gui && h.addBloomGui(this.gui)), s && (h.addToneMappingPass(r), this.gui && h.addToneMappingGui(this.gui)), m === "fxaa" && h.addFXAAPass(), o && h.addCrossFadePass(), l && l.forEach((p) => {
773
- h.finalComposer.addPass(p);
774
- }), h.finalComposer.passes.length === 1 && h.addCopyPass();
799
+ this.composerController = d, e && (d.addBloomPass(t), this.gui && d.addBloomGui(this.gui)), s && (d.addToneMappingPass(r), this.gui && d.addToneMappingGui(this.gui)), m === "fxaa" && d.addFXAAPass(), o && d.addCrossFadePass(), c && c.forEach((f) => {
800
+ d.finalComposer.addPass(f);
801
+ }), d.finalComposer.passes.length === 1 && d.addCopyPass();
775
802
  }
776
803
  get opacity() {
777
804
  const { crossFadePass: e } = this.composerController;
@@ -794,8 +821,8 @@ const Re = () => {
794
821
  css3DRendererParams: o
795
822
  } = this.options;
796
823
  if (t || s) {
797
- const n = new be(e);
798
- t && n.addRenderer("css2d", r), s && n.addRenderer("css3d", o), this.cssRendererController = n;
824
+ const i = new we(e);
825
+ t && i.addRenderer("css2d", r), s && i.addRenderer("css3d", o), this.cssRendererController = i;
799
826
  }
800
827
  }
801
828
  initControls() {
@@ -851,36 +878,36 @@ const Re = () => {
851
878
  const {
852
879
  rendererController: r,
853
880
  cameraController: o,
854
- composerController: n,
855
- cssRendererController: i
881
+ composerController: i,
882
+ cssRendererController: n
856
883
  } = this;
857
- 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) => {
858
- var l;
859
- (l = a.setSize) == null || l.call(a, e, t);
884
+ o == null || o.setSize(e, t), r == null || r.setSize(e, t), i == null || i.setSize(e, t), n == null || n.setSize(e, t), this.installPlugins.forEach((a) => {
885
+ var c;
886
+ (c = a.setSize) == null || c.call(a, e, t);
860
887
  }), s && this.event.emit("resize", { width: e, height: t });
861
888
  }
862
889
  pick(e, t, s = !1) {
863
- const { raycaster: r, options: o } = this, { container: n } = o, i = new d.Vector2(), a = n.getBoundingClientRect();
864
- 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) {
865
- r.setFromCamera(i, this.camera);
866
- const l = r.intersectObjects(
890
+ const { raycaster: r, options: o } = this, { container: i } = o, n = new h.Vector2(), a = i.getBoundingClientRect();
891
+ 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) {
892
+ r.setFromCamera(n, this.camera);
893
+ const c = r.intersectObjects(
867
894
  t || this.scene.children,
868
895
  s
869
896
  );
870
- if (l.length)
897
+ if (c.length)
871
898
  return {
872
- object: l[0].object,
873
- intersects: l
899
+ object: c[0].object,
900
+ intersects: c
874
901
  };
875
902
  }
876
903
  }
877
904
  render() {
878
- var n, i, a, l, m, h;
905
+ var i, n, a, c, m, d;
879
906
  const { scene: e, camera: t, clock: s } = this, r = s.getDelta(), o = s.getElapsedTime();
880
- T.update(), (n = this.controlsController) == null || n.update(r), this.installPlugins.forEach((p) => {
907
+ L.update(), (i = this.controlsController) == null || i.update(r), this.installPlugins.forEach((f) => {
881
908
  var u;
882
- (u = p.update) == null || u.call(p, r, o);
883
- }), (i = this.helperController) == null || i.update(), (a = this.composerController) != null && a.active ? this.composerController.render() : (l = this.rendererController) == null || l.render(), (m = this.cssRendererController) == null || m.render(e, t), (h = this.stats) == null || h.update(), this.event.emit("render", { delta: r, elapsed: o });
909
+ (u = f.update) == null || u.call(f, r, o);
910
+ }), (n = this.helperController) == null || n.update(), (a = this.composerController) != null && a.active ? this.mulitViewport ? (this.setViewportLeft(), this.composerController.render(), this.setViewportRight(), this.composerController.render2()) : this.composerController.render() : (c = this.rendererController) == null || c.render(), (m = this.cssRendererController) == null || m.render(e, t), (d = this.stats) == null || d.update(), this.event.emit("render", { delta: r, elapsed: o });
884
911
  }
885
912
  start() {
886
913
  this.renderer.setAnimationLoop(this.render.bind(this)), this.event.emit("start");
@@ -891,45 +918,81 @@ const Re = () => {
891
918
  autoRotate(e) {
892
919
  this.controlsController.autoRotateSpeed = e;
893
920
  }
921
+ setMulitViewport(e) {
922
+ if (this.mulitViewport = e, e) {
923
+ if (!this.controlsController.cameraControls2) {
924
+ const t = this.cameraController.addCamera2();
925
+ this.composerController.addFinalComposer2(t), this.controlsController.addCameraControls2(t);
926
+ }
927
+ this.controlsController.cameraControls.interactiveArea = new DOMRect(
928
+ 0,
929
+ 0,
930
+ 0.5,
931
+ 1
932
+ ), this.controlsController.cameraControls2.interactiveArea = new DOMRect(
933
+ 0.5,
934
+ 0,
935
+ 0.5,
936
+ 1
937
+ );
938
+ } else e || (this.controlsController.cameraControls2 && (this.controlsController.cameraControls2.interactiveArea = new DOMRect(
939
+ 0,
940
+ 0,
941
+ 1,
942
+ 1
943
+ )), this.setViewportFull());
944
+ }
945
+ setViewportFull() {
946
+ const e = this.getSize(), t = 0, s = 0, r = e.width, o = e.height, i = r / o;
947
+ this.camera.aspect !== i && (this.camera.aspect = i, this.camera.updateProjectionMatrix()), this.renderer.setViewport(t, s, r, o), this.renderer.setScissor(t, s, r, o), this.renderer.setScissorTest(!0);
948
+ }
949
+ setViewportLeft() {
950
+ const e = this.getSize(), t = 0, s = 0, r = e.width / 2, o = e.height, i = r / o;
951
+ this.camera.aspect !== i && (this.camera.aspect = i, this.camera.updateProjectionMatrix()), this.renderer.setViewport(t, s, r, o), this.renderer.setScissor(t, s, r, o), this.renderer.setScissorTest(!0);
952
+ }
953
+ setViewportRight() {
954
+ const e = this.getSize(), t = e.width / 2, s = 0, r = e.width / 2, o = e.height, i = r / o, n = this.cameraController.camera2;
955
+ n && n.aspect !== i && (n.aspect = i, n.updateProjectionMatrix()), this.renderer.setViewport(t, s, r, o), this.renderer.setScissor(t, s, r, o), this.renderer.setScissorTest(!0);
956
+ }
894
957
  dispose() {
895
- var e, t, s, r, o, n, i, a, l, m, h;
896
- this.stop(), T.removeAll(), this.event.removeAllListeners(), (e = this.resizeObserver) == null || e.unobserve(this.options.container), this.handeleResize(0, 0), this.installPlugins.forEach((p) => {
958
+ var e, t, s, r, o, i, n, a, c, m, d;
959
+ this.stop(), L.removeAll(), this.event.removeAllListeners(), (e = this.resizeObserver) == null || e.unobserve(this.options.container), this.handeleResize(0, 0), this.installPlugins.forEach((f) => {
897
960
  var u;
898
- (u = p.dispose) == null || u.call(p);
899
- }), (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(), (m = this.stats) == null || m.dom.remove(), (h = this.renderer) == null || h.domElement.remove();
961
+ (u = f.dispose) == null || u.call(f);
962
+ }), (t = this.controlsController) == null || t.dispose(), (s = this.transformController) == null || s.dispose(), (r = this.cssRendererController) == null || r.dispose(), (o = this.sceneController) == null || o.dispose(), (i = this.helperController) == null || i.dispose(), (n = this.composerController) == null || n.dispose(), (a = this.rendererController) == null || a.dispose(), this.cssRendererController = void 0, (c = this.gui) == null || c.destroy(), this.installPlugins.clear(), (m = this.stats) == null || m.dom.remove(), (d = this.renderer) == null || d.domElement.remove();
900
963
  }
901
964
  };
902
- x.options = {
903
- isdev: E,
904
- stats: E,
905
- gui: E,
906
- helper: E,
965
+ R.options = {
966
+ isdev: b,
967
+ stats: b,
968
+ gui: b,
969
+ helper: b,
907
970
  control: !0,
908
- transformControls: E,
971
+ transformControls: b,
909
972
  resizeObserver: !0,
910
973
  renderer: S(C({}, me), {
911
- antialias: k ? "msaa" : "fxaa"
974
+ antialias: H ? "msaa" : "fxaa"
912
975
  }),
913
976
  multisampling: 4,
914
- frameBufferType: d.UnsignedByteType,
977
+ frameBufferType: h.UnsignedByteType,
915
978
  scene: ue,
916
- camera: fe,
979
+ camera: pe,
917
980
  bloom: !1,
918
981
  bloomParams: U,
919
982
  toneMapping: !1,
920
983
  toneMappingParams: Se,
921
984
  crossOpacity: !1,
922
985
  css2DRenderer: !1,
923
- css2DRendererParams: C({}, G),
986
+ css2DRendererParams: C({}, V),
924
987
  css3DRenderer: !1,
925
- css3DRendererParams: C({}, G)
988
+ css3DRendererParams: C({}, V)
926
989
  };
927
- let I = x;
928
- const _e = M.ACTION;
990
+ let k = R;
991
+ const _e = x.ACTION;
929
992
  export {
930
993
  $e as BaseObject,
931
994
  D as GUIObject,
932
- I as Pencil,
995
+ k as Pencil,
933
996
  _e as cameraControlsAction,
934
- I as default
997
+ k as default
935
998
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gl-draw",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "author": "gitplus <hstits@gmail.com>",
5
5
  "scripts": {
6
6
  "start": "bundler-dev",