@roomle/web-sdk 2.105.0-alpha.6 → 2.105.0
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-2633168c.js → banana-for-scale-33778dbb.js} +2 -2
- package/lib/{banana-for-scale-2633168c.js.map → banana-for-scale-33778dbb.js.map} +1 -1
- package/lib/{banana-for-scale-7d3eda64.nomodule.js → banana-for-scale-5e2781a3.nomodule.js} +2 -2
- package/lib/{banana-for-scale-7d3eda64.nomodule.js.map → banana-for-scale-5e2781a3.nomodule.js.map} +1 -1
- package/lib/camera-behaviour-16588b1c.js +2 -0
- package/lib/{camera-behaviour-b38936e8.js.map → camera-behaviour-16588b1c.js.map} +1 -1
- package/lib/camera-behaviour-dd7a063e.nomodule.js +2 -0
- package/lib/{camera-behaviour-d54a163f.nomodule.js.map → camera-behaviour-dd7a063e.nomodule.js.map} +1 -1
- package/lib/{component-dimensioning-bfc2cae3.js → component-dimensioning-4ee8f27d.js} +2 -2
- package/lib/component-dimensioning-4ee8f27d.js.map +1 -0
- package/lib/{component-dimensioning-40501ab3.nomodule.js → component-dimensioning-763769c4.nomodule.js} +2 -2
- package/lib/component-dimensioning-763769c4.nomodule.js.map +1 -0
- package/lib/{component-raycast-helper-9c21304e.js → component-raycast-helper-7c75e5f0.js} +2 -2
- package/lib/component-raycast-helper-7c75e5f0.js.map +1 -0
- package/lib/{component-raycast-helper-40bfa0dc.nomodule.js → component-raycast-helper-9e685f1a.nomodule.js} +2 -2
- package/lib/component-raycast-helper-9e685f1a.nomodule.js.map +1 -0
- package/lib/{configurator-1835defb.js → configurator-cca1c6b9.js} +2 -2
- package/lib/configurator-cca1c6b9.js.map +1 -0
- package/lib/{configurator-0d266f2d.nomodule.js → configurator-d5e3e975.nomodule.js} +2 -2
- package/lib/configurator-d5e3e975.nomodule.js.map +1 -0
- package/lib/configurator-main-314fd7d7.js +2 -0
- package/lib/configurator-main-314fd7d7.js.map +1 -0
- package/lib/configurator-main.nomodule.js +1 -1
- package/lib/{continuous-drawing-helper-966ca38e.js → continuous-drawing-helper-18cc6038.js} +2 -2
- package/lib/continuous-drawing-helper-18cc6038.js.map +1 -0
- package/lib/{continuous-drawing-helper-6f0ede86.nomodule.js → continuous-drawing-helper-7c54ed2c.nomodule.js} +2 -2
- package/lib/continuous-drawing-helper-7c54ed2c.nomodule.js.map +1 -0
- package/lib/{default-light-setting-dbac7805.js → default-light-setting-427cc173.js} +2 -2
- package/lib/default-light-setting-427cc173.js.map +1 -0
- package/lib/{default-light-setting-9a50093b.nomodule.js → default-light-setting-b7032eac.nomodule.js} +2 -2
- package/lib/default-light-setting-b7032eac.nomodule.js.map +1 -0
- package/lib/definitions/common-core/src/utils/threejs-utils.d.ts +1 -1
- package/lib/definitions/packages/common-core/src/utils/threejs-utils.d.ts +1 -1
- package/lib/{dimensioning-helper-29e6a6ef.nomodule.js → dimensioning-helper-d4726ede.nomodule.js} +2 -2
- package/lib/{dimensioning-helper-29e6a6ef.nomodule.js.map → dimensioning-helper-d4726ede.nomodule.js.map} +1 -1
- package/lib/{dimensioning-helper-6a37e332.js → dimensioning-helper-d7060dbf.js} +2 -2
- package/lib/{dimensioning-helper-6a37e332.js.map → dimensioning-helper-d7060dbf.js.map} +1 -1
- package/lib/{glb-viewer-289273d5.js → glb-viewer-56580b03.js} +2 -2
- package/lib/{glb-viewer-289273d5.js.map → glb-viewer-56580b03.js.map} +1 -1
- package/lib/{glb-viewer-camera-behaviour-7e1b1e90.nomodule.js → glb-viewer-camera-behaviour-67fa46c3.nomodule.js} +2 -2
- package/lib/glb-viewer-camera-behaviour-67fa46c3.nomodule.js.map +1 -0
- package/lib/{glb-viewer-camera-behaviour-be7c8747.js → glb-viewer-camera-behaviour-bcd098e8.js} +2 -2
- package/lib/glb-viewer-camera-behaviour-bcd098e8.js.map +1 -0
- package/lib/{glb-viewer-6772ad20.nomodule.js → glb-viewer-fe45c467.nomodule.js} +2 -2
- package/lib/{glb-viewer-6772ad20.nomodule.js.map → glb-viewer-fe45c467.nomodule.js.map} +1 -1
- package/lib/glb-viewer-main-e1a17a38.js +2 -0
- package/lib/glb-viewer-main-e1a17a38.js.map +1 -0
- package/lib/glb-viewer-main.nomodule.js +1 -1
- package/lib/{imos-ix-poc-export-helper-588a53ab.nomodule.js → imos-ix-poc-export-helper-56fd272c.nomodule.js} +2 -2
- package/lib/imos-ix-poc-export-helper-56fd272c.nomodule.js.map +1 -0
- package/lib/{imos-ix-poc-export-helper-37572034.js → imos-ix-poc-export-helper-68f83fb7.js} +2 -2
- package/lib/imos-ix-poc-export-helper-68f83fb7.js.map +1 -0
- package/lib/legacy/{banana-for-scale-5b011d9f.legacy.js → banana-for-scale-2fc610a6.legacy.js} +2 -2
- package/lib/legacy/{banana-for-scale-5b011d9f.legacy.js.map → banana-for-scale-2fc610a6.legacy.js.map} +1 -1
- package/lib/legacy/camera-behaviour-f5d2fa60.legacy.js +2 -0
- package/lib/legacy/{camera-behaviour-2088546c.legacy.js.map → camera-behaviour-f5d2fa60.legacy.js.map} +1 -1
- package/lib/legacy/{component-dimensioning-f04cf8d0.legacy.js → component-dimensioning-0224eda5.legacy.js} +2 -2
- package/lib/legacy/component-dimensioning-0224eda5.legacy.js.map +1 -0
- package/lib/legacy/{component-raycast-helper-967cd80e.legacy.js → component-raycast-helper-6e8975b4.legacy.js} +2 -2
- package/lib/legacy/component-raycast-helper-6e8975b4.legacy.js.map +1 -0
- package/lib/legacy/{configurator-6d32b749.legacy.js → configurator-0dafcb92.legacy.js} +2 -2
- package/lib/legacy/configurator-0dafcb92.legacy.js.map +1 -0
- package/lib/legacy/configurator-main.legacy.js +1 -1
- package/lib/legacy/{continuous-drawing-helper-6985bc30.legacy.js → continuous-drawing-helper-b2afe8d1.legacy.js} +2 -2
- package/lib/legacy/continuous-drawing-helper-b2afe8d1.legacy.js.map +1 -0
- package/lib/legacy/{default-light-setting-e6e3c9ef.legacy.js → default-light-setting-05238ba4.legacy.js} +2 -2
- package/lib/legacy/default-light-setting-05238ba4.legacy.js.map +1 -0
- package/lib/legacy/{dimensioning-helper-1859491f.legacy.js → dimensioning-helper-78fdeba9.legacy.js} +2 -2
- package/lib/legacy/{dimensioning-helper-1859491f.legacy.js.map → dimensioning-helper-78fdeba9.legacy.js.map} +1 -1
- package/lib/legacy/{glb-viewer-dc032024.legacy.js → glb-viewer-039e52be.legacy.js} +2 -2
- package/lib/legacy/{glb-viewer-dc032024.legacy.js.map → glb-viewer-039e52be.legacy.js.map} +1 -1
- package/lib/legacy/{glb-viewer-camera-behaviour-9a618475.legacy.js → glb-viewer-camera-behaviour-8a2d4de1.legacy.js} +2 -2
- package/lib/legacy/glb-viewer-camera-behaviour-8a2d4de1.legacy.js.map +1 -0
- package/lib/legacy/glb-viewer-main.legacy.js +1 -1
- package/lib/legacy/{imos-ix-poc-export-helper-e6175ea6.legacy.js → imos-ix-poc-export-helper-eff99220.legacy.js} +2 -2
- package/lib/legacy/imos-ix-poc-export-helper-eff99220.legacy.js.map +1 -0
- package/lib/legacy/{material-viewer-29935906.legacy.js → material-viewer-75848657.legacy.js} +2 -2
- package/lib/legacy/material-viewer-75848657.legacy.js.map +1 -0
- package/lib/legacy/material-viewer-main.legacy.js +1 -1
- package/lib/legacy/{planner-db6af31d.legacy.js → planner-96b5c06a.legacy.js} +2 -2
- package/lib/legacy/{planner-db6af31d.legacy.js.map → planner-96b5c06a.legacy.js.map} +1 -1
- package/lib/legacy/planner-main.legacy.js +1 -1
- package/lib/legacy/{roomle-configurator-4891f01a.legacy.js → roomle-configurator-88689bbd.legacy.js} +2 -2
- package/lib/legacy/{roomle-configurator-4891f01a.legacy.js.map → roomle-configurator-88689bbd.legacy.js.map} +1 -1
- package/lib/legacy/{roomle-dependency-injection-5672400b.legacy.js → roomle-dependency-injection-f9e80d9c.legacy.js} +2 -2
- package/lib/legacy/{roomle-dependency-injection-5672400b.legacy.js.map → roomle-dependency-injection-f9e80d9c.legacy.js.map} +1 -1
- package/lib/legacy/roomle-sdk.legacy.js +1 -1
- package/lib/legacy/{script-loader-1e570149.legacy.js → script-loader-c7c8f3b8.legacy.js} +2 -2
- package/lib/legacy/script-loader-c7c8f3b8.legacy.js.map +1 -0
- package/lib/legacy/{stats-helper-c5311cdc.legacy.js → stats-helper-e205d215.legacy.js} +2 -2
- package/lib/legacy/{stats-helper-c5311cdc.legacy.js.map → stats-helper-e205d215.legacy.js.map} +1 -1
- package/lib/legacy/{tools-core-26d48a74.legacy.js → tools-core-245e7016.legacy.js} +2 -2
- package/lib/legacy/tools-core-245e7016.legacy.js.map +1 -0
- package/lib/{material-viewer-28079735.nomodule.js → material-viewer-75a6946b.nomodule.js} +2 -2
- package/lib/material-viewer-75a6946b.nomodule.js.map +1 -0
- package/lib/{material-viewer-e3e02a19.js → material-viewer-b7225b36.js} +2 -2
- package/lib/material-viewer-b7225b36.js.map +1 -0
- package/lib/material-viewer-main-5d9fad42.js +2 -0
- package/lib/material-viewer-main-5d9fad42.js.map +1 -0
- package/lib/material-viewer-main.nomodule.js +1 -1
- package/lib/{planner-04496cd9.js → planner-0d5b3552.js} +2 -2
- package/lib/{planner-04496cd9.js.map → planner-0d5b3552.js.map} +1 -1
- package/lib/{planner-6bde1857.nomodule.js → planner-47be9e18.nomodule.js} +2 -2
- package/lib/{planner-6bde1857.nomodule.js.map → planner-47be9e18.nomodule.js.map} +1 -1
- package/lib/planner-main-6a885050.js +2 -0
- package/lib/planner-main-6a885050.js.map +1 -0
- package/lib/planner-main.nomodule.js +1 -1
- package/lib/{roomle-configurator-6b12a452.nomodule.js → roomle-configurator-20693b9d.nomodule.js} +2 -2
- package/lib/{roomle-configurator-6b12a452.nomodule.js.map → roomle-configurator-20693b9d.nomodule.js.map} +1 -1
- package/lib/{roomle-configurator-fee84062.js → roomle-configurator-b014274e.js} +2 -2
- package/lib/{roomle-configurator-fee84062.js.map → roomle-configurator-b014274e.js.map} +1 -1
- package/lib/{roomle-dependency-injection-04bee035.js → roomle-dependency-injection-40c9e584.js} +2 -2
- package/lib/{roomle-dependency-injection-04bee035.js.map → roomle-dependency-injection-40c9e584.js.map} +1 -1
- package/lib/{roomle-dependency-injection-f5a3c39f.nomodule.js → roomle-dependency-injection-e3763cd6.nomodule.js} +2 -2
- package/lib/{roomle-dependency-injection-f5a3c39f.nomodule.js.map → roomle-dependency-injection-e3763cd6.nomodule.js.map} +1 -1
- package/lib/{roomle-sdk-4657770f.js → roomle-sdk-b7447e02.js} +2 -2
- package/lib/roomle-sdk-b7447e02.js.map +1 -0
- package/lib/roomle-sdk.nomodule.js +1 -1
- package/lib/{script-loader-df273d31.js → script-loader-01e992f9.js} +2 -2
- package/lib/script-loader-01e992f9.js.map +1 -0
- package/lib/{script-loader-ac74eccd.nomodule.js → script-loader-fa13d1f5.nomodule.js} +2 -2
- package/lib/script-loader-fa13d1f5.nomodule.js.map +1 -0
- package/lib/{stats-helper-94a8807b.nomodule.js → stats-helper-d2c22957.nomodule.js} +2 -2
- package/lib/{stats-helper-94a8807b.nomodule.js.map → stats-helper-d2c22957.nomodule.js.map} +1 -1
- package/lib/{stats-helper-f1462964.js → stats-helper-dccf2916.js} +2 -2
- package/lib/{stats-helper-f1462964.js.map → stats-helper-dccf2916.js.map} +1 -1
- package/lib/{tools-core-e655b76b.nomodule.js → tools-core-262d0573.nomodule.js} +2 -2
- package/lib/tools-core-262d0573.nomodule.js.map +1 -0
- package/lib/{tools-core-bd3d5c0b.js → tools-core-290dd27f.js} +2 -2
- package/lib/tools-core-290dd27f.js.map +1 -0
- package/package.json +2 -2
- package/lib/camera-behaviour-b38936e8.js +0 -2
- package/lib/camera-behaviour-d54a163f.nomodule.js +0 -2
- package/lib/component-dimensioning-40501ab3.nomodule.js.map +0 -1
- package/lib/component-dimensioning-bfc2cae3.js.map +0 -1
- package/lib/component-raycast-helper-40bfa0dc.nomodule.js.map +0 -1
- package/lib/component-raycast-helper-9c21304e.js.map +0 -1
- package/lib/configurator-0d266f2d.nomodule.js.map +0 -1
- package/lib/configurator-1835defb.js.map +0 -1
- package/lib/configurator-main-08e2552a.js +0 -2
- package/lib/configurator-main-08e2552a.js.map +0 -1
- package/lib/continuous-drawing-helper-6f0ede86.nomodule.js.map +0 -1
- package/lib/continuous-drawing-helper-966ca38e.js.map +0 -1
- package/lib/default-light-setting-9a50093b.nomodule.js.map +0 -1
- package/lib/default-light-setting-dbac7805.js.map +0 -1
- package/lib/glb-viewer-camera-behaviour-7e1b1e90.nomodule.js.map +0 -1
- package/lib/glb-viewer-camera-behaviour-be7c8747.js.map +0 -1
- package/lib/glb-viewer-main-5f614eaa.js +0 -2
- package/lib/glb-viewer-main-5f614eaa.js.map +0 -1
- package/lib/imos-ix-poc-export-helper-37572034.js.map +0 -1
- package/lib/imos-ix-poc-export-helper-588a53ab.nomodule.js.map +0 -1
- package/lib/legacy/camera-behaviour-2088546c.legacy.js +0 -2
- package/lib/legacy/component-dimensioning-f04cf8d0.legacy.js.map +0 -1
- package/lib/legacy/component-raycast-helper-967cd80e.legacy.js.map +0 -1
- package/lib/legacy/configurator-6d32b749.legacy.js.map +0 -1
- package/lib/legacy/continuous-drawing-helper-6985bc30.legacy.js.map +0 -1
- package/lib/legacy/default-light-setting-e6e3c9ef.legacy.js.map +0 -1
- package/lib/legacy/glb-viewer-camera-behaviour-9a618475.legacy.js.map +0 -1
- package/lib/legacy/imos-ix-poc-export-helper-e6175ea6.legacy.js.map +0 -1
- package/lib/legacy/material-viewer-29935906.legacy.js.map +0 -1
- package/lib/legacy/script-loader-1e570149.legacy.js.map +0 -1
- package/lib/legacy/tools-core-26d48a74.legacy.js.map +0 -1
- package/lib/material-viewer-28079735.nomodule.js.map +0 -1
- package/lib/material-viewer-e3e02a19.js.map +0 -1
- package/lib/material-viewer-main-7df74726.js +0 -2
- package/lib/material-viewer-main-7df74726.js.map +0 -1
- package/lib/planner-main-624e6e13.js +0 -2
- package/lib/planner-main-624e6e13.js.map +0 -1
- package/lib/roomle-sdk-4657770f.js.map +0 -1
- package/lib/script-loader-ac74eccd.nomodule.js.map +0 -1
- package/lib/script-loader-df273d31.js.map +0 -1
- package/lib/tools-core-bd3d5c0b.js.map +0 -1
- package/lib/tools-core-e655b76b.nomodule.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roomle-configurator-4891f01a.legacy.js","sources":["../../../node_modules/three/src/math/Vector4.js","../../../node_modules/three/src/math/Plane.js","../../../node_modules/three/src/math/Frustum.js","../../../node_modules/three/src/lights/LightShadow.js","../../../node_modules/three/src/cameras/Camera.js","../../../node_modules/three/src/cameras/PerspectiveCamera.js","../../../node_modules/three/src/lights/PointLightShadow.js"],"sourcesContent":["import { clamp } from './MathUtils.js';\n\nclass Vector4 {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tVector4.prototype.isVector4 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.z;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.z = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.w;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.w = value;\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\t\tthis.w = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( w ) {\n\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tcase 3: this.w = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tcase 3: return this.w;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z, this.w );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\t\tthis.w = ( v.w !== undefined ) ? v.w : 1;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\t\tthis.w += v.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\t\tthis.w += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\t\tthis.w = a.w + b.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\t\tthis.w += v.w * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\t\tthis.w -= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\t\tthis.w -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\t\tthis.w = a.w - b.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\t\tthis.w *= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\tthis.w *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z, w = this.w;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w;\n\t\tthis.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\t\tthis.w /= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tsetAxisAngleFromQuaternion( q ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\n\n\t\t// q is assumed to be normalized\n\n\t\tthis.w = 2 * Math.acos( q.w );\n\n\t\tconst s = Math.sqrt( 1 - q.w * q.w );\n\n\t\tif ( s < 0.0001 ) {\n\n\t\t\tthis.x = 1;\n\t\t\tthis.y = 0;\n\t\t\tthis.z = 0;\n\n\t\t} else {\n\n\t\t\tthis.x = q.x / s;\n\t\t\tthis.y = q.y / s;\n\t\t\tthis.z = q.z / s;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetAxisAngleFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tlet angle, x, y, z; // variables for result\n\t\tconst epsilon = 0.01,\t\t// margin to allow for rounding errors\n\t\t\tepsilon2 = 0.1,\t\t// margin to distinguish between 0 and 180 degrees\n\n\t\t\tte = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tif ( ( Math.abs( m12 - m21 ) < epsilon ) &&\n\t\t ( Math.abs( m13 - m31 ) < epsilon ) &&\n\t\t ( Math.abs( m23 - m32 ) < epsilon ) ) {\n\n\t\t\t// singularity found\n\t\t\t// first check for identity matrix which must have +1 for all terms\n\t\t\t// in leading diagonal and zero in other terms\n\n\t\t\tif ( ( Math.abs( m12 + m21 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m13 + m31 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m23 + m32 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) {\n\n\t\t\t\t// this singularity is identity matrix so angle = 0\n\n\t\t\t\tthis.set( 1, 0, 0, 0 );\n\n\t\t\t\treturn this; // zero angle, arbitrary axis\n\n\t\t\t}\n\n\t\t\t// otherwise this singularity is angle = 180\n\n\t\t\tangle = Math.PI;\n\n\t\t\tconst xx = ( m11 + 1 ) / 2;\n\t\t\tconst yy = ( m22 + 1 ) / 2;\n\t\t\tconst zz = ( m33 + 1 ) / 2;\n\t\t\tconst xy = ( m12 + m21 ) / 4;\n\t\t\tconst xz = ( m13 + m31 ) / 4;\n\t\t\tconst yz = ( m23 + m32 ) / 4;\n\n\t\t\tif ( ( xx > yy ) && ( xx > zz ) ) {\n\n\t\t\t\t// m11 is the largest diagonal term\n\n\t\t\t\tif ( xx < epsilon ) {\n\n\t\t\t\t\tx = 0;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tx = Math.sqrt( xx );\n\t\t\t\t\ty = xy / x;\n\t\t\t\t\tz = xz / x;\n\n\t\t\t\t}\n\n\t\t\t} else if ( yy > zz ) {\n\n\t\t\t\t// m22 is the largest diagonal term\n\n\t\t\t\tif ( yy < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ty = Math.sqrt( yy );\n\t\t\t\t\tx = xy / y;\n\t\t\t\t\tz = yz / y;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// m33 is the largest diagonal term so base result on this\n\n\t\t\t\tif ( zz < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tz = Math.sqrt( zz );\n\t\t\t\t\tx = xz / z;\n\t\t\t\t\ty = yz / z;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.set( x, y, z, angle );\n\n\t\t\treturn this; // return 180 deg rotation\n\n\t\t}\n\n\t\t// as we have reached here there are no singularities so we can handle normally\n\n\t\tlet s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) +\n\t\t\t( m13 - m31 ) * ( m13 - m31 ) +\n\t\t\t( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize\n\n\t\tif ( Math.abs( s ) < 0.001 ) s = 1;\n\n\t\t// prevent divide by zero, should not happen if matrix is orthogonal and should be\n\t\t// caught by singularity test above, but I've left it in just in case\n\n\t\tthis.x = ( m32 - m23 ) / s;\n\t\tthis.y = ( m13 - m31 ) / s;\n\t\tthis.z = ( m21 - m12 ) / s;\n\t\tthis.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\t\tthis.w = e[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\t\tthis.w = Math.min( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\t\tthis.w = Math.max( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = clamp( this.x, min.x, max.x );\n\t\tthis.y = clamp( this.y, min.y, max.y );\n\t\tthis.z = clamp( this.z, min.z, max.z );\n\t\tthis.w = clamp( this.w, min.w, max.w );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = clamp( this.x, minVal, maxVal );\n\t\tthis.y = clamp( this.y, minVal, maxVal );\n\t\tthis.z = clamp( this.z, minVal, maxVal );\n\t\tthis.w = clamp( this.w, minVal, maxVal );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( clamp( length, min, max ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\t\tthis.w = Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\t\tthis.w = Math.ceil( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\t\tthis.w = Math.round( this.w );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\t\tthis.w = Math.trunc( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\t\tthis.w = - this.w;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ) + Math.abs( this.w );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\t\tthis.w += ( v.w - this.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\t\tthis.w = v1.w + ( v2.w - v1.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\t\tthis.w = array[ offset + 3 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\t\tarray[ offset + 3 ] = this.w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\t\tthis.w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\t\tthis.w = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\t\tyield this.w;\n\n\t}\n\n}\n\nexport { Vector4 };\n","import { Matrix3 } from './Matrix3.js';\nimport { Vector3 } from './Vector3.js';\n\nconst _vector1 = /*@__PURE__*/ new Vector3();\nconst _vector2 = /*@__PURE__*/ new Vector3();\nconst _normalMatrix = /*@__PURE__*/ new Matrix3();\n\nclass Plane {\n\n\tconstructor( normal = new Vector3( 1, 0, 0 ), constant = 0 ) {\n\n\t\tthis.isPlane = true;\n\n\t\t// normal is assumed to be normalized\n\n\t\tthis.normal = normal;\n\t\tthis.constant = constant;\n\n\t}\n\n\tset( normal, constant ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = constant;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponents( x, y, z, w ) {\n\n\t\tthis.normal.set( x, y, z );\n\t\tthis.constant = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromNormalAndCoplanarPoint( normal, point ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = - point.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCoplanarPoints( a, b, c ) {\n\n\t\tconst normal = _vector1.subVectors( c, b ).cross( _vector2.subVectors( a, b ) ).normalize();\n\n\t\t// Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\n\n\t\tthis.setFromNormalAndCoplanarPoint( normal, a );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( plane ) {\n\n\t\tthis.normal.copy( plane.normal );\n\t\tthis.constant = plane.constant;\n\n\t\treturn this;\n\n\t}\n\n\tnormalize() {\n\n\t\t// Note: will lead to a divide by zero if the plane is invalid.\n\n\t\tconst inverseNormalLength = 1.0 / this.normal.length();\n\t\tthis.normal.multiplyScalar( inverseNormalLength );\n\t\tthis.constant *= inverseNormalLength;\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.constant *= - 1;\n\t\tthis.normal.negate();\n\n\t\treturn this;\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.normal.dot( point ) + this.constant;\n\n\t}\n\n\tdistanceToSphere( sphere ) {\n\n\t\treturn this.distanceToPoint( sphere.center ) - sphere.radius;\n\n\t}\n\n\tprojectPoint( point, target ) {\n\n\t\treturn target.copy( point ).addScaledVector( this.normal, - this.distanceToPoint( point ) );\n\n\t}\n\n\tintersectLine( line, target ) {\n\n\t\tconst direction = line.delta( _vector1 );\n\n\t\tconst denominator = this.normal.dot( direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( this.distanceToPoint( line.start ) === 0 ) {\n\n\t\t\t\treturn target.copy( line.start );\n\n\t\t\t}\n\n\t\t\t// Unsure if this is the correct method to handle this case.\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( line.start.dot( this.normal ) + this.constant ) / denominator;\n\n\t\tif ( t < 0 || t > 1 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn target.copy( line.start ).addScaledVector( direction, t );\n\n\t}\n\n\tintersectsLine( line ) {\n\n\t\t// Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\n\n\t\tconst startSign = this.distanceToPoint( line.start );\n\t\tconst endSign = this.distanceToPoint( line.end );\n\n\t\treturn ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsPlane( this );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn sphere.intersectsPlane( this );\n\n\t}\n\n\tcoplanarPoint( target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.constant );\n\n\t}\n\n\tapplyMatrix4( matrix, optionalNormalMatrix ) {\n\n\t\tconst normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix( matrix );\n\n\t\tconst referencePoint = this.coplanarPoint( _vector1 ).applyMatrix4( matrix );\n\n\t\tconst normal = this.normal.applyMatrix3( normalMatrix ).normalize();\n\n\t\tthis.constant = - referencePoint.dot( normal );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.constant -= offset.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tequals( plane ) {\n\n\t\treturn plane.normal.equals( this.normal ) && ( plane.constant === this.constant );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nexport { Plane };\n","import { WebGLCoordinateSystem, WebGPUCoordinateSystem } from '../constants.js';\nimport { Vector3 } from './Vector3.js';\nimport { Sphere } from './Sphere.js';\nimport { Plane } from './Plane.js';\n\nconst _sphere = /*@__PURE__*/ new Sphere();\nconst _vector = /*@__PURE__*/ new Vector3();\n\nclass Frustum {\n\n\tconstructor( p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane() ) {\n\n\t\tthis.planes = [ p0, p1, p2, p3, p4, p5 ];\n\n\t}\n\n\tset( p0, p1, p2, p3, p4, p5 ) {\n\n\t\tconst planes = this.planes;\n\n\t\tplanes[ 0 ].copy( p0 );\n\t\tplanes[ 1 ].copy( p1 );\n\t\tplanes[ 2 ].copy( p2 );\n\t\tplanes[ 3 ].copy( p3 );\n\t\tplanes[ 4 ].copy( p4 );\n\t\tplanes[ 5 ].copy( p5 );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( frustum ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tplanes[ i ].copy( frustum.planes[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromProjectionMatrix( m, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst planes = this.planes;\n\t\tconst me = m.elements;\n\t\tconst me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ];\n\t\tconst me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ];\n\t\tconst me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ];\n\t\tconst me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ];\n\n\t\tplanes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize();\n\t\tplanes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize();\n\t\tplanes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize();\n\t\tplanes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize();\n\t\tplanes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize();\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize();\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me2, me6, me10, me14 ).normalize();\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tintersectsObject( object ) {\n\n\t\tif ( object.boundingSphere !== undefined ) {\n\n\t\t\tif ( object.boundingSphere === null ) object.computeBoundingSphere();\n\n\t\t\t_sphere.copy( object.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t} else {\n\n\t\t\tconst geometry = object.geometry;\n\n\t\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t\t_sphere.copy( geometry.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t}\n\n\t\treturn this.intersectsSphere( _sphere );\n\n\t}\n\n\tintersectsSprite( sprite ) {\n\n\t\t_sphere.center.set( 0, 0, 0 );\n\t\t_sphere.radius = 0.7071067811865476;\n\t\t_sphere.applyMatrix4( sprite.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst planes = this.planes;\n\t\tconst center = sphere.center;\n\t\tconst negRadius = - sphere.radius;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst distance = planes[ i ].distanceToPoint( center );\n\n\t\t\tif ( distance < negRadius ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst plane = planes[ i ];\n\n\t\t\t// corner at max distance\n\n\t\t\t_vector.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n\t\t\t_vector.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n\t\t\t_vector.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n\t\t\tif ( plane.distanceToPoint( _vector ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tif ( planes[ i ].distanceToPoint( point ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n\nexport { Frustum };\n","import { Matrix4 } from '../math/Matrix4.js';\nimport { Vector2 } from '../math/Vector2.js';\nimport { Vector3 } from '../math/Vector3.js';\nimport { Vector4 } from '../math/Vector4.js';\nimport { Frustum } from '../math/Frustum.js';\n\nconst _projScreenMatrix = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld = /*@__PURE__*/ new Vector3();\nconst _lookTarget = /*@__PURE__*/ new Vector3();\n\nclass LightShadow {\n\n\tconstructor( camera ) {\n\n\t\tthis.camera = camera;\n\n\t\tthis.intensity = 1;\n\n\t\tthis.bias = 0;\n\t\tthis.normalBias = 0;\n\t\tthis.radius = 1;\n\t\tthis.blurSamples = 8;\n\n\t\tthis.mapSize = new Vector2( 512, 512 );\n\n\t\tthis.map = null;\n\t\tthis.mapPass = null;\n\t\tthis.matrix = new Matrix4();\n\n\t\tthis.autoUpdate = true;\n\t\tthis.needsUpdate = false;\n\n\t\tthis._frustum = new Frustum();\n\t\tthis._frameExtents = new Vector2( 1, 1 );\n\n\t\tthis._viewportCount = 1;\n\n\t\tthis._viewports = [\n\n\t\t\tnew Vector4( 0, 0, 1, 1 )\n\n\t\t];\n\n\t}\n\n\tgetViewportCount() {\n\n\t\treturn this._viewportCount;\n\n\t}\n\n\tgetFrustum() {\n\n\t\treturn this._frustum;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst shadowCamera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\t_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );\n\t\tshadowCamera.position.copy( _lightPositionWorld );\n\n\t\t_lookTarget.setFromMatrixPosition( light.target.matrixWorld );\n\t\tshadowCamera.lookAt( _lookTarget );\n\t\tshadowCamera.updateMatrixWorld();\n\n\t\t_projScreenMatrix.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t\tshadowMatrix.set(\n\t\t\t0.5, 0.0, 0.0, 0.5,\n\t\t\t0.0, 0.5, 0.0, 0.5,\n\t\t\t0.0, 0.0, 0.5, 0.5,\n\t\t\t0.0, 0.0, 0.0, 1.0\n\t\t);\n\n\t\tshadowMatrix.multiply( _projScreenMatrix );\n\n\t}\n\n\tgetViewport( viewportIndex ) {\n\n\t\treturn this._viewports[ viewportIndex ];\n\n\t}\n\n\tgetFrameExtents() {\n\n\t\treturn this._frameExtents;\n\n\t}\n\n\tdispose() {\n\n\t\tif ( this.map ) {\n\n\t\t\tthis.map.dispose();\n\n\t\t}\n\n\t\tif ( this.mapPass ) {\n\n\t\t\tthis.mapPass.dispose();\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.camera = source.camera.clone();\n\n\t\tthis.intensity = source.intensity;\n\n\t\tthis.bias = source.bias;\n\t\tthis.radius = source.radius;\n\n\t\tthis.mapSize.copy( source.mapSize );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst object = {};\n\n\t\tif ( this.intensity !== 1 ) object.intensity = this.intensity;\n\t\tif ( this.bias !== 0 ) object.bias = this.bias;\n\t\tif ( this.normalBias !== 0 ) object.normalBias = this.normalBias;\n\t\tif ( this.radius !== 1 ) object.radius = this.radius;\n\t\tif ( this.mapSize.x !== 512 || this.mapSize.y !== 512 ) object.mapSize = this.mapSize.toArray();\n\n\t\tobject.camera = this.camera.toJSON( false ).object;\n\t\tdelete object.camera.matrix;\n\n\t\treturn object;\n\n\t}\n\n}\n\nexport { LightShadow };\n","import { WebGLCoordinateSystem } from '../constants.js';\nimport { Matrix4 } from '../math/Matrix4.js';\nimport { Object3D } from '../core/Object3D.js';\n\nclass Camera extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isCamera = true;\n\n\t\tthis.type = 'Camera';\n\n\t\tthis.matrixWorldInverse = new Matrix4();\n\n\t\tthis.projectionMatrix = new Matrix4();\n\t\tthis.projectionMatrixInverse = new Matrix4();\n\n\t\tthis.coordinateSystem = WebGLCoordinateSystem;\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.matrixWorldInverse.copy( source.matrixWorldInverse );\n\n\t\tthis.projectionMatrix.copy( source.projectionMatrix );\n\t\tthis.projectionMatrixInverse.copy( source.projectionMatrixInverse );\n\n\t\tthis.coordinateSystem = source.coordinateSystem;\n\n\t\treturn this;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\treturn super.getWorldDirection( target ).negate();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tsuper.updateWorldMatrix( updateParents, updateChildren );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nexport { Camera };\n","import { Camera } from './Camera.js';\nimport { RAD2DEG, DEG2RAD } from '../math/MathUtils.js';\nimport { Vector2 } from '../math/Vector2.js';\nimport { Vector3 } from '../math/Vector3.js';\n\nconst _v3 = /*@__PURE__*/ new Vector3();\nconst _minTarget = /*@__PURE__*/ new Vector2();\nconst _maxTarget = /*@__PURE__*/ new Vector2();\n\n\nclass PerspectiveCamera extends Camera {\n\n\tconstructor( fov = 50, aspect = 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.isPerspectiveCamera = true;\n\n\t\tthis.type = 'PerspectiveCamera';\n\n\t\tthis.fov = fov;\n\t\tthis.zoom = 1;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.focus = 10;\n\n\t\tthis.aspect = aspect;\n\t\tthis.view = null;\n\n\t\tthis.filmGauge = 35;\t// width of the film (default in millimeters)\n\t\tthis.filmOffset = 0;\t// horizontal film offset (same unit as gauge)\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.fov = source.fov;\n\t\tthis.zoom = source.zoom;\n\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\t\tthis.focus = source.focus;\n\n\t\tthis.aspect = source.aspect;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\tthis.filmGauge = source.filmGauge;\n\t\tthis.filmOffset = source.filmOffset;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the FOV by focal length in respect to the current .filmGauge.\n\t *\n\t * The default film gauge is 35, so that the focal length can be specified for\n\t * a 35mm (full frame) camera.\n\t *\n\t * @param {number} focalLength - Values for focal length and film gauge must have the same unit.\n\t */\n\tsetFocalLength( focalLength ) {\n\n\t\t/** see {@link http://www.bobatkins.com/photography/technical/field_of_view.html} */\n\t\tconst vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n\n\t\tthis.fov = RAD2DEG * 2 * Math.atan( vExtentSlope );\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\t/**\n\t * Calculates the focal length from the current .fov and .filmGauge.\n\t *\n\t * @returns {number}\n\t */\n\tgetFocalLength() {\n\n\t\tconst vExtentSlope = Math.tan( DEG2RAD * 0.5 * this.fov );\n\n\t\treturn 0.5 * this.getFilmHeight() / vExtentSlope;\n\n\t}\n\n\tgetEffectiveFOV() {\n\n\t\treturn RAD2DEG * 2 * Math.atan(\n\t\t\tMath.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom );\n\n\t}\n\n\tgetFilmWidth() {\n\n\t\t// film not completely covered in portrait format (aspect < 1)\n\t\treturn this.filmGauge * Math.min( this.aspect, 1 );\n\n\t}\n\n\tgetFilmHeight() {\n\n\t\t// film not completely covered in landscape format (aspect > 1)\n\t\treturn this.filmGauge / Math.max( this.aspect, 1 );\n\n\t}\n\n\t/**\n\t * Computes the 2D bounds of the camera's viewable rectangle at a given distance along the viewing direction.\n\t * Sets minTarget and maxTarget to the coordinates of the lower-left and upper-right corners of the view rectangle.\n\t *\n\t * @param {number} distance\n\t * @param {Vector2} minTarget\n\t * @param {Vector2} maxTarget\n\t */\n\tgetViewBounds( distance, minTarget, maxTarget ) {\n\n\t\t_v3.set( - 1, - 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tminTarget.set( _v3.x, _v3.y ).multiplyScalar( - distance / _v3.z );\n\n\t\t_v3.set( 1, 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tmaxTarget.set( _v3.x, _v3.y ).multiplyScalar( - distance / _v3.z );\n\n\t}\n\n\t/**\n\t * Computes the width and height of the camera's viewable rectangle at a given distance along the viewing direction.\n\t *\n\t * @param {number} distance\n\t * @param {Vector2} target - Vector2 target used to store result where x is width and y is height.\n\t * @returns {Vector2}\n\t */\n\tgetViewSize( distance, target ) {\n\n\t\tthis.getViewBounds( distance, _minTarget, _maxTarget );\n\n\t\treturn target.subVectors( _maxTarget, _minTarget );\n\n\t}\n\n\t/**\n\t * Sets an offset in a larger frustum. This is useful for multi-window or\n\t * multi-monitor/multi-machine setups.\n\t *\n\t * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n\t * the monitors are in grid like this\n\t *\n\t * +---+---+---+\n\t * | A | B | C |\n\t * +---+---+---+\n\t * | D | E | F |\n\t * +---+---+---+\n\t *\n\t * then for each monitor you would call it like this\n\t *\n\t * const w = 1920;\n\t * const h = 1080;\n\t * const fullWidth = w * 3;\n\t * const fullHeight = h * 2;\n\t *\n\t * --A--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n\t * --B--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n\t * --C--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n\t * --D--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n\t * --E--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n\t * --F--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n\t *\n\t * Note there is no reason monitors have to be the same size or in a grid.\n\t *\n\t * @param {number} fullWidth\n\t * @param {number} fullHeight\n\t * @param {number} x\n\t * @param {number} y\n\t * @param {number} width\n\t * @param {number} height\n\t */\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tthis.aspect = fullWidth / fullHeight;\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst near = this.near;\n\t\tlet top = near * Math.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom;\n\t\tlet height = 2 * top;\n\t\tlet width = this.aspect * height;\n\t\tlet left = - 0.5 * width;\n\t\tconst view = this.view;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst fullWidth = view.fullWidth,\n\t\t\t\tfullHeight = view.fullHeight;\n\n\t\t\tleft += view.offsetX * width / fullWidth;\n\t\t\ttop -= view.offsetY * height / fullHeight;\n\t\t\twidth *= view.width / fullWidth;\n\t\t\theight *= view.height / fullHeight;\n\n\t\t}\n\n\t\tconst skew = this.filmOffset;\n\t\tif ( skew !== 0 ) left += near * skew / this.getFilmWidth();\n\n\t\tthis.projectionMatrix.makePerspective( left, left + width, top, top - height, near, this.far, this.coordinateSystem );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.fov = this.fov;\n\t\tdata.object.zoom = this.zoom;\n\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\t\tdata.object.focus = this.focus;\n\n\t\tdata.object.aspect = this.aspect;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\tdata.object.filmGauge = this.filmGauge;\n\t\tdata.object.filmOffset = this.filmOffset;\n\n\t\treturn data;\n\n\t}\n\n}\n\nexport { PerspectiveCamera };\n","import { LightShadow } from './LightShadow.js';\nimport { PerspectiveCamera } from '../cameras/PerspectiveCamera.js';\nimport { Matrix4 } from '../math/Matrix4.js';\nimport { Vector2 } from '../math/Vector2.js';\nimport { Vector3 } from '../math/Vector3.js';\nimport { Vector4 } from '../math/Vector4.js';\n\nconst _projScreenMatrix = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld = /*@__PURE__*/ new Vector3();\nconst _lookTarget = /*@__PURE__*/ new Vector3();\n\nclass PointLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 90, 1, 0.5, 500 ) );\n\n\t\tthis.isPointLightShadow = true;\n\n\t\tthis._frameExtents = new Vector2( 4, 2 );\n\n\t\tthis._viewportCount = 6;\n\n\t\tthis._viewports = [\n\t\t\t// These viewports map a cube-map onto a 2D texture with the\n\t\t\t// following orientation:\n\t\t\t//\n\t\t\t// xzXZ\n\t\t\t// y Y\n\t\t\t//\n\t\t\t// X - Positive x direction\n\t\t\t// x - Negative x direction\n\t\t\t// Y - Positive y direction\n\t\t\t// y - Negative y direction\n\t\t\t// Z - Positive z direction\n\t\t\t// z - Negative z direction\n\n\t\t\t// positive X\n\t\t\tnew Vector4( 2, 1, 1, 1 ),\n\t\t\t// negative X\n\t\t\tnew Vector4( 0, 1, 1, 1 ),\n\t\t\t// positive Z\n\t\t\tnew Vector4( 3, 1, 1, 1 ),\n\t\t\t// negative Z\n\t\t\tnew Vector4( 1, 1, 1, 1 ),\n\t\t\t// positive Y\n\t\t\tnew Vector4( 3, 0, 1, 1 ),\n\t\t\t// negative Y\n\t\t\tnew Vector4( 1, 0, 1, 1 )\n\t\t];\n\n\t\tthis._cubeDirections = [\n\t\t\tnew Vector3( 1, 0, 0 ), new Vector3( - 1, 0, 0 ), new Vector3( 0, 0, 1 ),\n\t\t\tnew Vector3( 0, 0, - 1 ), new Vector3( 0, 1, 0 ), new Vector3( 0, - 1, 0 )\n\t\t];\n\n\t\tthis._cubeUps = [\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ),\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 0, 1 ),\tnew Vector3( 0, 0, - 1 )\n\t\t];\n\n\t}\n\n\tupdateMatrices( light, viewportIndex = 0 ) {\n\n\t\tconst camera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( far !== camera.far ) {\n\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\t_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );\n\t\tcamera.position.copy( _lightPositionWorld );\n\n\t\t_lookTarget.copy( camera.position );\n\t\t_lookTarget.add( this._cubeDirections[ viewportIndex ] );\n\t\tcamera.up.copy( this._cubeUps[ viewportIndex ] );\n\t\tcamera.lookAt( _lookTarget );\n\t\tcamera.updateMatrixWorld();\n\n\t\tshadowMatrix.makeTranslation( - _lightPositionWorld.x, - _lightPositionWorld.y, - _lightPositionWorld.z );\n\n\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t}\n\n}\n\nexport { PointLightShadow };\n"],"names":["Vector4","_createClass","x","arguments","length","undefined","y","z","w","_classCallCheck","prototype","isVector4","this","key","get","set","value","scalar","index","Error","constructor","v","s","a","b","m","e","elements","multiplyScalar","q","Math","acos","sqrt","angle","te","m11","m12","m13","m21","m22","m23","m31","m32","m33","abs","PI","xx","yy","zz","xy","xz","yz","min","max","clamp","minVal","maxVal","divideScalar","floor","ceil","round","trunc","normalize","alpha","v1","v2","array","offset","attribute","getX","getY","getZ","getW","random","Symbol","iterator","_regeneratorRuntime","mark","wrap","_context","prev","next","stop","_vector1","Vector3","_vector2","_normalMatrix","Matrix3","Plane","normal","constant","isPlane","copy","point","dot","c","subVectors","cross","setFromNormalAndCoplanarPoint","plane","inverseNormalLength","negate","sphere","distanceToPoint","center","radius","target","addScaledVector","line","direction","delta","denominator","start","t","startSign","endSign","end","box","intersectsPlane","matrix","optionalNormalMatrix","normalMatrix","getNormalMatrix","referencePoint","coplanarPoint","applyMatrix4","applyMatrix3","equals","_sphere","Sphere","_vector","Frustum","p0","p1","p2","p3","p4","p5","planes","frustum","i","coordinateSystem","WebGLCoordinateSystem","me","me0","me1","me2","me3","me4","me5","me6","me7","me8","me9","me10","me11","me12","me13","me14","me15","setComponents","WebGPUCoordinateSystem","object","boundingSphere","computeBoundingSphere","matrixWorld","geometry","intersectsSphere","sprite","negRadius","_projScreenMatrix","Matrix4","_lightPositionWorld","_lookTarget","LightShadow","camera","intensity","bias","normalBias","blurSamples","mapSize","Vector2","map","mapPass","autoUpdate","needsUpdate","_frustum","_frameExtents","_viewportCount","_viewports","light","shadowCamera","shadowMatrix","setFromMatrixPosition","position","lookAt","updateMatrixWorld","multiplyMatrices","projectionMatrix","matrixWorldInverse","setFromProjectionMatrix","multiply","viewportIndex","dispose","source","clone","toArray","toJSON","Camera","_Object3D","_this","_callSuper","isCamera","type","projectionMatrixInverse","_inherits","recursive","_superPropGet","force","invert","updateParents","updateChildren","Object3D","_v3","_minTarget","_maxTarget","PerspectiveCamera","_Camera","fov","aspect","near","far","isPerspectiveCamera","zoom","focus","view","filmGauge","filmOffset","updateProjectionMatrix","Object","assign","focalLength","vExtentSlope","getFilmHeight","RAD2DEG","atan","tan","DEG2RAD","distance","minTarget","maxTarget","getViewBounds","fullWidth","fullHeight","width","height","enabled","offsetX","offsetY","top","left","skew","getFilmWidth","makePerspective","meta","data","PointLightShadow","_LightShadow","isPointLightShadow","_cubeDirections","_cubeUps","add","up","makeTranslation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"roomle-configurator-88689bbd.legacy.js","sources":["../../../node_modules/three/src/math/Vector4.js","../../../node_modules/three/src/math/Plane.js","../../../node_modules/three/src/math/Frustum.js","../../../node_modules/three/src/lights/LightShadow.js","../../../node_modules/three/src/cameras/Camera.js","../../../node_modules/three/src/cameras/PerspectiveCamera.js","../../../node_modules/three/src/lights/PointLightShadow.js"],"sourcesContent":["import { clamp } from './MathUtils.js';\n\nclass Vector4 {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tVector4.prototype.isVector4 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.z;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.z = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.w;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.w = value;\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\t\tthis.w = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( w ) {\n\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tcase 3: this.w = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tcase 3: return this.w;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z, this.w );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\t\tthis.w = ( v.w !== undefined ) ? v.w : 1;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\t\tthis.w += v.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\t\tthis.w += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\t\tthis.w = a.w + b.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\t\tthis.w += v.w * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\t\tthis.w -= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\t\tthis.w -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\t\tthis.w = a.w - b.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\t\tthis.w *= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\tthis.w *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z, w = this.w;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w;\n\t\tthis.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\t\tthis.w /= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tsetAxisAngleFromQuaternion( q ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\n\n\t\t// q is assumed to be normalized\n\n\t\tthis.w = 2 * Math.acos( q.w );\n\n\t\tconst s = Math.sqrt( 1 - q.w * q.w );\n\n\t\tif ( s < 0.0001 ) {\n\n\t\t\tthis.x = 1;\n\t\t\tthis.y = 0;\n\t\t\tthis.z = 0;\n\n\t\t} else {\n\n\t\t\tthis.x = q.x / s;\n\t\t\tthis.y = q.y / s;\n\t\t\tthis.z = q.z / s;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetAxisAngleFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tlet angle, x, y, z; // variables for result\n\t\tconst epsilon = 0.01,\t\t// margin to allow for rounding errors\n\t\t\tepsilon2 = 0.1,\t\t// margin to distinguish between 0 and 180 degrees\n\n\t\t\tte = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tif ( ( Math.abs( m12 - m21 ) < epsilon ) &&\n\t\t ( Math.abs( m13 - m31 ) < epsilon ) &&\n\t\t ( Math.abs( m23 - m32 ) < epsilon ) ) {\n\n\t\t\t// singularity found\n\t\t\t// first check for identity matrix which must have +1 for all terms\n\t\t\t// in leading diagonal and zero in other terms\n\n\t\t\tif ( ( Math.abs( m12 + m21 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m13 + m31 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m23 + m32 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) {\n\n\t\t\t\t// this singularity is identity matrix so angle = 0\n\n\t\t\t\tthis.set( 1, 0, 0, 0 );\n\n\t\t\t\treturn this; // zero angle, arbitrary axis\n\n\t\t\t}\n\n\t\t\t// otherwise this singularity is angle = 180\n\n\t\t\tangle = Math.PI;\n\n\t\t\tconst xx = ( m11 + 1 ) / 2;\n\t\t\tconst yy = ( m22 + 1 ) / 2;\n\t\t\tconst zz = ( m33 + 1 ) / 2;\n\t\t\tconst xy = ( m12 + m21 ) / 4;\n\t\t\tconst xz = ( m13 + m31 ) / 4;\n\t\t\tconst yz = ( m23 + m32 ) / 4;\n\n\t\t\tif ( ( xx > yy ) && ( xx > zz ) ) {\n\n\t\t\t\t// m11 is the largest diagonal term\n\n\t\t\t\tif ( xx < epsilon ) {\n\n\t\t\t\t\tx = 0;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tx = Math.sqrt( xx );\n\t\t\t\t\ty = xy / x;\n\t\t\t\t\tz = xz / x;\n\n\t\t\t\t}\n\n\t\t\t} else if ( yy > zz ) {\n\n\t\t\t\t// m22 is the largest diagonal term\n\n\t\t\t\tif ( yy < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ty = Math.sqrt( yy );\n\t\t\t\t\tx = xy / y;\n\t\t\t\t\tz = yz / y;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// m33 is the largest diagonal term so base result on this\n\n\t\t\t\tif ( zz < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tz = Math.sqrt( zz );\n\t\t\t\t\tx = xz / z;\n\t\t\t\t\ty = yz / z;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.set( x, y, z, angle );\n\n\t\t\treturn this; // return 180 deg rotation\n\n\t\t}\n\n\t\t// as we have reached here there are no singularities so we can handle normally\n\n\t\tlet s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) +\n\t\t\t( m13 - m31 ) * ( m13 - m31 ) +\n\t\t\t( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize\n\n\t\tif ( Math.abs( s ) < 0.001 ) s = 1;\n\n\t\t// prevent divide by zero, should not happen if matrix is orthogonal and should be\n\t\t// caught by singularity test above, but I've left it in just in case\n\n\t\tthis.x = ( m32 - m23 ) / s;\n\t\tthis.y = ( m13 - m31 ) / s;\n\t\tthis.z = ( m21 - m12 ) / s;\n\t\tthis.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\t\tthis.w = e[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\t\tthis.w = Math.min( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\t\tthis.w = Math.max( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = clamp( this.x, min.x, max.x );\n\t\tthis.y = clamp( this.y, min.y, max.y );\n\t\tthis.z = clamp( this.z, min.z, max.z );\n\t\tthis.w = clamp( this.w, min.w, max.w );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = clamp( this.x, minVal, maxVal );\n\t\tthis.y = clamp( this.y, minVal, maxVal );\n\t\tthis.z = clamp( this.z, minVal, maxVal );\n\t\tthis.w = clamp( this.w, minVal, maxVal );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( clamp( length, min, max ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\t\tthis.w = Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\t\tthis.w = Math.ceil( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\t\tthis.w = Math.round( this.w );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\t\tthis.w = Math.trunc( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\t\tthis.w = - this.w;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ) + Math.abs( this.w );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\t\tthis.w += ( v.w - this.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\t\tthis.w = v1.w + ( v2.w - v1.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\t\tthis.w = array[ offset + 3 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\t\tarray[ offset + 3 ] = this.w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\t\tthis.w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\t\tthis.w = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\t\tyield this.w;\n\n\t}\n\n}\n\nexport { Vector4 };\n","import { Matrix3 } from './Matrix3.js';\nimport { Vector3 } from './Vector3.js';\n\nconst _vector1 = /*@__PURE__*/ new Vector3();\nconst _vector2 = /*@__PURE__*/ new Vector3();\nconst _normalMatrix = /*@__PURE__*/ new Matrix3();\n\nclass Plane {\n\n\tconstructor( normal = new Vector3( 1, 0, 0 ), constant = 0 ) {\n\n\t\tthis.isPlane = true;\n\n\t\t// normal is assumed to be normalized\n\n\t\tthis.normal = normal;\n\t\tthis.constant = constant;\n\n\t}\n\n\tset( normal, constant ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = constant;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponents( x, y, z, w ) {\n\n\t\tthis.normal.set( x, y, z );\n\t\tthis.constant = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromNormalAndCoplanarPoint( normal, point ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = - point.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCoplanarPoints( a, b, c ) {\n\n\t\tconst normal = _vector1.subVectors( c, b ).cross( _vector2.subVectors( a, b ) ).normalize();\n\n\t\t// Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\n\n\t\tthis.setFromNormalAndCoplanarPoint( normal, a );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( plane ) {\n\n\t\tthis.normal.copy( plane.normal );\n\t\tthis.constant = plane.constant;\n\n\t\treturn this;\n\n\t}\n\n\tnormalize() {\n\n\t\t// Note: will lead to a divide by zero if the plane is invalid.\n\n\t\tconst inverseNormalLength = 1.0 / this.normal.length();\n\t\tthis.normal.multiplyScalar( inverseNormalLength );\n\t\tthis.constant *= inverseNormalLength;\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.constant *= - 1;\n\t\tthis.normal.negate();\n\n\t\treturn this;\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.normal.dot( point ) + this.constant;\n\n\t}\n\n\tdistanceToSphere( sphere ) {\n\n\t\treturn this.distanceToPoint( sphere.center ) - sphere.radius;\n\n\t}\n\n\tprojectPoint( point, target ) {\n\n\t\treturn target.copy( point ).addScaledVector( this.normal, - this.distanceToPoint( point ) );\n\n\t}\n\n\tintersectLine( line, target ) {\n\n\t\tconst direction = line.delta( _vector1 );\n\n\t\tconst denominator = this.normal.dot( direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( this.distanceToPoint( line.start ) === 0 ) {\n\n\t\t\t\treturn target.copy( line.start );\n\n\t\t\t}\n\n\t\t\t// Unsure if this is the correct method to handle this case.\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( line.start.dot( this.normal ) + this.constant ) / denominator;\n\n\t\tif ( t < 0 || t > 1 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn target.copy( line.start ).addScaledVector( direction, t );\n\n\t}\n\n\tintersectsLine( line ) {\n\n\t\t// Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\n\n\t\tconst startSign = this.distanceToPoint( line.start );\n\t\tconst endSign = this.distanceToPoint( line.end );\n\n\t\treturn ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsPlane( this );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn sphere.intersectsPlane( this );\n\n\t}\n\n\tcoplanarPoint( target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.constant );\n\n\t}\n\n\tapplyMatrix4( matrix, optionalNormalMatrix ) {\n\n\t\tconst normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix( matrix );\n\n\t\tconst referencePoint = this.coplanarPoint( _vector1 ).applyMatrix4( matrix );\n\n\t\tconst normal = this.normal.applyMatrix3( normalMatrix ).normalize();\n\n\t\tthis.constant = - referencePoint.dot( normal );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.constant -= offset.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tequals( plane ) {\n\n\t\treturn plane.normal.equals( this.normal ) && ( plane.constant === this.constant );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nexport { Plane };\n","import { WebGLCoordinateSystem, WebGPUCoordinateSystem } from '../constants.js';\nimport { Vector3 } from './Vector3.js';\nimport { Sphere } from './Sphere.js';\nimport { Plane } from './Plane.js';\n\nconst _sphere = /*@__PURE__*/ new Sphere();\nconst _vector = /*@__PURE__*/ new Vector3();\n\nclass Frustum {\n\n\tconstructor( p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane() ) {\n\n\t\tthis.planes = [ p0, p1, p2, p3, p4, p5 ];\n\n\t}\n\n\tset( p0, p1, p2, p3, p4, p5 ) {\n\n\t\tconst planes = this.planes;\n\n\t\tplanes[ 0 ].copy( p0 );\n\t\tplanes[ 1 ].copy( p1 );\n\t\tplanes[ 2 ].copy( p2 );\n\t\tplanes[ 3 ].copy( p3 );\n\t\tplanes[ 4 ].copy( p4 );\n\t\tplanes[ 5 ].copy( p5 );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( frustum ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tplanes[ i ].copy( frustum.planes[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromProjectionMatrix( m, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst planes = this.planes;\n\t\tconst me = m.elements;\n\t\tconst me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ];\n\t\tconst me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ];\n\t\tconst me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ];\n\t\tconst me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ];\n\n\t\tplanes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize();\n\t\tplanes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize();\n\t\tplanes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize();\n\t\tplanes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize();\n\t\tplanes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize();\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize();\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me2, me6, me10, me14 ).normalize();\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tintersectsObject( object ) {\n\n\t\tif ( object.boundingSphere !== undefined ) {\n\n\t\t\tif ( object.boundingSphere === null ) object.computeBoundingSphere();\n\n\t\t\t_sphere.copy( object.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t} else {\n\n\t\t\tconst geometry = object.geometry;\n\n\t\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t\t_sphere.copy( geometry.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t}\n\n\t\treturn this.intersectsSphere( _sphere );\n\n\t}\n\n\tintersectsSprite( sprite ) {\n\n\t\t_sphere.center.set( 0, 0, 0 );\n\t\t_sphere.radius = 0.7071067811865476;\n\t\t_sphere.applyMatrix4( sprite.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst planes = this.planes;\n\t\tconst center = sphere.center;\n\t\tconst negRadius = - sphere.radius;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst distance = planes[ i ].distanceToPoint( center );\n\n\t\t\tif ( distance < negRadius ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst plane = planes[ i ];\n\n\t\t\t// corner at max distance\n\n\t\t\t_vector.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n\t\t\t_vector.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n\t\t\t_vector.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n\t\t\tif ( plane.distanceToPoint( _vector ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tif ( planes[ i ].distanceToPoint( point ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n\nexport { Frustum };\n","import { Matrix4 } from '../math/Matrix4.js';\nimport { Vector2 } from '../math/Vector2.js';\nimport { Vector3 } from '../math/Vector3.js';\nimport { Vector4 } from '../math/Vector4.js';\nimport { Frustum } from '../math/Frustum.js';\n\nconst _projScreenMatrix = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld = /*@__PURE__*/ new Vector3();\nconst _lookTarget = /*@__PURE__*/ new Vector3();\n\nclass LightShadow {\n\n\tconstructor( camera ) {\n\n\t\tthis.camera = camera;\n\n\t\tthis.intensity = 1;\n\n\t\tthis.bias = 0;\n\t\tthis.normalBias = 0;\n\t\tthis.radius = 1;\n\t\tthis.blurSamples = 8;\n\n\t\tthis.mapSize = new Vector2( 512, 512 );\n\n\t\tthis.map = null;\n\t\tthis.mapPass = null;\n\t\tthis.matrix = new Matrix4();\n\n\t\tthis.autoUpdate = true;\n\t\tthis.needsUpdate = false;\n\n\t\tthis._frustum = new Frustum();\n\t\tthis._frameExtents = new Vector2( 1, 1 );\n\n\t\tthis._viewportCount = 1;\n\n\t\tthis._viewports = [\n\n\t\t\tnew Vector4( 0, 0, 1, 1 )\n\n\t\t];\n\n\t}\n\n\tgetViewportCount() {\n\n\t\treturn this._viewportCount;\n\n\t}\n\n\tgetFrustum() {\n\n\t\treturn this._frustum;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst shadowCamera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\t_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );\n\t\tshadowCamera.position.copy( _lightPositionWorld );\n\n\t\t_lookTarget.setFromMatrixPosition( light.target.matrixWorld );\n\t\tshadowCamera.lookAt( _lookTarget );\n\t\tshadowCamera.updateMatrixWorld();\n\n\t\t_projScreenMatrix.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t\tshadowMatrix.set(\n\t\t\t0.5, 0.0, 0.0, 0.5,\n\t\t\t0.0, 0.5, 0.0, 0.5,\n\t\t\t0.0, 0.0, 0.5, 0.5,\n\t\t\t0.0, 0.0, 0.0, 1.0\n\t\t);\n\n\t\tshadowMatrix.multiply( _projScreenMatrix );\n\n\t}\n\n\tgetViewport( viewportIndex ) {\n\n\t\treturn this._viewports[ viewportIndex ];\n\n\t}\n\n\tgetFrameExtents() {\n\n\t\treturn this._frameExtents;\n\n\t}\n\n\tdispose() {\n\n\t\tif ( this.map ) {\n\n\t\t\tthis.map.dispose();\n\n\t\t}\n\n\t\tif ( this.mapPass ) {\n\n\t\t\tthis.mapPass.dispose();\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.camera = source.camera.clone();\n\n\t\tthis.intensity = source.intensity;\n\n\t\tthis.bias = source.bias;\n\t\tthis.radius = source.radius;\n\n\t\tthis.mapSize.copy( source.mapSize );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst object = {};\n\n\t\tif ( this.intensity !== 1 ) object.intensity = this.intensity;\n\t\tif ( this.bias !== 0 ) object.bias = this.bias;\n\t\tif ( this.normalBias !== 0 ) object.normalBias = this.normalBias;\n\t\tif ( this.radius !== 1 ) object.radius = this.radius;\n\t\tif ( this.mapSize.x !== 512 || this.mapSize.y !== 512 ) object.mapSize = this.mapSize.toArray();\n\n\t\tobject.camera = this.camera.toJSON( false ).object;\n\t\tdelete object.camera.matrix;\n\n\t\treturn object;\n\n\t}\n\n}\n\nexport { LightShadow };\n","import { WebGLCoordinateSystem } from '../constants.js';\nimport { Matrix4 } from '../math/Matrix4.js';\nimport { Object3D } from '../core/Object3D.js';\n\nclass Camera extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isCamera = true;\n\n\t\tthis.type = 'Camera';\n\n\t\tthis.matrixWorldInverse = new Matrix4();\n\n\t\tthis.projectionMatrix = new Matrix4();\n\t\tthis.projectionMatrixInverse = new Matrix4();\n\n\t\tthis.coordinateSystem = WebGLCoordinateSystem;\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.matrixWorldInverse.copy( source.matrixWorldInverse );\n\n\t\tthis.projectionMatrix.copy( source.projectionMatrix );\n\t\tthis.projectionMatrixInverse.copy( source.projectionMatrixInverse );\n\n\t\tthis.coordinateSystem = source.coordinateSystem;\n\n\t\treturn this;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\treturn super.getWorldDirection( target ).negate();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tsuper.updateWorldMatrix( updateParents, updateChildren );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nexport { Camera };\n","import { Camera } from './Camera.js';\nimport { RAD2DEG, DEG2RAD } from '../math/MathUtils.js';\nimport { Vector2 } from '../math/Vector2.js';\nimport { Vector3 } from '../math/Vector3.js';\n\nconst _v3 = /*@__PURE__*/ new Vector3();\nconst _minTarget = /*@__PURE__*/ new Vector2();\nconst _maxTarget = /*@__PURE__*/ new Vector2();\n\n\nclass PerspectiveCamera extends Camera {\n\n\tconstructor( fov = 50, aspect = 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.isPerspectiveCamera = true;\n\n\t\tthis.type = 'PerspectiveCamera';\n\n\t\tthis.fov = fov;\n\t\tthis.zoom = 1;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.focus = 10;\n\n\t\tthis.aspect = aspect;\n\t\tthis.view = null;\n\n\t\tthis.filmGauge = 35;\t// width of the film (default in millimeters)\n\t\tthis.filmOffset = 0;\t// horizontal film offset (same unit as gauge)\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.fov = source.fov;\n\t\tthis.zoom = source.zoom;\n\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\t\tthis.focus = source.focus;\n\n\t\tthis.aspect = source.aspect;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\tthis.filmGauge = source.filmGauge;\n\t\tthis.filmOffset = source.filmOffset;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the FOV by focal length in respect to the current .filmGauge.\n\t *\n\t * The default film gauge is 35, so that the focal length can be specified for\n\t * a 35mm (full frame) camera.\n\t *\n\t * @param {number} focalLength - Values for focal length and film gauge must have the same unit.\n\t */\n\tsetFocalLength( focalLength ) {\n\n\t\t/** see {@link http://www.bobatkins.com/photography/technical/field_of_view.html} */\n\t\tconst vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n\n\t\tthis.fov = RAD2DEG * 2 * Math.atan( vExtentSlope );\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\t/**\n\t * Calculates the focal length from the current .fov and .filmGauge.\n\t *\n\t * @returns {number}\n\t */\n\tgetFocalLength() {\n\n\t\tconst vExtentSlope = Math.tan( DEG2RAD * 0.5 * this.fov );\n\n\t\treturn 0.5 * this.getFilmHeight() / vExtentSlope;\n\n\t}\n\n\tgetEffectiveFOV() {\n\n\t\treturn RAD2DEG * 2 * Math.atan(\n\t\t\tMath.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom );\n\n\t}\n\n\tgetFilmWidth() {\n\n\t\t// film not completely covered in portrait format (aspect < 1)\n\t\treturn this.filmGauge * Math.min( this.aspect, 1 );\n\n\t}\n\n\tgetFilmHeight() {\n\n\t\t// film not completely covered in landscape format (aspect > 1)\n\t\treturn this.filmGauge / Math.max( this.aspect, 1 );\n\n\t}\n\n\t/**\n\t * Computes the 2D bounds of the camera's viewable rectangle at a given distance along the viewing direction.\n\t * Sets minTarget and maxTarget to the coordinates of the lower-left and upper-right corners of the view rectangle.\n\t *\n\t * @param {number} distance\n\t * @param {Vector2} minTarget\n\t * @param {Vector2} maxTarget\n\t */\n\tgetViewBounds( distance, minTarget, maxTarget ) {\n\n\t\t_v3.set( - 1, - 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tminTarget.set( _v3.x, _v3.y ).multiplyScalar( - distance / _v3.z );\n\n\t\t_v3.set( 1, 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tmaxTarget.set( _v3.x, _v3.y ).multiplyScalar( - distance / _v3.z );\n\n\t}\n\n\t/**\n\t * Computes the width and height of the camera's viewable rectangle at a given distance along the viewing direction.\n\t *\n\t * @param {number} distance\n\t * @param {Vector2} target - Vector2 target used to store result where x is width and y is height.\n\t * @returns {Vector2}\n\t */\n\tgetViewSize( distance, target ) {\n\n\t\tthis.getViewBounds( distance, _minTarget, _maxTarget );\n\n\t\treturn target.subVectors( _maxTarget, _minTarget );\n\n\t}\n\n\t/**\n\t * Sets an offset in a larger frustum. This is useful for multi-window or\n\t * multi-monitor/multi-machine setups.\n\t *\n\t * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n\t * the monitors are in grid like this\n\t *\n\t * +---+---+---+\n\t * | A | B | C |\n\t * +---+---+---+\n\t * | D | E | F |\n\t * +---+---+---+\n\t *\n\t * then for each monitor you would call it like this\n\t *\n\t * const w = 1920;\n\t * const h = 1080;\n\t * const fullWidth = w * 3;\n\t * const fullHeight = h * 2;\n\t *\n\t * --A--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n\t * --B--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n\t * --C--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n\t * --D--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n\t * --E--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n\t * --F--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n\t *\n\t * Note there is no reason monitors have to be the same size or in a grid.\n\t *\n\t * @param {number} fullWidth\n\t * @param {number} fullHeight\n\t * @param {number} x\n\t * @param {number} y\n\t * @param {number} width\n\t * @param {number} height\n\t */\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tthis.aspect = fullWidth / fullHeight;\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst near = this.near;\n\t\tlet top = near * Math.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom;\n\t\tlet height = 2 * top;\n\t\tlet width = this.aspect * height;\n\t\tlet left = - 0.5 * width;\n\t\tconst view = this.view;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst fullWidth = view.fullWidth,\n\t\t\t\tfullHeight = view.fullHeight;\n\n\t\t\tleft += view.offsetX * width / fullWidth;\n\t\t\ttop -= view.offsetY * height / fullHeight;\n\t\t\twidth *= view.width / fullWidth;\n\t\t\theight *= view.height / fullHeight;\n\n\t\t}\n\n\t\tconst skew = this.filmOffset;\n\t\tif ( skew !== 0 ) left += near * skew / this.getFilmWidth();\n\n\t\tthis.projectionMatrix.makePerspective( left, left + width, top, top - height, near, this.far, this.coordinateSystem );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.fov = this.fov;\n\t\tdata.object.zoom = this.zoom;\n\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\t\tdata.object.focus = this.focus;\n\n\t\tdata.object.aspect = this.aspect;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\tdata.object.filmGauge = this.filmGauge;\n\t\tdata.object.filmOffset = this.filmOffset;\n\n\t\treturn data;\n\n\t}\n\n}\n\nexport { PerspectiveCamera };\n","import { LightShadow } from './LightShadow.js';\nimport { PerspectiveCamera } from '../cameras/PerspectiveCamera.js';\nimport { Matrix4 } from '../math/Matrix4.js';\nimport { Vector2 } from '../math/Vector2.js';\nimport { Vector3 } from '../math/Vector3.js';\nimport { Vector4 } from '../math/Vector4.js';\n\nconst _projScreenMatrix = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld = /*@__PURE__*/ new Vector3();\nconst _lookTarget = /*@__PURE__*/ new Vector3();\n\nclass PointLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 90, 1, 0.5, 500 ) );\n\n\t\tthis.isPointLightShadow = true;\n\n\t\tthis._frameExtents = new Vector2( 4, 2 );\n\n\t\tthis._viewportCount = 6;\n\n\t\tthis._viewports = [\n\t\t\t// These viewports map a cube-map onto a 2D texture with the\n\t\t\t// following orientation:\n\t\t\t//\n\t\t\t// xzXZ\n\t\t\t// y Y\n\t\t\t//\n\t\t\t// X - Positive x direction\n\t\t\t// x - Negative x direction\n\t\t\t// Y - Positive y direction\n\t\t\t// y - Negative y direction\n\t\t\t// Z - Positive z direction\n\t\t\t// z - Negative z direction\n\n\t\t\t// positive X\n\t\t\tnew Vector4( 2, 1, 1, 1 ),\n\t\t\t// negative X\n\t\t\tnew Vector4( 0, 1, 1, 1 ),\n\t\t\t// positive Z\n\t\t\tnew Vector4( 3, 1, 1, 1 ),\n\t\t\t// negative Z\n\t\t\tnew Vector4( 1, 1, 1, 1 ),\n\t\t\t// positive Y\n\t\t\tnew Vector4( 3, 0, 1, 1 ),\n\t\t\t// negative Y\n\t\t\tnew Vector4( 1, 0, 1, 1 )\n\t\t];\n\n\t\tthis._cubeDirections = [\n\t\t\tnew Vector3( 1, 0, 0 ), new Vector3( - 1, 0, 0 ), new Vector3( 0, 0, 1 ),\n\t\t\tnew Vector3( 0, 0, - 1 ), new Vector3( 0, 1, 0 ), new Vector3( 0, - 1, 0 )\n\t\t];\n\n\t\tthis._cubeUps = [\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ),\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 0, 1 ),\tnew Vector3( 0, 0, - 1 )\n\t\t];\n\n\t}\n\n\tupdateMatrices( light, viewportIndex = 0 ) {\n\n\t\tconst camera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( far !== camera.far ) {\n\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\t_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );\n\t\tcamera.position.copy( _lightPositionWorld );\n\n\t\t_lookTarget.copy( camera.position );\n\t\t_lookTarget.add( this._cubeDirections[ viewportIndex ] );\n\t\tcamera.up.copy( this._cubeUps[ viewportIndex ] );\n\t\tcamera.lookAt( _lookTarget );\n\t\tcamera.updateMatrixWorld();\n\n\t\tshadowMatrix.makeTranslation( - _lightPositionWorld.x, - _lightPositionWorld.y, - _lightPositionWorld.z );\n\n\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t}\n\n}\n\nexport { PointLightShadow };\n"],"names":["Vector4","_createClass","x","arguments","length","undefined","y","z","w","_classCallCheck","prototype","isVector4","this","key","get","set","value","scalar","index","Error","constructor","v","s","a","b","m","e","elements","multiplyScalar","q","Math","acos","sqrt","angle","te","m11","m12","m13","m21","m22","m23","m31","m32","m33","abs","PI","xx","yy","zz","xy","xz","yz","min","max","clamp","minVal","maxVal","divideScalar","floor","ceil","round","trunc","normalize","alpha","v1","v2","array","offset","attribute","getX","getY","getZ","getW","random","Symbol","iterator","_regeneratorRuntime","mark","wrap","_context","prev","next","stop","_vector1","Vector3","_vector2","_normalMatrix","Matrix3","Plane","normal","constant","isPlane","copy","point","dot","c","subVectors","cross","setFromNormalAndCoplanarPoint","plane","inverseNormalLength","negate","sphere","distanceToPoint","center","radius","target","addScaledVector","line","direction","delta","denominator","start","t","startSign","endSign","end","box","intersectsPlane","matrix","optionalNormalMatrix","normalMatrix","getNormalMatrix","referencePoint","coplanarPoint","applyMatrix4","applyMatrix3","equals","_sphere","Sphere","_vector","Frustum","p0","p1","p2","p3","p4","p5","planes","frustum","i","coordinateSystem","WebGLCoordinateSystem","me","me0","me1","me2","me3","me4","me5","me6","me7","me8","me9","me10","me11","me12","me13","me14","me15","setComponents","WebGPUCoordinateSystem","object","boundingSphere","computeBoundingSphere","matrixWorld","geometry","intersectsSphere","sprite","negRadius","_projScreenMatrix","Matrix4","_lightPositionWorld","_lookTarget","LightShadow","camera","intensity","bias","normalBias","blurSamples","mapSize","Vector2","map","mapPass","autoUpdate","needsUpdate","_frustum","_frameExtents","_viewportCount","_viewports","light","shadowCamera","shadowMatrix","setFromMatrixPosition","position","lookAt","updateMatrixWorld","multiplyMatrices","projectionMatrix","matrixWorldInverse","setFromProjectionMatrix","multiply","viewportIndex","dispose","source","clone","toArray","toJSON","Camera","_Object3D","_this","_callSuper","isCamera","type","projectionMatrixInverse","_inherits","recursive","_superPropGet","force","invert","updateParents","updateChildren","Object3D","_v3","_minTarget","_maxTarget","PerspectiveCamera","_Camera","fov","aspect","near","far","isPerspectiveCamera","zoom","focus","view","filmGauge","filmOffset","updateProjectionMatrix","Object","assign","focalLength","vExtentSlope","getFilmHeight","RAD2DEG","atan","tan","DEG2RAD","distance","minTarget","maxTarget","getViewBounds","fullWidth","fullHeight","width","height","enabled","offsetX","offsetY","top","left","skew","getFilmWidth","makePerspective","meta","data","PointLightShadow","_LightShadow","isPointLightShadow","_cubeDirections","_cubeUps","add","up","makeTranslation"],"mappings":"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"}
|