@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -125
- package/dist/audio/index.js +8 -1
- package/dist/audio/index.js.map +1 -1
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
- package/dist/audio/trinity/audio/AudManager.js +1 -1
- package/dist/audio/trinity/audio/AudManager.js.map +1 -1
- package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
- package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
- package/dist/audio/trinity/index.js +8 -1
- package/dist/audio/trinity/index.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
- package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceManager.js +14 -0
- package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
- package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
- package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
- package/dist/character/CjsCharacterTexturePolicy.js +5 -0
- package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
- package/dist/global/blue/CjsScriptCallback.js +142 -0
- package/dist/global/blue/CjsScriptCallback.js.map +1 -0
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -0
- package/dist/global/consts/renderContext/formats.js +51 -1
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/global/consts/renderContext/index.js +2 -2
- package/dist/global/consts/renderContext/renderStates.js +16 -1
- package/dist/global/consts/renderContext/renderStates.js.map +1 -1
- package/dist/global/contracts/index.js +0 -1
- package/dist/global/contracts/index.js.map +1 -1
- package/dist/global/index.js +4 -3
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/index.js +2 -0
- package/dist/global/math/index.js.map +1 -1
- package/dist/global/math/mesh.js +70 -16
- package/dist/global/math/mesh.js.map +1 -1
- package/dist/global/math/noise.js +47 -68
- package/dist/global/math/noise.js.map +1 -1
- package/dist/global/math/pool.js +18 -3
- package/dist/global/math/pool.js.map +1 -1
- package/dist/global/math/random.js +52 -0
- package/dist/global/math/random.js.map +1 -0
- package/dist/global/math/tri3.js +18 -4
- package/dist/global/math/tri3.js.map +1 -1
- package/dist/global/schema/CjsSchema.js +20 -2
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/global/schema/hydration.js +14 -0
- package/dist/global/schema/hydration.js.map +1 -1
- package/dist/global/utils/bytes.js +22 -4
- package/dist/global/utils/bytes.js.map +1 -1
- package/dist/global/utils/checksum.js +80 -0
- package/dist/global/utils/checksum.js.map +1 -0
- package/dist/global/utils/errors/CjsCancellationError.js +36 -0
- package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
- package/dist/global/utils/errors/CjsError.js +21 -52
- package/dist/global/utils/errors/CjsError.js.map +1 -1
- package/dist/global/utils/errors/abort.js +1 -1
- package/dist/global/utils/errors/abort.js.map +1 -1
- package/dist/global/utils/errors/index.js +2 -1
- package/dist/global/utils/errors/index.js.map +1 -1
- package/dist/global/utils/index.js +4 -2
- package/dist/global/utils/index.js.map +1 -1
- package/dist/index.js +95 -35
- package/dist/index.js.map +1 -1
- package/dist/input/Tr2MainWindow.js +7 -9
- package/dist/input/Tr2MainWindow.js.map +1 -1
- package/dist/resource/CjsResMan.js +33 -39
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/CjsResource.js +19 -5
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/audio/AudioGeometryResData.js +22 -27
- package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
- package/dist/resource/audio/CjsAudioRes.js +4 -5
- package/dist/resource/audio/CjsAudioRes.js.map +1 -1
- package/dist/resource/format/CjsBitReader.js +263 -0
- package/dist/resource/format/CjsBitReader.js.map +1 -0
- package/dist/resource/format/CjsByteReader.js +130 -125
- package/dist/resource/format/CjsByteReader.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +11 -4
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatError.js +37 -1
- package/dist/resource/format/CjsFormatError.js.map +1 -1
- package/dist/resource/format/CjsResourceProbe.js +41 -37
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/carbonRecordGuard.js +33 -0
- package/dist/resource/format/carbonRecordGuard.js.map +1 -0
- package/dist/resource/format/imageSignatures.js +202 -0
- package/dist/resource/format/imageSignatures.js.map +1 -0
- package/dist/resource/format/index.js +2 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/format/jsonPolicies.js +180 -0
- package/dist/resource/format/jsonPolicies.js.map +1 -0
- package/dist/resource/formats/black/core/helpers.js +18 -29
- package/dist/resource/formats/black/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
- package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
- package/dist/resource/formats/bnk/core/busNodes.js +2 -1
- package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
- package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/eventAction.js +15 -93
- package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
- package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
- package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +2 -48
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
- package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
- package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/binary.js +54 -60
- package/dist/resource/formats/cmf/core/binary.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/bc6h.js +16 -18
- package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
- package/dist/resource/formats/dds/core/bc7.js +28 -24
- package/dist/resource/formats/dds/core/bc7.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +7 -133
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +4 -32
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/fbx/core/helpers.js +18 -12
- package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/flac/core/helpers.js +1 -62
- package/dist/resource/formats/flac/core/helpers.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gif/core/helpers.js +1 -63
- package/dist/resource/formats/gif/core/helpers.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -19
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/gr2/core/container.js +1 -10
- package/dist/resource/formats/gr2/core/container.js.map +1 -1
- package/dist/resource/formats/gr2/core/helpers.js +24 -35
- package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/core/shared.js +193 -189
- package/dist/resource/formats/gr2/core/shared.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/helpers.js +1 -30
- package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +7 -134
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +1 -64
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +1 -73
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +93 -115
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/ogg/core/helpers.js +1 -15
- package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/core/vorbis.js +138 -144
- package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +5 -3
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +13 -152
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/png/core/writer.js +3 -27
- package/dist/resource/formats/png/core/writer.js.map +1 -1
- package/dist/resource/formats/red/core/helpers.js +19 -29
- package/dist/resource/formats/red/core/helpers.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +44 -66
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +7 -153
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/vta/core/helpers.js +1 -17
- package/dist/resource/formats/vta/core/helpers.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +1 -15
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js +39 -68
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +4 -30
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +1 -73
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/webp/core/helpers.js +1 -62
- package/dist/resource/formats/webp/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +83 -106
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
- package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -15
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
- package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
- package/dist/resource/geometry/MeshDecalData.js +23 -25
- package/dist/resource/geometry/MeshDecalData.js.map +1 -1
- package/dist/resource/geometry/MeshDecalLodData.js +14 -23
- package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryRes.js +299 -284
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
- package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
- package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
- package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
- package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
- package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
- package/dist/resource/geometry/TriJointBinding.js +16 -24
- package/dist/resource/geometry/TriJointBinding.js.map +1 -1
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
- package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
- package/dist/resource/index.js +1 -1
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
- package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
- package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
- package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
- package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
- package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
- package/dist/resource/worker/protocol.js +18 -1
- package/dist/resource/worker/protocol.js.map +1 -1
- package/dist/sof/EveSOF.js +2 -222
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/sof/SofDocumentBuilder.js +205 -0
- package/dist/sof/SofDocumentBuilder.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
- package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
- package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
- package/dist/sof/faction/index.js +3 -1
- package/dist/sof/faction/index.js.map +1 -1
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
- package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
- package/dist/sof/generic/index.js +5 -1
- package/dist/sof/generic/index.js.map +1 -1
- package/dist/sof/index.js +23 -7
- package/dist/sof/index.js.map +1 -1
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
- package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
- package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
- package/dist/sof/pattern/index.js +2 -1
- package/dist/sof/pattern/index.js.map +1 -1
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
- package/dist/sof/shared/EveSOFDataArea.js +2 -13
- package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
- package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
- package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameter.js +2 -146
- package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
- package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
- package/dist/sof/shared/index.js +13 -4
- package/dist/sof/shared/index.js.map +1 -1
- package/dist/sof/sofDocumentValues.js +33 -0
- package/dist/sof/sofDocumentValues.js.map +1 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
- package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
- package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
- package/dist/trinity/controllers/Tr2Controller.js +2 -1
- package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
- package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
- package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
- package/dist/trinity/controllers/index.js +5 -2
- package/dist/trinity/controllers/index.js.map +1 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
- package/dist/trinity/core/ITr2Updateable.js +2 -1
- package/dist/trinity/core/ITr2Updateable.js.map +1 -1
- package/dist/trinity/core/Tr2Blitter.js +6 -3
- package/dist/trinity/core/Tr2Blitter.js.map +1 -1
- package/dist/trinity/core/Tr2Denoiser.js +256 -0
- package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
- package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
- package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
- package/dist/trinity/core/Tr2RenderUtils.js +20 -3
- package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
- package/dist/trinity/core/Tr2Renderer.js +146 -1
- package/dist/trinity/core/Tr2Renderer.js.map +1 -1
- package/dist/trinity/core/Tr2ShadowMap.js +135 -14
- package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
- package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
- package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
- package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
- package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
- package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
- package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
- package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
- package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
- package/dist/trinity/core/index.js +42 -15
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
- package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
- package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
- package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
- package/dist/trinity/core/variable/TriVariable.js +83 -83
- package/dist/trinity/core/variable/TriVariable.js.map +1 -1
- package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
- package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
- package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/IEveTransform.js +2 -1
- package/dist/trinity/eve/IEveTransform.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/camera/EveCamera.js +1 -1
- package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
- package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
- package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/trinity/eve/child/EveChildContainer.js +141 -141
- package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
- package/dist/trinity/eve/child/EveChildMesh.js +218 -218
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
- package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
- package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTransform.js +5 -0
- package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +7 -0
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/index.js +10 -4
- package/dist/trinity/eve/index.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2Light.js +5 -0
- package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
- package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
- package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
- package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
- package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -1
- package/dist/trinity/generated/index.js.map +1 -1
- package/dist/trinity/generated/trinityCore/index.js +0 -1
- package/dist/trinity/generated/trinityCore/index.js.map +1 -1
- package/dist/trinity/index.js +59 -23
- package/dist/trinity/index.js.map +1 -1
- package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
- package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
- package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
- package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
- package/dist/trinity/particle/index.js +2 -1
- package/dist/trinity/particle/index.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
- package/dist/trinity/shader/Tr2Effect.js +131 -58
- package/dist/trinity/shader/Tr2Effect.js.map +1 -1
- package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
- package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +21 -4
- package/dist/trinity/shader/Tr2Material.js.map +1 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
- package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
- package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
- package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
- package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
- package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
- package/dist/trinityal/index.js +22 -9
- package/dist/trinityal/index.js.map +1 -1
- package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
- package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
- package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
- package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
- package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
- package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
- package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
- package/dist/trinityal/stub/index.js +8 -4
- package/dist/trinityal/stub/index.js.map +1 -1
- package/dist/trinityal/vertexLayoutMatch.js +2 -2
- package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
- package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
- package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
- package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
- package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
- package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
- package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +12 -11
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/audio/reference/classes/trinity.md +44 -34
- package/docs/character/architecture.md +276 -0
- package/docs/character/reference/character-appearance-plans.md +30 -66
- package/docs/character/reference/prepared-libraries.md +14 -30
- package/docs/global/reference/api.md +2 -1
- package/docs/global/reference/classes/README.md +53 -71
- package/docs/global/reference/classes/dropped.md +16 -0
- package/docs/resource/README.md +19 -15
- package/docs/resource/architecture.md +9 -2
- package/docs/resource/concepts/format-capabilities.md +124 -80
- package/docs/resource/concepts/shared-format-helpers.md +94 -0
- package/docs/resource/formats/README.md +230 -224
- package/docs/resource/formats/bitknit2.md +221 -0
- package/docs/resource/formats/carbon-effect-container.md +184 -269
- package/docs/resource/formats/gr2.md +6 -1
- package/docs/resource/formats/schemabound.md +28 -48
- package/docs/resource/formats/static.md +70 -97
- package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
- package/docs/resource/formats/webgl/decl-io.md +165 -256
- package/docs/resource/formats/webgl/memory-structured.md +64 -142
- package/docs/resource/formats/webgl/texture-sample.md +109 -138
- package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
- package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
- package/docs/resource/formats/webgpu/reference/api.md +64 -67
- package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
- package/docs/resource/reference/classes/core.md +256 -236
- package/docs/resource/reference/classes/formats.md +1668 -1672
- package/docs/resource/reference/workers.md +4 -2
- package/docs/sof/reference/classes/core.md +1 -1
- package/docs/sof/reference/classes/faction.md +2 -2
- package/docs/sof/reference/classes/generic.md +4 -4
- package/docs/sof/reference/classes/pattern.md +1 -1
- package/docs/sof/reference/classes/shared.md +10 -10
- package/docs/trinity/architecture.md +55 -44
- package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
- package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
- package/docs/trinity/reference/classes/dropped.md +0 -189
- package/docs/trinity/reference/classes/eve-runtime.md +8 -8
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/particle.md +2 -2
- package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
- package/docs/trinity/reference/implementation-status.md +50 -75
- package/docs/trinity/reference/main-semantic-extraction.md +13 -17
- package/docs/trinityal/reference/classes/README.md +77 -27
- package/docs/trinityal/reference/classes/dropped.md +92 -0
- package/docs/trinityal/webgpu/README.md +3 -1
- package/docs/trinityal/webgpu/architecture.md +121 -228
- package/docs/trinityal/webgpu/reference/api.md +5 -5
- package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
- package/format-notices/gr2/NOTICE +18 -12
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
- package/package.json +4 -1
- package/dist/audio/trinity/audio/AudActionLog.js +0 -173
- package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
- package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
- package/dist/global/contracts/CjsScriptCallback.js +0 -94
- package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
- package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
- package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
- package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
- package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
- package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
- package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
- package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
- package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
- package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
- package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
- package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
- package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
- package/dist/trinity/core/rawData/constantLayout.js +0 -175
- package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
- package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
- package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
- package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
- package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
- package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
- package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
- package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
- package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
- package/dist/trinityal/Tr2SamplerDescription.js +0 -72
- package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
- package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
- package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
- package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
- package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
- package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
- package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
- package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
- package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
- package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveChildContainer.js","sources":["../../../../../src/trinity/eve/child/EveChildContainer.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildContainer.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildContainer.cpp\r\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildContainer_Blue.cpp\r\nimport { mat4 } from \"#math/mat4\";\nimport { IEveInheritPropertiesOwner, withIEveInheritPropertiesOwner } from \"../IEveInheritPropertiesOwner.js\";\r\nimport { quat } from \"#math/quat\";\r\nimport { sph3 } from \"#math/sph3\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { getBoneList } from \"../../core/animation/Tr2GrannyAnimation.js\";\r\nimport { vec4 } from \"#math/vec4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { EveChildTransform, applyTransformModifiers } from \"./EveChildTransform.js\";\r\nimport { EveChildInheritProperties } from \"./EveChildInheritProperties.js\";\r\nimport { EveChildUpdateParams } from \"../EveChildUpdateParams.js\";\r\nimport { EveComponentType } from \"../EveComponentTypes.js\";\r\nimport { Origin } from \"../../generated/eve/child/enums.js\";\r\nimport { Tr2RenderReason, TR2SHADERMODEL } from \"../../generated/trinityCore/enums.js\";\r\nimport { Tr2Lod } from \"../EveLODHelper.js\";\r\nimport { Tr2PerObjectData } from \"../../core/rawData/Tr2PerObjectData.js\";\r\nimport {\r\n createChildPerObjectRecords,\r\n inheritParentPerObjectData,\r\n stampChildTransforms\r\n} from \"../perObjectData/childPerObjectRecords.js\";\r\nimport { withITr2Renderable } from \"../../core/ITr2Renderable.js\";\r\n\r\n// Module scratch (read-only zero vector; container recursion forbids mutable\r\n// module scratch here - see GetBoundingSphere).\r\nconst ZERO_VEC3 = vec3.create();\r\n\r\n\r\n/**\r\n * Space-object child that groups other children under one transform, owning\r\n * their curve sets, controllers, observers, lights, attachments and transform\r\n * modifiers, and gating them on a display-quality filter.\r\n */\r\n@type.define({ className: \"EveChildContainer\", family: \"eve/child\" })\r\nexport class EveChildContainer extends withIEveInheritPropertiesOwner(withITr2Renderable(EveChildTransform))\r\n{\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n @type.enum(\"DisplayQualityModifier\")\r\n displayFilter = 5;\r\n\r\n @io.persist\r\n @type.list(\"IEveSpaceObjectChild\")\r\n objects = [];\r\n\r\n @io.persist\r\n @type.list(\"IEveChildTransformModifier\")\r\n transformModifiers = [];\r\n\r\n @io.persist\r\n @type.list(\"TriCurveSet\")\r\n curveSets = [];\r\n\r\n @io.read\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @io.notify\r\n @io.readwrite\r\n @type.boolean\r\n mute = false;\r\n\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.vec3\r\n translation = vec3.create();\r\n\r\n @io.persist\r\n @type.quat\r\n rotation = quat.create();\r\n\r\n @io.persist\r\n @type.vec3\r\n scaling = vec3.fromValues(1, 1, 1);\r\n\r\n @io.persist\r\n @type.mat4\r\n localTransform = mat4.create();\r\n\r\n @io.persist\r\n @type.boolean\r\n staticTransform = false;\r\n\r\n @io.persist\r\n @type.boolean\r\n alwaysOn = false;\r\n\r\n @io.persist\r\n @type.boolean\r\n updateOnDisplay = true;\r\n\r\n @io.persist\r\n @type.list(\"IEveSpaceObjectAttachment\")\r\n attachments = [];\r\n\r\n @io.persist\r\n @type.list(\"TriObserverLocal\")\r\n observers = [];\r\n\r\n @io.persist\r\n @type.list(\"IEveFxAttribute\")\r\n fxAttributes = [];\r\n\r\n @io.persist\r\n @type.list(\"Tr2Light\")\r\n lights = [];\r\n\r\n @io.persist\r\n @type.list(\"ITr2Controller\")\r\n controllers = [];\r\n\r\n @io.persist\r\n @type.objectRef(\"EveChildInheritProperties\")\r\n inheritProperties = null;\r\n\r\n @io.persist\r\n @type.boolean\r\n useSRT = true;\r\n\r\n @io.persist\r\n @type.boolean\r\n useStaticRotation = false;\r\n\r\n @io.persist\r\n @type.boolean\r\n useStaticScale = false;\r\n\r\n // SOF-authored placement values; persisted so the values interchange\r\n // reproduces Carbon's hidden container placement state.\r\n @io.persist\r\n @type.objectRef(\"ITr2GrannyAnimationOwner\")\r\n animationOwner = null;\r\n\r\n @io.persist\r\n @type.int32\r\n @type.enum(\"Origin\")\r\n origin = 0;\r\n\r\n @io.persist\r\n @type.boolean\r\n isPlacementRoot = false;\r\n\r\n #controllerVariables = new Map();\r\n\r\n // Carbon m_worldVelocity/m_ownerMaxSpeed/m_activationStrength/m_hasUpdated:\r\n // runtime-only frame state (never persisted; Carbon keeps them out of the\r\n // Blue surface too).\r\n #worldVelocity = vec3.create();\r\n\r\n #ownerMaxSpeed = 0;\r\n\r\n #activationStrength = 1;\r\n\r\n /** m_vsData / m_psData - this container's PERSISTENT per-object pair. */\r\n #perObjectData = createChildPerObjectRecords();\r\n\r\n /** Carbon's local `lastWorldTransform`, kept across frames here. */\r\n #lastWorldTransform = mat4.create();\r\n\r\n #hasUpdated = false;\r\n\r\n /** Blue read-only property alias for IsRendering. */\r\n get isRendering()\r\n {\r\n return this.IsRendering();\r\n }\r\n\r\n /** Blue read-only property alias for IsUpdating. */\r\n get isUpdating()\r\n {\r\n return this.IsUpdating();\r\n }\r\n\r\n /**\r\n * Links every authored controller that is not already linked to this\r\n * container, so controller variables and events reach them.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.RegisterChildren(this.objects);\r\n for (const controller of this.controllers)\r\n {\r\n if (!controller?.IsLinked())\r\n {\r\n controller?.Link(this);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /** Carbon EveChildContainer::OnModified (cpp:76-88): display/displayFilter\r\n * changes re-register with the scene component registry (engine-owned,\r\n * omitted); a mute change fans out to children and observers. The value\r\n * argument follows the repo's OnModified duck (field name or field value). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Registry re-registration on display/displayFilter changes is engine-owned; the mute fan-out side effect is ported.\")\r\n OnModified(value = null)\r\n {\r\n if (value === \"mute\" || value === this.mute)\r\n {\r\n this.MuteChildren();\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Applies the authored scale/rotation/translation through the shared child\r\n * transform setup and returns the rebuilt local transform; lowestLodVisible is\r\n * accepted for signature parity only.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Setup(scale = null, rotation = null, translation = null, lowestLodVisible = null)\r\n {\r\n return super.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n /**\r\n * Returns the authored container name, which GetEffectChildByName matches\r\n * against on the parent side.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Sets the authored container name, coercing nullish to the empty string. */\r\n @carbon.method\r\n @impl.implemented\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /**\r\n * Records whether this container's placement was authored in space or by SOF\r\n * (the Origin enum).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetOrigin(origin)\r\n {\r\n this.origin = Number(origin) | 0;\r\n }\r\n\r\n /** Stores the always-on flag that IsAlwaysOn reports to the owner. */\r\n @carbon.method\r\n @impl.implemented\r\n SetAlwaysOn(alwaysOn)\r\n {\r\n this.alwaysOn = !!alwaysOn;\r\n }\r\n\r\n /** Reports the authored always-on flag. */\r\n @carbon.method\r\n @impl.implemented\r\n IsAlwaysOn()\r\n {\r\n return this.alwaysOn;\r\n }\r\n\r\n /**\r\n * Sets the display-quality filter that IsRendering tests the current shader\r\n * model against, which in turn gates every update and render path on this\r\n * container.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetDisplayQualityModifier(filter)\r\n {\r\n this.displayFilter = Number(filter) | 0;\r\n }\r\n\r\n /**\r\n * Sets the mute flag and, only when it changes, pushes it down to the\r\n * contained children and local observers.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetMute(mute)\r\n {\r\n const next = !!mute;\r\n if (next !== this.mute)\r\n {\r\n this.mute = next;\r\n this.MuteChildren();\r\n }\r\n }\r\n\r\n /**\r\n * Pushes this container's current mute flag onto every contained child and\r\n * local observer - it mutates their state, not the container's.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n MuteChildren()\r\n {\r\n for (const child of this.objects)\r\n {\r\n child?.SetMute?.(this.mute);\r\n }\r\n for (const observer of this.observers)\r\n {\r\n observer?.SetMute(this.mute);\r\n }\r\n }\r\n\r\n /**\r\n * Appends a transform modifier; modifiers fold over the container's world\r\n * transform in insertion order on each async update.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddTransformModifier(modifier)\r\n {\r\n this.transformModifiers.push(modifier);\r\n }\r\n\r\n /**\r\n * Appends a local audio observer, which is re-placed from the container's\r\n * world transform on every sync update.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddObserver(observer)\r\n {\r\n this.observers.push(observer);\r\n }\r\n\r\n /**\r\n * Appends a controller, links it to this container, and replays every\r\n * controller variable set so far onto it so it starts in sync.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddController(controller)\r\n {\r\n this.controllers.push(controller);\r\n controller?.Link(this);\r\n for (const [name, value] of this.#controllerVariables)\r\n {\r\n controller?.SetVariable(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Records a named float variable, pushes it to every controller on this\r\n * container, and recurses into the contained children; the recorded value is\r\n * also replayed onto controllers and children added later.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetControllerVariable(name, value)\r\n {\r\n const key = String(name ?? \"\");\r\n const next = Number(value);\r\n this.#controllerVariables.set(key, next);\r\n for (const controller of this.controllers)\r\n {\r\n controller?.SetVariable(key, next);\r\n }\r\n for (const child of this.objects)\r\n {\r\n child?.SetControllerVariable(key, next);\r\n }\r\n }\r\n\r\n /**\r\n * Fires a named controller event on every controller here and recurses into\r\n * the contained children.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n HandleControllerEvent(name)\r\n {\r\n const eventName = String(name ?? \"\");\r\n for (const controller of this.controllers)\r\n {\r\n controller?.HandleEvent(eventName);\r\n }\r\n for (const child of this.objects)\r\n {\r\n child?.HandleControllerEvent(eventName);\r\n }\r\n }\r\n\r\n /** Starts every controller here and recurses into the contained children. */\r\n @carbon.method\r\n @impl.implemented\r\n StartControllers()\r\n {\r\n for (const controller of this.controllers)\r\n {\r\n controller?.Start();\r\n }\r\n for (const child of this.objects)\r\n {\r\n child?.StartControllers();\r\n }\r\n }\r\n\r\n /**\r\n * Forwards a procedural container variable to the contained children; a plain\r\n * container holds none of its own.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetProceduralContainerVariable(name, value)\r\n {\r\n for (const child of this.objects)\r\n {\r\n child?.SetProceduralContainerVariable?.(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Returns the first direct child whose GetName()/name matches, or null; the\r\n * search does not recurse into nested containers.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetEffectChildByName(name)\r\n {\r\n const target = String(name ?? \"\");\r\n for (const child of this.objects)\r\n {\r\n if ((child?.GetName?.() ?? child?.name ?? \"\") === target)\r\n {\r\n return child;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Appends a child and replays every controller variable set so far onto it,\r\n * then returns that same child.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddToEffectChildrenList(child)\r\n {\r\n this.objects.push(child);\r\n this.RegisterChild(child);\r\n for (const [name, value] of this.#controllerVariables)\r\n {\r\n child?.SetControllerVariable(name, value);\r\n }\r\n return child;\r\n }\r\n\r\n /** Removes a child by identity and reports whether it was present. */\r\n @carbon.method\r\n @impl.implemented\r\n RemoveFromEffectChildrenList(child)\r\n {\r\n const index = this.objects.indexOf(child);\r\n if (index !== -1)\r\n {\r\n this.UnregisterChild(child);\r\n this.objects.splice(index, 1);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Forwards a shader option to every contained child and attachment; the\r\n * container compiles nothing itself.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetShaderOption(name, value)\r\n {\r\n for (const child of this.objects)\r\n {\r\n child?.SetShaderOption?.(name, value);\r\n }\r\n for (const attachment of this.attachments)\r\n {\r\n if (!attachment) continue;\r\n attachment.SetShaderOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Stores the Granny animation owner supplied by SOF placement; the bone-list\r\n * override that would consume it awaits the JS animation seam.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetAnimationOwner(animationOwner)\r\n {\r\n this.animationOwner = animationOwner ?? null;\r\n }\r\n\r\n /**\r\n * Flags this container as a SOF placement root - authored placement state,\r\n * persisted for interchange parity, with no consumer inside the container\r\n * itself.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetIsPlacementRoot(isPlacementRoot)\r\n {\r\n this.isPlacementRoot = !!isPlacementRoot;\r\n }\r\n\r\n /**\r\n * Appends an attachment; attachments are the only thing a container renders\r\n * itself (HasRenderables) and the only thing GetBatches submits.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddAttachment(attachment)\r\n {\r\n this.attachments.push(attachment);\r\n }\r\n\r\n /**\r\n * Drops every attachment, which also stops the container from contributing any\r\n * renderable of its own.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ClearAttachments()\r\n {\r\n this.attachments.length = 0;\r\n }\r\n\r\n /**\r\n * Reports whether the container owns nothing at all - no children, lights,\r\n * attachments, controllers, curve sets, transform modifiers or observers.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Empty()\r\n {\r\n return this.objects.length === 0 &&\r\n this.lights.length === 0 &&\r\n this.attachments.length === 0 &&\r\n this.controllers.length === 0 &&\r\n this.curveSets.length === 0 &&\r\n this.transformModifiers.length === 0 &&\r\n this.observers.length === 0;\r\n }\r\n\r\n /**\r\n * Sync-side frame update (Carbon EveChildContainer::UpdateSyncronous,\r\n * cpp:496-518): gate on IsUpdating, remember the owner max speed, then\r\n * recurse into the children with childParent params rebased onto this\r\n * container's world transform, and refresh the local observers.\r\n * @param {Object} updateContext - frame context (EveUpdateContext)\r\n * @param {EveChildUpdateParams} params\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSyncronous(updateContext, params)\r\n {\r\n if (!this.IsUpdating())\r\n {\r\n return;\r\n }\r\n\r\n this.#ownerMaxSpeed = Number(params?.ownerMaxSpeed) || 0;\r\n\r\n const newParams = EveChildContainer.#DeriveChildParams(params);\r\n newParams.isVisible = (params?.isVisible !== false) && this.display;\r\n newParams.childParent = this;\r\n mat4.copy(newParams.localToWorldTransform, this.worldTransform);\r\n\r\n for (const child of this.objects)\r\n {\r\n child?.UpdateSyncronous(updateContext, newParams);\r\n }\r\n for (const observer of this.observers)\r\n {\r\n observer?.Update(this.worldTransform);\r\n }\r\n }\r\n\r\n /**\r\n * Per-frame async update (Carbon EveChildContainer::UpdateAsyncronous +\r\n * DoUpdateAsyncronous, cpp:520-641): rebuild the world transform from the\r\n * parent, tick the controllers, fold the transform modifiers, then recurse\r\n * into the children with childParent params, update the curve sets and fx\r\n * attributes, and refresh light/attachment bone state. Carbon's wrapper\r\n * advances the GPU bone ring buffer and may dispatch the body onto the\r\n * placement task group (cpp:522-538) - both engine-owned, so the JS port\r\n * runs the DoUpdateAsyncronous body inline behind the same IsUpdating gate.\r\n * @param {Object} updateContext - frame context (EveUpdateContext), threaded to modifiers\r\n * @param {EveChildUpdateParams} params - localToWorldTransform + boneCount/bones\r\n * @returns {Float32Array} worldTransform\r\n */\r\n @carbon.method\r\n @carbon.contextual([\"camera\"])\r\n @impl.adapted\r\n @impl.reason(\"The GPU bone ring buffer, task-group dispatch, per-object VS/PS struct refresh, and the Granny bone-list override are engine/animation seams; the CPU update fan-out is ported.\")\r\n UpdateAsyncronous(updateContext, params)\r\n {\r\n if (!this.IsUpdating())\r\n {\r\n return this.worldTransform;\r\n }\r\n\r\n const parentTransform = params?.localToWorldTransform;\r\n\r\n // Carbon captures the OUTGOING transform before rebuilding.\r\n mat4.copy(this.#lastWorldTransform, this.worldTransform);\r\n\r\n if (parentTransform && parentTransform.length === 16)\r\n {\r\n this.UpdateTransform(parentTransform);\r\n }\r\n\r\n // Carbon cpp:576-589: inherit the hull's per-object values, rebase the clip\r\n // data by this child's translation, then stamp our own transforms.\r\n inheritParentPerObjectData(this.#perObjectData, params?.spaceObjectParent, this.translation);\r\n stampChildTransforms(this.#perObjectData, this.worldTransform, this.#lastWorldTransform);\r\n\r\n const frequency = params?.controllerUpdateFrequency ?? 0.5;\r\n for (const controller of this.controllers)\r\n {\r\n controller?.Update(frequency);\r\n }\r\n\r\n // Carbon's DoUpdateAsyncronous overrides boneCount/bones from this\r\n // container's own animation controller here (Tr2GrannyAnimationUtils::\r\n // GetBoneList, cpp:556-559) before folding modifiers. AttachToBone already\r\n // consumes an explicitly threaded params palette; overriding that palette\r\n // from the animation controller remains deferred until the Granny\r\n // bone-list API is ported.\r\n const boneCount = params?.boneCount ?? 0;\r\n const bones = params?.bones ?? null;\r\n\r\n applyTransformModifiers(this, updateContext, boneCount, bones);\r\n\r\n this.#activationStrength = Number(params?.activationStrength ?? 1);\r\n\r\n // Carbon (cpp:568-590): when attachments exist the per-object VS/PS\r\n // structs are refreshed from the parent. This port retains persistent\r\n // RawData and returns it from GetPerObjectData; no live-object serializer\r\n // indirection is involved.\r\n\r\n const newParams = EveChildContainer.#DeriveChildParams(params);\r\n newParams.isVisible = (params?.isVisible !== false) && this.display;\r\n newParams.childParent = this;\r\n newParams.boneCount = boneCount;\r\n newParams.bones = bones;\r\n mat4.copy(newParams.localToWorldTransform, this.worldTransform);\r\n\r\n // Carbon (cpp:599-610): a space-object-rooted container samples the\r\n // owner's world velocity; nested containers inherit it via params.\r\n if (params?.spaceObjectParent)\r\n {\r\n if (!params.childParent)\r\n {\r\n const velocity = params.spaceObjectParent.GetWorldVelocity?.(this.#worldVelocity) ??\r\n params.spaceObjectParent.worldVelocity;\r\n if (velocity && velocity !== this.#worldVelocity)\r\n {\r\n vec3.copy(this.#worldVelocity, velocity);\r\n }\r\n vec3.copy(newParams.worldVelocity, this.#worldVelocity);\r\n }\r\n else\r\n {\r\n vec3.copy(this.#worldVelocity, params.worldVelocity ?? ZERO_VEC3);\r\n }\r\n }\r\n\r\n for (const child of this.objects)\r\n {\r\n child?.UpdateAsyncronous(updateContext, newParams);\r\n }\r\n\r\n // Carbon (cpp:617-624): container-owned curve sets tick with the frame\r\n // time as BOTH realTime and simTime.\r\n if (this.curveSets.length)\r\n {\r\n const time = Number(updateContext?.GetTime?.() ?? updateContext?.currentTime ?? updateContext?.time ?? 0);\r\n for (const curveSet of this.curveSets)\r\n {\r\n curveSet.Update(time, time, updateContext.renderContext);\r\n }\r\n }\r\n\r\n for (const fxAttribute of this.fxAttributes)\r\n {\r\n fxAttribute.UpdateAsyncronous(updateContext, newParams);\r\n }\r\n\r\n for (const light of this.lights)\r\n {\r\n light?.SetBoneMatrix?.(bones, boneCount);\r\n }\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n if (!attachment) continue;\r\n attachment.UpdateLights(this.worldTransform, bones, boneCount, this.#activationStrength, 0);\r\n }\r\n\r\n this.#hasUpdated = true;\r\n return this.worldTransform;\r\n }\r\n\r\n /**\r\n * Frame visibility fan-out (Carbon EveChildContainer::UpdateVisibility,\r\n * cpp:379-410): gate on display/IsUpdating, recurse into the children with\r\n * the unchanged parent transform/LOD, then refresh attachment visibility\r\n * against this container's world transform.\r\n * @param {Object} updateContext - frame context (frustum ducks)\r\n * @param {Float32Array} parentTransform\r\n * @param {Number} parentLod - parent Tr2Lod level\r\n * @returns {Boolean} whether the fan-out ran\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform = null, parentLod = Tr2Lod.TR2_LOD_HIGH)\r\n {\r\n if (!this.display)\r\n {\r\n return false;\r\n }\r\n if (!this.IsUpdating())\r\n {\r\n return false;\r\n }\r\n\r\n for (const child of this.objects)\r\n {\r\n child?.UpdateVisibility(updateContext, parentTransform, parentLod);\r\n }\r\n\r\n if (this.HasRenderables())\r\n {\r\n // cpp:398-409 - the container has no updater of its own; the palette\r\n // comes from whichever object owns the animation.\r\n const { bones, boneCount } = getBoneList(this.animationOwner?.GetAnimationController?.());\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n if (!attachment) continue;\r\n attachment.UpdateVisibility(updateContext, this.worldTransform, bones, boneCount);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /** Carbon EveChildContainer::GetRenderables (cpp:412-432): the container\r\n * itself renders only when it owns attachments; children always recurse. */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(out = [])\r\n {\r\n if (!this.display || !this.#hasUpdated)\r\n {\r\n return out;\r\n }\r\n if (!this.IsRendering())\r\n {\r\n return out;\r\n }\r\n\r\n if (this.HasRenderables())\r\n {\r\n out.push(this);\r\n }\r\n\r\n for (const child of this.objects)\r\n {\r\n child?.GetRenderables(out);\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon EveChildContainer::GetBoundingSphere (cpp:434-452): the union of\r\n * the children's spheres (BoundingSphereSetOrUpdate -> sph3.union). The\r\n * child sphere is a per-call local rather than module scratch because\r\n * containers nest - a shared scratch would be clobbered between recursion\r\n * levels; this is a bounds query, not the per-frame update hot path. */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphere(out = vec4.create(), _query = 0)\r\n {\r\n if (!this.IsUpdating())\r\n {\r\n return false;\r\n }\r\n\r\n const childSphere = vec4.create();\r\n let success = false;\r\n for (const child of this.objects)\r\n {\r\n if (child?.GetBoundingSphere?.(childSphere))\r\n {\r\n if (success)\r\n {\r\n sph3.union(out, out, childSphere);\r\n }\r\n else\r\n {\r\n vec4.copy(out, childSphere);\r\n }\r\n success = true;\r\n }\r\n }\r\n return success;\r\n }\r\n\r\n /** Carbon EveChildContainer::GetLocalToWorldTransform (cpp:644-647); the\r\n * optional out follows the EveChildInstancedMeshes copy-out shape. */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocalToWorldTransform(out = null)\r\n {\r\n if (out)\r\n {\r\n return mat4.copy(out, this.worldTransform);\r\n }\r\n return this.worldTransform;\r\n }\r\n\r\n /** Carbon EveChildContainer::ChangeLOD (cpp:649-655): fan-out only. */\r\n @carbon.method\r\n @impl.implemented\r\n ChangeLOD(lod)\r\n {\r\n for (const child of this.objects)\r\n {\r\n child?.ChangeLOD?.(lod);\r\n }\r\n }\r\n\r\n /** Carbon EveChildContainer::GetLights (cpp:657-675): each light is added\r\n * with the container world transform and the average basis-length scaling\r\n * ((|X| + |Y| + |Z|) / 3 of the world basis rows - single-matrix reads, no\r\n * composition). The light manager is duck-typed. */\r\n @carbon.method\r\n @impl.implemented\r\n GetLights(lightManager)\r\n {\r\n if (!this.display || !this.#hasUpdated)\r\n {\r\n return;\r\n }\r\n if (!this.IsRendering())\r\n {\r\n return;\r\n }\r\n\r\n const m = this.worldTransform;\r\n const scaling = (\r\n Math.hypot(m[0], m[1], m[2]) +\r\n Math.hypot(m[4], m[5], m[6]) +\r\n Math.hypot(m[8], m[9], m[10])\r\n ) / 3;\r\n\r\n for (const light of this.lights)\r\n {\r\n light?.AddLight(lightManager, m, scaling);\r\n }\r\n }\r\n\r\n /** Carbon EveChildContainer::GetBatches (cpp:1134-1143): attachments only,\r\n * gated on display, the NORMAL render reason, and a non-zero activation\r\n * strength. Returns whether any batch was committed (JS addition; Carbon\r\n * returns void). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBatches(batches, batchType, perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\r\n {\r\n if (!this.display || reason !== Tr2RenderReason.TR2RENDERREASON_NORMAL || this.#activationStrength === 0)\r\n {\r\n return false;\r\n }\r\n\r\n let committed = false;\r\n for (const attachment of this.attachments)\r\n {\r\n if (!attachment) continue;\r\n committed = attachment.GetBatches(batches, batchType, perObjectData, reason) === true || committed;\r\n }\r\n return committed;\r\n }\r\n\r\n /** Carbon EveChildContainer::HasTransparentBatches (cpp:1145-1148). */\r\n @carbon.method\r\n @impl.implemented\r\n HasTransparentBatches()\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildContainer::GetSortValue (cpp:1150-1153). */\r\n @carbon.method\r\n @impl.implemented\r\n GetSortValue()\r\n {\r\n return 0;\r\n }\r\n\r\n /**\r\n * Carbon EveChildContainer::GetPerObjectData (cpp:1180-1203): uploads the\r\n * animation owner's bone palette, then hands back a handle over this\r\n * container's two PERSISTENT buffers. The ring offsets are GPU addresses with\r\n * no CPU derivation and keep their defaults; the bone COUNT is CPU-known.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"GPU ring-buffer offsets have no CPU derivation and keep their defaults; every CPU-known field is filled.\")\r\n GetPerObjectData(_accumulator = null)\r\n {\r\n const updater = this.animationOwner?.animationUpdater ?? this.animationUpdater;\r\n\r\n if (updater?.IsInitialized?.())\r\n {\r\n this.#perObjectData.vs.SetIndex(\"boneOffsets\", 2, [ updater.GetMeshBoneCount?.() ?? 0 ]);\r\n }\r\n\r\n return { vs: this.#perObjectData.vs, ps: this.#perObjectData.ps };\r\n }\r\n\r\n /** Carbon EveChildContainer::HasRenderables (cpp:1129-1132): the container\r\n * renders only for its attachments. */\r\n @carbon.method\r\n @impl.implemented\r\n HasRenderables()\r\n {\r\n return this.attachments.length > 0;\r\n }\r\n\r\n /** Carbon EveChildContainer::IsRendering (cpp:334-362): whether the current\r\n * shader model passes this container's display filter. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon reads the Tr2Renderer shader-model global; the browser runtime stamps EveChildContainer.shaderModel (default TR2SM_3_0_DEPTH, the DX11 depth path EVE ships).\")\r\n IsRendering()\r\n {\r\n const settings = EveChildContainer.shaderModel;\r\n const filter = EveChildContainer.DisplayQualityModifier;\r\n\r\n if (settings === TR2SHADERMODEL.TR2SM_AUTHORING && this.displayFilter !== filter.ONLY_REFLECTIONS)\r\n {\r\n return true;\r\n }\r\n\r\n switch (this.displayFilter)\r\n {\r\n case filter.SHADER_LOW:\r\n return settings === TR2SHADERMODEL.TR2SM_3_0_LO;\r\n case filter.SHADER_LOWMID:\r\n return settings <= TR2SHADERMODEL.TR2SM_3_0_HI;\r\n case filter.SHADER_MED:\r\n return settings === TR2SHADERMODEL.TR2SM_3_0_HI;\r\n case filter.SHADER_HIGHMID:\r\n return settings >= TR2SHADERMODEL.TR2SM_3_0_HI;\r\n case filter.SHADER_HIGH:\r\n return settings === TR2SHADERMODEL.TR2SM_3_0_DEPTH;\r\n case filter.SHADER_ALL:\r\n return true;\r\n case filter.ONLY_REFLECTIONS:\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildContainer::IsUpdating (cpp:364-367). */\r\n @carbon.method\r\n @impl.implemented\r\n IsUpdating()\r\n {\r\n return (this.display || !this.updateOnDisplay) &&\r\n (this.IsRendering() || this.displayFilter === EveChildContainer.DisplayQualityModifier.ONLY_REFLECTIONS);\r\n }\r\n\r\n /** Carbon EveChildContainer::RegisterComponents (cpp:258-284): LightOwner\r\n * when lights are authored, then forwards the contained objects and the\r\n * attachments. Gate m_display && IsUpdating(). */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.display && this.IsUpdating())\r\n {\r\n if (this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n\r\n for (const object of this.objects)\r\n {\r\n object?.Register(registry);\r\n }\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.Register(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveChildContainer::UnRegisterComponents (cpp:290-311): forwards\r\n * the contained objects and attachments only (own components were already\r\n * removed by EveEntity::UnRegister, EveEntity.cpp:90); no display/IsUpdating\r\n * re-check. */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n for (const object of this.objects)\r\n {\r\n object?.UnRegister(registry);\r\n }\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.UnRegister(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveChildContainer::PlayCurveSet (cpp:682-712): named own sets play\r\n * (or play a named range); children recurse via the curve-set-owner duck. */\r\n @carbon.method\r\n @impl.implemented\r\n PlayCurveSet(name, rangeName = \"\")\r\n {\r\n if (!this.IsUpdating())\r\n {\r\n return;\r\n }\r\n\r\n const target = String(name ?? \"\");\r\n for (const curveSet of this.curveSets)\r\n {\r\n if ((curveSet?.GetName() ?? curveSet?.name) !== target)\r\n {\r\n continue;\r\n }\r\n if (rangeName)\r\n {\r\n curveSet.PlayTimeRange?.(rangeName);\r\n }\r\n else\r\n {\r\n curveSet.ResetTimeRange();\r\n curveSet.Play();\r\n }\r\n }\r\n\r\n for (const child of this.objects)\r\n {\r\n child?.PlayCurveSet?.(target, rangeName);\r\n }\r\n }\r\n\r\n /** Carbon EveChildContainer::StopCurveSet (cpp:746-768). */\r\n @carbon.method\r\n @impl.implemented\r\n StopCurveSet(name)\r\n {\r\n if (!this.IsUpdating())\r\n {\r\n return;\r\n }\r\n\r\n const target = String(name ?? \"\");\r\n for (const curveSet of this.curveSets)\r\n {\r\n if ((curveSet?.GetName() ?? curveSet?.name) === target)\r\n {\r\n curveSet.Stop();\r\n }\r\n }\r\n\r\n for (const child of this.objects)\r\n {\r\n child?.StopCurveSet?.(target);\r\n }\r\n }\r\n\r\n /** Carbon EveChildContainer::UpdateCurveSet (cpp:770-786): samples matching\r\n * own and child sets at an explicit time (both clocks, as Carbon does). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateCurveSet(name, time, renderContext = null)\r\n {\r\n const target = String(name ?? \"\");\r\n for (const curveSet of this.curveSets)\r\n {\r\n if (curveSet.GetName() === target)\r\n {\r\n curveSet.Update(time, time, renderContext);\r\n }\r\n }\r\n\r\n for (const child of this.objects)\r\n {\r\n child?.UpdateCurveSet?.(target, time, renderContext);\r\n }\r\n }\r\n\r\n /** Carbon EveChildContainer::PlayAllCurveSets (cpp:714-728): children\r\n * first, then every own set. */\r\n @carbon.method\r\n @impl.implemented\r\n PlayAllCurveSets()\r\n {\r\n for (const child of this.objects)\r\n {\r\n child?.PlayAllCurveSets?.();\r\n }\r\n for (const curveSet of this.curveSets)\r\n {\r\n curveSet?.Play();\r\n }\r\n }\r\n\r\n /** Carbon EveChildContainer::StopAllCurveSets (cpp:730-744). */\r\n @carbon.method\r\n @impl.implemented\r\n StopAllCurveSets()\r\n {\r\n for (const child of this.objects)\r\n {\r\n child?.StopAllCurveSets?.();\r\n }\r\n for (const curveSet of this.curveSets)\r\n {\r\n curveSet?.Stop();\r\n }\r\n }\r\n\r\n /** Carbon EveChildContainer::GetCurveSetDuration (cpp:788-813): maximum\r\n * GetMaxCurveDuration over matching own and child sets. */\r\n @carbon.method\r\n @impl.implemented\r\n GetCurveSetDuration(name)\r\n {\r\n if (!this.IsUpdating())\r\n {\r\n return 0;\r\n }\r\n\r\n const target = String(name ?? \"\");\r\n let duration = 0;\r\n for (const curveSet of this.curveSets)\r\n {\r\n if ((curveSet?.GetName() ?? curveSet?.name) === target)\r\n {\r\n duration = Math.max(duration, Number(curveSet.GetMaxCurveDuration?.() ?? 0));\r\n }\r\n }\r\n\r\n for (const child of this.objects)\r\n {\r\n duration = Math.max(duration, Number(child?.GetCurveSetDuration?.(target) ?? 0));\r\n }\r\n return duration;\r\n }\r\n\r\n /** Carbon EveChildContainer::GetRangeDuration (cpp:815-840): maximum named\r\n * range duration over matching own and child sets. */\r\n @carbon.method\r\n @impl.implemented\r\n GetRangeDuration(name, rangeName)\r\n {\r\n if (!this.IsUpdating())\r\n {\r\n return 0;\r\n }\r\n\r\n const target = String(name ?? \"\");\r\n let duration = 0;\r\n for (const curveSet of this.curveSets)\r\n {\r\n if ((curveSet?.GetName() ?? curveSet?.name) === target)\r\n {\r\n duration = Math.max(duration, Number(curveSet.GetRangeDuration(rangeName) ?? 0));\r\n }\r\n }\r\n\r\n for (const child of this.objects)\r\n {\r\n duration = Math.max(duration, Number(child?.GetRangeDuration?.(target, rangeName) ?? 0));\r\n }\r\n return duration;\r\n }\r\n\r\n /** Carbon EveChildContainer::GetControllerValueByName (cpp:1083-1098):\r\n * Carbon returns bool with a float& out; the JS port returns the value or\r\n * null when no controller exposes the named float variable. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The bool + float& out-param pair collapses to value-or-null in JS.\")\r\n GetControllerValueByName(name)\r\n {\r\n const key = String(name ?? \"\");\r\n for (const controller of this.controllers)\r\n {\r\n const value = controller?.GetFloatVariableByName?.(key);\r\n if (value !== undefined && value !== null)\r\n {\r\n return Number(value);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /** Carbon EveChildContainer::GetWorldVelocity (cpp:1012-1015). */\r\n @carbon.method\r\n @impl.implemented\r\n GetWorldVelocity(out = vec3.create())\r\n {\r\n return vec3.copy(out, this.#worldVelocity);\r\n }\r\n\r\n /** Carbon EveChildContainer::GetOwnerMaxSpeed (cpp:1073-1076). */\r\n @carbon.method\r\n @impl.implemented\r\n GetOwnerMaxSpeed()\r\n {\r\n return this.#ownerMaxSpeed;\r\n }\r\n\r\n /** Propagates the owning space object through the complete child subtree. */\r\n @carbon.method\r\n @impl.implemented\r\n SetOwner(owner)\r\n {\r\n if (this.GetOwner() === owner) return;\r\n super.SetOwner(owner);\r\n for (const child of this.objects) child.SetOwner(owner);\r\n }\r\n\r\n /** Propagates a modular part tag through the complete child subtree. */\r\n @carbon.method\r\n @impl.implemented\r\n SetPartTag(tag)\r\n {\r\n const next = Number(tag) >>> 0;\r\n if (this.GetPartTag() === next) return;\r\n super.SetPartTag(next);\r\n for (const child of this.objects) child.SetPartTag(next);\r\n }\r\n\r\n /** Collects locator sets owned by nested children in object-local space. */\r\n @carbon.method\r\n @impl.implemented\r\n CollectOwnedLocatorSets(parentTransform, out)\r\n {\r\n const childToObject = mat4.create();\r\n mat4.multiply(childToObject, parentTransform, this.RebuildLocalTransform());\r\n for (const child of this.objects) child.CollectOwnedLocatorSets(childToObject, out);\r\n }\r\n\r\n /** Collects geometry owned by nested children in object-local space. */\r\n @carbon.method\r\n @impl.implemented\r\n CollectOwnedGeometry(type, parentTransform, out, areaPool)\r\n {\r\n const childToObject = mat4.create();\r\n mat4.multiply(childToObject, parentTransform, this.RebuildLocalTransform());\r\n for (const child of this.objects) child.CollectOwnedGeometry(type, childToObject, out, areaPool);\r\n }\r\n\r\n /** Carbon EveChildContainer::SetInheritProperties (cpp:1017-1040): lazily\r\n * creates the property holder, then fans the color set out to children and\r\n * lights. */\r\n @carbon.method\r\n @impl.implemented\r\n SetInheritProperties(colorSet)\r\n {\r\n if (!this.inheritProperties)\r\n {\r\n this.inheritProperties = new EveChildInheritProperties();\r\n }\r\n this.inheritProperties.SetProperties(colorSet);\r\n\r\n for (const child of this.objects)\r\n {\r\n if (child instanceof IEveInheritPropertiesOwner) child.SetInheritProperties(colorSet);\r\n }\r\n for (const light of this.lights)\r\n {\r\n if (light instanceof IEveInheritPropertiesOwner) light.SetInheritProperties(colorSet);\r\n }\r\n }\r\n\r\n /** Carbon EveChildContainer::FindSoundEmitter (cpp:1042-1066): named local\r\n * observers first, then duck-typed recursion into the children. */\r\n @carbon.method\r\n @impl.implemented\r\n FindSoundEmitter(name)\r\n {\r\n const target = String(name ?? \"\");\r\n for (const observer of this.observers)\r\n {\r\n if (observer?.name === target)\r\n {\r\n return typeof observer.GetObserver === \"function\"\r\n ? observer.GetObserver()\r\n : observer.observer ?? null;\r\n }\r\n }\r\n\r\n for (const child of this.objects)\r\n {\r\n const emitter = child?.FindSoundEmitter?.(target);\r\n if (emitter)\r\n {\r\n return emitter;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n // Copies the caller's params into a fresh child-facing record (Carbon copies\r\n // EveChildUpdateParams by value, cpp:505/592). Allocated per call like\r\n // EveSpaceObject2's child fan-out - container recursion makes a module\r\n // scratch record unsafe.\r\n\r\n /**\r\n * Copies the caller's update params into a fresh child-facing record (Carbon\r\n * passes EveChildUpdateParams by value, cpp:505/592); allocated per call\r\n * because container recursion makes a shared module scratch record unsafe.\r\n */\r\n static #DeriveChildParams(params)\r\n {\r\n const next = new EveChildUpdateParams();\r\n if (params)\r\n {\r\n next.spaceObjectParent = params.spaceObjectParent ?? null;\r\n next.childParent = params.childParent ?? null;\r\n next.boneCount = params.boneCount ?? 0;\r\n next.bones = params.bones ?? null;\r\n next.ownerMaxSpeed = Number(params.ownerMaxSpeed) || 0;\r\n next.activationStrength = Number(params.activationStrength ?? 1);\r\n next.controllerUpdateFrequency = Number(params.controllerUpdateFrequency ?? 0.5);\r\n next.isVisible = params.isVisible !== false;\r\n if (params.localToWorldTransform?.length === 16)\r\n {\r\n mat4.copy(next.localToWorldTransform, params.localToWorldTransform);\r\n }\r\n if (params.worldVelocity)\r\n {\r\n vec3.copy(next.worldVelocity, params.worldVelocity);\r\n }\r\n }\r\n return next;\r\n }\r\n\r\n // Carbon reads Tr2Renderer::GetShaderModel() (a renderer global); the\r\n // browser runtime stamps it here. TR2SM_3_0_DEPTH is the DX11 depth path\r\n // EVE ships, so every quality-gated container renders by default.\r\n static shaderModel = TR2SHADERMODEL.TR2SM_3_0_DEPTH;\r\n\r\n static DisplayQualityModifier = Object.freeze({\r\n ONLY_REFLECTIONS: 6,\r\n SHADER_ALL: 5,\r\n SHADER_HIGHMID: 3,\r\n SHADER_LOWMID: 1,\r\n SHADER_HIGH: 4,\r\n SHADER_MED: 2,\r\n SHADER_LOW: 0\r\n });\r\n\r\n static Origin = Origin;\r\n\r\n}\r\n"],"names":["ZERO_VEC3","vec3","create","_EveChildContainer","_identity","EveChildContainer","_withIEveInheritPrope","withIEveInheritPropertiesOwner","withITr2Renderable","EveChildTransform","e","_init_displayFilter","_init_extra_displayFilter","_init_objects","_init_extra_objects","_init_transformModifiers","_init_extra_transformModifiers","_init_curveSets","_init_extra_curveSets","_init_worldTransform","_init_extra_worldTransform","_init_mute","_init_extra_mute","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_translation","_init_extra_translation","_init_rotation","_init_extra_rotation","_init_scaling","_init_extra_scaling","_init_localTransform","_init_extra_localTransform","_init_staticTransform","_init_extra_staticTransform","_init_alwaysOn","_init_extra_alwaysOn","_init_updateOnDisplay","_init_extra_updateOnDisplay","_init_attachments","_init_extra_attachments","_init_observers","_init_extra_observers","_init_fxAttributes","_init_extra_fxAttributes","_init_lights","_init_extra_lights","_init_controllers","_init_extra_controllers","_init_inheritProperties","_init_extra_inheritProperties","_init_useSRT","_init_extra_useSRT","_init_useStaticRotation","_init_extra_useStaticRotation","_init_useStaticScale","_init_extra_useStaticScale","_init_animationOwner","_init_extra_animationOwner","_init_origin","_init_extra_origin","_init_isPlacementRoot","_init_extra_isPlacementRoot","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","enum","list","read","mat4","readwrite","boolean","string","quat","objectRef","carbon","method","impl","adapted","reason","implemented","contextual","displayFilter","objects","transformModifiers","curveSets","worldTransform","mute","display","name","translation","rotation","scaling","fromValues","localTransform","staticTransform","alwaysOn","updateOnDisplay","attachments","observers","fxAttributes","lights","controllers","inheritProperties","useSRT","useStaticRotation","useStaticScale","animationOwner","origin","isPlacementRoot","Map","createChildPerObjectRecords","isRendering","IsRendering","isUpdating","IsUpdating","Initialize","RegisterChildren","controller","IsLinked","Link","OnModified","value","MuteChildren","Setup","scale","lowestLodVisible","GetName","SetName","String","SetOrigin","Number","SetAlwaysOn","IsAlwaysOn","SetDisplayQualityModifier","filter","SetMute","next","child","observer","AddTransformModifier","modifier","push","AddObserver","AddController","SetVariable","SetControllerVariable","key","set","HandleControllerEvent","eventName","HandleEvent","StartControllers","Start","SetProceduralContainerVariable","GetEffectChildByName","target","AddToEffectChildrenList","RegisterChild","RemoveFromEffectChildrenList","index","indexOf","UnregisterChild","splice","SetShaderOption","attachment","SetAnimationOwner","SetIsPlacementRoot","AddAttachment","ClearAttachments","length","Empty","UpdateSyncronous","updateContext","params","ownerMaxSpeed","newParams","isVisible","childParent","copy","localToWorldTransform","Update","UpdateAsyncronous","parentTransform","UpdateTransform","inheritParentPerObjectData","spaceObjectParent","stampChildTransforms","frequency","controllerUpdateFrequency","boneCount","bones","applyTransformModifiers","activationStrength","velocity","GetWorldVelocity","worldVelocity","time","GetTime","currentTime","curveSet","renderContext","fxAttribute","light","SetBoneMatrix","UpdateLights","UpdateVisibility","parentLod","Tr2Lod","TR2_LOD_HIGH","HasRenderables","getBoneList","GetAnimationController","GetRenderables","out","GetBoundingSphere","vec4","_query","childSphere","success","sph3","union","GetLocalToWorldTransform","ChangeLOD","lod","GetLights","lightManager","m","Math","hypot","AddLight","GetBatches","batches","batchType","perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","committed","HasTransparentBatches","GetSortValue","GetPerObjectData","_accumulator","updater","animationUpdater","IsInitialized","vs","SetIndex","GetMeshBoneCount","ps","settings","shaderModel","DisplayQualityModifier","TR2SHADERMODEL","TR2SM_AUTHORING","ONLY_REFLECTIONS","SHADER_LOW","TR2SM_3_0_LO","SHADER_LOWMID","TR2SM_3_0_HI","SHADER_MED","SHADER_HIGHMID","SHADER_HIGH","TR2SM_3_0_DEPTH","SHADER_ALL","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","object","Register","UnRegisterComponents","UnRegister","PlayCurveSet","rangeName","PlayTimeRange","ResetTimeRange","Play","StopCurveSet","Stop","UpdateCurveSet","PlayAllCurveSets","StopAllCurveSets","GetCurveSetDuration","duration","max","GetMaxCurveDuration","GetRangeDuration","GetControllerValueByName","GetFloatVariableByName","undefined","GetOwnerMaxSpeed","SetOwner","owner","GetOwner","SetPartTag","tag","GetPartTag","CollectOwnedLocatorSets","childToObject","multiply","RebuildLocalTransform","CollectOwnedGeometry","areaPool","SetInheritProperties","colorSet","EveChildInheritProperties","SetProperties","IEveInheritPropertiesOwner","FindSoundEmitter","GetObserver","emitter","#DeriveChildParams","EveChildUpdateParams","Object","freeze","Origin","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveChildContainer.js","sources":["../../../../../src/trinity/eve/child/EveChildContainer.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildContainer.h\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildContainer.cpp\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildContainer_Blue.cpp\nimport { mat4 } from \"#math/mat4\";\nimport { IEveInheritPropertiesOwner, withIEveInheritPropertiesOwner } from \"../IEveInheritPropertiesOwner.js\";\nimport { quat } from \"#math/quat\";\nimport { sph3 } from \"#math/sph3\";\nimport { vec3 } from \"#math/vec3\";\nimport { getBoneList } from \"../../core/animation/Tr2GrannyAnimation.js\";\nimport { vec4 } from \"#math/vec4\";\nimport { carbon, impl, io, type } from \"#schema\";\nimport { EveChildTransform, applyTransformModifiers } from \"./EveChildTransform.js\";\nimport { EveChildInheritProperties } from \"./EveChildInheritProperties.js\";\nimport { EveChildUpdateParams } from \"../EveChildUpdateParams.js\";\nimport { EveComponentType } from \"../EveComponentTypes.js\";\nimport { Origin } from \"../../generated/eve/child/enums.js\";\nimport { Tr2RenderReason, TR2SHADERMODEL } from \"../../generated/trinityCore/enums.js\";\nimport { Tr2Lod } from \"../EveLODHelper.js\";\nimport { Tr2PerObjectData } from \"../../core/rawData/perObjectData/Tr2PerObjectData.js\";\nimport {\n createChildPerObjectRecords,\n inheritParentPerObjectData,\n stampChildTransforms\n} from \"../perObjectData/childPerObjectRecords.js\";\nimport { withITr2Renderable } from \"../../core/ITr2Renderable.js\";\n\n// Module scratch (read-only zero vector; container recursion forbids mutable\n// module scratch here - see GetBoundingSphere).\nconst ZERO_VEC3 = vec3.create();\n\n\n/**\n * Space-object child that groups other children under one transform, owning\n * their curve sets, controllers, observers, lights, attachments and transform\n * modifiers, and gating them on a display-quality filter.\n */\n@type.define({ className: \"EveChildContainer\", family: \"eve/child\" })\nexport class EveChildContainer extends withIEveInheritPropertiesOwner(withITr2Renderable(EveChildTransform))\n{\n @io.notify\n @io.persist\n @type.int32\n @type.enum(\"DisplayQualityModifier\")\n displayFilter = 5;\n\n @io.persist\n @type.list(\"IEveSpaceObjectChild\")\n objects = [];\n\n @io.persist\n @type.list(\"IEveChildTransformModifier\")\n transformModifiers = [];\n\n @io.persist\n @type.list(\"TriCurveSet\")\n curveSets = [];\n\n @io.read\n @type.mat4\n worldTransform = mat4.create();\n\n @io.notify\n @io.readwrite\n @type.boolean\n mute = false;\n\n @io.notify\n @io.persist\n @type.boolean\n display = true;\n\n @io.persist\n @type.string\n name = \"\";\n\n @io.persist\n @type.vec3\n translation = vec3.create();\n\n @io.persist\n @type.quat\n rotation = quat.create();\n\n @io.persist\n @type.vec3\n scaling = vec3.fromValues(1, 1, 1);\n\n @io.persist\n @type.mat4\n localTransform = mat4.create();\n\n @io.persist\n @type.boolean\n staticTransform = false;\n\n @io.persist\n @type.boolean\n alwaysOn = false;\n\n @io.persist\n @type.boolean\n updateOnDisplay = true;\n\n @io.persist\n @type.list(\"IEveSpaceObjectAttachment\")\n attachments = [];\n\n @io.persist\n @type.list(\"TriObserverLocal\")\n observers = [];\n\n @io.persist\n @type.list(\"IEveFxAttribute\")\n fxAttributes = [];\n\n @io.persist\n @type.list(\"Tr2Light\")\n lights = [];\n\n @io.persist\n @type.list(\"ITr2Controller\")\n controllers = [];\n\n @io.persist\n @type.objectRef(\"EveChildInheritProperties\")\n inheritProperties = null;\n\n @io.persist\n @type.boolean\n useSRT = true;\n\n @io.persist\n @type.boolean\n useStaticRotation = false;\n\n @io.persist\n @type.boolean\n useStaticScale = false;\n\n // SOF-authored placement values; persisted so the values interchange\n // reproduces Carbon's hidden container placement state.\n @io.persist\n @type.objectRef(\"ITr2GrannyAnimationOwner\")\n animationOwner = null;\n\n @io.persist\n @type.int32\n @type.enum(\"Origin\")\n origin = 0;\n\n @io.persist\n @type.boolean\n isPlacementRoot = false;\n\n #controllerVariables = new Map();\n\n // Carbon m_worldVelocity/m_ownerMaxSpeed/m_activationStrength/m_hasUpdated:\n // runtime-only frame state (never persisted; Carbon keeps them out of the\n // Blue surface too).\n #worldVelocity = vec3.create();\n\n #ownerMaxSpeed = 0;\n\n #activationStrength = 1;\n\n /** m_vsData / m_psData - this container's PERSISTENT per-object pair. */\n #perObjectData = createChildPerObjectRecords();\n\n /** Carbon's local `lastWorldTransform`, kept across frames here. */\n #lastWorldTransform = mat4.create();\n\n #hasUpdated = false;\n\n /** Blue read-only property alias for IsRendering. */\n get isRendering()\n {\n return this.IsRendering();\n }\n\n /** Blue read-only property alias for IsUpdating. */\n get isUpdating()\n {\n return this.IsUpdating();\n }\n\n /**\n * Links every authored controller that is not already linked to this\n * container, so controller variables and events reach them.\n */\n @carbon.method\n @impl.adapted\n Initialize()\n {\n this.RegisterChildren(this.objects);\n for (const controller of this.controllers)\n {\n if (!controller?.IsLinked())\n {\n controller?.Link(this);\n }\n }\n return true;\n }\n\n /** Carbon EveChildContainer::OnModified (cpp:76-88): display/displayFilter\n * changes re-register with the scene component registry (engine-owned,\n * omitted); a mute change fans out to children and observers. The value\n * argument follows the repo's OnModified duck (field name or field value). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Registry re-registration on display/displayFilter changes is engine-owned; the mute fan-out side effect is ported.\")\n OnModified(value = null)\n {\n if (value === \"mute\" || value === this.mute)\n {\n this.MuteChildren();\n }\n return true;\n }\n\n /**\n * Applies the authored scale/rotation/translation through the shared child\n * transform setup and returns the rebuilt local transform; lowestLodVisible is\n * accepted for signature parity only.\n */\n @carbon.method\n @impl.implemented\n Setup(scale = null, rotation = null, translation = null, lowestLodVisible = null)\n {\n return super.Setup(scale, rotation, translation, lowestLodVisible);\n }\n\n /**\n * Returns the authored container name, which GetEffectChildByName matches\n * against on the parent side.\n */\n @carbon.method\n @impl.implemented\n GetName()\n {\n return this.name;\n }\n\n /** Sets the authored container name, coercing nullish to the empty string. */\n @carbon.method\n @impl.implemented\n SetName(name)\n {\n this.name = String(name ?? \"\");\n }\n\n /**\n * Records whether this container's placement was authored in space or by SOF\n * (the Origin enum).\n */\n @carbon.method\n @impl.implemented\n SetOrigin(origin)\n {\n this.origin = Number(origin) | 0;\n }\n\n /** Stores the always-on flag that IsAlwaysOn reports to the owner. */\n @carbon.method\n @impl.implemented\n SetAlwaysOn(alwaysOn)\n {\n this.alwaysOn = !!alwaysOn;\n }\n\n /** Reports the authored always-on flag. */\n @carbon.method\n @impl.implemented\n IsAlwaysOn()\n {\n return this.alwaysOn;\n }\n\n /**\n * Sets the display-quality filter that IsRendering tests the current shader\n * model against, which in turn gates every update and render path on this\n * container.\n */\n @carbon.method\n @impl.implemented\n SetDisplayQualityModifier(filter)\n {\n this.displayFilter = Number(filter) | 0;\n }\n\n /**\n * Sets the mute flag and, only when it changes, pushes it down to the\n * contained children and local observers.\n */\n @carbon.method\n @impl.implemented\n SetMute(mute)\n {\n const next = !!mute;\n if (next !== this.mute)\n {\n this.mute = next;\n this.MuteChildren();\n }\n }\n\n /**\n * Pushes this container's current mute flag onto every contained child and\n * local observer - it mutates their state, not the container's.\n */\n @carbon.method\n @impl.implemented\n MuteChildren()\n {\n for (const child of this.objects)\n {\n child?.SetMute?.(this.mute);\n }\n for (const observer of this.observers)\n {\n observer?.SetMute(this.mute);\n }\n }\n\n /**\n * Appends a transform modifier; modifiers fold over the container's world\n * transform in insertion order on each async update.\n */\n @carbon.method\n @impl.implemented\n AddTransformModifier(modifier)\n {\n this.transformModifiers.push(modifier);\n }\n\n /**\n * Appends a local audio observer, which is re-placed from the container's\n * world transform on every sync update.\n */\n @carbon.method\n @impl.implemented\n AddObserver(observer)\n {\n this.observers.push(observer);\n }\n\n /**\n * Appends a controller, links it to this container, and replays every\n * controller variable set so far onto it so it starts in sync.\n */\n @carbon.method\n @impl.adapted\n AddController(controller)\n {\n this.controllers.push(controller);\n controller?.Link(this);\n for (const [name, value] of this.#controllerVariables)\n {\n controller?.SetVariable(name, value);\n }\n }\n\n /**\n * Records a named float variable, pushes it to every controller on this\n * container, and recurses into the contained children; the recorded value is\n * also replayed onto controllers and children added later.\n */\n @carbon.method\n @impl.implemented\n SetControllerVariable(name, value)\n {\n const key = String(name ?? \"\");\n const next = Number(value);\n this.#controllerVariables.set(key, next);\n for (const controller of this.controllers)\n {\n controller?.SetVariable(key, next);\n }\n for (const child of this.objects)\n {\n child?.SetControllerVariable(key, next);\n }\n }\n\n /**\n * Fires a named controller event on every controller here and recurses into\n * the contained children.\n */\n @carbon.method\n @impl.implemented\n HandleControllerEvent(name)\n {\n const eventName = String(name ?? \"\");\n for (const controller of this.controllers)\n {\n controller?.HandleEvent(eventName);\n }\n for (const child of this.objects)\n {\n child?.HandleControllerEvent(eventName);\n }\n }\n\n /** Starts every controller here and recurses into the contained children. */\n @carbon.method\n @impl.implemented\n StartControllers()\n {\n for (const controller of this.controllers)\n {\n controller?.Start();\n }\n for (const child of this.objects)\n {\n child?.StartControllers();\n }\n }\n\n /**\n * Forwards a procedural container variable to the contained children; a plain\n * container holds none of its own.\n */\n @carbon.method\n @impl.implemented\n SetProceduralContainerVariable(name, value)\n {\n for (const child of this.objects)\n {\n child?.SetProceduralContainerVariable?.(name, value);\n }\n }\n\n /**\n * Returns the first direct child whose GetName()/name matches, or null; the\n * search does not recurse into nested containers.\n */\n @carbon.method\n @impl.implemented\n GetEffectChildByName(name)\n {\n const target = String(name ?? \"\");\n for (const child of this.objects)\n {\n if ((child?.GetName?.() ?? child?.name ?? \"\") === target)\n {\n return child;\n }\n }\n return null;\n }\n\n /**\n * Appends a child and replays every controller variable set so far onto it,\n * then returns that same child.\n */\n @carbon.method\n @impl.adapted\n AddToEffectChildrenList(child)\n {\n this.objects.push(child);\n this.RegisterChild(child);\n for (const [name, value] of this.#controllerVariables)\n {\n child?.SetControllerVariable(name, value);\n }\n return child;\n }\n\n /** Removes a child by identity and reports whether it was present. */\n @carbon.method\n @impl.implemented\n RemoveFromEffectChildrenList(child)\n {\n const index = this.objects.indexOf(child);\n if (index !== -1)\n {\n this.UnregisterChild(child);\n this.objects.splice(index, 1);\n return true;\n }\n return false;\n }\n\n /**\n * Forwards a shader option to every contained child and attachment; the\n * container compiles nothing itself.\n */\n @carbon.method\n @impl.implemented\n SetShaderOption(name, value)\n {\n for (const child of this.objects)\n {\n child?.SetShaderOption?.(name, value);\n }\n for (const attachment of this.attachments)\n {\n if (!attachment) continue;\n attachment.SetShaderOption(name, value);\n }\n }\n\n /**\n * Stores the Granny animation owner supplied by SOF placement; the bone-list\n * override that would consume it awaits the JS animation seam.\n */\n @carbon.method\n @impl.implemented\n SetAnimationOwner(animationOwner)\n {\n this.animationOwner = animationOwner ?? null;\n }\n\n /**\n * Flags this container as a SOF placement root - authored placement state,\n * persisted for interchange parity, with no consumer inside the container\n * itself.\n */\n @carbon.method\n @impl.implemented\n SetIsPlacementRoot(isPlacementRoot)\n {\n this.isPlacementRoot = !!isPlacementRoot;\n }\n\n /**\n * Appends an attachment; attachments are the only thing a container renders\n * itself (HasRenderables) and the only thing GetBatches submits.\n */\n @carbon.method\n @impl.implemented\n AddAttachment(attachment)\n {\n this.attachments.push(attachment);\n }\n\n /**\n * Drops every attachment, which also stops the container from contributing any\n * renderable of its own.\n */\n @carbon.method\n @impl.implemented\n ClearAttachments()\n {\n this.attachments.length = 0;\n }\n\n /**\n * Reports whether the container owns nothing at all - no children, lights,\n * attachments, controllers, curve sets, transform modifiers or observers.\n */\n @carbon.method\n @impl.implemented\n Empty()\n {\n return this.objects.length === 0 &&\n this.lights.length === 0 &&\n this.attachments.length === 0 &&\n this.controllers.length === 0 &&\n this.curveSets.length === 0 &&\n this.transformModifiers.length === 0 &&\n this.observers.length === 0;\n }\n\n /**\n * Sync-side frame update (Carbon EveChildContainer::UpdateSyncronous,\n * cpp:496-518): gate on IsUpdating, remember the owner max speed, then\n * recurse into the children with childParent params rebased onto this\n * container's world transform, and refresh the local observers.\n * @param {Object} updateContext - frame context (EveUpdateContext)\n * @param {EveChildUpdateParams} params\n */\n @carbon.method\n @impl.implemented\n UpdateSyncronous(updateContext, params)\n {\n if (!this.IsUpdating())\n {\n return;\n }\n\n this.#ownerMaxSpeed = Number(params?.ownerMaxSpeed) || 0;\n\n const newParams = EveChildContainer.#DeriveChildParams(params);\n newParams.isVisible = (params?.isVisible !== false) && this.display;\n newParams.childParent = this;\n mat4.copy(newParams.localToWorldTransform, this.worldTransform);\n\n for (const child of this.objects)\n {\n child?.UpdateSyncronous(updateContext, newParams);\n }\n for (const observer of this.observers)\n {\n observer?.Update(this.worldTransform);\n }\n }\n\n /**\n * Per-frame async update (Carbon EveChildContainer::UpdateAsyncronous +\n * DoUpdateAsyncronous, cpp:520-641): rebuild the world transform from the\n * parent, tick the controllers, fold the transform modifiers, then recurse\n * into the children with childParent params, update the curve sets and fx\n * attributes, and refresh light/attachment bone state. Carbon's wrapper\n * advances the GPU bone ring buffer and may dispatch the body onto the\n * placement task group (cpp:522-538) - both engine-owned, so the JS port\n * runs the DoUpdateAsyncronous body inline behind the same IsUpdating gate.\n * @param {Object} updateContext - frame context (EveUpdateContext), threaded to modifiers\n * @param {EveChildUpdateParams} params - localToWorldTransform + boneCount/bones\n * @returns {Float32Array} worldTransform\n */\n @carbon.method\n @carbon.contextual([\"camera\"])\n @impl.adapted\n @impl.reason(\"The GPU bone ring buffer, task-group dispatch, per-object VS/PS struct refresh, and the Granny bone-list override are engine/animation seams; the CPU update fan-out is ported.\")\n UpdateAsyncronous(updateContext, params)\n {\n if (!this.IsUpdating())\n {\n return this.worldTransform;\n }\n\n const parentTransform = params?.localToWorldTransform;\n\n // Carbon captures the OUTGOING transform before rebuilding.\n mat4.copy(this.#lastWorldTransform, this.worldTransform);\n\n if (parentTransform && parentTransform.length === 16)\n {\n this.UpdateTransform(parentTransform);\n }\n\n // Carbon cpp:576-589: inherit the hull's per-object values, rebase the clip\n // data by this child's translation, then stamp our own transforms.\n inheritParentPerObjectData(this.#perObjectData, params?.spaceObjectParent, this.translation);\n stampChildTransforms(this.#perObjectData, this.worldTransform, this.#lastWorldTransform);\n\n const frequency = params?.controllerUpdateFrequency ?? 0.5;\n for (const controller of this.controllers)\n {\n controller?.Update(frequency);\n }\n\n // Carbon's DoUpdateAsyncronous overrides boneCount/bones from this\n // container's own animation controller here (Tr2GrannyAnimationUtils::\n // GetBoneList, cpp:556-559) before folding modifiers. AttachToBone already\n // consumes an explicitly threaded params palette; overriding that palette\n // from the animation controller remains deferred until the Granny\n // bone-list API is ported.\n const boneCount = params?.boneCount ?? 0;\n const bones = params?.bones ?? null;\n\n applyTransformModifiers(this, updateContext, boneCount, bones);\n\n this.#activationStrength = Number(params?.activationStrength ?? 1);\n\n // Carbon (cpp:568-590): when attachments exist the per-object VS/PS\n // structs are refreshed from the parent. This port retains persistent\n // RawData and returns it from GetPerObjectData; no live-object serializer\n // indirection is involved.\n\n const newParams = EveChildContainer.#DeriveChildParams(params);\n newParams.isVisible = (params?.isVisible !== false) && this.display;\n newParams.childParent = this;\n newParams.boneCount = boneCount;\n newParams.bones = bones;\n mat4.copy(newParams.localToWorldTransform, this.worldTransform);\n\n // Carbon (cpp:599-610): a space-object-rooted container samples the\n // owner's world velocity; nested containers inherit it via params.\n if (params?.spaceObjectParent)\n {\n if (!params.childParent)\n {\n const velocity = params.spaceObjectParent.GetWorldVelocity?.(this.#worldVelocity) ??\n params.spaceObjectParent.worldVelocity;\n if (velocity && velocity !== this.#worldVelocity)\n {\n vec3.copy(this.#worldVelocity, velocity);\n }\n vec3.copy(newParams.worldVelocity, this.#worldVelocity);\n }\n else\n {\n vec3.copy(this.#worldVelocity, params.worldVelocity ?? ZERO_VEC3);\n }\n }\n\n for (const child of this.objects)\n {\n child?.UpdateAsyncronous(updateContext, newParams);\n }\n\n // Carbon (cpp:617-624): container-owned curve sets tick with the frame\n // time as BOTH realTime and simTime.\n if (this.curveSets.length)\n {\n const time = Number(updateContext?.GetTime?.() ?? updateContext?.currentTime ?? updateContext?.time ?? 0);\n for (const curveSet of this.curveSets)\n {\n curveSet.Update(time, time, updateContext.renderContext);\n }\n }\n\n for (const fxAttribute of this.fxAttributes)\n {\n fxAttribute.UpdateAsyncronous(updateContext, newParams);\n }\n\n for (const light of this.lights)\n {\n light?.SetBoneMatrix?.(bones, boneCount);\n }\n\n for (const attachment of this.attachments)\n {\n if (!attachment) continue;\n attachment.UpdateLights(this.worldTransform, bones, boneCount, this.#activationStrength, 0);\n }\n\n this.#hasUpdated = true;\n return this.worldTransform;\n }\n\n /**\n * Frame visibility fan-out (Carbon EveChildContainer::UpdateVisibility,\n * cpp:379-410): gate on display/IsUpdating, recurse into the children with\n * the unchanged parent transform/LOD, then refresh attachment visibility\n * against this container's world transform.\n * @param {Object} updateContext - frame context (frustum ducks)\n * @param {Float32Array} parentTransform\n * @param {Number} parentLod - parent Tr2Lod level\n * @returns {Boolean} whether the fan-out ran\n */\n @carbon.method\n @impl.implemented\n UpdateVisibility(updateContext, parentTransform = null, parentLod = Tr2Lod.TR2_LOD_HIGH)\n {\n if (!this.display)\n {\n return false;\n }\n if (!this.IsUpdating())\n {\n return false;\n }\n\n for (const child of this.objects)\n {\n child?.UpdateVisibility(updateContext, parentTransform, parentLod);\n }\n\n if (this.HasRenderables())\n {\n // cpp:398-409 - the container has no updater of its own; the palette\n // comes from whichever object owns the animation.\n const { bones, boneCount } = getBoneList(this.animationOwner?.GetAnimationController?.());\n\n for (const attachment of this.attachments)\n {\n if (!attachment) continue;\n attachment.UpdateVisibility(updateContext, this.worldTransform, bones, boneCount);\n }\n }\n return true;\n }\n\n /** Carbon EveChildContainer::GetRenderables (cpp:412-432): the container\n * itself renders only when it owns attachments; children always recurse. */\n @carbon.method\n @impl.implemented\n GetRenderables(out = [])\n {\n if (!this.display || !this.#hasUpdated)\n {\n return out;\n }\n if (!this.IsRendering())\n {\n return out;\n }\n\n if (this.HasRenderables())\n {\n out.push(this);\n }\n\n for (const child of this.objects)\n {\n child?.GetRenderables(out);\n }\n return out;\n }\n\n /** Carbon EveChildContainer::GetBoundingSphere (cpp:434-452): the union of\n * the children's spheres (BoundingSphereSetOrUpdate -> sph3.union). The\n * child sphere is a per-call local rather than module scratch because\n * containers nest - a shared scratch would be clobbered between recursion\n * levels; this is a bounds query, not the per-frame update hot path. */\n @carbon.method\n @impl.implemented\n GetBoundingSphere(out = vec4.create(), _query = 0)\n {\n if (!this.IsUpdating())\n {\n return false;\n }\n\n const childSphere = vec4.create();\n let success = false;\n for (const child of this.objects)\n {\n if (child?.GetBoundingSphere?.(childSphere))\n {\n if (success)\n {\n sph3.union(out, out, childSphere);\n }\n else\n {\n vec4.copy(out, childSphere);\n }\n success = true;\n }\n }\n return success;\n }\n\n /** Carbon EveChildContainer::GetLocalToWorldTransform (cpp:644-647); the\n * optional out follows the EveChildInstancedMeshes copy-out shape. */\n @carbon.method\n @impl.implemented\n GetLocalToWorldTransform(out = null)\n {\n if (out)\n {\n return mat4.copy(out, this.worldTransform);\n }\n return this.worldTransform;\n }\n\n /** Carbon EveChildContainer::ChangeLOD (cpp:649-655): fan-out only. */\n @carbon.method\n @impl.implemented\n ChangeLOD(lod)\n {\n for (const child of this.objects)\n {\n child?.ChangeLOD?.(lod);\n }\n }\n\n /** Carbon EveChildContainer::GetLights (cpp:657-675): each light is added\n * with the container world transform and the average basis-length scaling\n * ((|X| + |Y| + |Z|) / 3 of the world basis rows - single-matrix reads, no\n * composition). The light manager is duck-typed. */\n @carbon.method\n @impl.implemented\n GetLights(lightManager)\n {\n if (!this.display || !this.#hasUpdated)\n {\n return;\n }\n if (!this.IsRendering())\n {\n return;\n }\n\n const m = this.worldTransform;\n const scaling = (\n Math.hypot(m[0], m[1], m[2]) +\n Math.hypot(m[4], m[5], m[6]) +\n Math.hypot(m[8], m[9], m[10])\n ) / 3;\n\n for (const light of this.lights)\n {\n light?.AddLight(lightManager, m, scaling);\n }\n }\n\n /** Carbon EveChildContainer::GetBatches (cpp:1134-1143): attachments only,\n * gated on display, the NORMAL render reason, and a non-zero activation\n * strength. Returns whether any batch was committed (JS addition; Carbon\n * returns void). */\n @carbon.method\n @impl.implemented\n GetBatches(batches, batchType, perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\n {\n if (!this.display || reason !== Tr2RenderReason.TR2RENDERREASON_NORMAL || this.#activationStrength === 0)\n {\n return false;\n }\n\n let committed = false;\n for (const attachment of this.attachments)\n {\n if (!attachment) continue;\n committed = attachment.GetBatches(batches, batchType, perObjectData, reason) === true || committed;\n }\n return committed;\n }\n\n /** Carbon EveChildContainer::HasTransparentBatches (cpp:1145-1148). */\n @carbon.method\n @impl.implemented\n HasTransparentBatches()\n {\n return false;\n }\n\n /** Carbon EveChildContainer::GetSortValue (cpp:1150-1153). */\n @carbon.method\n @impl.implemented\n GetSortValue()\n {\n return 0;\n }\n\n /**\n * Carbon EveChildContainer::GetPerObjectData (cpp:1180-1203): uploads the\n * animation owner's bone palette, then hands back a handle over this\n * container's two PERSISTENT buffers. The ring offsets are GPU addresses with\n * no CPU derivation and keep their defaults; the bone COUNT is CPU-known.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"GPU ring-buffer offsets have no CPU derivation and keep their defaults; every CPU-known field is filled.\")\n GetPerObjectData(_accumulator = null)\n {\n const updater = this.animationOwner?.animationUpdater ?? this.animationUpdater;\n\n if (updater?.IsInitialized?.())\n {\n this.#perObjectData.vs.SetIndex(\"boneOffsets\", 2, [ updater.GetMeshBoneCount?.() ?? 0 ]);\n }\n\n return { vs: this.#perObjectData.vs, ps: this.#perObjectData.ps };\n }\n\n /** Carbon EveChildContainer::HasRenderables (cpp:1129-1132): the container\n * renders only for its attachments. */\n @carbon.method\n @impl.implemented\n HasRenderables()\n {\n return this.attachments.length > 0;\n }\n\n /** Carbon EveChildContainer::IsRendering (cpp:334-362): whether the current\n * shader model passes this container's display filter. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon reads the Tr2Renderer shader-model global; the browser runtime stamps EveChildContainer.shaderModel (default TR2SM_3_0_DEPTH, the DX11 depth path EVE ships).\")\n IsRendering()\n {\n const settings = EveChildContainer.shaderModel;\n const filter = EveChildContainer.DisplayQualityModifier;\n\n if (settings === TR2SHADERMODEL.TR2SM_AUTHORING && this.displayFilter !== filter.ONLY_REFLECTIONS)\n {\n return true;\n }\n\n switch (this.displayFilter)\n {\n case filter.SHADER_LOW:\n return settings === TR2SHADERMODEL.TR2SM_3_0_LO;\n case filter.SHADER_LOWMID:\n return settings <= TR2SHADERMODEL.TR2SM_3_0_HI;\n case filter.SHADER_MED:\n return settings === TR2SHADERMODEL.TR2SM_3_0_HI;\n case filter.SHADER_HIGHMID:\n return settings >= TR2SHADERMODEL.TR2SM_3_0_HI;\n case filter.SHADER_HIGH:\n return settings === TR2SHADERMODEL.TR2SM_3_0_DEPTH;\n case filter.SHADER_ALL:\n return true;\n case filter.ONLY_REFLECTIONS:\n return false;\n }\n return false;\n }\n\n /** Carbon EveChildContainer::IsUpdating (cpp:364-367). */\n @carbon.method\n @impl.implemented\n IsUpdating()\n {\n return (this.display || !this.updateOnDisplay) &&\n (this.IsRendering() || this.displayFilter === EveChildContainer.DisplayQualityModifier.ONLY_REFLECTIONS);\n }\n\n /** Carbon EveChildContainer::RegisterComponents (cpp:258-284): LightOwner\n * when lights are authored, then forwards the contained objects and the\n * attachments. Gate m_display && IsUpdating(). */\n @carbon.method\n @impl.implemented\n RegisterComponents()\n {\n const registry = this.GetComponentRegistry();\n if (registry && this.display && this.IsUpdating())\n {\n if (this.lights.length)\n {\n registry.RegisterComponent(EveComponentType.LightOwner, this);\n }\n\n for (const object of this.objects)\n {\n object?.Register(registry);\n }\n\n for (const attachment of this.attachments)\n {\n attachment?.Register(registry);\n }\n }\n }\n\n /** Carbon EveChildContainer::UnRegisterComponents (cpp:290-311): forwards\n * the contained objects and attachments only (own components were already\n * removed by EveEntity::UnRegister, EveEntity.cpp:90); no display/IsUpdating\n * re-check. */\n @carbon.method\n @impl.implemented\n UnRegisterComponents()\n {\n const registry = this.GetComponentRegistry();\n if (registry)\n {\n for (const object of this.objects)\n {\n object?.UnRegister(registry);\n }\n\n for (const attachment of this.attachments)\n {\n attachment?.UnRegister(registry);\n }\n }\n }\n\n /** Carbon EveChildContainer::PlayCurveSet (cpp:682-712): named own sets play\n * (or play a named range); children recurse via the curve-set-owner duck. */\n @carbon.method\n @impl.implemented\n PlayCurveSet(name, rangeName = \"\")\n {\n if (!this.IsUpdating())\n {\n return;\n }\n\n const target = String(name ?? \"\");\n for (const curveSet of this.curveSets)\n {\n if ((curveSet?.GetName() ?? curveSet?.name) !== target)\n {\n continue;\n }\n if (rangeName)\n {\n curveSet.PlayTimeRange?.(rangeName);\n }\n else\n {\n curveSet.ResetTimeRange();\n curveSet.Play();\n }\n }\n\n for (const child of this.objects)\n {\n child?.PlayCurveSet?.(target, rangeName);\n }\n }\n\n /** Carbon EveChildContainer::StopCurveSet (cpp:746-768). */\n @carbon.method\n @impl.implemented\n StopCurveSet(name)\n {\n if (!this.IsUpdating())\n {\n return;\n }\n\n const target = String(name ?? \"\");\n for (const curveSet of this.curveSets)\n {\n if ((curveSet?.GetName() ?? curveSet?.name) === target)\n {\n curveSet.Stop();\n }\n }\n\n for (const child of this.objects)\n {\n child?.StopCurveSet?.(target);\n }\n }\n\n /** Carbon EveChildContainer::UpdateCurveSet (cpp:770-786): samples matching\n * own and child sets at an explicit time (both clocks, as Carbon does). */\n @carbon.method\n @impl.implemented\n UpdateCurveSet(name, time, renderContext = null)\n {\n const target = String(name ?? \"\");\n for (const curveSet of this.curveSets)\n {\n if (curveSet.GetName() === target)\n {\n curveSet.Update(time, time, renderContext);\n }\n }\n\n for (const child of this.objects)\n {\n child?.UpdateCurveSet?.(target, time, renderContext);\n }\n }\n\n /** Carbon EveChildContainer::PlayAllCurveSets (cpp:714-728): children\n * first, then every own set. */\n @carbon.method\n @impl.implemented\n PlayAllCurveSets()\n {\n for (const child of this.objects)\n {\n child?.PlayAllCurveSets?.();\n }\n for (const curveSet of this.curveSets)\n {\n curveSet?.Play();\n }\n }\n\n /** Carbon EveChildContainer::StopAllCurveSets (cpp:730-744). */\n @carbon.method\n @impl.implemented\n StopAllCurveSets()\n {\n for (const child of this.objects)\n {\n child?.StopAllCurveSets?.();\n }\n for (const curveSet of this.curveSets)\n {\n curveSet?.Stop();\n }\n }\n\n /** Carbon EveChildContainer::GetCurveSetDuration (cpp:788-813): maximum\n * GetMaxCurveDuration over matching own and child sets. */\n @carbon.method\n @impl.implemented\n GetCurveSetDuration(name)\n {\n if (!this.IsUpdating())\n {\n return 0;\n }\n\n const target = String(name ?? \"\");\n let duration = 0;\n for (const curveSet of this.curveSets)\n {\n if ((curveSet?.GetName() ?? curveSet?.name) === target)\n {\n duration = Math.max(duration, Number(curveSet.GetMaxCurveDuration?.() ?? 0));\n }\n }\n\n for (const child of this.objects)\n {\n duration = Math.max(duration, Number(child?.GetCurveSetDuration?.(target) ?? 0));\n }\n return duration;\n }\n\n /** Carbon EveChildContainer::GetRangeDuration (cpp:815-840): maximum named\n * range duration over matching own and child sets. */\n @carbon.method\n @impl.implemented\n GetRangeDuration(name, rangeName)\n {\n if (!this.IsUpdating())\n {\n return 0;\n }\n\n const target = String(name ?? \"\");\n let duration = 0;\n for (const curveSet of this.curveSets)\n {\n if ((curveSet?.GetName() ?? curveSet?.name) === target)\n {\n duration = Math.max(duration, Number(curveSet.GetRangeDuration(rangeName) ?? 0));\n }\n }\n\n for (const child of this.objects)\n {\n duration = Math.max(duration, Number(child?.GetRangeDuration?.(target, rangeName) ?? 0));\n }\n return duration;\n }\n\n /** Carbon EveChildContainer::GetControllerValueByName (cpp:1083-1098):\n * Carbon returns bool with a float& out; the JS port returns the value or\n * null when no controller exposes the named float variable. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"The bool + float& out-param pair collapses to value-or-null in JS.\")\n GetControllerValueByName(name)\n {\n const key = String(name ?? \"\");\n for (const controller of this.controllers)\n {\n const value = controller?.GetFloatVariableByName?.(key);\n if (value !== undefined && value !== null)\n {\n return Number(value);\n }\n }\n return null;\n }\n\n /** Carbon EveChildContainer::GetWorldVelocity (cpp:1012-1015). */\n @carbon.method\n @impl.implemented\n GetWorldVelocity(out = vec3.create())\n {\n return vec3.copy(out, this.#worldVelocity);\n }\n\n /** Carbon EveChildContainer::GetOwnerMaxSpeed (cpp:1073-1076). */\n @carbon.method\n @impl.implemented\n GetOwnerMaxSpeed()\n {\n return this.#ownerMaxSpeed;\n }\n\n /** Propagates the owning space object through the complete child subtree. */\n @carbon.method\n @impl.implemented\n SetOwner(owner)\n {\n if (this.GetOwner() === owner) return;\n super.SetOwner(owner);\n for (const child of this.objects) child.SetOwner(owner);\n }\n\n /** Propagates a modular part tag through the complete child subtree. */\n @carbon.method\n @impl.implemented\n SetPartTag(tag)\n {\n const next = Number(tag) >>> 0;\n if (this.GetPartTag() === next) return;\n super.SetPartTag(next);\n for (const child of this.objects) child.SetPartTag(next);\n }\n\n /** Collects locator sets owned by nested children in object-local space. */\n @carbon.method\n @impl.implemented\n CollectOwnedLocatorSets(parentTransform, out)\n {\n const childToObject = mat4.create();\n mat4.multiply(childToObject, parentTransform, this.RebuildLocalTransform());\n for (const child of this.objects) child.CollectOwnedLocatorSets(childToObject, out);\n }\n\n /** Collects geometry owned by nested children in object-local space. */\n @carbon.method\n @impl.implemented\n CollectOwnedGeometry(type, parentTransform, out, areaPool)\n {\n const childToObject = mat4.create();\n mat4.multiply(childToObject, parentTransform, this.RebuildLocalTransform());\n for (const child of this.objects) child.CollectOwnedGeometry(type, childToObject, out, areaPool);\n }\n\n /** Carbon EveChildContainer::SetInheritProperties (cpp:1017-1040): lazily\n * creates the property holder, then fans the color set out to children and\n * lights. */\n @carbon.method\n @impl.implemented\n SetInheritProperties(colorSet)\n {\n if (!this.inheritProperties)\n {\n this.inheritProperties = new EveChildInheritProperties();\n }\n this.inheritProperties.SetProperties(colorSet);\n\n for (const child of this.objects)\n {\n if (child instanceof IEveInheritPropertiesOwner) child.SetInheritProperties(colorSet);\n }\n for (const light of this.lights)\n {\n if (light instanceof IEveInheritPropertiesOwner) light.SetInheritProperties(colorSet);\n }\n }\n\n /** Carbon EveChildContainer::FindSoundEmitter (cpp:1042-1066): named local\n * observers first, then duck-typed recursion into the children. */\n @carbon.method\n @impl.implemented\n FindSoundEmitter(name)\n {\n const target = String(name ?? \"\");\n for (const observer of this.observers)\n {\n if (observer?.name === target)\n {\n return typeof observer.GetObserver === \"function\"\n ? observer.GetObserver()\n : observer.observer ?? null;\n }\n }\n\n for (const child of this.objects)\n {\n const emitter = child?.FindSoundEmitter?.(target);\n if (emitter)\n {\n return emitter;\n }\n }\n return null;\n }\n\n // Copies the caller's params into a fresh child-facing record (Carbon copies\n // EveChildUpdateParams by value, cpp:505/592). Allocated per call like\n // EveSpaceObject2's child fan-out - container recursion makes a module\n // scratch record unsafe.\n\n /**\n * Copies the caller's update params into a fresh child-facing record (Carbon\n * passes EveChildUpdateParams by value, cpp:505/592); allocated per call\n * because container recursion makes a shared module scratch record unsafe.\n */\n static #DeriveChildParams(params)\n {\n const next = new EveChildUpdateParams();\n if (params)\n {\n next.spaceObjectParent = params.spaceObjectParent ?? null;\n next.childParent = params.childParent ?? null;\n next.boneCount = params.boneCount ?? 0;\n next.bones = params.bones ?? null;\n next.ownerMaxSpeed = Number(params.ownerMaxSpeed) || 0;\n next.activationStrength = Number(params.activationStrength ?? 1);\n next.controllerUpdateFrequency = Number(params.controllerUpdateFrequency ?? 0.5);\n next.isVisible = params.isVisible !== false;\n if (params.localToWorldTransform?.length === 16)\n {\n mat4.copy(next.localToWorldTransform, params.localToWorldTransform);\n }\n if (params.worldVelocity)\n {\n vec3.copy(next.worldVelocity, params.worldVelocity);\n }\n }\n return next;\n }\n\n // Carbon reads Tr2Renderer::GetShaderModel() (a renderer global); the\n // browser runtime stamps it here. TR2SM_3_0_DEPTH is the DX11 depth path\n // EVE ships, so every quality-gated container renders by default.\n static shaderModel = TR2SHADERMODEL.TR2SM_3_0_DEPTH;\n\n static DisplayQualityModifier = Object.freeze({\n ONLY_REFLECTIONS: 6,\n SHADER_ALL: 5,\n SHADER_HIGHMID: 3,\n SHADER_LOWMID: 1,\n SHADER_HIGH: 4,\n SHADER_MED: 2,\n SHADER_LOW: 0\n });\n\n static Origin = Origin;\n\n}\n"],"names":["ZERO_VEC3","vec3","create","_EveChildContainer","_identity","EveChildContainer","_withIEveInheritPrope","withIEveInheritPropertiesOwner","withITr2Renderable","EveChildTransform","e","_init_displayFilter","_init_extra_displayFilter","_init_objects","_init_extra_objects","_init_transformModifiers","_init_extra_transformModifiers","_init_curveSets","_init_extra_curveSets","_init_worldTransform","_init_extra_worldTransform","_init_mute","_init_extra_mute","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_translation","_init_extra_translation","_init_rotation","_init_extra_rotation","_init_scaling","_init_extra_scaling","_init_localTransform","_init_extra_localTransform","_init_staticTransform","_init_extra_staticTransform","_init_alwaysOn","_init_extra_alwaysOn","_init_updateOnDisplay","_init_extra_updateOnDisplay","_init_attachments","_init_extra_attachments","_init_observers","_init_extra_observers","_init_fxAttributes","_init_extra_fxAttributes","_init_lights","_init_extra_lights","_init_controllers","_init_extra_controllers","_init_inheritProperties","_init_extra_inheritProperties","_init_useSRT","_init_extra_useSRT","_init_useStaticRotation","_init_extra_useStaticRotation","_init_useStaticScale","_init_extra_useStaticScale","_init_animationOwner","_init_extra_animationOwner","_init_origin","_init_extra_origin","_init_isPlacementRoot","_init_extra_isPlacementRoot","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","enum","list","read","mat4","readwrite","boolean","string","quat","objectRef","carbon","method","impl","adapted","reason","implemented","contextual","displayFilter","objects","transformModifiers","curveSets","worldTransform","mute","display","name","translation","rotation","scaling","fromValues","localTransform","staticTransform","alwaysOn","updateOnDisplay","attachments","observers","fxAttributes","lights","controllers","inheritProperties","useSRT","useStaticRotation","useStaticScale","animationOwner","origin","isPlacementRoot","Map","createChildPerObjectRecords","isRendering","IsRendering","isUpdating","IsUpdating","Initialize","RegisterChildren","controller","IsLinked","Link","OnModified","value","MuteChildren","Setup","scale","lowestLodVisible","GetName","SetName","String","SetOrigin","Number","SetAlwaysOn","IsAlwaysOn","SetDisplayQualityModifier","filter","SetMute","next","child","observer","AddTransformModifier","modifier","push","AddObserver","AddController","SetVariable","SetControllerVariable","key","set","HandleControllerEvent","eventName","HandleEvent","StartControllers","Start","SetProceduralContainerVariable","GetEffectChildByName","target","AddToEffectChildrenList","RegisterChild","RemoveFromEffectChildrenList","index","indexOf","UnregisterChild","splice","SetShaderOption","attachment","SetAnimationOwner","SetIsPlacementRoot","AddAttachment","ClearAttachments","length","Empty","UpdateSyncronous","updateContext","params","ownerMaxSpeed","newParams","isVisible","childParent","copy","localToWorldTransform","Update","UpdateAsyncronous","parentTransform","UpdateTransform","inheritParentPerObjectData","spaceObjectParent","stampChildTransforms","frequency","controllerUpdateFrequency","boneCount","bones","applyTransformModifiers","activationStrength","velocity","GetWorldVelocity","worldVelocity","time","GetTime","currentTime","curveSet","renderContext","fxAttribute","light","SetBoneMatrix","UpdateLights","UpdateVisibility","parentLod","Tr2Lod","TR2_LOD_HIGH","HasRenderables","getBoneList","GetAnimationController","GetRenderables","out","GetBoundingSphere","vec4","_query","childSphere","success","sph3","union","GetLocalToWorldTransform","ChangeLOD","lod","GetLights","lightManager","m","Math","hypot","AddLight","GetBatches","batches","batchType","perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","committed","HasTransparentBatches","GetSortValue","GetPerObjectData","_accumulator","updater","animationUpdater","IsInitialized","vs","SetIndex","GetMeshBoneCount","ps","settings","shaderModel","DisplayQualityModifier","TR2SHADERMODEL","TR2SM_AUTHORING","ONLY_REFLECTIONS","SHADER_LOW","TR2SM_3_0_LO","SHADER_LOWMID","TR2SM_3_0_HI","SHADER_MED","SHADER_HIGHMID","SHADER_HIGH","TR2SM_3_0_DEPTH","SHADER_ALL","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","object","Register","UnRegisterComponents","UnRegister","PlayCurveSet","rangeName","PlayTimeRange","ResetTimeRange","Play","StopCurveSet","Stop","UpdateCurveSet","PlayAllCurveSets","StopAllCurveSets","GetCurveSetDuration","duration","max","GetMaxCurveDuration","GetRangeDuration","GetControllerValueByName","GetFloatVariableByName","undefined","GetOwnerMaxSpeed","SetOwner","owner","GetOwner","SetPartTag","tag","GetPartTag","CollectOwnedLocatorSets","childToObject","multiply","RebuildLocalTransform","CollectOwnedGeometry","areaPool","SetInheritProperties","colorSet","EveChildInheritProperties","SetProperties","IEveInheritPropertiesOwner","FindSoundEmitter","GetObserver","emitter","#DeriveChildParams","EveChildUpdateParams","Object","freeze","Origin","constructor"],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { vec3 } from '#math/vec3';
|
|
3
|
+
import { CjsModel } from '#model';
|
|
4
|
+
import { io, type } from '#schema';
|
|
5
|
+
import './EveChildInstancedMeshArea.js';
|
|
6
|
+
import './EveChildInstancedMeshInstance.js';
|
|
7
|
+
|
|
8
|
+
let _initClass, _init_geometryPath, _init_extra_geometryPath, _init_castsShadow, _init_extra_castsShadow, _init_reflectionMode, _init_extra_reflectionMode, _init_meshIndex, _init_extra_meshIndex, _init_areas, _init_extra_areas, _init_instances, _init_extra_instances, _init_partTags, _init_extra_partTags, _init_sofHullName, _init_extra_sofHullName, _init_sofLocatorSetName, _init_extra_sofLocatorSetName, _init_display, _init_extra_display, _init_inheritOverlayEffects, _init_extra_inheritOverlayEffects, _init_ownOverlayEffects, _init_extra_ownOverlayEffects;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* One geometry-and-areas record inside an EveChildInstancedMeshes child, holding
|
|
12
|
+
* its instance placements, per-instance world cull spheres, instance flags and
|
|
13
|
+
* manager registration handles.
|
|
14
|
+
*/
|
|
15
|
+
let _EveChildInstancedMes;
|
|
16
|
+
class EveChildInstancedMesh extends CjsModel {
|
|
17
|
+
static {
|
|
18
|
+
({
|
|
19
|
+
e: [_init_geometryPath, _init_extra_geometryPath, _init_castsShadow, _init_extra_castsShadow, _init_reflectionMode, _init_extra_reflectionMode, _init_meshIndex, _init_extra_meshIndex, _init_areas, _init_extra_areas, _init_instances, _init_extra_instances, _init_partTags, _init_extra_partTags, _init_sofHullName, _init_extra_sofHullName, _init_sofLocatorSetName, _init_extra_sofLocatorSetName, _init_display, _init_extra_display, _init_inheritOverlayEffects, _init_extra_inheritOverlayEffects, _init_ownOverlayEffects, _init_extra_ownOverlayEffects],
|
|
20
|
+
c: [_EveChildInstancedMes, _initClass]
|
|
21
|
+
} = _applyDecs2311(this, [type.define({
|
|
22
|
+
className: "EveChildInstancedMesh",
|
|
23
|
+
family: "eve/child"
|
|
24
|
+
})], [[[io, io.persist, type, type.string], 16, "geometryPath"], [[io, io.persist, type, type.boolean], 16, "castsShadow"], [[io, io.persist, type, type.int32], 16, "reflectionMode"], [[io, io.persist, type, type.uint32], 16, "meshIndex"], [[io, io.persist, void 0, type.list("EveChildInstancedMeshArea")], 16, "areas"], [[io, io.persist, void 0, type.list("EveChildInstancedMeshInstance")], 16, "instances"], [[io, io.persist, void 0, type.array("uint32")], 16, "partTags"], [[io, io.persist, type, type.string], 16, "sofHullName"], [[io, io.persist, type, type.string], 16, "sofLocatorSetName"], [[io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, type, type.boolean], 16, "inheritOverlayEffects"], [[io, io.persist, void 0, type.list("EveMeshOverlayEffect")], 16, "ownOverlayEffects"]], 0, void 0, CjsModel));
|
|
25
|
+
}
|
|
26
|
+
geometryPath = _init_geometryPath(this, "");
|
|
27
|
+
castsShadow = (_init_extra_geometryPath(this), _init_castsShadow(this, false));
|
|
28
|
+
reflectionMode = (_init_extra_castsShadow(this), _init_reflectionMode(this, 3));
|
|
29
|
+
meshIndex = (_init_extra_reflectionMode(this), _init_meshIndex(this, 0));
|
|
30
|
+
areas = (_init_extra_meshIndex(this), _init_areas(this, []));
|
|
31
|
+
instances = (_init_extra_areas(this), _init_instances(this, []));
|
|
32
|
+
|
|
33
|
+
/** Carbon's one-to-one modular ownership tag array for instances. */
|
|
34
|
+
partTags = (_init_extra_instances(this), _init_partTags(this, []));
|
|
35
|
+
sofHullName = (_init_extra_partTags(this), _init_sofHullName(this, ""));
|
|
36
|
+
sofLocatorSetName = (_init_extra_sofHullName(this), _init_sofLocatorSetName(this, ""));
|
|
37
|
+
display = (_init_extra_sofLocatorSetName(this), _init_display(this, true));
|
|
38
|
+
inheritOverlayEffects = (_init_extra_display(this), _init_inheritOverlayEffects(this, true));
|
|
39
|
+
ownOverlayEffects = (_init_extra_inheritOverlayEffects(this), _init_ownOverlayEffects(this, []));
|
|
40
|
+
overlayAreaBlocks = (_init_extra_ownOverlayEffects(this), [[], []]);
|
|
41
|
+
overlayAreaBlocksBuilt = false;
|
|
42
|
+
overlayPods = null;
|
|
43
|
+
|
|
44
|
+
/** Carbon Mesh::sphereHandle (h:110) - manager registration handle;
|
|
45
|
+
* runtime state, not persisted. */
|
|
46
|
+
sphereHandle = null;
|
|
47
|
+
|
|
48
|
+
/** Carbon Mesh::worldBoundingSphere - stamped by UpdateAsyncronous
|
|
49
|
+
* (cpp:270); the TriFrustum sphere-duck shape. */
|
|
50
|
+
worldBoundingSphere = {
|
|
51
|
+
center: vec3.create(),
|
|
52
|
+
radius: 0
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/** Carbon Mesh::instanceSpheres - per-instance world cull spheres, stamped
|
|
56
|
+
* by UpdateAsyncronous (cpp:259-269). */
|
|
57
|
+
instanceSpheres = [];
|
|
58
|
+
|
|
59
|
+
/** Carbon Mesh::flags (InstanceFlags uint32) - batch-type bits stamped at
|
|
60
|
+
* AddMesh (cpp:422-425), CASTS_SHADOW at AddMesh (cpp:418-421),
|
|
61
|
+
* RENDER_IN_REFLECTION refreshed each async pass (cpp:251). */
|
|
62
|
+
flags = 0;
|
|
63
|
+
#geometry = null;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Returns the geometry resource backing this mesh, or null while none has been
|
|
67
|
+
* assigned; the mesh does not register with the manager until it is present
|
|
68
|
+
* and good.
|
|
69
|
+
*/
|
|
70
|
+
GetGeometryResource() {
|
|
71
|
+
return this.#geometry;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Assigns the geometry resource this mesh renders from; a nullish value clears
|
|
76
|
+
* it. Runtime state, deliberately not persisted.
|
|
77
|
+
*/
|
|
78
|
+
SetGeometryResource(resource) {
|
|
79
|
+
this.#geometry = resource ?? null;
|
|
80
|
+
}
|
|
81
|
+
static {
|
|
82
|
+
_initClass();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export { _EveChildInstancedMes as EveChildInstancedMesh };
|
|
87
|
+
//# sourceMappingURL=EveChildInstancedMesh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EveChildInstancedMesh.js","sources":["../../../../../../src/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildInstancedMeshes.h\r\n// struct Mesh, nested in EveChildInstancedMeshes (line 132); flattened for JS\r\n// under a name that drops the donor's plural. See EveChildInstancedMeshArea.js.\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { CjsModel } from \"#model\";\r\nimport { io, type } from \"#schema\";\r\nimport { EveChildInstancedMeshArea } from \"./EveChildInstancedMeshArea.js\";\r\nimport { EveChildInstancedMeshInstance } from \"./EveChildInstancedMeshInstance.js\";\r\n\r\n\r\n/**\r\n * One geometry-and-areas record inside an EveChildInstancedMeshes child, holding\r\n * its instance placements, per-instance world cull spheres, instance flags and\r\n * manager registration handles.\r\n */\r\n@type.define({ className: \"EveChildInstancedMesh\", family: \"eve/child\" })\r\nexport class EveChildInstancedMesh extends CjsModel\r\n{\r\n @io.persist\r\n @type.string\r\n geometryPath = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n castsShadow = false;\r\n\r\n @io.persist\r\n @type.int32\r\n reflectionMode = 3;\r\n\r\n @io.persist\r\n @type.uint32\r\n meshIndex = 0;\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMeshArea\")\r\n areas = [];\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMeshInstance\")\r\n instances = [];\r\n\r\n /** Carbon's one-to-one modular ownership tag array for instances. */\r\n @io.persist\r\n @type.array(\"uint32\")\r\n partTags = [];\r\n\r\n @io.persist\r\n @type.string\r\n sofHullName = \"\";\r\n\r\n @io.persist\r\n @type.string\r\n sofLocatorSetName = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.boolean\r\n inheritOverlayEffects = true;\r\n\r\n @io.persist\r\n @type.list(\"EveMeshOverlayEffect\")\r\n ownOverlayEffects = [];\r\n\r\n overlayAreaBlocks = [ [], [] ];\r\n\r\n overlayAreaBlocksBuilt = false;\r\n\r\n overlayPods = null;\r\n\r\n /** Carbon Mesh::sphereHandle (h:110) - manager registration handle;\r\n * runtime state, not persisted. */\r\n sphereHandle = null;\r\n\r\n /** Carbon Mesh::worldBoundingSphere - stamped by UpdateAsyncronous\r\n * (cpp:270); the TriFrustum sphere-duck shape. */\r\n worldBoundingSphere = { center: vec3.create(), radius: 0 };\r\n\r\n /** Carbon Mesh::instanceSpheres - per-instance world cull spheres, stamped\r\n * by UpdateAsyncronous (cpp:259-269). */\r\n instanceSpheres = [];\r\n\r\n /** Carbon Mesh::flags (InstanceFlags uint32) - batch-type bits stamped at\r\n * AddMesh (cpp:422-425), CASTS_SHADOW at AddMesh (cpp:418-421),\r\n * RENDER_IN_REFLECTION refreshed each async pass (cpp:251). */\r\n flags = 0;\r\n\r\n #geometry = null;\r\n\r\n /**\r\n * Returns the geometry resource backing this mesh, or null while none has been\r\n * assigned; the mesh does not register with the manager until it is present\r\n * and good.\r\n */\r\n GetGeometryResource()\r\n {\r\n return this.#geometry;\r\n }\r\n\r\n /**\r\n * Assigns the geometry resource this mesh renders from; a nullish value clears\r\n * it. Runtime state, deliberately not persisted.\r\n */\r\n SetGeometryResource(resource)\r\n {\r\n this.#geometry = resource ?? null;\r\n }\r\n}\r\n"],"names":["_EveChildInstancedMes","EveChildInstancedMesh","CjsModel","e","_init_geometryPath","_init_extra_geometryPath","_init_castsShadow","_init_extra_castsShadow","_init_reflectionMode","_init_extra_reflectionMode","_init_meshIndex","_init_extra_meshIndex","_init_areas","_init_extra_areas","_init_instances","_init_extra_instances","_init_partTags","_init_extra_partTags","_init_sofHullName","_init_extra_sofHullName","_init_sofLocatorSetName","_init_extra_sofLocatorSetName","_init_display","_init_extra_display","_init_inheritOverlayEffects","_init_extra_inheritOverlayEffects","_init_ownOverlayEffects","_init_extra_ownOverlayEffects","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","boolean","int32","uint32","list","array","geometryPath","castsShadow","reflectionMode","meshIndex","areas","instances","partTags","sofHullName","sofLocatorSetName","display","inheritOverlayEffects","ownOverlayEffects","overlayAreaBlocks","overlayAreaBlocksBuilt","overlayPods","sphereHandle","worldBoundingSphere","center","vec3","create","radius","instanceSpheres","flags","GetGeometryResource","SetGeometryResource","resource"],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { CjsModel } from '#model';
|
|
3
|
+
import { io, type } from '#schema';
|
|
4
|
+
|
|
5
|
+
let _initClass, _init_effect, _init_extra_effect, _init_batchType, _init_extra_batchType, _init_areaIndex, _init_extra_areaIndex, _init_areaCount, _init_extra_areaCount, _init_alphaCutout, _init_extra_alphaCutout, _init_reversed, _init_extra_reversed, _init_effectHash, _init_extra_effectHash;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* One shader area of an instanced mesh: the effect, its batch type, the area
|
|
9
|
+
* range within the mesh, its cached effect hash and the mesh-group handle it is
|
|
10
|
+
* registered under.
|
|
11
|
+
*/
|
|
12
|
+
let _EveChildInstancedMes;
|
|
13
|
+
class EveChildInstancedMeshArea extends CjsModel {
|
|
14
|
+
static {
|
|
15
|
+
({
|
|
16
|
+
e: [_init_effect, _init_extra_effect, _init_batchType, _init_extra_batchType, _init_areaIndex, _init_extra_areaIndex, _init_areaCount, _init_extra_areaCount, _init_alphaCutout, _init_extra_alphaCutout, _init_reversed, _init_extra_reversed, _init_effectHash, _init_extra_effectHash],
|
|
17
|
+
c: [_EveChildInstancedMes, _initClass]
|
|
18
|
+
} = _applyDecs2311(this, [type.define({
|
|
19
|
+
className: "EveChildInstancedMeshArea",
|
|
20
|
+
family: "eve/child"
|
|
21
|
+
})], [[[void 0, io.rebuild("instanceBuffer"), io, io.persist, void 0, type.objectRef("Tr2Effect")], 16, "effect"], [[void 0, io.rebuild("instanceBuffer"), io, io.persist, type, type.uint32], 16, "batchType"], [[void 0, io.rebuild("instanceBuffer"), io, io.persist, type, type.uint32], 16, "areaIndex"], [[void 0, io.rebuild("instanceBuffer"), io, io.persist, type, type.uint32], 16, "areaCount"], [[io, io.persist, type, type.boolean], 16, "alphaCutout"], [[io, io.persist, type, type.boolean], 16, "reversed"], [[io, io.read, type, type.uint64], 16, "effectHash"]], 0, void 0, CjsModel));
|
|
22
|
+
}
|
|
23
|
+
effect = _init_effect(this, null);
|
|
24
|
+
batchType = (_init_extra_effect(this), _init_batchType(this, 0));
|
|
25
|
+
areaIndex = (_init_extra_batchType(this), _init_areaIndex(this, 0));
|
|
26
|
+
areaCount = (_init_extra_areaIndex(this), _init_areaCount(this, 1));
|
|
27
|
+
|
|
28
|
+
/** Carbon MeshArea::alphaCutout (h:78) - one-sided cutout areas are ignored
|
|
29
|
+
* for backface classification when raycasting occluders. */
|
|
30
|
+
alphaCutout = (_init_extra_areaCount(this), _init_alphaCutout(this, false));
|
|
31
|
+
|
|
32
|
+
/** Carbon MeshArea::reversed (h:79) - winding-reversed areas flip the
|
|
33
|
+
* backface test during occluder raycasts. */
|
|
34
|
+
reversed = (_init_extra_alphaCutout(this), _init_reversed(this, false));
|
|
35
|
+
effectHash = (_init_extra_reversed(this), _init_effectHash(this, 0));
|
|
36
|
+
|
|
37
|
+
/** Carbon MeshArea::meshGroupHandle (EveChildInstancedMeshes.h:72) - an
|
|
38
|
+
* opaque manager registration handle; runtime state, not persisted. */
|
|
39
|
+
meshGroupHandle = (_init_extra_effectHash(this), null);
|
|
40
|
+
static {
|
|
41
|
+
_initClass();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { _EveChildInstancedMes as EveChildInstancedMeshArea };
|
|
46
|
+
//# sourceMappingURL=EveChildInstancedMeshArea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EveChildInstancedMeshArea.js","sources":["../../../../../../src/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildInstancedMeshes.h\r\n// struct MeshArea, nested in EveChildInstancedMeshes (line 73); flattened for\r\n// JS. Our name drops the donor's plural, so it reads as though Carbon had an\r\n// EveChildInstancedMesh type. It does not; renaming is blocked because SOF\r\n// writes this className into DNA documents as a string.\r\nimport { CjsModel } from \"#model\";\r\nimport { io, type } from \"#schema\";\r\n\r\n\r\n/**\r\n * One shader area of an instanced mesh: the effect, its batch type, the area\r\n * range within the mesh, its cached effect hash and the mesh-group handle it is\r\n * registered under.\r\n */\r\n@type.define({ className: \"EveChildInstancedMeshArea\", family: \"eve/child\" })\r\nexport class EveChildInstancedMeshArea extends CjsModel\r\n{\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n batchType = 0;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n areaIndex = 0;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n areaCount = 1;\r\n\r\n /** Carbon MeshArea::alphaCutout (h:78) - one-sided cutout areas are ignored\r\n * for backface classification when raycasting occluders. */\r\n @io.persist\r\n @type.boolean\r\n alphaCutout = false;\r\n\r\n /** Carbon MeshArea::reversed (h:79) - winding-reversed areas flip the\r\n * backface test during occluder raycasts. */\r\n @io.persist\r\n @type.boolean\r\n reversed = false;\r\n\r\n @io.read\r\n @type.uint64\r\n effectHash = 0;\r\n\r\n /** Carbon MeshArea::meshGroupHandle (EveChildInstancedMeshes.h:72) - an\r\n * opaque manager registration handle; runtime state, not persisted. */\r\n meshGroupHandle = null;\r\n}\r\n"],"names":["_EveChildInstancedMes","EveChildInstancedMeshArea","CjsModel","e","_init_effect","_init_extra_effect","_init_batchType","_init_extra_batchType","_init_areaIndex","_init_extra_areaIndex","_init_areaCount","_init_extra_areaCount","_init_alphaCutout","_init_extra_alphaCutout","_init_reversed","_init_extra_reversed","_init_effectHash","_init_extra_effectHash","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","objectRef","uint32","boolean","read","uint64","effect","batchType","areaIndex","areaCount","alphaCutout","reversed","effectHash","meshGroupHandle"],"mappings":"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"}
|