@roomle/web-sdk 2.19.0-alpha.1 → 2.19.0-alpha.5
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/lib/{banana-for-scale-a07b26b1.js → banana-for-scale-355fcf91.js} +2 -2
- package/lib/{banana-for-scale-a07b26b1.js.map → banana-for-scale-355fcf91.js.map} +1 -1
- package/lib/{banana-for-scale-c4c531c7.nomodule.js → banana-for-scale-9de01393.nomodule.js} +2 -2
- package/lib/{banana-for-scale-c4c531c7.nomodule.js.map → banana-for-scale-9de01393.nomodule.js.map} +1 -1
- package/lib/{component-dimensioning-57fff7bc.nomodule.js → component-dimensioning-4d83a9c3.nomodule.js} +2 -2
- package/lib/component-dimensioning-4d83a9c3.nomodule.js.map +1 -0
- package/lib/{component-dimensioning-d7dd5f83.js → component-dimensioning-d00ca4a8.js} +2 -2
- package/lib/component-dimensioning-d00ca4a8.js.map +1 -0
- package/lib/configurator-77a25cc9.js +2 -0
- package/lib/{configurator-b44d4749.js.map → configurator-77a25cc9.js.map} +1 -1
- package/lib/configurator-a858be94.nomodule.js +2 -0
- package/lib/{configurator-b17d82a9.nomodule.js.map → configurator-a858be94.nomodule.js.map} +1 -1
- package/lib/configurator-main-3f04dd5c.js +2 -0
- package/lib/configurator-main-3f04dd5c.js.map +1 -0
- package/lib/configurator-main.nomodule.js +1 -1
- package/lib/{configurator-mesh-generator-2440898b.js → configurator-mesh-generator-d464ec75.js} +2 -2
- package/lib/configurator-mesh-generator-d464ec75.js.map +1 -0
- package/lib/{configurator-mesh-generator-70ad08b0.nomodule.js → configurator-mesh-generator-ea5536da.nomodule.js} +2 -2
- package/lib/configurator-mesh-generator-ea5536da.nomodule.js.map +1 -0
- package/lib/{default-light-setting-8903ac89.js → default-light-setting-10439bcd.js} +2 -2
- package/lib/default-light-setting-10439bcd.js.map +1 -0
- package/lib/{default-light-setting-ace35a21.nomodule.js → default-light-setting-94cc064d.nomodule.js} +2 -2
- package/lib/default-light-setting-94cc064d.nomodule.js.map +1 -0
- package/lib/definitions/common-core/mock/tween-mock.d.ts +4 -0
- package/lib/definitions/common-core/src/cameracontrol/camera-control-3d.d.ts +0 -1
- package/lib/definitions/common-core/src/utils/threejs-utils.d.ts +4 -0
- package/lib/definitions/configurator-core/src/utils/component-raycast-helper.d.ts +2 -0
- package/lib/definitions/configurator-core/src/utils/raycast-helper.d.ts +2 -2
- package/lib/definitions/configurator-core/src/utils/selection-handler.d.ts +2 -0
- package/lib/definitions/configurator-core/src/webgl/configurator-scene-event-handler.d.ts +2 -0
- package/lib/definitions/planner-core/src/view-model/plan-view-model.d.ts +1 -0
- package/lib/{dimensioning-helper-bb822d6f.js → dimensioning-helper-4f07dfb2.js} +2 -2
- package/lib/dimensioning-helper-4f07dfb2.js.map +1 -0
- package/lib/{dimensioning-helper-1851ef1b.nomodule.js → dimensioning-helper-bfb68dda.nomodule.js} +2 -2
- package/lib/dimensioning-helper-bfb68dda.nomodule.js.map +1 -0
- package/lib/{glb-viewer-eacfa20c.js → glb-viewer-5203b4c3.js} +2 -2
- package/lib/{glb-viewer-eacfa20c.js.map → glb-viewer-5203b4c3.js.map} +1 -1
- package/lib/{glb-viewer-07c67d99.nomodule.js → glb-viewer-6fae9993.nomodule.js} +2 -2
- package/lib/{glb-viewer-07c67d99.nomodule.js.map → glb-viewer-6fae9993.nomodule.js.map} +1 -1
- package/lib/glb-viewer-main-8db04fe8.js +2 -0
- package/lib/glb-viewer-main-8db04fe8.js.map +1 -0
- package/lib/glb-viewer-main.nomodule.js +1 -1
- package/lib/image-renderer-1c2de902.nomodule.js +2 -0
- package/lib/{image-renderer-cad9cce5.nomodule.js.map → image-renderer-1c2de902.nomodule.js.map} +1 -1
- package/lib/image-renderer-7eba536d.js +2 -0
- package/lib/{image-renderer-8b621134.js.map → image-renderer-7eba536d.js.map} +1 -1
- package/lib/legacy/{banana-for-scale-8e37587e.legacy.js → banana-for-scale-3e0c928c.legacy.js} +2 -2
- package/lib/legacy/{banana-for-scale-8e37587e.legacy.js.map → banana-for-scale-3e0c928c.legacy.js.map} +1 -1
- package/lib/legacy/{component-dimensioning-7702446a.legacy.js → component-dimensioning-a3aa8660.legacy.js} +2 -2
- package/lib/legacy/component-dimensioning-a3aa8660.legacy.js.map +1 -0
- package/lib/legacy/configurator-575211fd.legacy.js +2 -0
- package/lib/legacy/{configurator-f6d8647d.legacy.js.map → configurator-575211fd.legacy.js.map} +1 -1
- package/lib/legacy/configurator-main.legacy.js +1 -1
- package/lib/legacy/{configurator-mesh-generator-210e5ffe.legacy.js → configurator-mesh-generator-00d7df37.legacy.js} +2 -2
- package/lib/legacy/configurator-mesh-generator-00d7df37.legacy.js.map +1 -0
- package/lib/legacy/{default-light-setting-92bb70ce.legacy.js → default-light-setting-b10dcc3b.legacy.js} +2 -2
- package/lib/legacy/default-light-setting-b10dcc3b.legacy.js.map +1 -0
- package/lib/legacy/{dimensioning-helper-71f8c8cf.legacy.js → dimensioning-helper-61dc4ccb.legacy.js} +2 -2
- package/lib/legacy/dimensioning-helper-61dc4ccb.legacy.js.map +1 -0
- package/lib/legacy/{glb-viewer-c541bffb.legacy.js → glb-viewer-0ddafc07.legacy.js} +2 -2
- package/lib/legacy/{glb-viewer-c541bffb.legacy.js.map → glb-viewer-0ddafc07.legacy.js.map} +1 -1
- package/lib/legacy/glb-viewer-main.legacy.js +1 -1
- package/lib/legacy/image-renderer-dc9f270b.legacy.js +2 -0
- package/lib/legacy/{image-renderer-c831cb02.legacy.js.map → image-renderer-dc9f270b.legacy.js.map} +1 -1
- package/lib/legacy/{material-viewer-9d5181b8.legacy.js → material-viewer-21e51b88.legacy.js} +2 -2
- package/lib/legacy/material-viewer-21e51b88.legacy.js.map +1 -0
- package/lib/legacy/material-viewer-main.legacy.js +1 -1
- package/lib/legacy/{mesh-generator-ddb18de3.legacy.js → mesh-generator-53ccff60.legacy.js} +2 -2
- package/lib/legacy/mesh-generator-53ccff60.legacy.js.map +1 -0
- package/lib/legacy/pixotron-8a5609ec.legacy.js +2 -0
- package/lib/legacy/{pixotron-769d1fe5.legacy.js.map → pixotron-8a5609ec.legacy.js.map} +1 -1
- package/lib/legacy/planner-97c9b4fa.legacy.js +2 -0
- package/lib/legacy/{planner-5818e32b.legacy.js.map → planner-97c9b4fa.legacy.js.map} +1 -1
- package/lib/legacy/planner-main.legacy.js +1 -1
- package/lib/legacy/{rapi-access-1db44eda.legacy.js → rapi-access-d7e49c75.legacy.js} +3 -3
- package/lib/legacy/{rapi-access-1db44eda.legacy.js.map → rapi-access-d7e49c75.legacy.js.map} +1 -1
- package/lib/legacy/roomle-sdk.legacy.js +1 -1
- package/lib/legacy/{scene-manager-2bb96268.legacy.js → scene-manager-b17faa96.legacy.js} +2 -2
- package/lib/legacy/scene-manager-b17faa96.legacy.js.map +1 -0
- package/lib/legacy/static/{ConfiguratorKernel-40b689d07289b673.js → ConfiguratorKernel-5b0df4117228a3b3.js} +6 -6
- package/lib/legacy/static/ConfiguratorKernel-6f506effcdf62da4.wasm +0 -0
- package/lib/legacy/static/ConfiguratorKernelJs-38320d4e8f22ad34.mem +0 -0
- package/lib/legacy/static/ConfiguratorKernelJs-51de0d49f85185e3.js +183 -0
- package/lib/legacy/static/RoomleCore-0ac3d29f9bd4c5d7.js +147 -0
- package/lib/legacy/static/RoomleCore-48e64f95ef7bff41.wasm +0 -0
- package/lib/legacy/static/RoomleCoreJs-973e591d820f477b.mem +0 -0
- package/lib/legacy/static/RoomleCoreJs-da15526d821d8696.js +198 -0
- package/lib/legacy/static/shaders-1f34237810f50436.json +1 -0
- package/lib/legacy/{stats-helper-f3d5141e.legacy.js → stats-helper-45acb364.legacy.js} +2 -2
- package/lib/legacy/{stats-helper-f3d5141e.legacy.js.map → stats-helper-45acb364.legacy.js.map} +1 -1
- package/lib/{material-viewer-771c5d31.nomodule.js → material-viewer-366f947f.nomodule.js} +2 -2
- package/lib/material-viewer-366f947f.nomodule.js.map +1 -0
- package/lib/{material-viewer-de8c3416.js → material-viewer-70151465.js} +2 -2
- package/lib/material-viewer-70151465.js.map +1 -0
- package/lib/material-viewer-main-5d012646.js +2 -0
- package/lib/material-viewer-main-5d012646.js.map +1 -0
- package/lib/material-viewer-main.nomodule.js +1 -1
- package/lib/{mesh-generator-e479dd88.nomodule.js → mesh-generator-ab71fd1a.nomodule.js} +2 -2
- package/lib/mesh-generator-ab71fd1a.nomodule.js.map +1 -0
- package/lib/{mesh-generator-9db153b3.js → mesh-generator-eb2be854.js} +2 -2
- package/lib/mesh-generator-eb2be854.js.map +1 -0
- package/lib/pixotron-4211bd0a.js +2 -0
- package/lib/{pixotron-c552d639.js.map → pixotron-4211bd0a.js.map} +1 -1
- package/lib/pixotron-d0258bc6.nomodule.js +2 -0
- package/lib/{pixotron-8125b43b.nomodule.js.map → pixotron-d0258bc6.nomodule.js.map} +1 -1
- package/lib/planner-3a4f0927.js +2 -0
- package/lib/{planner-82e7e808.js.map → planner-3a4f0927.js.map} +1 -1
- package/lib/planner-6f67ecc9.nomodule.js +2 -0
- package/lib/{planner-969b7c00.nomodule.js.map → planner-6f67ecc9.nomodule.js.map} +1 -1
- package/lib/planner-main-5a4d30e7.js +2 -0
- package/lib/planner-main-5a4d30e7.js.map +1 -0
- package/lib/planner-main.nomodule.js +1 -1
- package/lib/{rapi-access-482df27d.js → rapi-access-8fc227f2.js} +3 -3
- package/lib/{rapi-access-482df27d.js.map → rapi-access-8fc227f2.js.map} +1 -1
- package/lib/{rapi-access-e27314d5.nomodule.js → rapi-access-f2154541.nomodule.js} +3 -3
- package/lib/{rapi-access-e27314d5.nomodule.js.map → rapi-access-f2154541.nomodule.js.map} +1 -1
- package/lib/{roomle-sdk-c187aef7.js → roomle-sdk-0a5a228a.js} +2 -2
- package/lib/roomle-sdk-0a5a228a.js.map +1 -0
- package/lib/roomle-sdk.nomodule.js +1 -1
- package/lib/{scene-manager-0ab80786.nomodule.js → scene-manager-358e5a19.nomodule.js} +2 -2
- package/lib/scene-manager-358e5a19.nomodule.js.map +1 -0
- package/lib/{scene-manager-e9c40231.js → scene-manager-dd75a06a.js} +2 -2
- package/lib/scene-manager-dd75a06a.js.map +1 -0
- package/lib/static/ConfiguratorKernel-5b0df4117228a3b3.js +1 -0
- package/lib/static/{ConfiguratorKernel-40b689d07289b673.js.map → ConfiguratorKernel-5b0df4117228a3b3.js.map} +1 -1
- package/lib/static/ConfiguratorKernel-6f506effcdf62da4.wasm +0 -0
- package/lib/static/ConfiguratorKernelJs-38320d4e8f22ad34.mem +0 -0
- package/lib/static/ConfiguratorKernelJs-51de0d49f85185e3.js +183 -0
- package/lib/static/RoomleCore-0ac3d29f9bd4c5d7.js +1 -0
- package/lib/static/RoomleCore-0ac3d29f9bd4c5d7.js.map +1 -0
- package/lib/static/RoomleCore-48e64f95ef7bff41.wasm +0 -0
- package/lib/static/RoomleCoreJs-973e591d820f477b.mem +0 -0
- package/lib/static/RoomleCoreJs-da15526d821d8696.js +198 -0
- package/lib/static/shaders-1f34237810f50436.json +1 -0
- package/lib/{stats-helper-4afb7056.js → stats-helper-4d7bf878.js} +2 -2
- package/lib/{stats-helper-4afb7056.js.map → stats-helper-4d7bf878.js.map} +1 -1
- package/lib/{stats-helper-dc6eaf67.nomodule.js → stats-helper-8b411909.nomodule.js} +2 -2
- package/lib/{stats-helper-dc6eaf67.nomodule.js.map → stats-helper-8b411909.nomodule.js.map} +1 -1
- package/package.json +2 -2
- package/lib/component-dimensioning-57fff7bc.nomodule.js.map +0 -1
- package/lib/component-dimensioning-d7dd5f83.js.map +0 -1
- package/lib/configurator-b17d82a9.nomodule.js +0 -2
- package/lib/configurator-b44d4749.js +0 -2
- package/lib/configurator-main-7dbbbe6f.js +0 -2
- package/lib/configurator-main-7dbbbe6f.js.map +0 -1
- package/lib/configurator-mesh-generator-2440898b.js.map +0 -1
- package/lib/configurator-mesh-generator-70ad08b0.nomodule.js.map +0 -1
- package/lib/default-light-setting-8903ac89.js.map +0 -1
- package/lib/default-light-setting-ace35a21.nomodule.js.map +0 -1
- package/lib/dimensioning-helper-1851ef1b.nomodule.js.map +0 -1
- package/lib/dimensioning-helper-bb822d6f.js.map +0 -1
- package/lib/glb-viewer-main-495501bb.js +0 -2
- package/lib/glb-viewer-main-495501bb.js.map +0 -1
- package/lib/image-renderer-8b621134.js +0 -2
- package/lib/image-renderer-cad9cce5.nomodule.js +0 -2
- package/lib/legacy/component-dimensioning-7702446a.legacy.js.map +0 -1
- package/lib/legacy/configurator-f6d8647d.legacy.js +0 -2
- package/lib/legacy/configurator-mesh-generator-210e5ffe.legacy.js.map +0 -1
- package/lib/legacy/default-light-setting-92bb70ce.legacy.js.map +0 -1
- package/lib/legacy/dimensioning-helper-71f8c8cf.legacy.js.map +0 -1
- package/lib/legacy/image-renderer-c831cb02.legacy.js +0 -2
- package/lib/legacy/material-viewer-9d5181b8.legacy.js.map +0 -1
- package/lib/legacy/mesh-generator-ddb18de3.legacy.js.map +0 -1
- package/lib/legacy/pixotron-769d1fe5.legacy.js +0 -2
- package/lib/legacy/planner-5818e32b.legacy.js +0 -2
- package/lib/legacy/scene-manager-2bb96268.legacy.js.map +0 -1
- package/lib/legacy/static/ConfiguratorKernel-ed501b2f4963cf8d.wasm +0 -0
- package/lib/legacy/static/ConfiguratorKernelJs-0be227f14fe2e673.mem +0 -0
- package/lib/legacy/static/ConfiguratorKernelJs-4fd6b79d456c6dca.js +0 -183
- package/lib/legacy/static/RoomleCore-05f5edf8c36dcc71.wasm +0 -0
- package/lib/legacy/static/RoomleCore-1f77b9044f56b8c2.js +0 -147
- package/lib/legacy/static/RoomleCoreJs-29688f673479bbaf.mem +0 -0
- package/lib/legacy/static/RoomleCoreJs-3e36d829df9822ea.js +0 -197
- package/lib/legacy/static/shaders-0331cd7d06525760.json +0 -1
- package/lib/material-viewer-771c5d31.nomodule.js.map +0 -1
- package/lib/material-viewer-de8c3416.js.map +0 -1
- package/lib/material-viewer-main-a62694c1.js +0 -2
- package/lib/material-viewer-main-a62694c1.js.map +0 -1
- package/lib/mesh-generator-9db153b3.js.map +0 -1
- package/lib/mesh-generator-e479dd88.nomodule.js.map +0 -1
- package/lib/pixotron-8125b43b.nomodule.js +0 -2
- package/lib/pixotron-c552d639.js +0 -2
- package/lib/planner-82e7e808.js +0 -2
- package/lib/planner-969b7c00.nomodule.js +0 -2
- package/lib/planner-main-f7817887.js +0 -2
- package/lib/planner-main-f7817887.js.map +0 -1
- package/lib/roomle-sdk-c187aef7.js.map +0 -1
- package/lib/scene-manager-0ab80786.nomodule.js.map +0 -1
- package/lib/scene-manager-e9c40231.js.map +0 -1
- package/lib/static/ConfiguratorKernel-40b689d07289b673.js +0 -1
- package/lib/static/ConfiguratorKernel-ed501b2f4963cf8d.wasm +0 -0
- package/lib/static/ConfiguratorKernelJs-0be227f14fe2e673.mem +0 -0
- package/lib/static/ConfiguratorKernelJs-4fd6b79d456c6dca.js +0 -183
- package/lib/static/RoomleCore-05f5edf8c36dcc71.wasm +0 -0
- package/lib/static/RoomleCore-1f77b9044f56b8c2.js +0 -1
- package/lib/static/RoomleCore-1f77b9044f56b8c2.js.map +0 -1
- package/lib/static/RoomleCoreJs-29688f673479bbaf.mem +0 -0
- package/lib/static/RoomleCoreJs-3e36d829df9822ea.js +0 -197
- package/lib/static/shaders-0331cd7d06525760.json +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["./rapi-access-e27314d5.nomodule.js","./pixotron-8125b43b.nomodule.js"],(function(t,e){var i,s,n,r,o,a,h,_,d,c,m,p,l,u,g,E,w,C,y,v;return{setters:[function(t){i=t.t,s=t.s,n=t.a7,r=t.a8,o=t.u,a=t._,h=t.i,_=t.e,d=t.h,c=t.f,m=t.R,p=t.a9},function(t){l=t.d,u=t.i,g=t.D,E=t.C,w=t.b,C=t.B,y=t.f,v=t.c}],execute:function(){class R extends l{constructor(t,e,i){super(t,e,i),this._scale=1,this._state=0,this._size=20,this._center=new THREE.Vector3,this._raycaster=new THREE.Raycaster,this._lastPosition=new THREE.Vector2,this._zoomPosition=new THREE.Vector3,this._lastZoom=0,this._zoomSpeed=Math.pow(.95,2),this._cameraZoom=1,this._initCamera(i||new THREE.Vector3(0,10,0));let s=new THREE.PlaneGeometry(1e3,1e3);s.rotateX(-Math.PI/2),this._plane=new THREE.Mesh(s,new THREE.MeshStandardMaterial)}_getCamera(){return this._camera||this._initCamera(new THREE.Vector3(0,10,0)),this._camera}_initCamera(t){let{x:e,y:i}=this._domHelper.getClientDimensions(),s=e/i*this._size,n=this._size;this._camera=new THREE.OrthographicCamera(s/-2,s/2,n/2,n/-2,1,1e3),this._camera.position.copy(t),this._cameraPosition=t,this._camera.lookAt(new THREE.Vector3(0,0,0))}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions(),i=t/e*this._size,s=this._size;this._camera.left=i/-2,this._camera.right=i/2,this._camera.top=s/2,this._camera.bottom=s/-2,this._camera.updateProjectionMatrix()}_initInputListener(){this._inputListeners.push({key:3,fun:t=>{this._locked||(this._state=1,this._lastPosition.set(t.position.x,t.position.y),this.dispatchEvent(0))}}),this._inputListeners.push({key:6,fun:t=>{1!==this._state||this._locked||(this._move(new THREE.Vector2(t.position.x,t.position.y),t.type),this.dispatchEvent(1))}}),this._inputListeners.push({key:4,fun:t=>{1===this._state&&this.dispatchEvent(2),this._state=0}}),this._inputListeners.push({key:7,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale/=this._zoomSpeed,this._zoomTo(t.position,1),this._update()}}),this._inputListeners.push({key:8,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale*=this._zoomSpeed,this._zoomTo(t.position,-1),this._update()}})}_zoomTo(t,e){if(Date.now()-this._lastZoom>200){if(e>0||this._cameraZoom>=1){const e=this.getInputPosition(t);this._raycaster.setFromCamera(e,this._camera);const i=this._raycaster.intersectObject(this._plane);if(i.length<=0)return;const s=i.pop().point;this._zoomPosition.copy(s)}else this._zoomPosition.copy(this._center);this._cameraPosition.x=this._zoomPosition.x,this._cameraPosition.z=this._zoomPosition.z}this._lastZoom=Date.now()}_move(t,e){let i=new THREE.Vector2;i.subVectors(this._lastPosition,t),i.divideScalar(100),this._cameraPosition.x+=i.x*(2===e?1.1:1),this._cameraPosition.z+=i.y*(2===e?1.1:1),this._lastPosition.copy(t)}updateToBounds(t,e){let{x:i,y:s}=this._domHelper.getClientDimensions(),n=i/s;this._size=Math.max(t.x,t.z);let r=this._size,o=this._size;n>1?r=this._size*n:o=this._size*(s/i),this._center.copy(e),this._camera.left=r/-2,this._camera.right=r/2,this._camera.top=o/2,this._camera.bottom=o/-2,this._camera.zoom=1,this._camera.position.set(this._center.x,10,this._center.z),this._cameraPosition.copy(this._camera.position)}_update(t){this._scale=Math.min(this._scale,5),this._scale=Math.max(this._scale,.8),this._cameraZoom=this._scale,this._camera.updateProjectionMatrix()}animateCamera(t){return!(!super.animateCamera(t)&&Math.abs(this._cameraZoom-this._camera.zoom)<=.01||(this._camera.zoom=THREE.MathUtils.lerp(this._camera.zoom,this._cameraZoom,10*t),0))}}t("C",R);const f=Math.PI/4;class L extends l{constructor(t,e,s,n){super(t,e,s),this._state=0,this._rotationSpeed=1,this._keyMap=new Map,this.minPolarAngle=i(-60),this.maxPolarAngle=i(60),this._camera=n||new THREE.PerspectiveCamera,this._camera.fov=70,this._camera.aspect=this._width/this._height,this._camera.near=.1,this._camera.far=100,this._camera.updateProjectionMatrix(),this._camera.layers.set(3),this._camera.layers.enable(1),this._camera.layers.enable(2),this._camera.layers.enable(5),this._camera.layers.enable(4),s?this._camera.position.set(s.x,1.5,s.z):this._camera.position.set(0,1.5,0),this._cameraPosition=new THREE.Vector3,this._cameraPosition.copy(this._camera.position),this._cameraRotation=new THREE.Quaternion,this._pitch=0,this._yaw=0;let r=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(r),window.addEventListener("gamepadconnected",this._gamepadConnected.bind(this)),window.addEventListener("gamepaddisconnected",this._gamepadDisconnected.bind(this))}_gamepadConnected(t){this.startButtonPressListener()}_gamepadDisconnected(t){window.cancelAnimationFrame(this._listenerLoopAnimationFrame)}startButtonPressListener(){this._listenerLoopAnimationFrame=window.requestAnimationFrame(()=>{this.buttonPressListener()})}buttonPressListener(){let t=navigator.getGamepads()[0];this._checkRightStick(t),this._checkLeftStick(t),this._checkButtons(t),this._processKeyMap(this._keyMap,.001),this.startButtonPressListener()}_checkRightStick(t){let e=t.axes[2],i=t.axes[3];Math.abs(e)>.2&&(this._rotateHorizontal(.01*f*e),this._update(),this.dispatchEvent(1)),Math.abs(i)>.2&&(this._rotateVertical(.01*f*i),this._update(),this.dispatchEvent(1))}_checkLeftStick(t){let e=t.axes[0],i=t.axes[1];Math.abs(i)>.2?i<0?this._keyMap.set(87,!0):this._keyMap.set(83,!0):t.buttons&&t.buttons[12]&&t.buttons[12].pressed?this._keyMap.set(87,!0):t.buttons&&t.buttons[13]&&t.buttons[13].pressed?this._keyMap.set(83,!0):(this._keyMap.set(87,!1),this._keyMap.set(83,!1)),Math.abs(e)>.2?e<0?this._keyMap.set(65,!0):this._keyMap.set(68,!0):(this._keyMap.set(65,!1),this._keyMap.set(68,!1))}_checkButtons(t){t.buttons&&t.buttons[6]&&t.buttons[6].pressed?this._keyMap.set(16,!0):this._keyMap.set(16,!1),t.buttons&&t.buttons[14]&&t.buttons[14].pressed?(this._keyMap.set(37,!0),this.dispatchEvent(1)):this._keyMap.set(37,!1),t.buttons&&t.buttons[15]&&t.buttons[15].pressed?(this._keyMap.set(39,!0),this.dispatchEvent(1)):this._keyMap.set(39,!1)}animateCamera(t){let e=this._cameraPosition,i=this._cameraRotation,r=this.getCamera(),o=s(e,r.position),a=n(i,r.quaternion);if(!e||o&&a)return!1;let h=this.getCamera().position.clone(),_=Math.min(10*t,1);h.lerp(e,_),this.getCamera().position.copy(h);let d=this.getCamera().quaternion.clone(),c=Math.min(5*t,1);d.slerp(i,c),this.getCamera().setRotationFromQuaternion(d);let m=!1;return this._keyMap.forEach(t=>{t&&(m=!0)}),m&&this._processKeyMap(this._keyMap,t),!0}_getCamera(){return this._camera}_initInputListener(){window.addEventListener("keyup",this._onKeyChanged.bind(this),!1),window.addEventListener("keydown",this._onKeyChanged.bind(this),!1),this._inputListeners.push({key:3,fun:t=>{this._down(t)}}),this._inputListeners.push({key:6,fun:t=>{this._move(t)}}),this._inputListeners.push({key:4,fun:t=>{this._up(t)}})}_down(t){this._downPosition=t.position,this._position=t.position,this._state=1,2===t.type&&window.setTimeout(this._onLongDown.bind(this),350),2===t.type?this._rotationSpeed=.6:this._rotationSpeed=1}_move(t){this._position=t.position,1!==this._state||this._locked||this._orbit(new THREE.Vector2(t.position.x,t.position.y)),2!==this._state||this._locked||(this._orbit(new THREE.Vector2(t.position.x,t.position.y)),this._moveForward())}_up(t){1===this._state&&this.dispatchEvent(2),2===this._state&&this._keyMap.set(87,!1),this._state=0,this._orbitPosition=null}_onLongDown(){r(this._downPosition,this._position)<u&&1===this._state&&(this._state=2,this._orbit(new THREE.Vector2(this._position.x,this._position.y)),this._moveForward())}_update(t){let e=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(e)}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions();this._camera.aspect=t/e,this._camera.updateProjectionMatrix()}_onKeyChanged(t){this._keyMap.set(t.keyCode,"keydown"===t.type),this.dispatchEvent(6),this._processKeyMap(this._keyMap,.001)&&t.preventDefault()}_processKeyMap(t,e){e=Math.min(e,.1);let i=new THREE.Vector3(0,0,0),s=!1;return this._processUpDown(t,i,e),t.get(65)&&(i.x=-1*e),t.get(68)&&(i.x=1*e),t.get(37)&&(this._rotateHorizontal(-f*this._rotationSpeed*e),s=!0),t.get(39)&&(this._rotateHorizontal(f*this._rotationSpeed*e),s=!0),t.get(16)&&(i.x*=3,i.z*=3),!(0===i.x&&0===i.y&&0===i.z&&!s||(i.applyQuaternion(this.getCamera().quaternion),this._cameraPosition.add(new THREE.Vector3(i.x,0,i.z)),this._update(),0))}_processUpDown(t,e,i){(t.get(87)||t.get(38))&&(e.z=-1*i),(t.get(83)||t.get(40))&&(e.z=1*i)}_orbit(t){this._orbitPosition||(this._orbitPosition=new THREE.Vector2(t.x,t.y),this.dispatchEvent(0));let e=t.clone().sub(this._orbitPosition),i=this._domHelper.element instanceof Document?this._domHelper.element.body:this._domHelper.element;e.multiplyScalar(-1),this._rotateHorizontal(2*Math.PI*e.x/i.clientWidth*1),this._rotateVertical(2*Math.PI*e.y/i.clientHeight*1),o(this._orbitPosition,t)||this.dispatchEvent(1),this._orbitPosition.copy(t),this._update()}_moveForward(){this._keyMap.set(87,!0),this._processKeyMap(this._keyMap,.001)}_rotateVertical(t){let e=this._pitch+t;e>this.maxPolarAngle||e<this.minPolarAngle||(this._pitch=e,this._pitch<-Math.PI?this._pitch+=2*Math.PI:this._pitch>Math.PI&&(this._pitch-=2*Math.PI),this._saveYawAndPitch())}}t("a",L),t("S",(()=>{class t{constructor(t,e,i,s,n){this._maxAnisotropy=1,this._clock=new THREE.Clock,this._delta=0,this._renderListener=null,this._stopRendering=!1,this._forceRender=!1,this._lastChange=Date.now(),this._running=!1,this._onAfterRender=()=>{},this._creator_=t,this._canvasID=i,this.createCameraControl(s),this._addCameraControlListener(),this._setupScene(e,n),document.addEventListener("visibilitychange",this._tabVisible.bind(this)),this._renderListener=()=>{this._requestRender(!0)},this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this),this._lifeCycleManager.addEventListener(this)}onBeforeRender(){}_changeCameraControl(t){this._cameraControl&&this._cameraControl.cleanUp(),t instanceof L&&(this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener)),this._cameraControl instanceof L&&(this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this)),this._cameraControl=t,this.cameraControlChanged()}cameraControlChanged(){}_addCameraControlListener(){this._cameraControl.addEventListener(0,this._requestRender,this),this._cameraControl.addEventListener(1,this._requestRender,this),this._cameraControl.addEventListener(2,this._requestRender,this),this._cameraControl.addEventListener(6,this._requestRender,this)}_requestRender(t){if(!this._renderer)return;this._pixotron&&(this._pixotron.needsUpdate=!0,t&&(this._forceRender=!0));const e=()=>{this._delta=this._clock.getDelta(),this._animateCamera(),this._cameraControl.getCamera().layers.mask=65535,this._renderLoopFunction&&(this._renderLoopFunction(),this._renderLoopFunction=null),this.onBeforeRender(),this._statsHelper&&this._statsHelper.updateRenderInfo(this._renderer.info),this._pixotron?(this._forceRender&&(this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0),this._pixotron.render(this._renderer,this._scene,this._cameraControl.getCamera(),this._renderTarget),this._forceRender=!1,this._pixotron.blit()):(this._renderer.clear(),this._renderer.render(this._scene,this._cameraControl.getCamera()),this._renderer.clearDepth()),this._onAfterRender(),window.TWEEN&&TWEEN.update(),this._lastChange+3e3<Date.now()||this._stopRendering?this._running=!1:(this._running=!0,requestAnimationFrame(e))};this._lastChange=Date.now(),this._running||this._stopRendering||(this._running=!0,requestAnimationFrame(e))}_animateCamera(){this._cameraControl&&(this._cameraControl.animateCamera(this._delta)||!this._pixotron||this._forceRender?(this._lightSetting instanceof g&&this._cameraControl.getCamera()instanceof THREE.PerspectiveCamera&&this._lightSetting.update(this._cameraControl.getCamera(),this._cameraControl.getTargetPosition()),this._pixotron&&(this._pixotron.needsUpdate=!0)):(this._pixotron.autoShadowsClear=!1,this._pixotron.autoSAOClear=!1)),this._environment&&this._environment.needsCamera()&&this._cameraControl instanceof E&&this._environment.updateCamera(this._cameraControl.getCamera())}_setupScene(t,e){const{x:i,y:s}=this._domHelper.getClientDimensions();this._scene=new THREE.Scene,(e=e||!1)||(this._scene.background=new THREE.Color(this._initData.colors.DEFAULT_BACKGROUND)),THREE.Math={DEG2RAD:THREE.MathUtils.DEG2RAD};const n={format:THREE.RGBAFormat,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter},r=THREE.sRGBEncoding,o=Math.floor(i*window.devicePixelRatio),a=Math.floor(s*window.devicePixelRatio);this._renderTarget=new THREE.WebGLRenderTarget(o,a,n),this._renderTarget.texture.encoding=r,this._renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(i,s),this._renderer.outputEncoding=THREE.sRGBEncoding,this._renderer.gammaFactor=2.2,this._renderer.autoClear=!1,this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=THREE.PCFSoftShadowMap,this._maxAnisotropy=this._renderer.capabilities.getMaxAnisotropy(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),this._environmentLoader.setRendererAndScene(this._renderer,this._scene),this._environmentLoader.registerEnvironmentChangedCallback(()=>this._requestRender(!0)),this._requestRender(),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this.sceneChanged()}_tabVisible(t){this.updateCamera(),this._requestRender(!0)}setupScene(t,e){this._setupScene(t,e)}updateCamera(){const{x:t,y:e}=this._domHelper.getClientDimensions();this._renderer.setSize(t,e);const i=this._renderer.getPixelRatio();if(this._renderTarget){const s=Math.floor(t*i),n=Math.floor(e*i);this._renderTarget.setSize(s,n)}if(this._pixotron){this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0,this._forceRender=!0;try{this._pixotron.setSize(t,e)}catch(t){console.warn(t)}}this._cameraControl.updateCamera(),this._requestRender(!0)}_onWindowResize(){const t=this._getInputManager();t&&t.updateSize(),this.updateCamera(),this._requestRender(!0)}_isPartOfScene(t){return"Object3D"===t.type||"Mesh"===t.type||"GLB"===t.type||"GLTF"===t.type||"Group"===t.type}cleanUp(){this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener),this._cameraControl&&this._cameraControl.cleanUp()}clearScene(){let t=[];this._scene.children.forEach(e=>{this._isPartOfScene(e)&&t.push(e)}),t.forEach(t=>{_(t),this._scene.remove(t)}),this._renderer.renderLists.dispose()}enableHD(){this._pixotron=new window.PIXOTRON.Pixotron(this.getPixotronParams()),this._pixotronUtil=new w(this._pixotron),this._environment instanceof C&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(!0),500))),this._requestRender()}_loadGLTF(t,e,i,s,n,r,o){return new Promise((a,h)=>{this._staticItemLoader.loadGLTF(t,e,i,s,n,r,null,o).then(t=>{this._setCamera("GLTF",t),a(t)},h)})}_loadGLB(t,e,i,s,n,r,o,a){return new Promise((h,_)=>{this._staticItemLoader.loadGLB(t,e,i,s,n,r,o,a).then(t=>{this._setCamera("GLB",t),h(t)},_)})}_setCamera(t,e){if(!e)return void console.warn("could not set camera for gltf",e);const i=new THREE.Box3;i.setFromObject(e),"GLB"===t?this._cameraControl instanceof E&&this._cameraControl.updateToBounds(i,!1):"GLTF"===t&&(this._cameraControl instanceof E&&this._cameraControl.updateAndReset(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3),-15,70,5,!1),this._cameraControl instanceof R&&this._cameraControl.updateToBounds(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3))),this.updateCamera()}showGUI(){if(this._initData.disableDebugGUI)return;const t=document.createElement("style");t.innerText=".dg.main{position:absolute;z-index:100;top:0;left:0;}",document.head.appendChild(t),this._scriptLoader.fetch(y,{id:"dat-gui-js"}).then(()=>{let t=d(!1);t&&(this._domHelper.element.appendChild(t.domElement),this._guiLoaded())},t=>console.error(t))}_guiLoaded(){let t=d();t&&(this._lightSetting&&this._lightSetting.showGUI(),this._pixotron&&this._pixotronUtil.showGUI(),this._environment&&this._environment.showGUI(),this._addGUIListener(t))}_addGUIListener(t){let e=t.__folders;Object.keys(e).forEach(t=>{let i=e[t];i.__folders&&Object.keys(i.__folders).forEach(t=>{let i=e[t];this._addGUIListener(i)}),i.__controllers&&i.__controllers.forEach(t=>{t.onFinishChange(()=>{this._guiParamChanged()})})})}_guiParamChanged(){this._requestRender()}showStats(){e.import("./stats-helper-dc6eaf67.nomodule.js").then(t=>this._statsHelper=new t.default)}_onKeyDown(t){}_onKeyUp(t){}pause(){this._getInputManager().removeEvents(this._renderer.domElement),window.removeEventListener("resize",this,!1),window.removeEventListener("keydown",this,!1),window.removeEventListener("keyup",this,!1)}resume(){this.updateCamera(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this._requestRender(!0)}destroy(){this.pause(),this.cleanUp()}handleEvent(t){switch(t.type){case"resize":this._onWindowResize();break;case"keydown":this._onKeyDown(t);break;case"keyup":this._onKeyUp(t)}}loadSceneSettings(t){let e,i;return e=t.environment?new Promise(e=>{(new v).load(this._scene,this._renderer.domElement,this._environment,t).then(t=>{this._setEnvironment(t),e()})}):Promise.resolve(),t.lights?(this._lightSetting=new g(this._scene,this._lightSetting),i=this._lightSetting.loadFromObject(t)):i=Promise.resolve(),new Promise((t,s)=>{Promise.all([e,i]).then(()=>{this._requestRender(!0),t()},s)})}_setEnvironment(t){this._environment=t,this._pixotron&&this._environment instanceof C&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(!0),500)))}loadQualitySetting(t){this._pixotron&&(new p).set(this._pixotron,t)}async loadDynamicLightSetting(t){this._lightSetting=new g(this._scene,this._lightSetting);let e=!1;if(t.url)await this._lightSetting.loadFromURL(t.url),e=!0;else if(t.json)await this._lightSetting.loadFromJSON(t.json),e=!0;else if(t.object)await this._lightSetting.loadFromObject(t.object),e=!0;else if(t.ls){const i=c.createDynamicLightSettingSource(null,t.ls);await this._lightSetting.loadFromURL(i.url),e=!0}if(!e)throw new Error("No dynamic light setting source set");this._requestRender(!0)}getScene(){return this._scene}updateScene(){this._updateBounds(this.getBounds()),this._requestRender(!0)}_updateBounds(t){if(t){if(this.updateEnvironment(t),this._lightSetting&&this._lightSetting.needsBounds()&&this._lightSetting.updateBounds(t),this._pixotronUtil){const e=new THREE.Sphere;t.getBoundingSphere(e),this._pixotronUtil.updateBounds(e)}this._requestRender(!0)}}setCameraOffset(t){const e=this._cameraControl.getCamera();e.offset?(e.offset=t,this._requestRender(!0)):console.warn("Cannot set offset, current camera does not support it")}getCameraOffset(){const t=this._cameraControl.getCamera();return t.offset?JSON.parse(JSON.stringify(t.offset)):{left:0,top:0,right:1,bottom:1}}getPerspectiveOffsetCamera(){const t=this._domHelper.getClientDimensions(),e=t.x,i=t.y;return m().createCamera(30,e/i,.1,20)}updateEnvironment(t,e=!1){if(t&&this._environment&&this._environment.needsBounds()){const i=t.getSize(new THREE.Vector3);i.x+i.y+i.z!==0&&this._environment.updateBounds(t.getSize(new THREE.Vector3),e)}}}return a([h],t.prototype,"_domHelper",void 0),a([h],t.prototype,"_scriptLoader",void 0),a([h],t.prototype,"_lifeCycleManager",void 0),a([h],t.prototype,"_staticItemLoader",void 0),a([h],t.prototype,"_environmentLoader",void 0),a([h],t.prototype,"_initData",void 0),t})())}}}));
|
|
2
|
-
//# sourceMappingURL=scene-manager-
|
|
1
|
+
System.register(["./rapi-access-f2154541.nomodule.js","./pixotron-d0258bc6.nomodule.js"],(function(t,e){var i,s,n,r,o,a,h,_,d,c,m,p,l,u,g,E,w,C,y,v;return{setters:[function(t){i=t.t,s=t.u,n=t.a8,r=t.a9,o=t.v,a=t._,h=t.i,_=t.e,d=t.h,c=t.f,m=t.R,p=t.aa},function(t){l=t.d,u=t.i,g=t.D,E=t.C,w=t.b,C=t.B,y=t.f,v=t.c}],execute:function(){class R extends l{constructor(t,e,i){super(t,e,i),this._scale=1,this._state=0,this._size=20,this._center=new THREE.Vector3,this._raycaster=new THREE.Raycaster,this._lastPosition=new THREE.Vector2,this._zoomPosition=new THREE.Vector3,this._lastZoom=0,this._zoomSpeed=Math.pow(.95,2),this._cameraZoom=1,this._initCamera(i||new THREE.Vector3(0,10,0));let s=new THREE.PlaneGeometry(1e3,1e3);s.rotateX(-Math.PI/2),this._plane=new THREE.Mesh(s,new THREE.MeshStandardMaterial)}_getCamera(){return this._camera||this._initCamera(new THREE.Vector3(0,10,0)),this._camera}_initCamera(t){let{x:e,y:i}=this._domHelper.getClientDimensions(),s=e/i*this._size,n=this._size;this._camera=new THREE.OrthographicCamera(s/-2,s/2,n/2,n/-2,1,1e3),this._camera.position.copy(t),this._cameraPosition=t,this._camera.lookAt(new THREE.Vector3(0,0,0))}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions(),i=t/e*this._size,s=this._size;this._camera.left=i/-2,this._camera.right=i/2,this._camera.top=s/2,this._camera.bottom=s/-2,this._camera.updateProjectionMatrix()}_initInputListener(){this._inputListeners.push({key:3,fun:t=>{this._locked||(this._state=1,this._lastPosition.set(t.position.x,t.position.y),this.dispatchEvent(0))}}),this._inputListeners.push({key:6,fun:t=>{1!==this._state||this._locked||(this._move(new THREE.Vector2(t.position.x,t.position.y),t.type),this.dispatchEvent(1))}}),this._inputListeners.push({key:4,fun:t=>{1===this._state&&this.dispatchEvent(2),this._state=0}}),this._inputListeners.push({key:7,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale/=this._zoomSpeed,this._zoomTo(t.position,1),this._update()}}),this._inputListeners.push({key:8,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale*=this._zoomSpeed,this._zoomTo(t.position,-1),this._update()}})}_zoomTo(t,e){if(Date.now()-this._lastZoom>200){if(e>0||this._cameraZoom>=1){const e=this.getInputPosition(t);this._raycaster.setFromCamera(e,this._camera);const i=this._raycaster.intersectObject(this._plane);if(i.length<=0)return;const s=i.pop().point;this._zoomPosition.copy(s)}else this._zoomPosition.copy(this._center);this._cameraPosition.x=this._zoomPosition.x,this._cameraPosition.z=this._zoomPosition.z}this._lastZoom=Date.now()}_move(t,e){let i=new THREE.Vector2;i.subVectors(this._lastPosition,t),i.divideScalar(100),this._cameraPosition.x+=i.x*(2===e?1.1:1),this._cameraPosition.z+=i.y*(2===e?1.1:1),this._lastPosition.copy(t)}updateToBounds(t,e){let{x:i,y:s}=this._domHelper.getClientDimensions(),n=i/s;this._size=Math.max(t.x,t.z);let r=this._size,o=this._size;n>1?r=this._size*n:o=this._size*(s/i),this._center.copy(e),this._camera.left=r/-2,this._camera.right=r/2,this._camera.top=o/2,this._camera.bottom=o/-2,this._camera.zoom=1,this._camera.position.set(this._center.x,10,this._center.z),this._cameraPosition.copy(this._camera.position)}_update(t){this._scale=Math.min(this._scale,5),this._scale=Math.max(this._scale,.8),this._cameraZoom=this._scale,this._camera.updateProjectionMatrix()}animateCamera(t){return!(!super.animateCamera(t)&&Math.abs(this._cameraZoom-this._camera.zoom)<=.01||(this._camera.zoom=THREE.MathUtils.lerp(this._camera.zoom,this._cameraZoom,10*t),0))}}t("C",R);const f=Math.PI/4;class L extends l{constructor(t,e,s,n){super(t,e,s),this._state=0,this._rotationSpeed=1,this._keyMap=new Map,this.minPolarAngle=i(-60),this.maxPolarAngle=i(60),this._camera=n||new THREE.PerspectiveCamera,this._camera.fov=70,this._camera.aspect=this._width/this._height,this._camera.near=.1,this._camera.far=100,this._camera.updateProjectionMatrix(),this._camera.layers.set(3),this._camera.layers.enable(1),this._camera.layers.enable(2),this._camera.layers.enable(5),this._camera.layers.enable(4),s?this._camera.position.set(s.x,1.5,s.z):this._camera.position.set(0,1.5,0),this._cameraPosition=new THREE.Vector3,this._cameraPosition.copy(this._camera.position),this._cameraRotation=new THREE.Quaternion,this._pitch=0,this._yaw=0;let r=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(r),window.addEventListener("gamepadconnected",this._gamepadConnected.bind(this)),window.addEventListener("gamepaddisconnected",this._gamepadDisconnected.bind(this))}_gamepadConnected(t){this.startButtonPressListener()}_gamepadDisconnected(t){window.cancelAnimationFrame(this._listenerLoopAnimationFrame)}startButtonPressListener(){this._listenerLoopAnimationFrame=window.requestAnimationFrame(()=>{this.buttonPressListener()})}buttonPressListener(){let t=navigator.getGamepads()[0];this._checkRightStick(t),this._checkLeftStick(t),this._checkButtons(t),this._processKeyMap(this._keyMap,.001),this.startButtonPressListener()}_checkRightStick(t){let e=t.axes[2],i=t.axes[3];Math.abs(e)>.2&&(this._rotateHorizontal(.01*f*e),this._update(),this.dispatchEvent(1)),Math.abs(i)>.2&&(this._rotateVertical(.01*f*i),this._update(),this.dispatchEvent(1))}_checkLeftStick(t){let e=t.axes[0],i=t.axes[1];Math.abs(i)>.2?i<0?this._keyMap.set(87,!0):this._keyMap.set(83,!0):t.buttons&&t.buttons[12]&&t.buttons[12].pressed?this._keyMap.set(87,!0):t.buttons&&t.buttons[13]&&t.buttons[13].pressed?this._keyMap.set(83,!0):(this._keyMap.set(87,!1),this._keyMap.set(83,!1)),Math.abs(e)>.2?e<0?this._keyMap.set(65,!0):this._keyMap.set(68,!0):(this._keyMap.set(65,!1),this._keyMap.set(68,!1))}_checkButtons(t){t.buttons&&t.buttons[6]&&t.buttons[6].pressed?this._keyMap.set(16,!0):this._keyMap.set(16,!1),t.buttons&&t.buttons[14]&&t.buttons[14].pressed?(this._keyMap.set(37,!0),this.dispatchEvent(1)):this._keyMap.set(37,!1),t.buttons&&t.buttons[15]&&t.buttons[15].pressed?(this._keyMap.set(39,!0),this.dispatchEvent(1)):this._keyMap.set(39,!1)}animateCamera(t){let e=this._cameraPosition,i=this._cameraRotation,r=this.getCamera(),o=s(e,r.position),a=n(i,r.quaternion);if(!e||o&&a)return!1;let h=this.getCamera().position.clone(),_=Math.min(10*t,1);h.lerp(e,_),this.getCamera().position.copy(h);let d=this.getCamera().quaternion.clone(),c=Math.min(5*t,1);d.slerp(i,c),this.getCamera().setRotationFromQuaternion(d);let m=!1;return this._keyMap.forEach(t=>{t&&(m=!0)}),m&&this._processKeyMap(this._keyMap,t),!0}_getCamera(){return this._camera}_initInputListener(){window.addEventListener("keyup",this._onKeyChanged.bind(this),!1),window.addEventListener("keydown",this._onKeyChanged.bind(this),!1),this._inputListeners.push({key:3,fun:t=>{this._down(t)}}),this._inputListeners.push({key:6,fun:t=>{this._move(t)}}),this._inputListeners.push({key:4,fun:t=>{this._up(t)}})}_down(t){this._downPosition=t.position,this._position=t.position,this._state=1,2===t.type&&window.setTimeout(this._onLongDown.bind(this),350),2===t.type?this._rotationSpeed=.6:this._rotationSpeed=1}_move(t){this._position=t.position,1!==this._state||this._locked||this._orbit(new THREE.Vector2(t.position.x,t.position.y)),2!==this._state||this._locked||(this._orbit(new THREE.Vector2(t.position.x,t.position.y)),this._moveForward())}_up(t){1===this._state&&this.dispatchEvent(2),2===this._state&&this._keyMap.set(87,!1),this._state=0,this._orbitPosition=null}_onLongDown(){r(this._downPosition,this._position)<u&&1===this._state&&(this._state=2,this._orbit(new THREE.Vector2(this._position.x,this._position.y)),this._moveForward())}_update(t){let e=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(e)}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions();this._camera.aspect=t/e,this._camera.updateProjectionMatrix()}_onKeyChanged(t){this._keyMap.set(t.keyCode,"keydown"===t.type),this.dispatchEvent(6),this._processKeyMap(this._keyMap,.001)&&t.preventDefault()}_processKeyMap(t,e){e=Math.min(e,.1);let i=new THREE.Vector3(0,0,0),s=!1;return this._processUpDown(t,i,e),t.get(65)&&(i.x=-1*e),t.get(68)&&(i.x=1*e),t.get(37)&&(this._rotateHorizontal(-f*this._rotationSpeed*e),s=!0),t.get(39)&&(this._rotateHorizontal(f*this._rotationSpeed*e),s=!0),t.get(16)&&(i.x*=3,i.z*=3),!(0===i.x&&0===i.y&&0===i.z&&!s||(i.applyQuaternion(this.getCamera().quaternion),this._cameraPosition.add(new THREE.Vector3(i.x,0,i.z)),this._update(),0))}_processUpDown(t,e,i){(t.get(87)||t.get(38))&&(e.z=-1*i),(t.get(83)||t.get(40))&&(e.z=1*i)}_orbit(t){this._orbitPosition||(this._orbitPosition=new THREE.Vector2(t.x,t.y),this.dispatchEvent(0));let e=t.clone().sub(this._orbitPosition),i=this._domHelper.element instanceof Document?this._domHelper.element.body:this._domHelper.element;e.multiplyScalar(-1),this._rotateHorizontal(2*Math.PI*e.x/i.clientWidth*1),this._rotateVertical(2*Math.PI*e.y/i.clientHeight*1),o(this._orbitPosition,t)||this.dispatchEvent(1),this._orbitPosition.copy(t),this._update()}_moveForward(){this._keyMap.set(87,!0),this._processKeyMap(this._keyMap,.001)}_rotateVertical(t){let e=this._pitch+t;e>this.maxPolarAngle||e<this.minPolarAngle||(this._pitch=e,this._pitch<-Math.PI?this._pitch+=2*Math.PI:this._pitch>Math.PI&&(this._pitch-=2*Math.PI),this._saveYawAndPitch())}}t("a",L),t("S",(()=>{class t{constructor(t,e,i,s,n){this._maxAnisotropy=1,this._clock=new THREE.Clock,this._delta=0,this._renderListener=null,this._stopRendering=!1,this._forceRender=!1,this._lastChange=Date.now(),this._running=!1,this._onAfterRender=()=>{},this._creator_=t,this._canvasID=i,this.createCameraControl(s),this._addCameraControlListener(),this._setupScene(e,n),document.addEventListener("visibilitychange",this._tabVisible.bind(this)),this._renderListener=()=>{this._requestRender(!0)},this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this),this._lifeCycleManager.addEventListener(this)}onBeforeRender(){}_changeCameraControl(t){this._cameraControl&&this._cameraControl.cleanUp(),t instanceof L&&(this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener)),this._cameraControl instanceof L&&(this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this)),this._cameraControl=t,this.cameraControlChanged()}cameraControlChanged(){}_addCameraControlListener(){this._cameraControl.addEventListener(0,this._requestRender,this),this._cameraControl.addEventListener(1,this._requestRender,this),this._cameraControl.addEventListener(2,this._requestRender,this),this._cameraControl.addEventListener(6,this._requestRender,this)}_requestRender(t){if(!this._renderer)return;this._pixotron&&(this._pixotron.needsUpdate=!0,t&&(this._forceRender=!0));const e=()=>{this._delta=this._clock.getDelta(),this._animateCamera(),this._cameraControl.getCamera().layers.mask=65535,this._renderLoopFunction&&(this._renderLoopFunction(),this._renderLoopFunction=null),this.onBeforeRender(),this._statsHelper&&this._statsHelper.updateRenderInfo(this._renderer.info),this._pixotron?(this._forceRender&&(this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0),this._pixotron.render(this._renderer,this._scene,this._cameraControl.getCamera(),this._renderTarget),this._forceRender=!1,this._pixotron.blit()):(this._renderer.clear(),this._renderer.render(this._scene,this._cameraControl.getCamera()),this._renderer.clearDepth()),this._onAfterRender(),window.TWEEN&&TWEEN.update(),this._lastChange+3e3<Date.now()||this._stopRendering?this._running=!1:(this._running=!0,requestAnimationFrame(e))};this._lastChange=Date.now(),this._running||this._stopRendering||(this._running=!0,requestAnimationFrame(e))}_animateCamera(){this._cameraControl&&(this._cameraControl.animateCamera(this._delta)||!this._pixotron||this._forceRender?(this._lightSetting instanceof g&&this._cameraControl.getCamera()instanceof THREE.PerspectiveCamera&&this._lightSetting.update(this._cameraControl.getCamera(),this._cameraControl.getTargetPosition()),this._pixotron&&(this._pixotron.needsUpdate=!0)):(this._pixotron.autoShadowsClear=!1,this._pixotron.autoSAOClear=!1)),this._environment&&this._environment.needsCamera()&&this._cameraControl instanceof E&&this._environment.updateCamera(this._cameraControl.getCamera())}_setupScene(t,e){const{x:i,y:s}=this._domHelper.getClientDimensions();this._scene=new THREE.Scene,(e=e||!1)||(this._scene.background=new THREE.Color(this._initData.colors.DEFAULT_BACKGROUND)),THREE.Math={DEG2RAD:THREE.MathUtils.DEG2RAD};const n={format:THREE.RGBAFormat,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter},r=THREE.sRGBEncoding,o=Math.floor(i*window.devicePixelRatio),a=Math.floor(s*window.devicePixelRatio);this._renderTarget=new THREE.WebGLRenderTarget(o,a,n),this._renderTarget.texture.encoding=r,this._renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(i,s),this._renderer.outputEncoding=THREE.sRGBEncoding,this._renderer.gammaFactor=2.2,this._renderer.autoClear=!1,this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=THREE.PCFSoftShadowMap,this._maxAnisotropy=this._renderer.capabilities.getMaxAnisotropy(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),this._environmentLoader.setRendererAndScene(this._renderer,this._scene),this._environmentLoader.registerEnvironmentChangedCallback(()=>this._requestRender(!0)),this._requestRender(),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this.sceneChanged()}_tabVisible(t){this.updateCamera(),this._requestRender(!0)}setupScene(t,e){this._setupScene(t,e)}updateCamera(){const{x:t,y:e}=this._domHelper.getClientDimensions();this._renderer.setSize(t,e);const i=this._renderer.getPixelRatio();if(this._renderTarget){const s=Math.floor(t*i),n=Math.floor(e*i);this._renderTarget.setSize(s,n)}if(this._pixotron){this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0,this._forceRender=!0;try{this._pixotron.setSize(t,e)}catch(t){console.warn(t)}}this._cameraControl.updateCamera(),this._requestRender(!0)}_onWindowResize(){const t=this._getInputManager();t&&t.updateSize(),this.updateCamera(),this._requestRender(!0)}_isPartOfScene(t){return"Object3D"===t.type||"Mesh"===t.type||"GLB"===t.type||"GLTF"===t.type||"Group"===t.type}cleanUp(){this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener),this._cameraControl&&this._cameraControl.cleanUp()}clearScene(){let t=[];this._scene.children.forEach(e=>{this._isPartOfScene(e)&&t.push(e)}),t.forEach(t=>{_(t),this._scene.remove(t)}),this._renderer.renderLists.dispose()}enableHD(){this._pixotron=new window.PIXOTRON.Pixotron(this.getPixotronParams()),this._pixotronUtil=new w(this._pixotron),this._environment instanceof C&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(!0),500))),this._requestRender()}_loadGLTF(t,e,i,s,n,r,o){return new Promise((a,h)=>{this._staticItemLoader.loadGLTF(t,e,i,s,n,r,null,o).then(t=>{this._setCamera("GLTF",t),a(t)},h)})}_loadGLB(t,e,i,s,n,r,o,a){return new Promise((h,_)=>{this._staticItemLoader.loadGLB(t,e,i,s,n,r,o,a).then(t=>{this._setCamera("GLB",t),h(t)},_)})}_setCamera(t,e){if(!e)return void console.warn("could not set camera for gltf",e);const i=new THREE.Box3;i.setFromObject(e),"GLB"===t?this._cameraControl instanceof E&&this._cameraControl.updateToBounds(i,!1):"GLTF"===t&&(this._cameraControl instanceof E&&this._cameraControl.updateAndReset(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3),-15,70,5,!1),this._cameraControl instanceof R&&this._cameraControl.updateToBounds(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3))),this.updateCamera()}showGUI(){if(this._initData.disableDebugGUI)return;const t=document.createElement("style");t.innerText=".dg.main{position:absolute;z-index:100;top:0;left:0;}",document.head.appendChild(t),this._scriptLoader.fetch(y,{id:"dat-gui-js"}).then(()=>{let t=d(!1);t&&(this._domHelper.element.appendChild(t.domElement),this._guiLoaded())},t=>console.error(t))}_guiLoaded(){let t=d();t&&(this._lightSetting&&this._lightSetting.showGUI(),this._pixotron&&this._pixotronUtil.showGUI(),this._environment&&this._environment.showGUI(),this._addGUIListener(t))}_addGUIListener(t){let e=t.__folders;Object.keys(e).forEach(t=>{let i=e[t];i.__folders&&Object.keys(i.__folders).forEach(t=>{let i=e[t];this._addGUIListener(i)}),i.__controllers&&i.__controllers.forEach(t=>{t.onFinishChange(()=>{this._guiParamChanged()})})})}_guiParamChanged(){this._requestRender()}showStats(){e.import("./stats-helper-8b411909.nomodule.js").then(t=>this._statsHelper=new t.default)}_onKeyDown(t){}_onKeyUp(t){}pause(){this._getInputManager().removeEvents(this._renderer.domElement),window.removeEventListener("resize",this,!1),window.removeEventListener("keydown",this,!1),window.removeEventListener("keyup",this,!1)}resume(){this.updateCamera(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this._requestRender(!0)}destroy(){this.pause(),this.cleanUp()}handleEvent(t){switch(t.type){case"resize":this._onWindowResize();break;case"keydown":this._onKeyDown(t);break;case"keyup":this._onKeyUp(t)}}loadSceneSettings(t){let e,i;return e=t.environment?new Promise(e=>{(new v).load(this._scene,this._renderer.domElement,this._environment,t).then(t=>{this._setEnvironment(t),e()})}):Promise.resolve(),t.lights?(this._lightSetting=new g(this._scene,this._lightSetting),i=this._lightSetting.loadFromObject(t)):i=Promise.resolve(),new Promise((t,s)=>{Promise.all([e,i]).then(()=>{this._requestRender(!0),t()},s)})}_setEnvironment(t){this._environment=t,this._pixotron&&this._environment instanceof C&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(!0),500)))}loadQualitySetting(t){this._pixotron&&(new p).set(this._pixotron,t)}async loadDynamicLightSetting(t){this._lightSetting=new g(this._scene,this._lightSetting);let e=!1;if(t.url)await this._lightSetting.loadFromURL(t.url),e=!0;else if(t.json)await this._lightSetting.loadFromJSON(t.json),e=!0;else if(t.object)await this._lightSetting.loadFromObject(t.object),e=!0;else if(t.ls){const i=c.createDynamicLightSettingSource(null,t.ls);await this._lightSetting.loadFromURL(i.url),e=!0}if(!e)throw new Error("No dynamic light setting source set");this._requestRender(!0)}getScene(){return this._scene}updateScene(){this._updateBounds(this.getBounds()),this._requestRender(!0)}_updateBounds(t){if(t){if(this.updateEnvironment(t),this._lightSetting&&this._lightSetting.needsBounds()&&this._lightSetting.updateBounds(t),this._pixotronUtil){const e=new THREE.Sphere;t.getBoundingSphere(e),this._pixotronUtil.updateBounds(e)}this._requestRender(!0)}}setCameraOffset(t){const e=this._cameraControl.getCamera();e.offset?(e.offset=t,this._requestRender(!0)):console.warn("Cannot set offset, current camera does not support it")}getCameraOffset(){const t=this._cameraControl.getCamera();return t.offset?JSON.parse(JSON.stringify(t.offset)):{left:0,top:0,right:1,bottom:1}}getPerspectiveOffsetCamera(){const t=this._domHelper.getClientDimensions(),e=t.x,i=t.y;return m().createCamera(30,e/i,.1,20)}updateEnvironment(t,e=!1){if(t&&this._environment&&this._environment.needsBounds()){const i=t.getSize(new THREE.Vector3);i.x+i.y+i.z!==0&&this._environment.updateBounds(t.getSize(new THREE.Vector3),e)}}}return a([h],t.prototype,"_domHelper",void 0),a([h],t.prototype,"_scriptLoader",void 0),a([h],t.prototype,"_lifeCycleManager",void 0),a([h],t.prototype,"_staticItemLoader",void 0),a([h],t.prototype,"_environmentLoader",void 0),a([h],t.prototype,"_initData",void 0),t})())}}}));
|
|
2
|
+
//# sourceMappingURL=scene-manager-358e5a19.nomodule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-manager-358e5a19.nomodule.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as toRadiant,s as position3VectorsAreEqual,a7 as rotationQuaternionsAreEqual,a8 as getDelta,u as position2VectorsAreEqual,_ as __decorate,i as inject,e as dispose,h as getGUI,f as DynamicLightSettingLoader,R as RoomleComponentFactoryInitializer,a9 as DynamicQualitySettingLoader}from"./rapi-access-482df27d.js";import{d as CameraControl,i as MIN_MOVE_DISTANCE,D as DynamicLightSetting,C as CameraControl3D,b as PixotronUtil,B as BakedShadowEnvironment,f as DAT_GUI_FILE_NAME,c as DynamicEnvironmentSettingLoader}from"./pixotron-c552d639.js";class CameraControl2D extends CameraControl{constructor(t,e,i){super(t,e,i),this._scale=1,this._state=0,this._size=20,this._center=new THREE.Vector3,this._raycaster=new THREE.Raycaster,this._lastPosition=new THREE.Vector2,this._zoomPosition=new THREE.Vector3,this._lastZoom=0,this._zoomSpeed=Math.pow(.95,2),this._cameraZoom=1,this._initCamera(i||new THREE.Vector3(0,10,0));let s=new THREE.PlaneGeometry(1e3,1e3);s.rotateX(-Math.PI/2),this._plane=new THREE.Mesh(s,new THREE.MeshStandardMaterial)}_getCamera(){return this._camera||this._initCamera(new THREE.Vector3(0,10,0)),this._camera}_initCamera(t){let{x:e,y:i}=this._domHelper.getClientDimensions(),s=e/i*this._size,n=this._size;this._camera=new THREE.OrthographicCamera(s/-2,s/2,n/2,n/-2,1,1e3),this._camera.position.copy(t),this._cameraPosition=t,this._camera.lookAt(new THREE.Vector3(0,0,0))}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions(),i=t/e*this._size,s=this._size;this._camera.left=i/-2,this._camera.right=i/2,this._camera.top=s/2,this._camera.bottom=s/-2,this._camera.updateProjectionMatrix()}_initInputListener(){this._inputListeners.push({key:3,fun:t=>{this._locked||(this._state=1,this._lastPosition.set(t.position.x,t.position.y),this.dispatchEvent(0))}}),this._inputListeners.push({key:6,fun:t=>{1!==this._state||this._locked||(this._move(new THREE.Vector2(t.position.x,t.position.y),t.type),this.dispatchEvent(1))}}),this._inputListeners.push({key:4,fun:t=>{1===this._state&&this.dispatchEvent(2),this._state=0}}),this._inputListeners.push({key:7,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale/=this._zoomSpeed,this._zoomTo(t.position,1),this._update()}}),this._inputListeners.push({key:8,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale*=this._zoomSpeed,this._zoomTo(t.position,-1),this._update()}})}_zoomTo(t,e){if(Date.now()-this._lastZoom>200){if(e>0||this._cameraZoom>=1){const e=this.getInputPosition(t);this._raycaster.setFromCamera(e,this._camera);const i=this._raycaster.intersectObject(this._plane);if(i.length<=0)return;const s=i.pop().point;this._zoomPosition.copy(s)}else this._zoomPosition.copy(this._center);this._cameraPosition.x=this._zoomPosition.x,this._cameraPosition.z=this._zoomPosition.z}this._lastZoom=Date.now()}_move(t,e){let i=new THREE.Vector2;i.subVectors(this._lastPosition,t),i.divideScalar(100),this._cameraPosition.x+=i.x*(2===e?1.1:1),this._cameraPosition.z+=i.y*(2===e?1.1:1),this._lastPosition.copy(t)}updateToBounds(t,e){let{x:i,y:s}=this._domHelper.getClientDimensions(),n=i/s;this._size=Math.max(t.x,t.z);let a=this._size,r=this._size;n>1?a=this._size*n:r=this._size*(s/i),this._center.copy(e),this._camera.left=a/-2,this._camera.right=a/2,this._camera.top=r/2,this._camera.bottom=r/-2,this._camera.zoom=1,this._camera.position.set(this._center.x,10,this._center.z),this._cameraPosition.copy(this._camera.position)}_update(t){this._scale=Math.min(this._scale,5),this._scale=Math.max(this._scale,.8),this._cameraZoom=this._scale,this._camera.updateProjectionMatrix()}animateCamera(t){return!(!super.animateCamera(t)&&Math.abs(this._cameraZoom-this._camera.zoom)<=.01||(this._camera.zoom=THREE.MathUtils.lerp(this._camera.zoom,this._cameraZoom,10*t),0))}}const KEYBOARD_ROTATION_ANGLE=Math.PI/4;class CameraControlFirstPerson extends CameraControl{constructor(t,e,i,s){super(t,e,i),this._state=0,this._rotationSpeed=1,this._keyMap=new Map,this.minPolarAngle=toRadiant(-60),this.maxPolarAngle=toRadiant(60),this._camera=s||new THREE.PerspectiveCamera,this._camera.fov=70,this._camera.aspect=this._width/this._height,this._camera.near=.1,this._camera.far=100,this._camera.updateProjectionMatrix(),this._camera.layers.set(3),this._camera.layers.enable(1),this._camera.layers.enable(2),this._camera.layers.enable(5),this._camera.layers.enable(4),i?this._camera.position.set(i.x,1.5,i.z):this._camera.position.set(0,1.5,0),this._cameraPosition=new THREE.Vector3,this._cameraPosition.copy(this._camera.position),this._cameraRotation=new THREE.Quaternion,this._pitch=0,this._yaw=0;let n=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(n),window.addEventListener("gamepadconnected",this._gamepadConnected.bind(this)),window.addEventListener("gamepaddisconnected",this._gamepadDisconnected.bind(this))}_gamepadConnected(t){this.startButtonPressListener()}_gamepadDisconnected(t){window.cancelAnimationFrame(this._listenerLoopAnimationFrame)}startButtonPressListener(){this._listenerLoopAnimationFrame=window.requestAnimationFrame(()=>{this.buttonPressListener()})}buttonPressListener(){let t=navigator.getGamepads()[0];this._checkRightStick(t),this._checkLeftStick(t),this._checkButtons(t),this._processKeyMap(this._keyMap,.001),this.startButtonPressListener()}_checkRightStick(t){let e=t.axes[2],i=t.axes[3];Math.abs(e)>.2&&(this._rotateHorizontal(.01*KEYBOARD_ROTATION_ANGLE*e),this._update(),this.dispatchEvent(1)),Math.abs(i)>.2&&(this._rotateVertical(.01*KEYBOARD_ROTATION_ANGLE*i),this._update(),this.dispatchEvent(1))}_checkLeftStick(t){let e=t.axes[0],i=t.axes[1];Math.abs(i)>.2?i<0?this._keyMap.set(87,!0):this._keyMap.set(83,!0):t.buttons&&t.buttons[12]&&t.buttons[12].pressed?this._keyMap.set(87,!0):t.buttons&&t.buttons[13]&&t.buttons[13].pressed?this._keyMap.set(83,!0):(this._keyMap.set(87,!1),this._keyMap.set(83,!1)),Math.abs(e)>.2?e<0?this._keyMap.set(65,!0):this._keyMap.set(68,!0):(this._keyMap.set(65,!1),this._keyMap.set(68,!1))}_checkButtons(t){t.buttons&&t.buttons[6]&&t.buttons[6].pressed?this._keyMap.set(16,!0):this._keyMap.set(16,!1),t.buttons&&t.buttons[14]&&t.buttons[14].pressed?(this._keyMap.set(37,!0),this.dispatchEvent(1)):this._keyMap.set(37,!1),t.buttons&&t.buttons[15]&&t.buttons[15].pressed?(this._keyMap.set(39,!0),this.dispatchEvent(1)):this._keyMap.set(39,!1)}animateCamera(t){let e=this._cameraPosition,i=this._cameraRotation,s=this.getCamera(),n=position3VectorsAreEqual(e,s.position),a=rotationQuaternionsAreEqual(i,s.quaternion);if(!e||n&&a)return!1;let r=this.getCamera().position.clone(),o=Math.min(10*t,1);r.lerp(e,o),this.getCamera().position.copy(r);let h=this.getCamera().quaternion.clone(),_=Math.min(5*t,1);h.slerp(i,_),this.getCamera().setRotationFromQuaternion(h);let d=!1;return this._keyMap.forEach(t=>{t&&(d=!0)}),d&&this._processKeyMap(this._keyMap,t),!0}_getCamera(){return this._camera}_initInputListener(){window.addEventListener("keyup",this._onKeyChanged.bind(this),!1),window.addEventListener("keydown",this._onKeyChanged.bind(this),!1),this._inputListeners.push({key:3,fun:t=>{this._down(t)}}),this._inputListeners.push({key:6,fun:t=>{this._move(t)}}),this._inputListeners.push({key:4,fun:t=>{this._up(t)}})}_down(t){this._downPosition=t.position,this._position=t.position,this._state=1,2===t.type&&window.setTimeout(this._onLongDown.bind(this),350),2===t.type?this._rotationSpeed=.6:this._rotationSpeed=1}_move(t){this._position=t.position,1!==this._state||this._locked||this._orbit(new THREE.Vector2(t.position.x,t.position.y)),2!==this._state||this._locked||(this._orbit(new THREE.Vector2(t.position.x,t.position.y)),this._moveForward())}_up(t){1===this._state&&this.dispatchEvent(2),2===this._state&&this._keyMap.set(87,!1),this._state=0,this._orbitPosition=null}_onLongDown(){getDelta(this._downPosition,this._position)<MIN_MOVE_DISTANCE&&1===this._state&&(this._state=2,this._orbit(new THREE.Vector2(this._position.x,this._position.y)),this._moveForward())}_update(t){let e=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(e)}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions();this._camera.aspect=t/e,this._camera.updateProjectionMatrix()}_onKeyChanged(t){this._keyMap.set(t.keyCode,"keydown"===t.type),this.dispatchEvent(6),this._processKeyMap(this._keyMap,.001)&&t.preventDefault()}_processKeyMap(t,e){e=Math.min(e,.1);let i=new THREE.Vector3(0,0,0),s=!1;return this._processUpDown(t,i,e),t.get(65)&&(i.x=-1*e),t.get(68)&&(i.x=1*e),t.get(37)&&(this._rotateHorizontal(-KEYBOARD_ROTATION_ANGLE*this._rotationSpeed*e),s=!0),t.get(39)&&(this._rotateHorizontal(KEYBOARD_ROTATION_ANGLE*this._rotationSpeed*e),s=!0),t.get(16)&&(i.x*=3,i.z*=3),!(0===i.x&&0===i.y&&0===i.z&&!s||(i.applyQuaternion(this.getCamera().quaternion),this._cameraPosition.add(new THREE.Vector3(i.x,0,i.z)),this._update(),0))}_processUpDown(t,e,i){(t.get(87)||t.get(38))&&(e.z=-1*i),(t.get(83)||t.get(40))&&(e.z=1*i)}_orbit(t){this._orbitPosition||(this._orbitPosition=new THREE.Vector2(t.x,t.y),this.dispatchEvent(0));let e=t.clone().sub(this._orbitPosition),i=this._domHelper.element instanceof Document?this._domHelper.element.body:this._domHelper.element;e.multiplyScalar(-1),this._rotateHorizontal(2*Math.PI*e.x/i.clientWidth*1),this._rotateVertical(2*Math.PI*e.y/i.clientHeight*1),position2VectorsAreEqual(this._orbitPosition,t)||this.dispatchEvent(1),this._orbitPosition.copy(t),this._update()}_moveForward(){this._keyMap.set(87,!0),this._processKeyMap(this._keyMap,.001)}_rotateVertical(t){let e=this._pitch+t;e>this.maxPolarAngle||e<this.minPolarAngle||(this._pitch=e,this._pitch<-Math.PI?this._pitch+=2*Math.PI:this._pitch>Math.PI&&(this._pitch-=2*Math.PI),this._saveYawAndPitch())}}let SceneManager=(()=>{class t{constructor(t,e,i,s,n){this._maxAnisotropy=1,this._clock=new THREE.Clock,this._delta=0,this._renderListener=null,this._stopRendering=!1,this._forceRender=!1,this._lastChange=Date.now(),this._running=!1,this._onAfterRender=()=>{},this._creator_=t,this._canvasID=i,this.createCameraControl(s),this._addCameraControlListener(),this._setupScene(e,n),document.addEventListener("visibilitychange",this._tabVisible.bind(this)),this._renderListener=()=>{this._requestRender(!0)},this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this),this._lifeCycleManager.addEventListener(this)}onBeforeRender(){}_changeCameraControl(t){this._cameraControl&&this._cameraControl.cleanUp(),t instanceof CameraControlFirstPerson&&(this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener)),this._cameraControl instanceof CameraControlFirstPerson&&(this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this)),this._cameraControl=t,this.cameraControlChanged()}cameraControlChanged(){}_addCameraControlListener(){this._cameraControl.addEventListener(0,this._requestRender,this),this._cameraControl.addEventListener(1,this._requestRender,this),this._cameraControl.addEventListener(2,this._requestRender,this),this._cameraControl.addEventListener(6,this._requestRender,this)}_requestRender(t){if(!this._renderer)return;this._pixotron&&(this._pixotron.needsUpdate=!0,t&&(this._forceRender=!0));const e=()=>{this._delta=this._clock.getDelta(),this._animateCamera(),this._cameraControl.getCamera().layers.mask=65535,this._renderLoopFunction&&(this._renderLoopFunction(),this._renderLoopFunction=null),this.onBeforeRender(),this._statsHelper&&this._statsHelper.updateRenderInfo(this._renderer.info),this._pixotron?(this._forceRender&&(this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0),this._pixotron.render(this._renderer,this._scene,this._cameraControl.getCamera(),this._renderTarget),this._forceRender=!1,this._pixotron.blit()):(this._renderer.clear(),this._renderer.render(this._scene,this._cameraControl.getCamera()),this._renderer.clearDepth()),this._onAfterRender(),window.TWEEN&&TWEEN.update(),this._lastChange+3e3<Date.now()||this._stopRendering?this._running=!1:(this._running=!0,requestAnimationFrame(e))};this._lastChange=Date.now(),this._running||this._stopRendering||(this._running=!0,requestAnimationFrame(e))}_animateCamera(){this._cameraControl&&(this._cameraControl.animateCamera(this._delta)||!this._pixotron||this._forceRender?(this._lightSetting instanceof DynamicLightSetting&&this._cameraControl.getCamera()instanceof THREE.PerspectiveCamera&&this._lightSetting.update(this._cameraControl.getCamera(),this._cameraControl.getTargetPosition()),this._pixotron&&(this._pixotron.needsUpdate=!0)):(this._pixotron.autoShadowsClear=!1,this._pixotron.autoSAOClear=!1)),this._environment&&this._environment.needsCamera()&&this._cameraControl instanceof CameraControl3D&&this._environment.updateCamera(this._cameraControl.getCamera())}_setupScene(t,e){const{x:i,y:s}=this._domHelper.getClientDimensions();this._scene=new THREE.Scene,(e=e||!1)||(this._scene.background=new THREE.Color(this._initData.colors.DEFAULT_BACKGROUND)),THREE.Math={DEG2RAD:THREE.MathUtils.DEG2RAD};const n={format:THREE.RGBAFormat,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter},a=THREE.sRGBEncoding,r=Math.floor(i*window.devicePixelRatio),o=Math.floor(s*window.devicePixelRatio);this._renderTarget=new THREE.WebGLRenderTarget(r,o,n),this._renderTarget.texture.encoding=a,this._renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(i,s),this._renderer.outputEncoding=THREE.sRGBEncoding,this._renderer.gammaFactor=2.2,this._renderer.autoClear=!1,this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=THREE.PCFSoftShadowMap,this._maxAnisotropy=this._renderer.capabilities.getMaxAnisotropy(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),this._environmentLoader.setRendererAndScene(this._renderer,this._scene),this._environmentLoader.registerEnvironmentChangedCallback(()=>this._requestRender(!0)),this._requestRender(),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this.sceneChanged()}_tabVisible(t){this.updateCamera(),this._requestRender(!0)}setupScene(t,e){this._setupScene(t,e)}updateCamera(){const{x:t,y:e}=this._domHelper.getClientDimensions();this._renderer.setSize(t,e);const i=this._renderer.getPixelRatio();if(this._renderTarget){const s=Math.floor(t*i),n=Math.floor(e*i);this._renderTarget.setSize(s,n)}if(this._pixotron){this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0,this._forceRender=!0;try{this._pixotron.setSize(t,e)}catch(t){console.warn(t)}}this._cameraControl.updateCamera(),this._requestRender(!0)}_onWindowResize(){const t=this._getInputManager();t&&t.updateSize(),this.updateCamera(),this._requestRender(!0)}_isPartOfScene(t){return"Object3D"===t.type||"Mesh"===t.type||"GLB"===t.type||"GLTF"===t.type||"Group"===t.type}cleanUp(){this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener),this._cameraControl&&this._cameraControl.cleanUp()}clearScene(){let t=[];this._scene.children.forEach(e=>{this._isPartOfScene(e)&&t.push(e)}),t.forEach(t=>{dispose(t),this._scene.remove(t)}),this._renderer.renderLists.dispose()}enableHD(){this._pixotron=new window.PIXOTRON.Pixotron(this.getPixotronParams()),this._pixotronUtil=new PixotronUtil(this._pixotron),this._environment instanceof BakedShadowEnvironment&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(!0),500))),this._requestRender()}_loadGLTF(t,e,i,s,n,a,r){return new Promise((o,h)=>{this._staticItemLoader.loadGLTF(t,e,i,s,n,a,null,r).then(t=>{this._setCamera("GLTF",t),o(t)},h)})}_loadGLB(t,e,i,s,n,a,r,o){return new Promise((h,_)=>{this._staticItemLoader.loadGLB(t,e,i,s,n,a,r,o).then(t=>{this._setCamera("GLB",t),h(t)},_)})}_setCamera(t,e){if(!e)return void console.warn("could not set camera for gltf",e);const i=new THREE.Box3;i.setFromObject(e),"GLB"===t?this._cameraControl instanceof CameraControl3D&&this._cameraControl.updateToBounds(i,!1):"GLTF"===t&&(this._cameraControl instanceof CameraControl3D&&this._cameraControl.updateAndReset(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3),-15,70,5,!1),this._cameraControl instanceof CameraControl2D&&this._cameraControl.updateToBounds(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3))),this.updateCamera()}showGUI(){if(this._initData.disableDebugGUI)return;const t=document.createElement("style");t.innerText=".dg.main{position:absolute;z-index:100;top:0;left:0;}",document.head.appendChild(t),this._scriptLoader.fetch(DAT_GUI_FILE_NAME,{id:"dat-gui-js"}).then(()=>{let t=getGUI(!1);t&&(this._domHelper.element.appendChild(t.domElement),this._guiLoaded())},t=>console.error(t))}_guiLoaded(){let t=getGUI();t&&(this._lightSetting&&this._lightSetting.showGUI(),this._pixotron&&this._pixotronUtil.showGUI(),this._environment&&this._environment.showGUI(),this._addGUIListener(t))}_addGUIListener(t){let e=t.__folders;Object.keys(e).forEach(t=>{let i=e[t];i.__folders&&Object.keys(i.__folders).forEach(t=>{let i=e[t];this._addGUIListener(i)}),i.__controllers&&i.__controllers.forEach(t=>{t.onFinishChange(()=>{this._guiParamChanged()})})})}_guiParamChanged(){this._requestRender()}showStats(){import("./stats-helper-4afb7056.js").then(t=>this._statsHelper=new t.default)}_onKeyDown(t){}_onKeyUp(t){}pause(){this._getInputManager().removeEvents(this._renderer.domElement),window.removeEventListener("resize",this,!1),window.removeEventListener("keydown",this,!1),window.removeEventListener("keyup",this,!1)}resume(){this.updateCamera(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this._requestRender(!0)}destroy(){this.pause(),this.cleanUp()}handleEvent(t){switch(t.type){case"resize":this._onWindowResize();break;case"keydown":this._onKeyDown(t);break;case"keyup":this._onKeyUp(t)}}loadSceneSettings(t){let e,i;return e=t.environment?new Promise(e=>{(new DynamicEnvironmentSettingLoader).load(this._scene,this._renderer.domElement,this._environment,t).then(t=>{this._setEnvironment(t),e()})}):Promise.resolve(),t.lights?(this._lightSetting=new DynamicLightSetting(this._scene,this._lightSetting),i=this._lightSetting.loadFromObject(t)):i=Promise.resolve(),new Promise((t,s)=>{Promise.all([e,i]).then(()=>{this._requestRender(!0),t()},s)})}_setEnvironment(t){this._environment=t,this._pixotron&&this._environment instanceof BakedShadowEnvironment&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(!0),500)))}loadQualitySetting(t){this._pixotron&&(new DynamicQualitySettingLoader).set(this._pixotron,t)}async loadDynamicLightSetting(t){this._lightSetting=new DynamicLightSetting(this._scene,this._lightSetting);let e=!1;if(t.url)await this._lightSetting.loadFromURL(t.url),e=!0;else if(t.json)await this._lightSetting.loadFromJSON(t.json),e=!0;else if(t.object)await this._lightSetting.loadFromObject(t.object),e=!0;else if(t.ls){const i=DynamicLightSettingLoader.createDynamicLightSettingSource(null,t.ls);await this._lightSetting.loadFromURL(i.url),e=!0}if(!e)throw new Error("No dynamic light setting source set");this._requestRender(!0)}getScene(){return this._scene}updateScene(){this._updateBounds(this.getBounds()),this._requestRender(!0)}_updateBounds(t){if(t){if(this.updateEnvironment(t),this._lightSetting&&this._lightSetting.needsBounds()&&this._lightSetting.updateBounds(t),this._pixotronUtil){const e=new THREE.Sphere;t.getBoundingSphere(e),this._pixotronUtil.updateBounds(e)}this._requestRender(!0)}}setCameraOffset(t){const e=this._cameraControl.getCamera();e.offset?(e.offset=t,this._requestRender(!0)):console.warn("Cannot set offset, current camera does not support it")}getCameraOffset(){const t=this._cameraControl.getCamera();return t.offset?JSON.parse(JSON.stringify(t.offset)):{left:0,top:0,right:1,bottom:1}}getPerspectiveOffsetCamera(){const t=this._domHelper.getClientDimensions(),e=t.x,i=t.y;return RoomleComponentFactoryInitializer().createCamera(30,e/i,.1,20)}updateEnvironment(t,e=!1){if(t&&this._environment&&this._environment.needsBounds()){const i=t.getSize(new THREE.Vector3);i.x+i.y+i.z!==0&&this._environment.updateBounds(t.getSize(new THREE.Vector3),e)}}}return __decorate([inject],t.prototype,"_domHelper",void 0),__decorate([inject],t.prototype,"_scriptLoader",void 0),__decorate([inject],t.prototype,"_lifeCycleManager",void 0),__decorate([inject],t.prototype,"_staticItemLoader",void 0),__decorate([inject],t.prototype,"_environmentLoader",void 0),__decorate([inject],t.prototype,"_initData",void 0),t})();export{CameraControl2D as C,SceneManager as S,CameraControlFirstPerson as a};
|
|
2
|
-
//# sourceMappingURL=scene-manager-
|
|
1
|
+
import{t as toRadiant,u as position3VectorsAreEqual,a8 as rotationQuaternionsAreEqual,a9 as getDelta,v as position2VectorsAreEqual,_ as __decorate,i as inject,e as dispose,h as getGUI,f as DynamicLightSettingLoader,R as RoomleComponentFactoryInitializer,aa as DynamicQualitySettingLoader}from"./rapi-access-8fc227f2.js";import{d as CameraControl,i as MIN_MOVE_DISTANCE,D as DynamicLightSetting,C as CameraControl3D,b as PixotronUtil,B as BakedShadowEnvironment,f as DAT_GUI_FILE_NAME,c as DynamicEnvironmentSettingLoader}from"./pixotron-4211bd0a.js";class CameraControl2D extends CameraControl{constructor(t,e,i){super(t,e,i),this._scale=1,this._state=0,this._size=20,this._center=new THREE.Vector3,this._raycaster=new THREE.Raycaster,this._lastPosition=new THREE.Vector2,this._zoomPosition=new THREE.Vector3,this._lastZoom=0,this._zoomSpeed=Math.pow(.95,2),this._cameraZoom=1,this._initCamera(i||new THREE.Vector3(0,10,0));let s=new THREE.PlaneGeometry(1e3,1e3);s.rotateX(-Math.PI/2),this._plane=new THREE.Mesh(s,new THREE.MeshStandardMaterial)}_getCamera(){return this._camera||this._initCamera(new THREE.Vector3(0,10,0)),this._camera}_initCamera(t){let{x:e,y:i}=this._domHelper.getClientDimensions(),s=e/i*this._size,n=this._size;this._camera=new THREE.OrthographicCamera(s/-2,s/2,n/2,n/-2,1,1e3),this._camera.position.copy(t),this._cameraPosition=t,this._camera.lookAt(new THREE.Vector3(0,0,0))}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions(),i=t/e*this._size,s=this._size;this._camera.left=i/-2,this._camera.right=i/2,this._camera.top=s/2,this._camera.bottom=s/-2,this._camera.updateProjectionMatrix()}_initInputListener(){this._inputListeners.push({key:3,fun:t=>{this._locked||(this._state=1,this._lastPosition.set(t.position.x,t.position.y),this.dispatchEvent(0))}}),this._inputListeners.push({key:6,fun:t=>{1!==this._state||this._locked||(this._move(new THREE.Vector2(t.position.x,t.position.y),t.type),this.dispatchEvent(1))}}),this._inputListeners.push({key:4,fun:t=>{1===this._state&&this.dispatchEvent(2),this._state=0}}),this._inputListeners.push({key:7,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale/=this._zoomSpeed,this._zoomTo(t.position,1),this._update()}}),this._inputListeners.push({key:8,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale*=this._zoomSpeed,this._zoomTo(t.position,-1),this._update()}})}_zoomTo(t,e){if(Date.now()-this._lastZoom>200){if(e>0||this._cameraZoom>=1){const e=this.getInputPosition(t);this._raycaster.setFromCamera(e,this._camera);const i=this._raycaster.intersectObject(this._plane);if(i.length<=0)return;const s=i.pop().point;this._zoomPosition.copy(s)}else this._zoomPosition.copy(this._center);this._cameraPosition.x=this._zoomPosition.x,this._cameraPosition.z=this._zoomPosition.z}this._lastZoom=Date.now()}_move(t,e){let i=new THREE.Vector2;i.subVectors(this._lastPosition,t),i.divideScalar(100),this._cameraPosition.x+=i.x*(2===e?1.1:1),this._cameraPosition.z+=i.y*(2===e?1.1:1),this._lastPosition.copy(t)}updateToBounds(t,e){let{x:i,y:s}=this._domHelper.getClientDimensions(),n=i/s;this._size=Math.max(t.x,t.z);let a=this._size,r=this._size;n>1?a=this._size*n:r=this._size*(s/i),this._center.copy(e),this._camera.left=a/-2,this._camera.right=a/2,this._camera.top=r/2,this._camera.bottom=r/-2,this._camera.zoom=1,this._camera.position.set(this._center.x,10,this._center.z),this._cameraPosition.copy(this._camera.position)}_update(t){this._scale=Math.min(this._scale,5),this._scale=Math.max(this._scale,.8),this._cameraZoom=this._scale,this._camera.updateProjectionMatrix()}animateCamera(t){return!(!super.animateCamera(t)&&Math.abs(this._cameraZoom-this._camera.zoom)<=.01||(this._camera.zoom=THREE.MathUtils.lerp(this._camera.zoom,this._cameraZoom,10*t),0))}}const KEYBOARD_ROTATION_ANGLE=Math.PI/4;class CameraControlFirstPerson extends CameraControl{constructor(t,e,i,s){super(t,e,i),this._state=0,this._rotationSpeed=1,this._keyMap=new Map,this.minPolarAngle=toRadiant(-60),this.maxPolarAngle=toRadiant(60),this._camera=s||new THREE.PerspectiveCamera,this._camera.fov=70,this._camera.aspect=this._width/this._height,this._camera.near=.1,this._camera.far=100,this._camera.updateProjectionMatrix(),this._camera.layers.set(3),this._camera.layers.enable(1),this._camera.layers.enable(2),this._camera.layers.enable(5),this._camera.layers.enable(4),i?this._camera.position.set(i.x,1.5,i.z):this._camera.position.set(0,1.5,0),this._cameraPosition=new THREE.Vector3,this._cameraPosition.copy(this._camera.position),this._cameraRotation=new THREE.Quaternion,this._pitch=0,this._yaw=0;let n=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(n),window.addEventListener("gamepadconnected",this._gamepadConnected.bind(this)),window.addEventListener("gamepaddisconnected",this._gamepadDisconnected.bind(this))}_gamepadConnected(t){this.startButtonPressListener()}_gamepadDisconnected(t){window.cancelAnimationFrame(this._listenerLoopAnimationFrame)}startButtonPressListener(){this._listenerLoopAnimationFrame=window.requestAnimationFrame(()=>{this.buttonPressListener()})}buttonPressListener(){let t=navigator.getGamepads()[0];this._checkRightStick(t),this._checkLeftStick(t),this._checkButtons(t),this._processKeyMap(this._keyMap,.001),this.startButtonPressListener()}_checkRightStick(t){let e=t.axes[2],i=t.axes[3];Math.abs(e)>.2&&(this._rotateHorizontal(.01*KEYBOARD_ROTATION_ANGLE*e),this._update(),this.dispatchEvent(1)),Math.abs(i)>.2&&(this._rotateVertical(.01*KEYBOARD_ROTATION_ANGLE*i),this._update(),this.dispatchEvent(1))}_checkLeftStick(t){let e=t.axes[0],i=t.axes[1];Math.abs(i)>.2?i<0?this._keyMap.set(87,!0):this._keyMap.set(83,!0):t.buttons&&t.buttons[12]&&t.buttons[12].pressed?this._keyMap.set(87,!0):t.buttons&&t.buttons[13]&&t.buttons[13].pressed?this._keyMap.set(83,!0):(this._keyMap.set(87,!1),this._keyMap.set(83,!1)),Math.abs(e)>.2?e<0?this._keyMap.set(65,!0):this._keyMap.set(68,!0):(this._keyMap.set(65,!1),this._keyMap.set(68,!1))}_checkButtons(t){t.buttons&&t.buttons[6]&&t.buttons[6].pressed?this._keyMap.set(16,!0):this._keyMap.set(16,!1),t.buttons&&t.buttons[14]&&t.buttons[14].pressed?(this._keyMap.set(37,!0),this.dispatchEvent(1)):this._keyMap.set(37,!1),t.buttons&&t.buttons[15]&&t.buttons[15].pressed?(this._keyMap.set(39,!0),this.dispatchEvent(1)):this._keyMap.set(39,!1)}animateCamera(t){let e=this._cameraPosition,i=this._cameraRotation,s=this.getCamera(),n=position3VectorsAreEqual(e,s.position),a=rotationQuaternionsAreEqual(i,s.quaternion);if(!e||n&&a)return!1;let r=this.getCamera().position.clone(),o=Math.min(10*t,1);r.lerp(e,o),this.getCamera().position.copy(r);let h=this.getCamera().quaternion.clone(),_=Math.min(5*t,1);h.slerp(i,_),this.getCamera().setRotationFromQuaternion(h);let d=!1;return this._keyMap.forEach(t=>{t&&(d=!0)}),d&&this._processKeyMap(this._keyMap,t),!0}_getCamera(){return this._camera}_initInputListener(){window.addEventListener("keyup",this._onKeyChanged.bind(this),!1),window.addEventListener("keydown",this._onKeyChanged.bind(this),!1),this._inputListeners.push({key:3,fun:t=>{this._down(t)}}),this._inputListeners.push({key:6,fun:t=>{this._move(t)}}),this._inputListeners.push({key:4,fun:t=>{this._up(t)}})}_down(t){this._downPosition=t.position,this._position=t.position,this._state=1,2===t.type&&window.setTimeout(this._onLongDown.bind(this),350),2===t.type?this._rotationSpeed=.6:this._rotationSpeed=1}_move(t){this._position=t.position,1!==this._state||this._locked||this._orbit(new THREE.Vector2(t.position.x,t.position.y)),2!==this._state||this._locked||(this._orbit(new THREE.Vector2(t.position.x,t.position.y)),this._moveForward())}_up(t){1===this._state&&this.dispatchEvent(2),2===this._state&&this._keyMap.set(87,!1),this._state=0,this._orbitPosition=null}_onLongDown(){getDelta(this._downPosition,this._position)<MIN_MOVE_DISTANCE&&1===this._state&&(this._state=2,this._orbit(new THREE.Vector2(this._position.x,this._position.y)),this._moveForward())}_update(t){let e=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(e)}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions();this._camera.aspect=t/e,this._camera.updateProjectionMatrix()}_onKeyChanged(t){this._keyMap.set(t.keyCode,"keydown"===t.type),this.dispatchEvent(6),this._processKeyMap(this._keyMap,.001)&&t.preventDefault()}_processKeyMap(t,e){e=Math.min(e,.1);let i=new THREE.Vector3(0,0,0),s=!1;return this._processUpDown(t,i,e),t.get(65)&&(i.x=-1*e),t.get(68)&&(i.x=1*e),t.get(37)&&(this._rotateHorizontal(-KEYBOARD_ROTATION_ANGLE*this._rotationSpeed*e),s=!0),t.get(39)&&(this._rotateHorizontal(KEYBOARD_ROTATION_ANGLE*this._rotationSpeed*e),s=!0),t.get(16)&&(i.x*=3,i.z*=3),!(0===i.x&&0===i.y&&0===i.z&&!s||(i.applyQuaternion(this.getCamera().quaternion),this._cameraPosition.add(new THREE.Vector3(i.x,0,i.z)),this._update(),0))}_processUpDown(t,e,i){(t.get(87)||t.get(38))&&(e.z=-1*i),(t.get(83)||t.get(40))&&(e.z=1*i)}_orbit(t){this._orbitPosition||(this._orbitPosition=new THREE.Vector2(t.x,t.y),this.dispatchEvent(0));let e=t.clone().sub(this._orbitPosition),i=this._domHelper.element instanceof Document?this._domHelper.element.body:this._domHelper.element;e.multiplyScalar(-1),this._rotateHorizontal(2*Math.PI*e.x/i.clientWidth*1),this._rotateVertical(2*Math.PI*e.y/i.clientHeight*1),position2VectorsAreEqual(this._orbitPosition,t)||this.dispatchEvent(1),this._orbitPosition.copy(t),this._update()}_moveForward(){this._keyMap.set(87,!0),this._processKeyMap(this._keyMap,.001)}_rotateVertical(t){let e=this._pitch+t;e>this.maxPolarAngle||e<this.minPolarAngle||(this._pitch=e,this._pitch<-Math.PI?this._pitch+=2*Math.PI:this._pitch>Math.PI&&(this._pitch-=2*Math.PI),this._saveYawAndPitch())}}let SceneManager=(()=>{class t{constructor(t,e,i,s,n){this._maxAnisotropy=1,this._clock=new THREE.Clock,this._delta=0,this._renderListener=null,this._stopRendering=!1,this._forceRender=!1,this._lastChange=Date.now(),this._running=!1,this._onAfterRender=()=>{},this._creator_=t,this._canvasID=i,this.createCameraControl(s),this._addCameraControlListener(),this._setupScene(e,n),document.addEventListener("visibilitychange",this._tabVisible.bind(this)),this._renderListener=()=>{this._requestRender(!0)},this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this),this._lifeCycleManager.addEventListener(this)}onBeforeRender(){}_changeCameraControl(t){this._cameraControl&&this._cameraControl.cleanUp(),t instanceof CameraControlFirstPerson&&(this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener)),this._cameraControl instanceof CameraControlFirstPerson&&(this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this)),this._cameraControl=t,this.cameraControlChanged()}cameraControlChanged(){}_addCameraControlListener(){this._cameraControl.addEventListener(0,this._requestRender,this),this._cameraControl.addEventListener(1,this._requestRender,this),this._cameraControl.addEventListener(2,this._requestRender,this),this._cameraControl.addEventListener(6,this._requestRender,this)}_requestRender(t){if(!this._renderer)return;this._pixotron&&(this._pixotron.needsUpdate=!0,t&&(this._forceRender=!0));const e=()=>{this._delta=this._clock.getDelta(),this._animateCamera(),this._cameraControl.getCamera().layers.mask=65535,this._renderLoopFunction&&(this._renderLoopFunction(),this._renderLoopFunction=null),this.onBeforeRender(),this._statsHelper&&this._statsHelper.updateRenderInfo(this._renderer.info),this._pixotron?(this._forceRender&&(this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0),this._pixotron.render(this._renderer,this._scene,this._cameraControl.getCamera(),this._renderTarget),this._forceRender=!1,this._pixotron.blit()):(this._renderer.clear(),this._renderer.render(this._scene,this._cameraControl.getCamera()),this._renderer.clearDepth()),this._onAfterRender(),window.TWEEN&&TWEEN.update(),this._lastChange+3e3<Date.now()||this._stopRendering?this._running=!1:(this._running=!0,requestAnimationFrame(e))};this._lastChange=Date.now(),this._running||this._stopRendering||(this._running=!0,requestAnimationFrame(e))}_animateCamera(){this._cameraControl&&(this._cameraControl.animateCamera(this._delta)||!this._pixotron||this._forceRender?(this._lightSetting instanceof DynamicLightSetting&&this._cameraControl.getCamera()instanceof THREE.PerspectiveCamera&&this._lightSetting.update(this._cameraControl.getCamera(),this._cameraControl.getTargetPosition()),this._pixotron&&(this._pixotron.needsUpdate=!0)):(this._pixotron.autoShadowsClear=!1,this._pixotron.autoSAOClear=!1)),this._environment&&this._environment.needsCamera()&&this._cameraControl instanceof CameraControl3D&&this._environment.updateCamera(this._cameraControl.getCamera())}_setupScene(t,e){const{x:i,y:s}=this._domHelper.getClientDimensions();this._scene=new THREE.Scene,(e=e||!1)||(this._scene.background=new THREE.Color(this._initData.colors.DEFAULT_BACKGROUND)),THREE.Math={DEG2RAD:THREE.MathUtils.DEG2RAD};const n={format:THREE.RGBAFormat,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter},a=THREE.sRGBEncoding,r=Math.floor(i*window.devicePixelRatio),o=Math.floor(s*window.devicePixelRatio);this._renderTarget=new THREE.WebGLRenderTarget(r,o,n),this._renderTarget.texture.encoding=a,this._renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(i,s),this._renderer.outputEncoding=THREE.sRGBEncoding,this._renderer.gammaFactor=2.2,this._renderer.autoClear=!1,this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=THREE.PCFSoftShadowMap,this._maxAnisotropy=this._renderer.capabilities.getMaxAnisotropy(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),this._environmentLoader.setRendererAndScene(this._renderer,this._scene),this._environmentLoader.registerEnvironmentChangedCallback(()=>this._requestRender(!0)),this._requestRender(),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this.sceneChanged()}_tabVisible(t){this.updateCamera(),this._requestRender(!0)}setupScene(t,e){this._setupScene(t,e)}updateCamera(){const{x:t,y:e}=this._domHelper.getClientDimensions();this._renderer.setSize(t,e);const i=this._renderer.getPixelRatio();if(this._renderTarget){const s=Math.floor(t*i),n=Math.floor(e*i);this._renderTarget.setSize(s,n)}if(this._pixotron){this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0,this._forceRender=!0;try{this._pixotron.setSize(t,e)}catch(t){console.warn(t)}}this._cameraControl.updateCamera(),this._requestRender(!0)}_onWindowResize(){const t=this._getInputManager();t&&t.updateSize(),this.updateCamera(),this._requestRender(!0)}_isPartOfScene(t){return"Object3D"===t.type||"Mesh"===t.type||"GLB"===t.type||"GLTF"===t.type||"Group"===t.type}cleanUp(){this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener),this._cameraControl&&this._cameraControl.cleanUp()}clearScene(){let t=[];this._scene.children.forEach(e=>{this._isPartOfScene(e)&&t.push(e)}),t.forEach(t=>{dispose(t),this._scene.remove(t)}),this._renderer.renderLists.dispose()}enableHD(){this._pixotron=new window.PIXOTRON.Pixotron(this.getPixotronParams()),this._pixotronUtil=new PixotronUtil(this._pixotron),this._environment instanceof BakedShadowEnvironment&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(!0),500))),this._requestRender()}_loadGLTF(t,e,i,s,n,a,r){return new Promise((o,h)=>{this._staticItemLoader.loadGLTF(t,e,i,s,n,a,null,r).then(t=>{this._setCamera("GLTF",t),o(t)},h)})}_loadGLB(t,e,i,s,n,a,r,o){return new Promise((h,_)=>{this._staticItemLoader.loadGLB(t,e,i,s,n,a,r,o).then(t=>{this._setCamera("GLB",t),h(t)},_)})}_setCamera(t,e){if(!e)return void console.warn("could not set camera for gltf",e);const i=new THREE.Box3;i.setFromObject(e),"GLB"===t?this._cameraControl instanceof CameraControl3D&&this._cameraControl.updateToBounds(i,!1):"GLTF"===t&&(this._cameraControl instanceof CameraControl3D&&this._cameraControl.updateAndReset(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3),-15,70,5,!1),this._cameraControl instanceof CameraControl2D&&this._cameraControl.updateToBounds(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3))),this.updateCamera()}showGUI(){if(this._initData.disableDebugGUI)return;const t=document.createElement("style");t.innerText=".dg.main{position:absolute;z-index:100;top:0;left:0;}",document.head.appendChild(t),this._scriptLoader.fetch(DAT_GUI_FILE_NAME,{id:"dat-gui-js"}).then(()=>{let t=getGUI(!1);t&&(this._domHelper.element.appendChild(t.domElement),this._guiLoaded())},t=>console.error(t))}_guiLoaded(){let t=getGUI();t&&(this._lightSetting&&this._lightSetting.showGUI(),this._pixotron&&this._pixotronUtil.showGUI(),this._environment&&this._environment.showGUI(),this._addGUIListener(t))}_addGUIListener(t){let e=t.__folders;Object.keys(e).forEach(t=>{let i=e[t];i.__folders&&Object.keys(i.__folders).forEach(t=>{let i=e[t];this._addGUIListener(i)}),i.__controllers&&i.__controllers.forEach(t=>{t.onFinishChange(()=>{this._guiParamChanged()})})})}_guiParamChanged(){this._requestRender()}showStats(){import("./stats-helper-4d7bf878.js").then(t=>this._statsHelper=new t.default)}_onKeyDown(t){}_onKeyUp(t){}pause(){this._getInputManager().removeEvents(this._renderer.domElement),window.removeEventListener("resize",this,!1),window.removeEventListener("keydown",this,!1),window.removeEventListener("keyup",this,!1)}resume(){this.updateCamera(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this._requestRender(!0)}destroy(){this.pause(),this.cleanUp()}handleEvent(t){switch(t.type){case"resize":this._onWindowResize();break;case"keydown":this._onKeyDown(t);break;case"keyup":this._onKeyUp(t)}}loadSceneSettings(t){let e,i;return e=t.environment?new Promise(e=>{(new DynamicEnvironmentSettingLoader).load(this._scene,this._renderer.domElement,this._environment,t).then(t=>{this._setEnvironment(t),e()})}):Promise.resolve(),t.lights?(this._lightSetting=new DynamicLightSetting(this._scene,this._lightSetting),i=this._lightSetting.loadFromObject(t)):i=Promise.resolve(),new Promise((t,s)=>{Promise.all([e,i]).then(()=>{this._requestRender(!0),t()},s)})}_setEnvironment(t){this._environment=t,this._pixotron&&this._environment instanceof BakedShadowEnvironment&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(!0),500)))}loadQualitySetting(t){this._pixotron&&(new DynamicQualitySettingLoader).set(this._pixotron,t)}async loadDynamicLightSetting(t){this._lightSetting=new DynamicLightSetting(this._scene,this._lightSetting);let e=!1;if(t.url)await this._lightSetting.loadFromURL(t.url),e=!0;else if(t.json)await this._lightSetting.loadFromJSON(t.json),e=!0;else if(t.object)await this._lightSetting.loadFromObject(t.object),e=!0;else if(t.ls){const i=DynamicLightSettingLoader.createDynamicLightSettingSource(null,t.ls);await this._lightSetting.loadFromURL(i.url),e=!0}if(!e)throw new Error("No dynamic light setting source set");this._requestRender(!0)}getScene(){return this._scene}updateScene(){this._updateBounds(this.getBounds()),this._requestRender(!0)}_updateBounds(t){if(t){if(this.updateEnvironment(t),this._lightSetting&&this._lightSetting.needsBounds()&&this._lightSetting.updateBounds(t),this._pixotronUtil){const e=new THREE.Sphere;t.getBoundingSphere(e),this._pixotronUtil.updateBounds(e)}this._requestRender(!0)}}setCameraOffset(t){const e=this._cameraControl.getCamera();e.offset?(e.offset=t,this._requestRender(!0)):console.warn("Cannot set offset, current camera does not support it")}getCameraOffset(){const t=this._cameraControl.getCamera();return t.offset?JSON.parse(JSON.stringify(t.offset)):{left:0,top:0,right:1,bottom:1}}getPerspectiveOffsetCamera(){const t=this._domHelper.getClientDimensions(),e=t.x,i=t.y;return RoomleComponentFactoryInitializer().createCamera(30,e/i,.1,20)}updateEnvironment(t,e=!1){if(t&&this._environment&&this._environment.needsBounds()){const i=t.getSize(new THREE.Vector3);i.x+i.y+i.z!==0&&this._environment.updateBounds(t.getSize(new THREE.Vector3),e)}}}return __decorate([inject],t.prototype,"_domHelper",void 0),__decorate([inject],t.prototype,"_scriptLoader",void 0),__decorate([inject],t.prototype,"_lifeCycleManager",void 0),__decorate([inject],t.prototype,"_staticItemLoader",void 0),__decorate([inject],t.prototype,"_environmentLoader",void 0),__decorate([inject],t.prototype,"_initData",void 0),t})();export{CameraControl2D as C,SceneManager as S,CameraControlFirstPerson as a};
|
|
2
|
+
//# sourceMappingURL=scene-manager-dd75a06a.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-manager-dd75a06a.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _scriptDir,ConfiguratorKernel=(_scriptDir="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(n){var t;n=n||{},t||(t=void 0!==n?n:{});var r,i={};for(r in t)t.hasOwnProperty(r)&&(i[r]=t[r]);var e="./this.program";function a(n,t){throw t}var o="";document.currentScript&&(o=document.currentScript.src),_scriptDir&&(o=_scriptDir),o=0!==o.indexOf("blob:")?o.substr(0,o.lastIndexOf("/")+1):"";var u=t.print||console.log.bind(console),c=t.printErr||console.warn.bind(console);for(r in i)i.hasOwnProperty(r)&&(t[r]=i[r]);i=null,t.thisProgram&&(e=t.thisProgram),t.quit&&(a=t.quit);var l,f,s=0;t.wasmBinary&&(l=t.wasmBinary),t.noExitRuntime&&(f=t.noExitRuntime),"object"!=typeof WebAssembly&&c("no native wasm support detected");var d,p=new WebAssembly.Table({initial:5013,maximum:5013,element:"anyfunc"}),y=!1,h="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function v(n,t,r){var i=t+r;for(r=t;n[r]&&!(r>=i);)++r;if(16<r-t&&n.subarray&&h)return h.decode(n.subarray(t,r));for(i="";t<r;){var e=n[t++];if(128&e){var a=63&n[t++];if(192==(224&e))i+=String.fromCharCode((31&e)<<6|a);else{var o=63&n[t++];65536>(e=224==(240&e)?(15&e)<<12|a<<6|o:(7&e)<<18|a<<12|o<<6|63&n[t++])?i+=String.fromCharCode(e):(e-=65536,i+=String.fromCharCode(55296|e>>10,56320|1023&e))}}else i+=String.fromCharCode(e)}return i}function m(n){return n?v(b,n,void 0):""}function g(n,t,r,i){if(0<i){i=r+i-1;for(var e=0;e<n.length;++e){var a=n.charCodeAt(e);if(55296<=a&&57343>=a&&(a=65536+((1023&a)<<10)|1023&n.charCodeAt(++e)),127>=a){if(r>=i)break;t[r++]=a}else{if(2047>=a){if(r+1>=i)break;t[r++]=192|a>>6}else{if(65535>=a){if(r+2>=i)break;t[r++]=224|a>>12}else{if(r+3>=i)break;t[r++]=240|a>>18,t[r++]=128|a>>12&63}t[r++]=128|a>>6&63}t[r++]=128|63&a}}t[r]=0}}function _(n){for(var t=0,r=0;r<n.length;++r){var i=n.charCodeAt(r);55296<=i&&57343>=i&&(i=65536+((1023&i)<<10)|1023&n.charCodeAt(++r)),127>=i?++t:t=2047>=i?t+2:65535>=i?t+3:t+4}return t}var C,w,b,j,O,T,P,A,W,S="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function E(n){var t;for(t=n>>1;j[t];)++t;if(32<(t<<=1)-n&&S)return S.decode(b.subarray(n,t));t=0;for(var r="";;){var i=j[n+2*t>>1];if(0==i)return r;++t,r+=String.fromCharCode(i)}}function F(n,t,r){if(void 0===r&&(r=2147483647),2>r)return 0;var i=t;r=(r-=2)<2*n.length?r/2:n.length;for(var e=0;e<r;++e)j[t>>1]=n.charCodeAt(e),t+=2;return j[t>>1]=0,t-i}function k(n){return 2*n.length}function D(n){for(var t=0,r="";;){var i=T[n+4*t>>2];if(0==i)return r;++t,65536<=i?(i-=65536,r+=String.fromCharCode(55296|i>>10,56320|1023&i)):r+=String.fromCharCode(i)}}function R(n,t,r){if(void 0===r&&(r=2147483647),4>r)return 0;var i=t;r=i+r-4;for(var e=0;e<n.length;++e){var a=n.charCodeAt(e);if(55296<=a&&57343>=a&&(a=65536+((1023&a)<<10)|1023&n.charCodeAt(++e)),T[t>>2]=a,(t+=4)+4>r)break}return T[t>>2]=0,t-i}function M(n){for(var t=0,r=0;r<n.length;++r){var i=n.charCodeAt(r);55296<=i&&57343>=i&&++r,t+=4}return t}function x(n){C=n,t.HEAP8=w=new Int8Array(n),t.HEAP16=j=new Int16Array(n),t.HEAP32=T=new Int32Array(n),t.HEAPU8=b=new Uint8Array(n),t.HEAPU16=O=new Uint16Array(n),t.HEAPU32=P=new Uint32Array(n),t.HEAPF32=A=new Float32Array(n),t.HEAPF64=W=new Float64Array(n)}var U=t.INITIAL_MEMORY||167772160;function I(n){for(;0<n.length;){var r=n.shift();if("function"==typeof r)r();else{var i=r.Ad;"number"==typeof i?void 0===r.qd?t.dynCall_v(i):t.dynCall_vi(i,r.qd):i(void 0===r.qd?null:r.qd)}}}(d=t.wasmMemory?t.wasmMemory:new WebAssembly.Memory({initial:U/65536}))&&(C=d.buffer),U=C.byteLength,x(C),T[22768]=5334128;var Y=[],V=[],Q=[],H=[];function B(){var n=t.preRun.shift();Y.unshift(n)}var z=Math.ceil,X=Math.floor,N=0,Z=null,q=null;function L(n){throw t.onAbort&&t.onAbort(n),u(n),c(n),y=!0,new WebAssembly.RuntimeError("abort("+n+"). Build with -s ASSERTIONS=1 for more info.")}function $(){var n=K;return String.prototype.startsWith?n.startsWith("data:application/octet-stream;base64,"):0===n.indexOf("data:application/octet-stream;base64,")}t.preloadedImages={},t.preloadedAudios={};var K="ConfiguratorKernel.wasm";if(!$()){var G=K;K=t.locateFile?t.locateFile(G,o):o+G}function J(){try{if(l)return new Uint8Array(l);throw"both async and sync fetching of the wasm failed"}catch(n){L(n)}}V.push({Ad:function(){St()}});var nn={},tn=[];function rn(n){if(!n||nn[n])return n;for(var t in nn)for(var r=+t,i=nn[r].hd,e=i.length,a=0;a<e;a++)if(i[a]===n)return r;return n}var en=0;function an(n){try{return Ft(n)}catch(n){}}var on={},un=[null,[],[]],cn={};function ln(n){for(;n.length;){var t=n.pop();n.pop()(t)}}function fn(n){return this.fromWireType(P[n>>2])}var sn={},dn={},pn={};function yn(n){if(void 0===n)return"_unknown";var t=(n=n.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&57>=t?"_"+n:n}function hn(n,t){return n=yn(n),new Function("body","return function "+n+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function vn(n){var t=Error,r=hn(n,(function(t){this.name=n,this.message=t,void 0!==(t=Error(t).stack)&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return r.prototype=Object.create(t.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var mn=void 0;function gn(n){throw new mn(n)}function _n(n,t,r){function i(t){(t=r(t)).length!==n.length&&gn("Mismatched type converter count");for(var i=0;i<n.length;++i)Tn(n[i],t[i])}n.forEach((function(n){pn[n]=t}));var e=Array(t.length),a=[],o=0;t.forEach((function(n,t){dn.hasOwnProperty(n)?e[t]=dn[n]:(a.push(n),sn.hasOwnProperty(n)||(sn[n]=[]),sn[n].push((function(){e[t]=dn[n],++o===a.length&&i(e)})))})),0===a.length&&i(e)}function Cn(n){switch(n){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+n)}}var wn=void 0;function bn(n){for(var t="";b[n];)t+=wn[b[n++]];return t}var jn=void 0;function On(n){throw new jn(n)}function Tn(n,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var i=t.name;if(n||On('type "'+i+'" must have a positive integer typeid pointer'),dn.hasOwnProperty(n)){if(r.Gd)return;On("Cannot register type '"+i+"' twice")}dn[n]=t,delete pn[n],sn.hasOwnProperty(n)&&(t=sn[n],delete sn[n],t.forEach((function(n){n()})))}function Pn(n){return{count:n.count,ad:n.ad,ed:n.ed,Qc:n.Qc,Rc:n.Rc,Uc:n.Uc,Wc:n.Wc}}function An(n){On(n.Oc.Rc.Pc.name+" instance already deleted")}var Wn=!1;function Sn(){}function En(n){--n.count.value,0===n.count.value&&(n.Uc?n.Wc.Yc(n.Uc):n.Rc.Pc.Yc(n.Qc))}function Fn(n){return"undefined"==typeof FinalizationGroup?(Fn=function(n){return n},n):(Wn=new FinalizationGroup((function(n){for(var t=n.next();!t.done;t=n.next())(t=t.value).Qc?En(t):console.warn("object already deleted: "+t.Qc)})),Sn=function(n){Wn.unregister(n.Oc)},(Fn=function(n){return Wn.register(n,n.Oc,n.Oc),n})(n))}var kn=void 0,Dn=[];function Rn(){for(;Dn.length;){var n=Dn.pop();n.Oc.ad=!1,n.delete()}}function Mn(){}var xn={};function Un(n,t,r){if(void 0===n[t].Sc){var i=n[t];n[t]=function(){return n[t].Sc.hasOwnProperty(arguments.length)||On("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+n[t].Sc+")!"),n[t].Sc[arguments.length].apply(this,arguments)},n[t].Sc=[],n[t].Sc[i.jd]=i}}function In(n,r,i){t.hasOwnProperty(n)?((void 0===i||void 0!==t[n].Sc&&void 0!==t[n].Sc[i])&&On("Cannot register public name '"+n+"' twice"),Un(t,n,n),t.hasOwnProperty(i)&&On("Cannot register multiple overloads of a function with the same number of arguments ("+i+")!"),t[n].Sc[i]=r):(t[n]=r,void 0!==i&&(t[n].Wd=i))}function Yn(n,t,r,i,e,a,o,u){this.name=n,this.constructor=t,this.bd=r,this.Yc=i,this.Xc=e,this.Bd=a,this.gd=o,this.yd=u,this.Jd=[]}function Vn(n,t,r){for(;t!==r;)t.gd||On("Expected null or instance of "+r.name+", got an instance of "+t.name),n=t.gd(n),t=t.Xc;return n}function Qn(n,t){return null===t?(this.rd&&On("null is not a valid "+this.name),0):(t.Oc||On('Cannot pass "'+ut(t)+'" as a '+this.name),t.Oc.Qc||On("Cannot pass deleted object as a pointer of type "+this.name),Vn(t.Oc.Qc,t.Oc.Rc.Pc,this.Pc))}function Hn(n,t){if(null===t){if(this.rd&&On("null is not a valid "+this.name),this.ld){var r=this.sd();return null!==n&&n.push(this.Yc,r),r}return 0}if(t.Oc||On('Cannot pass "'+ut(t)+'" as a '+this.name),t.Oc.Qc||On("Cannot pass deleted object as a pointer of type "+this.name),!this.kd&&t.Oc.Rc.kd&&On("Cannot convert argument of type "+(t.Oc.Wc?t.Oc.Wc.name:t.Oc.Rc.name)+" to parameter type "+this.name),r=Vn(t.Oc.Qc,t.Oc.Rc.Pc,this.Pc),this.ld)switch(void 0===t.Oc.Uc&&On("Passing raw pointer to smart pointer is illegal"),this.Od){case 0:t.Oc.Wc===this?r=t.Oc.Uc:On("Cannot convert argument of type "+(t.Oc.Wc?t.Oc.Wc.name:t.Oc.Rc.name)+" to parameter type "+this.name);break;case 1:r=t.Oc.Uc;break;case 2:if(t.Oc.Wc===this)r=t.Oc.Uc;else{var i=t.clone();r=this.Kd(r,et((function(){i.delete()}))),null!==n&&n.push(this.Yc,r)}break;default:On("Unsupporting sharing policy")}return r}function Bn(n,t){return null===t?(this.rd&&On("null is not a valid "+this.name),0):(t.Oc||On('Cannot pass "'+ut(t)+'" as a '+this.name),t.Oc.Qc||On("Cannot pass deleted object as a pointer of type "+this.name),t.Oc.Rc.kd&&On("Cannot convert argument of type "+t.Oc.Rc.name+" to parameter type "+this.name),Vn(t.Oc.Qc,t.Oc.Rc.Pc,this.Pc))}var zn={};function Xn(n,t){return t.Rc&&t.Qc||gn("makeClassHandle requires ptr and ptrType"),!!t.Wc!=!!t.Uc&&gn("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Fn(Object.create(n,{Oc:{value:t}}))}function Nn(n,t,r,i,e,a,o,u,c,l,f){this.name=n,this.Pc=t,this.rd=r,this.kd=i,this.ld=e,this.Id=a,this.Od=o,this.wd=u,this.sd=c,this.Kd=l,this.Yc=f,e||void 0!==t.Xc?this.toWireType=Hn:(this.toWireType=i?Qn:Bn,this.Vc=null)}function Zn(n,r,i){t.hasOwnProperty(n)||gn("Replacing nonexistant public symbol"),void 0!==t[n].Sc&&void 0!==i?t[n].Sc[i]=r:(t[n]=r,t[n].jd=i)}function qn(n,r){n=bn(n);for(var i=t["dynCall_"+n],e=[],a=1;a<n.length;++a)e.push("a"+a);return a="return function dynCall_"+n+"_"+r+"("+e.join(", ")+") {\n",a+=" return dynCall(rawFunction"+(e.length?", ":"")+e.join(", ")+");\n","function"!=typeof(i=new Function("dynCall","rawFunction",a+"};\n")(i,r))&&On("unknown function pointer with signature "+n+": "+r),i}var Ln=void 0;function $n(n){var t=bn(n=xt(n));return Ft(n),t}function Kn(n,t){var r=[],i={};throw t.forEach((function n(t){i[t]||dn[t]||(pn[t]?pn[t].forEach(n):(r.push(t),i[t]=!0))})),new Ln(n+": "+r.map($n).join([", "]))}function Gn(n,t){for(var r=[],i=0;i<n;i++)r.push(T[(t>>2)+i]);return r}function Jn(n){var t=Function;if(!(t instanceof Function))throw new TypeError("new_ called with constructor type "+typeof t+" which is not a function");var r=hn(t.name||"unknownFunctionName",(function(){}));return r.prototype=t.prototype,r=new r,(n=t.apply(r,n))instanceof Object?n:r}function nt(n,t,r,i,e){var a=t.length;2>a&&On("argTypes array size mismatch! Must at least get return value and 'this' types!");var o=null!==t[1]&&null!==r,u=!1;for(r=1;r<t.length;++r)if(null!==t[r]&&void 0===t[r].Vc){u=!0;break}var c="void"!==t[0].name,l="",f="";for(r=0;r<a-2;++r)l+=(0!==r?", ":"")+"arg"+r,f+=(0!==r?", ":"")+"arg"+r+"Wired";n="return function "+yn(n)+"("+l+") {\nif (arguments.length !== "+(a-2)+") {\nthrowBindingError('function "+n+" called with ' + arguments.length + ' arguments, expected "+(a-2)+" args!');\n}\n",u&&(n+="var destructors = [];\n");var s=u?"destructors":"null";for(l="throwBindingError invoker fn runDestructors retType classParam".split(" "),i=[On,i,e,ln,t[0],t[1]],o&&(n+="var thisWired = classParam.toWireType("+s+", this);\n"),r=0;r<a-2;++r)n+="var arg"+r+"Wired = argType"+r+".toWireType("+s+", arg"+r+"); // "+t[r+2].name+"\n",l.push("argType"+r),i.push(t[r+2]);if(o&&(f="thisWired"+(0<f.length?", ":"")+f),n+=(c?"var rv = ":"")+"invoker(fn"+(0<f.length?", ":"")+f+");\n",u)n+="runDestructors(destructors);\n";else for(r=o?1:2;r<t.length;++r)a=1===r?"thisWired":"arg"+(r-2)+"Wired",null!==t[r].Vc&&(n+=a+"_dtor("+a+"); // "+t[r].name+"\n",l.push(a+"_dtor"),i.push(t[r].Vc));return c&&(n+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),l.push(n+"}\n"),Jn(l).apply(null,i)}var tt=[],rt=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function it(n){4<n&&0==--rt[n].$c&&(rt[n]=void 0,tt.push(n))}function et(n){switch(n){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=tt.length?tt.pop():rt.length;return rt[t]={$c:1,value:n},t}}function at(n,t,r){switch(t){case 0:return function(n){return this.fromWireType((r?w:b)[n])};case 1:return function(n){return this.fromWireType((r?j:O)[n>>1])};case 2:return function(n){return this.fromWireType((r?T:P)[n>>2])};default:throw new TypeError("Unknown integer type: "+n)}}function ot(n,t){var r=dn[n];return void 0===r&&On(t+" has unknown type "+$n(n)),r}function ut(n){if(null===n)return"null";var t=typeof n;return"object"===t||"array"===t||"function"===t?n.toString():""+n}function ct(n,t){switch(t){case 2:return function(n){return this.fromWireType(A[n>>2])};case 3:return function(n){return this.fromWireType(W[n>>3])};default:throw new TypeError("Unknown float type: "+n)}}function lt(n,t,r){switch(t){case 0:return r?function(n){return w[n]}:function(n){return b[n]};case 1:return r?function(n){return j[n>>1]}:function(n){return O[n>>1]};case 2:return r?function(n){return T[n>>2]}:function(n){return P[n>>2]};default:throw new TypeError("Unknown integer type: "+n)}}function ft(n){return n||On("Cannot use deleted val. handle = "+n),rt[n].value}function st(n,t){for(var r=Array(n),i=0;i<n;++i)r[i]=ot(T[(t>>2)+i],"parameter "+i);return r}var dt={};function pt(n){var t=dt[n];return void 0===t?bn(n):t}var yt=[];function ht(){return"object"==typeof globalThis?globalThis:Function("return this")()}var vt,mt={},gt={};function _t(){if(!vt){var n,t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:e||"./this.program"};for(n in gt)t[n]=gt[n];var r=[];for(n in t)r.push(n+"="+t[n]);vt=r}return vt}function Ct(n){return 0==n%4&&(0!=n%100||0==n%400)}function wt(n,t){for(var r=0,i=0;i<=t;r+=n[i++]);return r}var bt=[31,29,31,30,31,30,31,31,30,31,30,31],jt=[31,28,31,30,31,30,31,31,30,31,30,31];function Ot(n,t){for(n=new Date(n.getTime());0<t;){var r=n.getMonth(),i=(Ct(n.getFullYear())?bt:jt)[r];if(!(t>i-n.getDate())){n.setDate(n.getDate()+t);break}t-=i-n.getDate()+1,n.setDate(1),11>r?n.setMonth(r+1):(n.setMonth(0),n.setFullYear(n.getFullYear()+1))}return n}mn=t.InternalError=vn("InternalError");for(var Tt=Array(256),Pt=0;256>Pt;++Pt)Tt[Pt]=String.fromCharCode(Pt);wn=Tt,jn=t.BindingError=vn("BindingError"),Mn.prototype.isAliasOf=function(n){if(!(this instanceof Mn&&n instanceof Mn))return!1;var t=this.Oc.Rc.Pc,r=this.Oc.Qc,i=n.Oc.Rc.Pc;for(n=n.Oc.Qc;t.Xc;)r=t.gd(r),t=t.Xc;for(;i.Xc;)n=i.gd(n),i=i.Xc;return t===i&&r===n},Mn.prototype.clone=function(){if(this.Oc.Qc||An(this),this.Oc.ed)return this.Oc.count.value+=1,this;var n=Fn(Object.create(Object.getPrototypeOf(this),{Oc:{value:Pn(this.Oc)}}));return n.Oc.count.value+=1,n.Oc.ad=!1,n},Mn.prototype.delete=function(){this.Oc.Qc||An(this),this.Oc.ad&&!this.Oc.ed&&On("Object already scheduled for deletion"),Sn(this),En(this.Oc),this.Oc.ed||(this.Oc.Uc=void 0,this.Oc.Qc=void 0)},Mn.prototype.isDeleted=function(){return!this.Oc.Qc},Mn.prototype.deleteLater=function(){return this.Oc.Qc||An(this),this.Oc.ad&&!this.Oc.ed&&On("Object already scheduled for deletion"),Dn.push(this),1===Dn.length&&kn&&kn(Rn),this.Oc.ad=!0,this},Nn.prototype.Cd=function(n){return this.wd&&(n=this.wd(n)),n},Nn.prototype.dd=function(n){this.Yc&&this.Yc(n)},Nn.prototype.argPackAdvance=8,Nn.prototype.readValueFromPointer=fn,Nn.prototype.deleteObject=function(n){null!==n&&n.delete()},Nn.prototype.fromWireType=function(n){function t(){return this.ld?Xn(this.Pc.bd,{Rc:this.Id,Qc:r,Wc:this,Uc:n}):Xn(this.Pc.bd,{Rc:this,Qc:n})}var r=this.Cd(n);if(!r)return this.dd(n),null;var i=function(n,t){for(void 0===t&&On("ptr should not be undefined");n.Xc;)t=n.gd(t),n=n.Xc;return zn[t]}(this.Pc,r);if(void 0!==i)return 0===i.Oc.count.value?(i.Oc.Qc=r,i.Oc.Uc=n,i.clone()):(i=i.clone(),this.dd(n),i);if(i=this.Pc.Bd(r),!(i=xn[i]))return t.call(this);i=this.kd?i.xd:i.pointerType;var e=function n(t,r,i){return r===i?t:void 0===i.Xc||null===(t=n(t,r,i.Xc))?null:i.yd(t)}(r,this.Pc,i.Pc);return null===e?t.call(this):this.ld?Xn(i.Pc.bd,{Rc:i,Qc:e,Wc:this,Uc:n}):Xn(i.Pc.bd,{Rc:i,Qc:e})},t.getInheritedInstanceCount=function(){return Object.keys(zn).length},t.getLiveInheritedInstances=function(){var n,t=[];for(n in zn)zn.hasOwnProperty(n)&&t.push(zn[n]);return t},t.flushPendingDeletes=Rn,t.setDelayFunction=function(n){kn=n,Dn.length&&kn&&kn(Rn)},Ln=t.UnboundTypeError=vn("UnboundTypeError"),t.count_emval_handles=function(){for(var n=0,t=5;t<rt.length;++t)void 0!==rt[t]&&++n;return n},t.get_first_emval=function(){for(var n=5;n<rt.length;++n)if(void 0!==rt[n])return rt[n];return null};var At={o:function(n){return Et(n)},n:function(n){var t=nn[n];return t&&!t.ud&&(t.ud=!0,Dt.td--),t&&(t.md=!1),tn.push(n),(t=rn(n))&&nn[t].$c++,n},t:function(){kt(0);var n=tn.pop();if(n){if(n=rn(n)){var r=nn[n];r.$c--,0!==r.$c||r.md||(r.dd&&t.dynCall_ii(r.dd,n),delete nn[n],an(n))}en=0}},b:function(){var n=en;if(!n)return s=0;var t=nn[n],r=t.type;if(!r)return s=0,0|n;var i=Array.prototype.slice.call(arguments);Mt(r),T[22808]=n,n=91232;for(var e=0;e<i.length;e++)if(i[e]&&Rt(i[e],r,n))return n=T[n>>2],t.hd.push(n),s=i[e],0|n;return n=T[n>>2],s=r,0|n},g:function(){var n=en;if(!n)return s=0;var t=nn[n],r=t.type;if(!r)return s=0,0|n;var i=Array.prototype.slice.call(arguments);Mt(r),T[22808]=n,n=91232;for(var e=0;e<i.length;e++)if(i[e]&&Rt(i[e],r,n))return n=T[n>>2],t.hd.push(n),s=i[e],0|n;return n=T[n>>2],s=r,0|n},xa:function(){var n=en;if(!n)return s=0;var t=nn[n],r=t.type;if(!r)return s=0,0|n;var i=Array.prototype.slice.call(arguments);Mt(r),T[22808]=n,n=91232;for(var e=0;e<i.length;e++)if(i[e]&&Rt(i[e],r,n))return n=T[n>>2],t.hd.push(n),s=i[e],0|n;return n=T[n>>2],s=r,0|n},r:an,oa:function(){var n=tn.pop();throw n=rn(n),nn[n].md||(tn.push(n),nn[n].md=!0),en=n,n},G:function(n,t,r){throw nn[n]={Qc:n,hd:[n],type:t,dd:r,$c:0,ud:!1,md:!1},en=n,"uncaught_exception"in Dt?Dt.td++:Dt.td=1,n},Ra:function(){return Dt.td},Oa:function(){return t.___errno_location&&(T[t.___errno_location()>>2]=63),-1},d:function(n){throw en||(en=n),n},Na:function(n,t){if(-1===n||0===t)n=-28;else{var r=on[n];r&&t===r.Ud&&(on[n]=null,r.Td&&Ft(r.Vd)),n=0}return n},Ta:function(n){var t=cn[n];delete cn[n];var r=t.sd,i=t.Yc,e=t.vd;_n([n],e.map((function(n){return n.Fd})).concat(e.map((function(n){return n.Md}))),(function(n){var a={};return e.forEach((function(t,r){var i=n[r],o=t.Dd,u=t.Ed,c=n[r+e.length],l=t.Ld,f=t.Nd;a[t.zd]={read:function(n){return i.fromWireType(o(u,n))},write:function(n,t){var r=[];l(f,n,c.toWireType(r,t)),ln(r)}}})),[{name:t.name,fromWireType:function(n){var t,r={};for(t in a)r[t]=a[t].read(n);return i(n),r},toWireType:function(n,t){for(var e in a)if(!(e in t))throw new TypeError("Missing field");var o=r();for(e in a)a[e].write(o,t[e]);return null!==n&&n.push(i,o),o},argPackAdvance:8,readValueFromPointer:fn,Vc:i}]}))},Ja:function(n,t,r,i,e){var a=Cn(r);Tn(n,{name:t=bn(t),fromWireType:function(n){return!!n},toWireType:function(n,t){return t?i:e},argPackAdvance:8,readValueFromPointer:function(n){if(1===r)var i=w;else if(2===r)i=j;else{if(4!==r)throw new TypeError("Unknown boolean type size: "+t);i=T}return this.fromWireType(i[n>>a])},Vc:null})},A:function(n,t,r,i,e,a,o,u,c,l,f,s,d){f=bn(f),a=qn(e,a),u&&(u=qn(o,u)),l&&(l=qn(c,l)),d=qn(s,d);var p=yn(f);In(p,(function(){Kn("Cannot construct "+f+" due to unbound types",[i])})),_n([n,t,r],i?[i]:[],(function(t){if(t=t[0],i)var r=t.Pc,e=r.bd;else e=Mn.prototype;t=hn(p,(function(){if(Object.getPrototypeOf(this)!==o)throw new jn("Use 'new' to construct "+f);if(void 0===c.Zc)throw new jn(f+" has no accessible constructor");var n=c.Zc[arguments.length];if(void 0===n)throw new jn("Tried to invoke ctor of "+f+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(c.Zc).toString()+") parameters instead!");return n.apply(this,arguments)}));var o=Object.create(e,{constructor:{value:t}});t.prototype=o;var c=new Yn(f,t,o,d,r,a,u,l);r=new Nn(f,c,!0,!1,!1),e=new Nn(f+"*",c,!1,!1,!1);var s=new Nn(f+" const*",c,!1,!0,!1);return xn[n]={pointerType:e,xd:s},Zn(p,t),[r,e,s]}))},z:function(n,t,r,i,e,a){0<t||L("Assertion failed: undefined");var o=Gn(t,r);e=qn(i,e);var u=[a],c=[];_n([],[n],(function(n){var r="constructor "+(n=n[0]).name;if(void 0===n.Pc.Zc&&(n.Pc.Zc=[]),void 0!==n.Pc.Zc[t-1])throw new jn("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+n.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return n.Pc.Zc[t-1]=function(){Kn("Cannot construct "+n.name+" due to unbound types",o)},_n([],o,(function(i){return n.Pc.Zc[t-1]=function(){arguments.length!==t-1&&On(r+" called with "+arguments.length+" arguments, expected "+(t-1)),c.length=0,u.length=t;for(var n=1;n<t;++n)u[n]=i[n].toWireType(c,arguments[n-1]);return n=e.apply(null,u),ln(c),i[0].fromWireType(n)},[]})),[]}))},k:function(n,t,r,i,e,a,o,u){var c=Gn(r,i);t=bn(t),a=qn(e,a),_n([],[n],(function(n){function i(){Kn("Cannot call "+e+" due to unbound types",c)}var e=(n=n[0]).name+"."+t;u&&n.Pc.Jd.push(t);var l=n.Pc.bd,f=l[t];return void 0===f||void 0===f.Sc&&f.className!==n.name&&f.jd===r-2?(i.jd=r-2,i.className=n.name,l[t]=i):(Un(l,t,e),l[t].Sc[r-2]=i),_n([],c,(function(i){return i=nt(e,i,n,a,o),void 0===l[t].Sc?(i.jd=r-2,l[t]=i):l[t].Sc[r-2]=i,[]})),[]}))},Ia:function(n,t){Tn(n,{name:t=bn(t),fromWireType:function(n){var t=rt[n].value;return it(n),t},toWireType:function(n,t){return et(t)},argPackAdvance:8,readValueFromPointer:fn,Vc:null})},U:function(n,t,r,i){function e(){}r=Cn(r),t=bn(t),e.values={},Tn(n,{name:t,constructor:e,fromWireType:function(n){return this.constructor.values[n]},toWireType:function(n,t){return t.value},argPackAdvance:8,readValueFromPointer:at(t,r,i),Vc:null}),In(t,e)},T:function(n,t,r){var i=ot(n,"enum");t=bn(t),n=i.constructor,i=Object.create(i.constructor.prototype,{value:{value:r},constructor:{value:hn(i.name+"_"+t,(function(){}))}}),n.values[r]=i,n[t]=i},pa:function(n,t,r){r=Cn(r),Tn(n,{name:t=bn(t),fromWireType:function(n){return n},toWireType:function(n,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+ut(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:ct(t,r),Vc:null})},S:function(n,t,r,i,e,a){var o=Gn(t,r);n=bn(n),e=qn(i,e),In(n,(function(){Kn("Cannot call "+n+" due to unbound types",o)}),t-1),_n([],o,(function(r){return Zn(n,nt(n,[r[0],null].concat(r.slice(1)),null,e,a),t-1),[]}))},K:function(n,t,r,i,e){function a(n){return n}t=bn(t),-1===e&&(e=4294967295);var o=Cn(r);if(0===i){var u=32-8*r;a=function(n){return n<<u>>>u}}var c=-1!=t.indexOf("unsigned");Tn(n,{name:t,fromWireType:a,toWireType:function(n,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+ut(r)+'" to '+this.name);if(r<i||r>e)throw new TypeError('Passing a number "'+ut(r)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+i+", "+e+"]!");return c?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:lt(t,o,0!==i),Vc:null})},H:function(n,t,r){function i(n){var t=P;return new e(C,t[1+(n>>=2)],t[n])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];Tn(n,{name:r=bn(r),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{Gd:!0})},ta:function(n,t,r,i,e,a,o,u,c,l,f,s){r=bn(r),a=qn(e,a),u=qn(o,u),l=qn(c,l),s=qn(f,s),_n([n],[t],(function(n){return n=n[0],[new Nn(r,n.Pc,!1,!1,!0,n,i,a,u,l,s)]}))},qa:function(n,t){var r="std::string"===(t=bn(t));Tn(n,{name:t,fromWireType:function(n){var t=P[n>>2];if(r){var i=b[n+4+t],e=0;0!=i&&(e=i,b[n+4+t]=0);var a=n+4;for(i=0;i<=t;++i){var o=n+4+i;if(0==b[o]){if(a=m(a),void 0===u)var u=a;else u+=String.fromCharCode(0),u+=a;a=o+1}}0!=e&&(b[n+4+t]=e)}else{for(u=Array(t),i=0;i<t;++i)u[i]=String.fromCharCode(b[n+4+i]);u=u.join("")}return Ft(n),u},toWireType:function(n,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var i="string"==typeof t;i||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||On("Cannot pass non-string to std::string");var e=(r&&i?function(){return _(t)}:function(){return t.length})(),a=Et(4+e+1);if(P[a>>2]=e,r&&i)g(t,b,a+4,e+1);else if(i)for(i=0;i<e;++i){var o=t.charCodeAt(i);255<o&&(Ft(a),On("String has UTF-16 code units that do not fit in 8 bits")),b[a+4+i]=o}else for(i=0;i<e;++i)b[a+4+i]=t[i];return null!==n&&n.push(Ft,a),a},argPackAdvance:8,readValueFromPointer:fn,Vc:function(n){Ft(n)}})},ea:function(n,t,r){if(r=bn(r),2===t)var i=E,e=F,a=k,o=function(){return O},u=1;else 4===t&&(i=D,e=R,a=M,o=function(){return P},u=2);Tn(n,{name:r,fromWireType:function(n){var r=P[n>>2],e=o(),a=e[n+4+r*t>>u],c=0;0!=a&&(c=a,e[n+4+r*t>>u]=0);var l=n+4;for(a=0;a<=r;++a){var f=n+4+a*t;if(0==e[f>>u]){if(l=i(l),void 0===s)var s=l;else s+=String.fromCharCode(0),s+=l;l=f+t}}return 0!=c&&(e[n+4+r*t>>u]=c),Ft(n),s},toWireType:function(n,i){"string"!=typeof i&&On("Cannot pass non-string to C++ string type "+r);var o=a(i),c=Et(4+o+t);return P[c>>2]=o>>u,e(i,c+4,o+t),null!==n&&n.push(Ft,c),c},argPackAdvance:8,readValueFromPointer:fn,Vc:function(n){Ft(n)}})},Ua:function(n,t,r,i,e,a){cn[n]={name:bn(t),sd:qn(r,i),Yc:qn(e,a),vd:[]}},s:function(n,t,r,i,e,a,o,u,c,l){cn[n].vd.push({zd:bn(t),Fd:r,Dd:qn(i,e),Ed:a,Md:o,Ld:qn(u,c),Nd:l})},Ka:function(n,t){Tn(n,{Hd:!0,name:t=bn(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},Za:function(n,t,r){n=ft(n),t=ot(t,"emval::as");var i=[],e=et(i);return T[r>>2]=e,t.toWireType(i,n)},Sa:function(n,t,r,i){n=ft(n),r=st(t,r);for(var e=Array(t),a=0;a<t;++a){var o=r[a];e[a]=o.readValueFromPointer(i),i+=o.argPackAdvance}return et(n=n.apply(void 0,e))},I:function(n,t,r,i,e){n=yt[n],t=ft(t),r=pt(r);var a=[];return T[i>>2]=et(a),n(t,r,a,e)},B:function(n,t,r,i){(n=yt[n])(t=ft(t),r=pt(r),null,i)},da:it,Da:function(n){return 0===n?et(ht()):(n=pt(n),et(ht()[n]))},x:function(n,t){for(var r=(t=st(n,t))[0],i=r.name+"_$"+t.slice(1).map((function(n){return n.name})).join("_")+"$",e=["retType"],a=[r],o="",u=0;u<n-1;++u)o+=(0!==u?", ":"")+"arg"+u,e.push("argType"+u),a.push(t[1+u]);i="return function "+yn("methodCaller_"+i)+"(handle, name, destructors, args) {\n";var c=0;for(u=0;u<n-1;++u)i+=" var arg"+u+" = argType"+u+".readValueFromPointer(args"+(c?"+"+c:"")+");\n",c+=t[u+1].argPackAdvance;for(i+=" var rv = handle[name]("+o+");\n",u=0;u<n-1;++u)t[u+1].deleteObject&&(i+=" argType"+u+".deleteObject(arg"+u+");\n");return r.Hd||(i+=" return retType.toWireType(destructors, rv);\n"),e.push(i+"};\n"),function(n){var t=yt.length;return yt.push(n),t}(n=Jn(e).apply(null,a))},Xa:function(n){return n=pt(n),et(t[n])},cb:function(n,t){return et((n=ft(n))[t=ft(t)])},fa:function(n){4<n&&(rt[n].$c+=1)},Wa:function(n,r,i,e){n=ft(n);var a=mt[r];if(!a){a="";for(var o=0;o<r;++o)a+=(0!==o?", ":"")+"arg"+o;var u="return function emval_allocator_"+r+"(constructor, argTypes, args) {\n";for(o=0;o<r;++o)u+="var argType"+o+" = requireRegisteredType(Module['HEAP32'][(argTypes >> 2) + "+o+'], "parameter '+o+'");\nvar arg'+o+" = argType"+o+".readValueFromPointer(args);\nargs += argType"+o+"['argPackAdvance'];\n";a=new Function("requireRegisteredType","Module","__emval_register",u+"var obj = new constructor("+a+");\nreturn __emval_register(obj);\n}\n")(ot,t,et),mt[r]=a}return a(n,i,e)},Fa:function(){return et([])},_a:function(n){return et(pt(n))},Ya:function(n){ln(rt[n].value),it(n)},Va:function(n,t){return(n=ft(n))===ft(t)},y:function(n,t){return et(n=(n=ot(n,"_emval_take_value")).readValueFromPointer(t))},sa:function(){L()},Ga:function(n,t,r){b.copyWithin(n,t,t+r)},Ha:function(n){var t=b.length;if(2147418112<n)return!1;for(var r=1;4>=r;r*=2){var i=t*(1+.2/r);i=Math.min(i,n+100663296),0<(i=Math.max(16777216,n,i))%65536&&(i+=65536-i%65536);n:{try{d.grow(Math.min(2147418112,i)-C.byteLength+65535>>16),x(d.buffer);var e=1;break n}catch(n){}e=void 0}if(e)return!0}return!1},Pa:function(n,t){var r=0;return _t().forEach((function(i,e){var a=t+r;for(e=T[n+4*e>>2]=a,a=0;a<i.length;++a)w[e++>>0]=i.charCodeAt(a);w[e>>0]=0,r+=i.length+1})),0},Qa:function(n,t){var r=_t();T[n>>2]=r.length;var i=0;return r.forEach((function(n){i+=n.length+1})),T[t>>2]=i,0},La:function(){return 0},db:function(){},ra:function(n,t,r,i){for(var e=0,a=0;a<r;a++){for(var o=T[t+8*a>>2],l=T[t+(8*a+4)>>2],f=0;f<l;f++){var s=b[o+f],d=un[n];0===s||10===s?((1===n?u:c)(v(d,0)),d.length=0):d.push(s)}e+=l}return T[i>>2]=e,0},a:function(){return 0|s},Ea:function(n,t){var r=xr();try{return Dr(n,t)}catch(n){if(Ur(r),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},$:function(n,t,r,i){var e=xr();try{return Rr(n,t,r,i)}catch(n){if(Ur(e),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},F:function(n,t){var r=xr();try{return Ar(n,t)}catch(n){if(Ur(r),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},ka:function(n,t,r){var i=xr();try{return Fr(n,t,r)}catch(n){if(Ur(i),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},za:function(n,t,r,i){var e=xr();try{return kr(n,t,r,i)}catch(n){if(Ur(e),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},J:function(n,t,r){var i=xr();try{return Wr(n,t,r)}catch(n){if(Ur(i),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},W:function(n,t,r,i,e){var a=xr();try{return Er(n,t,r,i,e)}catch(n){if(Ur(a),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},M:function(n,t,r,i){var e=xr();try{return Sr(n,t,r,i)}catch(n){if(Ur(e),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},v:function(n){var t=xr();try{return lr(n)}catch(n){if(Ur(t),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},P:function(n,t){var r=xr();try{return Or(n,t)}catch(n){if(Ur(r),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},h:function(n,t){var r=xr();try{return fr(n,t)}catch(n){if(Ur(r),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},Y:function(n,t,r){var i=xr();try{return jr(n,t,r)}catch(n){if(Ur(i),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},L:function(n,t,r){var i=xr();try{return wr(n,t,r)}catch(n){if(Ur(i),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},ya:function(n,t,r,i){var e=xr();try{return br(n,t,r,i)}catch(n){if(Ur(e),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},c:function(n,t,r){var i=xr();try{return sr(n,t,r)}catch(n){if(Ur(i),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},i:function(n,t,r,i){var e=xr();try{return dr(n,t,r,i)}catch(n){if(Ur(e),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},p:function(n,t,r,i,e){var a=xr();try{return pr(n,t,r,i,e)}catch(n){if(Ur(a),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},ua:function(n,t,r,i,e,a){var o=xr();try{return _r(n,t,r,i,e,a)}catch(n){if(Ur(o),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},C:function(n,t,r,i,e,a){var o=xr();try{return yr(n,t,r,i,e,a)}catch(n){if(Ur(o),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},D:function(n,t,r,i,e,a,o){var u=xr();try{return hr(n,t,r,i,e,a,o)}catch(n){if(Ur(u),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},X:function(n,t,r,i,e,a,o,u){var c=xr();try{return vr(n,t,r,i,e,a,o,u)}catch(n){if(Ur(c),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},va:function(n,t,r,i,e,a,o,u,c){var l=xr();try{return mr(n,t,r,i,e,a,o,u,c)}catch(n){if(Ur(l),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},_:function(n,t,r,i,e,a,o,u,c,l,f,s){var d=xr();try{return gr(n,t,r,i,e,a,o,u,c,l,f,s)}catch(n){if(Ur(d),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},ab:function(n,t,r,i){var e=xr();try{return Cr(n,t,r,i)}catch(n){if(Ur(e),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},bb:function(n,t,r){var i=xr();try{return Tr(n,t,r)}catch(n){if(Ur(i),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},$a:function(n,t,r,i,e){var a=xr();try{return Pr(n,t,r,i,e)}catch(n){if(Ur(a),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},m:function(n){var t=xr();try{Ut(n)}catch(n){if(Ur(t),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},j:function(n,t){var r=xr();try{It(n,t)}catch(n){if(Ur(r),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},ma:function(n,t,r,i){var e=xr();try{cr(n,t,r,i)}catch(n){if(Ur(e),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},ha:function(n,t,r){var i=xr();try{er(n,t,r)}catch(n){if(Ur(i),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},Ba:function(n,t,r,i){var e=xr();try{ar(n,t,r,i)}catch(n){if(Ur(e),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},Aa:function(n,t,r,i,e,a,o,u){var c=xr();try{ur(n,t,r,i,e,a,o,u)}catch(n){if(Ur(c),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},la:function(n,t,r,i,e,a,o,u){var c=xr();try{or(n,t,r,i,e,a,o,u)}catch(n){if(Ur(c),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},e:function(n,t,r){var i=xr();try{Yt(n,t,r)}catch(n){if(Ur(i),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},R:function(n,t,r,i,e){var a=xr();try{rr(n,t,r,i,e)}catch(n){if(Ur(a),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},Q:function(n,t,r,i,e,a){var o=xr();try{ir(n,t,r,i,e,a)}catch(n){if(Ur(o),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},ja:function(n,t,r,i){var e=xr();try{nr(n,t,r,i)}catch(n){if(Ur(e),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},eb:function(n,t,r,i,e){var a=xr();try{tr(n,t,r,i,e)}catch(n){if(Ur(a),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},f:function(n,t,r,i){var e=xr();try{Vt(n,t,r,i)}catch(n){if(Ur(e),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},ba:function(n,t,r,i,e){var a=xr();try{Gt(n,t,r,i,e)}catch(n){if(Ur(a),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},Ca:function(n,t,r,i,e,a){var o=xr();try{Jt(n,t,r,i,e,a)}catch(n){if(Ur(o),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},l:function(n,t,r,i,e){var a=xr();try{Qt(n,t,r,i,e)}catch(n){if(Ur(a),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},aa:function(n,t,r,i,e,a){var o=xr();try{Kt(n,t,r,i,e,a)}catch(n){if(Ur(o),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},ia:function(n,t,r,i,e,a,o){var u=xr();try{$t(n,t,r,i,e,a,o)}catch(n){if(Ur(u),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},u:function(n,t,r,i,e,a){var o=xr();try{Ht(n,t,r,i,e,a)}catch(n){if(Ur(o),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},w:function(n,t,r,i,e,a,o){var u=xr();try{Bt(n,t,r,i,e,a,o)}catch(n){if(Ur(u),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},E:function(n,t,r,i,e,a,o,u){var c=xr();try{zt(n,t,r,i,e,a,o,u)}catch(n){if(Ur(c),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},V:function(n,t,r,i,e,a,o,u,c){var l=xr();try{Xt(n,t,r,i,e,a,o,u,c)}catch(n){if(Ur(l),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},ca:function(n,t,r,i,e,a,o,u,c,l){var f=xr();try{Nt(n,t,r,i,e,a,o,u,c,l)}catch(n){if(Ur(f),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},O:function(n,t,r,i,e,a,o,u,c,l,f){var s=xr();try{Zt(n,t,r,i,e,a,o,u,c,l,f)}catch(n){if(Ur(s),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},wa:function(n,t,r,i,e,a,o,u,c,l,f,s){var d=xr();try{qt(n,t,r,i,e,a,o,u,c,l,f,s)}catch(n){if(Ur(d),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},Z:function(n,t,r,i,e,a,o,u,c,l,f,s,d,p,y,h){var v=xr();try{Lt(n,t,r,i,e,a,o,u,c,l,f,s,d,p,y,h)}catch(n){if(Ur(v),n!==n+0&&"longjmp"!==n)throw n;kt(1,0)}},q:function(n){return n},memory:d,N:function(n){return 0<=(n=+n)?+X(n+.5):+z(n-.5)},na:function(n){return 0<=(n=+n)?+X(n+.5):+z(n-.5)},ga:function(n){s=0|n},Ma:function(n,t,r,i){return function(n,t,r,i){function e(n,t,r){for(n="number"==typeof n?n.toString():n||"";n.length<t;)n=r[0]+n;return n}function a(n,t){return e(n,t,"0")}function o(n,t){function r(n){return 0>n?-1:0<n?1:0}var i;return 0===(i=r(n.getFullYear()-t.getFullYear()))&&0===(i=r(n.getMonth()-t.getMonth()))&&(i=r(n.getDate()-t.getDate())),i}function u(n){switch(n.getDay()){case 0:return new Date(n.getFullYear()-1,11,29);case 1:return n;case 2:return new Date(n.getFullYear(),0,3);case 3:return new Date(n.getFullYear(),0,2);case 4:return new Date(n.getFullYear(),0,1);case 5:return new Date(n.getFullYear()-1,11,31);case 6:return new Date(n.getFullYear()-1,11,30)}}function c(n){n=Ot(new Date(n.Tc+1900,0,1),n.pd);var t=new Date(n.getFullYear()+1,0,4),r=u(new Date(n.getFullYear(),0,4));return t=u(t),0>=o(r,n)?0>=o(t,n)?n.getFullYear()+1:n.getFullYear():n.getFullYear()-1}var l=T[i+40>>2];for(var f in i={Rd:T[i>>2],Qd:T[i+4>>2],nd:T[i+8>>2],fd:T[i+12>>2],cd:T[i+16>>2],Tc:T[i+20>>2],od:T[i+24>>2],pd:T[i+28>>2],Xd:T[i+32>>2],Pd:T[i+36>>2],Sd:l?m(l):""},r=m(r),l={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})r=r.replace(new RegExp(f,"g"),l[f]);var s="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),d="January February March April May June July August September October November December".split(" ");for(f in l={"%a":function(n){return s[n.od].substring(0,3)},"%A":function(n){return s[n.od]},"%b":function(n){return d[n.cd].substring(0,3)},"%B":function(n){return d[n.cd]},"%C":function(n){return a((n.Tc+1900)/100|0,2)},"%d":function(n){return a(n.fd,2)},"%e":function(n){return e(n.fd,2," ")},"%g":function(n){return c(n).toString().substring(2)},"%G":function(n){return c(n)},"%H":function(n){return a(n.nd,2)},"%I":function(n){return 0==(n=n.nd)?n=12:12<n&&(n-=12),a(n,2)},"%j":function(n){return a(n.fd+wt(Ct(n.Tc+1900)?bt:jt,n.cd-1),3)},"%m":function(n){return a(n.cd+1,2)},"%M":function(n){return a(n.Qd,2)},"%n":function(){return"\n"},"%p":function(n){return 0<=n.nd&&12>n.nd?"AM":"PM"},"%S":function(n){return a(n.Rd,2)},"%t":function(){return"\t"},"%u":function(n){return n.od||7},"%U":function(n){var t=new Date(n.Tc+1900,0,1),r=0===t.getDay()?t:Ot(t,7-t.getDay());return 0>o(r,n=new Date(n.Tc+1900,n.cd,n.fd))?a(Math.ceil((31-r.getDate()+(wt(Ct(n.getFullYear())?bt:jt,n.getMonth()-1)-31)+n.getDate())/7),2):0===o(r,t)?"01":"00"},"%V":function(n){var t=new Date(n.Tc+1901,0,4),r=u(new Date(n.Tc+1900,0,4));t=u(t);var i=Ot(new Date(n.Tc+1900,0,1),n.pd);return 0>o(i,r)?"53":0>=o(t,i)?"01":a(Math.ceil((r.getFullYear()<n.Tc+1900?n.pd+32-r.getDate():n.pd+1-r.getDate())/7),2)},"%w":function(n){return n.od},"%W":function(n){var t=new Date(n.Tc,0,1),r=1===t.getDay()?t:Ot(t,0===t.getDay()?1:7-t.getDay()+1);return 0>o(r,n=new Date(n.Tc+1900,n.cd,n.fd))?a(Math.ceil((31-r.getDate()+(wt(Ct(n.getFullYear())?bt:jt,n.getMonth()-1)-31)+n.getDate())/7),2):0===o(r,t)?"01":"00"},"%y":function(n){return(n.Tc+1900).toString().substring(2)},"%Y":function(n){return n.Tc+1900},"%z":function(n){var t=0<=(n=n.Pd);return n=Math.abs(n)/60,(t?"+":"-")+String("0000"+(n/60*100+n%60)).slice(-4)},"%Z":function(n){return n.Sd},"%%":function(){return"%"}})0<=r.indexOf(f)&&(r=r.replace(new RegExp(f,"g"),l[f](i)));return(f=function(n){var t=Array(_(n)+1);return g(n,t,0,t.length),t}(r)).length>t?0:(w.set(f,n),f.length-1)}(n,t,r,i)},table:p},Wt=function(){function n(n){t.asm=n.exports,N--,t.monitorRunDependencies&&t.monitorRunDependencies(N),0==N&&(null!==Z&&(clearInterval(Z),Z=null),q&&(n=q,q=null,n()))}function r(t){n(t.instance)}function i(n){return(l||"function"!=typeof fetch?new Promise((function(n){n(J())})):fetch(K,{credentials:"same-origin"}).then((function(n){if(!n.ok)throw"failed to load wasm binary file at '"+K+"'";return n.arrayBuffer()})).catch((function(){return J()}))).then((function(n){return WebAssembly.instantiate(n,e)})).then(n,(function(n){c("failed to asynchronously prepare wasm: "+n),L(n)}))}var e={a:At};if(N++,t.monitorRunDependencies&&t.monitorRunDependencies(N),t.instantiateWasm)try{return t.instantiateWasm(e,n)}catch(n){return c("Module.instantiateWasm callback failed with error: "+n),!1}return function(){if(l||"function"!=typeof WebAssembly.instantiateStreaming||$()||"function"!=typeof fetch)return i(r);fetch(K,{credentials:"same-origin"}).then((function(n){return WebAssembly.instantiateStreaming(n,e).then(r,(function(n){c("wasm streaming compile failed: "+n),c("falling back to ArrayBuffer instantiation"),i(r)}))}))}(),{}}();t.asm=Wt;var St=t.___wasm_call_ctors=function(){return(St=t.___wasm_call_ctors=t.asm.fb).apply(null,arguments)},Et=t._malloc=function(){return(Et=t._malloc=t.asm.gb).apply(null,arguments)},Ft=t._free=function(){return(Ft=t._free=t.asm.hb).apply(null,arguments)};t._main=function(){return(t._main=t.asm.ib).apply(null,arguments)};var kt=t._setThrew=function(){return(kt=t._setThrew=t.asm.jb).apply(null,arguments)},Dt=t.__ZSt18uncaught_exceptionv=function(){return(Dt=t.__ZSt18uncaught_exceptionv=t.asm.kb).apply(null,arguments)},Rt=t.___cxa_can_catch=function(){return(Rt=t.___cxa_can_catch=t.asm.lb).apply(null,arguments)},Mt=t.___cxa_is_pointer_type=function(){return(Mt=t.___cxa_is_pointer_type=t.asm.mb).apply(null,arguments)},xt=t.___getTypeName=function(){return(xt=t.___getTypeName=t.asm.nb).apply(null,arguments)};t.___embind_register_native_and_builtin_types=function(){return(t.___embind_register_native_and_builtin_types=t.asm.ob).apply(null,arguments)};var Ut=t.dynCall_v=function(){return(Ut=t.dynCall_v=t.asm.pb).apply(null,arguments)},It=t.dynCall_vi=function(){return(It=t.dynCall_vi=t.asm.qb).apply(null,arguments)},Yt=t.dynCall_vii=function(){return(Yt=t.dynCall_vii=t.asm.rb).apply(null,arguments)},Vt=t.dynCall_viii=function(){return(Vt=t.dynCall_viii=t.asm.sb).apply(null,arguments)},Qt=t.dynCall_viiii=function(){return(Qt=t.dynCall_viiii=t.asm.tb).apply(null,arguments)},Ht=t.dynCall_viiiii=function(){return(Ht=t.dynCall_viiiii=t.asm.ub).apply(null,arguments)},Bt=t.dynCall_viiiiii=function(){return(Bt=t.dynCall_viiiiii=t.asm.vb).apply(null,arguments)},zt=t.dynCall_viiiiiii=function(){return(zt=t.dynCall_viiiiiii=t.asm.wb).apply(null,arguments)},Xt=t.dynCall_viiiiiiii=function(){return(Xt=t.dynCall_viiiiiiii=t.asm.xb).apply(null,arguments)},Nt=t.dynCall_viiiiiiiii=function(){return(Nt=t.dynCall_viiiiiiiii=t.asm.yb).apply(null,arguments)},Zt=t.dynCall_viiiiiiiiii=function(){return(Zt=t.dynCall_viiiiiiiiii=t.asm.zb).apply(null,arguments)},qt=t.dynCall_viiiiiiiiiii=function(){return(qt=t.dynCall_viiiiiiiiiii=t.asm.Ab).apply(null,arguments)},Lt=t.dynCall_viiiiiiiiiiiiiii=function(){return(Lt=t.dynCall_viiiiiiiiiiiiiii=t.asm.Bb).apply(null,arguments)},$t=t.dynCall_viiiifi=function(){return($t=t.dynCall_viiiifi=t.asm.Cb).apply(null,arguments)},Kt=t.dynCall_viiiid=function(){return(Kt=t.dynCall_viiiid=t.asm.Db).apply(null,arguments)},Gt=t.dynCall_viiif=function(){return(Gt=t.dynCall_viiif=t.asm.Eb).apply(null,arguments)},Jt=t.dynCall_viiifi=function(){return(Jt=t.dynCall_viiifi=t.asm.Fb).apply(null,arguments)},nr=t.dynCall_viif=function(){return(nr=t.dynCall_viif=t.asm.Gb).apply(null,arguments)},tr=t.dynCall_viifi=function(){return(tr=t.dynCall_viifi=t.asm.Hb).apply(null,arguments)},rr=t.dynCall_viidi=function(){return(rr=t.dynCall_viidi=t.asm.Ib).apply(null,arguments)},ir=t.dynCall_viidii=function(){return(ir=t.dynCall_viidii=t.asm.Jb).apply(null,arguments)},er=t.dynCall_vif=function(){return(er=t.dynCall_vif=t.asm.Kb).apply(null,arguments)},ar=t.dynCall_vifi=function(){return(ar=t.dynCall_vifi=t.asm.Lb).apply(null,arguments)},or=t.dynCall_vifiiiff=function(){return(or=t.dynCall_vifiiiff=t.asm.Mb).apply(null,arguments)},ur=t.dynCall_vifiifif=function(){return(ur=t.dynCall_vifiifif=t.asm.Nb).apply(null,arguments)};t.dynCall_vid=function(){return(t.dynCall_vid=t.asm.Ob).apply(null,arguments)};var cr=t.dynCall_vidi=function(){return(cr=t.dynCall_vidi=t.asm.Pb).apply(null,arguments)},lr=t.dynCall_i=function(){return(lr=t.dynCall_i=t.asm.Qb).apply(null,arguments)},fr=t.dynCall_ii=function(){return(fr=t.dynCall_ii=t.asm.Rb).apply(null,arguments)},sr=t.dynCall_iii=function(){return(sr=t.dynCall_iii=t.asm.Sb).apply(null,arguments)},dr=t.dynCall_iiii=function(){return(dr=t.dynCall_iiii=t.asm.Tb).apply(null,arguments)},pr=t.dynCall_iiiii=function(){return(pr=t.dynCall_iiiii=t.asm.Ub).apply(null,arguments)},yr=t.dynCall_iiiiii=function(){return(yr=t.dynCall_iiiiii=t.asm.Vb).apply(null,arguments)},hr=t.dynCall_iiiiiii=function(){return(hr=t.dynCall_iiiiiii=t.asm.Wb).apply(null,arguments)},vr=t.dynCall_iiiiiiii=function(){return(vr=t.dynCall_iiiiiiii=t.asm.Xb).apply(null,arguments)},mr=t.dynCall_iiiiiiiii=function(){return(mr=t.dynCall_iiiiiiiii=t.asm.Yb).apply(null,arguments)};t.dynCall_iiiiiiiiiii=function(){return(t.dynCall_iiiiiiiiiii=t.asm.Zb).apply(null,arguments)};var gr=t.dynCall_iiiiiiiiiiii=function(){return(gr=t.dynCall_iiiiiiiiiiii=t.asm._b).apply(null,arguments)};t.dynCall_iiiiiiiiiiiii=function(){return(t.dynCall_iiiiiiiiiiiii=t.asm.$b).apply(null,arguments)};var _r=t.dynCall_iiiiid=function(){return(_r=t.dynCall_iiiiid=t.asm.ac).apply(null,arguments)},Cr=t.dynCall_iij=function(){return(Cr=t.dynCall_iij=t.asm.bc).apply(null,arguments)},wr=t.dynCall_iif=function(){return(wr=t.dynCall_iif=t.asm.cc).apply(null,arguments)},br=t.dynCall_iiff=function(){return(br=t.dynCall_iiff=t.asm.dc).apply(null,arguments)};t.dynCall_iiffff=function(){return(t.dynCall_iiffff=t.asm.ec).apply(null,arguments)};var jr=t.dynCall_iid=function(){return(jr=t.dynCall_iid=t.asm.fc).apply(null,arguments)},Or=t.dynCall_if=function(){return(Or=t.dynCall_if=t.asm.gc).apply(null,arguments)};t.dynCall_id=function(){return(t.dynCall_id=t.asm.hc).apply(null,arguments)};var Tr=t.dynCall_jii=function(){return(Tr=t.dynCall_jii=t.asm.ic).apply(null,arguments)},Pr=t.dynCall_jiiii=function(){return(Pr=t.dynCall_jiiii=t.asm.jc).apply(null,arguments)},Ar=t.dynCall_fi=function(){return(Ar=t.dynCall_fi=t.asm.kc).apply(null,arguments)},Wr=t.dynCall_fii=function(){return(Wr=t.dynCall_fii=t.asm.lc).apply(null,arguments)},Sr=t.dynCall_fiii=function(){return(Sr=t.dynCall_fiii=t.asm.mc).apply(null,arguments)},Er=t.dynCall_fiifi=function(){return(Er=t.dynCall_fiifi=t.asm.nc).apply(null,arguments)},Fr=t.dynCall_fif=function(){return(Fr=t.dynCall_fif=t.asm.oc).apply(null,arguments)},kr=t.dynCall_fiff=function(){return(kr=t.dynCall_fiff=t.asm.pc).apply(null,arguments)},Dr=t.dynCall_di=function(){return(Dr=t.dynCall_di=t.asm.qc).apply(null,arguments)},Rr=t.dynCall_diii=function(){return(Rr=t.dynCall_diii=t.asm.rc).apply(null,arguments)};t.dynCall_ddi=function(){return(t.dynCall_ddi=t.asm.sc).apply(null,arguments)};var Mr,xr=t.stackSave=function(){return(xr=t.stackSave=t.asm.tc).apply(null,arguments)},Ur=t.stackRestore=function(){return(Ur=t.stackRestore=t.asm.uc).apply(null,arguments)};function Ir(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}function Yr(){function n(){if(!Mr&&(Mr=!0,t.calledRun=!0,!y)){if(I(V),I(Q),t.onRuntimeInitialized&&t.onRuntimeInitialized(),Vr){var n=t._main;try{var r=n(0,0);f&&0===r||(!f&&(y=!0,t.onExit)&&t.onExit(r),a(r,new Ir(r)))}catch(t){t instanceof Ir||("unwind"==t?f=!0:((n=t)&&"object"==typeof t&&t.stack&&(n=[t,t.stack]),c("exception thrown: "+n),a(1,t)))}}if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)n=t.postRun.shift(),H.unshift(n);I(H)}}if(!(0<N)){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)B();I(Y),0<N||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),n()}),1)):n())}}if(t.dynCall_dii=function(){return(t.dynCall_dii=t.asm.vc).apply(null,arguments)},t.dynCall_viid=function(){return(t.dynCall_viid=t.asm.wc).apply(null,arguments)},t.dynCall_viiiiiiiiiiii=function(){return(t.dynCall_viiiiiiiiiiii=t.asm.xc).apply(null,arguments)},t.dynCall_iiidii=function(){return(t.dynCall_iiidii=t.asm.yc).apply(null,arguments)},t.dynCall_fiiii=function(){return(t.dynCall_fiiii=t.asm.zc).apply(null,arguments)},t.dynCall_iiidi=function(){return(t.dynCall_iiidi=t.asm.Ac).apply(null,arguments)},t.dynCall_diiii=function(){return(t.dynCall_diiii=t.asm.Bc).apply(null,arguments)},t.dynCall_iiiif=function(){return(t.dynCall_iiiif=t.asm.Cc).apply(null,arguments)},t.dynCall_iidiiii=function(){return(t.dynCall_iidiiii=t.asm.Dc).apply(null,arguments)},t.dynCall_viijii=function(){return(t.dynCall_viijii=t.asm.Ec).apply(null,arguments)},t.dynCall_viiifif=function(){return(t.dynCall_viiifif=t.asm.Fc).apply(null,arguments)},t.dynCall_vifffiii=function(){return(t.dynCall_vifffiii=t.asm.Gc).apply(null,arguments)},t.dynCall_vifffiifif=function(){return(t.dynCall_vifffiifif=t.asm.Hc).apply(null,arguments)},t.dynCall_iiif=function(){return(t.dynCall_iiif=t.asm.Ic).apply(null,arguments)},t.dynCall_fifi=function(){return(t.dynCall_fifi=t.asm.Jc).apply(null,arguments)},t.dynCall_iiiiiijj=function(){return(t.dynCall_iiiiiijj=t.asm.Kc).apply(null,arguments)},t.dynCall_iiiiij=function(){return(t.dynCall_iiiiij=t.asm.Lc).apply(null,arguments)},t.dynCall_iiiiijj=function(){return(t.dynCall_iiiiijj=t.asm.Mc).apply(null,arguments)},t.dynCall_jiji=function(){return(t.dynCall_jiji=t.asm.Nc).apply(null,arguments)},t.asm=Wt,t.then=function(n){if(Mr)n(t);else{var r=t.onRuntimeInitialized;t.onRuntimeInitialized=function(){r&&r(),n(t)}}return t},q=function n(){Mr||Yr(),Mr||(q=n)},t.run=Yr,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();var Vr=!0;return t.noInitialRun&&(Vr=!1),f=!0,Yr(),n});"object"==typeof exports&&"object"==typeof module?module.exports=ConfiguratorKernel:"function"==typeof define&&define.amd?define([],(function(){return ConfiguratorKernel})):"object"==typeof exports&&(exports.ConfiguratorKernel=ConfiguratorKernel);
|