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.
- package/dist/core/Camera.d.ts +2 -0
- package/dist/core/Composer.d.ts +4 -0
- package/dist/core/Controls.d.ts +2 -0
- package/dist/core/Pencil.d.ts +5 -0
- package/dist/core/Renderer.d.ts +1 -1
- package/dist/index.js +3 -3
- package/dist/index.module.js +262 -199
- package/package.json +1 -1
package/dist/core/Camera.d.ts
CHANGED
|
@@ -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 {};
|
package/dist/core/Composer.d.ts
CHANGED
|
@@ -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 {};
|
package/dist/core/Controls.d.ts
CHANGED
|
@@ -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;
|
package/dist/core/Pencil.d.ts
CHANGED
|
@@ -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 {};
|
package/dist/core/Renderer.d.ts
CHANGED
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?
|
|
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;
|
package/dist/index.module.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
var N = Object.defineProperty, W = Object.defineProperties;
|
|
2
2
|
var _ = Object.getOwnPropertyDescriptors;
|
|
3
|
-
var
|
|
4
|
-
var A = Object.prototype.hasOwnProperty,
|
|
5
|
-
var
|
|
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) &&
|
|
8
|
-
if (
|
|
9
|
-
for (var t of
|
|
10
|
-
|
|
11
|
-
return
|
|
12
|
-
}, S = (
|
|
13
|
-
var O = (
|
|
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
|
|
16
|
-
A.call(
|
|
17
|
-
if (
|
|
18
|
-
for (var s of
|
|
19
|
-
e.indexOf(s) < 0 &&
|
|
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
|
|
23
|
-
import * as
|
|
24
|
-
import { ShaderMaterial as X, Uniform as
|
|
25
|
-
import * as
|
|
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
|
|
41
|
-
import { i as
|
|
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
|
|
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:
|
|
62
|
-
alpha:
|
|
61
|
+
context: i,
|
|
62
|
+
alpha: n,
|
|
63
63
|
devicePixelRatio: a,
|
|
64
|
-
antialias:
|
|
64
|
+
antialias: c,
|
|
65
65
|
powerPreference: m,
|
|
66
|
-
toneMappingExposure:
|
|
67
|
-
outputColorSpace:
|
|
66
|
+
toneMappingExposure: d,
|
|
67
|
+
outputColorSpace: f,
|
|
68
68
|
logarithmicDepthBuffer: u,
|
|
69
69
|
preserveDrawingBuffer: v,
|
|
70
|
-
stencil:
|
|
71
|
-
depth:
|
|
70
|
+
stencil: p,
|
|
71
|
+
depth: w,
|
|
72
72
|
physicallyCorrectLights: P
|
|
73
|
-
} = r, g = new
|
|
73
|
+
} = r, g = new h.WebGLRenderer({
|
|
74
74
|
canvas: o,
|
|
75
|
-
context:
|
|
76
|
-
alpha:
|
|
77
|
-
antialias:
|
|
75
|
+
context: i,
|
|
76
|
+
alpha: n,
|
|
77
|
+
antialias: c,
|
|
78
78
|
powerPreference: m,
|
|
79
79
|
logarithmicDepthBuffer: u,
|
|
80
80
|
preserveDrawingBuffer: v,
|
|
81
|
-
stencil:
|
|
82
|
-
depth:
|
|
81
|
+
stencil: p,
|
|
82
|
+
depth: w
|
|
83
83
|
});
|
|
84
|
-
g.setSize(t, s), g.setPixelRatio(a), g.toneMappingExposure =
|
|
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:
|
|
91
|
-
this.renderer.render(
|
|
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:
|
|
108
|
-
max:
|
|
107
|
+
min: i,
|
|
108
|
+
max: n,
|
|
109
109
|
step: a,
|
|
110
|
-
name:
|
|
110
|
+
name: c,
|
|
111
111
|
paramMap: m,
|
|
112
|
-
items:
|
|
113
|
-
value:
|
|
112
|
+
items: d,
|
|
113
|
+
value: f,
|
|
114
114
|
target: u
|
|
115
115
|
} = r[o], v = o.toLowerCase().indexOf("color") > -1;
|
|
116
|
-
let
|
|
117
|
-
const
|
|
118
|
-
|
|
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
|
-
}),
|
|
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:
|
|
128
|
-
value:
|
|
127
|
+
target: i,
|
|
128
|
+
value: n
|
|
129
129
|
} = this.guiParams[e][t], a = t.toLowerCase().indexOf("color") > -1;
|
|
130
|
-
if (
|
|
131
|
-
let m =
|
|
132
|
-
Array.isArray(m) || (m = [m]), m.forEach((
|
|
133
|
-
if (
|
|
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
|
-
|
|
137
|
-
} catch (
|
|
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
|
-
|
|
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
|
|
155
|
+
const pe = {
|
|
156
156
|
fov: 45,
|
|
157
157
|
near: 1,
|
|
158
158
|
far: 1e3,
|
|
159
|
-
up: new
|
|
159
|
+
up: new h.Vector3(0, 1, 0)
|
|
160
160
|
};
|
|
161
|
-
class
|
|
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
|
|
165
|
+
if (r instanceof h.Camera)
|
|
166
166
|
this.camera = r, this.customCamera = !0;
|
|
167
167
|
else {
|
|
168
|
-
const { fov: o, far:
|
|
168
|
+
const { fov: o, far: i, near: n, up: a } = r, c = new h.PerspectiveCamera(
|
|
169
169
|
o,
|
|
170
170
|
t / s,
|
|
171
|
-
|
|
172
|
-
|
|
171
|
+
n,
|
|
172
|
+
i
|
|
173
173
|
);
|
|
174
|
-
|
|
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
|
|
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
|
|
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,
|
|
241
|
-
set: (
|
|
242
|
-
get: (
|
|
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
|
|
245
|
-
return this.overrideMaterial = !!
|
|
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(
|
|
258
|
+
return Reflect.get(n, a);
|
|
250
259
|
}
|
|
251
260
|
});
|
|
252
|
-
r && (
|
|
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
|
|
279
|
+
r = new h.AxesHelper(100);
|
|
271
280
|
else if (e.isCamera)
|
|
272
|
-
r = new
|
|
281
|
+
r = new h.CameraHelper(e);
|
|
273
282
|
else if (e.isPointLight)
|
|
274
|
-
r = new
|
|
283
|
+
r = new h.PointLightHelper(e, 1);
|
|
275
284
|
else if (e.isDirectionalLight)
|
|
276
|
-
r = new
|
|
285
|
+
r = new h.DirectionalLightHelper(e, 1);
|
|
277
286
|
else if (e.isSpotLight)
|
|
278
|
-
r = new
|
|
287
|
+
r = new h.SpotLightHelper(e);
|
|
279
288
|
else if (e.isHemisphereLight)
|
|
280
|
-
r = new
|
|
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
|
|
293
|
+
const o = new h.Box3();
|
|
285
294
|
if (o.setFromObject(e, !0), o.isEmpty() === !1) {
|
|
286
|
-
r = new
|
|
287
|
-
const
|
|
288
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
334
|
-
|
|
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
|
-
|
|
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 *
|
|
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
|
|
422
|
+
const V = {
|
|
410
423
|
zIndex: "auto"
|
|
411
424
|
};
|
|
412
|
-
class
|
|
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,
|
|
418
|
-
|
|
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
|
|
434
|
-
class
|
|
446
|
+
const G = ["encodings_fragment", "colorspace_fragment"];
|
|
447
|
+
class be extends X {
|
|
435
448
|
constructor() {
|
|
436
449
|
super({
|
|
437
450
|
uniforms: {
|
|
438
|
-
inputBuffer: new
|
|
439
|
-
ratio: new
|
|
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 ?
|
|
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
|
|
479
|
+
class Ee extends re {
|
|
467
480
|
constructor() {
|
|
468
|
-
super("CrossFadePass"), this.fullscreenMaterial = new
|
|
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:
|
|
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
|
|
498
|
-
|
|
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
|
-
|
|
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
|
|
525
|
+
const e = new ne();
|
|
505
526
|
this.finalComposer.addPass(e), this.copyPass = e;
|
|
506
527
|
}
|
|
507
528
|
addCrossFadePass() {
|
|
508
|
-
const e = new
|
|
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
|
|
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
|
|
537
|
+
const { camera: t } = this, s = new ce(C({}, e));
|
|
517
538
|
this.toneMappingEffect = s;
|
|
518
|
-
const r = new
|
|
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:
|
|
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:
|
|
566
|
-
o && (a.ignoreBackground = o),
|
|
567
|
-
const
|
|
568
|
-
this.finalComposer.addPass(
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
660
|
-
return !!(window.WebGL2RenderingContext &&
|
|
661
|
-
} catch (
|
|
686
|
+
const l = document.createElement("canvas");
|
|
687
|
+
return !!(window.WebGL2RenderingContext && l.getContext("webgl2"));
|
|
688
|
+
} catch (l) {
|
|
662
689
|
return !1;
|
|
663
690
|
}
|
|
664
|
-
},
|
|
691
|
+
}, b = !1, H = Re() !== !1, R = class R {
|
|
665
692
|
constructor(e, t) {
|
|
666
|
-
this.raycaster = new
|
|
667
|
-
isMergeableObject:
|
|
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:
|
|
700
|
+
resizeObserver: i
|
|
674
701
|
} = this.options;
|
|
675
702
|
if (o) {
|
|
676
|
-
const
|
|
677
|
-
|
|
703
|
+
const n = new Z();
|
|
704
|
+
n.open(!1), this.gui = n;
|
|
678
705
|
}
|
|
679
706
|
if (r) {
|
|
680
|
-
const
|
|
681
|
-
|
|
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(),
|
|
684
|
-
Array.isArray(
|
|
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
|
|
724
|
+
return this.cameraControls.getPosition(new h.Vector3(), !1);
|
|
698
725
|
}
|
|
699
726
|
get cameraTarget() {
|
|
700
|
-
return this.cameraControls.getTarget(new
|
|
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:
|
|
719
|
-
control:
|
|
720
|
-
} = this.options, { width: a, height:
|
|
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:
|
|
724
|
-
cameraParams:
|
|
725
|
-
cameraControls:
|
|
750
|
+
height: c,
|
|
751
|
+
cameraParams: i,
|
|
752
|
+
cameraControls: n === !0
|
|
726
753
|
});
|
|
727
754
|
this.gui && m.setGui(this.gui);
|
|
728
|
-
const
|
|
729
|
-
camera:
|
|
755
|
+
const d = m.camera, f = new ge({
|
|
756
|
+
camera: d,
|
|
730
757
|
sceneParams: o
|
|
731
|
-
}), u =
|
|
758
|
+
}), u = f.scene, v = new de({
|
|
732
759
|
width: a,
|
|
733
|
-
height:
|
|
760
|
+
height: c,
|
|
734
761
|
scene: u,
|
|
735
|
-
camera:
|
|
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
|
|
769
|
+
const p = new Ce({
|
|
743
770
|
scene: u
|
|
744
771
|
});
|
|
745
|
-
|
|
772
|
+
p.add(u), this.helperController = p;
|
|
746
773
|
}
|
|
747
|
-
this.sceneController =
|
|
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:
|
|
757
|
-
multisampling:
|
|
783
|
+
renderer: i,
|
|
784
|
+
multisampling: n,
|
|
758
785
|
frameBufferType: a,
|
|
759
|
-
passes:
|
|
786
|
+
passes: c
|
|
760
787
|
} = this.options;
|
|
761
|
-
let { antialias: m } =
|
|
762
|
-
m === "msaa" && !
|
|
763
|
-
const
|
|
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" ?
|
|
769
|
-
frameBufferType: s ?
|
|
795
|
+
multisampling: m === "msaa" ? n : 0,
|
|
796
|
+
frameBufferType: s ? h.HalfFloatType : a
|
|
770
797
|
}
|
|
771
798
|
});
|
|
772
|
-
this.composerController =
|
|
773
|
-
|
|
774
|
-
}),
|
|
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
|
|
798
|
-
t &&
|
|
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:
|
|
855
|
-
cssRendererController:
|
|
881
|
+
composerController: i,
|
|
882
|
+
cssRendererController: n
|
|
856
883
|
} = this;
|
|
857
|
-
o == null || o.setSize(e, t), r == null || r.setSize(e, t),
|
|
858
|
-
var
|
|
859
|
-
(
|
|
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:
|
|
864
|
-
if (
|
|
865
|
-
r.setFromCamera(
|
|
866
|
-
const
|
|
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 (
|
|
897
|
+
if (c.length)
|
|
871
898
|
return {
|
|
872
|
-
object:
|
|
873
|
-
intersects:
|
|
899
|
+
object: c[0].object,
|
|
900
|
+
intersects: c
|
|
874
901
|
};
|
|
875
902
|
}
|
|
876
903
|
}
|
|
877
904
|
render() {
|
|
878
|
-
var
|
|
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
|
-
|
|
907
|
+
L.update(), (i = this.controlsController) == null || i.update(r), this.installPlugins.forEach((f) => {
|
|
881
908
|
var u;
|
|
882
|
-
(u =
|
|
883
|
-
}), (
|
|
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,
|
|
896
|
-
this.stop(),
|
|
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 =
|
|
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(), (
|
|
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
|
-
|
|
903
|
-
isdev:
|
|
904
|
-
stats:
|
|
905
|
-
gui:
|
|
906
|
-
helper:
|
|
965
|
+
R.options = {
|
|
966
|
+
isdev: b,
|
|
967
|
+
stats: b,
|
|
968
|
+
gui: b,
|
|
969
|
+
helper: b,
|
|
907
970
|
control: !0,
|
|
908
|
-
transformControls:
|
|
971
|
+
transformControls: b,
|
|
909
972
|
resizeObserver: !0,
|
|
910
973
|
renderer: S(C({}, me), {
|
|
911
|
-
antialias:
|
|
974
|
+
antialias: H ? "msaa" : "fxaa"
|
|
912
975
|
}),
|
|
913
976
|
multisampling: 4,
|
|
914
|
-
frameBufferType:
|
|
977
|
+
frameBufferType: h.UnsignedByteType,
|
|
915
978
|
scene: ue,
|
|
916
|
-
camera:
|
|
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({},
|
|
986
|
+
css2DRendererParams: C({}, V),
|
|
924
987
|
css3DRenderer: !1,
|
|
925
|
-
css3DRendererParams: C({},
|
|
988
|
+
css3DRendererParams: C({}, V)
|
|
926
989
|
};
|
|
927
|
-
let
|
|
928
|
-
const _e =
|
|
990
|
+
let k = R;
|
|
991
|
+
const _e = x.ACTION;
|
|
929
992
|
export {
|
|
930
993
|
$e as BaseObject,
|
|
931
994
|
D as GUIObject,
|
|
932
|
-
|
|
995
|
+
k as Pencil,
|
|
933
996
|
_e as cameraControlsAction,
|
|
934
|
-
|
|
997
|
+
k as default
|
|
935
998
|
};
|