@hellpig/anarchy-engine 21.4.1 → 22.0.1
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/CHANGELOG.md +4 -3
- package/README.md +9 -0
- package/dist/Abstract/Entities/AbstractEntity.js +1 -1
- package/dist/Abstract/Entities/AbstractEntity.js.map +1 -1
- package/dist/Abstract/Factories/AbstractFactory.js +1 -1
- package/dist/Abstract/Factories/AbstractFactory.js.map +1 -1
- package/dist/Abstract/Factories/ReactiveFactory.js +1 -1
- package/dist/Abstract/Factories/ReactiveFactory.js.map +1 -1
- package/dist/Abstract/Loaders/AbstractLoader.js +1 -1
- package/dist/Abstract/Loaders/AbstractLoader.js.map +1 -1
- package/dist/Abstract/Mixins/WithWrapperIdMixin.js +1 -1
- package/dist/Abstract/Mixins/WithWrapperIdMixin.js.map +1 -1
- package/dist/Abstract/Registries/AbstractEntityAsyncRegistry.js +1 -1
- package/dist/Abstract/Registries/AbstractEntityAsyncRegistry.js.map +1 -1
- package/dist/Abstract/Registries/AbstractEntityRegistry.js +1 -1
- package/dist/Abstract/Registries/AbstractEntityRegistry.js.map +1 -1
- package/dist/Abstract/Registries/AbstractResourceAsyncRegistry.js +1 -1
- package/dist/Abstract/Registries/AbstractResourceAsyncRegistry.js.map +1 -1
- package/dist/Abstract/Registries/AbstractSimpleRegistry.js +1 -1
- package/dist/Abstract/Registries/AbstractSimpleRegistry.js.map +1 -1
- package/dist/Abstract/Registries/Mixin/Registry/WithBaseAccessorsRegistry.js +1 -1
- package/dist/Abstract/Registries/Mixin/Registry/WithBaseAccessorsRegistry.js.map +1 -1
- package/dist/Abstract/Registries/Mixin/Registry/WithReactiveRegistry.js +1 -1
- package/dist/Abstract/Registries/Mixin/Registry/WithReactiveRegistry.js.map +1 -1
- package/dist/Abstract/Watchers/AbstractWatcher.js +1 -1
- package/dist/Abstract/Watchers/AbstractWatcher.js.map +1 -1
- package/dist/Abstract/Watchers/AbstractWatcherWithState.js +1 -1
- package/dist/Abstract/Watchers/AbstractWatcherWithState.js.map +1 -1
- package/dist/Abstract/Wrappers/AbstractWrapper.js +1 -1
- package/dist/Abstract/Wrappers/AbstractWrapper.js.map +1 -1
- package/dist/Actor/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Actor/Adapters/ConfigToParams.js +1 -1
- package/dist/Actor/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Actor/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Actor/Adapters/EntityToConfig.js +1 -1
- package/dist/Actor/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Actor/Adapters/Helpers/ActorStatesConfigToParams.js +1 -1
- package/dist/Actor/Adapters/Helpers/ActorStatesConfigToParams.js.map +1 -1
- package/dist/Actor/Adapters/Helpers/Model3dSettingsConfigToParams.js +1 -1
- package/dist/Actor/Adapters/Helpers/Model3dSettingsConfigToParams.js.map +1 -1
- package/dist/Actor/Entities/Actor/Actor.js +1 -1
- package/dist/Actor/Entities/Actor/Actor.js.map +1 -1
- package/dist/Actor/Factories/ActorFactory.js +1 -1
- package/dist/Actor/Factories/ActorFactory.js.map +1 -1
- package/dist/Actor/Mixins/WithActorStates.js +1 -1
- package/dist/Actor/Mixins/WithActorStates.js.map +1 -1
- package/dist/Actor/Registries/Model3dToActorConnectionRegistry.js +1 -1
- package/dist/Actor/Registries/Model3dToActorConnectionRegistry.js.map +1 -1
- package/dist/Actor/Utils/ActorUtils.js +1 -1
- package/dist/Actor/Utils/ActorUtils.js.map +1 -1
- package/dist/Actor/index.d.ts +1 -0
- package/dist/Animations/Adapters/EntityToConfig.js +1 -1
- package/dist/Animations/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Animations/Loader/AnimationsLoader.js +1 -1
- package/dist/Animations/Loader/AnimationsLoader.js.map +1 -1
- package/dist/Animations/Services/AnimationsService.js +1 -1
- package/dist/Animations/Services/AnimationsService.js.map +1 -1
- package/dist/Animations/Utils/SerializationUtils.js +1 -1
- package/dist/Animations/Utils/SerializationUtils.js.map +1 -1
- package/dist/Audio/Adapters/AudioConfigToParams.d.ts +2 -0
- package/dist/Audio/Adapters/AudioConfigToParams.js +2 -0
- package/dist/Audio/Adapters/AudioConfigToParams.js.map +1 -0
- package/dist/Audio/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Audio/Adapters/EntityToConfig.js +1 -1
- package/dist/Audio/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Audio/Adapters/index.d.ts +1 -1
- package/dist/Audio/Factories/AudioFactory.js +1 -1
- package/dist/Audio/Factories/AudioFactory.js.map +1 -1
- package/dist/Audio/Loader/AudioLoader.js +1 -1
- package/dist/Audio/Loader/AudioLoader.js.map +1 -1
- package/dist/Audio/Services/AudioService.js +1 -1
- package/dist/Audio/Services/AudioService.js.map +1 -1
- package/dist/Audio/Utils/AudioUtils.js +1 -1
- package/dist/Audio/Utils/AudioUtils.js.map +1 -1
- package/dist/Audio/Utils/DebugAudioRenderer.js +1 -1
- package/dist/Audio/Utils/DebugAudioRenderer.js.map +1 -1
- package/dist/Audio/Wrappers/AbstractAudioWrapper.js +1 -1
- package/dist/Audio/Wrappers/AbstractAudioWrapper.js.map +1 -1
- package/dist/Audio/Wrappers/Audio3dWrapper.js +1 -1
- package/dist/Audio/Wrappers/Audio3dWrapper.js.map +1 -1
- package/dist/Camera/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Camera/Adapters/ConfigToParams.js +1 -1
- package/dist/Camera/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Camera/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Camera/Adapters/EntityToConfig.js +1 -1
- package/dist/Camera/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Camera/Adapters/index.d.ts +1 -1
- package/dist/Camera/Factories/CameraFactory.js +1 -1
- package/dist/Camera/Factories/CameraFactory.js.map +1 -1
- package/dist/Camera/Services/CameraService.js +1 -1
- package/dist/Camera/Services/CameraService.js.map +1 -1
- package/dist/Camera/Utils/CameraUtils.js +1 -1
- package/dist/Camera/Utils/CameraUtils.js.map +1 -1
- package/dist/Camera/Wrappers/OrthographicCameraWrapper.js +1 -1
- package/dist/Camera/Wrappers/OrthographicCameraWrapper.js.map +1 -1
- package/dist/Camera/Wrappers/PerspectiveCameraWrapper.js +1 -1
- package/dist/Camera/Wrappers/PerspectiveCameraWrapper.js.map +1 -1
- package/dist/Collisions/Mixins/WithCollisions.js +1 -1
- package/dist/Collisions/Mixins/WithCollisions.js.map +1 -1
- package/dist/Collisions/Services/BvhService.js +1 -1
- package/dist/Collisions/Services/BvhService.js.map +1 -1
- package/dist/Collisions/Services/CollisionsService.js +1 -1
- package/dist/Collisions/Services/CollisionsService.js.map +1 -1
- package/dist/Color/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Color/Adapters/EntityToConfig.js +1 -1
- package/dist/Color/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Color/Wrappers/ColorWrapper.js +1 -1
- package/dist/Color/Wrappers/ColorWrapper.js.map +1 -1
- package/dist/Controls/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Controls/Adapters/ConfigToParams.js +1 -1
- package/dist/Controls/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Controls/Adapters/EntityToConfig.js +1 -1
- package/dist/Controls/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Controls/Factories/ControlsFactory.js +1 -1
- package/dist/Controls/Factories/ControlsFactory.js.map +1 -1
- package/dist/Controls/Utils/ControlsUtils.js +1 -1
- package/dist/Controls/Utils/ControlsUtils.js.map +1 -1
- package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapper.js +1 -1
- package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapper.js.map +1 -1
- package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapperHelper.js +1 -1
- package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapperHelper.js.map +1 -1
- package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapper.js +1 -1
- package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapper.js.map +1 -1
- package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapperHelper.js +1 -1
- package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapperHelper.js.map +1 -1
- package/dist/Controls/index.d.ts +1 -0
- package/dist/EnvMap/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/EnvMap/Adapters/ConfigToParams.js +1 -1
- package/dist/EnvMap/Adapters/ConfigToParams.js.map +1 -1
- package/dist/EnvMap/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/EnvMap/Adapters/EntityToConfig.js +1 -1
- package/dist/EnvMap/Adapters/EntityToConfig.js.map +1 -1
- package/dist/EnvMap/Constants/EnvMapMappingTypesMap.js +1 -1
- package/dist/EnvMap/Constants/EnvMapMappingTypesMap.js.map +1 -1
- package/dist/EnvMap/Factories/EnvMapFactory.js +1 -1
- package/dist/EnvMap/Factories/EnvMapFactory.js.map +1 -1
- package/dist/EnvMap/Loader/EnvMapLoader.js +1 -1
- package/dist/EnvMap/Loader/EnvMapLoader.js.map +1 -1
- package/dist/EnvMap/Services/EnvMapService.js +1 -1
- package/dist/EnvMap/Services/EnvMapService.js.map +1 -1
- package/dist/EnvMap/Wrappers/EnvMapWrapper.js +1 -1
- package/dist/EnvMap/Wrappers/EnvMapWrapper.js.map +1 -1
- package/dist/EnvMap/index.d.ts +1 -1
- package/dist/Fog/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Fog/Adapters/ConfigToParams.js +1 -1
- package/dist/Fog/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Fog/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Fog/Adapters/EntityToConfig.js +1 -1
- package/dist/Fog/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Fog/Factories/FogFactory.js +1 -1
- package/dist/Fog/Factories/FogFactory.js.map +1 -1
- package/dist/Fog/Wrappers/FogWrapper.js +1 -1
- package/dist/Fog/Wrappers/FogWrapper.js.map +1 -1
- package/dist/Fog/index.d.ts +1 -0
- package/dist/Fsm/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Fsm/Adapters/ConfigToParams.js +1 -1
- package/dist/Fsm/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Fsm/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Fsm/Adapters/EntityToConfig.js +1 -1
- package/dist/Fsm/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Fsm/Entities/FsmSource.js +1 -1
- package/dist/Fsm/Entities/FsmSource.js.map +1 -1
- package/dist/Fsm/Factories/FsmInstanceFactory.js +1 -1
- package/dist/Fsm/Factories/FsmInstanceFactory.js.map +1 -1
- package/dist/Fsm/Factories/FsmSourceFactory.js +1 -1
- package/dist/Fsm/Factories/FsmSourceFactory.js.map +1 -1
- package/dist/Fsm/Services/FsmService.js +1 -1
- package/dist/Fsm/Services/FsmService.js.map +1 -1
- package/dist/Fsm/Wrappers/FsmWrapper.js +1 -1
- package/dist/Fsm/Wrappers/FsmWrapper.js.map +1 -1
- package/dist/Global/Decorators/ContainerDecorator.js +1 -1
- package/dist/Global/Decorators/ContainerDecorator.js.map +1 -1
- package/dist/Global/Utils/ContainerUtils.js +1 -1
- package/dist/Global/Utils/ContainerUtils.js.map +1 -1
- package/dist/Intersections/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Intersections/Adapters/ConfigToParams.js +1 -1
- package/dist/Intersections/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Intersections/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Intersections/Adapters/EntityToConfig.js +1 -1
- package/dist/Intersections/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Intersections/Factories/IntersectionsWatcherFactory.js +1 -1
- package/dist/Intersections/Factories/IntersectionsWatcherFactory.js.map +1 -1
- package/dist/Intersections/Services/IntersectionsWatcherService.js +1 -1
- package/dist/Intersections/Services/IntersectionsWatcherService.js.map +1 -1
- package/dist/Intersections/Utils/IntersectionsWatcherUtils.js +1 -1
- package/dist/Intersections/Utils/IntersectionsWatcherUtils.js.map +1 -1
- package/dist/Intersections/Watchers/AbstractIntersectionsWatcher.js +1 -1
- package/dist/Intersections/Watchers/AbstractIntersectionsWatcher.js.map +1 -1
- package/dist/Intersections/Watchers/IntersectionsCameraWatcher.js +1 -1
- package/dist/Intersections/Watchers/IntersectionsCameraWatcher.js.map +1 -1
- package/dist/Intersections/Watchers/IntersectionsDirectionWatcher.js +1 -1
- package/dist/Intersections/Watchers/IntersectionsDirectionWatcher.js.map +1 -1
- package/dist/Intersections/index.d.ts +1 -1
- package/dist/Keyboard/Services/KeyboardService.js +1 -1
- package/dist/Keyboard/Services/KeyboardService.js.map +1 -1
- package/dist/Keyboard/Utils/KeysRxJsUtils.js +1 -1
- package/dist/Keyboard/Utils/KeysRxJsUtils.js.map +1 -1
- package/dist/Keyboard/Utils/KeysUtils.js +1 -1
- package/dist/Keyboard/Utils/KeysUtils.js.map +1 -1
- package/dist/Keyboard/Watchers/KeyComboWatcher.js +1 -1
- package/dist/Keyboard/Watchers/KeyComboWatcher.js.map +1 -1
- package/dist/Keyboard/Watchers/KeyPressWatcher.js +1 -1
- package/dist/Keyboard/Watchers/KeyPressWatcher.js.map +1 -1
- package/dist/Keyboard/Watchers/KeyReleaseWatcher.js +1 -1
- package/dist/Keyboard/Watchers/KeyReleaseWatcher.js.map +1 -1
- package/dist/Kinematic/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Kinematic/Adapters/ConfigToParams.js +1 -1
- package/dist/Kinematic/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Kinematic/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Kinematic/Adapters/EntityToConfig.js +1 -1
- package/dist/Kinematic/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Kinematic/Adapters/index.d.ts +1 -1
- package/dist/Kinematic/Constants/KinematicConstants.js +1 -1
- package/dist/Kinematic/Constants/KinematicConstants.js.map +1 -1
- package/dist/Kinematic/Utils/KinematicUtils.js +1 -1
- package/dist/Kinematic/Utils/KinematicUtils.js.map +1 -1
- package/dist/Light/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Light/Adapters/ConfigToParams.js +1 -1
- package/dist/Light/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Light/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Light/Adapters/EntityToConfig.js +1 -1
- package/dist/Light/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Light/Factories/LightFactory.js +1 -1
- package/dist/Light/Factories/LightFactory.js.map +1 -1
- package/dist/Light/Utils/Utils.js +1 -1
- package/dist/Light/Utils/Utils.js.map +1 -1
- package/dist/Light/Wrappers/AbstractLightWrapper.js +1 -1
- package/dist/Light/Wrappers/AbstractLightWrapper.js.map +1 -1
- package/dist/Light/Wrappers/AmbientLightWrapper.js +1 -1
- package/dist/Light/Wrappers/AmbientLightWrapper.js.map +1 -1
- package/dist/Light/Wrappers/DirectionalLightWrapper.js +1 -1
- package/dist/Light/Wrappers/DirectionalLightWrapper.js.map +1 -1
- package/dist/Light/Wrappers/HemisphereLightWrapper.js +1 -1
- package/dist/Light/Wrappers/HemisphereLightWrapper.js.map +1 -1
- package/dist/Light/Wrappers/LightWrapperHelper.js +1 -1
- package/dist/Light/Wrappers/LightWrapperHelper.js.map +1 -1
- package/dist/Light/Wrappers/PointLightWrapper.js +1 -1
- package/dist/Light/Wrappers/PointLightWrapper.js.map +1 -1
- package/dist/Light/Wrappers/RectAreaLightWrapper.js +1 -1
- package/dist/Light/Wrappers/RectAreaLightWrapper.js.map +1 -1
- package/dist/Light/Wrappers/SpotLightWrapper.js +1 -1
- package/dist/Light/Wrappers/SpotLightWrapper.js.map +1 -1
- package/dist/Light/index.d.ts +1 -0
- package/dist/LoadingManager/Wrappers/LoadingManagerWrapper.js +1 -1
- package/dist/LoadingManager/Wrappers/LoadingManagerWrapper.js.map +1 -1
- package/dist/Loop/Entities/DeltaCalculator.js +1 -1
- package/dist/Loop/Entities/DeltaCalculator.js.map +1 -1
- package/dist/Loop/Entities/Loop.js +1 -1
- package/dist/Loop/Entities/Loop.js.map +1 -1
- package/dist/Material/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Material/Adapters/ConfigToParams.js +1 -1
- package/dist/Material/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Material/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Material/Adapters/EntityToConfig.js +1 -1
- package/dist/Material/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Material/Constants/BlendEquation/BlendEquationMap.js +1 -1
- package/dist/Material/Constants/BlendEquation/BlendEquationMap.js.map +1 -1
- package/dist/Material/Constants/Blending/BlendingMap.js +1 -1
- package/dist/Material/Constants/Blending/BlendingMap.js.map +1 -1
- package/dist/Material/Constants/BlendingDstFactor/BlendingDstFactorMap.js +1 -1
- package/dist/Material/Constants/BlendingDstFactor/BlendingDstFactorMap.js.map +1 -1
- package/dist/Material/Constants/BlendingSrcFactorName/BlendingSrcFactorMap.js +1 -1
- package/dist/Material/Constants/BlendingSrcFactorName/BlendingSrcFactorMap.js.map +1 -1
- package/dist/Material/Constants/Combine/CombineMap.js +1 -1
- package/dist/Material/Constants/Combine/CombineMap.js.map +1 -1
- package/dist/Material/Constants/DepthPacking/DepthPackingStrategiesMap.js +1 -1
- package/dist/Material/Constants/DepthPacking/DepthPackingStrategiesMap.js.map +1 -1
- package/dist/Material/Constants/Format/PixelFormatMap.js +1 -1
- package/dist/Material/Constants/Format/PixelFormatMap.js.map +1 -1
- package/dist/Material/Constants/Material/MaterialMap.js +1 -1
- package/dist/Material/Constants/Material/MaterialMap.js.map +1 -1
- package/dist/Material/Constants/NormalMapTypes/NormalMapTypesMap.js +1 -1
- package/dist/Material/Constants/NormalMapTypes/NormalMapTypesMap.js.map +1 -1
- package/dist/Material/Constants/Side/SideMap.js +1 -1
- package/dist/Material/Constants/Side/SideMap.js.map +1 -1
- package/dist/Material/Constants/StencilFail/StencilFailMap.js +1 -1
- package/dist/Material/Constants/StencilFail/StencilFailMap.js.map +1 -1
- package/dist/Material/Constants/StencilFuncName/StencilFuncMap.js +1 -1
- package/dist/Material/Constants/StencilFuncName/StencilFuncMap.js.map +1 -1
- package/dist/Material/Constants/StencilOpName/StencilOpMap.js +1 -1
- package/dist/Material/Constants/StencilOpName/StencilOpMap.js.map +1 -1
- package/dist/Material/Factories/MaterialFactory.js +1 -1
- package/dist/Material/Factories/MaterialFactory.js.map +1 -1
- package/dist/Material/Mixins/WithMaterial.js +1 -1
- package/dist/Material/Mixins/WithMaterial.js.map +1 -1
- package/dist/Material/Utils/MaterialUtils.js +1 -1
- package/dist/Material/Utils/MaterialUtils.js.map +1 -1
- package/dist/Material/Wrappers/MaterialWrapper.js +1 -1
- package/dist/Material/Wrappers/MaterialWrapper.js.map +1 -1
- package/dist/Material/index.d.ts +1 -0
- package/dist/Math/Utils/AnglesUtils.js +1 -1
- package/dist/Math/Utils/AnglesUtils.js.map +1 -1
- package/dist/Measurements/Utils/MeasurementsUtils.js +1 -1
- package/dist/Measurements/Utils/MeasurementsUtils.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Position/WithPosition2dMixin.js +1 -1
- package/dist/Mixins/GameObjects/Mixins/Position/WithPosition2dMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Position/WithPosition4dMixin.js +1 -1
- package/dist/Mixins/GameObjects/Mixins/Position/WithPosition4dMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationMixin.js +1 -1
- package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationMixin.js.map +1 -1
- package/dist/Mixins/Generics/DestroyableMixin.js +1 -1
- package/dist/Mixins/Generics/DestroyableMixin.js.map +1 -1
- package/dist/Mixins/Generics/ExtractSerializableRegistrableFields.js +1 -1
- package/dist/Mixins/Generics/ExtractSerializableRegistrableFields.js.map +1 -1
- package/dist/Mixins/Generics/WithActiveEntityServiceMixin.js +1 -1
- package/dist/Mixins/Generics/WithActiveEntityServiceMixin.js.map +1 -1
- package/dist/Models3d/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Models3d/Adapters/ConfigToParams.js +1 -1
- package/dist/Models3d/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Models3d/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Models3d/Adapters/EntityToConfig.js +1 -1
- package/dist/Models3d/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Models3d/Entities/Model3d.js +1 -1
- package/dist/Models3d/Entities/Model3d.js.map +1 -1
- package/dist/Models3d/Factories/Models3dFactory.js +1 -1
- package/dist/Models3d/Factories/Models3dFactory.js.map +1 -1
- package/dist/Models3d/Loaders/Loader3dCore.js +1 -1
- package/dist/Models3d/Loaders/Loader3dCore.js.map +1 -1
- package/dist/Models3d/Loaders/Models3dLoader.js +1 -1
- package/dist/Models3d/Loaders/Models3dLoader.js.map +1 -1
- package/dist/Models3d/Mixins/WithModel3dEntities.js +1 -1
- package/dist/Models3d/Mixins/WithModel3dEntities.js.map +1 -1
- package/dist/Models3d/Utils/SerializationUtils.js +1 -1
- package/dist/Models3d/Utils/SerializationUtils.js.map +1 -1
- package/dist/Models3d/Utils/UtilsModel3d.js +1 -1
- package/dist/Models3d/Utils/UtilsModel3d.js.map +1 -1
- package/dist/Models3d/Utils/UtilsModels3dService.js +1 -1
- package/dist/Models3d/Utils/UtilsModels3dService.js.map +1 -1
- package/dist/Models3d/Utils/UtilsPrimitiveModels3d.js +1 -1
- package/dist/Models3d/Utils/UtilsPrimitiveModels3d.js.map +1 -1
- package/dist/Models3d/index.d.ts +1 -1
- package/dist/Mouse/Services/MouseService.js +1 -1
- package/dist/Mouse/Services/MouseService.js.map +1 -1
- package/dist/Mouse/Utils/MouseUtils.js +1 -1
- package/dist/Mouse/Utils/MouseUtils.js.map +1 -1
- package/dist/Mouse/Watchers/MouseClickWatcher.js +1 -1
- package/dist/Mouse/Watchers/MouseClickWatcher.js.map +1 -1
- package/dist/Mouse/Watchers/MousePositionWatcher.js +1 -1
- package/dist/Mouse/Watchers/MousePositionWatcher.js.map +1 -1
- package/dist/Particles/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Particles/Adapters/ConfigToParams.js +1 -1
- package/dist/Particles/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Particles/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Particles/Adapters/EntityToConfig.js +1 -1
- package/dist/Particles/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Particles/Factories/ParticlesFactory.js +1 -1
- package/dist/Particles/Factories/ParticlesFactory.js.map +1 -1
- package/dist/Particles/Wrappers/ParticlesWrapper.js +1 -1
- package/dist/Particles/Wrappers/ParticlesWrapper.js.map +1 -1
- package/dist/Particles/index.d.ts +1 -1
- package/dist/Physics/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Physics/Adapters/EntityToConfig.js +1 -1
- package/dist/Physics/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Physics/Adapters/PhysicsBodyConfigToParams.d.ts +1 -1
- package/dist/Physics/Adapters/PhysicsBodyConfigToParams.js +1 -1
- package/dist/Physics/Adapters/PhysicsBodyConfigToParams.js.map +1 -1
- package/dist/Physics/Adapters/PhysicsWorldConfigToParams.d.ts +1 -1
- package/dist/Physics/Adapters/PhysicsWorldConfigToParams.js +1 -1
- package/dist/Physics/Adapters/PhysicsWorldConfigToParams.js.map +1 -1
- package/dist/Physics/Constants/PhysicsConstants.js +1 -1
- package/dist/Physics/Constants/PhysicsConstants.js.map +1 -1
- package/dist/Physics/Constants/RigidBodyTypesMap.js +1 -1
- package/dist/Physics/Constants/RigidBodyTypesMap.js.map +1 -1
- package/dist/Physics/Entities/PhysicsBody.js +1 -1
- package/dist/Physics/Entities/PhysicsBody.js.map +1 -1
- package/dist/Physics/Entities/PhysicsBodyUtils.js +1 -1
- package/dist/Physics/Entities/PhysicsBodyUtils.js.map +1 -1
- package/dist/Physics/Factories/PhysicsBodyFactory.js +1 -1
- package/dist/Physics/Factories/PhysicsBodyFactory.js.map +1 -1
- package/dist/Physics/Renderers/PhysicsDebugRenderer.js +1 -1
- package/dist/Physics/Renderers/PhysicsDebugRenderer.js.map +1 -1
- package/dist/Physics/Services/PhysicsWorldService.js +1 -1
- package/dist/Physics/Services/PhysicsWorldService.js.map +1 -1
- package/dist/Physics/Utils/ParamsUtils.js +1 -1
- package/dist/Physics/Utils/ParamsUtils.js.map +1 -1
- package/dist/Physics/Utils/PhysicsMovementUtils.js +1 -1
- package/dist/Physics/Utils/PhysicsMovementUtils.js.map +1 -1
- package/dist/Renderer/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Renderer/Adapters/ConfigToParams.js +1 -1
- package/dist/Renderer/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Renderer/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Renderer/Adapters/EntityToConfig.js +1 -1
- package/dist/Renderer/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Renderer/Factories/RendererFactory.js +1 -1
- package/dist/Renderer/Factories/RendererFactory.js.map +1 -1
- package/dist/Renderer/Loop/RendererLoopEffect.js +1 -1
- package/dist/Renderer/Loop/RendererLoopEffect.js.map +1 -1
- package/dist/Renderer/Wrappers/RendererWrapper.js +1 -1
- package/dist/Renderer/Wrappers/RendererWrapper.js.map +1 -1
- package/dist/Renderer/index.d.ts +1 -1
- package/dist/Scene/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Scene/Adapters/ConfigToParams.js +1 -1
- package/dist/Scene/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Scene/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Scene/Adapters/EntityToConfig.js +1 -1
- package/dist/Scene/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Scene/Factories/SceneFactory.js +1 -1
- package/dist/Scene/Factories/SceneFactory.js.map +1 -1
- package/dist/Scene/Wrappers/SceneWrapper.js +1 -1
- package/dist/Scene/Wrappers/SceneWrapper.js.map +1 -1
- package/dist/Scene/index.d.ts +1 -0
- package/dist/Space/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Space/Adapters/ConfigToParams.js +1 -1
- package/dist/Space/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Space/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Space/Adapters/EntityToConfig.js +1 -1
- package/dist/Space/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Space/Entities/Space.js +1 -1
- package/dist/Space/Entities/Space.js.map +1 -1
- package/dist/Space/Entities/SpaceFromConfig.js +1 -1
- package/dist/Space/Entities/SpaceFromConfig.js.map +1 -1
- package/dist/Space/Factories/SpaceFactory.js +1 -1
- package/dist/Space/Factories/SpaceFactory.js.map +1 -1
- package/dist/Space/Utils/CanvasUtils.js +1 -1
- package/dist/Space/Utils/CanvasUtils.js.map +1 -1
- package/dist/Space/Utils/CreateEntitiesUtils.js +1 -1
- package/dist/Space/Utils/CreateEntitiesUtils.js.map +1 -1
- package/dist/Space/Utils/SchemaValidationUtils.js +1 -1
- package/dist/Space/Utils/SchemaValidationUtils.js.map +1 -1
- package/dist/Space/Validators/SchemasValidator.js +1 -1
- package/dist/Space/Validators/SchemasValidator.js.map +1 -1
- package/dist/Space/Validators/ValidateSpace.js +1 -1
- package/dist/Space/Validators/ValidateSpace.js.map +1 -1
- package/dist/Space/index.d.ts +1 -1
- package/dist/Spatial/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Spatial/Adapters/ConfigToParams.js +1 -1
- package/dist/Spatial/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Spatial/Adapters/ConfigToParamsSpatialData.d.ts +1 -1
- package/dist/Spatial/Adapters/ConfigToParamsSpatialData.js +1 -1
- package/dist/Spatial/Adapters/ConfigToParamsSpatialData.js.map +1 -1
- package/dist/Spatial/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Spatial/Adapters/EntityToConfig.js +1 -1
- package/dist/Spatial/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Spatial/Factories/SpatialGridFactory.js +1 -1
- package/dist/Spatial/Factories/SpatialGridFactory.js.map +1 -1
- package/dist/Spatial/Mixins/WithReactivePosition.js +1 -1
- package/dist/Spatial/Mixins/WithReactivePosition.js.map +1 -1
- package/dist/Spatial/Mixins/WithReactiveRotation.js +1 -1
- package/dist/Spatial/Mixins/WithReactiveRotation.js.map +1 -1
- package/dist/Spatial/Mixins/WithSpatial.js +1 -1
- package/dist/Spatial/Mixins/WithSpatial.js.map +1 -1
- package/dist/Spatial/Mixins/WithUpdateSpatialCell.js +1 -1
- package/dist/Spatial/Mixins/WithUpdateSpatialCell.js.map +1 -1
- package/dist/Spatial/Services/SpatialHelper.js +1 -1
- package/dist/Spatial/Services/SpatialHelper.js.map +1 -1
- package/dist/Spatial/Wrappers/SpatialCellWrapper.js +1 -1
- package/dist/Spatial/Wrappers/SpatialCellWrapper.js.map +1 -1
- package/dist/Spatial/Wrappers/SpatialGridWrapper.js +1 -1
- package/dist/Spatial/Wrappers/SpatialGridWrapper.js.map +1 -1
- package/dist/Text/Adapters/ConfigToParams.d.ts +1 -1
- package/dist/Text/Adapters/ConfigToParams.js +1 -1
- package/dist/Text/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Text/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Text/Adapters/EntityToConfig.js +1 -1
- package/dist/Text/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Text/Factories/TextFactory.js +1 -1
- package/dist/Text/Factories/TextFactory.js.map +1 -1
- package/dist/Text/Loop/TextLoopEffect.js +1 -1
- package/dist/Text/Loop/TextLoopEffect.js.map +1 -1
- package/dist/Text/Renderers/Text2dRenderer.js +1 -1
- package/dist/Text/Renderers/Text2dRenderer.js.map +1 -1
- package/dist/Text/Renderers/Text3dRenderer.js +1 -1
- package/dist/Text/Renderers/Text3dRenderer.js.map +1 -1
- package/dist/Text/Renderers/TextRendererBuilder.js +1 -1
- package/dist/Text/Renderers/TextRendererBuilder.js.map +1 -1
- package/dist/Text/Services/TextService.js +1 -1
- package/dist/Text/Services/TextService.js.map +1 -1
- package/dist/Text/Wrappers/Accessors.js +1 -1
- package/dist/Text/Wrappers/Accessors.js.map +1 -1
- package/dist/Text/Wrappers/TextTextureWrapper.js +1 -1
- package/dist/Text/Wrappers/TextTextureWrapper.js.map +1 -1
- package/dist/Text/Wrappers/TextWrapper.js +1 -1
- package/dist/Text/Wrappers/TextWrapper.js.map +1 -1
- package/dist/Text/Wrappers/TextWrapperHelper.js +1 -1
- package/dist/Text/Wrappers/TextWrapperHelper.js.map +1 -1
- package/dist/Text/index.d.ts +1 -0
- package/dist/Texture/Loaders/TexturesLoader.js +1 -1
- package/dist/Texture/Loaders/TexturesLoader.js.map +1 -1
- package/dist/Texture/Utils/TextureServiceHelper.js +1 -1
- package/dist/Texture/Utils/TextureServiceHelper.js.map +1 -1
- package/dist/ThreeLib/Utils/Object3dUtils.d.ts +1 -1
- package/dist/ThreeLib/Utils/Object3dUtils.js +1 -1
- package/dist/ThreeLib/Utils/Object3dUtils.js.map +1 -1
- package/dist/TransformDrive/Adapters/EntityToConfig.js +1 -1
- package/dist/TransformDrive/Adapters/EntityToConfig.js.map +1 -1
- package/dist/TransformDrive/Entities/Agents/AbstractTransformAgent.js +1 -1
- package/dist/TransformDrive/Entities/Agents/AbstractTransformAgent.js.map +1 -1
- package/dist/TransformDrive/Entities/Agents/KinematicTransformAgent.js +1 -1
- package/dist/TransformDrive/Entities/Agents/KinematicTransformAgent.js.map +1 -1
- package/dist/TransformDrive/Entities/Agents/PhysicsTransformAgent.js +1 -1
- package/dist/TransformDrive/Entities/Agents/PhysicsTransformAgent.js.map +1 -1
- package/dist/TransformDrive/Entities/Connectors/DriveToTargetConnector.js +1 -1
- package/dist/TransformDrive/Entities/Connectors/DriveToTargetConnector.js.map +1 -1
- package/dist/TransformDrive/Entities/Drive/TransformDrive.js +1 -1
- package/dist/TransformDrive/Entities/Drive/TransformDrive.js.map +1 -1
- package/dist/TransformDrive/Services/TransformDriveService.js +1 -1
- package/dist/TransformDrive/Services/TransformDriveService.js.map +1 -1
- package/dist/TransformDrive/Utils/AgentUtils.js +1 -1
- package/dist/TransformDrive/Utils/AgentUtils.js.map +1 -1
- package/dist/TransformDrive/Utils/KinematicAgentUtils.js +1 -1
- package/dist/TransformDrive/Utils/KinematicAgentUtils.js.map +1 -1
- package/dist/TransformDrive/Utils/PhysicsTransformAgentUtils.js +1 -1
- package/dist/TransformDrive/Utils/PhysicsTransformAgentUtils.js.map +1 -1
- package/dist/TransformDrive/Utils/TransformDriveUtils.js +1 -1
- package/dist/TransformDrive/Utils/TransformDriveUtils.js.map +1 -1
- package/dist/Utils/CheckUtils.js +1 -1
- package/dist/Utils/CheckUtils.js.map +1 -1
- package/dist/Utils/CoordsUtils.js +1 -1
- package/dist/Utils/CoordsUtils.js.map +1 -1
- package/dist/Utils/DateTimeUtils.js +1 -1
- package/dist/Utils/DateTimeUtils.js.map +1 -1
- package/dist/Utils/DestroyUtils.js +1 -1
- package/dist/Utils/DestroyUtils.js.map +1 -1
- package/dist/Utils/DomUtils.js +1 -1
- package/dist/Utils/DomUtils.js.map +1 -1
- package/dist/Utils/RegistryAsyncUtils.js +1 -1
- package/dist/Utils/RegistryAsyncUtils.js.map +1 -1
- package/dist/Utils/RegistryUtils.js +1 -1
- package/dist/Utils/RegistryUtils.js.map +1 -1
- package/dist/Utils/RotationUtils.js +1 -1
- package/dist/Utils/RotationUtils.js.map +1 -1
- package/dist/Utils/RxJsUtils.js +1 -1
- package/dist/Utils/RxJsUtils.js.map +1 -1
- package/dist/Utils/ScreenUtils.js +1 -1
- package/dist/Utils/ScreenUtils.js.map +1 -1
- package/dist/Utils/TagsUtils.js +1 -1
- package/dist/Utils/TagsUtils.js.map +1 -1
- package/dist/Utils/WrapperHelpers.js +1 -1
- package/dist/Utils/WrapperHelpers.js.map +1 -1
- package/dist/_virtual/stateMachine.js +1 -1
- package/dist/index.js +1 -1
- package/dist/node_modules/@cfworker/json-schema/dist/esm/deep-compare-strict.js.map +1 -0
- package/dist/node_modules/@cfworker/json-schema/dist/esm/dereference.js.map +1 -0
- package/dist/node_modules/@cfworker/json-schema/dist/esm/format.js.map +1 -0
- package/dist/node_modules/@cfworker/json-schema/dist/esm/pointer.js.map +1 -0
- package/dist/node_modules/@cfworker/json-schema/dist/esm/ucs2-length.js.map +1 -0
- package/dist/node_modules/@cfworker/json-schema/dist/esm/validate.js.map +1 -0
- package/dist/node_modules/@cfworker/json-schema/dist/esm/validator.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/defaultOptions.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/format/formatters.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/normalizeDates.js.map +1 -0
- package/dist/node_modules/date-fns/_lib/protectedTokens.js.map +1 -0
- package/dist/node_modules/date-fns/constants.js.map +1 -0
- package/dist/node_modules/date-fns/constructFrom.js.map +1 -0
- package/dist/node_modules/date-fns/differenceInCalendarDays.js.map +1 -0
- package/dist/node_modules/date-fns/format.js.map +1 -0
- package/dist/node_modules/date-fns/getDayOfYear.js.map +1 -0
- package/dist/node_modules/date-fns/getISOWeek.js.map +1 -0
- package/dist/node_modules/date-fns/getISOWeekYear.js.map +1 -0
- package/dist/node_modules/date-fns/getWeek.js.map +1 -0
- package/dist/node_modules/date-fns/getWeekYear.js.map +1 -0
- package/dist/node_modules/date-fns/isDate.js.map +1 -0
- package/dist/node_modules/date-fns/isValid.js.map +1 -0
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -0
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -0
- package/dist/node_modules/date-fns/locale/en-US.js.map +1 -0
- package/dist/node_modules/date-fns/parseISO.js.map +1 -0
- package/dist/node_modules/date-fns/startOfDay.js.map +1 -0
- package/dist/node_modules/date-fns/startOfISOWeek.js.map +1 -0
- package/dist/node_modules/date-fns/startOfISOWeekYear.js.map +1 -0
- package/dist/node_modules/date-fns/startOfWeek.js.map +1 -0
- package/dist/node_modules/date-fns/startOfWeekYear.js.map +1 -0
- package/dist/node_modules/date-fns/startOfYear.js.map +1 -0
- package/dist/node_modules/date-fns/toDate.js.map +1 -0
- package/dist/node_modules/lodash-es/_DataView.js.map +1 -0
- package/dist/node_modules/lodash-es/_Hash.js.map +1 -0
- package/dist/node_modules/lodash-es/_ListCache.js.map +1 -0
- package/dist/node_modules/lodash-es/_Map.js.map +1 -0
- package/dist/node_modules/lodash-es/_MapCache.js.map +1 -0
- package/dist/node_modules/lodash-es/_Promise.js.map +1 -0
- package/dist/node_modules/lodash-es/_Set.js.map +1 -0
- package/dist/node_modules/lodash-es/_SetCache.js.map +1 -0
- package/dist/node_modules/lodash-es/_Stack.js.map +1 -0
- package/dist/node_modules/lodash-es/_Symbol.js.map +1 -0
- package/dist/node_modules/lodash-es/_Uint8Array.js.map +1 -0
- package/dist/node_modules/lodash-es/_WeakMap.js.map +1 -0
- package/dist/node_modules/lodash-es/_arrayEach.js.map +1 -0
- package/dist/node_modules/lodash-es/_arrayFilter.js.map +1 -0
- package/dist/node_modules/lodash-es/_arrayLikeKeys.js.map +1 -0
- package/dist/node_modules/lodash-es/_arrayPush.js.map +1 -0
- package/dist/node_modules/lodash-es/_arraySome.js.map +1 -0
- package/dist/node_modules/lodash-es/_assignValue.js.map +1 -0
- package/dist/node_modules/lodash-es/_assocIndexOf.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseAssignValue.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseClone.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseCreate.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseGetAllKeys.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseGetTag.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseIsArguments.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseIsEqual.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseIsEqualDeep.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseIsMap.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseIsNative.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseIsSet.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseIsTypedArray.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseKeys.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseTimes.js.map +1 -0
- package/dist/node_modules/lodash-es/_baseUnary.js.map +1 -0
- package/dist/node_modules/lodash-es/_cacheHas.js.map +1 -0
- package/dist/node_modules/lodash-es/_cloneArrayBuffer.js.map +1 -0
- package/dist/node_modules/lodash-es/_cloneBuffer.js.map +1 -0
- package/dist/node_modules/lodash-es/_cloneDataView.js.map +1 -0
- package/dist/node_modules/lodash-es/_cloneRegExp.js.map +1 -0
- package/dist/node_modules/lodash-es/_cloneSymbol.js.map +1 -0
- package/dist/node_modules/lodash-es/_cloneTypedArray.js.map +1 -0
- package/dist/node_modules/lodash-es/_coreJsData.js.map +1 -0
- package/dist/node_modules/lodash-es/_defineProperty.js.map +1 -0
- package/dist/node_modules/lodash-es/_equalArrays.js.map +1 -0
- package/dist/node_modules/lodash-es/_equalByTag.js.map +1 -0
- package/dist/node_modules/lodash-es/_equalObjects.js.map +1 -0
- package/dist/node_modules/lodash-es/_freeGlobal.js.map +1 -0
- package/dist/node_modules/lodash-es/_getAllKeys.js.map +1 -0
- package/dist/node_modules/lodash-es/_getMapData.js.map +1 -0
- package/dist/node_modules/lodash-es/_getNative.js.map +1 -0
- package/dist/node_modules/lodash-es/_getPrototype.js.map +1 -0
- package/dist/node_modules/lodash-es/_getRawTag.js.map +1 -0
- package/dist/node_modules/lodash-es/_getSymbols.js.map +1 -0
- package/dist/node_modules/lodash-es/_getTag.js.map +1 -0
- package/dist/node_modules/lodash-es/_getValue.js.map +1 -0
- package/dist/node_modules/lodash-es/_hashClear.js.map +1 -0
- package/dist/node_modules/lodash-es/_hashDelete.js.map +1 -0
- package/dist/node_modules/lodash-es/_hashGet.js.map +1 -0
- package/dist/node_modules/lodash-es/_hashHas.js.map +1 -0
- package/dist/node_modules/lodash-es/_hashSet.js.map +1 -0
- package/dist/node_modules/lodash-es/_initCloneArray.js.map +1 -0
- package/dist/node_modules/lodash-es/_initCloneByTag.js.map +1 -0
- package/dist/node_modules/lodash-es/_initCloneObject.js.map +1 -0
- package/dist/node_modules/lodash-es/_isIndex.js.map +1 -0
- package/dist/node_modules/lodash-es/_isKeyable.js.map +1 -0
- package/dist/node_modules/lodash-es/_isMasked.js.map +1 -0
- package/dist/node_modules/lodash-es/_isPrototype.js.map +1 -0
- package/dist/node_modules/lodash-es/_listCacheClear.js.map +1 -0
- package/dist/node_modules/lodash-es/_listCacheDelete.js.map +1 -0
- package/dist/node_modules/lodash-es/_listCacheGet.js.map +1 -0
- package/dist/node_modules/lodash-es/_listCacheHas.js.map +1 -0
- package/dist/node_modules/lodash-es/_listCacheSet.js.map +1 -0
- package/dist/node_modules/lodash-es/_mapCacheClear.js.map +1 -0
- package/dist/node_modules/lodash-es/_mapCacheDelete.js.map +1 -0
- package/dist/node_modules/lodash-es/_mapCacheGet.js.map +1 -0
- package/dist/node_modules/lodash-es/_mapCacheHas.js.map +1 -0
- package/dist/node_modules/lodash-es/_mapCacheSet.js.map +1 -0
- package/dist/node_modules/lodash-es/_mapToArray.js.map +1 -0
- package/dist/node_modules/lodash-es/_nativeCreate.js.map +1 -0
- package/dist/node_modules/lodash-es/_nativeKeys.js.map +1 -0
- package/dist/node_modules/lodash-es/_nodeUtil.js.map +1 -0
- package/dist/node_modules/lodash-es/_objectToString.js.map +1 -0
- package/dist/node_modules/lodash-es/_overArg.js.map +1 -0
- package/dist/node_modules/lodash-es/_root.js.map +1 -0
- package/dist/node_modules/lodash-es/_setCacheAdd.js.map +1 -0
- package/dist/node_modules/lodash-es/_setCacheHas.js.map +1 -0
- package/dist/node_modules/lodash-es/_setToArray.js.map +1 -0
- package/dist/node_modules/lodash-es/_stackClear.js.map +1 -0
- package/dist/node_modules/lodash-es/_stackDelete.js.map +1 -0
- package/dist/node_modules/lodash-es/_stackGet.js.map +1 -0
- package/dist/node_modules/lodash-es/_stackHas.js.map +1 -0
- package/dist/node_modules/lodash-es/_stackSet.js.map +1 -0
- package/dist/node_modules/lodash-es/_toSource.js.map +1 -0
- package/dist/node_modules/lodash-es/cloneDeepWith.js.map +1 -0
- package/dist/node_modules/lodash-es/eq.js.map +1 -0
- package/dist/node_modules/lodash-es/isArguments.js.map +1 -0
- package/dist/node_modules/lodash-es/isArray.js.map +1 -0
- package/dist/node_modules/lodash-es/isArrayLike.js.map +1 -0
- package/dist/node_modules/lodash-es/isBuffer.js.map +1 -0
- package/dist/node_modules/lodash-es/isEmpty.js.map +1 -0
- package/dist/node_modules/lodash-es/isEqual.js.map +1 -0
- package/dist/node_modules/lodash-es/isFunction.js.map +1 -0
- package/dist/node_modules/lodash-es/isLength.js.map +1 -0
- package/dist/node_modules/lodash-es/isMap.js.map +1 -0
- package/dist/node_modules/lodash-es/isObject.js.map +1 -0
- package/dist/node_modules/lodash-es/isObjectLike.js.map +1 -0
- package/dist/node_modules/lodash-es/isPlainObject.js.map +1 -0
- package/dist/node_modules/lodash-es/isSet.js.map +1 -0
- package/dist/node_modules/lodash-es/isTypedArray.js.map +1 -0
- package/dist/node_modules/lodash-es/keys.js.map +1 -0
- package/dist/node_modules/lodash-es/stubArray.js.map +1 -0
- package/dist/node_modules/lodash-es/stubFalse.js.map +1 -0
- package/dist/node_modules/quickselect/index.js.map +1 -0
- package/dist/node_modules/rbush/index.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/ReplaySubject.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/Scheduler.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/Subject.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/config.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/concat.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/defer.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/from.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/merge.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/of.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/catchError.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/concatAll.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/concatMap.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/filter.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/finalize.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/map.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/sample.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/skip.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/startWith.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/switchMap.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/take.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/tap.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/timeout.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/Action.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/async.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/args.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/createObject.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isDate.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isIterable.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isPromise.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isScheduler.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/lift.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +1 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/Constants.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/MeshBVH.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/core/MeshBVH.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/MeshBVHNode.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/build/buildTree.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/build/buildUtils.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/build/computeBoundsUtils.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/build/geometryUtils.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/core/build/geometryUtils.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/build/sortUtils.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/build/sortUtils_indirect.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/build/splitUtils.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/bvhcast.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/bvhcast.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry.generated.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry_indirect.generated.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry_indirect.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/closestPointToPoint.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/closestPointToPoint.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry.generated.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry_indirect.generated.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry_indirect.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/raycast.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/raycastFirst.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/raycastFirst_indirect.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/raycast_indirect.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/refit.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/refit_indirect.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/shapecast.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/core/cast/shapecast.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/utils/BufferStack.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/utils/intersectUtils.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/utils/iterationUtils.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/utils/iterationUtils_indirect.generated.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/core/utils/nodeBufferUtils.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/math/ExtendedTriangle.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/math/ExtendedTriangle.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/math/MathUtilities.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/math/MathUtilities.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/math/OrientedBox.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/math/OrientedBox.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/math/SeparatingAxisBounds.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/math/SeparatingAxisBounds.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/objects/MeshBVHHelper.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/objects/MeshBVHHelper.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/utils/ArrayBoxUtilities.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/utils/BufferUtils.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/utils/ExtendedTrianglePool.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/utils/ExtensionUtilities.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/utils/ExtensionUtilities.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/utils/GeometryRayIntersectUtilities.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/utils/PrimitivePool.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/utils/ThreeRayIntersectUtilities.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/utils/ThreeRayIntersectUtilities.js.map +1 -0
- package/dist/node_modules/three-mesh-bvh/src/utils/TriangleUtilities.js +2 -0
- package/dist/node_modules/three-mesh-bvh/src/utils/TriangleUtilities.js.map +1 -0
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/node_modules/typescript-fsm/dist/stateMachine.js +2 -0
- package/dist/node_modules/typescript-fsm/dist/stateMachine.js.map +1 -0
- package/dist/packages/anarchy-engine/node_modules/nanoid/index.browser.js.map +1 -0
- package/dist/packages/anarchy-engine/node_modules/nanoid/url-alphabet/index.js.map +1 -0
- package/dist/packages/anarchy-shared/src/Constants/CssUnits.js.map +1 -0
- package/dist/packages/anarchy-shared/src/Constants/FallBackFonts.js.map +1 -0
- package/dist/packages/anarchy-shared/src/Utils/ArrayUtils.js.map +1 -0
- package/dist/packages/anarchy-shared/src/Utils/AsyncUtils.js.map +1 -0
- package/dist/packages/anarchy-shared/src/Utils/CheckUtils.js.map +1 -0
- package/dist/packages/anarchy-shared/src/Utils/CssUtils.js.map +1 -0
- package/dist/packages/anarchy-shared/src/Utils/MapUtils.js.map +1 -0
- package/dist/packages/anarchy-shared/src/Utils/ObjectUtils.js.map +1 -0
- package/dist/packages/anarchy-shared/src/Utils/StringUtils.js.map +1 -0
- package/dist/packages/anarchy-shared/src/Utils/TypesUtils.js.map +1 -0
- package/dist/packages/anarchy-shared/src/Utils/WebGlUtils.js.map +1 -0
- package/legal/NOTICE.md +2 -14
- package/legal/THIRD_PARTY_LICENSES.md +2 -214
- package/package.json +15 -3
- package/dist/Audio/Adapters/ConfigToParams.d.ts +0 -2
- package/dist/Audio/Adapters/ConfigToParams.js +0 -2
- package/dist/Audio/Adapters/ConfigToParams.js.map +0 -1
- package/dist/__vite-plugin-wasm-helper.js +0 -2
- package/dist/__vite-plugin-wasm-helper.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/deep-compare-strict.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/dereference.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/format.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/pointer.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/ucs2-length.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/validate.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/validator.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/coarena.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/coarena.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/control/character_controller.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/control/character_controller.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/control/pid_controller.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/control/pid_controller.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/control/ray_cast_vehicle_controller.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/control/ray_cast_vehicle_controller.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/ccd_solver.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/ccd_solver.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/coefficient_combine_rule.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/coefficient_combine_rule.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/impulse_joint.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/impulse_joint.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/impulse_joint_set.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/impulse_joint_set.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/integration_parameters.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/integration_parameters.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/island_manager.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/island_manager.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/multibody_joint.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/multibody_joint.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/multibody_joint_set.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/multibody_joint_set.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/rigid_body.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/rigid_body.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/rigid_body_set.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/rigid_body_set.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/broad_phase.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/broad_phase.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/collider.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/collider.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/collider_set.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/collider_set.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/contact.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/contact.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/feature.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/feature.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/narrow_phase.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/narrow_phase.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/point.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/point.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/ray.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/ray.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/shape.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/shape.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/toi.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/toi.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/math.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/math.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/debug_render_pipeline.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/debug_render_pipeline.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/event_queue.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/event_queue.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/physics_hooks.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/physics_hooks.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/physics_pipeline.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/physics_pipeline.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/serialization_pipeline.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/serialization_pipeline.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/world.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/world.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d_bg.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d_bg.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d_bg.wasm.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d_bg.wasm.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d_bg.wasm2.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d_bg.wasm2.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/addLeadingZeros.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/defaultOptions.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/format/formatters.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/format/lightFormatters.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/format/longFormatters.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/normalizeDates.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/protectedTokens.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/constants.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/constructFrom.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/differenceInCalendarDays.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/format.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/getDayOfYear.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/getISOWeek.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/getISOWeekYear.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/getWeek.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/getWeekYear.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/isDate.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/isValid.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/en-US/_lib/localize.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/en-US/_lib/match.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/en-US.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/parseISO.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/startOfDay.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/startOfISOWeek.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/startOfISOWeekYear.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/startOfWeek.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/startOfWeekYear.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/startOfYear.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/toDate.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_DataView.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Hash.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_ListCache.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Map.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_MapCache.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Promise.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Set.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_SetCache.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Stack.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Symbol.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Uint8Array.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_WeakMap.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_arrayEach.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_arrayFilter.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_arrayLikeKeys.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_arrayPush.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_arraySome.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_assignValue.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_assocIndexOf.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseAssignValue.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseClone.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseCreate.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseGetAllKeys.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseGetTag.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsArguments.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsEqual.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsEqualDeep.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsMap.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsNative.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsSet.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsTypedArray.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseKeys.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseTimes.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseUnary.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cacheHas.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cloneArrayBuffer.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cloneBuffer.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cloneDataView.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cloneRegExp.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cloneSymbol.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cloneTypedArray.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_coreJsData.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_defineProperty.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_equalArrays.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_equalByTag.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_equalObjects.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_freeGlobal.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getAllKeys.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getMapData.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getNative.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getPrototype.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getRawTag.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getSymbols.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getTag.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getValue.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_hashClear.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_hashDelete.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_hashGet.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_hashHas.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_hashSet.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_initCloneArray.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_initCloneByTag.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_initCloneObject.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_isIndex.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_isKeyable.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_isMasked.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_isPrototype.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_listCacheClear.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_listCacheDelete.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_listCacheGet.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_listCacheHas.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_listCacheSet.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_mapCacheClear.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_mapCacheDelete.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_mapCacheGet.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_mapCacheHas.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_mapCacheSet.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_mapToArray.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_nativeCreate.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_nativeKeys.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_nodeUtil.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_objectToString.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_overArg.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_root.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_setCacheAdd.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_setCacheHas.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_setToArray.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_stackClear.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_stackDelete.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_stackGet.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_stackHas.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_stackSet.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_toSource.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/cloneDeepWith.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/eq.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isArguments.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isArray.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isArrayLike.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isBuffer.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isEmpty.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isEqual.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isFunction.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isLength.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isMap.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isObject.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isObjectLike.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isPlainObject.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isSet.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isTypedArray.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/keys.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/stubArray.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/stubFalse.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/quickselect/index.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rbush/index.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/Observable.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/ReplaySubject.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/Scheduler.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/Subject.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/config.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/concat.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/defer.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/from.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/merge.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/of.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/catchError.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/concatAll.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/concatMap.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/filter.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/finalize.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/map.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/sample.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/skip.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/startWith.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/switchMap.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/take.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/tap.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/timeout.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/Action.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/async.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/args.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/createObject.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isDate.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isIterable.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isPromise.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isScheduler.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/lift.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/build/three.core.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/build/three.core.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/build/three.module.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/build/three.module.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/controls/FirstPersonControls.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/controls/FirstPersonControls.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/controls/OrbitControls.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/controls/OrbitControls.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/Line2.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/Line2.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineGeometry.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineGeometry.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineMaterial.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineMaterial.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineSegments2.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineSegments2.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineSegmentsGeometry.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineSegmentsGeometry.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/loaders/DRACOLoader.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/loaders/DRACOLoader.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/loaders/GLTFLoader.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/loaders/GLTFLoader.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/loaders/HDRLoader.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/loaders/HDRLoader.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/renderers/CSS3DRenderer.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/renderers/CSS3DRenderer.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/utils/SkeletonUtils.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/utils/SkeletonUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/math/MathUtils.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/math/MathUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/math/Quaternion.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/math/Quaternion.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/math/Vector3.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/math/Vector3.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/utils.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/utils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/Constants.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/MeshBVH.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/MeshBVH.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/MeshBVHNode.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/buildTree.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/buildUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/computeBoundsUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/geometryUtils.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/geometryUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/sortUtils.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/sortUtils_indirect.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/splitUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/bvhcast.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/bvhcast.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry.generated.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry_indirect.generated.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry_indirect.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/closestPointToPoint.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/closestPointToPoint.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry.generated.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry_indirect.generated.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry_indirect.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/raycast.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/raycastFirst.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/raycastFirst_indirect.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/raycast_indirect.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/refit.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/refit_indirect.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/shapecast.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/shapecast.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/utils/BufferStack.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/utils/intersectUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/utils/iterationUtils.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/utils/iterationUtils_indirect.generated.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/utils/nodeBufferUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/ExtendedTriangle.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/ExtendedTriangle.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/MathUtilities.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/MathUtilities.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/OrientedBox.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/OrientedBox.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/SeparatingAxisBounds.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/SeparatingAxisBounds.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/objects/MeshBVHHelper.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/objects/MeshBVHHelper.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/ArrayBoxUtilities.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/BufferUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/ExtendedTrianglePool.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/ExtensionUtilities.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/ExtensionUtilities.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/GeometryRayIntersectUtilities.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/PrimitivePool.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/ThreeRayIntersectUtilities.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/ThreeRayIntersectUtilities.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/TriangleUtilities.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/TriangleUtilities.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/tslib/tslib.es6.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/typescript-fsm/dist/stateMachine.js +0 -2
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/typescript-fsm/dist/stateMachine.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-engine/node_modules/nanoid/index.browser.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-engine/node_modules/nanoid/url-alphabet/index.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Constants/CssUnits.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Constants/FallBackFonts.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/ArrayUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/AsyncUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/CheckUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/CssUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/MapUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/ObjectUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/StringUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/TypesUtils.js.map +0 -1
- package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/WebGlUtils.js.map +0 -1
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/deep-compare-strict.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/dereference.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/format.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/pointer.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/ucs2-length.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/validate.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/validator.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/addLeadingZeros.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/defaultOptions.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/format/formatters.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/format/lightFormatters.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/format/longFormatters.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/normalizeDates.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/protectedTokens.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/constants.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/constructFrom.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/differenceInCalendarDays.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/format.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/getDayOfYear.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/getISOWeek.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/getISOWeekYear.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/getWeek.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/getWeekYear.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/isDate.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/isValid.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/_lib/buildFormatLongFn.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/_lib/buildLocalizeFn.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/_lib/buildMatchFn.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/_lib/buildMatchPatternFn.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/en-US/_lib/formatDistance.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/en-US/_lib/formatLong.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/en-US/_lib/formatRelative.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/en-US/_lib/localize.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/en-US/_lib/match.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/en-US.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/parseISO.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/startOfDay.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/startOfISOWeek.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/startOfISOWeekYear.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/startOfWeek.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/startOfWeekYear.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/startOfYear.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/toDate.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_DataView.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Hash.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_ListCache.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Map.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_MapCache.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Promise.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Set.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_SetCache.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Stack.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Symbol.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Uint8Array.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_WeakMap.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_arrayEach.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_arrayFilter.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_arrayLikeKeys.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_arrayPush.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_arraySome.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_assignValue.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_assocIndexOf.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseAssignValue.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseClone.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseCreate.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseGetAllKeys.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseGetTag.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsArguments.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsEqual.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsEqualDeep.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsMap.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsNative.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsSet.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsTypedArray.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseKeys.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseTimes.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseUnary.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cacheHas.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cloneArrayBuffer.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cloneBuffer.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cloneDataView.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cloneRegExp.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cloneSymbol.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cloneTypedArray.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_coreJsData.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_defineProperty.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_equalArrays.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_equalByTag.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_equalObjects.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_freeGlobal.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getAllKeys.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getMapData.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getNative.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getPrototype.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getRawTag.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getSymbols.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getTag.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getValue.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_hashClear.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_hashDelete.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_hashGet.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_hashHas.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_hashSet.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_initCloneArray.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_initCloneByTag.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_initCloneObject.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_isIndex.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_isKeyable.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_isMasked.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_isPrototype.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_listCacheClear.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_listCacheDelete.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_listCacheGet.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_listCacheHas.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_listCacheSet.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_mapCacheClear.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_mapCacheDelete.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_mapCacheGet.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_mapCacheHas.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_mapCacheSet.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_mapToArray.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_nativeCreate.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_nativeKeys.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_nodeUtil.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_objectToString.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_overArg.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_root.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_setCacheAdd.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_setCacheHas.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_setToArray.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_stackClear.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_stackDelete.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_stackGet.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_stackHas.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_stackSet.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_toSource.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/cloneDeepWith.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/eq.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isArguments.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isArray.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isArrayLike.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isBuffer.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isEmpty.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isEqual.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isFunction.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isLength.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isMap.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isObject.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isObjectLike.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isPlainObject.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isSet.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isTypedArray.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/keys.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/stubArray.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/stubFalse.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/quickselect/index.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rbush/index.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/BehaviorSubject.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/Observable.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/ReplaySubject.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/Scheduler.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/Subject.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/Subscriber.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/Subscription.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/config.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/combineLatest.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/concat.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/defer.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/empty.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/from.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/fromEvent.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/innerFrom.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/merge.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/of.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/catchError.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/concatAll.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/concatMap.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/exhaustMap.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/filter.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/finalize.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/map.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/mergeAll.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/mergeInternals.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/mergeMap.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/observeOn.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/sample.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/skip.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/skipWhile.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/startWith.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/subscribeOn.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/switchMap.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/take.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/takeUntil.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/takeWhile.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/tap.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/timeout.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/withLatestFrom.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/scheduleArray.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/schedulePromise.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/scheduled.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/Action.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/AsyncAction.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/async.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/intervalProvider.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/symbol/iterator.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/symbol/observable.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/UnsubscriptionError.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/args.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/arrRemove.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/createErrorClass.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/createObject.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/errorContext.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/executeSchedule.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/identity.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isArrayLike.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isAsyncIterable.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isDate.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isFunction.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isInteropObservable.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isIterable.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isPromise.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isReadableStreamLike.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isScheduler.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/lift.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/noop.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/pipe.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/reportUnhandledError.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/throwUnobservableError.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/Constants.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/MeshBVHNode.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/build/buildTree.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/build/buildUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/build/computeBoundsUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/build/sortUtils.generated.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/build/sortUtils_indirect.generated.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/build/splitUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/cast/raycast.generated.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/cast/raycastFirst.generated.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/cast/raycastFirst_indirect.generated.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/cast/raycast_indirect.generated.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/cast/refit.generated.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/cast/refit_indirect.generated.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/utils/BufferStack.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/utils/intersectUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/utils/iterationUtils.generated.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/utils/iterationUtils_indirect.generated.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/utils/nodeBufferUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/utils/ArrayBoxUtilities.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/utils/BufferUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/utils/ExtendedTrianglePool.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/utils/GeometryRayIntersectUtilities.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/utils/PrimitivePool.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/tslib/tslib.es6.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-engine/node_modules/nanoid/index.browser.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-engine/node_modules/nanoid/url-alphabet/index.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Constants/CssUnits.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Constants/FallBackFonts.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/ArrayUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/AsyncUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/CheckUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/CssUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/MapUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/ObjectUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/StringUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/TypesUtils.js +0 -0
- /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/WebGlUtils.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GLTFLoader.js","sources":["../../../../../../../../../../../../../node_modules/three/examples/jsm/loaders/GLTFLoader.js"],"sourcesContent":["import {\n\tAnimationClip,\n\tBone,\n\tBox3,\n\tBufferAttribute,\n\tBufferGeometry,\n\tClampToEdgeWrapping,\n\tColor,\n\tColorManagement,\n\tDirectionalLight,\n\tDoubleSide,\n\tFileLoader,\n\tFrontSide,\n\tGroup,\n\tImageBitmapLoader,\n\tInstancedMesh,\n\tInterleavedBuffer,\n\tInterleavedBufferAttribute,\n\tInterpolant,\n\tInterpolateDiscrete,\n\tInterpolateLinear,\n\tLine,\n\tLineBasicMaterial,\n\tLineLoop,\n\tLineSegments,\n\tLinearFilter,\n\tLinearMipmapLinearFilter,\n\tLinearMipmapNearestFilter,\n\tLinearSRGBColorSpace,\n\tLoader,\n\tLoaderUtils,\n\tMaterial,\n\tMathUtils,\n\tMatrix4,\n\tMesh,\n\tMeshBasicMaterial,\n\tMeshPhysicalMaterial,\n\tMeshStandardMaterial,\n\tMirroredRepeatWrapping,\n\tNearestFilter,\n\tNearestMipmapLinearFilter,\n\tNearestMipmapNearestFilter,\n\tNumberKeyframeTrack,\n\tObject3D,\n\tOrthographicCamera,\n\tPerspectiveCamera,\n\tPointLight,\n\tPoints,\n\tPointsMaterial,\n\tPropertyBinding,\n\tQuaternion,\n\tQuaternionKeyframeTrack,\n\tRepeatWrapping,\n\tSkeleton,\n\tSkinnedMesh,\n\tSphere,\n\tSpotLight,\n\tTexture,\n\tTextureLoader,\n\tTriangleFanDrawMode,\n\tTriangleStripDrawMode,\n\tVector2,\n\tVector3,\n\tVectorKeyframeTrack,\n\tSRGBColorSpace,\n\tInstancedBufferAttribute\n} from 'three';\nimport { toTrianglesDrawMode } from '../utils/BufferGeometryUtils.js';\n\n/**\n * A loader for the glTF 2.0 format.\n *\n * [glTF](https://www.khronos.org/gltf/} (GL Transmission Format) is an [open format specification]{@link https://github.com/KhronosGroup/glTF/tree/main/specification/2.0)\n * for efficient delivery and loading of 3D content. Assets may be provided either in JSON (.gltf) or binary (.glb)\n * format. External files store textures (.jpg, .png) and additional binary data (.bin). A glTF asset may deliver\n * one or more scenes, including meshes, materials, textures, skins, skeletons, morph targets, animations, lights,\n * and/or cameras.\n *\n * `GLTFLoader` uses {@link ImageBitmapLoader} whenever possible. Be advised that image bitmaps are not\n * automatically GC-collected when they are no longer referenced, and they require special handling during\n * the disposal process.\n *\n * `GLTFLoader` supports the following glTF 2.0 extensions:\n * - KHR_draco_mesh_compression\n * - KHR_materials_clearcoat\n * - KHR_materials_dispersion\n * - KHR_materials_ior\n * - KHR_materials_specular\n * - KHR_materials_transmission\n * - KHR_materials_iridescence\n * - KHR_materials_unlit\n * - KHR_materials_volume\n * - KHR_mesh_quantization\n * - KHR_lights_punctual\n * - KHR_texture_basisu\n * - KHR_texture_transform\n * - EXT_texture_webp\n * - EXT_meshopt_compression\n * - EXT_mesh_gpu_instancing\n *\n * The following glTF 2.0 extension is supported by an external user plugin:\n * - [KHR_materials_variants](https://github.com/takahirox/three-gltf-extensions)\n * - [MSFT_texture_dds](https://github.com/takahirox/three-gltf-extensions)\n * - [KHR_animation_pointer](https://github.com/needle-tools/three-animation-pointer)\n * - [NEEDLE_progressive](https://github.com/needle-tools/gltf-progressive)\n *\n * ```js\n * const loader = new GLTFLoader();\n *\n * // Optional: Provide a DRACOLoader instance to decode compressed mesh data\n * const dracoLoader = new DRACOLoader();\n * dracoLoader.setDecoderPath( '/examples/jsm/libs/draco/' );\n * loader.setDRACOLoader( dracoLoader );\n *\n * const gltf = await loader.loadAsync( 'models/gltf/duck/duck.gltf' );\n * scene.add( gltf.scene );\n * ```\n *\n * @augments Loader\n * @three_import import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';\n */\nclass GLTFLoader extends Loader {\n\n\t/**\n\t * Constructs a new glTF loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.dracoLoader = null;\n\t\tthis.ktx2Loader = null;\n\t\tthis.meshoptDecoder = null;\n\n\t\tthis.pluginCallbacks = [];\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsClearcoatExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsDispersionExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFTextureBasisUExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFTextureWebPExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFTextureAVIFExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsSheenExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsTransmissionExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsVolumeExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsIorExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsEmissiveStrengthExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsSpecularExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsIridescenceExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsAnisotropyExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsBumpExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFLightsExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMeshoptCompression( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMeshGpuInstancing( parser );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and passes the loaded glTF asset\n\t * to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(GLTFLoader~LoadObject)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t */\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tlet resourcePath;\n\n\t\tif ( this.resourcePath !== '' ) {\n\n\t\t\tresourcePath = this.resourcePath;\n\n\t\t} else if ( this.path !== '' ) {\n\n\t\t\t// If a base path is set, resources will be relative paths from that plus the relative path of the gltf file\n\t\t\t// Example path = 'https://my-cnd-server.com/', url = 'assets/models/model.gltf'\n\t\t\t// resourcePath = 'https://my-cnd-server.com/assets/models/'\n\t\t\t// referenced resource 'model.bin' will be loaded from 'https://my-cnd-server.com/assets/models/model.bin'\n\t\t\t// referenced resource '../textures/texture.png' will be loaded from 'https://my-cnd-server.com/assets/textures/texture.png'\n\t\t\tconst relativeUrl = LoaderUtils.extractUrlBase( url );\n\t\t\tresourcePath = LoaderUtils.resolveURL( relativeUrl, this.path );\n\n\t\t} else {\n\n\t\t\tresourcePath = LoaderUtils.extractUrlBase( url );\n\n\t\t}\n\n\t\t// Tells the LoadingManager to track an extra item, which resolves after\n\t\t// the model is fully loaded. This means the count of items loaded will\n\t\t// be incorrect, but ensures manager.onLoad() does not fire early.\n\t\tthis.manager.itemStart( url );\n\n\t\tconst _onError = function ( e ) {\n\n\t\t\tif ( onError ) {\n\n\t\t\t\tonError( e );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( e );\n\n\t\t\t}\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t};\n\n\t\tconst loader = new FileLoader( this.manager );\n\n\t\tloader.setPath( this.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\tloader.load( url, function ( data ) {\n\n\t\t\ttry {\n\n\t\t\t\tscope.parse( data, resourcePath, function ( gltf ) {\n\n\t\t\t\t\tonLoad( gltf );\n\n\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t}, _onError );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\t_onError( e );\n\n\t\t\t}\n\n\t\t}, onProgress, _onError );\n\n\t}\n\n\t/**\n\t * Sets the given Draco loader to this loader. Required for decoding assets\n\t * compressed with the `KHR_draco_mesh_compression` extension.\n\t *\n\t * @param {DRACOLoader} dracoLoader - The Draco loader to set.\n\t * @return {GLTFLoader} A reference to this loader.\n\t */\n\tsetDRACOLoader( dracoLoader ) {\n\n\t\tthis.dracoLoader = dracoLoader;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the given KTX2 loader to this loader. Required for loading KTX2\n\t * compressed textures.\n\t *\n\t * @param {KTX2Loader} ktx2Loader - The KTX2 loader to set.\n\t * @return {GLTFLoader} A reference to this loader.\n\t */\n\tsetKTX2Loader( ktx2Loader ) {\n\n\t\tthis.ktx2Loader = ktx2Loader;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the given meshopt decoder. Required for decoding assets\n\t * compressed with the `EXT_meshopt_compression` extension.\n\t *\n\t * @param {Object} meshoptDecoder - The meshopt decoder to set.\n\t * @return {GLTFLoader} A reference to this loader.\n\t */\n\tsetMeshoptDecoder( meshoptDecoder ) {\n\n\t\tthis.meshoptDecoder = meshoptDecoder;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Registers a plugin callback. This API is internally used to implement the various\n\t * glTF extensions but can also used by third-party code to add additional logic\n\t * to the loader.\n\t *\n\t * @param {function(parser:GLTFParser)} callback - The callback function to register.\n\t * @return {GLTFLoader} A reference to this loader.\n\t */\n\tregister( callback ) {\n\n\t\tif ( this.pluginCallbacks.indexOf( callback ) === - 1 ) {\n\n\t\t\tthis.pluginCallbacks.push( callback );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Unregisters a plugin callback.\n\t *\n\t * @param {Function} callback - The callback function to unregister.\n\t * @return {GLTFLoader} A reference to this loader.\n\t */\n\tunregister( callback ) {\n\n\t\tif ( this.pluginCallbacks.indexOf( callback ) !== - 1 ) {\n\n\t\t\tthis.pluginCallbacks.splice( this.pluginCallbacks.indexOf( callback ), 1 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Parses the given FBX data and returns the resulting group.\n\t *\n\t * @param {string|ArrayBuffer} data - The raw glTF data.\n\t * @param {string} path - The URL base path.\n\t * @param {function(GLTFLoader~LoadObject)} onLoad - Executed when the loading process has been finished.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t */\n\tparse( data, path, onLoad, onError ) {\n\n\t\tlet json;\n\t\tconst extensions = {};\n\t\tconst plugins = {};\n\t\tconst textDecoder = new TextDecoder();\n\n\t\tif ( typeof data === 'string' ) {\n\n\t\t\tjson = JSON.parse( data );\n\n\t\t} else if ( data instanceof ArrayBuffer ) {\n\n\t\t\tconst magic = textDecoder.decode( new Uint8Array( data, 0, 4 ) );\n\n\t\t\tif ( magic === BINARY_EXTENSION_HEADER_MAGIC ) {\n\n\t\t\t\ttry {\n\n\t\t\t\t\textensions[ EXTENSIONS.KHR_BINARY_GLTF ] = new GLTFBinaryExtension( data );\n\n\t\t\t\t} catch ( error ) {\n\n\t\t\t\t\tif ( onError ) onError( error );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tjson = JSON.parse( extensions[ EXTENSIONS.KHR_BINARY_GLTF ].content );\n\n\t\t\t} else {\n\n\t\t\t\tjson = JSON.parse( textDecoder.decode( data ) );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tjson = data;\n\n\t\t}\n\n\t\tif ( json.asset === undefined || json.asset.version[ 0 ] < 2 ) {\n\n\t\t\tif ( onError ) onError( new Error( 'THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.' ) );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst parser = new GLTFParser( json, {\n\n\t\t\tpath: path || this.resourcePath || '',\n\t\t\tcrossOrigin: this.crossOrigin,\n\t\t\trequestHeader: this.requestHeader,\n\t\t\tmanager: this.manager,\n\t\t\tktx2Loader: this.ktx2Loader,\n\t\t\tmeshoptDecoder: this.meshoptDecoder\n\n\t\t} );\n\n\t\tparser.fileLoader.setRequestHeader( this.requestHeader );\n\n\t\tfor ( let i = 0; i < this.pluginCallbacks.length; i ++ ) {\n\n\t\t\tconst plugin = this.pluginCallbacks[ i ]( parser );\n\n\t\t\tif ( ! plugin.name ) console.error( 'THREE.GLTFLoader: Invalid plugin found: missing name' );\n\n\t\t\tplugins[ plugin.name ] = plugin;\n\n\t\t\t// Workaround to avoid determining as unknown extension\n\t\t\t// in addUnknownExtensionsToUserData().\n\t\t\t// Remove this workaround if we move all the existing\n\t\t\t// extension handlers to plugin system\n\t\t\textensions[ plugin.name ] = true;\n\n\t\t}\n\n\t\tif ( json.extensionsUsed ) {\n\n\t\t\tfor ( let i = 0; i < json.extensionsUsed.length; ++ i ) {\n\n\t\t\t\tconst extensionName = json.extensionsUsed[ i ];\n\t\t\t\tconst extensionsRequired = json.extensionsRequired || [];\n\n\t\t\t\tswitch ( extensionName ) {\n\n\t\t\t\t\tcase EXTENSIONS.KHR_MATERIALS_UNLIT:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFMaterialsUnlitExtension();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXTENSIONS.KHR_DRACO_MESH_COMPRESSION:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFDracoMeshCompressionExtension( json, this.dracoLoader );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXTENSIONS.KHR_TEXTURE_TRANSFORM:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFTextureTransformExtension();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXTENSIONS.KHR_MESH_QUANTIZATION:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFMeshQuantizationExtension();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( extensionsRequired.indexOf( extensionName ) >= 0 && plugins[ extensionName ] === undefined ) {\n\n\t\t\t\t\t\t\tconsole.warn( 'THREE.GLTFLoader: Unknown extension \"' + extensionName + '\".' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tparser.setExtensions( extensions );\n\t\tparser.setPlugins( plugins );\n\t\tparser.parse( onLoad, onError );\n\n\t}\n\n\t/**\n\t * Async version of {@link GLTFLoader#parse}.\n\t *\n\t * @async\n\t * @param {string|ArrayBuffer} data - The raw glTF data.\n\t * @param {string} path - The URL base path.\n\t * @return {Promise<GLTFLoader~LoadObject>} A Promise that resolves with the loaded glTF when the parsing has been finished.\n\t */\n\tparseAsync( data, path ) {\n\n\t\tconst scope = this;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tscope.parse( data, path, resolve, reject );\n\n\t\t} );\n\n\t}\n\n}\n\n/* GLTFREGISTRY */\n\nfunction GLTFRegistry() {\n\n\tlet objects = {};\n\n\treturn\t{\n\n\t\tget: function ( key ) {\n\n\t\t\treturn objects[ key ];\n\n\t\t},\n\n\t\tadd: function ( key, object ) {\n\n\t\t\tobjects[ key ] = object;\n\n\t\t},\n\n\t\tremove: function ( key ) {\n\n\t\t\tdelete objects[ key ];\n\n\t\t},\n\n\t\tremoveAll: function () {\n\n\t\t\tobjects = {};\n\n\t\t}\n\n\t};\n\n}\n\n/*********************************/\n/********** EXTENSIONS ***********/\n/*********************************/\n\nconst EXTENSIONS = {\n\tKHR_BINARY_GLTF: 'KHR_binary_glTF',\n\tKHR_DRACO_MESH_COMPRESSION: 'KHR_draco_mesh_compression',\n\tKHR_LIGHTS_PUNCTUAL: 'KHR_lights_punctual',\n\tKHR_MATERIALS_CLEARCOAT: 'KHR_materials_clearcoat',\n\tKHR_MATERIALS_DISPERSION: 'KHR_materials_dispersion',\n\tKHR_MATERIALS_IOR: 'KHR_materials_ior',\n\tKHR_MATERIALS_SHEEN: 'KHR_materials_sheen',\n\tKHR_MATERIALS_SPECULAR: 'KHR_materials_specular',\n\tKHR_MATERIALS_TRANSMISSION: 'KHR_materials_transmission',\n\tKHR_MATERIALS_IRIDESCENCE: 'KHR_materials_iridescence',\n\tKHR_MATERIALS_ANISOTROPY: 'KHR_materials_anisotropy',\n\tKHR_MATERIALS_UNLIT: 'KHR_materials_unlit',\n\tKHR_MATERIALS_VOLUME: 'KHR_materials_volume',\n\tKHR_TEXTURE_BASISU: 'KHR_texture_basisu',\n\tKHR_TEXTURE_TRANSFORM: 'KHR_texture_transform',\n\tKHR_MESH_QUANTIZATION: 'KHR_mesh_quantization',\n\tKHR_MATERIALS_EMISSIVE_STRENGTH: 'KHR_materials_emissive_strength',\n\tEXT_MATERIALS_BUMP: 'EXT_materials_bump',\n\tEXT_TEXTURE_WEBP: 'EXT_texture_webp',\n\tEXT_TEXTURE_AVIF: 'EXT_texture_avif',\n\tEXT_MESHOPT_COMPRESSION: 'EXT_meshopt_compression',\n\tEXT_MESH_GPU_INSTANCING: 'EXT_mesh_gpu_instancing'\n};\n\n/**\n * Punctual Lights Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_lights_punctual\n *\n * @private\n */\nclass GLTFLightsExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_LIGHTS_PUNCTUAL;\n\n\t\t// Object3D instance caches\n\t\tthis.cache = { refs: {}, uses: {} };\n\n\t}\n\n\t_markDefs() {\n\n\t\tconst parser = this.parser;\n\t\tconst nodeDefs = this.parser.json.nodes || [];\n\n\t\tfor ( let nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex ++ ) {\n\n\t\t\tconst nodeDef = nodeDefs[ nodeIndex ];\n\n\t\t\tif ( nodeDef.extensions\n\t\t\t\t\t&& nodeDef.extensions[ this.name ]\n\t\t\t\t\t&& nodeDef.extensions[ this.name ].light !== undefined ) {\n\n\t\t\t\tparser._addNodeRef( this.cache, nodeDef.extensions[ this.name ].light );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_loadLight( lightIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst cacheKey = 'light:' + lightIndex;\n\t\tlet dependency = parser.cache.get( cacheKey );\n\n\t\tif ( dependency ) return dependency;\n\n\t\tconst json = parser.json;\n\t\tconst extensions = ( json.extensions && json.extensions[ this.name ] ) || {};\n\t\tconst lightDefs = extensions.lights || [];\n\t\tconst lightDef = lightDefs[ lightIndex ];\n\t\tlet lightNode;\n\n\t\tconst color = new Color( 0xffffff );\n\n\t\tif ( lightDef.color !== undefined ) color.setRGB( lightDef.color[ 0 ], lightDef.color[ 1 ], lightDef.color[ 2 ], LinearSRGBColorSpace );\n\n\t\tconst range = lightDef.range !== undefined ? lightDef.range : 0;\n\n\t\tswitch ( lightDef.type ) {\n\n\t\t\tcase 'directional':\n\t\t\t\tlightNode = new DirectionalLight( color );\n\t\t\t\tlightNode.target.position.set( 0, 0, - 1 );\n\t\t\t\tlightNode.add( lightNode.target );\n\t\t\t\tbreak;\n\n\t\t\tcase 'point':\n\t\t\t\tlightNode = new PointLight( color );\n\t\t\t\tlightNode.distance = range;\n\t\t\t\tbreak;\n\n\t\t\tcase 'spot':\n\t\t\t\tlightNode = new SpotLight( color );\n\t\t\t\tlightNode.distance = range;\n\t\t\t\t// Handle spotlight properties.\n\t\t\t\tlightDef.spot = lightDef.spot || {};\n\t\t\t\tlightDef.spot.innerConeAngle = lightDef.spot.innerConeAngle !== undefined ? lightDef.spot.innerConeAngle : 0;\n\t\t\t\tlightDef.spot.outerConeAngle = lightDef.spot.outerConeAngle !== undefined ? lightDef.spot.outerConeAngle : Math.PI / 4.0;\n\t\t\t\tlightNode.angle = lightDef.spot.outerConeAngle;\n\t\t\t\tlightNode.penumbra = 1.0 - lightDef.spot.innerConeAngle / lightDef.spot.outerConeAngle;\n\t\t\t\tlightNode.target.position.set( 0, 0, - 1 );\n\t\t\t\tlightNode.add( lightNode.target );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tthrow new Error( 'THREE.GLTFLoader: Unexpected light type: ' + lightDef.type );\n\n\t\t}\n\n\t\t// Some lights (e.g. spot) default to a position other than the origin. Reset the position\n\t\t// here, because node-level parsing will only override position if explicitly specified.\n\t\tlightNode.position.set( 0, 0, 0 );\n\n\t\tassignExtrasToUserData( lightNode, lightDef );\n\n\t\tif ( lightDef.intensity !== undefined ) lightNode.intensity = lightDef.intensity;\n\n\t\tlightNode.name = parser.createUniqueName( lightDef.name || ( 'light_' + lightIndex ) );\n\n\t\tdependency = Promise.resolve( lightNode );\n\n\t\tparser.cache.add( cacheKey, dependency );\n\n\t\treturn dependency;\n\n\t}\n\n\tgetDependency( type, index ) {\n\n\t\tif ( type !== 'light' ) return;\n\n\t\treturn this._loadLight( index );\n\n\t}\n\n\tcreateNodeAttachment( nodeIndex ) {\n\n\t\tconst self = this;\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\t\tconst lightDef = ( nodeDef.extensions && nodeDef.extensions[ this.name ] ) || {};\n\t\tconst lightIndex = lightDef.light;\n\n\t\tif ( lightIndex === undefined ) return null;\n\n\t\treturn this._loadLight( lightIndex ).then( function ( light ) {\n\n\t\t\treturn parser._getNodeRef( self.cache, lightIndex, light );\n\n\t\t} );\n\n\t}\n\n}\n\n/**\n * Unlit Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit\n *\n * @private\n */\nclass GLTFMaterialsUnlitExtension {\n\n\tconstructor() {\n\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_UNLIT;\n\n\t}\n\n\tgetMaterialType() {\n\n\t\treturn MeshBasicMaterial;\n\n\t}\n\n\textendParams( materialParams, materialDef, parser ) {\n\n\t\tconst pending = [];\n\n\t\tmaterialParams.color = new Color( 1.0, 1.0, 1.0 );\n\t\tmaterialParams.opacity = 1.0;\n\n\t\tconst metallicRoughness = materialDef.pbrMetallicRoughness;\n\n\t\tif ( metallicRoughness ) {\n\n\t\t\tif ( Array.isArray( metallicRoughness.baseColorFactor ) ) {\n\n\t\t\t\tconst array = metallicRoughness.baseColorFactor;\n\n\t\t\t\tmaterialParams.color.setRGB( array[ 0 ], array[ 1 ], array[ 2 ], LinearSRGBColorSpace );\n\t\t\t\tmaterialParams.opacity = array[ 3 ];\n\n\t\t\t}\n\n\t\t\tif ( metallicRoughness.baseColorTexture !== undefined ) {\n\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture, SRGBColorSpace ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials Emissive Strength Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/blob/5768b3ce0ef32bc39cdf1bef10b948586635ead3/extensions/2.0/Khronos/KHR_materials_emissive_strength/README.md\n *\n * @private\n */\nclass GLTFMaterialsEmissiveStrengthExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_EMISSIVE_STRENGTH;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst emissiveStrength = materialDef.extensions[ this.name ].emissiveStrength;\n\n\t\tif ( emissiveStrength !== undefined ) {\n\n\t\t\tmaterialParams.emissiveIntensity = emissiveStrength;\n\n\t\t}\n\n\t\treturn Promise.resolve();\n\n\t}\n\n}\n\n/**\n * Clearcoat Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_clearcoat\n *\n * @private\n */\nclass GLTFMaterialsClearcoatExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_CLEARCOAT;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.clearcoatFactor !== undefined ) {\n\n\t\t\tmaterialParams.clearcoat = extension.clearcoatFactor;\n\n\t\t}\n\n\t\tif ( extension.clearcoatTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'clearcoatMap', extension.clearcoatTexture ) );\n\n\t\t}\n\n\t\tif ( extension.clearcoatRoughnessFactor !== undefined ) {\n\n\t\t\tmaterialParams.clearcoatRoughness = extension.clearcoatRoughnessFactor;\n\n\t\t}\n\n\t\tif ( extension.clearcoatRoughnessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'clearcoatRoughnessMap', extension.clearcoatRoughnessTexture ) );\n\n\t\t}\n\n\t\tif ( extension.clearcoatNormalTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'clearcoatNormalMap', extension.clearcoatNormalTexture ) );\n\n\t\t\tif ( extension.clearcoatNormalTexture.scale !== undefined ) {\n\n\t\t\t\tconst scale = extension.clearcoatNormalTexture.scale;\n\n\t\t\t\tmaterialParams.clearcoatNormalScale = new Vector2( scale, scale );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials dispersion Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_dispersion\n *\n * @private\n */\nclass GLTFMaterialsDispersionExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_DISPERSION;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.dispersion = extension.dispersion !== undefined ? extension.dispersion : 0;\n\n\t\treturn Promise.resolve();\n\n\t}\n\n}\n\n/**\n * Iridescence Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_iridescence\n *\n * @private\n */\nclass GLTFMaterialsIridescenceExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_IRIDESCENCE;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.iridescenceFactor !== undefined ) {\n\n\t\t\tmaterialParams.iridescence = extension.iridescenceFactor;\n\n\t\t}\n\n\t\tif ( extension.iridescenceTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'iridescenceMap', extension.iridescenceTexture ) );\n\n\t\t}\n\n\t\tif ( extension.iridescenceIor !== undefined ) {\n\n\t\t\tmaterialParams.iridescenceIOR = extension.iridescenceIor;\n\n\t\t}\n\n\t\tif ( materialParams.iridescenceThicknessRange === undefined ) {\n\n\t\t\tmaterialParams.iridescenceThicknessRange = [ 100, 400 ];\n\n\t\t}\n\n\t\tif ( extension.iridescenceThicknessMinimum !== undefined ) {\n\n\t\t\tmaterialParams.iridescenceThicknessRange[ 0 ] = extension.iridescenceThicknessMinimum;\n\n\t\t}\n\n\t\tif ( extension.iridescenceThicknessMaximum !== undefined ) {\n\n\t\t\tmaterialParams.iridescenceThicknessRange[ 1 ] = extension.iridescenceThicknessMaximum;\n\n\t\t}\n\n\t\tif ( extension.iridescenceThicknessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'iridescenceThicknessMap', extension.iridescenceThicknessTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Sheen Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_sheen\n *\n * @private\n */\nclass GLTFMaterialsSheenExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_SHEEN;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tmaterialParams.sheenColor = new Color( 0, 0, 0 );\n\t\tmaterialParams.sheenRoughness = 0;\n\t\tmaterialParams.sheen = 1;\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.sheenColorFactor !== undefined ) {\n\n\t\t\tconst colorFactor = extension.sheenColorFactor;\n\t\t\tmaterialParams.sheenColor.setRGB( colorFactor[ 0 ], colorFactor[ 1 ], colorFactor[ 2 ], LinearSRGBColorSpace );\n\n\t\t}\n\n\t\tif ( extension.sheenRoughnessFactor !== undefined ) {\n\n\t\t\tmaterialParams.sheenRoughness = extension.sheenRoughnessFactor;\n\n\t\t}\n\n\t\tif ( extension.sheenColorTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'sheenColorMap', extension.sheenColorTexture, SRGBColorSpace ) );\n\n\t\t}\n\n\t\tif ( extension.sheenRoughnessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'sheenRoughnessMap', extension.sheenRoughnessTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Transmission Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_transmission\n * Draft: https://github.com/KhronosGroup/glTF/pull/1698\n *\n * @private\n */\nclass GLTFMaterialsTransmissionExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_TRANSMISSION;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.transmissionFactor !== undefined ) {\n\n\t\t\tmaterialParams.transmission = extension.transmissionFactor;\n\n\t\t}\n\n\t\tif ( extension.transmissionTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'transmissionMap', extension.transmissionTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials Volume Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_volume\n *\n * @private\n */\nclass GLTFMaterialsVolumeExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_VOLUME;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.thickness = extension.thicknessFactor !== undefined ? extension.thicknessFactor : 0;\n\n\t\tif ( extension.thicknessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'thicknessMap', extension.thicknessTexture ) );\n\n\t\t}\n\n\t\tmaterialParams.attenuationDistance = extension.attenuationDistance || Infinity;\n\n\t\tconst colorArray = extension.attenuationColor || [ 1, 1, 1 ];\n\t\tmaterialParams.attenuationColor = new Color().setRGB( colorArray[ 0 ], colorArray[ 1 ], colorArray[ 2 ], LinearSRGBColorSpace );\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials ior Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_ior\n *\n * @private\n */\nclass GLTFMaterialsIorExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_IOR;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.ior = extension.ior !== undefined ? extension.ior : 1.5;\n\n\t\treturn Promise.resolve();\n\n\t}\n\n}\n\n/**\n * Materials specular Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_specular\n *\n * @private\n */\nclass GLTFMaterialsSpecularExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_SPECULAR;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.specularIntensity = extension.specularFactor !== undefined ? extension.specularFactor : 1.0;\n\n\t\tif ( extension.specularTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'specularIntensityMap', extension.specularTexture ) );\n\n\t\t}\n\n\t\tconst colorArray = extension.specularColorFactor || [ 1, 1, 1 ];\n\t\tmaterialParams.specularColor = new Color().setRGB( colorArray[ 0 ], colorArray[ 1 ], colorArray[ 2 ], LinearSRGBColorSpace );\n\n\t\tif ( extension.specularColorTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'specularColorMap', extension.specularColorTexture, SRGBColorSpace ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n\n/**\n * Materials bump Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/EXT_materials_bump\n *\n * @private\n */\nclass GLTFMaterialsBumpExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.EXT_MATERIALS_BUMP;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.bumpScale = extension.bumpFactor !== undefined ? extension.bumpFactor : 1.0;\n\n\t\tif ( extension.bumpTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'bumpMap', extension.bumpTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials anisotropy Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_anisotropy\n *\n * @private\n */\nclass GLTFMaterialsAnisotropyExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_ANISOTROPY;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.anisotropyStrength !== undefined ) {\n\n\t\t\tmaterialParams.anisotropy = extension.anisotropyStrength;\n\n\t\t}\n\n\t\tif ( extension.anisotropyRotation !== undefined ) {\n\n\t\t\tmaterialParams.anisotropyRotation = extension.anisotropyRotation;\n\n\t\t}\n\n\t\tif ( extension.anisotropyTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'anisotropyMap', extension.anisotropyTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * BasisU Texture Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_texture_basisu\n *\n * @private\n */\nclass GLTFTextureBasisUExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_TEXTURE_BASISU;\n\n\t}\n\n\tloadTexture( textureIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\n\t\tif ( ! textureDef.extensions || ! textureDef.extensions[ this.name ] ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst extension = textureDef.extensions[ this.name ];\n\t\tconst loader = parser.options.ktx2Loader;\n\n\t\tif ( ! loader ) {\n\n\t\t\tif ( json.extensionsRequired && json.extensionsRequired.indexOf( this.name ) >= 0 ) {\n\n\t\t\t\tthrow new Error( 'THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures' );\n\n\t\t\t} else {\n\n\t\t\t\t// Assumes that the extension is optional and that a fallback texture is present\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn parser.loadTextureImage( textureIndex, extension.source, loader );\n\n\t}\n\n}\n\n/**\n * WebP Texture Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_texture_webp\n *\n * @private\n */\nclass GLTFTextureWebPExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.EXT_TEXTURE_WEBP;\n\n\t}\n\n\tloadTexture( textureIndex ) {\n\n\t\tconst name = this.name;\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\n\t\tif ( ! textureDef.extensions || ! textureDef.extensions[ name ] ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst extension = textureDef.extensions[ name ];\n\t\tconst source = json.images[ extension.source ];\n\n\t\tlet loader = parser.textureLoader;\n\t\tif ( source.uri ) {\n\n\t\t\tconst handler = parser.options.manager.getHandler( source.uri );\n\t\t\tif ( handler !== null ) loader = handler;\n\n\t\t}\n\n\t\treturn parser.loadTextureImage( textureIndex, extension.source, loader );\n\n\t}\n\n}\n\n/**\n * AVIF Texture Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_texture_avif\n *\n * @private\n */\nclass GLTFTextureAVIFExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.EXT_TEXTURE_AVIF;\n\n\t}\n\n\tloadTexture( textureIndex ) {\n\n\t\tconst name = this.name;\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\n\t\tif ( ! textureDef.extensions || ! textureDef.extensions[ name ] ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst extension = textureDef.extensions[ name ];\n\t\tconst source = json.images[ extension.source ];\n\n\t\tlet loader = parser.textureLoader;\n\t\tif ( source.uri ) {\n\n\t\t\tconst handler = parser.options.manager.getHandler( source.uri );\n\t\t\tif ( handler !== null ) loader = handler;\n\n\t\t}\n\n\t\treturn parser.loadTextureImage( textureIndex, extension.source, loader );\n\n\t}\n\n}\n\n/**\n * meshopt BufferView Compression Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_meshopt_compression\n *\n * @private\n */\nclass GLTFMeshoptCompression {\n\n\tconstructor( parser ) {\n\n\t\tthis.name = EXTENSIONS.EXT_MESHOPT_COMPRESSION;\n\t\tthis.parser = parser;\n\n\t}\n\n\tloadBufferView( index ) {\n\n\t\tconst json = this.parser.json;\n\t\tconst bufferView = json.bufferViews[ index ];\n\n\t\tif ( bufferView.extensions && bufferView.extensions[ this.name ] ) {\n\n\t\t\tconst extensionDef = bufferView.extensions[ this.name ];\n\n\t\t\tconst buffer = this.parser.getDependency( 'buffer', extensionDef.buffer );\n\t\t\tconst decoder = this.parser.options.meshoptDecoder;\n\n\t\t\tif ( ! decoder || ! decoder.supported ) {\n\n\t\t\t\tif ( json.extensionsRequired && json.extensionsRequired.indexOf( this.name ) >= 0 ) {\n\n\t\t\t\t\tthrow new Error( 'THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files' );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Assumes that the extension is optional and that fallback buffer data is present\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn buffer.then( function ( res ) {\n\n\t\t\t\tconst byteOffset = extensionDef.byteOffset || 0;\n\t\t\t\tconst byteLength = extensionDef.byteLength || 0;\n\n\t\t\t\tconst count = extensionDef.count;\n\t\t\t\tconst stride = extensionDef.byteStride;\n\n\t\t\t\tconst source = new Uint8Array( res, byteOffset, byteLength );\n\n\t\t\t\tif ( decoder.decodeGltfBufferAsync ) {\n\n\t\t\t\t\treturn decoder.decodeGltfBufferAsync( count, stride, source, extensionDef.mode, extensionDef.filter ).then( function ( res ) {\n\n\t\t\t\t\t\treturn res.buffer;\n\n\t\t\t\t\t} );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Support for MeshoptDecoder 0.18 or earlier, without decodeGltfBufferAsync\n\t\t\t\t\treturn decoder.ready.then( function () {\n\n\t\t\t\t\t\tconst result = new ArrayBuffer( count * stride );\n\t\t\t\t\t\tdecoder.decodeGltfBuffer( new Uint8Array( result ), count, stride, source, extensionDef.mode, extensionDef.filter );\n\t\t\t\t\t\treturn result;\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * GPU Instancing Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_mesh_gpu_instancing\n *\n * @private\n */\nclass GLTFMeshGpuInstancing {\n\n\tconstructor( parser ) {\n\n\t\tthis.name = EXTENSIONS.EXT_MESH_GPU_INSTANCING;\n\t\tthis.parser = parser;\n\n\t}\n\n\tcreateNodeMesh( nodeIndex ) {\n\n\t\tconst json = this.parser.json;\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\tif ( ! nodeDef.extensions || ! nodeDef.extensions[ this.name ] ||\n\t\t\tnodeDef.mesh === undefined ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst meshDef = json.meshes[ nodeDef.mesh ];\n\n\t\t// No Points or Lines + Instancing support yet\n\n\t\tfor ( const primitive of meshDef.primitives ) {\n\n\t\t\tif ( primitive.mode !== WEBGL_CONSTANTS.TRIANGLES &&\n\t\t\t\t primitive.mode !== WEBGL_CONSTANTS.TRIANGLE_STRIP &&\n\t\t\t\t primitive.mode !== WEBGL_CONSTANTS.TRIANGLE_FAN &&\n\t\t\t\t primitive.mode !== undefined ) {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst extensionDef = nodeDef.extensions[ this.name ];\n\t\tconst attributesDef = extensionDef.attributes;\n\n\t\t// @TODO: Can we support InstancedMesh + SkinnedMesh?\n\n\t\tconst pending = [];\n\t\tconst attributes = {};\n\n\t\tfor ( const key in attributesDef ) {\n\n\t\t\tpending.push( this.parser.getDependency( 'accessor', attributesDef[ key ] ).then( accessor => {\n\n\t\t\t\tattributes[ key ] = accessor;\n\t\t\t\treturn attributes[ key ];\n\n\t\t\t} ) );\n\n\t\t}\n\n\t\tif ( pending.length < 1 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tpending.push( this.parser.createNodeMesh( nodeIndex ) );\n\n\t\treturn Promise.all( pending ).then( results => {\n\n\t\t\tconst nodeObject = results.pop();\n\t\t\tconst meshes = nodeObject.isGroup ? nodeObject.children : [ nodeObject ];\n\t\t\tconst count = results[ 0 ].count; // All attribute counts should be same\n\t\t\tconst instancedMeshes = [];\n\n\t\t\tfor ( const mesh of meshes ) {\n\n\t\t\t\t// Temporal variables\n\t\t\t\tconst m = new Matrix4();\n\t\t\t\tconst p = new Vector3();\n\t\t\t\tconst q = new Quaternion();\n\t\t\t\tconst s = new Vector3( 1, 1, 1 );\n\n\t\t\t\tconst instancedMesh = new InstancedMesh( mesh.geometry, mesh.material, count );\n\n\t\t\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\t\t\tif ( attributes.TRANSLATION ) {\n\n\t\t\t\t\t\tp.fromBufferAttribute( attributes.TRANSLATION, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( attributes.ROTATION ) {\n\n\t\t\t\t\t\tq.fromBufferAttribute( attributes.ROTATION, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( attributes.SCALE ) {\n\n\t\t\t\t\t\ts.fromBufferAttribute( attributes.SCALE, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tinstancedMesh.setMatrixAt( i, m.compose( p, q, s ) );\n\n\t\t\t\t}\n\n\t\t\t\t// Add instance attributes to the geometry, excluding TRS.\n\t\t\t\tfor ( const attributeName in attributes ) {\n\n\t\t\t\t\tif ( attributeName === '_COLOR_0' ) {\n\n\t\t\t\t\t\tconst attr = attributes[ attributeName ];\n\t\t\t\t\t\tinstancedMesh.instanceColor = new InstancedBufferAttribute( attr.array, attr.itemSize, attr.normalized );\n\n\t\t\t\t\t} else if ( attributeName !== 'TRANSLATION' &&\n\t\t\t\t\t\t attributeName !== 'ROTATION' &&\n\t\t\t\t\t\t attributeName !== 'SCALE' ) {\n\n\t\t\t\t\t\tmesh.geometry.setAttribute( attributeName, attributes[ attributeName ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// Just in case\n\t\t\t\tObject3D.prototype.copy.call( instancedMesh, mesh );\n\n\t\t\t\tthis.parser.assignFinalMaterial( instancedMesh );\n\n\t\t\t\tinstancedMeshes.push( instancedMesh );\n\n\t\t\t}\n\n\t\t\tif ( nodeObject.isGroup ) {\n\n\t\t\t\tnodeObject.clear();\n\n\t\t\t\tnodeObject.add( ... instancedMeshes );\n\n\t\t\t\treturn nodeObject;\n\n\t\t\t}\n\n\t\t\treturn instancedMeshes[ 0 ];\n\n\t\t} );\n\n\t}\n\n}\n\n/* BINARY EXTENSION */\nconst BINARY_EXTENSION_HEADER_MAGIC = 'glTF';\nconst BINARY_EXTENSION_HEADER_LENGTH = 12;\nconst BINARY_EXTENSION_CHUNK_TYPES = { JSON: 0x4E4F534A, BIN: 0x004E4942 };\n\nclass GLTFBinaryExtension {\n\n\tconstructor( data ) {\n\n\t\tthis.name = EXTENSIONS.KHR_BINARY_GLTF;\n\t\tthis.content = null;\n\t\tthis.body = null;\n\n\t\tconst headerView = new DataView( data, 0, BINARY_EXTENSION_HEADER_LENGTH );\n\t\tconst textDecoder = new TextDecoder();\n\n\t\tthis.header = {\n\t\t\tmagic: textDecoder.decode( new Uint8Array( data.slice( 0, 4 ) ) ),\n\t\t\tversion: headerView.getUint32( 4, true ),\n\t\t\tlength: headerView.getUint32( 8, true )\n\t\t};\n\n\t\tif ( this.header.magic !== BINARY_EXTENSION_HEADER_MAGIC ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Unsupported glTF-Binary header.' );\n\n\t\t} else if ( this.header.version < 2.0 ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Legacy binary file detected.' );\n\n\t\t}\n\n\t\tconst chunkContentsLength = this.header.length - BINARY_EXTENSION_HEADER_LENGTH;\n\t\tconst chunkView = new DataView( data, BINARY_EXTENSION_HEADER_LENGTH );\n\t\tlet chunkIndex = 0;\n\n\t\twhile ( chunkIndex < chunkContentsLength ) {\n\n\t\t\tconst chunkLength = chunkView.getUint32( chunkIndex, true );\n\t\t\tchunkIndex += 4;\n\n\t\t\tconst chunkType = chunkView.getUint32( chunkIndex, true );\n\t\t\tchunkIndex += 4;\n\n\t\t\tif ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.JSON ) {\n\n\t\t\t\tconst contentArray = new Uint8Array( data, BINARY_EXTENSION_HEADER_LENGTH + chunkIndex, chunkLength );\n\t\t\t\tthis.content = textDecoder.decode( contentArray );\n\n\t\t\t} else if ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.BIN ) {\n\n\t\t\t\tconst byteOffset = BINARY_EXTENSION_HEADER_LENGTH + chunkIndex;\n\t\t\t\tthis.body = data.slice( byteOffset, byteOffset + chunkLength );\n\n\t\t\t}\n\n\t\t\t// Clients must ignore chunks with unknown types.\n\n\t\t\tchunkIndex += chunkLength;\n\n\t\t}\n\n\t\tif ( this.content === null ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: JSON content not found.' );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * DRACO Mesh Compression Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression\n *\n * @private\n */\nclass GLTFDracoMeshCompressionExtension {\n\n\tconstructor( json, dracoLoader ) {\n\n\t\tif ( ! dracoLoader ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: No DRACOLoader instance provided.' );\n\n\t\t}\n\n\t\tthis.name = EXTENSIONS.KHR_DRACO_MESH_COMPRESSION;\n\t\tthis.json = json;\n\t\tthis.dracoLoader = dracoLoader;\n\t\tthis.dracoLoader.preload();\n\n\t}\n\n\tdecodePrimitive( primitive, parser ) {\n\n\t\tconst json = this.json;\n\t\tconst dracoLoader = this.dracoLoader;\n\t\tconst bufferViewIndex = primitive.extensions[ this.name ].bufferView;\n\t\tconst gltfAttributeMap = primitive.extensions[ this.name ].attributes;\n\t\tconst threeAttributeMap = {};\n\t\tconst attributeNormalizedMap = {};\n\t\tconst attributeTypeMap = {};\n\n\t\tfor ( const attributeName in gltfAttributeMap ) {\n\n\t\t\tconst threeAttributeName = ATTRIBUTES[ attributeName ] || attributeName.toLowerCase();\n\n\t\t\tthreeAttributeMap[ threeAttributeName ] = gltfAttributeMap[ attributeName ];\n\n\t\t}\n\n\t\tfor ( const attributeName in primitive.attributes ) {\n\n\t\t\tconst threeAttributeName = ATTRIBUTES[ attributeName ] || attributeName.toLowerCase();\n\n\t\t\tif ( gltfAttributeMap[ attributeName ] !== undefined ) {\n\n\t\t\t\tconst accessorDef = json.accessors[ primitive.attributes[ attributeName ] ];\n\t\t\t\tconst componentType = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ];\n\n\t\t\t\tattributeTypeMap[ threeAttributeName ] = componentType.name;\n\t\t\t\tattributeNormalizedMap[ threeAttributeName ] = accessorDef.normalized === true;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn parser.getDependency( 'bufferView', bufferViewIndex ).then( function ( bufferView ) {\n\n\t\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\t\tdracoLoader.decodeDracoFile( bufferView, function ( geometry ) {\n\n\t\t\t\t\tfor ( const attributeName in geometry.attributes ) {\n\n\t\t\t\t\t\tconst attribute = geometry.attributes[ attributeName ];\n\t\t\t\t\t\tconst normalized = attributeNormalizedMap[ attributeName ];\n\n\t\t\t\t\t\tif ( normalized !== undefined ) attribute.normalized = normalized;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve( geometry );\n\n\t\t\t\t}, threeAttributeMap, attributeTypeMap, LinearSRGBColorSpace, reject );\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n}\n\n/**\n * Texture Transform Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_texture_transform\n *\n * @private\n */\nclass GLTFTextureTransformExtension {\n\n\tconstructor() {\n\n\t\tthis.name = EXTENSIONS.KHR_TEXTURE_TRANSFORM;\n\n\t}\n\n\textendTexture( texture, transform ) {\n\n\t\tif ( ( transform.texCoord === undefined || transform.texCoord === texture.channel )\n\t\t\t&& transform.offset === undefined\n\t\t\t&& transform.rotation === undefined\n\t\t\t&& transform.scale === undefined ) {\n\n\t\t\t// See https://github.com/mrdoob/three.js/issues/21819.\n\t\t\treturn texture;\n\n\t\t}\n\n\t\ttexture = texture.clone();\n\n\t\tif ( transform.texCoord !== undefined ) {\n\n\t\t\ttexture.channel = transform.texCoord;\n\n\t\t}\n\n\t\tif ( transform.offset !== undefined ) {\n\n\t\t\ttexture.offset.fromArray( transform.offset );\n\n\t\t}\n\n\t\tif ( transform.rotation !== undefined ) {\n\n\t\t\ttexture.rotation = transform.rotation;\n\n\t\t}\n\n\t\tif ( transform.scale !== undefined ) {\n\n\t\t\ttexture.repeat.fromArray( transform.scale );\n\n\t\t}\n\n\t\ttexture.needsUpdate = true;\n\n\t\treturn texture;\n\n\t}\n\n}\n\n/**\n * Mesh Quantization Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_mesh_quantization\n *\n * @private\n */\nclass GLTFMeshQuantizationExtension {\n\n\tconstructor() {\n\n\t\tthis.name = EXTENSIONS.KHR_MESH_QUANTIZATION;\n\n\t}\n\n}\n\n/*********************************/\n/********** INTERPOLATION ********/\n/*********************************/\n\n// Spline Interpolation\n// Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#appendix-c-spline-interpolation\nclass GLTFCubicSplineInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tcopySampleValue_( index ) {\n\n\t\t// Copies a sample value to the result buffer. See description of glTF\n\t\t// CUBICSPLINE values layout in interpolate_() function below.\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tvalueSize = this.valueSize,\n\t\t\toffset = index * valueSize * 3 + valueSize;\n\n\t\tfor ( let i = 0; i !== valueSize; i ++ ) {\n\n\t\t\tresult[ i ] = values[ offset + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer;\n\t\tconst values = this.sampleValues;\n\t\tconst stride = this.valueSize;\n\n\t\tconst stride2 = stride * 2;\n\t\tconst stride3 = stride * 3;\n\n\t\tconst td = t1 - t0;\n\n\t\tconst p = ( t - t0 ) / td;\n\t\tconst pp = p * p;\n\t\tconst ppp = pp * p;\n\n\t\tconst offset1 = i1 * stride3;\n\t\tconst offset0 = offset1 - stride3;\n\n\t\tconst s2 = - 2 * ppp + 3 * pp;\n\t\tconst s3 = ppp - pp;\n\t\tconst s0 = 1 - s2;\n\t\tconst s1 = s3 - pp + p;\n\n\t\t// Layout of keyframe output values for CUBICSPLINE animations:\n\t\t// [ inTangent_1, splineVertex_1, outTangent_1, inTangent_2, splineVertex_2, ... ]\n\t\tfor ( let i = 0; i !== stride; i ++ ) {\n\n\t\t\tconst p0 = values[ offset0 + i + stride ]; // splineVertex_k\n\t\t\tconst m0 = values[ offset0 + i + stride2 ] * td; // outTangent_k * (t_k+1 - t_k)\n\t\t\tconst p1 = values[ offset1 + i + stride ]; // splineVertex_k+1\n\t\t\tconst m1 = values[ offset1 + i ] * td; // inTangent_k+1 * (t_k+1 - t_k)\n\n\t\t\tresult[ i ] = s0 * p0 + s1 * m0 + s2 * p1 + s3 * m1;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\nconst _quaternion = new Quaternion();\n\nclass GLTFCubicSplineQuaternionInterpolant extends GLTFCubicSplineInterpolant {\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = super.interpolate_( i1, t0, t, t1 );\n\n\t\t_quaternion.fromArray( result ).normalize().toArray( result );\n\n\t\treturn result;\n\n\t}\n\n}\n\n\n/*********************************/\n/********** INTERNALS ************/\n/*********************************/\n\n/* CONSTANTS */\n\nconst WEBGL_CONSTANTS = {\n\tFLOAT: 5126,\n\t//FLOAT_MAT2: 35674,\n\tFLOAT_MAT3: 35675,\n\tFLOAT_MAT4: 35676,\n\tFLOAT_VEC2: 35664,\n\tFLOAT_VEC3: 35665,\n\tFLOAT_VEC4: 35666,\n\tLINEAR: 9729,\n\tREPEAT: 10497,\n\tSAMPLER_2D: 35678,\n\tPOINTS: 0,\n\tLINES: 1,\n\tLINE_LOOP: 2,\n\tLINE_STRIP: 3,\n\tTRIANGLES: 4,\n\tTRIANGLE_STRIP: 5,\n\tTRIANGLE_FAN: 6,\n\tUNSIGNED_BYTE: 5121,\n\tUNSIGNED_SHORT: 5123\n};\n\nconst WEBGL_COMPONENT_TYPES = {\n\t5120: Int8Array,\n\t5121: Uint8Array,\n\t5122: Int16Array,\n\t5123: Uint16Array,\n\t5125: Uint32Array,\n\t5126: Float32Array\n};\n\nconst WEBGL_FILTERS = {\n\t9728: NearestFilter,\n\t9729: LinearFilter,\n\t9984: NearestMipmapNearestFilter,\n\t9985: LinearMipmapNearestFilter,\n\t9986: NearestMipmapLinearFilter,\n\t9987: LinearMipmapLinearFilter\n};\n\nconst WEBGL_WRAPPINGS = {\n\t33071: ClampToEdgeWrapping,\n\t33648: MirroredRepeatWrapping,\n\t10497: RepeatWrapping\n};\n\nconst WEBGL_TYPE_SIZES = {\n\t'SCALAR': 1,\n\t'VEC2': 2,\n\t'VEC3': 3,\n\t'VEC4': 4,\n\t'MAT2': 4,\n\t'MAT3': 9,\n\t'MAT4': 16\n};\n\nconst ATTRIBUTES = {\n\tPOSITION: 'position',\n\tNORMAL: 'normal',\n\tTANGENT: 'tangent',\n\tTEXCOORD_0: 'uv',\n\tTEXCOORD_1: 'uv1',\n\tTEXCOORD_2: 'uv2',\n\tTEXCOORD_3: 'uv3',\n\tCOLOR_0: 'color',\n\tWEIGHTS_0: 'skinWeight',\n\tJOINTS_0: 'skinIndex',\n};\n\nconst PATH_PROPERTIES = {\n\tscale: 'scale',\n\ttranslation: 'position',\n\trotation: 'quaternion',\n\tweights: 'morphTargetInfluences'\n};\n\nconst INTERPOLATION = {\n\tCUBICSPLINE: undefined, // We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each\n\t\t // keyframe track will be initialized with a default interpolation type, then modified.\n\tLINEAR: InterpolateLinear,\n\tSTEP: InterpolateDiscrete\n};\n\nconst ALPHA_MODES = {\n\tOPAQUE: 'OPAQUE',\n\tMASK: 'MASK',\n\tBLEND: 'BLEND'\n};\n\n/**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#default-material\n *\n * @private\n * @param {Object<string, Material>} cache\n * @return {Material}\n */\nfunction createDefaultMaterial( cache ) {\n\n\tif ( cache[ 'DefaultMaterial' ] === undefined ) {\n\n\t\tcache[ 'DefaultMaterial' ] = new MeshStandardMaterial( {\n\t\t\tcolor: 0xFFFFFF,\n\t\t\temissive: 0x000000,\n\t\t\tmetalness: 1,\n\t\t\troughness: 1,\n\t\t\ttransparent: false,\n\t\t\tdepthTest: true,\n\t\t\tside: FrontSide\n\t\t} );\n\n\t}\n\n\treturn cache[ 'DefaultMaterial' ];\n\n}\n\nfunction addUnknownExtensionsToUserData( knownExtensions, object, objectDef ) {\n\n\t// Add unknown glTF extensions to an object's userData.\n\n\tfor ( const name in objectDef.extensions ) {\n\n\t\tif ( knownExtensions[ name ] === undefined ) {\n\n\t\t\tobject.userData.gltfExtensions = object.userData.gltfExtensions || {};\n\t\t\tobject.userData.gltfExtensions[ name ] = objectDef.extensions[ name ];\n\n\t\t}\n\n\t}\n\n}\n\n/**\n *\n * @private\n * @param {Object3D|Material|BufferGeometry|Object|AnimationClip} object\n * @param {GLTF.definition} gltfDef\n */\nfunction assignExtrasToUserData( object, gltfDef ) {\n\n\tif ( gltfDef.extras !== undefined ) {\n\n\t\tif ( typeof gltfDef.extras === 'object' ) {\n\n\t\t\tObject.assign( object.userData, gltfDef.extras );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Ignoring primitive type .extras, ' + gltfDef.extras );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#morph-targets\n *\n * @private\n * @param {BufferGeometry} geometry\n * @param {Array<GLTF.Target>} targets\n * @param {GLTFParser} parser\n * @return {Promise<BufferGeometry>}\n */\nfunction addMorphTargets( geometry, targets, parser ) {\n\n\tlet hasMorphPosition = false;\n\tlet hasMorphNormal = false;\n\tlet hasMorphColor = false;\n\n\tfor ( let i = 0, il = targets.length; i < il; i ++ ) {\n\n\t\tconst target = targets[ i ];\n\n\t\tif ( target.POSITION !== undefined ) hasMorphPosition = true;\n\t\tif ( target.NORMAL !== undefined ) hasMorphNormal = true;\n\t\tif ( target.COLOR_0 !== undefined ) hasMorphColor = true;\n\n\t\tif ( hasMorphPosition && hasMorphNormal && hasMorphColor ) break;\n\n\t}\n\n\tif ( ! hasMorphPosition && ! hasMorphNormal && ! hasMorphColor ) return Promise.resolve( geometry );\n\n\tconst pendingPositionAccessors = [];\n\tconst pendingNormalAccessors = [];\n\tconst pendingColorAccessors = [];\n\n\tfor ( let i = 0, il = targets.length; i < il; i ++ ) {\n\n\t\tconst target = targets[ i ];\n\n\t\tif ( hasMorphPosition ) {\n\n\t\t\tconst pendingAccessor = target.POSITION !== undefined\n\t\t\t\t? parser.getDependency( 'accessor', target.POSITION )\n\t\t\t\t: geometry.attributes.position;\n\n\t\t\tpendingPositionAccessors.push( pendingAccessor );\n\n\t\t}\n\n\t\tif ( hasMorphNormal ) {\n\n\t\t\tconst pendingAccessor = target.NORMAL !== undefined\n\t\t\t\t? parser.getDependency( 'accessor', target.NORMAL )\n\t\t\t\t: geometry.attributes.normal;\n\n\t\t\tpendingNormalAccessors.push( pendingAccessor );\n\n\t\t}\n\n\t\tif ( hasMorphColor ) {\n\n\t\t\tconst pendingAccessor = target.COLOR_0 !== undefined\n\t\t\t\t? parser.getDependency( 'accessor', target.COLOR_0 )\n\t\t\t\t: geometry.attributes.color;\n\n\t\t\tpendingColorAccessors.push( pendingAccessor );\n\n\t\t}\n\n\t}\n\n\treturn Promise.all( [\n\t\tPromise.all( pendingPositionAccessors ),\n\t\tPromise.all( pendingNormalAccessors ),\n\t\tPromise.all( pendingColorAccessors )\n\t] ).then( function ( accessors ) {\n\n\t\tconst morphPositions = accessors[ 0 ];\n\t\tconst morphNormals = accessors[ 1 ];\n\t\tconst morphColors = accessors[ 2 ];\n\n\t\tif ( hasMorphPosition ) geometry.morphAttributes.position = morphPositions;\n\t\tif ( hasMorphNormal ) geometry.morphAttributes.normal = morphNormals;\n\t\tif ( hasMorphColor ) geometry.morphAttributes.color = morphColors;\n\t\tgeometry.morphTargetsRelative = true;\n\n\t\treturn geometry;\n\n\t} );\n\n}\n\n/**\n *\n * @private\n * @param {Mesh} mesh\n * @param {GLTF.Mesh} meshDef\n */\nfunction updateMorphTargets( mesh, meshDef ) {\n\n\tmesh.updateMorphTargets();\n\n\tif ( meshDef.weights !== undefined ) {\n\n\t\tfor ( let i = 0, il = meshDef.weights.length; i < il; i ++ ) {\n\n\t\t\tmesh.morphTargetInfluences[ i ] = meshDef.weights[ i ];\n\n\t\t}\n\n\t}\n\n\t// .extras has user-defined data, so check that .extras.targetNames is an array.\n\tif ( meshDef.extras && Array.isArray( meshDef.extras.targetNames ) ) {\n\n\t\tconst targetNames = meshDef.extras.targetNames;\n\n\t\tif ( mesh.morphTargetInfluences.length === targetNames.length ) {\n\n\t\t\tmesh.morphTargetDictionary = {};\n\n\t\t\tfor ( let i = 0, il = targetNames.length; i < il; i ++ ) {\n\n\t\t\t\tmesh.morphTargetDictionary[ targetNames[ i ] ] = i;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.' );\n\n\t\t}\n\n\t}\n\n}\n\nfunction createPrimitiveKey( primitiveDef ) {\n\n\tlet geometryKey;\n\n\tconst dracoExtension = primitiveDef.extensions && primitiveDef.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ];\n\n\tif ( dracoExtension ) {\n\n\t\tgeometryKey = 'draco:' + dracoExtension.bufferView\n\t\t\t\t+ ':' + dracoExtension.indices\n\t\t\t\t+ ':' + createAttributesKey( dracoExtension.attributes );\n\n\t} else {\n\n\t\tgeometryKey = primitiveDef.indices + ':' + createAttributesKey( primitiveDef.attributes ) + ':' + primitiveDef.mode;\n\n\t}\n\n\tif ( primitiveDef.targets !== undefined ) {\n\n\t\tfor ( let i = 0, il = primitiveDef.targets.length; i < il; i ++ ) {\n\n\t\t\tgeometryKey += ':' + createAttributesKey( primitiveDef.targets[ i ] );\n\n\t\t}\n\n\t}\n\n\treturn geometryKey;\n\n}\n\nfunction createAttributesKey( attributes ) {\n\n\tlet attributesKey = '';\n\n\tconst keys = Object.keys( attributes ).sort();\n\n\tfor ( let i = 0, il = keys.length; i < il; i ++ ) {\n\n\t\tattributesKey += keys[ i ] + ':' + attributes[ keys[ i ] ] + ';';\n\n\t}\n\n\treturn attributesKey;\n\n}\n\nfunction getNormalizedComponentScale( constructor ) {\n\n\t// Reference:\n\t// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_mesh_quantization#encoding-quantized-data\n\n\tswitch ( constructor ) {\n\n\t\tcase Int8Array:\n\t\t\treturn 1 / 127;\n\n\t\tcase Uint8Array:\n\t\t\treturn 1 / 255;\n\n\t\tcase Int16Array:\n\t\t\treturn 1 / 32767;\n\n\t\tcase Uint16Array:\n\t\t\treturn 1 / 65535;\n\n\t\tdefault:\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Unsupported normalized accessor component type.' );\n\n\t}\n\n}\n\nfunction getImageURIMimeType( uri ) {\n\n\tif ( uri.search( /\\.jpe?g($|\\?)/i ) > 0 || uri.search( /^data\\:image\\/jpeg/ ) === 0 ) return 'image/jpeg';\n\tif ( uri.search( /\\.webp($|\\?)/i ) > 0 || uri.search( /^data\\:image\\/webp/ ) === 0 ) return 'image/webp';\n\tif ( uri.search( /\\.ktx2($|\\?)/i ) > 0 || uri.search( /^data\\:image\\/ktx2/ ) === 0 ) return 'image/ktx2';\n\n\treturn 'image/png';\n\n}\n\nconst _identityMatrix = new Matrix4();\n\n/* GLTF PARSER */\n\nclass GLTFParser {\n\n\tconstructor( json = {}, options = {} ) {\n\n\t\tthis.json = json;\n\t\tthis.extensions = {};\n\t\tthis.plugins = {};\n\t\tthis.options = options;\n\n\t\t// loader object cache\n\t\tthis.cache = new GLTFRegistry();\n\n\t\t// associations between Three.js objects and glTF elements\n\t\tthis.associations = new Map();\n\n\t\t// BufferGeometry caching\n\t\tthis.primitiveCache = {};\n\n\t\t// Node cache\n\t\tthis.nodeCache = {};\n\n\t\t// Object3D instance caches\n\t\tthis.meshCache = { refs: {}, uses: {} };\n\t\tthis.cameraCache = { refs: {}, uses: {} };\n\t\tthis.lightCache = { refs: {}, uses: {} };\n\n\t\tthis.sourceCache = {};\n\t\tthis.textureCache = {};\n\n\t\t// Track node names, to ensure no duplicates\n\t\tthis.nodeNamesUsed = {};\n\n\t\t// Use an ImageBitmapLoader if imageBitmaps are supported. Moves much of the\n\t\t// expensive work of uploading a texture to the GPU off the main thread.\n\n\t\tlet isSafari = false;\n\t\tlet safariVersion = - 1;\n\t\tlet isFirefox = false;\n\t\tlet firefoxVersion = - 1;\n\n\t\tif ( typeof navigator !== 'undefined' ) {\n\n\t\t\tconst userAgent = navigator.userAgent;\n\n\t\t\tisSafari = /^((?!chrome|android).)*safari/i.test( userAgent ) === true;\n\t\t\tconst safariMatch = userAgent.match( /Version\\/(\\d+)/ );\n\t\t\tsafariVersion = isSafari && safariMatch ? parseInt( safariMatch[ 1 ], 10 ) : - 1;\n\n\t\t\tisFirefox = userAgent.indexOf( 'Firefox' ) > - 1;\n\t\t\tfirefoxVersion = isFirefox ? userAgent.match( /Firefox\\/([0-9]+)\\./ )[ 1 ] : - 1;\n\n\t\t}\n\n\t\tif ( typeof createImageBitmap === 'undefined' || ( isSafari && safariVersion < 17 ) || ( isFirefox && firefoxVersion < 98 ) ) {\n\n\t\t\tthis.textureLoader = new TextureLoader( this.options.manager );\n\n\t\t} else {\n\n\t\t\tthis.textureLoader = new ImageBitmapLoader( this.options.manager );\n\n\t\t}\n\n\t\tthis.textureLoader.setCrossOrigin( this.options.crossOrigin );\n\t\tthis.textureLoader.setRequestHeader( this.options.requestHeader );\n\n\t\tthis.fileLoader = new FileLoader( this.options.manager );\n\t\tthis.fileLoader.setResponseType( 'arraybuffer' );\n\n\t\tif ( this.options.crossOrigin === 'use-credentials' ) {\n\n\t\t\tthis.fileLoader.setWithCredentials( true );\n\n\t\t}\n\n\t}\n\n\tsetExtensions( extensions ) {\n\n\t\tthis.extensions = extensions;\n\n\t}\n\n\tsetPlugins( plugins ) {\n\n\t\tthis.plugins = plugins;\n\n\t}\n\n\tparse( onLoad, onError ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\n\t\t// Clear the loader cache\n\t\tthis.cache.removeAll();\n\t\tthis.nodeCache = {};\n\n\t\t// Mark the special nodes/meshes in json for efficient parse\n\t\tthis._invokeAll( function ( ext ) {\n\n\t\t\treturn ext._markDefs && ext._markDefs();\n\n\t\t} );\n\n\t\tPromise.all( this._invokeAll( function ( ext ) {\n\n\t\t\treturn ext.beforeRoot && ext.beforeRoot();\n\n\t\t} ) ).then( function () {\n\n\t\t\treturn Promise.all( [\n\n\t\t\t\tparser.getDependencies( 'scene' ),\n\t\t\t\tparser.getDependencies( 'animation' ),\n\t\t\t\tparser.getDependencies( 'camera' ),\n\n\t\t\t] );\n\n\t\t} ).then( function ( dependencies ) {\n\n\t\t\tconst result = {\n\t\t\t\tscene: dependencies[ 0 ][ json.scene || 0 ],\n\t\t\t\tscenes: dependencies[ 0 ],\n\t\t\t\tanimations: dependencies[ 1 ],\n\t\t\t\tcameras: dependencies[ 2 ],\n\t\t\t\tasset: json.asset,\n\t\t\t\tparser: parser,\n\t\t\t\tuserData: {}\n\t\t\t};\n\n\t\t\taddUnknownExtensionsToUserData( extensions, result, json );\n\n\t\t\tassignExtrasToUserData( result, json );\n\n\t\t\treturn Promise.all( parser._invokeAll( function ( ext ) {\n\n\t\t\t\treturn ext.afterRoot && ext.afterRoot( result );\n\n\t\t\t} ) ).then( function () {\n\n\t\t\t\tfor ( const scene of result.scenes ) {\n\n\t\t\t\t\tscene.updateMatrixWorld();\n\n\t\t\t\t}\n\n\t\t\t\tonLoad( result );\n\n\t\t\t} );\n\n\t\t} ).catch( onError );\n\n\t}\n\n\t/**\n\t * Marks the special nodes/meshes in json for efficient parse.\n\t *\n\t * @private\n\t */\n\t_markDefs() {\n\n\t\tconst nodeDefs = this.json.nodes || [];\n\t\tconst skinDefs = this.json.skins || [];\n\t\tconst meshDefs = this.json.meshes || [];\n\n\t\t// Nothing in the node definition indicates whether it is a Bone or an\n\t\t// Object3D. Use the skins' joint references to mark bones.\n\t\tfor ( let skinIndex = 0, skinLength = skinDefs.length; skinIndex < skinLength; skinIndex ++ ) {\n\n\t\t\tconst joints = skinDefs[ skinIndex ].joints;\n\n\t\t\tfor ( let i = 0, il = joints.length; i < il; i ++ ) {\n\n\t\t\t\tnodeDefs[ joints[ i ] ].isBone = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Iterate over all nodes, marking references to shared resources,\n\t\t// as well as skeleton joints.\n\t\tfor ( let nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex ++ ) {\n\n\t\t\tconst nodeDef = nodeDefs[ nodeIndex ];\n\n\t\t\tif ( nodeDef.mesh !== undefined ) {\n\n\t\t\t\tthis._addNodeRef( this.meshCache, nodeDef.mesh );\n\n\t\t\t\t// Nothing in the mesh definition indicates whether it is\n\t\t\t\t// a SkinnedMesh or Mesh. Use the node's mesh reference\n\t\t\t\t// to mark SkinnedMesh if node has skin.\n\t\t\t\tif ( nodeDef.skin !== undefined ) {\n\n\t\t\t\t\tmeshDefs[ nodeDef.mesh ].isSkinnedMesh = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( nodeDef.camera !== undefined ) {\n\n\t\t\t\tthis._addNodeRef( this.cameraCache, nodeDef.camera );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Counts references to shared node / Object3D resources. These resources\n\t * can be reused, or \"instantiated\", at multiple nodes in the scene\n\t * hierarchy. Mesh, Camera, and Light instances are instantiated and must\n\t * be marked. Non-scenegraph resources (like Materials, Geometries, and\n\t * Textures) can be reused directly and are not marked here.\n\t *\n\t * Example: CesiumMilkTruck sample model reuses \"Wheel\" meshes.\n\t *\n\t * @private\n\t * @param {Object} cache\n\t * @param {Object3D} index\n\t */\n\t_addNodeRef( cache, index ) {\n\n\t\tif ( index === undefined ) return;\n\n\t\tif ( cache.refs[ index ] === undefined ) {\n\n\t\t\tcache.refs[ index ] = cache.uses[ index ] = 0;\n\n\t\t}\n\n\t\tcache.refs[ index ] ++;\n\n\t}\n\n\t/**\n\t * Returns a reference to a shared resource, cloning it if necessary.\n\t *\n\t * @private\n\t * @param {Object} cache\n\t * @param {number} index\n\t * @param {Object} object\n\t * @return {Object}\n\t */\n\t_getNodeRef( cache, index, object ) {\n\n\t\tif ( cache.refs[ index ] <= 1 ) return object;\n\n\t\tconst ref = object.clone();\n\n\t\t// Propagates mappings to the cloned object, prevents mappings on the\n\t\t// original object from being lost.\n\t\tconst updateMappings = ( original, clone ) => {\n\n\t\t\tconst mappings = this.associations.get( original );\n\t\t\tif ( mappings != null ) {\n\n\t\t\t\tthis.associations.set( clone, mappings );\n\n\t\t\t}\n\n\t\t\tfor ( const [ i, child ] of original.children.entries() ) {\n\n\t\t\t\tupdateMappings( child, clone.children[ i ] );\n\n\t\t\t}\n\n\t\t};\n\n\t\tupdateMappings( object, ref );\n\n\t\tref.name += '_instance_' + ( cache.uses[ index ] ++ );\n\n\t\treturn ref;\n\n\t}\n\n\t_invokeOne( func ) {\n\n\t\tconst extensions = Object.values( this.plugins );\n\t\textensions.push( this );\n\n\t\tfor ( let i = 0; i < extensions.length; i ++ ) {\n\n\t\t\tconst result = func( extensions[ i ] );\n\n\t\t\tif ( result ) return result;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t_invokeAll( func ) {\n\n\t\tconst extensions = Object.values( this.plugins );\n\t\textensions.unshift( this );\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0; i < extensions.length; i ++ ) {\n\n\t\t\tconst result = func( extensions[ i ] );\n\n\t\t\tif ( result ) pending.push( result );\n\n\t\t}\n\n\t\treturn pending;\n\n\t}\n\n\t/**\n\t * Requests the specified dependency asynchronously, with caching.\n\t *\n\t * @private\n\t * @param {string} type\n\t * @param {number} index\n\t * @return {Promise<Object3D|Material|Texture|AnimationClip|ArrayBuffer|Object>}\n\t */\n\tgetDependency( type, index ) {\n\n\t\tconst cacheKey = type + ':' + index;\n\t\tlet dependency = this.cache.get( cacheKey );\n\n\t\tif ( ! dependency ) {\n\n\t\t\tswitch ( type ) {\n\n\t\t\t\tcase 'scene':\n\t\t\t\t\tdependency = this.loadScene( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'node':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadNode && ext.loadNode( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'mesh':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadMesh && ext.loadMesh( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'accessor':\n\t\t\t\t\tdependency = this.loadAccessor( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'bufferView':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadBufferView && ext.loadBufferView( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'buffer':\n\t\t\t\t\tdependency = this.loadBuffer( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'material':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadMaterial && ext.loadMaterial( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'texture':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadTexture && ext.loadTexture( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'skin':\n\t\t\t\t\tdependency = this.loadSkin( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'animation':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadAnimation && ext.loadAnimation( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'camera':\n\t\t\t\t\tdependency = this.loadCamera( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext != this && ext.getDependency && ext.getDependency( type, index );\n\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( ! dependency ) {\n\n\t\t\t\t\t\tthrow new Error( 'Unknown type: ' + type );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tthis.cache.add( cacheKey, dependency );\n\n\t\t}\n\n\t\treturn dependency;\n\n\t}\n\n\t/**\n\t * Requests all dependencies of the specified type asynchronously, with caching.\n\t *\n\t * @private\n\t * @param {string} type\n\t * @return {Promise<Array<Object>>}\n\t */\n\tgetDependencies( type ) {\n\n\t\tlet dependencies = this.cache.get( type );\n\n\t\tif ( ! dependencies ) {\n\n\t\t\tconst parser = this;\n\t\t\tconst defs = this.json[ type + ( type === 'mesh' ? 'es' : 's' ) ] || [];\n\n\t\t\tdependencies = Promise.all( defs.map( function ( def, index ) {\n\n\t\t\t\treturn parser.getDependency( type, index );\n\n\t\t\t} ) );\n\n\t\t\tthis.cache.add( type, dependencies );\n\n\t\t}\n\n\t\treturn dependencies;\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views\n\t *\n\t * @private\n\t * @param {number} bufferIndex\n\t * @return {Promise<ArrayBuffer>}\n\t */\n\tloadBuffer( bufferIndex ) {\n\n\t\tconst bufferDef = this.json.buffers[ bufferIndex ];\n\t\tconst loader = this.fileLoader;\n\n\t\tif ( bufferDef.type && bufferDef.type !== 'arraybuffer' ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: ' + bufferDef.type + ' buffer type is not supported.' );\n\n\t\t}\n\n\t\t// If present, GLB container is required to be the first buffer.\n\t\tif ( bufferDef.uri === undefined && bufferIndex === 0 ) {\n\n\t\t\treturn Promise.resolve( this.extensions[ EXTENSIONS.KHR_BINARY_GLTF ].body );\n\n\t\t}\n\n\t\tconst options = this.options;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tloader.load( LoaderUtils.resolveURL( bufferDef.uri, options.path ), resolve, undefined, function () {\n\n\t\t\t\treject( new Error( 'THREE.GLTFLoader: Failed to load buffer \"' + bufferDef.uri + '\".' ) );\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views\n\t *\n\t * @private\n\t * @param {number} bufferViewIndex\n\t * @return {Promise<ArrayBuffer>}\n\t */\n\tloadBufferView( bufferViewIndex ) {\n\n\t\tconst bufferViewDef = this.json.bufferViews[ bufferViewIndex ];\n\n\t\treturn this.getDependency( 'buffer', bufferViewDef.buffer ).then( function ( buffer ) {\n\n\t\t\tconst byteLength = bufferViewDef.byteLength || 0;\n\t\t\tconst byteOffset = bufferViewDef.byteOffset || 0;\n\t\t\treturn buffer.slice( byteOffset, byteOffset + byteLength );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#accessors\n\t *\n\t * @private\n\t * @param {number} accessorIndex\n\t * @return {Promise<BufferAttribute|InterleavedBufferAttribute>}\n\t */\n\tloadAccessor( accessorIndex ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\n\t\tconst accessorDef = this.json.accessors[ accessorIndex ];\n\n\t\tif ( accessorDef.bufferView === undefined && accessorDef.sparse === undefined ) {\n\n\t\t\tconst itemSize = WEBGL_TYPE_SIZES[ accessorDef.type ];\n\t\t\tconst TypedArray = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ];\n\t\t\tconst normalized = accessorDef.normalized === true;\n\n\t\t\tconst array = new TypedArray( accessorDef.count * itemSize );\n\t\t\treturn Promise.resolve( new BufferAttribute( array, itemSize, normalized ) );\n\n\t\t}\n\n\t\tconst pendingBufferViews = [];\n\n\t\tif ( accessorDef.bufferView !== undefined ) {\n\n\t\t\tpendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.bufferView ) );\n\n\t\t} else {\n\n\t\t\tpendingBufferViews.push( null );\n\n\t\t}\n\n\t\tif ( accessorDef.sparse !== undefined ) {\n\n\t\t\tpendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.sparse.indices.bufferView ) );\n\t\t\tpendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.sparse.values.bufferView ) );\n\n\t\t}\n\n\t\treturn Promise.all( pendingBufferViews ).then( function ( bufferViews ) {\n\n\t\t\tconst bufferView = bufferViews[ 0 ];\n\n\t\t\tconst itemSize = WEBGL_TYPE_SIZES[ accessorDef.type ];\n\t\t\tconst TypedArray = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ];\n\n\t\t\t// For VEC3: itemSize is 3, elementBytes is 4, itemBytes is 12.\n\t\t\tconst elementBytes = TypedArray.BYTES_PER_ELEMENT;\n\t\t\tconst itemBytes = elementBytes * itemSize;\n\t\t\tconst byteOffset = accessorDef.byteOffset || 0;\n\t\t\tconst byteStride = accessorDef.bufferView !== undefined ? json.bufferViews[ accessorDef.bufferView ].byteStride : undefined;\n\t\t\tconst normalized = accessorDef.normalized === true;\n\t\t\tlet array, bufferAttribute;\n\n\t\t\t// The buffer is not interleaved if the stride is the item size in bytes.\n\t\t\tif ( byteStride && byteStride !== itemBytes ) {\n\n\t\t\t\t// Each \"slice\" of the buffer, as defined by 'count' elements of 'byteStride' bytes, gets its own InterleavedBuffer\n\t\t\t\t// This makes sure that IBA.count reflects accessor.count properly\n\t\t\t\tconst ibSlice = Math.floor( byteOffset / byteStride );\n\t\t\t\tconst ibCacheKey = 'InterleavedBuffer:' + accessorDef.bufferView + ':' + accessorDef.componentType + ':' + ibSlice + ':' + accessorDef.count;\n\t\t\t\tlet ib = parser.cache.get( ibCacheKey );\n\n\t\t\t\tif ( ! ib ) {\n\n\t\t\t\t\tarray = new TypedArray( bufferView, ibSlice * byteStride, accessorDef.count * byteStride / elementBytes );\n\n\t\t\t\t\t// Integer parameters to IB/IBA are in array elements, not bytes.\n\t\t\t\t\tib = new InterleavedBuffer( array, byteStride / elementBytes );\n\n\t\t\t\t\tparser.cache.add( ibCacheKey, ib );\n\n\t\t\t\t}\n\n\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( ib, itemSize, ( byteOffset % byteStride ) / elementBytes, normalized );\n\n\t\t\t} else {\n\n\t\t\t\tif ( bufferView === null ) {\n\n\t\t\t\t\tarray = new TypedArray( accessorDef.count * itemSize );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tarray = new TypedArray( bufferView, byteOffset, accessorDef.count * itemSize );\n\n\t\t\t\t}\n\n\t\t\t\tbufferAttribute = new BufferAttribute( array, itemSize, normalized );\n\n\t\t\t}\n\n\t\t\t// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#sparse-accessors\n\t\t\tif ( accessorDef.sparse !== undefined ) {\n\n\t\t\t\tconst itemSizeIndices = WEBGL_TYPE_SIZES.SCALAR;\n\t\t\t\tconst TypedArrayIndices = WEBGL_COMPONENT_TYPES[ accessorDef.sparse.indices.componentType ];\n\n\t\t\t\tconst byteOffsetIndices = accessorDef.sparse.indices.byteOffset || 0;\n\t\t\t\tconst byteOffsetValues = accessorDef.sparse.values.byteOffset || 0;\n\n\t\t\t\tconst sparseIndices = new TypedArrayIndices( bufferViews[ 1 ], byteOffsetIndices, accessorDef.sparse.count * itemSizeIndices );\n\t\t\t\tconst sparseValues = new TypedArray( bufferViews[ 2 ], byteOffsetValues, accessorDef.sparse.count * itemSize );\n\n\t\t\t\tif ( bufferView !== null ) {\n\n\t\t\t\t\t// Avoid modifying the original ArrayBuffer, if the bufferView wasn't initialized with zeroes.\n\t\t\t\t\tbufferAttribute = new BufferAttribute( bufferAttribute.array.slice(), bufferAttribute.itemSize, bufferAttribute.normalized );\n\n\t\t\t\t}\n\n\t\t\t\t// Ignore normalized since we copy from sparse\n\t\t\t\tbufferAttribute.normalized = false;\n\n\t\t\t\tfor ( let i = 0, il = sparseIndices.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst index = sparseIndices[ i ];\n\n\t\t\t\t\tbufferAttribute.setX( index, sparseValues[ i * itemSize ] );\n\t\t\t\t\tif ( itemSize >= 2 ) bufferAttribute.setY( index, sparseValues[ i * itemSize + 1 ] );\n\t\t\t\t\tif ( itemSize >= 3 ) bufferAttribute.setZ( index, sparseValues[ i * itemSize + 2 ] );\n\t\t\t\t\tif ( itemSize >= 4 ) bufferAttribute.setW( index, sparseValues[ i * itemSize + 3 ] );\n\t\t\t\t\tif ( itemSize >= 5 ) throw new Error( 'THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.' );\n\n\t\t\t\t}\n\n\t\t\t\tbufferAttribute.normalized = normalized;\n\n\t\t\t}\n\n\t\t\treturn bufferAttribute;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#textures\n\t *\n\t * @private\n\t * @param {number} textureIndex\n\t * @return {Promise<?Texture>}\n\t */\n\tloadTexture( textureIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst options = this.options;\n\t\tconst textureDef = json.textures[ textureIndex ];\n\t\tconst sourceIndex = textureDef.source;\n\t\tconst sourceDef = json.images[ sourceIndex ];\n\n\t\tlet loader = this.textureLoader;\n\n\t\tif ( sourceDef.uri ) {\n\n\t\t\tconst handler = options.manager.getHandler( sourceDef.uri );\n\t\t\tif ( handler !== null ) loader = handler;\n\n\t\t}\n\n\t\treturn this.loadTextureImage( textureIndex, sourceIndex, loader );\n\n\t}\n\n\tloadTextureImage( textureIndex, sourceIndex, loader ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\t\tconst sourceDef = json.images[ sourceIndex ];\n\n\t\tconst cacheKey = ( sourceDef.uri || sourceDef.bufferView ) + ':' + textureDef.sampler;\n\n\t\tif ( this.textureCache[ cacheKey ] ) {\n\n\t\t\t// See https://github.com/mrdoob/three.js/issues/21559.\n\t\t\treturn this.textureCache[ cacheKey ];\n\n\t\t}\n\n\t\tconst promise = this.loadImageSource( sourceIndex, loader ).then( function ( texture ) {\n\n\t\t\ttexture.flipY = false;\n\n\t\t\ttexture.name = textureDef.name || sourceDef.name || '';\n\n\t\t\tif ( texture.name === '' && typeof sourceDef.uri === 'string' && sourceDef.uri.startsWith( 'data:image/' ) === false ) {\n\n\t\t\t\ttexture.name = sourceDef.uri;\n\n\t\t\t}\n\n\t\t\tconst samplers = json.samplers || {};\n\t\t\tconst sampler = samplers[ textureDef.sampler ] || {};\n\n\t\t\ttexture.magFilter = WEBGL_FILTERS[ sampler.magFilter ] || LinearFilter;\n\t\t\ttexture.minFilter = WEBGL_FILTERS[ sampler.minFilter ] || LinearMipmapLinearFilter;\n\t\t\ttexture.wrapS = WEBGL_WRAPPINGS[ sampler.wrapS ] || RepeatWrapping;\n\t\t\ttexture.wrapT = WEBGL_WRAPPINGS[ sampler.wrapT ] || RepeatWrapping;\n\t\t\ttexture.generateMipmaps = ! texture.isCompressedTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\n\n\t\t\tparser.associations.set( texture, { textures: textureIndex } );\n\n\t\t\treturn texture;\n\n\t\t} ).catch( function () {\n\n\t\t\treturn null;\n\n\t\t} );\n\n\t\tthis.textureCache[ cacheKey ] = promise;\n\n\t\treturn promise;\n\n\t}\n\n\tloadImageSource( sourceIndex, loader ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst options = this.options;\n\n\t\tif ( this.sourceCache[ sourceIndex ] !== undefined ) {\n\n\t\t\treturn this.sourceCache[ sourceIndex ].then( ( texture ) => texture.clone() );\n\n\t\t}\n\n\t\tconst sourceDef = json.images[ sourceIndex ];\n\n\t\tconst URL = self.URL || self.webkitURL;\n\n\t\tlet sourceURI = sourceDef.uri || '';\n\t\tlet isObjectURL = false;\n\n\t\tif ( sourceDef.bufferView !== undefined ) {\n\n\t\t\t// Load binary image data from bufferView, if provided.\n\n\t\t\tsourceURI = parser.getDependency( 'bufferView', sourceDef.bufferView ).then( function ( bufferView ) {\n\n\t\t\t\tisObjectURL = true;\n\t\t\t\tconst blob = new Blob( [ bufferView ], { type: sourceDef.mimeType } );\n\t\t\t\tsourceURI = URL.createObjectURL( blob );\n\t\t\t\treturn sourceURI;\n\n\t\t\t} );\n\n\t\t} else if ( sourceDef.uri === undefined ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Image ' + sourceIndex + ' is missing URI and bufferView' );\n\n\t\t}\n\n\t\tconst promise = Promise.resolve( sourceURI ).then( function ( sourceURI ) {\n\n\t\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\t\tlet onLoad = resolve;\n\n\t\t\t\tif ( loader.isImageBitmapLoader === true ) {\n\n\t\t\t\t\tonLoad = function ( imageBitmap ) {\n\n\t\t\t\t\t\tconst texture = new Texture( imageBitmap );\n\t\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\t\tresolve( texture );\n\n\t\t\t\t\t};\n\n\t\t\t\t}\n\n\t\t\t\tloader.load( LoaderUtils.resolveURL( sourceURI, options.path ), onLoad, undefined, reject );\n\n\t\t\t} );\n\n\t\t} ).then( function ( texture ) {\n\n\t\t\t// Clean up resources and configure Texture.\n\n\t\t\tif ( isObjectURL === true ) {\n\n\t\t\t\tURL.revokeObjectURL( sourceURI );\n\n\t\t\t}\n\n\t\t\tassignExtrasToUserData( texture, sourceDef );\n\n\t\t\ttexture.userData.mimeType = sourceDef.mimeType || getImageURIMimeType( sourceDef.uri );\n\n\t\t\treturn texture;\n\n\t\t} ).catch( function ( error ) {\n\n\t\t\tconsole.error( 'THREE.GLTFLoader: Couldn\\'t load texture', sourceURI );\n\t\t\tthrow error;\n\n\t\t} );\n\n\t\tthis.sourceCache[ sourceIndex ] = promise;\n\t\treturn promise;\n\n\t}\n\n\t/**\n\t * Asynchronously assigns a texture to the given material parameters.\n\t *\n\t * @private\n\t * @param {Object} materialParams\n\t * @param {string} mapName\n\t * @param {Object} mapDef\n\t * @param {string} [colorSpace]\n\t * @return {Promise<Texture>}\n\t */\n\tassignTexture( materialParams, mapName, mapDef, colorSpace ) {\n\n\t\tconst parser = this;\n\n\t\treturn this.getDependency( 'texture', mapDef.index ).then( function ( texture ) {\n\n\t\t\tif ( ! texture ) return null;\n\n\t\t\tif ( mapDef.texCoord !== undefined && mapDef.texCoord > 0 ) {\n\n\t\t\t\ttexture = texture.clone();\n\t\t\t\ttexture.channel = mapDef.texCoord;\n\n\t\t\t}\n\n\t\t\tif ( parser.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ] ) {\n\n\t\t\t\tconst transform = mapDef.extensions !== undefined ? mapDef.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ] : undefined;\n\n\t\t\t\tif ( transform ) {\n\n\t\t\t\t\tconst gltfReference = parser.associations.get( texture );\n\t\t\t\t\ttexture = parser.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ].extendTexture( texture, transform );\n\t\t\t\t\tparser.associations.set( texture, gltfReference );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( colorSpace !== undefined ) {\n\n\t\t\t\ttexture.colorSpace = colorSpace;\n\n\t\t\t}\n\n\t\t\tmaterialParams[ mapName ] = texture;\n\n\t\t\treturn texture;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Assigns final material to a Mesh, Line, or Points instance. The instance\n\t * already has a material (generated from the glTF material options alone)\n\t * but reuse of the same glTF material may require multiple threejs materials\n\t * to accommodate different primitive types, defines, etc. New materials will\n\t * be created if necessary, and reused from a cache.\n\t *\n\t * @private\n\t * @param {Object3D} mesh Mesh, Line, or Points instance.\n\t */\n\tassignFinalMaterial( mesh ) {\n\n\t\tconst geometry = mesh.geometry;\n\t\tlet material = mesh.material;\n\n\t\tconst useDerivativeTangents = geometry.attributes.tangent === undefined;\n\t\tconst useVertexColors = geometry.attributes.color !== undefined;\n\t\tconst useFlatShading = geometry.attributes.normal === undefined;\n\n\t\tif ( mesh.isPoints ) {\n\n\t\t\tconst cacheKey = 'PointsMaterial:' + material.uuid;\n\n\t\t\tlet pointsMaterial = this.cache.get( cacheKey );\n\n\t\t\tif ( ! pointsMaterial ) {\n\n\t\t\t\tpointsMaterial = new PointsMaterial();\n\t\t\t\tMaterial.prototype.copy.call( pointsMaterial, material );\n\t\t\t\tpointsMaterial.color.copy( material.color );\n\t\t\t\tpointsMaterial.map = material.map;\n\t\t\t\tpointsMaterial.sizeAttenuation = false; // glTF spec says points should be 1px\n\n\t\t\t\tthis.cache.add( cacheKey, pointsMaterial );\n\n\t\t\t}\n\n\t\t\tmaterial = pointsMaterial;\n\n\t\t} else if ( mesh.isLine ) {\n\n\t\t\tconst cacheKey = 'LineBasicMaterial:' + material.uuid;\n\n\t\t\tlet lineMaterial = this.cache.get( cacheKey );\n\n\t\t\tif ( ! lineMaterial ) {\n\n\t\t\t\tlineMaterial = new LineBasicMaterial();\n\t\t\t\tMaterial.prototype.copy.call( lineMaterial, material );\n\t\t\t\tlineMaterial.color.copy( material.color );\n\t\t\t\tlineMaterial.map = material.map;\n\n\t\t\t\tthis.cache.add( cacheKey, lineMaterial );\n\n\t\t\t}\n\n\t\t\tmaterial = lineMaterial;\n\n\t\t}\n\n\t\t// Clone the material if it will be modified\n\t\tif ( useDerivativeTangents || useVertexColors || useFlatShading ) {\n\n\t\t\tlet cacheKey = 'ClonedMaterial:' + material.uuid + ':';\n\n\t\t\tif ( useDerivativeTangents ) cacheKey += 'derivative-tangents:';\n\t\t\tif ( useVertexColors ) cacheKey += 'vertex-colors:';\n\t\t\tif ( useFlatShading ) cacheKey += 'flat-shading:';\n\n\t\t\tlet cachedMaterial = this.cache.get( cacheKey );\n\n\t\t\tif ( ! cachedMaterial ) {\n\n\t\t\t\tcachedMaterial = material.clone();\n\n\t\t\t\tif ( useVertexColors ) cachedMaterial.vertexColors = true;\n\t\t\t\tif ( useFlatShading ) cachedMaterial.flatShading = true;\n\n\t\t\t\tif ( useDerivativeTangents ) {\n\n\t\t\t\t\t// https://github.com/mrdoob/three.js/issues/11438#issuecomment-507003995\n\t\t\t\t\tif ( cachedMaterial.normalScale ) cachedMaterial.normalScale.y *= - 1;\n\t\t\t\t\tif ( cachedMaterial.clearcoatNormalScale ) cachedMaterial.clearcoatNormalScale.y *= - 1;\n\n\t\t\t\t}\n\n\t\t\t\tthis.cache.add( cacheKey, cachedMaterial );\n\n\t\t\t\tthis.associations.set( cachedMaterial, this.associations.get( material ) );\n\n\t\t\t}\n\n\t\t\tmaterial = cachedMaterial;\n\n\t\t}\n\n\t\tmesh.material = material;\n\n\t}\n\n\tgetMaterialType( /* materialIndex */ ) {\n\n\t\treturn MeshStandardMaterial;\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials\n\t *\n\t * @private\n\t * @param {number} materialIndex\n\t * @return {Promise<Material>}\n\t */\n\tloadMaterial( materialIndex ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\t\tconst materialDef = json.materials[ materialIndex ];\n\n\t\tlet materialType;\n\t\tconst materialParams = {};\n\t\tconst materialExtensions = materialDef.extensions || {};\n\n\t\tconst pending = [];\n\n\t\tif ( materialExtensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ] ) {\n\n\t\t\tconst kmuExtension = extensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ];\n\t\t\tmaterialType = kmuExtension.getMaterialType();\n\t\t\tpending.push( kmuExtension.extendParams( materialParams, materialDef, parser ) );\n\n\t\t} else {\n\n\t\t\t// Specification:\n\t\t\t// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#metallic-roughness-material\n\n\t\t\tconst metallicRoughness = materialDef.pbrMetallicRoughness || {};\n\n\t\t\tmaterialParams.color = new Color( 1.0, 1.0, 1.0 );\n\t\t\tmaterialParams.opacity = 1.0;\n\n\t\t\tif ( Array.isArray( metallicRoughness.baseColorFactor ) ) {\n\n\t\t\t\tconst array = metallicRoughness.baseColorFactor;\n\n\t\t\t\tmaterialParams.color.setRGB( array[ 0 ], array[ 1 ], array[ 2 ], LinearSRGBColorSpace );\n\t\t\t\tmaterialParams.opacity = array[ 3 ];\n\n\t\t\t}\n\n\t\t\tif ( metallicRoughness.baseColorTexture !== undefined ) {\n\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture, SRGBColorSpace ) );\n\n\t\t\t}\n\n\t\t\tmaterialParams.metalness = metallicRoughness.metallicFactor !== undefined ? metallicRoughness.metallicFactor : 1.0;\n\t\t\tmaterialParams.roughness = metallicRoughness.roughnessFactor !== undefined ? metallicRoughness.roughnessFactor : 1.0;\n\n\t\t\tif ( metallicRoughness.metallicRoughnessTexture !== undefined ) {\n\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'metalnessMap', metallicRoughness.metallicRoughnessTexture ) );\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'roughnessMap', metallicRoughness.metallicRoughnessTexture ) );\n\n\t\t\t}\n\n\t\t\tmaterialType = this._invokeOne( function ( ext ) {\n\n\t\t\t\treturn ext.getMaterialType && ext.getMaterialType( materialIndex );\n\n\t\t\t} );\n\n\t\t\tpending.push( Promise.all( this._invokeAll( function ( ext ) {\n\n\t\t\t\treturn ext.extendMaterialParams && ext.extendMaterialParams( materialIndex, materialParams );\n\n\t\t\t} ) ) );\n\n\t\t}\n\n\t\tif ( materialDef.doubleSided === true ) {\n\n\t\t\tmaterialParams.side = DoubleSide;\n\n\t\t}\n\n\t\tconst alphaMode = materialDef.alphaMode || ALPHA_MODES.OPAQUE;\n\n\t\tif ( alphaMode === ALPHA_MODES.BLEND ) {\n\n\t\t\tmaterialParams.transparent = true;\n\n\t\t\t// See: https://github.com/mrdoob/three.js/issues/17706\n\t\t\tmaterialParams.depthWrite = false;\n\n\t\t} else {\n\n\t\t\tmaterialParams.transparent = false;\n\n\t\t\tif ( alphaMode === ALPHA_MODES.MASK ) {\n\n\t\t\t\tmaterialParams.alphaTest = materialDef.alphaCutoff !== undefined ? materialDef.alphaCutoff : 0.5;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( materialDef.normalTexture !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'normalMap', materialDef.normalTexture ) );\n\n\t\t\tmaterialParams.normalScale = new Vector2( 1, 1 );\n\n\t\t\tif ( materialDef.normalTexture.scale !== undefined ) {\n\n\t\t\t\tconst scale = materialDef.normalTexture.scale;\n\n\t\t\t\tmaterialParams.normalScale.set( scale, scale );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( materialDef.occlusionTexture !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'aoMap', materialDef.occlusionTexture ) );\n\n\t\t\tif ( materialDef.occlusionTexture.strength !== undefined ) {\n\n\t\t\t\tmaterialParams.aoMapIntensity = materialDef.occlusionTexture.strength;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( materialDef.emissiveFactor !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tconst emissiveFactor = materialDef.emissiveFactor;\n\t\t\tmaterialParams.emissive = new Color().setRGB( emissiveFactor[ 0 ], emissiveFactor[ 1 ], emissiveFactor[ 2 ], LinearSRGBColorSpace );\n\n\t\t}\n\n\t\tif ( materialDef.emissiveTexture !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'emissiveMap', materialDef.emissiveTexture, SRGBColorSpace ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending ).then( function () {\n\n\t\t\tconst material = new materialType( materialParams );\n\n\t\t\tif ( materialDef.name ) material.name = materialDef.name;\n\n\t\t\tassignExtrasToUserData( material, materialDef );\n\n\t\t\tparser.associations.set( material, { materials: materialIndex } );\n\n\t\t\tif ( materialDef.extensions ) addUnknownExtensionsToUserData( extensions, material, materialDef );\n\n\t\t\treturn material;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * When Object3D instances are targeted by animation, they need unique names.\n\t *\n\t * @private\n\t * @param {string} originalName\n\t * @return {string}\n\t */\n\tcreateUniqueName( originalName ) {\n\n\t\tconst sanitizedName = PropertyBinding.sanitizeNodeName( originalName || '' );\n\n\t\tif ( sanitizedName in this.nodeNamesUsed ) {\n\n\t\t\treturn sanitizedName + '_' + ( ++ this.nodeNamesUsed[ sanitizedName ] );\n\n\t\t} else {\n\n\t\t\tthis.nodeNamesUsed[ sanitizedName ] = 0;\n\n\t\t\treturn sanitizedName;\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#geometry\n\t *\n\t * Creates BufferGeometries from primitives.\n\t *\n\t * @private\n\t * @param {Array<GLTF.Primitive>} primitives\n\t * @return {Promise<Array<BufferGeometry>>}\n\t */\n\tloadGeometries( primitives ) {\n\n\t\tconst parser = this;\n\t\tconst extensions = this.extensions;\n\t\tconst cache = this.primitiveCache;\n\n\t\tfunction createDracoPrimitive( primitive ) {\n\n\t\t\treturn extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ]\n\t\t\t\t.decodePrimitive( primitive, parser )\n\t\t\t\t.then( function ( geometry ) {\n\n\t\t\t\t\treturn addPrimitiveAttributes( geometry, primitive, parser );\n\n\t\t\t\t} );\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = primitives.length; i < il; i ++ ) {\n\n\t\t\tconst primitive = primitives[ i ];\n\t\t\tconst cacheKey = createPrimitiveKey( primitive );\n\n\t\t\t// See if we've already created this geometry\n\t\t\tconst cached = cache[ cacheKey ];\n\n\t\t\tif ( cached ) {\n\n\t\t\t\t// Use the cached geometry if it exists\n\t\t\t\tpending.push( cached.promise );\n\n\t\t\t} else {\n\n\t\t\t\tlet geometryPromise;\n\n\t\t\t\tif ( primitive.extensions && primitive.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ] ) {\n\n\t\t\t\t\t// Use DRACO geometry if available\n\t\t\t\t\tgeometryPromise = createDracoPrimitive( primitive );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Otherwise create a new geometry\n\t\t\t\t\tgeometryPromise = addPrimitiveAttributes( new BufferGeometry(), primitive, parser );\n\n\t\t\t\t}\n\n\t\t\t\t// Cache this geometry\n\t\t\t\tcache[ cacheKey ] = { primitive: primitive, promise: geometryPromise };\n\n\t\t\t\tpending.push( geometryPromise );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#meshes\n\t *\n\t * @private\n\t * @param {number} meshIndex\n\t * @return {Promise<Group|Mesh|SkinnedMesh|Line|Points>}\n\t */\n\tloadMesh( meshIndex ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\n\t\tconst meshDef = json.meshes[ meshIndex ];\n\t\tconst primitives = meshDef.primitives;\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = primitives.length; i < il; i ++ ) {\n\n\t\t\tconst material = primitives[ i ].material === undefined\n\t\t\t\t? createDefaultMaterial( this.cache )\n\t\t\t\t: this.getDependency( 'material', primitives[ i ].material );\n\n\t\t\tpending.push( material );\n\n\t\t}\n\n\t\tpending.push( parser.loadGeometries( primitives ) );\n\n\t\treturn Promise.all( pending ).then( function ( results ) {\n\n\t\t\tconst materials = results.slice( 0, results.length - 1 );\n\t\t\tconst geometries = results[ results.length - 1 ];\n\n\t\t\tconst meshes = [];\n\n\t\t\tfor ( let i = 0, il = geometries.length; i < il; i ++ ) {\n\n\t\t\t\tconst geometry = geometries[ i ];\n\t\t\t\tconst primitive = primitives[ i ];\n\n\t\t\t\t// 1. create Mesh\n\n\t\t\t\tlet mesh;\n\n\t\t\t\tconst material = materials[ i ];\n\n\t\t\t\tif ( primitive.mode === WEBGL_CONSTANTS.TRIANGLES ||\n\t\t\t\t\t\tprimitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP ||\n\t\t\t\t\t\tprimitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN ||\n\t\t\t\t\t\tprimitive.mode === undefined ) {\n\n\t\t\t\t\t// .isSkinnedMesh isn't in glTF spec. See ._markDefs()\n\t\t\t\t\tmesh = meshDef.isSkinnedMesh === true\n\t\t\t\t\t\t? new SkinnedMesh( geometry, material )\n\t\t\t\t\t\t: new Mesh( geometry, material );\n\n\t\t\t\t\tif ( mesh.isSkinnedMesh === true ) {\n\n\t\t\t\t\t\t// normalize skin weights to fix malformed assets (see #15319)\n\t\t\t\t\t\tmesh.normalizeSkinWeights();\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( primitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP ) {\n\n\t\t\t\t\t\tmesh.geometry = toTrianglesDrawMode( mesh.geometry, TriangleStripDrawMode );\n\n\t\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN ) {\n\n\t\t\t\t\t\tmesh.geometry = toTrianglesDrawMode( mesh.geometry, TriangleFanDrawMode );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.LINES ) {\n\n\t\t\t\t\tmesh = new LineSegments( geometry, material );\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.LINE_STRIP ) {\n\n\t\t\t\t\tmesh = new Line( geometry, material );\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.LINE_LOOP ) {\n\n\t\t\t\t\tmesh = new LineLoop( geometry, material );\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.POINTS ) {\n\n\t\t\t\t\tmesh = new Points( geometry, material );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( 'THREE.GLTFLoader: Primitive mode unsupported: ' + primitive.mode );\n\n\t\t\t\t}\n\n\t\t\t\tif ( Object.keys( mesh.geometry.morphAttributes ).length > 0 ) {\n\n\t\t\t\t\tupdateMorphTargets( mesh, meshDef );\n\n\t\t\t\t}\n\n\t\t\t\tmesh.name = parser.createUniqueName( meshDef.name || ( 'mesh_' + meshIndex ) );\n\n\t\t\t\tassignExtrasToUserData( mesh, meshDef );\n\n\t\t\t\tif ( primitive.extensions ) addUnknownExtensionsToUserData( extensions, mesh, primitive );\n\n\t\t\t\tparser.assignFinalMaterial( mesh );\n\n\t\t\t\tmeshes.push( mesh );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, il = meshes.length; i < il; i ++ ) {\n\n\t\t\t\tparser.associations.set( meshes[ i ], {\n\t\t\t\t\tmeshes: meshIndex,\n\t\t\t\t\tprimitives: i\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tif ( meshes.length === 1 ) {\n\n\t\t\t\tif ( meshDef.extensions ) addUnknownExtensionsToUserData( extensions, meshes[ 0 ], meshDef );\n\n\t\t\t\treturn meshes[ 0 ];\n\n\t\t\t}\n\n\t\t\tconst group = new Group();\n\n\t\t\tif ( meshDef.extensions ) addUnknownExtensionsToUserData( extensions, group, meshDef );\n\n\t\t\tparser.associations.set( group, { meshes: meshIndex } );\n\n\t\t\tfor ( let i = 0, il = meshes.length; i < il; i ++ ) {\n\n\t\t\t\tgroup.add( meshes[ i ] );\n\n\t\t\t}\n\n\t\t\treturn group;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#cameras\n\t *\n\t * @private\n\t * @param {number} cameraIndex\n\t * @return {Promise<Camera>|undefined}\n\t */\n\tloadCamera( cameraIndex ) {\n\n\t\tlet camera;\n\t\tconst cameraDef = this.json.cameras[ cameraIndex ];\n\t\tconst params = cameraDef[ cameraDef.type ];\n\n\t\tif ( ! params ) {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Missing camera parameters.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( cameraDef.type === 'perspective' ) {\n\n\t\t\tcamera = new PerspectiveCamera( MathUtils.radToDeg( params.yfov ), params.aspectRatio || 1, params.znear || 1, params.zfar || 2e6 );\n\n\t\t} else if ( cameraDef.type === 'orthographic' ) {\n\n\t\t\tcamera = new OrthographicCamera( - params.xmag, params.xmag, params.ymag, - params.ymag, params.znear, params.zfar );\n\n\t\t}\n\n\t\tif ( cameraDef.name ) camera.name = this.createUniqueName( cameraDef.name );\n\n\t\tassignExtrasToUserData( camera, cameraDef );\n\n\t\treturn Promise.resolve( camera );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins\n\t *\n\t * @private\n\t * @param {number} skinIndex\n\t * @return {Promise<Skeleton>}\n\t */\n\tloadSkin( skinIndex ) {\n\n\t\tconst skinDef = this.json.skins[ skinIndex ];\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = skinDef.joints.length; i < il; i ++ ) {\n\n\t\t\tpending.push( this._loadNodeShallow( skinDef.joints[ i ] ) );\n\n\t\t}\n\n\t\tif ( skinDef.inverseBindMatrices !== undefined ) {\n\n\t\t\tpending.push( this.getDependency( 'accessor', skinDef.inverseBindMatrices ) );\n\n\t\t} else {\n\n\t\t\tpending.push( null );\n\n\t\t}\n\n\t\treturn Promise.all( pending ).then( function ( results ) {\n\n\t\t\tconst inverseBindMatrices = results.pop();\n\t\t\tconst jointNodes = results;\n\n\t\t\t// Note that bones (joint nodes) may or may not be in the\n\t\t\t// scene graph at this time.\n\n\t\t\tconst bones = [];\n\t\t\tconst boneInverses = [];\n\n\t\t\tfor ( let i = 0, il = jointNodes.length; i < il; i ++ ) {\n\n\t\t\t\tconst jointNode = jointNodes[ i ];\n\n\t\t\t\tif ( jointNode ) {\n\n\t\t\t\t\tbones.push( jointNode );\n\n\t\t\t\t\tconst mat = new Matrix4();\n\n\t\t\t\t\tif ( inverseBindMatrices !== null ) {\n\n\t\t\t\t\t\tmat.fromArray( inverseBindMatrices.array, i * 16 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tboneInverses.push( mat );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.GLTFLoader: Joint \"%s\" could not be found.', skinDef.joints[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new Skeleton( bones, boneInverses );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#animations\n\t *\n\t * @private\n\t * @param {number} animationIndex\n\t * @return {Promise<AnimationClip>}\n\t */\n\tloadAnimation( animationIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst parser = this;\n\n\t\tconst animationDef = json.animations[ animationIndex ];\n\t\tconst animationName = animationDef.name ? animationDef.name : 'animation_' + animationIndex;\n\n\t\tconst pendingNodes = [];\n\t\tconst pendingInputAccessors = [];\n\t\tconst pendingOutputAccessors = [];\n\t\tconst pendingSamplers = [];\n\t\tconst pendingTargets = [];\n\n\t\tfor ( let i = 0, il = animationDef.channels.length; i < il; i ++ ) {\n\n\t\t\tconst channel = animationDef.channels[ i ];\n\t\t\tconst sampler = animationDef.samplers[ channel.sampler ];\n\t\t\tconst target = channel.target;\n\t\t\tconst name = target.node;\n\t\t\tconst input = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.input ] : sampler.input;\n\t\t\tconst output = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.output ] : sampler.output;\n\n\t\t\tif ( target.node === undefined ) continue;\n\n\t\t\tpendingNodes.push( this.getDependency( 'node', name ) );\n\t\t\tpendingInputAccessors.push( this.getDependency( 'accessor', input ) );\n\t\t\tpendingOutputAccessors.push( this.getDependency( 'accessor', output ) );\n\t\t\tpendingSamplers.push( sampler );\n\t\t\tpendingTargets.push( target );\n\n\t\t}\n\n\t\treturn Promise.all( [\n\n\t\t\tPromise.all( pendingNodes ),\n\t\t\tPromise.all( pendingInputAccessors ),\n\t\t\tPromise.all( pendingOutputAccessors ),\n\t\t\tPromise.all( pendingSamplers ),\n\t\t\tPromise.all( pendingTargets )\n\n\t\t] ).then( function ( dependencies ) {\n\n\t\t\tconst nodes = dependencies[ 0 ];\n\t\t\tconst inputAccessors = dependencies[ 1 ];\n\t\t\tconst outputAccessors = dependencies[ 2 ];\n\t\t\tconst samplers = dependencies[ 3 ];\n\t\t\tconst targets = dependencies[ 4 ];\n\n\t\t\tconst tracks = [];\n\n\t\t\tfor ( let i = 0, il = nodes.length; i < il; i ++ ) {\n\n\t\t\t\tconst node = nodes[ i ];\n\t\t\t\tconst inputAccessor = inputAccessors[ i ];\n\t\t\t\tconst outputAccessor = outputAccessors[ i ];\n\t\t\t\tconst sampler = samplers[ i ];\n\t\t\t\tconst target = targets[ i ];\n\n\t\t\t\tif ( node === undefined ) continue;\n\n\t\t\t\tif ( node.updateMatrix ) {\n\n\t\t\t\t\tnode.updateMatrix();\n\n\t\t\t\t}\n\n\t\t\t\tconst createdTracks = parser._createAnimationTracks( node, inputAccessor, outputAccessor, sampler, target );\n\n\t\t\t\tif ( createdTracks ) {\n\n\t\t\t\t\tfor ( let k = 0; k < createdTracks.length; k ++ ) {\n\n\t\t\t\t\t\ttracks.push( createdTracks[ k ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst animation = new AnimationClip( animationName, undefined, tracks );\n\n\t\t\tassignExtrasToUserData( animation, animationDef );\n\n\t\t\treturn animation;\n\n\t\t} );\n\n\t}\n\n\tcreateNodeMesh( nodeIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst parser = this;\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\tif ( nodeDef.mesh === undefined ) return null;\n\n\t\treturn parser.getDependency( 'mesh', nodeDef.mesh ).then( function ( mesh ) {\n\n\t\t\tconst node = parser._getNodeRef( parser.meshCache, nodeDef.mesh, mesh );\n\n\t\t\t// if weights are provided on the node, override weights on the mesh.\n\t\t\tif ( nodeDef.weights !== undefined ) {\n\n\t\t\t\tnode.traverse( function ( o ) {\n\n\t\t\t\t\tif ( ! o.isMesh ) return;\n\n\t\t\t\t\tfor ( let i = 0, il = nodeDef.weights.length; i < il; i ++ ) {\n\n\t\t\t\t\t\to.morphTargetInfluences[ i ] = nodeDef.weights[ i ];\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn node;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#nodes-and-hierarchy\n\t *\n\t * @private\n\t * @param {number} nodeIndex\n\t * @return {Promise<Object3D>}\n\t */\n\tloadNode( nodeIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst parser = this;\n\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\tconst nodePending = parser._loadNodeShallow( nodeIndex );\n\n\t\tconst childPending = [];\n\t\tconst childrenDef = nodeDef.children || [];\n\n\t\tfor ( let i = 0, il = childrenDef.length; i < il; i ++ ) {\n\n\t\t\tchildPending.push( parser.getDependency( 'node', childrenDef[ i ] ) );\n\n\t\t}\n\n\t\tconst skeletonPending = nodeDef.skin === undefined\n\t\t\t? Promise.resolve( null )\n\t\t\t: parser.getDependency( 'skin', nodeDef.skin );\n\n\t\treturn Promise.all( [\n\t\t\tnodePending,\n\t\t\tPromise.all( childPending ),\n\t\t\tskeletonPending\n\t\t] ).then( function ( results ) {\n\n\t\t\tconst node = results[ 0 ];\n\t\t\tconst children = results[ 1 ];\n\t\t\tconst skeleton = results[ 2 ];\n\n\t\t\tif ( skeleton !== null ) {\n\n\t\t\t\t// This full traverse should be fine because\n\t\t\t\t// child glTF nodes have not been added to this node yet.\n\t\t\t\tnode.traverse( function ( mesh ) {\n\n\t\t\t\t\tif ( ! mesh.isSkinnedMesh ) return;\n\n\t\t\t\t\tmesh.bind( skeleton, _identityMatrix );\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, il = children.length; i < il; i ++ ) {\n\n\t\t\t\tnode.add( children[ i ] );\n\n\t\t\t}\n\n\t\t\treturn node;\n\n\t\t} );\n\n\t}\n\n\t// ._loadNodeShallow() parses a single node.\n\t// skin and child nodes are created and added in .loadNode() (no '_' prefix).\n\t_loadNodeShallow( nodeIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\t\tconst parser = this;\n\n\t\t// This method is called from .loadNode() and .loadSkin().\n\t\t// Cache a node to avoid duplication.\n\n\t\tif ( this.nodeCache[ nodeIndex ] !== undefined ) {\n\n\t\t\treturn this.nodeCache[ nodeIndex ];\n\n\t\t}\n\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\t// reserve node's name before its dependencies, so the root has the intended name.\n\t\tconst nodeName = nodeDef.name ? parser.createUniqueName( nodeDef.name ) : '';\n\n\t\tconst pending = [];\n\n\t\tconst meshPromise = parser._invokeOne( function ( ext ) {\n\n\t\t\treturn ext.createNodeMesh && ext.createNodeMesh( nodeIndex );\n\n\t\t} );\n\n\t\tif ( meshPromise ) {\n\n\t\t\tpending.push( meshPromise );\n\n\t\t}\n\n\t\tif ( nodeDef.camera !== undefined ) {\n\n\t\t\tpending.push( parser.getDependency( 'camera', nodeDef.camera ).then( function ( camera ) {\n\n\t\t\t\treturn parser._getNodeRef( parser.cameraCache, nodeDef.camera, camera );\n\n\t\t\t} ) );\n\n\t\t}\n\n\t\tparser._invokeAll( function ( ext ) {\n\n\t\t\treturn ext.createNodeAttachment && ext.createNodeAttachment( nodeIndex );\n\n\t\t} ).forEach( function ( promise ) {\n\n\t\t\tpending.push( promise );\n\n\t\t} );\n\n\t\tthis.nodeCache[ nodeIndex ] = Promise.all( pending ).then( function ( objects ) {\n\n\t\t\tlet node;\n\n\t\t\t// .isBone isn't in glTF spec. See ._markDefs\n\t\t\tif ( nodeDef.isBone === true ) {\n\n\t\t\t\tnode = new Bone();\n\n\t\t\t} else if ( objects.length > 1 ) {\n\n\t\t\t\tnode = new Group();\n\n\t\t\t} else if ( objects.length === 1 ) {\n\n\t\t\t\tnode = objects[ 0 ];\n\n\t\t\t} else {\n\n\t\t\t\tnode = new Object3D();\n\n\t\t\t}\n\n\t\t\tif ( node !== objects[ 0 ] ) {\n\n\t\t\t\tfor ( let i = 0, il = objects.length; i < il; i ++ ) {\n\n\t\t\t\t\tnode.add( objects[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( nodeDef.name ) {\n\n\t\t\t\tnode.userData.name = nodeDef.name;\n\t\t\t\tnode.name = nodeName;\n\n\t\t\t}\n\n\t\t\tassignExtrasToUserData( node, nodeDef );\n\n\t\t\tif ( nodeDef.extensions ) addUnknownExtensionsToUserData( extensions, node, nodeDef );\n\n\t\t\tif ( nodeDef.matrix !== undefined ) {\n\n\t\t\t\tconst matrix = new Matrix4();\n\t\t\t\tmatrix.fromArray( nodeDef.matrix );\n\t\t\t\tnode.applyMatrix4( matrix );\n\n\t\t\t} else {\n\n\t\t\t\tif ( nodeDef.translation !== undefined ) {\n\n\t\t\t\t\tnode.position.fromArray( nodeDef.translation );\n\n\t\t\t\t}\n\n\t\t\t\tif ( nodeDef.rotation !== undefined ) {\n\n\t\t\t\t\tnode.quaternion.fromArray( nodeDef.rotation );\n\n\t\t\t\t}\n\n\t\t\t\tif ( nodeDef.scale !== undefined ) {\n\n\t\t\t\t\tnode.scale.fromArray( nodeDef.scale );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( ! parser.associations.has( node ) ) {\n\n\t\t\t\tparser.associations.set( node, {} );\n\n\t\t\t} else if ( nodeDef.mesh !== undefined && parser.meshCache.refs[ nodeDef.mesh ] > 1 ) {\n\n\t\t\t\tconst mapping = parser.associations.get( node );\n\t\t\t\tparser.associations.set( node, { ...mapping } );\n\n\t\t\t}\n\n\t\t\tparser.associations.get( node ).nodes = nodeIndex;\n\n\t\t\treturn node;\n\n\t\t} );\n\n\t\treturn this.nodeCache[ nodeIndex ];\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#scenes\n\t *\n\t * @private\n\t * @param {number} sceneIndex\n\t * @return {Promise<Group>}\n\t */\n\tloadScene( sceneIndex ) {\n\n\t\tconst extensions = this.extensions;\n\t\tconst sceneDef = this.json.scenes[ sceneIndex ];\n\t\tconst parser = this;\n\n\t\t// Loader returns Group, not Scene.\n\t\t// See: https://github.com/mrdoob/three.js/issues/18342#issuecomment-578981172\n\t\tconst scene = new Group();\n\t\tif ( sceneDef.name ) scene.name = parser.createUniqueName( sceneDef.name );\n\n\t\tassignExtrasToUserData( scene, sceneDef );\n\n\t\tif ( sceneDef.extensions ) addUnknownExtensionsToUserData( extensions, scene, sceneDef );\n\n\t\tconst nodeIds = sceneDef.nodes || [];\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = nodeIds.length; i < il; i ++ ) {\n\n\t\t\tpending.push( parser.getDependency( 'node', nodeIds[ i ] ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending ).then( function ( nodes ) {\n\n\t\t\tfor ( let i = 0, il = nodes.length; i < il; i ++ ) {\n\n\t\t\t\tscene.add( nodes[ i ] );\n\n\t\t\t}\n\n\t\t\t// Removes dangling associations, associations that reference a node that\n\t\t\t// didn't make it into the scene.\n\t\t\tconst reduceAssociations = ( node ) => {\n\n\t\t\t\tconst reducedAssociations = new Map();\n\n\t\t\t\tfor ( const [ key, value ] of parser.associations ) {\n\n\t\t\t\t\tif ( key instanceof Material || key instanceof Texture ) {\n\n\t\t\t\t\t\treducedAssociations.set( key, value );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tnode.traverse( ( node ) => {\n\n\t\t\t\t\tconst mappings = parser.associations.get( node );\n\n\t\t\t\t\tif ( mappings != null ) {\n\n\t\t\t\t\t\treducedAssociations.set( node, mappings );\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\treturn reducedAssociations;\n\n\t\t\t};\n\n\t\t\tparser.associations = reduceAssociations( scene );\n\n\t\t\treturn scene;\n\n\t\t} );\n\n\t}\n\n\t_createAnimationTracks( node, inputAccessor, outputAccessor, sampler, target ) {\n\n\t\tconst tracks = [];\n\n\t\tconst targetName = node.name ? node.name : node.uuid;\n\t\tconst targetNames = [];\n\n\t\tif ( PATH_PROPERTIES[ target.path ] === PATH_PROPERTIES.weights ) {\n\n\t\t\tnode.traverse( function ( object ) {\n\n\t\t\t\tif ( object.morphTargetInfluences ) {\n\n\t\t\t\t\ttargetNames.push( object.name ? object.name : object.uuid );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t} else {\n\n\t\t\ttargetNames.push( targetName );\n\n\t\t}\n\n\t\tlet TypedKeyframeTrack;\n\n\t\tswitch ( PATH_PROPERTIES[ target.path ] ) {\n\n\t\t\tcase PATH_PROPERTIES.weights:\n\n\t\t\t\tTypedKeyframeTrack = NumberKeyframeTrack;\n\t\t\t\tbreak;\n\n\t\t\tcase PATH_PROPERTIES.rotation:\n\n\t\t\t\tTypedKeyframeTrack = QuaternionKeyframeTrack;\n\t\t\t\tbreak;\n\n\t\t\tcase PATH_PROPERTIES.translation:\n\t\t\tcase PATH_PROPERTIES.scale:\n\n\t\t\t\tTypedKeyframeTrack = VectorKeyframeTrack;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tswitch ( outputAccessor.itemSize ) {\n\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\tTypedKeyframeTrack = NumberKeyframeTrack;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2:\n\t\t\t\t\tcase 3:\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tTypedKeyframeTrack = VectorKeyframeTrack;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tconst interpolation = sampler.interpolation !== undefined ? INTERPOLATION[ sampler.interpolation ] : InterpolateLinear;\n\n\n\t\tconst outputArray = this._getArrayFromAccessor( outputAccessor );\n\n\t\tfor ( let j = 0, jl = targetNames.length; j < jl; j ++ ) {\n\n\t\t\tconst track = new TypedKeyframeTrack(\n\t\t\t\ttargetNames[ j ] + '.' + PATH_PROPERTIES[ target.path ],\n\t\t\t\tinputAccessor.array,\n\t\t\t\toutputArray,\n\t\t\t\tinterpolation\n\t\t\t);\n\n\t\t\t// Override interpolation with custom factory method.\n\t\t\tif ( sampler.interpolation === 'CUBICSPLINE' ) {\n\n\t\t\t\tthis._createCubicSplineTrackInterpolant( track );\n\n\t\t\t}\n\n\t\t\ttracks.push( track );\n\n\t\t}\n\n\t\treturn tracks;\n\n\t}\n\n\t_getArrayFromAccessor( accessor ) {\n\n\t\tlet outputArray = accessor.array;\n\n\t\tif ( accessor.normalized ) {\n\n\t\t\tconst scale = getNormalizedComponentScale( outputArray.constructor );\n\t\t\tconst scaled = new Float32Array( outputArray.length );\n\n\t\t\tfor ( let j = 0, jl = outputArray.length; j < jl; j ++ ) {\n\n\t\t\t\tscaled[ j ] = outputArray[ j ] * scale;\n\n\t\t\t}\n\n\t\t\toutputArray = scaled;\n\n\t\t}\n\n\t\treturn outputArray;\n\n\t}\n\n\t_createCubicSplineTrackInterpolant( track ) {\n\n\t\ttrack.createInterpolant = function InterpolantFactoryMethodGLTFCubicSpline( result ) {\n\n\t\t\t// A CUBICSPLINE keyframe in glTF has three output values for each input value,\n\t\t\t// representing inTangent, splineVertex, and outTangent. As a result, track.getValueSize()\n\t\t\t// must be divided by three to get the interpolant's sampleSize argument.\n\n\t\t\tconst interpolantType = ( this instanceof QuaternionKeyframeTrack ) ? GLTFCubicSplineQuaternionInterpolant : GLTFCubicSplineInterpolant;\n\n\t\t\treturn new interpolantType( this.times, this.values, this.getValueSize() / 3, result );\n\n\t\t};\n\n\t\t// Mark as CUBICSPLINE. `track.getInterpolation()` doesn't support custom interpolants.\n\t\ttrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = true;\n\n\t}\n\n}\n\n/**\n *\n * @private\n * @param {BufferGeometry} geometry\n * @param {GLTF.Primitive} primitiveDef\n * @param {GLTFParser} parser\n */\nfunction computeBounds( geometry, primitiveDef, parser ) {\n\n\tconst attributes = primitiveDef.attributes;\n\n\tconst box = new Box3();\n\n\tif ( attributes.POSITION !== undefined ) {\n\n\t\tconst accessor = parser.json.accessors[ attributes.POSITION ];\n\n\t\tconst min = accessor.min;\n\t\tconst max = accessor.max;\n\n\t\t// glTF requires 'min' and 'max', but VRM (which extends glTF) currently ignores that requirement.\n\n\t\tif ( min !== undefined && max !== undefined ) {\n\n\t\t\tbox.set(\n\t\t\t\tnew Vector3( min[ 0 ], min[ 1 ], min[ 2 ] ),\n\t\t\t\tnew Vector3( max[ 0 ], max[ 1 ], max[ 2 ] )\n\t\t\t);\n\n\t\t\tif ( accessor.normalized ) {\n\n\t\t\t\tconst boxScale = getNormalizedComponentScale( WEBGL_COMPONENT_TYPES[ accessor.componentType ] );\n\t\t\t\tbox.min.multiplyScalar( boxScale );\n\t\t\t\tbox.max.multiplyScalar( boxScale );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Missing min/max properties for accessor POSITION.' );\n\n\t\t\treturn;\n\n\t\t}\n\n\t} else {\n\n\t\treturn;\n\n\t}\n\n\tconst targets = primitiveDef.targets;\n\n\tif ( targets !== undefined ) {\n\n\t\tconst maxDisplacement = new Vector3();\n\t\tconst vector = new Vector3();\n\n\t\tfor ( let i = 0, il = targets.length; i < il; i ++ ) {\n\n\t\t\tconst target = targets[ i ];\n\n\t\t\tif ( target.POSITION !== undefined ) {\n\n\t\t\t\tconst accessor = parser.json.accessors[ target.POSITION ];\n\t\t\t\tconst min = accessor.min;\n\t\t\t\tconst max = accessor.max;\n\n\t\t\t\t// glTF requires 'min' and 'max', but VRM (which extends glTF) currently ignores that requirement.\n\n\t\t\t\tif ( min !== undefined && max !== undefined ) {\n\n\t\t\t\t\t// we need to get max of absolute components because target weight is [-1,1]\n\t\t\t\t\tvector.setX( Math.max( Math.abs( min[ 0 ] ), Math.abs( max[ 0 ] ) ) );\n\t\t\t\t\tvector.setY( Math.max( Math.abs( min[ 1 ] ), Math.abs( max[ 1 ] ) ) );\n\t\t\t\t\tvector.setZ( Math.max( Math.abs( min[ 2 ] ), Math.abs( max[ 2 ] ) ) );\n\n\n\t\t\t\t\tif ( accessor.normalized ) {\n\n\t\t\t\t\t\tconst boxScale = getNormalizedComponentScale( WEBGL_COMPONENT_TYPES[ accessor.componentType ] );\n\t\t\t\t\t\tvector.multiplyScalar( boxScale );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Note: this assumes that the sum of all weights is at most 1. This isn't quite correct - it's more conservative\n\t\t\t\t\t// to assume that each target can have a max weight of 1. However, for some use cases - notably, when morph targets\n\t\t\t\t\t// are used to implement key-frame animations and as such only two are active at a time - this results in very large\n\t\t\t\t\t// boxes. So for now we make a box that's sometimes a touch too small but is hopefully mostly of reasonable size.\n\t\t\t\t\tmaxDisplacement.max( vector );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.GLTFLoader: Missing min/max properties for accessor POSITION.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// As per comment above this box isn't conservative, but has a reasonable size for a very large number of morph targets.\n\t\tbox.expandByVector( maxDisplacement );\n\n\t}\n\n\tgeometry.boundingBox = box;\n\n\tconst sphere = new Sphere();\n\n\tbox.getCenter( sphere.center );\n\tsphere.radius = box.min.distanceTo( box.max ) / 2;\n\n\tgeometry.boundingSphere = sphere;\n\n}\n\n/**\n *\n * @private\n * @param {BufferGeometry} geometry\n * @param {GLTF.Primitive} primitiveDef\n * @param {GLTFParser} parser\n * @return {Promise<BufferGeometry>}\n */\nfunction addPrimitiveAttributes( geometry, primitiveDef, parser ) {\n\n\tconst attributes = primitiveDef.attributes;\n\n\tconst pending = [];\n\n\tfunction assignAttributeAccessor( accessorIndex, attributeName ) {\n\n\t\treturn parser.getDependency( 'accessor', accessorIndex )\n\t\t\t.then( function ( accessor ) {\n\n\t\t\t\tgeometry.setAttribute( attributeName, accessor );\n\n\t\t\t} );\n\n\t}\n\n\tfor ( const gltfAttributeName in attributes ) {\n\n\t\tconst threeAttributeName = ATTRIBUTES[ gltfAttributeName ] || gltfAttributeName.toLowerCase();\n\n\t\t// Skip attributes already provided by e.g. Draco extension.\n\t\tif ( threeAttributeName in geometry.attributes ) continue;\n\n\t\tpending.push( assignAttributeAccessor( attributes[ gltfAttributeName ], threeAttributeName ) );\n\n\t}\n\n\tif ( primitiveDef.indices !== undefined && ! geometry.index ) {\n\n\t\tconst accessor = parser.getDependency( 'accessor', primitiveDef.indices ).then( function ( accessor ) {\n\n\t\t\tgeometry.setIndex( accessor );\n\n\t\t} );\n\n\t\tpending.push( accessor );\n\n\t}\n\n\tif ( ColorManagement.workingColorSpace !== LinearSRGBColorSpace && 'COLOR_0' in attributes ) {\n\n\t\tconsole.warn( `THREE.GLTFLoader: Converting vertex colors from \"srgb-linear\" to \"${ColorManagement.workingColorSpace}\" not supported.` );\n\n\t}\n\n\tassignExtrasToUserData( geometry, primitiveDef );\n\n\tcomputeBounds( geometry, primitiveDef, parser );\n\n\treturn Promise.all( pending ).then( function () {\n\n\t\treturn primitiveDef.targets !== undefined\n\t\t\t? addMorphTargets( geometry, primitiveDef.targets, parser )\n\t\t\t: geometry;\n\n\t} );\n\n}\n\n/**\n * Loader result of `GLTFLoader`.\n *\n * @typedef {Object} GLTFLoader~LoadObject\n * @property {Array<AnimationClip>} animations - An array of animation clips.\n * @property {Object} asset - Meta data about the loaded asset.\n * @property {Array<Camera>} cameras - An array of cameras.\n * @property {GLTFParser} parser - A reference to the internal parser.\n * @property {Group} scene - The default scene.\n * @property {Array<Group>} scenes - glTF assets might define multiple scenes.\n * @property {Object} userData - Additional data.\n **/\n\nexport { GLTFLoader };\n"],"names":["GLTFLoader","Loader","constructor","manager","super","this","dracoLoader","ktx2Loader","meshoptDecoder","pluginCallbacks","register","parser","GLTFMaterialsClearcoatExtension","GLTFMaterialsDispersionExtension","GLTFTextureBasisUExtension","GLTFTextureWebPExtension","GLTFTextureAVIFExtension","GLTFMaterialsSheenExtension","GLTFMaterialsTransmissionExtension","GLTFMaterialsVolumeExtension","GLTFMaterialsIorExtension","GLTFMaterialsEmissiveStrengthExtension","GLTFMaterialsSpecularExtension","GLTFMaterialsIridescenceExtension","GLTFMaterialsAnisotropyExtension","GLTFMaterialsBumpExtension","GLTFLightsExtension","GLTFMeshoptCompression","GLTFMeshGpuInstancing","load","url","onLoad","onProgress","onError","scope","resourcePath","path","relativeUrl","LoaderUtils","extractUrlBase","resolveURL","itemStart","_onError","e","console","error","itemError","itemEnd","loader","FileLoader","setPath","setResponseType","setRequestHeader","requestHeader","setWithCredentials","withCredentials","data","parse","gltf","setDRACOLoader","setKTX2Loader","setMeshoptDecoder","callback","indexOf","push","unregister","splice","json","extensions","plugins","textDecoder","TextDecoder","JSON","ArrayBuffer","decode","Uint8Array","BINARY_EXTENSION_HEADER_MAGIC","EXTENSIONS","KHR_BINARY_GLTF","GLTFBinaryExtension","content","undefined","asset","version","Error","GLTFParser","crossOrigin","fileLoader","i","length","plugin","name","extensionsUsed","extensionName","extensionsRequired","KHR_MATERIALS_UNLIT","GLTFMaterialsUnlitExtension","KHR_DRACO_MESH_COMPRESSION","GLTFDracoMeshCompressionExtension","KHR_TEXTURE_TRANSFORM","GLTFTextureTransformExtension","KHR_MESH_QUANTIZATION","GLTFMeshQuantizationExtension","warn","setExtensions","setPlugins","parseAsync","Promise","resolve","reject","GLTFRegistry","objects","get","key","add","object","remove","removeAll","KHR_LIGHTS_PUNCTUAL","KHR_MATERIALS_CLEARCOAT","KHR_MATERIALS_DISPERSION","KHR_MATERIALS_IOR","KHR_MATERIALS_SHEEN","KHR_MATERIALS_SPECULAR","KHR_MATERIALS_TRANSMISSION","KHR_MATERIALS_IRIDESCENCE","KHR_MATERIALS_ANISOTROPY","KHR_MATERIALS_VOLUME","KHR_TEXTURE_BASISU","KHR_MATERIALS_EMISSIVE_STRENGTH","EXT_MATERIALS_BUMP","EXT_TEXTURE_WEBP","EXT_TEXTURE_AVIF","EXT_MESHOPT_COMPRESSION","EXT_MESH_GPU_INSTANCING","cache","refs","uses","_markDefs","nodeDefs","nodes","nodeIndex","nodeLength","nodeDef","light","_addNodeRef","_loadLight","lightIndex","cacheKey","dependency","lightDef","lights","lightNode","color","Color","setRGB","LinearSRGBColorSpace","range","type","DirectionalLight","target","position","set","PointLight","distance","SpotLight","spot","innerConeAngle","outerConeAngle","Math","PI","angle","penumbra","assignExtrasToUserData","intensity","createUniqueName","getDependency","index","createNodeAttachment","self","then","_getNodeRef","getMaterialType","MeshBasicMaterial","extendParams","materialParams","materialDef","pending","opacity","metallicRoughness","pbrMetallicRoughness","Array","isArray","baseColorFactor","array","baseColorTexture","assignTexture","SRGBColorSpace","all","extendMaterialParams","materialIndex","materials","emissiveStrength","emissiveIntensity","MeshPhysicalMaterial","extension","clearcoatFactor","clearcoat","clearcoatTexture","clearcoatRoughnessFactor","clearcoatRoughness","clearcoatRoughnessTexture","clearcoatNormalTexture","scale","clearcoatNormalScale","Vector2","dispersion","iridescenceFactor","iridescence","iridescenceTexture","iridescenceIor","iridescenceIOR","iridescenceThicknessRange","iridescenceThicknessMinimum","iridescenceThicknessMaximum","iridescenceThicknessTexture","sheenColor","sheenRoughness","sheen","sheenColorFactor","colorFactor","sheenRoughnessFactor","sheenColorTexture","sheenRoughnessTexture","transmissionFactor","transmission","transmissionTexture","thickness","thicknessFactor","thicknessTexture","attenuationDistance","Infinity","colorArray","attenuationColor","ior","specularIntensity","specularFactor","specularTexture","specularColorFactor","specularColor","specularColorTexture","bumpScale","bumpFactor","bumpTexture","anisotropyStrength","anisotropy","anisotropyRotation","anisotropyTexture","loadTexture","textureIndex","textureDef","textures","options","loadTextureImage","source","images","textureLoader","uri","handler","getHandler","loadBufferView","bufferView","bufferViews","extensionDef","buffer","decoder","supported","res","count","stride","byteStride","byteOffset","byteLength","decodeGltfBufferAsync","mode","filter","ready","result","decodeGltfBuffer","createNodeMesh","mesh","meshDef","meshes","primitive","primitives","WEBGL_CONSTANTS","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","attributesDef","attributes","accessor","results","nodeObject","pop","isGroup","children","instancedMeshes","m","Matrix4","p","Vector3","q","Quaternion","s","instancedMesh","InstancedMesh","geometry","material","TRANSLATION","fromBufferAttribute","ROTATION","SCALE","setMatrixAt","compose","attributeName","attr","instanceColor","InstancedBufferAttribute","itemSize","normalized","setAttribute","Object3D","prototype","copy","call","assignFinalMaterial","clear","body","headerView","DataView","header","magic","slice","getUint32","chunkContentsLength","chunkView","chunkIndex","chunkLength","chunkType","contentArray","preload","decodePrimitive","bufferViewIndex","gltfAttributeMap","threeAttributeMap","attributeNormalizedMap","attributeTypeMap","threeAttributeName","ATTRIBUTES","toLowerCase","accessorDef","accessors","WEBGL_COMPONENT_TYPES","componentType","decodeDracoFile","extendTexture","texture","transform","texCoord","channel","offset","rotation","clone","fromArray","repeat","needsUpdate","GLTFCubicSplineInterpolant","Interpolant","parameterPositions","sampleValues","sampleSize","resultBuffer","copySampleValue_","values","valueSize","interpolate_","i1","t0","t","t1","stride2","stride3","td","pp","ppp","offset1","offset0","s2","s3","s0","s1","_quaternion","GLTFCubicSplineQuaternionInterpolant","normalize","toArray","POINTS","LINES","LINE_LOOP","LINE_STRIP","Int8Array","Int16Array","Uint16Array","Uint32Array","Float32Array","WEBGL_FILTERS","NearestFilter","LinearFilter","NearestMipmapNearestFilter","LinearMipmapNearestFilter","NearestMipmapLinearFilter","LinearMipmapLinearFilter","WEBGL_WRAPPINGS","ClampToEdgeWrapping","MirroredRepeatWrapping","RepeatWrapping","WEBGL_TYPE_SIZES","SCALAR","VEC2","VEC3","VEC4","MAT2","MAT3","MAT4","POSITION","NORMAL","TANGENT","TEXCOORD_0","TEXCOORD_1","TEXCOORD_2","TEXCOORD_3","COLOR_0","WEIGHTS_0","JOINTS_0","PATH_PROPERTIES","translation","weights","INTERPOLATION","CUBICSPLINE","LINEAR","InterpolateLinear","STEP","InterpolateDiscrete","createDefaultMaterial","MeshStandardMaterial","emissive","metalness","roughness","transparent","depthTest","side","FrontSide","addUnknownExtensionsToUserData","knownExtensions","objectDef","userData","gltfExtensions","gltfDef","extras","Object","assign","updateMorphTargets","il","morphTargetInfluences","targetNames","morphTargetDictionary","createPrimitiveKey","primitiveDef","geometryKey","dracoExtension","indices","createAttributesKey","targets","attributesKey","keys","sort","getNormalizedComponentScale","_identityMatrix","associations","Map","primitiveCache","nodeCache","meshCache","cameraCache","lightCache","sourceCache","textureCache","nodeNamesUsed","isSafari","safariVersion","isFirefox","firefoxVersion","navigator","userAgent","test","safariMatch","match","parseInt","createImageBitmap","TextureLoader","ImageBitmapLoader","setCrossOrigin","_invokeAll","ext","beforeRoot","getDependencies","dependencies","scene","scenes","animations","cameras","afterRoot","updateMatrixWorld","catch","skinDefs","skins","meshDefs","skinIndex","skinLength","joints","isBone","skin","isSkinnedMesh","camera","ref","updateMappings","original","mappings","child","entries","_invokeOne","func","unshift","loadScene","loadNode","loadMesh","loadAccessor","loadBuffer","loadMaterial","loadSkin","loadAnimation","loadCamera","map","def","bufferIndex","bufferDef","buffers","bufferViewDef","accessorIndex","sparse","TypedArray","BufferAttribute","pendingBufferViews","elementBytes","BYTES_PER_ELEMENT","bufferAttribute","ibSlice","floor","ibCacheKey","ib","InterleavedBuffer","InterleavedBufferAttribute","byteOffsetValues","sparseIndices","TypedArrayIndices","sparseValues","setX","setY","setZ","setW","sourceIndex","sourceDef","sampler","promise","loadImageSource","flipY","startsWith","samplers","magFilter","minFilter","wrapS","wrapT","generateMipmaps","isCompressedTexture","URL","webkitURL","sourceURI","isObjectURL","blob","Blob","mimeType","createObjectURL","isImageBitmapLoader","imageBitmap","Texture","revokeObjectURL","search","mapName","mapDef","colorSpace","gltfReference","useDerivativeTangents","tangent","useVertexColors","useFlatShading","normal","isPoints","uuid","pointsMaterial","PointsMaterial","Material","sizeAttenuation","isLine","lineMaterial","LineBasicMaterial","cachedMaterial","vertexColors","flatShading","normalScale","y","materialType","kmuExtension","metallicFactor","roughnessFactor","metallicRoughnessTexture","doubleSided","DoubleSide","alphaMode","depthWrite","alphaTest","alphaCutoff","normalTexture","occlusionTexture","strength","aoMapIntensity","emissiveFactor","emissiveTexture","originalName","sanitizedName","PropertyBinding","sanitizeNodeName","loadGeometries","createDracoPrimitive","addPrimitiveAttributes","cached","geometryPromise","BufferGeometry","meshIndex","geometries","SkinnedMesh","Mesh","normalizeSkinWeights","toTrianglesDrawMode","TriangleStripDrawMode","TriangleFanDrawMode","LineSegments","Line","LineLoop","Points","morphAttributes","group","Group","cameraIndex","cameraDef","params","PerspectiveCamera","MathUtils","radToDeg","yfov","aspectRatio","znear","zfar","OrthographicCamera","xmag","ymag","skinDef","_loadNodeShallow","inverseBindMatrices","jointNodes","bones","boneInverses","jointNode","mat","Skeleton","animationIndex","animationDef","animationName","pendingNodes","pendingInputAccessors","pendingOutputAccessors","pendingSamplers","pendingTargets","channels","input","parameters","output","node","inputAccessors","outputAccessors","tracks","inputAccessor","outputAccessor","updateMatrix","createdTracks","_createAnimationTracks","k","animation","AnimationClip","traverse","o","isMesh","nodePending","childPending","childrenDef","skeletonPending","skeleton","bind","nodeName","meshPromise","forEach","Bone","matrix","applyMatrix4","quaternion","has","mapping","sceneIndex","sceneDef","nodeIds","reducedAssociations","value","reduceAssociations","targetName","TypedKeyframeTrack","NumberKeyframeTrack","QuaternionKeyframeTrack","VectorKeyframeTrack","interpolation","outputArray","_getArrayFromAccessor","j","jl","track","_createCubicSplineTrackInterpolant","scaled","createInterpolant","times","getValueSize","isInterpolantFactoryMethodGLTFCubicSpline","assignAttributeAccessor","gltfAttributeName","setIndex","ColorManagement","workingColorSpace","box","Box3","min","max","boxScale","multiplyScalar","maxDisplacement","vector","abs","expandByVector","boundingBox","sphere","Sphere","getCenter","center","radius","distanceTo","boundingSphere","computeBounds","hasMorphPosition","hasMorphNormal","hasMorphColor","pendingPositionAccessors","pendingNormalAccessors","pendingColorAccessors","pendingAccessor","morphNormals","morphColors","morphTargetsRelative","addMorphTargets"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"../../../build/three.module.js";import{DataTextureLoader,HalfFloatType,FloatType,DataUtils,LinearSRGBColorSpace,LinearFilter}from"../../../build/three.core.js";class HDRLoader extends DataTextureLoader{constructor(manager){super(manager),this.type=HalfFloatType}parse(buffer){const rgbe_error=function(rgbe_error_code,msg){switch(rgbe_error_code){case 1:throw new Error("THREE.HDRLoader: Read Error: "+(msg||""));case 2:throw new Error("THREE.HDRLoader: Write Error: "+(msg||""));case 3:throw new Error("THREE.HDRLoader: Bad File Format: "+(msg||""));default:throw new Error("THREE.HDRLoader: Memory Error: "+(msg||""))}},fgets=function(buffer,lineLimit,consume){lineLimit=lineLimit||1024;let p=buffer.pos,i=-1,len=0,s="",chunk=String.fromCharCode.apply(null,new Uint16Array(buffer.subarray(p,p+128)));for(;0>(i=chunk.indexOf("\n"))&&len<lineLimit&&p<buffer.byteLength;)s+=chunk,len+=chunk.length,p+=128,chunk+=String.fromCharCode.apply(null,new Uint16Array(buffer.subarray(p,p+128)));return-1<i&&(buffer.pos+=len+i+1,s+chunk.slice(0,i))},RGBEByteToRGBFloat=function(sourceArray,sourceOffset,destArray,destOffset){const scale=Math.pow(2,sourceArray[sourceOffset+3]-128)/255;destArray[destOffset+0]=sourceArray[sourceOffset+0]*scale,destArray[destOffset+1]=sourceArray[sourceOffset+1]*scale,destArray[destOffset+2]=sourceArray[sourceOffset+2]*scale,destArray[destOffset+3]=1},RGBEByteToRGBHalf=function(sourceArray,sourceOffset,destArray,destOffset){const scale=Math.pow(2,sourceArray[sourceOffset+3]-128)/255;destArray[destOffset+0]=DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset+0]*scale,65504)),destArray[destOffset+1]=DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset+1]*scale,65504)),destArray[destOffset+2]=DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset+2]*scale,65504)),destArray[destOffset+3]=DataUtils.toHalfFloat(1)},byteArray=new Uint8Array(buffer);byteArray.pos=0;const rgbe_header_info=function(buffer){const gamma_re=/^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/,exposure_re=/^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/,format_re=/^\s*FORMAT=(\S+)\s*$/,dimensions_re=/^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,header={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0};let line,match;for((buffer.pos>=buffer.byteLength||!(line=fgets(buffer)))&&rgbe_error(1,"no header found"),(match=line.match(/^#\?(\S+)/))||rgbe_error(3,"bad initial token"),header.valid|=1,header.programtype=match[1],header.string+=line+"\n";line=fgets(buffer),!1!==line;)if(header.string+=line+"\n","#"!==line.charAt(0)){if((match=line.match(gamma_re))&&(header.gamma=parseFloat(match[1])),(match=line.match(exposure_re))&&(header.exposure=parseFloat(match[1])),(match=line.match(format_re))&&(header.valid|=2,header.format=match[1]),(match=line.match(dimensions_re))&&(header.valid|=4,header.height=parseInt(match[1],10),header.width=parseInt(match[2],10)),2&header.valid&&4&header.valid)break}else header.comments+=line+"\n";return 2&header.valid||rgbe_error(3,"missing format specifier"),4&header.valid||rgbe_error(3,"missing image size specifier"),header}(byteArray),w=rgbe_header_info.width,h=rgbe_header_info.height,image_rgba_data=function(buffer,w,h){const scanline_width=w;if(scanline_width<8||scanline_width>32767||2!==buffer[0]||2!==buffer[1]||128&buffer[2])return new Uint8Array(buffer);scanline_width!==(buffer[2]<<8|buffer[3])&&rgbe_error(3,"wrong scanline width");const data_rgba=new Uint8Array(4*w*h);data_rgba.length||rgbe_error(4,"unable to allocate buffer space");let offset=0,pos=0;const ptr_end=4*scanline_width,rgbeStart=new Uint8Array(4),scanline_buffer=new Uint8Array(ptr_end);let num_scanlines=h;for(;num_scanlines>0&&pos<buffer.byteLength;){pos+4>buffer.byteLength&&rgbe_error(1),rgbeStart[0]=buffer[pos++],rgbeStart[1]=buffer[pos++],rgbeStart[2]=buffer[pos++],rgbeStart[3]=buffer[pos++],2==rgbeStart[0]&&2==rgbeStart[1]&&(rgbeStart[2]<<8|rgbeStart[3])==scanline_width||rgbe_error(3,"bad rgbe scanline format");let count,ptr=0;for(;ptr<ptr_end&&pos<buffer.byteLength;){count=buffer[pos++];const isEncodedRun=count>128;if(isEncodedRun&&(count-=128),(0===count||ptr+count>ptr_end)&&rgbe_error(3,"bad scanline data"),isEncodedRun){const byteValue=buffer[pos++];for(let i=0;i<count;i++)scanline_buffer[ptr++]=byteValue}else scanline_buffer.set(buffer.subarray(pos,pos+count),ptr),ptr+=count,pos+=count}const l=scanline_width;for(let i=0;i<l;i++){let off=0;data_rgba[offset]=scanline_buffer[i+off],off+=scanline_width,data_rgba[offset+1]=scanline_buffer[i+off],off+=scanline_width,data_rgba[offset+2]=scanline_buffer[i+off],off+=scanline_width,data_rgba[offset+3]=scanline_buffer[i+off],offset+=4}num_scanlines--}return data_rgba}(byteArray.subarray(byteArray.pos),w,h);let data,type,numElements;switch(this.type){case FloatType:numElements=image_rgba_data.length/4;const floatArray=new Float32Array(4*numElements);for(let j=0;j<numElements;j++)RGBEByteToRGBFloat(image_rgba_data,4*j,floatArray,4*j);data=floatArray,type=FloatType;break;case HalfFloatType:numElements=image_rgba_data.length/4;const halfArray=new Uint16Array(4*numElements);for(let j=0;j<numElements;j++)RGBEByteToRGBHalf(image_rgba_data,4*j,halfArray,4*j);data=halfArray,type=HalfFloatType;break;default:throw new Error("THREE.HDRLoader: Unsupported type: "+this.type)}return{width:w,height:h,data:data,header:rgbe_header_info.string,gamma:rgbe_header_info.gamma,exposure:rgbe_header_info.exposure,type:type}}setDataType(value){return this.type=value,this}load(url,onLoad,onProgress,onError){return super.load(url,function(texture,texData){switch(texture.type){case FloatType:case HalfFloatType:texture.colorSpace=LinearSRGBColorSpace,texture.minFilter=LinearFilter,texture.magFilter=LinearFilter,texture.generateMipmaps=!1,texture.flipY=!0}onLoad&&onLoad(texture,texData)},onProgress,onError)}}export{HDRLoader};
|
|
2
|
-
//# sourceMappingURL=HDRLoader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HDRLoader.js","sources":["../../../../../../../../../../../../../node_modules/three/examples/jsm/loaders/HDRLoader.js"],"sourcesContent":["import {\n\tDataTextureLoader,\n\tDataUtils,\n\tFloatType,\n\tHalfFloatType,\n\tLinearFilter,\n\tLinearSRGBColorSpace\n} from 'three';\n\n/**\n * A loader for the RGBE HDR texture format.\n *\n * ```js\n * const loader = new HDRLoader();\n * const envMap = await loader.loadAsync( 'textures/equirectangular/blouberg_sunrise_2_1k.hdr' );\n * envMap.mapping = THREE.EquirectangularReflectionMapping;\n *\n * scene.environment = envMap;\n * ```\n *\n * @augments DataTextureLoader\n * @three_import import { HDRLoader } from 'three/addons/loaders/HDRLoader.js';\n */\nclass HDRLoader extends DataTextureLoader {\n\n\t/**\n * Constructs a new RGBE/HDR loader.\n *\n * @param {LoadingManager} [manager] - The loading manager.\n */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\t/**\n * The texture type.\n *\n * @type {(HalfFloatType|FloatType)}\n * @default HalfFloatType\n */\n\t\tthis.type = HalfFloatType;\n\n\t}\n\n\t/**\n * Parses the given RGBE texture data.\n *\n * @param {ArrayBuffer} buffer - The raw texture data.\n * @return {DataTextureLoader~TexData} An object representing the parsed texture data.\n */\n\tparse( buffer ) {\n\n\t\t// adapted from http://www.graphics.cornell.edu/~bjw/rgbe.html\n\n\t\tconst\n\t\t\t/* default error routine. change this to change error handling */\n\t\t\trgbe_read_error = 1,\n\t\t\trgbe_write_error = 2,\n\t\t\trgbe_format_error = 3,\n\t\t\trgbe_memory_error = 4,\n\t\t\trgbe_error = function ( rgbe_error_code, msg ) {\n\n\t\t\t\tswitch ( rgbe_error_code ) {\n\n\t\t\t\t\tcase rgbe_read_error: throw new Error( 'THREE.HDRLoader: Read Error: ' + ( msg || '' ) );\n\t\t\t\t\tcase rgbe_write_error: throw new Error( 'THREE.HDRLoader: Write Error: ' + ( msg || '' ) );\n\t\t\t\t\tcase rgbe_format_error: throw new Error( 'THREE.HDRLoader: Bad File Format: ' + ( msg || '' ) );\n\t\t\t\t\tdefault:\n\t\t\t\t\tcase rgbe_memory_error: throw new Error( 'THREE.HDRLoader: Memory Error: ' + ( msg || '' ) );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\t/* offsets to red, green, and blue components in a data (float) pixel */\n\t\t\t//RGBE_DATA_RED = 0,\n\t\t\t//RGBE_DATA_GREEN = 1,\n\t\t\t//RGBE_DATA_BLUE = 2,\n\n\t\t\t/* number of floats per pixel, use 4 since stored in rgba image format */\n\t\t\t//RGBE_DATA_SIZE = 4,\n\n\t\t\t/* flags indicating which fields in an rgbe_header_info are valid */\n\t\t\tRGBE_VALID_PROGRAMTYPE = 1,\n\t\t\tRGBE_VALID_FORMAT = 2,\n\t\t\tRGBE_VALID_DIMENSIONS = 4,\n\n\t\t\tNEWLINE = '\\n',\n\n\t\t\tfgets = function ( buffer, lineLimit, consume ) {\n\n\t\t\t\tconst chunkSize = 128;\n\n\t\t\t\tlineLimit = ! lineLimit ? 1024 : lineLimit;\n\t\t\t\tlet p = buffer.pos,\n\t\t\t\t\ti = - 1, len = 0, s = '',\n\t\t\t\t\tchunk = String.fromCharCode.apply( null, new Uint16Array( buffer.subarray( p, p + chunkSize ) ) );\n\n\t\t\t\twhile ( ( 0 > ( i = chunk.indexOf( NEWLINE ) ) ) && ( len < lineLimit ) && ( p < buffer.byteLength ) ) {\n\n\t\t\t\t\ts += chunk; len += chunk.length;\n\t\t\t\t\tp += chunkSize;\n\t\t\t\t\tchunk += String.fromCharCode.apply( null, new Uint16Array( buffer.subarray( p, p + chunkSize ) ) );\n\n\t\t\t\t}\n\n\t\t\t\tif ( - 1 < i ) {\n\n\t\t\t\t\t/*for (i=l-1; i>=0; i--) {\n byteCode = m.charCodeAt(i);\n if (byteCode > 0x7f && byteCode <= 0x7ff) byteLen++;\n else if (byteCode > 0x7ff && byteCode <= 0xffff) byteLen += 2;\n if (byteCode >= 0xDC00 && byteCode <= 0xDFFF) i--; //trail surrogate\n }*/\n\t\t\t\t\tif ( false !== consume ) buffer.pos += len + i + 1;\n\t\t\t\t\treturn s + chunk.slice( 0, i );\n\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\n\t\t\t},\n\n\t\t\t/* minimal header reading. modify if you want to parse more information */\n\t\t\tRGBE_ReadHeader = function ( buffer ) {\n\n\n\t\t\t\t// regexes to parse header info fields\n\t\t\t\tconst magic_token_re = /^#\\?(\\S+)/,\n\t\t\t\t\tgamma_re = /^\\s*GAMMA\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/,\n\t\t\t\t\texposure_re = /^\\s*EXPOSURE\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/,\n\t\t\t\t\tformat_re = /^\\s*FORMAT=(\\S+)\\s*$/,\n\t\t\t\t\tdimensions_re = /^\\s*\\-Y\\s+(\\d+)\\s+\\+X\\s+(\\d+)\\s*$/,\n\n\t\t\t\t\t// RGBE format header struct\n\t\t\t\t\theader = {\n\n\t\t\t\t\t\tvalid: 0, /* indicate which fields are valid */\n\n\t\t\t\t\t\tstring: '', /* the actual header string */\n\n\t\t\t\t\t\tcomments: '', /* comments found in header */\n\n\t\t\t\t\t\tprogramtype: 'RGBE', /* listed at beginning of file to identify it after \"#?\". defaults to \"RGBE\" */\n\n\t\t\t\t\t\tformat: '', /* RGBE format, default 32-bit_rle_rgbe */\n\n\t\t\t\t\t\tgamma: 1.0, /* image has already been gamma corrected with given gamma. defaults to 1.0 (no correction) */\n\n\t\t\t\t\t\texposure: 1.0, /* a value of 1.0 in an image corresponds to <exposure> watts/steradian/m^2. defaults to 1.0 */\n\n\t\t\t\t\t\twidth: 0, height: 0 /* image dimensions, width/height */\n\n\t\t\t\t\t};\n\n\t\t\t\tlet line, match;\n\n\t\t\t\tif ( buffer.pos >= buffer.byteLength || ! ( line = fgets( buffer ) ) ) {\n\n\t\t\t\t\trgbe_error( rgbe_read_error, 'no header found' );\n\n\t\t\t\t}\n\n\t\t\t\t/* if you want to require the magic token then uncomment the next line */\n\t\t\t\tif ( ! ( match = line.match( magic_token_re ) ) ) {\n\n\t\t\t\t\trgbe_error( rgbe_format_error, 'bad initial token' );\n\n\t\t\t\t}\n\n\t\t\t\theader.valid |= RGBE_VALID_PROGRAMTYPE;\n\t\t\t\theader.programtype = match[ 1 ];\n\t\t\t\theader.string += line + '\\n';\n\n\t\t\t\twhile ( true ) {\n\n\t\t\t\t\tline = fgets( buffer );\n\t\t\t\t\tif ( false === line ) break;\n\t\t\t\t\theader.string += line + '\\n';\n\n\t\t\t\t\tif ( '#' === line.charAt( 0 ) ) {\n\n\t\t\t\t\t\theader.comments += line + '\\n';\n\t\t\t\t\t\tcontinue; // comment line\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( match = line.match( gamma_re ) ) {\n\n\t\t\t\t\t\theader.gamma = parseFloat( match[ 1 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( match = line.match( exposure_re ) ) {\n\n\t\t\t\t\t\theader.exposure = parseFloat( match[ 1 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( match = line.match( format_re ) ) {\n\n\t\t\t\t\t\theader.valid |= RGBE_VALID_FORMAT;\n\t\t\t\t\t\theader.format = match[ 1 ];//'32-bit_rle_rgbe';\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( match = line.match( dimensions_re ) ) {\n\n\t\t\t\t\t\theader.valid |= RGBE_VALID_DIMENSIONS;\n\t\t\t\t\t\theader.height = parseInt( match[ 1 ], 10 );\n\t\t\t\t\t\theader.width = parseInt( match[ 2 ], 10 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ( header.valid & RGBE_VALID_FORMAT ) && ( header.valid & RGBE_VALID_DIMENSIONS ) ) break;\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! ( header.valid & RGBE_VALID_FORMAT ) ) {\n\n\t\t\t\t\trgbe_error( rgbe_format_error, 'missing format specifier' );\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! ( header.valid & RGBE_VALID_DIMENSIONS ) ) {\n\n\t\t\t\t\trgbe_error( rgbe_format_error, 'missing image size specifier' );\n\n\t\t\t\t}\n\n\t\t\t\treturn header;\n\n\t\t\t},\n\n\t\t\tRGBE_ReadPixels_RLE = function ( buffer, w, h ) {\n\n\t\t\t\tconst scanline_width = w;\n\n\t\t\t\tif (\n\t\t\t\t// run length encoding is not allowed so read flat\n\t\t\t\t\t( ( scanline_width < 8 ) || ( scanline_width > 0x7fff ) ) ||\n // this file is not run length encoded\n ( ( 2 !== buffer[ 0 ] ) || ( 2 !== buffer[ 1 ] ) || ( buffer[ 2 ] & 0x80 ) )\n\t\t\t\t) {\n\n\t\t\t\t\t// return the flat buffer\n\t\t\t\t\treturn new Uint8Array( buffer );\n\n\t\t\t\t}\n\n\t\t\t\tif ( scanline_width !== ( ( buffer[ 2 ] << 8 ) | buffer[ 3 ] ) ) {\n\n\t\t\t\t\trgbe_error( rgbe_format_error, 'wrong scanline width' );\n\n\t\t\t\t}\n\n\t\t\t\tconst data_rgba = new Uint8Array( 4 * w * h );\n\n\t\t\t\tif ( ! data_rgba.length ) {\n\n\t\t\t\t\trgbe_error( rgbe_memory_error, 'unable to allocate buffer space' );\n\n\t\t\t\t}\n\n\t\t\t\tlet offset = 0, pos = 0;\n\n\t\t\t\tconst ptr_end = 4 * scanline_width;\n\t\t\t\tconst rgbeStart = new Uint8Array( 4 );\n\t\t\t\tconst scanline_buffer = new Uint8Array( ptr_end );\n\t\t\t\tlet num_scanlines = h;\n\n\t\t\t\t// read in each successive scanline\n\t\t\t\twhile ( ( num_scanlines > 0 ) && ( pos < buffer.byteLength ) ) {\n\n\t\t\t\t\tif ( pos + 4 > buffer.byteLength ) {\n\n\t\t\t\t\t\trgbe_error( rgbe_read_error );\n\n\t\t\t\t\t}\n\n\t\t\t\t\trgbeStart[ 0 ] = buffer[ pos ++ ];\n\t\t\t\t\trgbeStart[ 1 ] = buffer[ pos ++ ];\n\t\t\t\t\trgbeStart[ 2 ] = buffer[ pos ++ ];\n\t\t\t\t\trgbeStart[ 3 ] = buffer[ pos ++ ];\n\n\t\t\t\t\tif ( ( 2 != rgbeStart[ 0 ] ) || ( 2 != rgbeStart[ 1 ] ) || ( ( ( rgbeStart[ 2 ] << 8 ) | rgbeStart[ 3 ] ) != scanline_width ) ) {\n\n\t\t\t\t\t\trgbe_error( rgbe_format_error, 'bad rgbe scanline format' );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// read each of the four channels for the scanline into the buffer\n\t\t\t\t\t// first red, then green, then blue, then exponent\n\t\t\t\t\tlet ptr = 0, count;\n\n\t\t\t\t\twhile ( ( ptr < ptr_end ) && ( pos < buffer.byteLength ) ) {\n\n\t\t\t\t\t\tcount = buffer[ pos ++ ];\n\t\t\t\t\t\tconst isEncodedRun = count > 128;\n\t\t\t\t\t\tif ( isEncodedRun ) count -= 128;\n\n\t\t\t\t\t\tif ( ( 0 === count ) || ( ptr + count > ptr_end ) ) {\n\n\t\t\t\t\t\t\trgbe_error( rgbe_format_error, 'bad scanline data' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( isEncodedRun ) {\n\n\t\t\t\t\t\t\t// a (encoded) run of the same value\n\t\t\t\t\t\t\tconst byteValue = buffer[ pos ++ ];\n\t\t\t\t\t\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\t\t\t\t\t\tscanline_buffer[ ptr ++ ] = byteValue;\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t//ptr += count;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// a literal-run\n\t\t\t\t\t\t\tscanline_buffer.set( buffer.subarray( pos, pos + count ), ptr );\n\t\t\t\t\t\t\tptr += count; pos += count;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\n\t\t\t\t\t// now convert data from buffer into rgba\n\t\t\t\t\t// first red, then green, then blue, then exponent (alpha)\n\t\t\t\t\tconst l = scanline_width; //scanline_buffer.byteLength;\n\t\t\t\t\tfor ( let i = 0; i < l; i ++ ) {\n\n\t\t\t\t\t\tlet off = 0;\n\t\t\t\t\t\tdata_rgba[ offset ] = scanline_buffer[ i + off ];\n\t\t\t\t\t\toff += scanline_width; //1;\n\t\t\t\t\t\tdata_rgba[ offset + 1 ] = scanline_buffer[ i + off ];\n\t\t\t\t\t\toff += scanline_width; //1;\n\t\t\t\t\t\tdata_rgba[ offset + 2 ] = scanline_buffer[ i + off ];\n\t\t\t\t\t\toff += scanline_width; //1;\n\t\t\t\t\t\tdata_rgba[ offset + 3 ] = scanline_buffer[ i + off ];\n\t\t\t\t\t\toffset += 4;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tnum_scanlines --;\n\n\t\t\t\t}\n\n\t\t\t\treturn data_rgba;\n\n\t\t\t};\n\n\t\tconst RGBEByteToRGBFloat = function ( sourceArray, sourceOffset, destArray, destOffset ) {\n\n\t\t\tconst e = sourceArray[ sourceOffset + 3 ];\n\t\t\tconst scale = Math.pow( 2.0, e - 128.0 ) / 255.0;\n\n\t\t\tdestArray[ destOffset + 0 ] = sourceArray[ sourceOffset + 0 ] * scale;\n\t\t\tdestArray[ destOffset + 1 ] = sourceArray[ sourceOffset + 1 ] * scale;\n\t\t\tdestArray[ destOffset + 2 ] = sourceArray[ sourceOffset + 2 ] * scale;\n\t\t\tdestArray[ destOffset + 3 ] = 1;\n\n\t\t};\n\n\t\tconst RGBEByteToRGBHalf = function ( sourceArray, sourceOffset, destArray, destOffset ) {\n\n\t\t\tconst e = sourceArray[ sourceOffset + 3 ];\n\t\t\tconst scale = Math.pow( 2.0, e - 128.0 ) / 255.0;\n\n\t\t\t// clamping to 65504, the maximum representable value in float16\n\t\t\tdestArray[ destOffset + 0 ] = DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 0 ] * scale, 65504 ) );\n\t\t\tdestArray[ destOffset + 1 ] = DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 1 ] * scale, 65504 ) );\n\t\t\tdestArray[ destOffset + 2 ] = DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 2 ] * scale, 65504 ) );\n\t\t\tdestArray[ destOffset + 3 ] = DataUtils.toHalfFloat( 1 );\n\n\t\t};\n\n\t\tconst byteArray = new Uint8Array( buffer );\n\t\tbyteArray.pos = 0;\n\t\tconst rgbe_header_info = RGBE_ReadHeader( byteArray );\n\n\t\tconst w = rgbe_header_info.width,\n\t\t\th = rgbe_header_info.height,\n\t\t\timage_rgba_data = RGBE_ReadPixels_RLE( byteArray.subarray( byteArray.pos ), w, h );\n\n\n\t\tlet data, type;\n\t\tlet numElements;\n\n\t\tswitch ( this.type ) {\n\n\t\t\tcase FloatType:\n\n\t\t\t\tnumElements = image_rgba_data.length / 4;\n\t\t\t\tconst floatArray = new Float32Array( numElements * 4 );\n\n\t\t\t\tfor ( let j = 0; j < numElements; j ++ ) {\n\n\t\t\t\t\tRGBEByteToRGBFloat( image_rgba_data, j * 4, floatArray, j * 4 );\n\n\t\t\t\t}\n\n\t\t\t\tdata = floatArray;\n\t\t\t\ttype = FloatType;\n\t\t\t\tbreak;\n\n\t\t\tcase HalfFloatType:\n\n\t\t\t\tnumElements = image_rgba_data.length / 4;\n\t\t\t\tconst halfArray = new Uint16Array( numElements * 4 );\n\n\t\t\t\tfor ( let j = 0; j < numElements; j ++ ) {\n\n\t\t\t\t\tRGBEByteToRGBHalf( image_rgba_data, j * 4, halfArray, j * 4 );\n\n\t\t\t\t}\n\n\t\t\t\tdata = halfArray;\n\t\t\t\ttype = HalfFloatType;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tthrow new Error( 'THREE.HDRLoader: Unsupported type: ' + this.type );\n\n\t\t}\n\n\t\treturn {\n\t\t\twidth: w, height: h,\n\t\t\tdata: data,\n\t\t\theader: rgbe_header_info.string,\n\t\t\tgamma: rgbe_header_info.gamma,\n\t\t\texposure: rgbe_header_info.exposure,\n\t\t\ttype: type\n\t\t};\n\n\t}\n\n\t/**\n * Sets the texture type.\n *\n * @param {(HalfFloatType|FloatType)} value - The texture type to set.\n * @return {HDRLoader} A reference to this loader.\n */\n\tsetDataType( value ) {\n\n\t\tthis.type = value;\n\t\treturn this;\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tfunction onLoadCallback( texture, texData ) {\n\n\t\t\tswitch ( texture.type ) {\n\n\t\t\t\tcase FloatType:\n\t\t\t\tcase HalfFloatType:\n\n\t\t\t\t\ttexture.colorSpace = LinearSRGBColorSpace;\n\t\t\t\t\ttexture.minFilter = LinearFilter;\n\t\t\t\t\ttexture.magFilter = LinearFilter;\n\t\t\t\t\ttexture.generateMipmaps = false;\n\t\t\t\t\ttexture.flipY = true;\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( onLoad ) onLoad( texture, texData );\n\n\t\t}\n\n\t\treturn super.load( url, onLoadCallback, onProgress, onError );\n\n\t}\n\n}\n\nexport { HDRLoader };\n\n\n"],"names":["HDRLoader","DataTextureLoader","constructor","manager","super","this","type","HalfFloatType","parse","buffer","rgbe_error","rgbe_error_code","msg","Error","fgets","lineLimit","consume","p","pos","i","len","s","chunk","String","fromCharCode","apply","Uint16Array","subarray","indexOf","byteLength","length","slice","RGBEByteToRGBFloat","sourceArray","sourceOffset","destArray","destOffset","scale","Math","pow","RGBEByteToRGBHalf","DataUtils","toHalfFloat","min","byteArray","Uint8Array","rgbe_header_info","gamma_re","exposure_re","format_re","dimensions_re","header","valid","string","comments","programtype","format","gamma","exposure","width","height","line","match","charAt","parseFloat","parseInt","RGBE_ReadHeader","w","h","image_rgba_data","scanline_width","data_rgba","offset","ptr_end","rgbeStart","scanline_buffer","num_scanlines","count","ptr","isEncodedRun","byteValue","set","l","off","RGBE_ReadPixels_RLE","data","numElements","FloatType","floatArray","Float32Array","j","halfArray","setDataType","value","load","url","onLoad","onProgress","onError","texture","texData","colorSpace","LinearSRGBColorSpace","minFilter","LinearFilter","magFilter","generateMipmaps","flipY"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"../../../build/three.module.js";import{Matrix4,Vector3,Object3D,Vector2}from"../../../build/three.core.js";class CSS2DObject extends Object3D{constructor(element=document.createElement("div")){super(),this.isCSS2DObject=!0,this.element=element,this.element.style.position="absolute",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.center=new Vector2(.5,.5),this.addEventListener("removed",function(){this.traverse(function(object){object.element&&object.element instanceof object.element.ownerDocument.defaultView.Element&&null!==object.element.parentNode&&object.element.remove()})})}copy(source,recursive){return super.copy(source,recursive),this.element=source.element.cloneNode(!0),this.center=source.center,this}}const _vector=new Vector3,_viewMatrix=new Matrix4,_viewProjectionMatrix=new Matrix4,_a=new Vector3,_b=new Vector3;class CSS2DRenderer{constructor(parameters={}){const _this=this;let _width,_height,_widthHalf,_heightHalf;const cache={objects:new WeakMap},domElement=void 0!==parameters.element?parameters.element:document.createElement("div");function hideObject(object){object.isCSS2DObject&&(object.element.style.display="none");for(let i=0,l=object.children.length;i<l;i++)hideObject(object.children[i])}function renderObject(object,scene,camera){if(!1!==object.visible){if(object.isCSS2DObject){_vector.setFromMatrixPosition(object.matrixWorld),_vector.applyMatrix4(_viewProjectionMatrix);const visible=_vector.z>=-1&&_vector.z<=1&&!0===object.layers.test(camera.layers),element=object.element;element.style.display=!0===visible?"":"none",!0===visible&&(object.onBeforeRender(_this,scene,camera),element.style.transform="translate("+-100*object.center.x+"%,"+-100*object.center.y+"%)translate("+(_vector.x*_widthHalf+_widthHalf)+"px,"+(-_vector.y*_heightHalf+_heightHalf)+"px)",element.parentNode!==domElement&&domElement.appendChild(element),object.onAfterRender(_this,scene,camera));const objectData={distanceToCameraSquared:(object1=camera,object2=object,_a.setFromMatrixPosition(object1.matrixWorld),_b.setFromMatrixPosition(object2.matrixWorld),_a.distanceToSquared(_b))};cache.objects.set(object,objectData)}for(let i=0,l=object.children.length;i<l;i++)renderObject(object.children[i],scene,camera)}else hideObject(object);var object1,object2}domElement.style.overflow="hidden",this.domElement=domElement,this.sortObjects=!0,this.getSize=function(){return{width:_width,height:_height}},this.render=function(scene,camera){!0===scene.matrixWorldAutoUpdate&&scene.updateMatrixWorld(),null===camera.parent&&!0===camera.matrixWorldAutoUpdate&&camera.updateMatrixWorld(),_viewMatrix.copy(camera.matrixWorldInverse),_viewProjectionMatrix.multiplyMatrices(camera.projectionMatrix,_viewMatrix),renderObject(scene,scene,camera),this.sortObjects&&function(scene){const sorted=function(scene){const result=[];return scene.traverseVisible(function(object){object.isCSS2DObject&&result.push(object)}),result}(scene).sort(function(a,b){return a.renderOrder!==b.renderOrder?b.renderOrder-a.renderOrder:cache.objects.get(a).distanceToCameraSquared-cache.objects.get(b).distanceToCameraSquared}),zMax=sorted.length;for(let i=0,l=sorted.length;i<l;i++)sorted[i].element.style.zIndex=zMax-i}(scene)},this.setSize=function(width,height){_width=width,_height=height,_widthHalf=_width/2,_heightHalf=_height/2,domElement.style.width=width+"px",domElement.style.height=height+"px"}}}export{CSS2DObject,CSS2DRenderer};
|
|
2
|
-
//# sourceMappingURL=CSS2DRenderer.js.map
|