@roomle/web-sdk 2.99.0 → 2.100.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/Object3D-2abce9d8.nomodule.js +2 -0
- package/lib/Object3D-2abce9d8.nomodule.js.map +1 -0
- package/lib/Object3D-80e9d0f8.js +2 -0
- package/lib/Object3D-80e9d0f8.js.map +1 -0
- package/lib/SpotLightHelper-56c85cfb.nomodule.js +2 -0
- package/lib/SpotLightHelper-56c85cfb.nomodule.js.map +1 -0
- package/lib/SpotLightHelper-79188e47.js +2 -0
- package/lib/SpotLightHelper-79188e47.js.map +1 -0
- package/lib/{banana-for-scale-22ad6a20.nomodule.js → banana-for-scale-795d9c6c.nomodule.js} +2 -2
- package/lib/{banana-for-scale-22ad6a20.nomodule.js.map → banana-for-scale-795d9c6c.nomodule.js.map} +1 -1
- package/lib/{banana-for-scale-da4282fd.js → banana-for-scale-c5d8d13e.js} +2 -2
- package/lib/{banana-for-scale-da4282fd.js.map → banana-for-scale-c5d8d13e.js.map} +1 -1
- package/lib/camera-behaviour-ceced6f1.nomodule.js +2 -0
- package/lib/{camera-behaviour-90408ba5.nomodule.js.map → camera-behaviour-ceced6f1.nomodule.js.map} +1 -1
- package/lib/camera-behaviour-fe3f4008.js +2 -0
- package/lib/{camera-behaviour-2f2ffe82.js.map → camera-behaviour-fe3f4008.js.map} +1 -1
- package/lib/{component-dimensioning-a5e291d6.nomodule.js → component-dimensioning-5417ce83.nomodule.js} +2 -2
- package/lib/component-dimensioning-5417ce83.nomodule.js.map +1 -0
- package/lib/{component-dimensioning-ca877f31.js → component-dimensioning-b575bfa7.js} +2 -2
- package/lib/component-dimensioning-b575bfa7.js.map +1 -0
- package/lib/{component-raycast-helper-785b39cd.js → component-raycast-helper-8faecce8.js} +2 -2
- package/lib/component-raycast-helper-8faecce8.js.map +1 -0
- package/lib/{component-raycast-helper-40f9eb14.nomodule.js → component-raycast-helper-cde6065c.nomodule.js} +2 -2
- package/lib/component-raycast-helper-cde6065c.nomodule.js.map +1 -0
- package/lib/configurator-0ad4d1f9.nomodule.js +2 -0
- package/lib/configurator-0ad4d1f9.nomodule.js.map +1 -0
- package/lib/configurator-4565594d.js +2 -0
- package/lib/configurator-4565594d.js.map +1 -0
- package/lib/configurator-main-c79ddf0c.js +2 -0
- package/lib/configurator-main-c79ddf0c.js.map +1 -0
- package/lib/configurator-main.nomodule.js +1 -1
- package/lib/continuous-drawing-helper-6a23cf51.js +2 -0
- package/lib/continuous-drawing-helper-6a23cf51.js.map +1 -0
- package/lib/continuous-drawing-helper-70637238.nomodule.js +2 -0
- package/lib/continuous-drawing-helper-70637238.nomodule.js.map +1 -0
- package/lib/default-light-setting-755cfddc.js +2 -0
- package/lib/default-light-setting-755cfddc.js.map +1 -0
- package/lib/default-light-setting-e6087240.nomodule.js +2 -0
- package/lib/default-light-setting-e6087240.nomodule.js.map +1 -0
- package/lib/definitions/common-core/src/cameracontrol/camera-control-3d.d.ts +2 -1
- package/lib/definitions/common-core/src/cameracontrol/configurator-camera-behaviour.d.ts +1 -1
- package/lib/definitions/common-core/src/utils/common-utils.d.ts +1 -0
- package/lib/definitions/common-core/src/utils/init-data.d.ts +3 -0
- package/lib/definitions/common-core/src/utils/shims.d.ts +8 -3
- package/lib/definitions/common-core/src/webgl/image-renderer.d.ts +1 -0
- package/lib/definitions/common-core/src/webgl/roomle-webgl-renderer.d.ts +3 -0
- package/lib/definitions/common-core/src/webgl/scene-manager.d.ts +1 -0
- package/lib/definitions/packages/common-core/src/cameracontrol/camera-control-3d.d.ts +2 -1
- package/lib/definitions/packages/common-core/src/cameracontrol/configurator-camera-behaviour.d.ts +1 -1
- package/lib/definitions/packages/common-core/src/utils/common-utils.d.ts +1 -0
- package/lib/definitions/packages/common-core/src/utils/init-data.d.ts +3 -0
- package/lib/definitions/packages/common-core/src/utils/shims.d.ts +8 -3
- package/lib/definitions/packages/common-core/src/webgl/image-renderer.d.ts +1 -0
- package/lib/definitions/packages/common-core/src/webgl/roomle-webgl-renderer.d.ts +3 -0
- package/lib/definitions/packages/common-core/src/webgl/scene-manager.d.ts +1 -0
- package/lib/definitions/packages/planner-core/src/lights/ceiling-light.d.ts +19 -0
- package/lib/definitions/packages/planner-core/src/lights/lamp-light.d.ts +9 -0
- package/lib/definitions/packages/planner-core/src/lights/light-group.d.ts +11 -0
- package/lib/definitions/packages/planner-core/src/lights/rect-area-light.d.ts +7 -0
- package/lib/definitions/packages/planner-core/src/roomle-planner-ui-callback.d.ts +1 -1
- package/lib/definitions/packages/planner-core/src/roomle-planner.d.ts +10 -2
- package/lib/definitions/packages/planner-core/src/utils/{planner-scene-manager.d.ts → planner-scene-utils.d.ts} +5 -2
- package/lib/definitions/packages/planner-core/src/view-model/floor-plan-element-view-model.d.ts +1 -0
- package/lib/definitions/packages/planner-core/src/view-model/plan-view-model.d.ts +21 -0
- package/lib/definitions/packages/planner-core/src/webgl/planner-scene-manager.d.ts +3 -6
- package/lib/definitions/packages/typings/planner.d.ts +7 -1
- package/lib/definitions/planner-core/src/lights/ceiling-light.d.ts +19 -0
- package/lib/definitions/planner-core/src/lights/lamp-light.d.ts +9 -0
- package/lib/definitions/planner-core/src/lights/light-group.d.ts +11 -0
- package/lib/definitions/planner-core/src/lights/rect-area-light.d.ts +7 -0
- package/lib/definitions/planner-core/src/roomle-planner-ui-callback.d.ts +1 -1
- package/lib/definitions/planner-core/src/roomle-planner.d.ts +10 -2
- package/lib/definitions/planner-core/src/utils/{planner-scene-manager.d.ts → planner-scene-utils.d.ts} +5 -2
- package/lib/definitions/planner-core/src/view-model/floor-plan-element-view-model.d.ts +1 -0
- package/lib/definitions/planner-core/src/view-model/plan-view-model.d.ts +21 -0
- package/lib/definitions/planner-core/src/webgl/planner-scene-manager.d.ts +3 -6
- package/lib/definitions/typings/planner.d.ts +7 -1
- package/lib/dimensioning-helper-089673fa.nomodule.js +2 -0
- package/lib/dimensioning-helper-089673fa.nomodule.js.map +1 -0
- package/lib/dimensioning-helper-ba9dbb6f.js +2 -0
- package/lib/{dimensioning-helper-fb456f28.js.map → dimensioning-helper-ba9dbb6f.js.map} +1 -1
- package/lib/glb-viewer-232298a7.nomodule.js +2 -0
- package/lib/{glb-viewer-58aa56b3.nomodule.js.map → glb-viewer-232298a7.nomodule.js.map} +1 -1
- package/lib/glb-viewer-bc27fd7c.js +2 -0
- package/lib/{glb-viewer-d4c6c346.js.map → glb-viewer-bc27fd7c.js.map} +1 -1
- package/lib/{glb-viewer-camera-behaviour-1b347e77.nomodule.js → glb-viewer-camera-behaviour-b9f0adaa.nomodule.js} +2 -2
- package/lib/glb-viewer-camera-behaviour-b9f0adaa.nomodule.js.map +1 -0
- package/lib/{glb-viewer-camera-behaviour-24e823bc.js → glb-viewer-camera-behaviour-f8871d34.js} +2 -2
- package/lib/glb-viewer-camera-behaviour-f8871d34.js.map +1 -0
- package/lib/glb-viewer-main-058270a7.js +2 -0
- package/lib/glb-viewer-main-058270a7.js.map +1 -0
- package/lib/glb-viewer-main.nomodule.js +1 -1
- package/lib/{imos-ix-poc-export-helper-b7a91cdb.nomodule.js → imos-ix-poc-export-helper-29ce417b.nomodule.js} +2 -2
- package/lib/imos-ix-poc-export-helper-29ce417b.nomodule.js.map +1 -0
- package/lib/{imos-ix-poc-export-helper-7b16b54e.js → imos-ix-poc-export-helper-43b4c646.js} +2 -2
- package/lib/imos-ix-poc-export-helper-43b4c646.js.map +1 -0
- package/lib/legacy/Object3D-1f141c55.legacy.js +2 -0
- package/lib/legacy/Object3D-1f141c55.legacy.js.map +1 -0
- package/lib/legacy/SpotLightHelper-28698e83.legacy.js +2 -0
- package/lib/legacy/SpotLightHelper-28698e83.legacy.js.map +1 -0
- package/lib/legacy/TextGeometry-559f28ce.legacy.js +2 -0
- package/lib/legacy/{TextGeometry-778d127b.legacy.js.map → TextGeometry-559f28ce.legacy.js.map} +1 -1
- package/lib/legacy/{banana-for-scale-b274801d.legacy.js → banana-for-scale-8a3d4091.legacy.js} +2 -2
- package/lib/legacy/{banana-for-scale-b274801d.legacy.js.map → banana-for-scale-8a3d4091.legacy.js.map} +1 -1
- package/lib/legacy/budgeteer-measure.legacy.js +1 -1
- package/lib/legacy/camera-behaviour-363a4e78.legacy.js +2 -0
- package/lib/legacy/{camera-behaviour-b47dbdd3.legacy.js.map → camera-behaviour-363a4e78.legacy.js.map} +1 -1
- package/lib/legacy/{component-dimensioning-a3ba2ba6.legacy.js → component-dimensioning-f92c2840.legacy.js} +2 -2
- package/lib/legacy/component-dimensioning-f92c2840.legacy.js.map +1 -0
- package/lib/legacy/{component-raycast-helper-a5178cda.legacy.js → component-raycast-helper-91c67dd6.legacy.js} +2 -2
- package/lib/legacy/component-raycast-helper-91c67dd6.legacy.js.map +1 -0
- package/lib/legacy/configurator-bdb72223.legacy.js +2 -0
- package/lib/legacy/configurator-bdb72223.legacy.js.map +1 -0
- package/lib/legacy/configurator-main.legacy.js +1 -1
- package/lib/legacy/continuous-drawing-helper-e8db250c.legacy.js +2 -0
- package/lib/legacy/continuous-drawing-helper-e8db250c.legacy.js.map +1 -0
- package/lib/legacy/default-light-setting-07ced87c.legacy.js +2 -0
- package/lib/legacy/default-light-setting-07ced87c.legacy.js.map +1 -0
- package/lib/legacy/dimensioning-helper-bb3492c7.legacy.js +2 -0
- package/lib/legacy/dimensioning-helper-bb3492c7.legacy.js.map +1 -0
- package/lib/legacy/external-objects-01d5a216.legacy.js +2 -0
- package/lib/legacy/external-objects-01d5a216.legacy.js.map +1 -0
- package/lib/legacy/{glb-viewer-camera-behaviour-4be0da6a.legacy.js → glb-viewer-camera-behaviour-8a35f77c.legacy.js} +2 -2
- package/lib/legacy/glb-viewer-camera-behaviour-8a35f77c.legacy.js.map +1 -0
- package/lib/legacy/glb-viewer-d69f6cae.legacy.js +2 -0
- package/lib/legacy/{glb-viewer-d3854b02.legacy.js.map → glb-viewer-d69f6cae.legacy.js.map} +1 -1
- package/lib/legacy/glb-viewer-main.legacy.js +1 -1
- package/lib/legacy/{imos-ix-poc-export-helper-ee70d653.legacy.js → imos-ix-poc-export-helper-ca5160da.legacy.js} +2 -2
- package/lib/legacy/imos-ix-poc-export-helper-ca5160da.legacy.js.map +1 -0
- package/lib/legacy/{main-thread-to-worker-da6ad96a.legacy.js → main-thread-to-worker-32b45184.legacy.js} +3 -3
- package/lib/legacy/{main-thread-to-worker-da6ad96a.legacy.js.map → main-thread-to-worker-32b45184.legacy.js.map} +1 -1
- package/lib/legacy/material-viewer-770e3a93.legacy.js +2 -0
- package/lib/legacy/material-viewer-770e3a93.legacy.js.map +1 -0
- package/lib/legacy/material-viewer-main.legacy.js +1 -1
- package/lib/legacy/planner-53e1ae1f.legacy.js +2 -0
- package/lib/legacy/{planner-f0a71818.legacy.js.map → planner-53e1ae1f.legacy.js.map} +1 -1
- package/lib/legacy/planner-main.legacy.js +1 -1
- package/lib/legacy/query-params-helper-ad6b6b64.legacy.js +2 -0
- package/lib/legacy/query-params-helper-ad6b6b64.legacy.js.map +1 -0
- package/lib/legacy/roomle-configurator-2ab0523e.legacy.js +2 -0
- package/lib/legacy/roomle-configurator-2ab0523e.legacy.js.map +1 -0
- package/lib/legacy/roomle-dependency-injection-39798155.legacy.js +9 -0
- package/lib/legacy/{roomle-dependency-injection-058aa06f.legacy.js.map → roomle-dependency-injection-39798155.legacy.js.map} +1 -1
- package/lib/legacy/roomle-sdk.legacy.js +1 -1
- package/lib/legacy/{script-loader-9921991a.legacy.js → script-loader-6f4bb7db.legacy.js} +2 -2
- package/lib/legacy/script-loader-6f4bb7db.legacy.js.map +1 -0
- package/lib/legacy/static/ConfiguratorKernel-eb2b45aa8bdd5c73.wasm +0 -0
- package/lib/legacy/static/RoomleCore-a4df483fa6f93517.wasm +0 -0
- package/lib/legacy/static/RoomleToolsCore-9ea339d54e57756a.wasm +0 -0
- package/lib/legacy/{stats-helper-c7bf779b.legacy.js → stats-helper-e75d2585.legacy.js} +2 -2
- package/lib/legacy/stats-helper-e75d2585.legacy.js.map +1 -0
- package/lib/legacy/{tools-core-645fb16a.legacy.js → tools-core-c5e76ffc.legacy.js} +2 -2
- package/lib/legacy/tools-core-c5e76ffc.legacy.js.map +1 -0
- package/lib/material-viewer-a489d3c2.nomodule.js +2 -0
- package/lib/material-viewer-a489d3c2.nomodule.js.map +1 -0
- package/lib/material-viewer-f818f681.js +2 -0
- package/lib/material-viewer-f818f681.js.map +1 -0
- package/lib/material-viewer-main-a4985787.js +2 -0
- package/lib/material-viewer-main-a4985787.js.map +1 -0
- package/lib/material-viewer-main.nomodule.js +1 -1
- package/lib/planner-32c9b79e.nomodule.js +2 -0
- package/lib/{planner-cb1acb4d.nomodule.js.map → planner-32c9b79e.nomodule.js.map} +1 -1
- package/lib/planner-9b39cf77.js +2 -0
- package/lib/{planner-a30840a8.js.map → planner-9b39cf77.js.map} +1 -1
- package/lib/planner-main-32eac04d.js +2 -0
- package/lib/planner-main-32eac04d.js.map +1 -0
- package/lib/planner-main.nomodule.js +1 -1
- package/lib/roomle-configurator-2d336119.nomodule.js +2 -0
- package/lib/roomle-configurator-2d336119.nomodule.js.map +1 -0
- package/lib/roomle-configurator-3bf23b9e.js +2 -0
- package/lib/roomle-configurator-3bf23b9e.js.map +1 -0
- package/lib/{roomle-dependency-injection-8fd89dfe.js → roomle-dependency-injection-c52a0000.js} +3 -3
- package/lib/{roomle-dependency-injection-8fd89dfe.js.map → roomle-dependency-injection-c52a0000.js.map} +1 -1
- package/lib/roomle-dependency-injection-e789a72d.nomodule.js +9 -0
- package/lib/{roomle-dependency-injection-22befdc7.nomodule.js.map → roomle-dependency-injection-e789a72d.nomodule.js.map} +1 -1
- package/lib/{roomle-sdk-3f72ba15.js → roomle-sdk-b28548bd.js} +2 -2
- package/lib/roomle-sdk-b28548bd.js.map +1 -0
- package/lib/roomle-sdk.nomodule.js +1 -1
- package/lib/{script-loader-36a9dcdc.js → script-loader-524d3415.js} +2 -2
- package/lib/script-loader-524d3415.js.map +1 -0
- package/lib/{script-loader-8e8886dd.nomodule.js → script-loader-f57678af.nomodule.js} +2 -2
- package/lib/script-loader-f57678af.nomodule.js.map +1 -0
- package/lib/static/ConfiguratorKernel-eb2b45aa8bdd5c73.wasm +0 -0
- package/lib/static/RoomleCore-a4df483fa6f93517.wasm +0 -0
- package/lib/static/RoomleToolsCore-9ea339d54e57756a.wasm +0 -0
- package/lib/{stats-helper-b5614bb9.js → stats-helper-8557e89e.js} +2 -2
- package/lib/stats-helper-8557e89e.js.map +1 -0
- package/lib/{stats-helper-1a0748a7.nomodule.js → stats-helper-a6ed29fb.nomodule.js} +2 -2
- package/lib/stats-helper-a6ed29fb.nomodule.js.map +1 -0
- package/lib/{tools-core-43082fe5.js → tools-core-26ff177e.js} +2 -2
- package/lib/tools-core-26ff177e.js.map +1 -0
- package/lib/{tools-core-a5f68507.nomodule.js → tools-core-feefe6d1.nomodule.js} +2 -2
- package/lib/tools-core-feefe6d1.nomodule.js.map +1 -0
- package/package.json +2 -2
- package/lib/camera-behaviour-2f2ffe82.js +0 -2
- package/lib/camera-behaviour-90408ba5.nomodule.js +0 -2
- package/lib/component-dimensioning-a5e291d6.nomodule.js.map +0 -1
- package/lib/component-dimensioning-ca877f31.js.map +0 -1
- package/lib/component-raycast-helper-40f9eb14.nomodule.js.map +0 -1
- package/lib/component-raycast-helper-785b39cd.js.map +0 -1
- package/lib/configurator-2d025a93.nomodule.js +0 -2
- package/lib/configurator-2d025a93.nomodule.js.map +0 -1
- package/lib/configurator-3e5c27eb.js +0 -2
- package/lib/configurator-3e5c27eb.js.map +0 -1
- package/lib/configurator-main-f75e4553.js +0 -2
- package/lib/configurator-main-f75e4553.js.map +0 -1
- package/lib/continuous-drawing-helper-ae2fcdd3.js +0 -2
- package/lib/continuous-drawing-helper-ae2fcdd3.js.map +0 -1
- package/lib/continuous-drawing-helper-c71ae2ed.nomodule.js +0 -2
- package/lib/continuous-drawing-helper-c71ae2ed.nomodule.js.map +0 -1
- package/lib/default-light-setting-98201048.nomodule.js +0 -2
- package/lib/default-light-setting-98201048.nomodule.js.map +0 -1
- package/lib/default-light-setting-ba00bf2b.js +0 -2
- package/lib/default-light-setting-ba00bf2b.js.map +0 -1
- package/lib/dimensioning-helper-4d7e768a.nomodule.js +0 -2
- package/lib/dimensioning-helper-4d7e768a.nomodule.js.map +0 -1
- package/lib/dimensioning-helper-fb456f28.js +0 -2
- package/lib/glb-viewer-58aa56b3.nomodule.js +0 -2
- package/lib/glb-viewer-camera-behaviour-1b347e77.nomodule.js.map +0 -1
- package/lib/glb-viewer-camera-behaviour-24e823bc.js.map +0 -1
- package/lib/glb-viewer-d4c6c346.js +0 -2
- package/lib/glb-viewer-main-64179adf.js +0 -2
- package/lib/glb-viewer-main-64179adf.js.map +0 -1
- package/lib/imos-ix-poc-export-helper-7b16b54e.js.map +0 -1
- package/lib/imos-ix-poc-export-helper-b7a91cdb.nomodule.js.map +0 -1
- package/lib/legacy/TextGeometry-778d127b.legacy.js +0 -2
- package/lib/legacy/camera-behaviour-b47dbdd3.legacy.js +0 -2
- package/lib/legacy/component-dimensioning-a3ba2ba6.legacy.js.map +0 -1
- package/lib/legacy/component-raycast-helper-a5178cda.legacy.js.map +0 -1
- package/lib/legacy/configurator-002d161a.legacy.js +0 -2
- package/lib/legacy/configurator-002d161a.legacy.js.map +0 -1
- package/lib/legacy/continuous-drawing-helper-654d7604.legacy.js +0 -2
- package/lib/legacy/continuous-drawing-helper-654d7604.legacy.js.map +0 -1
- package/lib/legacy/default-light-setting-af961df8.legacy.js +0 -2
- package/lib/legacy/default-light-setting-af961df8.legacy.js.map +0 -1
- package/lib/legacy/dimensioning-helper-4baa9955.legacy.js +0 -2
- package/lib/legacy/dimensioning-helper-4baa9955.legacy.js.map +0 -1
- package/lib/legacy/external-objects-2fd4ef1a.legacy.js +0 -2
- package/lib/legacy/external-objects-2fd4ef1a.legacy.js.map +0 -1
- package/lib/legacy/glb-viewer-camera-behaviour-4be0da6a.legacy.js.map +0 -1
- package/lib/legacy/glb-viewer-d3854b02.legacy.js +0 -2
- package/lib/legacy/imos-ix-poc-export-helper-ee70d653.legacy.js.map +0 -1
- package/lib/legacy/material-viewer-117426bc.legacy.js +0 -2
- package/lib/legacy/material-viewer-117426bc.legacy.js.map +0 -1
- package/lib/legacy/planner-f0a71818.legacy.js +0 -2
- package/lib/legacy/query-params-helper-e3e05119.legacy.js +0 -2
- package/lib/legacy/query-params-helper-e3e05119.legacy.js.map +0 -1
- package/lib/legacy/roomle-configurator-6db65c94.legacy.js +0 -2
- package/lib/legacy/roomle-configurator-6db65c94.legacy.js.map +0 -1
- package/lib/legacy/roomle-dependency-injection-058aa06f.legacy.js +0 -9
- package/lib/legacy/script-loader-9921991a.legacy.js.map +0 -1
- package/lib/legacy/static/ConfiguratorKernel-e0b064b9d4228a3b.wasm +0 -0
- package/lib/legacy/static/RoomleCore-e599a6ccf3dd7c2a.wasm +0 -0
- package/lib/legacy/static/RoomleToolsCore-83af26798774f70c.wasm +0 -0
- package/lib/legacy/stats-helper-c7bf779b.legacy.js.map +0 -1
- package/lib/legacy/tools-core-645fb16a.legacy.js.map +0 -1
- package/lib/material-viewer-8c7e05be.nomodule.js +0 -2
- package/lib/material-viewer-8c7e05be.nomodule.js.map +0 -1
- package/lib/material-viewer-d211106c.js +0 -2
- package/lib/material-viewer-d211106c.js.map +0 -1
- package/lib/material-viewer-main-9668a68c.js +0 -2
- package/lib/material-viewer-main-9668a68c.js.map +0 -1
- package/lib/planner-a30840a8.js +0 -2
- package/lib/planner-cb1acb4d.nomodule.js +0 -2
- package/lib/planner-main-5c76b2c2.js +0 -2
- package/lib/planner-main-5c76b2c2.js.map +0 -1
- package/lib/roomle-configurator-a11055fd.nomodule.js +0 -2
- package/lib/roomle-configurator-a11055fd.nomodule.js.map +0 -1
- package/lib/roomle-configurator-ab3900ec.js +0 -2
- package/lib/roomle-configurator-ab3900ec.js.map +0 -1
- package/lib/roomle-dependency-injection-22befdc7.nomodule.js +0 -9
- package/lib/roomle-sdk-3f72ba15.js.map +0 -1
- package/lib/script-loader-36a9dcdc.js.map +0 -1
- package/lib/script-loader-8e8886dd.nomodule.js.map +0 -1
- package/lib/static/ConfiguratorKernel-e0b064b9d4228a3b.wasm +0 -0
- package/lib/static/RoomleCore-e599a6ccf3dd7c2a.wasm +0 -0
- package/lib/static/RoomleToolsCore-83af26798774f70c.wasm +0 -0
- package/lib/stats-helper-1a0748a7.nomodule.js.map +0 -1
- package/lib/stats-helper-b5614bb9.js.map +0 -1
- package/lib/tools-core-43082fe5.js.map +0 -1
- package/lib/tools-core-a5f68507.nomodule.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Object3D-2abce9d8.nomodule.js","sources":["../../node_modules/three/src/math/MathUtils.js","../../node_modules/three/src/constants.js","../../node_modules/three/src/math/Quaternion.js","../../node_modules/three/src/math/Vector3.js","../../node_modules/three/src/math/Matrix4.js","../../node_modules/three/src/math/Vector2.js","../../node_modules/three/src/math/Box3.js","../../node_modules/three/src/math/Sphere.js","../../node_modules/three/src/math/Matrix3.js","../../node_modules/three/src/core/EventDispatcher.js","../../node_modules/three/src/math/Euler.js","../../node_modules/three/src/core/Layers.js","../../node_modules/three/src/core/Object3D.js"],"sourcesContent":["const _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];\n\nlet _seed = 1234567;\n\n\nconst DEG2RAD = Math.PI / 180;\nconst RAD2DEG = 180 / Math.PI;\n\n// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\nfunction generateUUID() {\n\n\tconst d0 = Math.random() * 0xffffffff | 0;\n\tconst d1 = Math.random() * 0xffffffff | 0;\n\tconst d2 = Math.random() * 0xffffffff | 0;\n\tconst d3 = Math.random() * 0xffffffff | 0;\n\tconst uuid = _lut[ d0 & 0xff ] + _lut[ d0 >> 8 & 0xff ] + _lut[ d0 >> 16 & 0xff ] + _lut[ d0 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d1 & 0xff ] + _lut[ d1 >> 8 & 0xff ] + '-' + _lut[ d1 >> 16 & 0x0f | 0x40 ] + _lut[ d1 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d2 & 0x3f | 0x80 ] + _lut[ d2 >> 8 & 0xff ] + '-' + _lut[ d2 >> 16 & 0xff ] + _lut[ d2 >> 24 & 0xff ] +\n\t\t\t_lut[ d3 & 0xff ] + _lut[ d3 >> 8 & 0xff ] + _lut[ d3 >> 16 & 0xff ] + _lut[ d3 >> 24 & 0xff ];\n\n\t// .toLowerCase() here flattens concatenated strings to save heap memory space.\n\treturn uuid.toLowerCase();\n\n}\n\nfunction clamp( value, min, max ) {\n\n\treturn Math.max( min, Math.min( max, value ) );\n\n}\n\n// compute euclidean modulo of m % n\n// https://en.wikipedia.org/wiki/Modulo_operation\nfunction euclideanModulo( n, m ) {\n\n\treturn ( ( n % m ) + m ) % m;\n\n}\n\n// Linear mapping from range <a1, a2> to range <b1, b2>\nfunction mapLinear( x, a1, a2, b1, b2 ) {\n\n\treturn b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );\n\n}\n\n// https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/inverse-lerp-a-super-useful-yet-often-overlooked-function-r5230/\nfunction inverseLerp( x, y, value ) {\n\n\tif ( x !== y ) {\n\n\t\treturn ( value - x ) / ( y - x );\n\n\t} else {\n\n\t\treturn 0;\n\n\t}\n\n}\n\n// https://en.wikipedia.org/wiki/Linear_interpolation\nfunction lerp( x, y, t ) {\n\n\treturn ( 1 - t ) * x + t * y;\n\n}\n\n// http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/\nfunction damp( x, y, lambda, dt ) {\n\n\treturn lerp( x, y, 1 - Math.exp( - lambda * dt ) );\n\n}\n\n// https://www.desmos.com/calculator/vcsjnyz7x4\nfunction pingpong( x, length = 1 ) {\n\n\treturn length - Math.abs( euclideanModulo( x, length * 2 ) - length );\n\n}\n\n// http://en.wikipedia.org/wiki/Smoothstep\nfunction smoothstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * ( 3 - 2 * x );\n\n}\n\nfunction smootherstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * x * ( x * ( x * 6 - 15 ) + 10 );\n\n}\n\n// Random integer from <low, high> interval\nfunction randInt( low, high ) {\n\n\treturn low + Math.floor( Math.random() * ( high - low + 1 ) );\n\n}\n\n// Random float from <low, high> interval\nfunction randFloat( low, high ) {\n\n\treturn low + Math.random() * ( high - low );\n\n}\n\n// Random float from <-range/2, range/2> interval\nfunction randFloatSpread( range ) {\n\n\treturn range * ( 0.5 - Math.random() );\n\n}\n\n// Deterministic pseudo-random float in the interval [ 0, 1 ]\nfunction seededRandom( s ) {\n\n\tif ( s !== undefined ) _seed = s;\n\n\t// Mulberry32 generator\n\n\tlet t = _seed += 0x6D2B79F5;\n\n\tt = Math.imul( t ^ t >>> 15, t | 1 );\n\n\tt ^= t + Math.imul( t ^ t >>> 7, t | 61 );\n\n\treturn ( ( t ^ t >>> 14 ) >>> 0 ) / 4294967296;\n\n}\n\nfunction degToRad( degrees ) {\n\n\treturn degrees * DEG2RAD;\n\n}\n\nfunction radToDeg( radians ) {\n\n\treturn radians * RAD2DEG;\n\n}\n\nfunction isPowerOfTwo( value ) {\n\n\treturn ( value & ( value - 1 ) ) === 0 && value !== 0;\n\n}\n\nfunction ceilPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.ceil( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction floorPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.floor( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction setQuaternionFromProperEuler( q, a, b, c, order ) {\n\n\t// Intrinsic Proper Euler Angles - see https://en.wikipedia.org/wiki/Euler_angles\n\n\t// rotations are applied to the axes in the order specified by 'order'\n\t// rotation by angle 'a' is applied first, then by angle 'b', then by angle 'c'\n\t// angles are in radians\n\n\tconst cos = Math.cos;\n\tconst sin = Math.sin;\n\n\tconst c2 = cos( b / 2 );\n\tconst s2 = sin( b / 2 );\n\n\tconst c13 = cos( ( a + c ) / 2 );\n\tconst s13 = sin( ( a + c ) / 2 );\n\n\tconst c1_3 = cos( ( a - c ) / 2 );\n\tconst s1_3 = sin( ( a - c ) / 2 );\n\n\tconst c3_1 = cos( ( c - a ) / 2 );\n\tconst s3_1 = sin( ( c - a ) / 2 );\n\n\tswitch ( order ) {\n\n\t\tcase 'XYX':\n\t\t\tq.set( c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YZY':\n\t\t\tq.set( s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZXZ':\n\t\t\tq.set( s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'XZX':\n\t\t\tq.set( c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YXY':\n\t\t\tq.set( s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZYZ':\n\t\t\tq.set( s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order );\n\n\t}\n\n}\n\nfunction denormalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn value / 4294967295.0;\n\n\t\tcase Uint16Array:\n\n\t\t\treturn value / 65535.0;\n\n\t\tcase Uint8Array:\n\n\t\t\treturn value / 255.0;\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.max( value / 2147483647.0, - 1.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.max( value / 32767.0, - 1.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.max( value / 127.0, - 1.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nfunction normalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn Math.round( value * 4294967295.0 );\n\n\t\tcase Uint16Array:\n\n\t\t\treturn Math.round( value * 65535.0 );\n\n\t\tcase Uint8Array:\n\n\t\t\treturn Math.round( value * 255.0 );\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.round( value * 2147483647.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.round( value * 32767.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.round( value * 127.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nconst MathUtils = {\n\tDEG2RAD: DEG2RAD,\n\tRAD2DEG: RAD2DEG,\n\tgenerateUUID: generateUUID,\n\tclamp: clamp,\n\teuclideanModulo: euclideanModulo,\n\tmapLinear: mapLinear,\n\tinverseLerp: inverseLerp,\n\tlerp: lerp,\n\tdamp: damp,\n\tpingpong: pingpong,\n\tsmoothstep: smoothstep,\n\tsmootherstep: smootherstep,\n\trandInt: randInt,\n\trandFloat: randFloat,\n\trandFloatSpread: randFloatSpread,\n\tseededRandom: seededRandom,\n\tdegToRad: degToRad,\n\tradToDeg: radToDeg,\n\tisPowerOfTwo: isPowerOfTwo,\n\tceilPowerOfTwo: ceilPowerOfTwo,\n\tfloorPowerOfTwo: floorPowerOfTwo,\n\tsetQuaternionFromProperEuler: setQuaternionFromProperEuler,\n\tnormalize: normalize,\n\tdenormalize: denormalize\n};\n\nexport {\n\tDEG2RAD,\n\tRAD2DEG,\n\tgenerateUUID,\n\tclamp,\n\teuclideanModulo,\n\tmapLinear,\n\tinverseLerp,\n\tlerp,\n\tdamp,\n\tpingpong,\n\tsmoothstep,\n\tsmootherstep,\n\trandInt,\n\trandFloat,\n\trandFloatSpread,\n\tseededRandom,\n\tdegToRad,\n\tradToDeg,\n\tisPowerOfTwo,\n\tceilPowerOfTwo,\n\tfloorPowerOfTwo,\n\tsetQuaternionFromProperEuler,\n\tnormalize,\n\tdenormalize,\n\tMathUtils\n};\n","export const REVISION = '173';\n\nexport const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };\nexport const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };\nexport const CullFaceNone = 0;\nexport const CullFaceBack = 1;\nexport const CullFaceFront = 2;\nexport const CullFaceFrontBack = 3;\nexport const BasicShadowMap = 0;\nexport const PCFShadowMap = 1;\nexport const PCFSoftShadowMap = 2;\nexport const VSMShadowMap = 3;\nexport const FrontSide = 0;\nexport const BackSide = 1;\nexport const DoubleSide = 2;\nexport const NoBlending = 0;\nexport const NormalBlending = 1;\nexport const AdditiveBlending = 2;\nexport const SubtractiveBlending = 3;\nexport const MultiplyBlending = 4;\nexport const CustomBlending = 5;\nexport const AddEquation = 100;\nexport const SubtractEquation = 101;\nexport const ReverseSubtractEquation = 102;\nexport const MinEquation = 103;\nexport const MaxEquation = 104;\nexport const ZeroFactor = 200;\nexport const OneFactor = 201;\nexport const SrcColorFactor = 202;\nexport const OneMinusSrcColorFactor = 203;\nexport const SrcAlphaFactor = 204;\nexport const OneMinusSrcAlphaFactor = 205;\nexport const DstAlphaFactor = 206;\nexport const OneMinusDstAlphaFactor = 207;\nexport const DstColorFactor = 208;\nexport const OneMinusDstColorFactor = 209;\nexport const SrcAlphaSaturateFactor = 210;\nexport const ConstantColorFactor = 211;\nexport const OneMinusConstantColorFactor = 212;\nexport const ConstantAlphaFactor = 213;\nexport const OneMinusConstantAlphaFactor = 214;\nexport const NeverDepth = 0;\nexport const AlwaysDepth = 1;\nexport const LessDepth = 2;\nexport const LessEqualDepth = 3;\nexport const EqualDepth = 4;\nexport const GreaterEqualDepth = 5;\nexport const GreaterDepth = 6;\nexport const NotEqualDepth = 7;\nexport const MultiplyOperation = 0;\nexport const MixOperation = 1;\nexport const AddOperation = 2;\nexport const NoToneMapping = 0;\nexport const LinearToneMapping = 1;\nexport const ReinhardToneMapping = 2;\nexport const CineonToneMapping = 3;\nexport const ACESFilmicToneMapping = 4;\nexport const CustomToneMapping = 5;\nexport const AgXToneMapping = 6;\nexport const NeutralToneMapping = 7;\nexport const AttachedBindMode = 'attached';\nexport const DetachedBindMode = 'detached';\n\nexport const UVMapping = 300;\nexport const CubeReflectionMapping = 301;\nexport const CubeRefractionMapping = 302;\nexport const EquirectangularReflectionMapping = 303;\nexport const EquirectangularRefractionMapping = 304;\nexport const CubeUVReflectionMapping = 306;\nexport const RepeatWrapping = 1000;\nexport const ClampToEdgeWrapping = 1001;\nexport const MirroredRepeatWrapping = 1002;\nexport const NearestFilter = 1003;\nexport const NearestMipmapNearestFilter = 1004;\nexport const NearestMipMapNearestFilter = 1004;\nexport const NearestMipmapLinearFilter = 1005;\nexport const NearestMipMapLinearFilter = 1005;\nexport const LinearFilter = 1006;\nexport const LinearMipmapNearestFilter = 1007;\nexport const LinearMipMapNearestFilter = 1007;\nexport const LinearMipmapLinearFilter = 1008;\nexport const LinearMipMapLinearFilter = 1008;\nexport const UnsignedByteType = 1009;\nexport const ByteType = 1010;\nexport const ShortType = 1011;\nexport const UnsignedShortType = 1012;\nexport const IntType = 1013;\nexport const UnsignedIntType = 1014;\nexport const FloatType = 1015;\nexport const HalfFloatType = 1016;\nexport const UnsignedShort4444Type = 1017;\nexport const UnsignedShort5551Type = 1018;\nexport const UnsignedInt248Type = 1020;\nexport const UnsignedInt5999Type = 35902;\nexport const AlphaFormat = 1021;\nexport const RGBFormat = 1022;\nexport const RGBAFormat = 1023;\nexport const LuminanceFormat = 1024;\nexport const LuminanceAlphaFormat = 1025;\nexport const DepthFormat = 1026;\nexport const DepthStencilFormat = 1027;\nexport const RedFormat = 1028;\nexport const RedIntegerFormat = 1029;\nexport const RGFormat = 1030;\nexport const RGIntegerFormat = 1031;\nexport const RGBIntegerFormat = 1032;\nexport const RGBAIntegerFormat = 1033;\n\nexport const RGB_S3TC_DXT1_Format = 33776;\nexport const RGBA_S3TC_DXT1_Format = 33777;\nexport const RGBA_S3TC_DXT3_Format = 33778;\nexport const RGBA_S3TC_DXT5_Format = 33779;\nexport const RGB_PVRTC_4BPPV1_Format = 35840;\nexport const RGB_PVRTC_2BPPV1_Format = 35841;\nexport const RGBA_PVRTC_4BPPV1_Format = 35842;\nexport const RGBA_PVRTC_2BPPV1_Format = 35843;\nexport const RGB_ETC1_Format = 36196;\nexport const RGB_ETC2_Format = 37492;\nexport const RGBA_ETC2_EAC_Format = 37496;\nexport const RGBA_ASTC_4x4_Format = 37808;\nexport const RGBA_ASTC_5x4_Format = 37809;\nexport const RGBA_ASTC_5x5_Format = 37810;\nexport const RGBA_ASTC_6x5_Format = 37811;\nexport const RGBA_ASTC_6x6_Format = 37812;\nexport const RGBA_ASTC_8x5_Format = 37813;\nexport const RGBA_ASTC_8x6_Format = 37814;\nexport const RGBA_ASTC_8x8_Format = 37815;\nexport const RGBA_ASTC_10x5_Format = 37816;\nexport const RGBA_ASTC_10x6_Format = 37817;\nexport const RGBA_ASTC_10x8_Format = 37818;\nexport const RGBA_ASTC_10x10_Format = 37819;\nexport const RGBA_ASTC_12x10_Format = 37820;\nexport const RGBA_ASTC_12x12_Format = 37821;\nexport const RGBA_BPTC_Format = 36492;\nexport const RGB_BPTC_SIGNED_Format = 36494;\nexport const RGB_BPTC_UNSIGNED_Format = 36495;\nexport const RED_RGTC1_Format = 36283;\nexport const SIGNED_RED_RGTC1_Format = 36284;\nexport const RED_GREEN_RGTC2_Format = 36285;\nexport const SIGNED_RED_GREEN_RGTC2_Format = 36286;\nexport const LoopOnce = 2200;\nexport const LoopRepeat = 2201;\nexport const LoopPingPong = 2202;\nexport const InterpolateDiscrete = 2300;\nexport const InterpolateLinear = 2301;\nexport const InterpolateSmooth = 2302;\nexport const ZeroCurvatureEnding = 2400;\nexport const ZeroSlopeEnding = 2401;\nexport const WrapAroundEnding = 2402;\nexport const NormalAnimationBlendMode = 2500;\nexport const AdditiveAnimationBlendMode = 2501;\nexport const TrianglesDrawMode = 0;\nexport const TriangleStripDrawMode = 1;\nexport const TriangleFanDrawMode = 2;\nexport const BasicDepthPacking = 3200;\nexport const RGBADepthPacking = 3201;\nexport const RGBDepthPacking = 3202;\nexport const RGDepthPacking = 3203;\nexport const TangentSpaceNormalMap = 0;\nexport const ObjectSpaceNormalMap = 1;\n\n// Color space string identifiers, matching CSS Color Module Level 4 and WebGPU names where available.\nexport const NoColorSpace = '';\nexport const SRGBColorSpace = 'srgb';\nexport const LinearSRGBColorSpace = 'srgb-linear';\n\nexport const LinearTransfer = 'linear';\nexport const SRGBTransfer = 'srgb';\n\nexport const ZeroStencilOp = 0;\nexport const KeepStencilOp = 7680;\nexport const ReplaceStencilOp = 7681;\nexport const IncrementStencilOp = 7682;\nexport const DecrementStencilOp = 7683;\nexport const IncrementWrapStencilOp = 34055;\nexport const DecrementWrapStencilOp = 34056;\nexport const InvertStencilOp = 5386;\n\nexport const NeverStencilFunc = 512;\nexport const LessStencilFunc = 513;\nexport const EqualStencilFunc = 514;\nexport const LessEqualStencilFunc = 515;\nexport const GreaterStencilFunc = 516;\nexport const NotEqualStencilFunc = 517;\nexport const GreaterEqualStencilFunc = 518;\nexport const AlwaysStencilFunc = 519;\n\nexport const NeverCompare = 512;\nexport const LessCompare = 513;\nexport const EqualCompare = 514;\nexport const LessEqualCompare = 515;\nexport const GreaterCompare = 516;\nexport const NotEqualCompare = 517;\nexport const GreaterEqualCompare = 518;\nexport const AlwaysCompare = 519;\n\nexport const StaticDrawUsage = 35044;\nexport const DynamicDrawUsage = 35048;\nexport const StreamDrawUsage = 35040;\nexport const StaticReadUsage = 35045;\nexport const DynamicReadUsage = 35049;\nexport const StreamReadUsage = 35041;\nexport const StaticCopyUsage = 35046;\nexport const DynamicCopyUsage = 35050;\nexport const StreamCopyUsage = 35042;\n\nexport const GLSL1 = '100';\nexport const GLSL3 = '300 es';\n\nexport const WebGLCoordinateSystem = 2000;\nexport const WebGPUCoordinateSystem = 2001;\n\nexport const TimestampQuery = {\n\tCOMPUTE: 'compute',\n\tRENDER: 'render'\n};\n","import { clamp } from './MathUtils.js';\n\nclass Quaternion {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tthis.isQuaternion = 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\tstatic slerpFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) {\n\n\t\t// fuzz-free, array-based Quaternion SLERP operation\n\n\t\tlet x0 = src0[ srcOffset0 + 0 ],\n\t\t\ty0 = src0[ srcOffset0 + 1 ],\n\t\t\tz0 = src0[ srcOffset0 + 2 ],\n\t\t\tw0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 + 0 ],\n\t\t\ty1 = src1[ srcOffset1 + 1 ],\n\t\t\tz1 = src1[ srcOffset1 + 2 ],\n\t\t\tw1 = src1[ srcOffset1 + 3 ];\n\n\t\tif ( t === 0 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x0;\n\t\t\tdst[ dstOffset + 1 ] = y0;\n\t\t\tdst[ dstOffset + 2 ] = z0;\n\t\t\tdst[ dstOffset + 3 ] = w0;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( t === 1 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x1;\n\t\t\tdst[ dstOffset + 1 ] = y1;\n\t\t\tdst[ dstOffset + 2 ] = z1;\n\t\t\tdst[ dstOffset + 3 ] = w1;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) {\n\n\t\t\tlet s = 1 - t;\n\t\t\tconst cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n\t\t\t\tdir = ( cos >= 0 ? 1 : - 1 ),\n\t\t\t\tsqrSin = 1 - cos * cos;\n\n\t\t\t// Skip the Slerp for tiny steps to avoid numeric problems:\n\t\t\tif ( sqrSin > Number.EPSILON ) {\n\n\t\t\t\tconst sin = Math.sqrt( sqrSin ),\n\t\t\t\t\tlen = Math.atan2( sin, cos * dir );\n\n\t\t\t\ts = Math.sin( s * len ) / sin;\n\t\t\t\tt = Math.sin( t * len ) / sin;\n\n\t\t\t}\n\n\t\t\tconst tDir = t * dir;\n\n\t\t\tx0 = x0 * s + x1 * tDir;\n\t\t\ty0 = y0 * s + y1 * tDir;\n\t\t\tz0 = z0 * s + z1 * tDir;\n\t\t\tw0 = w0 * s + w1 * tDir;\n\n\t\t\t// Normalize in case we just did a lerp:\n\t\t\tif ( s === 1 - t ) {\n\n\t\t\t\tconst f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 );\n\n\t\t\t\tx0 *= f;\n\t\t\t\ty0 *= f;\n\t\t\t\tz0 *= f;\n\t\t\t\tw0 *= f;\n\n\t\t\t}\n\n\t\t}\n\n\t\tdst[ dstOffset ] = x0;\n\t\tdst[ dstOffset + 1 ] = y0;\n\t\tdst[ dstOffset + 2 ] = z0;\n\t\tdst[ dstOffset + 3 ] = w0;\n\n\t}\n\n\tstatic multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) {\n\n\t\tconst x0 = src0[ srcOffset0 ];\n\t\tconst y0 = src0[ srcOffset0 + 1 ];\n\t\tconst z0 = src0[ srcOffset0 + 2 ];\n\t\tconst w0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 ];\n\t\tconst y1 = src1[ srcOffset1 + 1 ];\n\t\tconst z1 = src1[ srcOffset1 + 2 ];\n\t\tconst w1 = src1[ srcOffset1 + 3 ];\n\n\t\tdst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n\t\tdst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n\t\tdst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n\t\tdst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n\n\t\treturn dst;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget w() {\n\n\t\treturn this._w;\n\n\t}\n\n\tset w( value ) {\n\n\t\tthis._w = value;\n\t\tthis._onChangeCallback();\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\tthis._onChangeCallback();\n\n\t\treturn this;\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( quaternion ) {\n\n\t\tthis._x = quaternion.x;\n\t\tthis._y = quaternion.y;\n\t\tthis._z = quaternion.z;\n\t\tthis._w = quaternion.w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromEuler( euler, update = true ) {\n\n\t\tconst x = euler._x, y = euler._y, z = euler._z, order = euler._order;\n\n\t\t// http://www.mathworks.com/matlabcentral/fileexchange/\n\t\t// \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n\t\t//\tcontent/SpinCalc.m\n\n\t\tconst cos = Math.cos;\n\t\tconst sin = Math.sin;\n\n\t\tconst c1 = cos( x / 2 );\n\t\tconst c2 = cos( y / 2 );\n\t\tconst c3 = cos( z / 2 );\n\n\t\tconst s1 = sin( x / 2 );\n\t\tconst s2 = sin( y / 2 );\n\t\tconst s3 = sin( z / 2 );\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAxisAngle( axis, angle ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n\n\t\t// assumes axis is normalized\n\n\t\tconst halfAngle = angle / 2, s = Math.sin( halfAngle );\n\n\t\tthis._x = axis.x * s;\n\t\tthis._y = axis.y * s;\n\t\tthis._z = axis.z * s;\n\t\tthis._w = Math.cos( halfAngle );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = 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\t\ttrace = m11 + m22 + m33;\n\n\t\tif ( trace > 0 ) {\n\n\t\t\tconst s = 0.5 / Math.sqrt( trace + 1.0 );\n\n\t\t\tthis._w = 0.25 / s;\n\t\t\tthis._x = ( m32 - m23 ) * s;\n\t\t\tthis._y = ( m13 - m31 ) * s;\n\t\t\tthis._z = ( m21 - m12 ) * s;\n\n\t\t} else if ( m11 > m22 && m11 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );\n\n\t\t\tthis._w = ( m32 - m23 ) / s;\n\t\t\tthis._x = 0.25 * s;\n\t\t\tthis._y = ( m12 + m21 ) / s;\n\t\t\tthis._z = ( m13 + m31 ) / s;\n\n\t\t} else if ( m22 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );\n\n\t\t\tthis._w = ( m13 - m31 ) / s;\n\t\t\tthis._x = ( m12 + m21 ) / s;\n\t\t\tthis._y = 0.25 * s;\n\t\t\tthis._z = ( m23 + m32 ) / s;\n\n\t\t} else {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );\n\n\t\t\tthis._w = ( m21 - m12 ) / s;\n\t\t\tthis._x = ( m13 + m31 ) / s;\n\t\t\tthis._y = ( m23 + m32 ) / s;\n\t\t\tthis._z = 0.25 * s;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromUnitVectors( vFrom, vTo ) {\n\n\t\t// assumes direction vectors vFrom and vTo are normalized\n\n\t\tlet r = vFrom.dot( vTo ) + 1;\n\n\t\tif ( r < Number.EPSILON ) {\n\n\t\t\t// vFrom and vTo point in opposite directions\n\n\t\t\tr = 0;\n\n\t\t\tif ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) {\n\n\t\t\t\tthis._x = - vFrom.y;\n\t\t\t\tthis._y = vFrom.x;\n\t\t\t\tthis._z = 0;\n\t\t\t\tthis._w = r;\n\n\t\t\t} else {\n\n\t\t\t\tthis._x = 0;\n\t\t\t\tthis._y = - vFrom.z;\n\t\t\t\tthis._z = vFrom.y;\n\t\t\t\tthis._w = r;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n\n\t\t\tthis._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n\t\t\tthis._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n\t\t\tthis._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n\t\t\tthis._w = r;\n\n\t\t}\n\n\t\treturn this.normalize();\n\n\t}\n\n\tangleTo( q ) {\n\n\t\treturn 2 * Math.acos( Math.abs( clamp( this.dot( q ), - 1, 1 ) ) );\n\n\t}\n\n\trotateTowards( q, step ) {\n\n\t\tconst angle = this.angleTo( q );\n\n\t\tif ( angle === 0 ) return this;\n\n\t\tconst t = Math.min( 1, step / angle );\n\n\t\tthis.slerp( q, t );\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\treturn this.set( 0, 0, 0, 1 );\n\n\t}\n\n\tinvert() {\n\n\t\t// quaternion is assumed to have unit length\n\n\t\treturn this.conjugate();\n\n\t}\n\n\tconjugate() {\n\n\t\tthis._x *= - 1;\n\t\tthis._y *= - 1;\n\t\tthis._z *= - 1;\n\n\t\tthis._onChangeCallback();\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\tnormalize() {\n\n\t\tlet l = this.length();\n\n\t\tif ( l === 0 ) {\n\n\t\t\tthis._x = 0;\n\t\t\tthis._y = 0;\n\t\t\tthis._z = 0;\n\t\t\tthis._w = 1;\n\n\t\t} else {\n\n\t\t\tl = 1 / l;\n\n\t\t\tthis._x = this._x * l;\n\t\t\tthis._y = this._y * l;\n\t\t\tthis._z = this._z * l;\n\t\t\tthis._w = this._w * l;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( this, q );\n\n\t}\n\n\tpremultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( q, this );\n\n\t}\n\n\tmultiplyQuaternions( a, b ) {\n\n\t\t// from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n\n\t\tconst qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n\t\tconst qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n\n\t\tthis._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n\t\tthis._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n\t\tthis._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n\t\tthis._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerp( qb, t ) {\n\n\t\tif ( t === 0 ) return this;\n\t\tif ( t === 1 ) return this.copy( qb );\n\n\t\tconst x = this._x, y = this._y, z = this._z, w = this._w;\n\n\t\t// http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n\t\tlet cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n\t\tif ( cosHalfTheta < 0 ) {\n\n\t\t\tthis._w = - qb._w;\n\t\t\tthis._x = - qb._x;\n\t\t\tthis._y = - qb._y;\n\t\t\tthis._z = - qb._z;\n\n\t\t\tcosHalfTheta = - cosHalfTheta;\n\n\t\t} else {\n\n\t\t\tthis.copy( qb );\n\n\t\t}\n\n\t\tif ( cosHalfTheta >= 1.0 ) {\n\n\t\t\tthis._w = w;\n\t\t\tthis._x = x;\n\t\t\tthis._y = y;\n\t\t\tthis._z = z;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\n\t\tif ( sqrSinHalfTheta <= Number.EPSILON ) {\n\n\t\t\tconst s = 1 - t;\n\t\t\tthis._w = s * w + t * this._w;\n\t\t\tthis._x = s * x + t * this._x;\n\t\t\tthis._y = s * y + t * this._y;\n\t\t\tthis._z = s * z + t * this._z;\n\n\t\t\tthis.normalize(); // normalize calls _onChangeCallback()\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sinHalfTheta = Math.sqrt( sqrSinHalfTheta );\n\t\tconst halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta );\n\t\tconst ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta,\n\t\t\tratioB = Math.sin( t * halfTheta ) / sinHalfTheta;\n\n\t\tthis._w = ( w * ratioA + this._w * ratioB );\n\t\tthis._x = ( x * ratioA + this._x * ratioB );\n\t\tthis._y = ( y * ratioA + this._y * ratioB );\n\t\tthis._z = ( z * ratioA + this._z * ratioB );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerpQuaternions( qa, qb, t ) {\n\n\t\treturn this.copy( qa ).slerp( qb, t );\n\n\t}\n\n\trandom() {\n\n\t\t// sets this quaternion to a uniform random unit quaternnion\n\n\t\t// Ken Shoemake\n\t\t// Uniform random rotations\n\t\t// D. Kirk, editor, Graphics Gems III, pages 124-132. Academic Press, New York, 1992.\n\n\t\tconst theta1 = 2 * Math.PI * Math.random();\n\t\tconst theta2 = 2 * Math.PI * Math.random();\n\n\t\tconst x0 = Math.random();\n\t\tconst r1 = Math.sqrt( 1 - x0 );\n\t\tconst r2 = Math.sqrt( x0 );\n\n\t\treturn this.set(\n\t\t\tr1 * Math.sin( theta1 ),\n\t\t\tr1 * Math.cos( theta1 ),\n\t\t\tr2 * Math.sin( theta2 ),\n\t\t\tr2 * Math.cos( theta2 ),\n\t\t);\n\n\t}\n\n\tequals( quaternion ) {\n\n\t\treturn ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._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\tthis._onChangeCallback();\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\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.toArray();\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\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 { Quaternion };\n","import { clamp } from './MathUtils.js';\nimport { Quaternion } from './Quaternion.js';\n\nclass Vector3 {\n\n\tconstructor( x = 0, y = 0, z = 0 ) {\n\n\t\tVector3.prototype.isVector3 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t}\n\n\tset( x, y, z ) {\n\n\t\tif ( z === undefined ) z = this.z; // sprite.scale.set(x,y)\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\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\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\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\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\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 );\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\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\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\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\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\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\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\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\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\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\n\t\treturn this;\n\n\t}\n\n\tmultiplyVectors( 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\n\t\treturn this;\n\n\t}\n\n\tapplyEuler( euler ) {\n\n\t\treturn this.applyQuaternion( _quaternion.setFromEuler( euler ) );\n\n\t}\n\n\tapplyAxisAngle( axis, angle ) {\n\n\t\treturn this.applyQuaternion( _quaternion.setFromAxisAngle( axis, angle ) );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\treturn this.applyMatrix3( m ).normalize();\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tconst w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] );\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\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t// quaternion q is assumed to have unit length\n\n\t\tconst vx = this.x, vy = this.y, vz = this.z;\n\t\tconst qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n\n\t\t// t = 2 * cross( q.xyz, v );\n\t\tconst tx = 2 * ( qy * vz - qz * vy );\n\t\tconst ty = 2 * ( qz * vx - qx * vz );\n\t\tconst tz = 2 * ( qx * vy - qy * vx );\n\n\t\t// v + q.w * t + cross( q.xyz, t );\n\t\tthis.x = vx + qw * tx + qy * tz - qz * ty;\n\t\tthis.y = vy + qw * ty + qz * tx - qx * tz;\n\t\tthis.z = vz + qw * tz + qx * ty - qy * tx;\n\n\t\treturn this;\n\n\t}\n\n\tproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix );\n\n\t}\n\n\tunproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld );\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\t// input: THREE.Matrix4 affine matrix\n\t\t// vector interpreted as a direction\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z;\n\n\t\treturn this.normalize();\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\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\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\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\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\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\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\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\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\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\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\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;\n\n\t}\n\n\t// TODO lengthSquared?\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z );\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\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\n\t\treturn this;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.crossVectors( this, v );\n\n\t}\n\n\tcrossVectors( a, b ) {\n\n\t\tconst ax = a.x, ay = a.y, az = a.z;\n\t\tconst bx = b.x, by = b.y, bz = b.z;\n\n\t\tthis.x = ay * bz - az * by;\n\t\tthis.y = az * bx - ax * bz;\n\t\tthis.z = ax * by - ay * bx;\n\n\t\treturn this;\n\n\t}\n\n\tprojectOnVector( v ) {\n\n\t\tconst denominator = v.lengthSq();\n\n\t\tif ( denominator === 0 ) return this.set( 0, 0, 0 );\n\n\t\tconst scalar = v.dot( this ) / denominator;\n\n\t\treturn this.copy( v ).multiplyScalar( scalar );\n\n\t}\n\n\tprojectOnPlane( planeNormal ) {\n\n\t\t_vector.copy( this ).projectOnVector( planeNormal );\n\n\t\treturn this.sub( _vector );\n\n\t}\n\n\treflect( normal ) {\n\n\t\t// reflect incident vector off plane orthogonal to normal\n\t\t// normal is assumed to have unit length\n\n\t\treturn this.sub( _vector.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n\n\t\treturn dx * dx + dy * dy + dz * dz;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z );\n\n\t}\n\n\tsetFromSpherical( s ) {\n\n\t\treturn this.setFromSphericalCoords( s.radius, s.phi, s.theta );\n\n\t}\n\n\tsetFromSphericalCoords( radius, phi, theta ) {\n\n\t\tconst sinPhiRadius = Math.sin( phi ) * radius;\n\n\t\tthis.x = sinPhiRadius * Math.sin( theta );\n\t\tthis.y = Math.cos( phi ) * radius;\n\t\tthis.z = sinPhiRadius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCylindrical( c ) {\n\n\t\treturn this.setFromCylindricalCoords( c.radius, c.theta, c.y );\n\n\t}\n\n\tsetFromCylindricalCoords( radius, theta, y ) {\n\n\t\tthis.x = radius * Math.sin( theta );\n\t\tthis.y = y;\n\t\tthis.z = radius * Math.cos( theta );\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\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixScale( m ) {\n\n\t\tconst sx = this.setFromMatrixColumn( m, 0 ).length();\n\t\tconst sy = this.setFromMatrixColumn( m, 1 ).length();\n\t\tconst sz = this.setFromMatrixColumn( m, 2 ).length();\n\n\t\tthis.x = sx;\n\t\tthis.y = sy;\n\t\tthis.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixColumn( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 4 );\n\n\t}\n\n\tsetFromMatrix3Column( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 3 );\n\n\t}\n\n\tsetFromEuler( e ) {\n\n\t\tthis.x = e._x;\n\t\tthis.y = e._y;\n\t\tthis.z = e._z;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromColor( c ) {\n\n\t\tthis.x = c.r;\n\t\tthis.y = c.g;\n\t\tthis.z = c.b;\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 ) );\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\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\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\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\n\t\treturn this;\n\n\t}\n\n\trandomDirection() {\n\n\t\t// https://mathworld.wolfram.com/SpherePointPicking.html\n\n\t\tconst theta = Math.random() * Math.PI * 2;\n\t\tconst u = Math.random() * 2 - 1;\n\t\tconst c = Math.sqrt( 1 - u * u );\n\n\t\tthis.x = c * Math.cos( theta );\n\t\tthis.y = u;\n\t\tthis.z = c * Math.sin( theta );\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\n\t}\n\n}\n\nconst _vector = /*@__PURE__*/ new Vector3();\nconst _quaternion = /*@__PURE__*/ new Quaternion();\n\nexport { Vector3 };\n","import { WebGLCoordinateSystem, WebGPUCoordinateSystem } from '../constants.js';\nimport { Vector3 } from './Vector3.js';\n\nclass Matrix4 {\n\n\tconstructor( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tMatrix4.prototype.isMatrix4 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14;\n\t\tte[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24;\n\t\tte[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34;\n\t\tte[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Matrix4().fromArray( this.elements );\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ];\n\t\tte[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ];\n\t\tte[ 8 ] = me[ 8 ]; te[ 9 ] = me[ 9 ]; te[ 10 ] = me[ 10 ]; te[ 11 ] = me[ 11 ];\n\t\tte[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; te[ 15 ] = me[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tcopyPosition( m ) {\n\n\t\tconst te = this.elements, me = m.elements;\n\n\t\tte[ 12 ] = me[ 12 ];\n\t\tte[ 13 ] = me[ 13 ];\n\t\tte[ 14 ] = me[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix3( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 3 ], me[ 6 ], 0,\n\t\t\tme[ 1 ], me[ 4 ], me[ 7 ], 0,\n\t\t\tme[ 2 ], me[ 5 ], me[ 8 ], 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrixColumn( this, 0 );\n\t\tyAxis.setFromMatrixColumn( this, 1 );\n\t\tzAxis.setFromMatrixColumn( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmakeBasis( xAxis, yAxis, zAxis ) {\n\n\t\tthis.set(\n\t\t\txAxis.x, yAxis.x, zAxis.x, 0,\n\t\t\txAxis.y, yAxis.y, zAxis.y, 0,\n\t\t\txAxis.z, yAxis.z, zAxis.z, 0,\n\t\t\t0, 0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractRotation( m ) {\n\n\t\t// this method does not support reflection matrices\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tconst scaleX = 1 / _v1.setFromMatrixColumn( m, 0 ).length();\n\t\tconst scaleY = 1 / _v1.setFromMatrixColumn( m, 1 ).length();\n\t\tconst scaleZ = 1 / _v1.setFromMatrixColumn( m, 2 ).length();\n\n\t\tte[ 0 ] = me[ 0 ] * scaleX;\n\t\tte[ 1 ] = me[ 1 ] * scaleX;\n\t\tte[ 2 ] = me[ 2 ] * scaleX;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = me[ 4 ] * scaleY;\n\t\tte[ 5 ] = me[ 5 ] * scaleY;\n\t\tte[ 6 ] = me[ 6 ] * scaleY;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = me[ 8 ] * scaleZ;\n\t\tte[ 9 ] = me[ 9 ] * scaleZ;\n\t\tte[ 10 ] = me[ 10 ] * scaleZ;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromEuler( euler ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = euler.x, y = euler.y, z = euler.z;\n\t\tconst a = Math.cos( x ), b = Math.sin( x );\n\t\tconst c = Math.cos( y ), d = Math.sin( y );\n\t\tconst e = Math.cos( z ), f = Math.sin( z );\n\n\t\tif ( euler.order === 'XYZ' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - c * f;\n\t\t\tte[ 8 ] = d;\n\n\t\t\tte[ 1 ] = af + be * d;\n\t\t\tte[ 5 ] = ae - bf * d;\n\t\t\tte[ 9 ] = - b * c;\n\n\t\t\tte[ 2 ] = bf - ae * d;\n\t\t\tte[ 6 ] = be + af * d;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YXZ' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce + df * b;\n\t\t\tte[ 4 ] = de * b - cf;\n\t\t\tte[ 8 ] = a * d;\n\n\t\t\tte[ 1 ] = a * f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b;\n\n\t\t\tte[ 2 ] = cf * b - de;\n\t\t\tte[ 6 ] = df + ce * b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZXY' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce - df * b;\n\t\t\tte[ 4 ] = - a * f;\n\t\t\tte[ 8 ] = de + cf * b;\n\n\t\t\tte[ 1 ] = cf + de * b;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = df - ce * b;\n\n\t\t\tte[ 2 ] = - a * d;\n\t\t\tte[ 6 ] = b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZYX' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = be * d - af;\n\t\t\tte[ 8 ] = ae * d + bf;\n\n\t\t\tte[ 1 ] = c * f;\n\t\t\tte[ 5 ] = bf * d + ae;\n\t\t\tte[ 9 ] = af * d - be;\n\n\t\t\tte[ 2 ] = - d;\n\t\t\tte[ 6 ] = b * c;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YZX' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = bd - ac * f;\n\t\t\tte[ 8 ] = bc * f + ad;\n\n\t\t\tte[ 1 ] = f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b * e;\n\n\t\t\tte[ 2 ] = - d * e;\n\t\t\tte[ 6 ] = ad * f + bc;\n\t\t\tte[ 10 ] = ac - bd * f;\n\n\t\t} else if ( euler.order === 'XZY' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - f;\n\t\t\tte[ 8 ] = d * e;\n\n\t\t\tte[ 1 ] = ac * f + bd;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = ad * f - bc;\n\n\t\t\tte[ 2 ] = bc * f - ad;\n\t\t\tte[ 6 ] = b * e;\n\t\t\tte[ 10 ] = bd * f + ac;\n\n\t\t}\n\n\t\t// bottom row\n\t\tte[ 3 ] = 0;\n\t\tte[ 7 ] = 0;\n\t\tte[ 11 ] = 0;\n\n\t\t// last column\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromQuaternion( q ) {\n\n\t\treturn this.compose( _zero, q, _one );\n\n\t}\n\n\tlookAt( eye, target, up ) {\n\n\t\tconst te = this.elements;\n\n\t\t_z.subVectors( eye, target );\n\n\t\tif ( _z.lengthSq() === 0 ) {\n\n\t\t\t// eye and target are in the same position\n\n\t\t\t_z.z = 1;\n\n\t\t}\n\n\t\t_z.normalize();\n\t\t_x.crossVectors( up, _z );\n\n\t\tif ( _x.lengthSq() === 0 ) {\n\n\t\t\t// up and z are parallel\n\n\t\t\tif ( Math.abs( up.z ) === 1 ) {\n\n\t\t\t\t_z.x += 0.0001;\n\n\t\t\t} else {\n\n\t\t\t\t_z.z += 0.0001;\n\n\t\t\t}\n\n\t\t\t_z.normalize();\n\t\t\t_x.crossVectors( up, _z );\n\n\t\t}\n\n\t\t_x.normalize();\n\t\t_y.crossVectors( _z, _x );\n\n\t\tte[ 0 ] = _x.x; te[ 4 ] = _y.x; te[ 8 ] = _z.x;\n\t\tte[ 1 ] = _x.y; te[ 5 ] = _y.y; te[ 9 ] = _z.y;\n\t\tte[ 2 ] = _x.z; te[ 6 ] = _y.z; te[ 10 ] = _z.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ];\n\t\tconst a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ];\n\t\tconst b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n\t\tte[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n\t\tte[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n\t\tte[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n\t\tte[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n\t\tte[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n\t\tte[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n\t\tte[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n\t\tte[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n\t\tte[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n\n\t\tte[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n\t\tte[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n\t\tte[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n\t\tte[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s;\n\t\tte[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s;\n\t\tte[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s;\n\t\tte[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ];\n\t\tconst n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ];\n\t\tconst n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ];\n\t\tconst n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ];\n\n\t\t//TODO: make this more efficient\n\t\t//( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n\t\treturn (\n\t\t\tn41 * (\n\t\t\t\t+ n14 * n23 * n32\n\t\t\t\t - n13 * n24 * n32\n\t\t\t\t - n14 * n22 * n33\n\t\t\t\t + n12 * n24 * n33\n\t\t\t\t + n13 * n22 * n34\n\t\t\t\t - n12 * n23 * n34\n\t\t\t) +\n\t\t\tn42 * (\n\t\t\t\t+ n11 * n23 * n34\n\t\t\t\t - n11 * n24 * n33\n\t\t\t\t + n14 * n21 * n33\n\t\t\t\t - n13 * n21 * n34\n\t\t\t\t + n13 * n24 * n31\n\t\t\t\t - n14 * n23 * n31\n\t\t\t) +\n\t\t\tn43 * (\n\t\t\t\t+ n11 * n24 * n32\n\t\t\t\t - n11 * n22 * n34\n\t\t\t\t - n14 * n21 * n32\n\t\t\t\t + n12 * n21 * n34\n\t\t\t\t + n14 * n22 * n31\n\t\t\t\t - n12 * n24 * n31\n\t\t\t) +\n\t\t\tn44 * (\n\t\t\t\t- n13 * n22 * n31\n\t\t\t\t - n11 * n23 * n32\n\t\t\t\t + n11 * n22 * n33\n\t\t\t\t + n13 * n21 * n32\n\t\t\t\t - n12 * n21 * n33\n\t\t\t\t + n12 * n23 * n31\n\t\t\t)\n\n\t\t);\n\n\t}\n\n\ttranspose() {\n\n\t\tconst te = this.elements;\n\t\tlet tmp;\n\n\t\ttmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp;\n\t\ttmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp;\n\t\ttmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp;\n\n\t\ttmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp;\n\t\ttmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp;\n\t\ttmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tsetPosition( x, y, z ) {\n\n\t\tconst te = this.elements;\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tte[ 12 ] = x.x;\n\t\t\tte[ 13 ] = x.y;\n\t\t\tte[ 14 ] = x.z;\n\n\t\t} else {\n\n\t\t\tte[ 12 ] = x;\n\t\t\tte[ 13 ] = y;\n\t\t\tte[ 14 ] = z;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tinvert() {\n\n\t\t// based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ], n41 = te[ 3 ],\n\t\t\tn12 = te[ 4 ], n22 = te[ 5 ], n32 = te[ 6 ], n42 = te[ 7 ],\n\t\t\tn13 = te[ 8 ], n23 = te[ 9 ], n33 = te[ 10 ], n43 = te[ 11 ],\n\t\t\tn14 = te[ 12 ], n24 = te[ 13 ], n34 = te[ 14 ], n44 = te[ 15 ],\n\n\t\t\tt11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n\t\t\tt12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n\t\t\tt13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n\t\t\tt14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n\n\t\tconst det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv;\n\t\tte[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv;\n\t\tte[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv;\n\n\t\tte[ 4 ] = t12 * detInv;\n\t\tte[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv;\n\t\tte[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv;\n\t\tte[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv;\n\n\t\tte[ 8 ] = t13 * detInv;\n\t\tte[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv;\n\t\tte[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv;\n\t\tte[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv;\n\n\t\tte[ 12 ] = t14 * detInv;\n\t\tte[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv;\n\t\tte[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv;\n\t\tte[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\tscale( v ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = v.x, y = v.y, z = v.z;\n\n\t\tte[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z;\n\t\tte[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z;\n\t\tte[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z;\n\t\tte[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxScaleOnAxis() {\n\n\t\tconst te = this.elements;\n\n\t\tconst scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ];\n\t\tconst scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ];\n\t\tconst scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ];\n\n\t\treturn Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) );\n\n\t}\n\n\tmakeTranslation( x, y, z ) {\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x.x,\n\t\t\t\t0, 1, 0, x.y,\n\t\t\t\t0, 0, 1, x.z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x,\n\t\t\t\t0, 1, 0, y,\n\t\t\t\t0, 0, 1, z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationX( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, c, - s, 0,\n\t\t\t0, s, c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationY( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t c, 0, s, 0,\n\t\t\t 0, 1, 0, 0,\n\t\t\t- s, 0, c, 0,\n\t\t\t 0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationZ( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0, 0,\n\t\t\ts, c, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationAxis( axis, angle ) {\n\n\t\t// Based on http://www.gamedev.net/reference/articles/article1199.asp\n\n\t\tconst c = Math.cos( angle );\n\t\tconst s = Math.sin( angle );\n\t\tconst t = 1 - c;\n\t\tconst x = axis.x, y = axis.y, z = axis.z;\n\t\tconst tx = t * x, ty = t * y;\n\n\t\tthis.set(\n\n\t\t\ttx * x + c, tx * y - s * z, tx * z + s * y, 0,\n\t\t\ttx * y + s * z, ty * y + c, ty * z - s * x, 0,\n\t\t\ttx * z - s * y, ty * z + s * x, t * z * z + c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0, 0,\n\t\t\t0, y, 0, 0,\n\t\t\t0, 0, z, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeShear( xy, xz, yx, yz, zx, zy ) {\n\n\t\tthis.set(\n\n\t\t\t1, yx, zx, 0,\n\t\t\txy, 1, zy, 0,\n\t\t\txz, yz, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\n\t\tconst x2 = x + x,\ty2 = y + y, z2 = z + z;\n\t\tconst xx = x * x2, xy = x * y2, xz = x * z2;\n\t\tconst yy = y * y2, yz = y * z2, zz = z * z2;\n\t\tconst wx = w * x2, wy = w * y2, wz = w * z2;\n\n\t\tconst sx = scale.x, sy = scale.y, sz = scale.z;\n\n\t\tte[ 0 ] = ( 1 - ( yy + zz ) ) * sx;\n\t\tte[ 1 ] = ( xy + wz ) * sx;\n\t\tte[ 2 ] = ( xz - wy ) * sx;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = ( xy - wz ) * sy;\n\t\tte[ 5 ] = ( 1 - ( xx + zz ) ) * sy;\n\t\tte[ 6 ] = ( yz + wx ) * sy;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = ( xz + wy ) * sz;\n\t\tte[ 9 ] = ( yz - wx ) * sz;\n\t\tte[ 10 ] = ( 1 - ( xx + yy ) ) * sz;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = position.x;\n\t\tte[ 13 ] = position.y;\n\t\tte[ 14 ] = position.z;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tdecompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tlet sx = _v1.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();\n\t\tconst sy = _v1.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length();\n\t\tconst sz = _v1.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length();\n\n\t\t// if determine is negative, we need to invert one scale\n\t\tconst det = this.determinant();\n\t\tif ( det < 0 ) sx = - sx;\n\n\t\tposition.x = te[ 12 ];\n\t\tposition.y = te[ 13 ];\n\t\tposition.z = te[ 14 ];\n\n\t\t// scale the rotation part\n\t\t_m1.copy( this );\n\n\t\tconst invSX = 1 / sx;\n\t\tconst invSY = 1 / sy;\n\t\tconst invSZ = 1 / sz;\n\n\t\t_m1.elements[ 0 ] *= invSX;\n\t\t_m1.elements[ 1 ] *= invSX;\n\t\t_m1.elements[ 2 ] *= invSX;\n\n\t\t_m1.elements[ 4 ] *= invSY;\n\t\t_m1.elements[ 5 ] *= invSY;\n\t\t_m1.elements[ 6 ] *= invSY;\n\n\t\t_m1.elements[ 8 ] *= invSZ;\n\t\t_m1.elements[ 9 ] *= invSZ;\n\t\t_m1.elements[ 10 ] *= invSZ;\n\n\t\tquaternion.setFromRotationMatrix( _m1 );\n\n\t\tscale.x = sx;\n\t\tscale.y = sy;\n\t\tscale.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tmakePerspective( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = 2 * near / ( right - left );\n\t\tconst y = 2 * near / ( top - bottom );\n\n\t\tconst a = ( right + left ) / ( right - left );\n\t\tconst b = ( top + bottom ) / ( top - bottom );\n\n\t\tlet c, d;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tc = - ( far + near ) / ( far - near );\n\t\t\td = ( - 2 * far * near ) / ( far - near );\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tc = - far / ( far - near );\n\t\t\td = ( - far * near ) / ( far - near );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makePerspective(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = x;\tte[ 4 ] = 0;\tte[ 8 ] = a; \tte[ 12 ] = 0;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = y;\tte[ 9 ] = b; \tte[ 13 ] = 0;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = c; \tte[ 14 ] = d;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = - 1;\tte[ 15 ] = 0;\n\n\t\treturn this;\n\n\t}\n\n\tmakeOrthographic( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst w = 1.0 / ( right - left );\n\t\tconst h = 1.0 / ( top - bottom );\n\t\tconst p = 1.0 / ( far - near );\n\n\t\tconst x = ( right + left ) * w;\n\t\tconst y = ( top + bottom ) * h;\n\n\t\tlet z, zInv;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tz = ( far + near ) * p;\n\t\t\tzInv = - 2 * p;\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tz = near * p;\n\t\t\tzInv = - 1 * p;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makeOrthographic(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = 2 * w;\tte[ 4 ] = 0;\t\tte[ 8 ] = 0; \t\tte[ 12 ] = - x;\n\t\tte[ 1 ] = 0; \t\tte[ 5 ] = 2 * h;\tte[ 9 ] = 0; \t\tte[ 13 ] = - y;\n\t\tte[ 2 ] = 0; \t\tte[ 6 ] = 0;\t\tte[ 10 ] = zInv;\tte[ 14 ] = - z;\n\t\tte[ 3 ] = 0; \t\tte[ 7 ] = 0;\t\tte[ 11 ] = 0;\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\t\tarray[ offset + 9 ] = te[ 9 ];\n\t\tarray[ offset + 10 ] = te[ 10 ];\n\t\tarray[ offset + 11 ] = te[ 11 ];\n\n\t\tarray[ offset + 12 ] = te[ 12 ];\n\t\tarray[ offset + 13 ] = te[ 13 ];\n\t\tarray[ offset + 14 ] = te[ 14 ];\n\t\tarray[ offset + 15 ] = te[ 15 ];\n\n\t\treturn array;\n\n\t}\n\n}\n\nconst _v1 = /*@__PURE__*/ new Vector3();\nconst _m1 = /*@__PURE__*/ new Matrix4();\nconst _zero = /*@__PURE__*/ new Vector3( 0, 0, 0 );\nconst _one = /*@__PURE__*/ new Vector3( 1, 1, 1 );\nconst _x = /*@__PURE__*/ new Vector3();\nconst _y = /*@__PURE__*/ new Vector3();\nconst _z = /*@__PURE__*/ new Vector3();\n\nexport { Matrix4 };\n","import { clamp } from './MathUtils.js';\n\nclass Vector2 {\n\n\tconstructor( x = 0, y = 0 ) {\n\n\t\tVector2.prototype.isVector2 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.x;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.x = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.y;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.y = value;\n\n\t}\n\n\tset( x, y ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = 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\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\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\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 );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\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\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += 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\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\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\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= 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\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\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\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\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ];\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ];\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\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\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\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\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\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\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\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\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.x * v.y - this.y * v.x;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tangle() {\n\n\t\t// computes the angle in radians with respect to the positive x-axis\n\n\t\tconst angle = Math.atan2( - this.y, - this.x ) + Math.PI;\n\n\t\treturn angle;\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y;\n\t\treturn dx * dx + dy * dy;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );\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\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\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\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\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\n\t\treturn this;\n\n\t}\n\n\trotateAround( center, angle ) {\n\n\t\tconst c = Math.cos( angle ), s = Math.sin( angle );\n\n\t\tconst x = this.x - center.x;\n\t\tconst y = this.y - center.y;\n\n\t\tthis.x = x * c - y * s + center.x;\n\t\tthis.y = x * s + y * c + center.y;\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\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\n\t}\n\n}\n\nexport { Vector2 };\n","import { Vector3 } from './Vector3.js';\n\nclass Box3 {\n\n\tconstructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) {\n\n\t\tthis.isBox3 = true;\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromArray( array ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = array.length; i < il; i += 3 ) {\n\n\t\t\tthis.expandByPoint( _vector.fromArray( array, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromBufferAttribute( attribute ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = attribute.count; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( _vector.fromBufferAttribute( attribute, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector.copy( size ).multiplyScalar( 0.5 );\n\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromObject( object, precise = false ) {\n\n\t\tthis.makeEmpty();\n\n\t\treturn this.expandByObject( object, precise );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = this.min.z = + Infinity;\n\t\tthis.max.x = this.max.y = this.max.z = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\texpandByObject( object, precise = false ) {\n\n\t\t// Computes the world-axis-aligned bounding box of an object (including its children),\n\t\t// accounting for both the object's, and children's, world transforms\n\n\t\tobject.updateWorldMatrix( false, false );\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry !== undefined ) {\n\n\t\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\t\t// precise AABB computation based on vertex data requires at least a position attribute.\n\t\t\t// instancing isn't supported so far and uses the normal (conservative) code path.\n\n\t\t\tif ( precise === true && positionAttribute !== undefined && object.isInstancedMesh !== true ) {\n\n\t\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t\tif ( object.isMesh === true ) {\n\n\t\t\t\t\t\tobject.getVertexPosition( i, _vector );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_vector.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_vector.applyMatrix4( object.matrixWorld );\n\t\t\t\t\tthis.expandByPoint( _vector );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( object.boundingBox !== undefined ) {\n\n\t\t\t\t\t// object-level bounding box\n\n\t\t\t\t\tif ( object.boundingBox === null ) {\n\n\t\t\t\t\t\tobject.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box.copy( object.boundingBox );\n\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// geometry-level bounding box\n\n\t\t\t\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\t\t\t\tgeometry.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box.copy( geometry.boundingBox );\n\n\t\t\t\t}\n\n\t\t\t\t_box.applyMatrix4( object.matrixWorld );\n\n\t\t\t\tthis.union( _box );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tthis.expandByObject( children[ i ], precise );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x >= this.min.x && point.x <= this.max.x &&\n\t\t\tpoint.y >= this.min.y && point.y <= this.max.y &&\n\t\t\tpoint.z >= this.min.z && point.z <= this.max.z;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y &&\n\t\t\tthis.min.z <= box.min.z && box.max.z <= this.max.z;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y ),\n\t\t\t( point.z - this.min.z ) / ( this.max.z - this.min.z )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 6 splitting planes to rule out intersections.\n\t\treturn box.max.x >= this.min.x && box.min.x <= this.max.x &&\n\t\t\tbox.max.y >= this.min.y && box.min.y <= this.max.y &&\n\t\t\tbox.max.z >= this.min.z && box.min.z <= this.max.z;\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\t// Find the point on the AABB closest to the sphere center.\n\t\tthis.clampPoint( sphere.center, _vector );\n\n\t\t// If that point is inside the sphere, the AABB and sphere intersect.\n\t\treturn _vector.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// We compute the minimum and maximum dot product values. If those values\n\t\t// are on the same side (back or front) of the plane, then there is no intersection.\n\n\t\tlet min, max;\n\n\t\tif ( plane.normal.x > 0 ) {\n\n\t\t\tmin = plane.normal.x * this.min.x;\n\t\t\tmax = plane.normal.x * this.max.x;\n\n\t\t} else {\n\n\t\t\tmin = plane.normal.x * this.max.x;\n\t\t\tmax = plane.normal.x * this.min.x;\n\n\t\t}\n\n\t\tif ( plane.normal.y > 0 ) {\n\n\t\t\tmin += plane.normal.y * this.min.y;\n\t\t\tmax += plane.normal.y * this.max.y;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.y * this.max.y;\n\t\t\tmax += plane.normal.y * this.min.y;\n\n\t\t}\n\n\t\tif ( plane.normal.z > 0 ) {\n\n\t\t\tmin += plane.normal.z * this.min.z;\n\t\t\tmax += plane.normal.z * this.max.z;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.z * this.max.z;\n\t\t\tmax += plane.normal.z * this.min.z;\n\n\t\t}\n\n\t\treturn ( min <= - plane.constant && max >= - plane.constant );\n\n\t}\n\n\tintersectsTriangle( triangle ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// compute box center and extents\n\t\tthis.getCenter( _center );\n\t\t_extents.subVectors( this.max, _center );\n\n\t\t// translate triangle to aabb origin\n\t\t_v0.subVectors( triangle.a, _center );\n\t\t_v1.subVectors( triangle.b, _center );\n\t\t_v2.subVectors( triangle.c, _center );\n\n\t\t// compute edge vectors for triangle\n\t\t_f0.subVectors( _v1, _v0 );\n\t\t_f1.subVectors( _v2, _v1 );\n\t\t_f2.subVectors( _v0, _v2 );\n\n\t\t// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\n\t\t// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\n\t\t// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\n\t\tlet axes = [\n\t\t\t0, - _f0.z, _f0.y, 0, - _f1.z, _f1.y, 0, - _f2.z, _f2.y,\n\t\t\t_f0.z, 0, - _f0.x, _f1.z, 0, - _f1.x, _f2.z, 0, - _f2.x,\n\t\t\t- _f0.y, _f0.x, 0, - _f1.y, _f1.x, 0, - _f2.y, _f2.x, 0\n\t\t];\n\t\tif ( ! satForAxes( axes, _v0, _v1, _v2, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// test 3 face normals from the aabb\n\t\taxes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];\n\t\tif ( ! satForAxes( axes, _v0, _v1, _v2, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// finally testing the face normal of the triangle\n\t\t// use already existing triangle edge vectors here\n\t\t_triangleNormal.crossVectors( _f0, _f1 );\n\t\taxes = [ _triangleNormal.x, _triangleNormal.y, _triangleNormal.z ];\n\n\t\treturn satForAxes( axes, _v0, _v1, _v2, _extents );\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector ).distanceTo( point );\n\n\t}\n\n\tgetBoundingSphere( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\ttarget.makeEmpty();\n\n\t\t} else {\n\n\t\t\tthis.getCenter( target.center );\n\n\t\t\ttarget.radius = this.getSize( _vector ).length() * 0.5;\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\t// ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\t// transform of empty box is an empty box.\n\t\tif ( this.isEmpty() ) return this;\n\n\t\t// NOTE: I am using a binary pattern to specify all 2^3 combinations below\n\t\t_points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000\n\t\t_points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001\n\t\t_points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010\n\t\t_points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011\n\t\t_points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100\n\t\t_points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101\n\t\t_points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110\n\t\t_points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111\n\n\t\tthis.setFromPoints( _points );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nconst _points = [\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3()\n];\n\nconst _vector = /*@__PURE__*/ new Vector3();\n\nconst _box = /*@__PURE__*/ new Box3();\n\n// triangle centered vertices\n\nconst _v0 = /*@__PURE__*/ new Vector3();\nconst _v1 = /*@__PURE__*/ new Vector3();\nconst _v2 = /*@__PURE__*/ new Vector3();\n\n// triangle edge vectors\n\nconst _f0 = /*@__PURE__*/ new Vector3();\nconst _f1 = /*@__PURE__*/ new Vector3();\nconst _f2 = /*@__PURE__*/ new Vector3();\n\nconst _center = /*@__PURE__*/ new Vector3();\nconst _extents = /*@__PURE__*/ new Vector3();\nconst _triangleNormal = /*@__PURE__*/ new Vector3();\nconst _testAxis = /*@__PURE__*/ new Vector3();\n\nfunction satForAxes( axes, v0, v1, v2, extents ) {\n\n\tfor ( let i = 0, j = axes.length - 3; i <= j; i += 3 ) {\n\n\t\t_testAxis.fromArray( axes, i );\n\t\t// project the aabb onto the separating axis\n\t\tconst r = extents.x * Math.abs( _testAxis.x ) + extents.y * Math.abs( _testAxis.y ) + extents.z * Math.abs( _testAxis.z );\n\t\t// project all 3 vertices of the triangle onto the separating axis\n\t\tconst p0 = v0.dot( _testAxis );\n\t\tconst p1 = v1.dot( _testAxis );\n\t\tconst p2 = v2.dot( _testAxis );\n\t\t// actual test, basically see if either of the most extreme of the triangle points intersects r\n\t\tif ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {\n\n\t\t\t// points of the projected triangle are outside the projected half-length of the aabb\n\t\t\t// the axis is separating and we can exit\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn true;\n\n}\n\nexport { Box3 };\n","import { Box3 } from './Box3.js';\nimport { Vector3 } from './Vector3.js';\n\nconst _box = /*@__PURE__*/ new Box3();\nconst _v1 = /*@__PURE__*/ new Vector3();\nconst _v2 = /*@__PURE__*/ new Vector3();\n\nclass Sphere {\n\n\tconstructor( center = new Vector3(), radius = - 1 ) {\n\n\t\tthis.isSphere = true;\n\n\t\tthis.center = center;\n\t\tthis.radius = radius;\n\n\t}\n\n\tset( center, radius ) {\n\n\t\tthis.center.copy( center );\n\t\tthis.radius = radius;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points, optionalCenter ) {\n\n\t\tconst center = this.center;\n\n\t\tif ( optionalCenter !== undefined ) {\n\n\t\t\tcenter.copy( optionalCenter );\n\n\t\t} else {\n\n\t\t\t_box.setFromPoints( points ).getCenter( center );\n\n\t\t}\n\n\t\tlet maxRadiusSq = 0;\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) );\n\n\t\t}\n\n\t\tthis.radius = Math.sqrt( maxRadiusSq );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( sphere ) {\n\n\t\tthis.center.copy( sphere.center );\n\t\tthis.radius = sphere.radius;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\treturn ( this.radius < 0 );\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.center.set( 0, 0, 0 );\n\t\tthis.radius = - 1;\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn ( point.distanceTo( this.center ) - this.radius );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst radiusSum = this.radius + sphere.radius;\n\n\t\treturn sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsSphere( this );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\treturn Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\tconst deltaLengthSq = this.center.distanceToSquared( point );\n\n\t\ttarget.copy( point );\n\n\t\tif ( deltaLengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\ttarget.sub( this.center ).normalize();\n\t\t\ttarget.multiplyScalar( this.radius ).add( this.center );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tgetBoundingBox( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\t// Empty sphere produces empty bounding box\n\t\t\ttarget.makeEmpty();\n\t\t\treturn target;\n\n\t\t}\n\n\t\ttarget.set( this.center, this.center );\n\t\ttarget.expandByScalar( this.radius );\n\n\t\treturn target;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.center.applyMatrix4( matrix );\n\t\tthis.radius = this.radius * matrix.getMaxScaleOnAxis();\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.center.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.center.copy( point );\n\n\t\t\tthis.radius = 0;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\t_v1.subVectors( point, this.center );\n\n\t\tconst lengthSq = _v1.lengthSq();\n\n\t\tif ( lengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\t// calculate the minimal sphere\n\n\t\t\tconst length = Math.sqrt( lengthSq );\n\n\t\t\tconst delta = ( length - this.radius ) * 0.5;\n\n\t\t\tthis.center.addScaledVector( _v1, delta / length );\n\n\t\t\tthis.radius += delta;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunion( sphere ) {\n\n\t\tif ( sphere.isEmpty() ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.copy( sphere );\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.center.equals( sphere.center ) === true ) {\n\n\t\t\t this.radius = Math.max( this.radius, sphere.radius );\n\n\t\t} else {\n\n\t\t\t_v2.subVectors( sphere.center, this.center ).setLength( sphere.radius );\n\n\t\t\tthis.expandByPoint( _v1.copy( sphere.center ).add( _v2 ) );\n\n\t\t\tthis.expandByPoint( _v1.copy( sphere.center ).sub( _v2 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sphere ) {\n\n\t\treturn sphere.center.equals( this.center ) && ( sphere.radius === this.radius );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nexport { Sphere };\n","class Matrix3 {\n\n\tconstructor( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tMatrix3.prototype.isMatrix3 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n21, n22, n23, n31, n32, n33 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31;\n\t\tte[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32;\n\t\tte[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ];\n\t\tte[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ];\n\t\tte[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrix3Column( this, 0 );\n\t\tyAxis.setFromMatrix3Column( this, 1 );\n\t\tzAxis.setFromMatrix3Column( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix4( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 4 ], me[ 8 ],\n\t\t\tme[ 1 ], me[ 5 ], me[ 9 ],\n\t\t\tme[ 2 ], me[ 6 ], me[ 10 ]\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 3 ], a13 = ae[ 6 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 4 ], a23 = ae[ 7 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 5 ], a33 = ae[ 8 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 3 ], b13 = be[ 6 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 4 ], b23 = be[ 7 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 5 ], b33 = be[ 8 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31;\n\t\tte[ 3 ] = a11 * b12 + a12 * b22 + a13 * b32;\n\t\tte[ 6 ] = a11 * b13 + a12 * b23 + a13 * b33;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31;\n\t\tte[ 4 ] = a21 * b12 + a22 * b22 + a23 * b32;\n\t\tte[ 7 ] = a21 * b13 + a22 * b23 + a23 * b33;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31;\n\t\tte[ 5 ] = a31 * b12 + a32 * b22 + a33 * b32;\n\t\tte[ 8 ] = a31 * b13 + a32 * b23 + a33 * b33;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s;\n\t\tte[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s;\n\t\tte[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst a = te[ 0 ], b = te[ 1 ], c = te[ 2 ],\n\t\t\td = te[ 3 ], e = te[ 4 ], f = te[ 5 ],\n\t\t\tg = te[ 6 ], h = te[ 7 ], i = te[ 8 ];\n\n\t\treturn a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n\n\t}\n\n\tinvert() {\n\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ],\n\t\t\tn12 = te[ 3 ], n22 = te[ 4 ], n32 = te[ 5 ],\n\t\t\tn13 = te[ 6 ], n23 = te[ 7 ], n33 = te[ 8 ],\n\n\t\t\tt11 = n33 * n22 - n32 * n23,\n\t\t\tt12 = n32 * n13 - n33 * n12,\n\t\t\tt13 = n23 * n12 - n22 * n13,\n\n\t\t\tdet = n11 * t11 + n21 * t12 + n31 * t13;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv;\n\t\tte[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv;\n\n\t\tte[ 3 ] = t12 * detInv;\n\t\tte[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv;\n\t\tte[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv;\n\n\t\tte[ 6 ] = t13 * detInv;\n\t\tte[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv;\n\t\tte[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\ttranspose() {\n\n\t\tlet tmp;\n\t\tconst m = this.elements;\n\n\t\ttmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp;\n\t\ttmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp;\n\t\ttmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tgetNormalMatrix( matrix4 ) {\n\n\t\treturn this.setFromMatrix4( matrix4 ).invert().transpose();\n\n\t}\n\n\ttransposeIntoArray( r ) {\n\n\t\tconst m = this.elements;\n\n\t\tr[ 0 ] = m[ 0 ];\n\t\tr[ 1 ] = m[ 3 ];\n\t\tr[ 2 ] = m[ 6 ];\n\t\tr[ 3 ] = m[ 1 ];\n\t\tr[ 4 ] = m[ 4 ];\n\t\tr[ 5 ] = m[ 7 ];\n\t\tr[ 6 ] = m[ 2 ];\n\t\tr[ 7 ] = m[ 5 ];\n\t\tr[ 8 ] = m[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetUvTransform( tx, ty, sx, sy, rotation, cx, cy ) {\n\n\t\tconst c = Math.cos( rotation );\n\t\tconst s = Math.sin( rotation );\n\n\t\tthis.set(\n\t\t\tsx * c, sx * s, - sx * ( c * cx + s * cy ) + cx + tx,\n\t\t\t- sy * s, sy * c, - sy * ( - s * cx + c * cy ) + cy + ty,\n\t\t\t0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tscale( sx, sy ) {\n\n\t\tthis.premultiply( _m3.makeScale( sx, sy ) );\n\n\t\treturn this;\n\n\t}\n\n\trotate( theta ) {\n\n\t\tthis.premultiply( _m3.makeRotation( - theta ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( tx, ty ) {\n\n\t\tthis.premultiply( _m3.makeTranslation( tx, ty ) );\n\n\t\treturn this;\n\n\t}\n\n\t// for 2D Transforms\n\n\tmakeTranslation( x, y ) {\n\n\t\tif ( x.isVector2 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x.x,\n\t\t\t\t0, 1, x.y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x,\n\t\t\t\t0, 1, y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotation( theta ) {\n\n\t\t// counterclockwise\n\n\t\tconst c = Math.cos( theta );\n\t\tconst s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0,\n\t\t\ts, c, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0,\n\t\t\t0, y, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\n\t\treturn array;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().fromArray( this.elements );\n\n\t}\n\n}\n\nconst _m3 = /*@__PURE__*/ new Matrix3();\n\nexport { Matrix3 };\n","/**\n * https://github.com/mrdoob/eventdispatcher.js/\n */\n\nclass EventDispatcher {\n\n\taddEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) this._listeners = {};\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners[ type ] === undefined ) {\n\n\t\t\tlisteners[ type ] = [];\n\n\t\t}\n\n\t\tif ( listeners[ type ].indexOf( listener ) === - 1 ) {\n\n\t\t\tlisteners[ type ].push( listener );\n\n\t\t}\n\n\t}\n\n\thasEventListener( type, listener ) {\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners === undefined ) return false;\n\n\t\treturn listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;\n\n\t}\n\n\tremoveEventListener( type, listener ) {\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners === undefined ) return;\n\n\t\tconst listenerArray = listeners[ type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tconst index = listenerArray.indexOf( listener );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\tlistenerArray.splice( index, 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners === undefined ) return;\n\n\t\tconst listenerArray = listeners[ event.type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tevent.target = this;\n\n\t\t\t// Make a copy, in case listeners are removed while iterating.\n\t\t\tconst array = listenerArray.slice( 0 );\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tarray[ i ].call( this, event );\n\n\t\t\t}\n\n\t\t\tevent.target = null;\n\n\t\t}\n\n\t}\n\n}\n\n\nexport { EventDispatcher };\n","import { Quaternion } from './Quaternion.js';\nimport { Matrix4 } from './Matrix4.js';\nimport { clamp } from './MathUtils.js';\n\nconst _matrix = /*@__PURE__*/ new Matrix4();\nconst _quaternion = /*@__PURE__*/ new Quaternion();\n\nclass Euler {\n\n\tconstructor( x = 0, y = 0, z = 0, order = Euler.DEFAULT_ORDER ) {\n\n\t\tthis.isEuler = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget order() {\n\n\t\treturn this._order;\n\n\t}\n\n\tset order( value ) {\n\n\t\tthis._order = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, order = this._order ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._order );\n\n\t}\n\n\tcopy( euler ) {\n\n\t\tthis._x = euler._x;\n\t\tthis._y = euler._y;\n\t\tthis._z = euler._z;\n\t\tthis._order = euler._order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m, order = this._order, update = true ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements;\n\t\tconst m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ];\n\t\tconst m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ];\n\t\tconst m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\n\t\t\t\tthis._y = Math.asin( clamp( m13, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m13 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\n\t\t\t\tthis._x = Math.asin( - clamp( m23, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m23 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\n\t\t\t\tthis._x = Math.asin( clamp( m32, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m32 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = 0;\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\n\t\t\t\tthis._y = Math.asin( - clamp( m31, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m31 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\n\t\t\t\tthis._z = Math.asin( clamp( m21, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m21 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m22 );\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\n\t\t\t\tthis._z = Math.asin( - clamp( m12, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m12 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._y = Math.atan2( m13, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._y = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tconsole.warn( 'THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tthis._order = order;\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromQuaternion( q, order, update ) {\n\n\t\t_matrix.makeRotationFromQuaternion( q );\n\n\t\treturn this.setFromRotationMatrix( _matrix, order, update );\n\n\t}\n\n\tsetFromVector3( v, order = this._order ) {\n\n\t\treturn this.set( v.x, v.y, v.z, order );\n\n\t}\n\n\treorder( newOrder ) {\n\n\t\t// WARNING: this discards revolution information -bhouston\n\n\t\t_quaternion.setFromEuler( this );\n\n\t\treturn this.setFromQuaternion( _quaternion, newOrder );\n\n\t}\n\n\tequals( euler ) {\n\n\t\treturn ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order );\n\n\t}\n\n\tfromArray( array ) {\n\n\t\tthis._x = array[ 0 ];\n\t\tthis._y = array[ 1 ];\n\t\tthis._z = array[ 2 ];\n\t\tif ( array[ 3 ] !== undefined ) this._order = array[ 3 ];\n\n\t\tthis._onChangeCallback();\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._order;\n\n\t\treturn array;\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\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._order;\n\n\t}\n\n}\n\nEuler.DEFAULT_ORDER = 'XYZ';\n\nexport { Euler };\n","class Layers {\n\n\tconstructor() {\n\n\t\tthis.mask = 1 | 0;\n\n\t}\n\n\tset( channel ) {\n\n\t\tthis.mask = ( 1 << channel | 0 ) >>> 0;\n\n\t}\n\n\tenable( channel ) {\n\n\t\tthis.mask |= 1 << channel | 0;\n\n\t}\n\n\tenableAll() {\n\n\t\tthis.mask = 0xffffffff | 0;\n\n\t}\n\n\ttoggle( channel ) {\n\n\t\tthis.mask ^= 1 << channel | 0;\n\n\t}\n\n\tdisable( channel ) {\n\n\t\tthis.mask &= ~ ( 1 << channel | 0 );\n\n\t}\n\n\tdisableAll() {\n\n\t\tthis.mask = 0;\n\n\t}\n\n\ttest( layers ) {\n\n\t\treturn ( this.mask & layers.mask ) !== 0;\n\n\t}\n\n\tisEnabled( channel ) {\n\n\t\treturn ( this.mask & ( 1 << channel | 0 ) ) !== 0;\n\n\t}\n\n}\n\n\nexport { Layers };\n","import { Quaternion } from '../math/Quaternion.js';\nimport { Vector3 } from '../math/Vector3.js';\nimport { Matrix4 } from '../math/Matrix4.js';\nimport { EventDispatcher } from './EventDispatcher.js';\nimport { Euler } from '../math/Euler.js';\nimport { Layers } from './Layers.js';\nimport { Matrix3 } from '../math/Matrix3.js';\nimport { generateUUID } from '../math/MathUtils.js';\n\nlet _object3DId = 0;\n\nconst _v1 = /*@__PURE__*/ new Vector3();\nconst _q1 = /*@__PURE__*/ new Quaternion();\nconst _m1 = /*@__PURE__*/ new Matrix4();\nconst _target = /*@__PURE__*/ new Vector3();\n\nconst _position = /*@__PURE__*/ new Vector3();\nconst _scale = /*@__PURE__*/ new Vector3();\nconst _quaternion = /*@__PURE__*/ new Quaternion();\n\nconst _xAxis = /*@__PURE__*/ new Vector3( 1, 0, 0 );\nconst _yAxis = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nconst _zAxis = /*@__PURE__*/ new Vector3( 0, 0, 1 );\n\nconst _addedEvent = { type: 'added' };\nconst _removedEvent = { type: 'removed' };\n\nconst _childaddedEvent = { type: 'childadded', child: null };\nconst _childremovedEvent = { type: 'childremoved', child: null };\n\nclass Object3D extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isObject3D = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _object3DId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Object3D';\n\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\tthis.up = Object3D.DEFAULT_UP.clone();\n\n\t\tconst position = new Vector3();\n\t\tconst rotation = new Euler();\n\t\tconst quaternion = new Quaternion();\n\t\tconst scale = new Vector3( 1, 1, 1 );\n\n\t\tfunction onRotationChange() {\n\n\t\t\tquaternion.setFromEuler( rotation, false );\n\n\t\t}\n\n\t\tfunction onQuaternionChange() {\n\n\t\t\trotation.setFromQuaternion( quaternion, undefined, false );\n\n\t\t}\n\n\t\trotation._onChange( onRotationChange );\n\t\tquaternion._onChange( onQuaternionChange );\n\n\t\tObject.defineProperties( this, {\n\t\t\tposition: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: position\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: rotation\n\t\t\t},\n\t\t\tquaternion: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: quaternion\n\t\t\t},\n\t\t\tscale: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: scale\n\t\t\t},\n\t\t\tmodelViewMatrix: {\n\t\t\t\tvalue: new Matrix4()\n\t\t\t},\n\t\t\tnormalMatrix: {\n\t\t\t\tvalue: new Matrix3()\n\t\t\t}\n\t\t} );\n\n\t\tthis.matrix = new Matrix4();\n\t\tthis.matrixWorld = new Matrix4();\n\n\t\tthis.matrixAutoUpdate = Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n\n\t\tthis.matrixWorldAutoUpdate = Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE; // checked by the renderer\n\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\tthis.layers = new Layers();\n\t\tthis.visible = true;\n\n\t\tthis.castShadow = false;\n\t\tthis.receiveShadow = false;\n\n\t\tthis.frustumCulled = true;\n\t\tthis.renderOrder = 0;\n\n\t\tthis.animations = [];\n\n\t\tthis.userData = {};\n\n\t}\n\n\tonBeforeShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonAfterShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tonAfterRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tthis.matrix.premultiply( matrix );\n\n\t\tthis.matrix.decompose( this.position, this.quaternion, this.scale );\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tthis.quaternion.premultiply( q );\n\n\t\treturn this;\n\n\t}\n\n\tsetRotationFromAxisAngle( axis, angle ) {\n\n\t\t// assumes axis is normalized\n\n\t\tthis.quaternion.setFromAxisAngle( axis, angle );\n\n\t}\n\n\tsetRotationFromEuler( euler ) {\n\n\t\tthis.quaternion.setFromEuler( euler, true );\n\n\t}\n\n\tsetRotationFromMatrix( m ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tthis.quaternion.setFromRotationMatrix( m );\n\n\t}\n\n\tsetRotationFromQuaternion( q ) {\n\n\t\t// assumes q is normalized\n\n\t\tthis.quaternion.copy( q );\n\n\t}\n\n\trotateOnAxis( axis, angle ) {\n\n\t\t// rotate object on axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.multiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateOnWorldAxis( axis, angle ) {\n\n\t\t// rotate object on axis in world space\n\t\t// axis is assumed to be normalized\n\t\t// method assumes no rotated parent\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.premultiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\treturn this.rotateOnAxis( _xAxis, angle );\n\n\t}\n\n\trotateY( angle ) {\n\n\t\treturn this.rotateOnAxis( _yAxis, angle );\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\treturn this.rotateOnAxis( _zAxis, angle );\n\n\t}\n\n\ttranslateOnAxis( axis, distance ) {\n\n\t\t// translate object by distance along axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_v1.copy( axis ).applyQuaternion( this.quaternion );\n\n\t\tthis.position.add( _v1.multiplyScalar( distance ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslateX( distance ) {\n\n\t\treturn this.translateOnAxis( _xAxis, distance );\n\n\t}\n\n\ttranslateY( distance ) {\n\n\t\treturn this.translateOnAxis( _yAxis, distance );\n\n\t}\n\n\ttranslateZ( distance ) {\n\n\t\treturn this.translateOnAxis( _zAxis, distance );\n\n\t}\n\n\tlocalToWorld( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( this.matrixWorld );\n\n\t}\n\n\tworldToLocal( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( _m1.copy( this.matrixWorld ).invert() );\n\n\t}\n\n\tlookAt( x, y, z ) {\n\n\t\t// This method does not support objects having non-uniformly-scaled parent(s)\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\t_target.copy( x );\n\n\t\t} else {\n\n\t\t\t_target.set( x, y, z );\n\n\t\t}\n\n\t\tconst parent = this.parent;\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_position.setFromMatrixPosition( this.matrixWorld );\n\n\t\tif ( this.isCamera || this.isLight ) {\n\n\t\t\t_m1.lookAt( _position, _target, this.up );\n\n\t\t} else {\n\n\t\t\t_m1.lookAt( _target, _position, this.up );\n\n\t\t}\n\n\t\tthis.quaternion.setFromRotationMatrix( _m1 );\n\n\t\tif ( parent ) {\n\n\t\t\t_m1.extractRotation( parent.matrixWorld );\n\t\t\t_q1.setFromRotationMatrix( _m1 );\n\t\t\tthis.quaternion.premultiply( _q1.invert() );\n\n\t\t}\n\n\t}\n\n\tadd( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.add( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object === this ) {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object can\\'t be added as a child of itself.', object );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object && object.isObject3D ) {\n\n\t\t\tobject.removeFromParent();\n\t\t\tobject.parent = this;\n\t\t\tthis.children.push( object );\n\n\t\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t\t_childaddedEvent.child = object;\n\t\t\tthis.dispatchEvent( _childaddedEvent );\n\t\t\t_childaddedEvent.child = null;\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object not an instance of THREE.Object3D.', object );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.remove( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst index = this.children.indexOf( object );\n\n\t\tif ( index !== - 1 ) {\n\n\t\t\tobject.parent = null;\n\t\t\tthis.children.splice( index, 1 );\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t\t_childremovedEvent.child = object;\n\t\t\tthis.dispatchEvent( _childremovedEvent );\n\t\t\t_childremovedEvent.child = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremoveFromParent() {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tparent.remove( this );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclear() {\n\n\t\treturn this.remove( ... this.children );\n\n\t}\n\n\tattach( object ) {\n\n\t\t// adds object as a child of this, while maintaining the object's world transform\n\n\t\t// Note: This method does not support scene graphs having non-uniformly-scaled nodes(s)\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_m1.copy( this.matrixWorld ).invert();\n\n\t\tif ( object.parent !== null ) {\n\n\t\t\tobject.parent.updateWorldMatrix( true, false );\n\n\t\t\t_m1.multiply( object.parent.matrixWorld );\n\n\t\t}\n\n\t\tobject.applyMatrix4( _m1 );\n\n\t\tobject.removeFromParent();\n\t\tobject.parent = this;\n\t\tthis.children.push( object );\n\n\t\tobject.updateWorldMatrix( false, true );\n\n\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t_childaddedEvent.child = object;\n\t\tthis.dispatchEvent( _childaddedEvent );\n\t\t_childaddedEvent.child = null;\n\n\t\treturn this;\n\n\t}\n\n\tgetObjectById( id ) {\n\n\t\treturn this.getObjectByProperty( 'id', id );\n\n\t}\n\n\tgetObjectByName( name ) {\n\n\t\treturn this.getObjectByProperty( 'name', name );\n\n\t}\n\n\tgetObjectByProperty( name, value ) {\n\n\t\tif ( this[ name ] === value ) return this;\n\n\t\tfor ( let i = 0, l = this.children.length; i < l; i ++ ) {\n\n\t\t\tconst child = this.children[ i ];\n\t\t\tconst object = child.getObjectByProperty( name, value );\n\n\t\t\tif ( object !== undefined ) {\n\n\t\t\t\treturn object;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tgetObjectsByProperty( name, value, result = [] ) {\n\n\t\tif ( this[ name ] === value ) result.push( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].getObjectsByProperty( name, value, result );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tgetWorldPosition( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn target.setFromMatrixPosition( this.matrixWorld );\n\n\t}\n\n\tgetWorldQuaternion( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position, target, _scale );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldScale( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position, _quaternion, target );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( e[ 8 ], e[ 9 ], e[ 10 ] ).normalize();\n\n\t}\n\n\traycast( /* raycaster, intersects */ ) {}\n\n\ttraverse( callback ) {\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverse( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseVisible( callback ) {\n\n\t\tif ( this.visible === false ) return;\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverseVisible( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseAncestors( callback ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tcallback( parent );\n\n\t\t\tparent.traverseAncestors( callback );\n\n\t\t}\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.compose( this.position, this.quaternion, this.scale );\n\n\t\tthis.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldNeedsUpdate || force ) {\n\n\t\t\tif ( this.matrixWorldAutoUpdate === true ) {\n\n\t\t\t\tif ( this.parent === null ) {\n\n\t\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\t\tforce = true;\n\n\t\t}\n\n\t\t// make sure descendants are updated if required\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tconst child = children[ i ];\n\n\t\t\tchild.updateMatrixWorld( force );\n\n\t\t}\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( updateParents === true && parent !== null ) {\n\n\t\t\tparent.updateWorldMatrix( true, false );\n\n\t\t}\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldAutoUpdate === true ) {\n\n\t\t\tif ( this.parent === null ) {\n\n\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// make sure descendants are updated\n\n\t\tif ( updateChildren === true ) {\n\n\t\t\tconst children = this.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tconst child = children[ i ];\n\n\t\t\t\tchild.updateWorldMatrix( false, true );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\t// meta is a string when called from JSON.stringify\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tconst output = {};\n\n\t\t// meta is a hash used to collect geometries, materials.\n\t\t// not providing it implies that this is the root object\n\t\t// being serialized.\n\t\tif ( isRootObject ) {\n\n\t\t\t// initialize meta obj\n\t\t\tmeta = {\n\t\t\t\tgeometries: {},\n\t\t\t\tmaterials: {},\n\t\t\t\ttextures: {},\n\t\t\t\timages: {},\n\t\t\t\tshapes: {},\n\t\t\t\tskeletons: {},\n\t\t\t\tanimations: {},\n\t\t\t\tnodes: {}\n\t\t\t};\n\n\t\t\toutput.metadata = {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Object',\n\t\t\t\tgenerator: 'Object3D.toJSON'\n\t\t\t};\n\n\t\t}\n\n\t\t// standard Object3D serialization\n\n\t\tconst object = {};\n\n\t\tobject.uuid = this.uuid;\n\t\tobject.type = this.type;\n\n\t\tif ( this.name !== '' ) object.name = this.name;\n\t\tif ( this.castShadow === true ) object.castShadow = true;\n\t\tif ( this.receiveShadow === true ) object.receiveShadow = true;\n\t\tif ( this.visible === false ) object.visible = false;\n\t\tif ( this.frustumCulled === false ) object.frustumCulled = false;\n\t\tif ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder;\n\t\tif ( Object.keys( this.userData ).length > 0 ) object.userData = this.userData;\n\n\t\tobject.layers = this.layers.mask;\n\t\tobject.matrix = this.matrix.toArray();\n\t\tobject.up = this.up.toArray();\n\n\t\tif ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;\n\n\t\t// object specific properties\n\n\t\tif ( this.isInstancedMesh ) {\n\n\t\t\tobject.type = 'InstancedMesh';\n\t\t\tobject.count = this.count;\n\t\t\tobject.instanceMatrix = this.instanceMatrix.toJSON();\n\t\t\tif ( this.instanceColor !== null ) object.instanceColor = this.instanceColor.toJSON();\n\n\t\t}\n\n\t\tif ( this.isBatchedMesh ) {\n\n\t\t\tobject.type = 'BatchedMesh';\n\t\t\tobject.perObjectFrustumCulled = this.perObjectFrustumCulled;\n\t\t\tobject.sortObjects = this.sortObjects;\n\n\t\t\tobject.drawRanges = this._drawRanges;\n\t\t\tobject.reservedRanges = this._reservedRanges;\n\n\t\t\tobject.visibility = this._visibility;\n\t\t\tobject.active = this._active;\n\t\t\tobject.bounds = this._bounds.map( bound => ( {\n\t\t\t\tboxInitialized: bound.boxInitialized,\n\t\t\t\tboxMin: bound.box.min.toArray(),\n\t\t\t\tboxMax: bound.box.max.toArray(),\n\n\t\t\t\tsphereInitialized: bound.sphereInitialized,\n\t\t\t\tsphereRadius: bound.sphere.radius,\n\t\t\t\tsphereCenter: bound.sphere.center.toArray()\n\t\t\t} ) );\n\n\t\t\tobject.maxInstanceCount = this._maxInstanceCount;\n\t\t\tobject.maxVertexCount = this._maxVertexCount;\n\t\t\tobject.maxIndexCount = this._maxIndexCount;\n\n\t\t\tobject.geometryInitialized = this._geometryInitialized;\n\t\t\tobject.geometryCount = this._geometryCount;\n\n\t\t\tobject.matricesTexture = this._matricesTexture.toJSON( meta );\n\n\t\t\tif ( this._colorsTexture !== null ) object.colorsTexture = this._colorsTexture.toJSON( meta );\n\n\t\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\t\tobject.boundingSphere = {\n\t\t\t\t\tcenter: object.boundingSphere.center.toArray(),\n\t\t\t\t\tradius: object.boundingSphere.radius\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t\tif ( this.boundingBox !== null ) {\n\n\t\t\t\tobject.boundingBox = {\n\t\t\t\t\tmin: object.boundingBox.min.toArray(),\n\t\t\t\t\tmax: object.boundingBox.max.toArray()\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tfunction serialize( library, element ) {\n\n\t\t\tif ( library[ element.uuid ] === undefined ) {\n\n\t\t\t\tlibrary[ element.uuid ] = element.toJSON( meta );\n\n\t\t\t}\n\n\t\t\treturn element.uuid;\n\n\t\t}\n\n\t\tif ( this.isScene ) {\n\n\t\t\tif ( this.background ) {\n\n\t\t\t\tif ( this.background.isColor ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON();\n\n\t\t\t\t} else if ( this.background.isTexture ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON( meta ).uuid;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true ) {\n\n\t\t\t\tobject.environment = this.environment.toJSON( meta ).uuid;\n\n\t\t\t}\n\n\t\t} else if ( this.isMesh || this.isLine || this.isPoints ) {\n\n\t\t\tobject.geometry = serialize( meta.geometries, this.geometry );\n\n\t\t\tconst parameters = this.geometry.parameters;\n\n\t\t\tif ( parameters !== undefined && parameters.shapes !== undefined ) {\n\n\t\t\t\tconst shapes = parameters.shapes;\n\n\t\t\t\tif ( Array.isArray( shapes ) ) {\n\n\t\t\t\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst shape = shapes[ i ];\n\n\t\t\t\t\t\tserialize( meta.shapes, shape );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tserialize( meta.shapes, shapes );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.isSkinnedMesh ) {\n\n\t\t\tobject.bindMode = this.bindMode;\n\t\t\tobject.bindMatrix = this.bindMatrix.toArray();\n\n\t\t\tif ( this.skeleton !== undefined ) {\n\n\t\t\t\tserialize( meta.skeletons, this.skeleton );\n\n\t\t\t\tobject.skeleton = this.skeleton.uuid;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.material !== undefined ) {\n\n\t\t\tif ( Array.isArray( this.material ) ) {\n\n\t\t\t\tconst uuids = [];\n\n\t\t\t\tfor ( let i = 0, l = this.material.length; i < l; i ++ ) {\n\n\t\t\t\t\tuuids.push( serialize( meta.materials, this.material[ i ] ) );\n\n\t\t\t\t}\n\n\t\t\t\tobject.material = uuids;\n\n\t\t\t} else {\n\n\t\t\t\tobject.material = serialize( meta.materials, this.material );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.children.length > 0 ) {\n\n\t\t\tobject.children = [];\n\n\t\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\t\tobject.children.push( this.children[ i ].toJSON( meta ).object );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.animations.length > 0 ) {\n\n\t\t\tobject.animations = [];\n\n\t\t\tfor ( let i = 0; i < this.animations.length; i ++ ) {\n\n\t\t\t\tconst animation = this.animations[ i ];\n\n\t\t\t\tobject.animations.push( serialize( meta.animations, animation ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst geometries = extractFromCache( meta.geometries );\n\t\t\tconst materials = extractFromCache( meta.materials );\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\t\t\tconst shapes = extractFromCache( meta.shapes );\n\t\t\tconst skeletons = extractFromCache( meta.skeletons );\n\t\t\tconst animations = extractFromCache( meta.animations );\n\t\t\tconst nodes = extractFromCache( meta.nodes );\n\n\t\t\tif ( geometries.length > 0 ) output.geometries = geometries;\n\t\t\tif ( materials.length > 0 ) output.materials = materials;\n\t\t\tif ( textures.length > 0 ) output.textures = textures;\n\t\t\tif ( images.length > 0 ) output.images = images;\n\t\t\tif ( shapes.length > 0 ) output.shapes = shapes;\n\t\t\tif ( skeletons.length > 0 ) output.skeletons = skeletons;\n\t\t\tif ( animations.length > 0 ) output.animations = animations;\n\t\t\tif ( nodes.length > 0 ) output.nodes = nodes;\n\n\t\t}\n\n\t\toutput.object = object;\n\n\t\treturn output;\n\n\t\t// extract data from the cache hash\n\t\t// remove metadata on each item\n\t\t// and return as array\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t}\n\n\tclone( recursive ) {\n\n\t\treturn new this.constructor().copy( this, recursive );\n\n\t}\n\n\tcopy( source, recursive = true ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.up.copy( source.up );\n\n\t\tthis.position.copy( source.position );\n\t\tthis.rotation.order = source.rotation.order;\n\t\tthis.quaternion.copy( source.quaternion );\n\t\tthis.scale.copy( source.scale );\n\n\t\tthis.matrix.copy( source.matrix );\n\t\tthis.matrixWorld.copy( source.matrixWorld );\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\n\t\tthis.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate;\n\t\tthis.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n\n\t\tthis.layers.mask = source.layers.mask;\n\t\tthis.visible = source.visible;\n\n\t\tthis.castShadow = source.castShadow;\n\t\tthis.receiveShadow = source.receiveShadow;\n\n\t\tthis.frustumCulled = source.frustumCulled;\n\t\tthis.renderOrder = source.renderOrder;\n\n\t\tthis.animations = source.animations.slice();\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tif ( recursive === true ) {\n\n\t\t\tfor ( let i = 0; i < source.children.length; i ++ ) {\n\n\t\t\t\tconst child = source.children[ i ];\n\t\t\t\tthis.add( child.clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nObject3D.DEFAULT_UP = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nObject3D.DEFAULT_MATRIX_AUTO_UPDATE = true;\nObject3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true;\n\nexport { Object3D };\n"],"names":["n","m","x","y","t","value","array","constructor","Float32Array","Uint32Array","Uint16Array","Uint8Array","Int32Array","Math","max","Int16Array","Int8Array","Error","round","WebGLCoordinateSystem","WebGPUCoordinateSystem","exports","_lut","generateUUID","d0","random","d1","d2","d3","toLowerCase","clamp","min","PI","Quaternion","[object Object]","z","w","this","isQuaternion","_x","_y","_z","_w","dst","dstOffset","src0","srcOffset0","src1","srcOffset1","x0","y0","z0","w0","x1","y1","z1","w1","s","cos","dir","sqrSin","Number","EPSILON","sin","sqrt","len","atan2","tDir","f","_onChangeCallback","quaternion","euler","update","order","_order","c1","c2","c3","s1","s2","s3","console","warn","axis","angle","halfAngle","te","elements","m11","m12","m13","m21","m22","m23","m31","m32","m33","trace","vFrom","vTo","r","dot","abs","normalize","q","acos","step","angleTo","slerp","set","conjugate","v","l","length","multiplyQuaternions","a","b","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","qb","copy","cosHalfTheta","sqrSinHalfTheta","sinHalfTheta","halfTheta","ratioA","ratioB","qa","theta1","theta2","r1","r2","offset","attribute","index","getX","getY","getZ","getW","toArray","callback","Symbol","iterator","Vector3","prototype","isVector3","undefined","scalar","applyQuaternion","_quaternion","setFromEuler","setFromAxisAngle","e","applyMatrix3","vx","vy","vz","qx","qy","qz","qw","tx","ty","tz","camera","applyMatrix4","matrixWorldInverse","projectionMatrix","projectionMatrixInverse","matrixWorld","multiplyScalar","minVal","maxVal","divideScalar","floor","ceil","trunc","alpha","v1","v2","crossVectors","ax","ay","az","bx","by","bz","denominator","lengthSq","planeNormal","_vector","projectOnVector","sub","normal","theta","distanceToSquared","dx","dy","dz","setFromSphericalCoords","radius","phi","sinPhiRadius","c","setFromCylindricalCoords","sx","setFromMatrixColumn","sy","sz","fromArray","g","u","Matrix4","n11","n12","n13","n14","n21","n22","n23","n24","n31","n32","n33","n34","n41","n42","n43","n44","isMatrix4","me","xAxis","yAxis","zAxis","scaleX","_v1","scaleY","scaleZ","d","ae","af","be","bf","ce","cf","de","df","ac","ad","bc","bd","compose","_zero","_one","eye","target","up","subVectors","multiplyMatrices","a11","a12","a13","a14","a21","a22","a23","a24","a31","a32","a33","a34","a41","a42","a43","a44","b11","b12","b13","b14","b21","b22","b23","b24","b31","b32","b33","b34","b41","b42","b43","b44","tmp","t11","t12","t13","t14","det","detInv","scaleXSq","scaleYSq","scaleZSq","xy","xz","yx","yz","zx","zy","position","scale","x2","y2","z2","xx","yy","zz","wx","wy","wz","determinant","_m1","invSX","invSY","invSZ","setFromRotationMatrix","left","right","top","bottom","near","far","coordinateSystem","h","p","zInv","matrix","i","Vector2","isVector2","width","height","center","Box3","isBox3","makeEmpty","il","expandByPoint","count","fromBufferAttribute","points","size","halfSize","add","object","precise","expandByObject","box","isEmpty","addVectors","point","vector","addScalar","updateWorldMatrix","geometry","positionAttribute","getAttribute","isInstancedMesh","isMesh","getVertexPosition","boundingBox","computeBoundingBox","_box","union","children","sphere","clampPoint","plane","constant","triangle","getCenter","_center","_extents","_v0","_v2","_f0","_f1","_f2","axes","satForAxes","_triangleNormal","distanceTo","getSize","_points","setFromPoints","equals","_testAxis","v0","extents","j","p0","p1","p2","isSphere","optionalCenter","maxRadiusSq","radiusSum","intersectsSphere","distanceToPoint","deltaLengthSq","expandByScalar","getMaxScaleOnAxis","delta","addScaledVector","setLength","Matrix3","isMatrix3","setFromMatrix3Column","matrix4","setFromMatrix4","invert","transpose","rotation","cx","cy","premultiply","_m3","makeScale","makeRotation","makeTranslation","EventDispatcher","type","listener","_listeners","listeners","indexOf","push","listenerArray","splice","event","slice","call","_matrix","Euler","DEFAULT_ORDER","isEuler","asin","makeRotationFromQuaternion","newOrder","setFromQuaternion","Layers","mask","channel","layers","_object3DId","_q1","_target","_position","_scale","_xAxis","_yAxis","_zAxis","_addedEvent","_removedEvent","_childaddedEvent","child","_childremovedEvent","Object3D","super","isObject3D","Object","defineProperty","uuid","name","parent","DEFAULT_UP","clone","_onChange","defineProperties","configurable","enumerable","modelViewMatrix","normalMatrix","matrixAutoUpdate","DEFAULT_MATRIX_AUTO_UPDATE","matrixWorldAutoUpdate","DEFAULT_MATRIX_WORLD_AUTO_UPDATE","matrixWorldNeedsUpdate","visible","castShadow","receiveShadow","frustumCulled","renderOrder","animations","userData","updateMatrix","decompose","multiply","rotateOnAxis","distance","translateOnAxis","setFromMatrixPosition","isCamera","isLight","lookAt","extractRotation","arguments","error","removeFromParent","dispatchEvent","remove","id","getObjectByProperty","result","getObjectsByProperty","traverse","traverseVisible","traverseAncestors","force","updateMatrixWorld","updateParents","updateChildren","meta","isRootObject","output","geometries","materials","textures","images","shapes","skeletons","nodes","metadata","version","generator","serialize","library","element","toJSON","keys","instanceMatrix","instanceColor","isBatchedMesh","perObjectFrustumCulled","sortObjects","drawRanges","_drawRanges","reservedRanges","_reservedRanges","visibility","_visibility","active","_active","bounds","_bounds","map","bound","boxInitialized","boxMin","boxMax","sphereInitialized","sphereRadius","sphereCenter","maxInstanceCount","_maxInstanceCount","maxVertexCount","_maxVertexCount","maxIndexCount","_maxIndexCount","geometryInitialized","_geometryInitialized","geometryCount","_geometryCount","matricesTexture","_matricesTexture","_colorsTexture","colorsTexture","boundingSphere","isScene","background","isColor","isTexture","environment","isRenderTargetTexture","isLine","isPoints","parameters","Array","isArray","shape","isSkinnedMesh","bindMode","bindMatrix","skeleton","material","uuids","animation","extractFromCache","cache","values","key","data","recursive","source","JSON","parse","stringify"],"mappings":"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"}
|