@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/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 +52 -4
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.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 +104 -260
- 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 +82 -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
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { io, type } from '#schema';
|
|
3
|
+
import { EveSpaceObjectChild as _EveSpaceObjectChild } from '../EveSpaceObjectChild.js';
|
|
4
|
+
import { EveChildPartDataPartData as _EveChildPartDataPart } from './EveChildPartDataPartData.js';
|
|
5
|
+
|
|
6
|
+
let _initClass, _init_faction, _init_extra_faction, _init_race, _init_extra_race, _init_parts, _init_extra_parts;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Persistent modular-space-object state stored as an effect child.
|
|
10
|
+
*
|
|
11
|
+
* Carbon's header declares these members persistent, but its current Blue
|
|
12
|
+
* exposure maps only the child interfaces. The explicit persistence metadata
|
|
13
|
+
* below is the JavaScript adaptation required for the documented state to
|
|
14
|
+
* survive a model values round trip.
|
|
15
|
+
*/
|
|
16
|
+
let _EveChildPartData;
|
|
17
|
+
new class extends _identity {
|
|
18
|
+
static [class EveChildPartData extends _EveSpaceObjectChild {
|
|
19
|
+
static {
|
|
20
|
+
({
|
|
21
|
+
e: [_init_faction, _init_extra_faction, _init_race, _init_extra_race, _init_parts, _init_extra_parts],
|
|
22
|
+
c: [_EveChildPartData, _initClass]
|
|
23
|
+
} = _applyDecs2311(this, [type.define({
|
|
24
|
+
className: "EveChildPartData",
|
|
25
|
+
family: "eve/child"
|
|
26
|
+
})], [[[io, io.persist, type, type.string], 16, "faction"], [[io, io.persist, type, type.string], 16, "race"], [[io, io.persist, void 0, type.list("EveChildPartData.PartData")], 16, "parts"]], 0, void 0, _EveSpaceObjectChild));
|
|
27
|
+
}
|
|
28
|
+
constructor(...args) {
|
|
29
|
+
super(...args);
|
|
30
|
+
_init_extra_parts(this);
|
|
31
|
+
}
|
|
32
|
+
faction = _init_faction(this, "");
|
|
33
|
+
race = (_init_extra_faction(this), _init_race(this, ""));
|
|
34
|
+
parts = (_init_extra_race(this), _init_parts(this, []));
|
|
35
|
+
|
|
36
|
+
/** Returns the first monotonically available positive Carbon part tag. */
|
|
37
|
+
GetUnusedPartID() {
|
|
38
|
+
let nextId = 1;
|
|
39
|
+
for (const part of this.parts) {
|
|
40
|
+
const candidate = (Number(part.partId) >>> 0) + 1 >>> 0;
|
|
41
|
+
nextId = Math.max(nextId, candidate);
|
|
42
|
+
}
|
|
43
|
+
return nextId >>> 0;
|
|
44
|
+
}
|
|
45
|
+
}];
|
|
46
|
+
PartData = _EveChildPartDataPart;
|
|
47
|
+
constructor() {
|
|
48
|
+
super(_EveChildPartData), _initClass();
|
|
49
|
+
}
|
|
50
|
+
}();
|
|
51
|
+
|
|
52
|
+
export { _EveChildPartData as EveChildPartData };
|
|
53
|
+
//# sourceMappingURL=EveChildPartData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EveChildPartData.js","sources":["../../../../../../src/trinity/eve/child/EveChildPartData/EveChildPartData.js"],"sourcesContent":["// Carbon source: trinity/trinity/Eve/SpaceObject/Children/EveChildPartData.h\n// Carbon source: trinity/trinity/Eve/SpaceObject/Children/EveChildPartData.cpp\n// Carbon source: trinity/trinity/Eve/SpaceObject/Children/EveChildPartData_Blue.cpp\nimport { io, type } from \"#schema\";\nimport { EveSpaceObjectChild } from \"../EveSpaceObjectChild.js\";\nimport { EveChildPartDataPartData } from \"./EveChildPartDataPartData.js\";\n\n\n/**\n * Persistent modular-space-object state stored as an effect child.\n *\n * Carbon's header declares these members persistent, but its current Blue\n * exposure maps only the child interfaces. The explicit persistence metadata\n * below is the JavaScript adaptation required for the documented state to\n * survive a model values round trip.\n */\n@type.define({ className: \"EveChildPartData\", family: \"eve/child\" })\nexport class EveChildPartData extends EveSpaceObjectChild\n{\n @io.persist\n @type.string\n faction = \"\";\n\n @io.persist\n @type.string\n race = \"\";\n\n @io.persist\n @type.list(\"EveChildPartData.PartData\")\n parts = [];\n\n /** Returns the first monotonically available positive Carbon part tag. */\n GetUnusedPartID()\n {\n let nextId = 1;\n\n for (const part of this.parts)\n {\n const candidate = ((Number(part.partId) >>> 0) + 1) >>> 0;\n nextId = Math.max(nextId, candidate);\n }\n\n return nextId >>> 0;\n }\n\n static PartData = EveChildPartDataPartData;\n}\n"],"names":["_EveChildPartData","_identity","EveChildPartData","EveSpaceObjectChild","e","_init_faction","_init_extra_faction","_init_race","_init_extra_race","_init_parts","_init_extra_parts","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","list","constructor","args","faction","race","parts","GetUnusedPartID","nextId","part","candidate","Number","partId","Math","max","PartData","EveChildPartDataPartData"],"mappings":";;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,IAAAA;AAAA,IAAA,cAAAC,SAAA,CAAA;AAAA,EAAA,QAQA,MAAAC,gBAAA,SACsCC,oBAAmB,CACzD;AAAA,IAAA;AAAA,MAAA,CAAA;QAAAC,CAAA,EAAA,CAAAC,aAAA,EAAAC,mBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,WAAA,EAAAC,iBAAA,CAAA;QAAAC,CAAA,EAAA,CAAAX,iBAAA,EAAAY,UAAA;AAAA,OAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,QAAAA,SAAS,EAAE,kBAAkB;AAAEC,QAAAA,MAAM,EAAE;AAAY,OAAC,CAAC,CAAA,EAAA,CAAA,CAAA,CAGjEC,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACM,MAAM,qBAGXF,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACM,MAAM,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAGXF,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAA,MAAA,EACVL,IAAI,CAACO,IAAI,CAAC,2BAA2B,CAAC,6BAXHlB,oBAAmB,CAAA;AAAA;AAAAmB,IAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,MAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;MAAAb,iBAAA,CAAA,IAAA,CAAA;AAAA,IAAA;IAIvDc,OAAO,GAAAnB,aAAA,CAAA,IAAA,EAAG,EAAE,CAAA;AAIZoB,IAAAA,IAAI,IAAAnB,mBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,EAAE,CAAA;AAITmB,IAAAA,KAAK,IAAAlB,gBAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAG,EAAE,CAAA;;AAEV;AACAkB,IAAAA,eAAeA,GACf;MACE,IAAIC,MAAM,GAAG,CAAC;AAEd,MAAA,KAAK,MAAMC,IAAI,IAAI,IAAI,CAACH,KAAK,EAC7B;AACE,QAAA,MAAMI,SAAS,GAAI,CAACC,MAAM,CAACF,IAAI,CAACG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAM,CAAC;QACzDJ,MAAM,GAAGK,IAAI,CAACC,GAAG,CAACN,MAAM,EAAEE,SAAS,CAAC;AACtC,MAAA;MAEA,OAAOF,MAAM,KAAK,CAAC;AACrB,IAAA;GAGD;AADQO,EAAAA,QAAQ,GAAGC,qBAAwB;EAACd,WAAAA,GAAA;IAAA,KAAA,CAAAtB,iBAAA,GAAAY,UAAA,EAAA;AAAA,EAAA;AAAA,CAAA,EAAA;;;;"}
|
package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js}
RENAMED
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import { applyDecs2311 as _applyDecs2311
|
|
1
|
+
import { applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import { quat } from '#math/quat';
|
|
3
3
|
import { vec3 } from '#math/vec3';
|
|
4
4
|
import { vec4 } from '#math/vec4';
|
|
5
5
|
import { CjsModel } from '#model';
|
|
6
6
|
import { io, type } from '#schema';
|
|
7
|
-
import { EveSpaceObjectChild as _EveSpaceObjectChild } from './EveSpaceObjectChild.js';
|
|
8
7
|
|
|
9
|
-
let _initClass, _init_partId, _init_extra_partId, _init_position, _init_extra_position, _init_rotation, _init_extra_rotation, _init_scale, _init_extra_scale, _init_boundingSphere, _init_extra_boundingSphere
|
|
8
|
+
let _initClass, _init_partId, _init_extra_partId, _init_position, _init_extra_position, _init_rotation, _init_extra_rotation, _init_scale, _init_extra_scale, _init_boundingSphere, _init_extra_boundingSphere;
|
|
10
9
|
|
|
11
|
-
/**
|
|
12
|
-
* One modular-object part's logical transform and local-space bounds.
|
|
13
|
-
*
|
|
14
|
-
* Carbon declares this as EveChildPartData::PartData. The JavaScript class is
|
|
15
|
-
* exported under a legal identifier while retaining that nested schema name.
|
|
10
|
+
/**
|
|
11
|
+
* One modular-object part's logical transform and local-space bounds.
|
|
12
|
+
*
|
|
13
|
+
* Carbon declares this as EveChildPartData::PartData. The JavaScript class is
|
|
14
|
+
* exported under a legal identifier while retaining that nested schema name.
|
|
16
15
|
*/
|
|
17
16
|
let _EveChildPartDataPart;
|
|
18
17
|
class EveChildPartDataPartData extends CjsModel {
|
|
@@ -40,41 +39,6 @@ class EveChildPartDataPartData extends CjsModel {
|
|
|
40
39
|
_initClass();
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
|
-
let _EveChildPartData;
|
|
44
|
-
new class extends _identity {
|
|
45
|
-
static [class EveChildPartData extends _EveSpaceObjectChild {
|
|
46
|
-
static {
|
|
47
|
-
({
|
|
48
|
-
e: [_init_faction, _init_extra_faction, _init_race, _init_extra_race, _init_parts, _init_extra_parts],
|
|
49
|
-
c: [_EveChildPartData, _initClass2]
|
|
50
|
-
} = _applyDecs2311(this, [type.define({
|
|
51
|
-
className: "EveChildPartData",
|
|
52
|
-
family: "eve/child"
|
|
53
|
-
})], [[[io, io.persist, type, type.string], 16, "faction"], [[io, io.persist, type, type.string], 16, "race"], [[io, io.persist, void 0, type.list("EveChildPartData.PartData")], 16, "parts"]], 0, void 0, _EveSpaceObjectChild));
|
|
54
|
-
}
|
|
55
|
-
constructor(...args) {
|
|
56
|
-
super(...args);
|
|
57
|
-
_init_extra_parts(this);
|
|
58
|
-
}
|
|
59
|
-
faction = _init_faction(this, "");
|
|
60
|
-
race = (_init_extra_faction(this), _init_race(this, ""));
|
|
61
|
-
parts = (_init_extra_race(this), _init_parts(this, []));
|
|
62
42
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
let nextId = 1;
|
|
66
|
-
for (const part of this.parts) {
|
|
67
|
-
const candidate = (Number(part.partId) >>> 0) + 1 >>> 0;
|
|
68
|
-
nextId = Math.max(nextId, candidate);
|
|
69
|
-
}
|
|
70
|
-
return nextId >>> 0;
|
|
71
|
-
}
|
|
72
|
-
}];
|
|
73
|
-
PartData = _EveChildPartDataPart;
|
|
74
|
-
constructor() {
|
|
75
|
-
super(_EveChildPartData), _initClass2();
|
|
76
|
-
}
|
|
77
|
-
}();
|
|
78
|
-
|
|
79
|
-
export { _EveChildPartData as EveChildPartData, _EveChildPartDataPart as EveChildPartDataPartData };
|
|
80
|
-
//# sourceMappingURL=EveChildPartData.js.map
|
|
43
|
+
export { _EveChildPartDataPart as EveChildPartDataPartData };
|
|
44
|
+
//# sourceMappingURL=EveChildPartDataPartData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EveChildPartDataPartData.js","sources":["../../../../../../src/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js"],"sourcesContent":["// Carbon source: trinity/trinity/Eve/SpaceObject/Children/EveChildPartData.h\n// struct PartData, nested in EveChildPartData; flattened for JS.\nimport { quat } from \"#math/quat\";\nimport { vec3 } from \"#math/vec3\";\nimport { vec4 } from \"#math/vec4\";\nimport { CjsModel } from \"#model\";\nimport { io, type } from \"#schema\";\n\n\n/**\n * One modular-object part's logical transform and local-space bounds.\n *\n * Carbon declares this as EveChildPartData::PartData. The JavaScript class is\n * exported under a legal identifier while retaining that nested schema name.\n */\n@type.define({ className: \"EveChildPartData.PartData\", family: \"eve/child\" })\nexport class EveChildPartDataPartData extends CjsModel\n{\n @io.persist\n @type.uint32\n partId = 0;\n\n @io.persist\n @type.vec3\n position = vec3.create();\n\n @io.persist\n @type.quat\n rotation = quat.create();\n\n @io.persist\n @type.vec3\n scale = vec3.fromValues(1, 1, 1);\n\n /** Packed CcpMath::Sphere: xyz center and w radius. */\n @io.persist\n @type.vec4\n boundingSphere = vec4.create();\n}\n"],"names":["_EveChildPartDataPart","EveChildPartDataPartData","CjsModel","e","_init_partId","_init_extra_partId","_init_position","_init_extra_position","_init_rotation","_init_extra_rotation","_init_scale","_init_extra_scale","_init_boundingSphere","_init_extra_boundingSphere","c","_initClass","_applyDecs","type","define","className","family","io","persist","uint32","vec3","quat","vec4","constructor","args","partId","position","create","rotation","scale","fromValues","boundingSphere"],"mappings":";;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AALA,IAAAA;AAMA,MAAAC,wBAAA,SAC8CC,QAAQ,CACtD;AAAA,EAAA;AAAA,IAAA,CAAA;AAAAC,MAAAA,CAAA,GAAAC,YAAA,EAAAC,kBAAA,EAAAC,cAAA,EAAAC,oBAAA,EAAAC,cAAA,EAAAC,oBAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,oBAAA,EAAAC,0BAAA,CAAA;MAAAC,CAAA,EAAA,CAAAd,qBAAA,EAAAe,UAAA;AAAA,KAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,MAAAA,SAAS,EAAE,2BAA2B;AAAEC,MAAAA,MAAM,EAAE;AAAY,KAAC,CAAC,CAAA,EAAA,CAAA,CAAA,CAG1EC,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACM,MAAM,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAGXF,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACO,IAAI,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAGTH,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACQ,IAAI,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAGTJ,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACO,IAAI,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAITH,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACS,IAAI,sCApBkCxB,QAAQ,CAAA;AAAA;AAAAyB,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;IAAAf,0BAAA,CAAA,IAAA,CAAA;AAAA,EAAA;EAIpDgB,MAAM,GAAAzB,YAAA,CAAA,IAAA,EAAG,CAAC,CAAA;EAIV0B,QAAQ,IAAAzB,kBAAA,CAAA,IAAA,CAAA,EAAAC,cAAA,OAAGkB,IAAI,CAACO,MAAM,EAAE,CAAA;EAIxBC,QAAQ,IAAAzB,oBAAA,CAAA,IAAA,CAAA,EAAAC,cAAA,OAAGiB,IAAI,CAACM,MAAM,EAAE,CAAA;AAIxBE,EAAAA,KAAK,IAAAxB,oBAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAGc,IAAI,CAACU,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;;AAEhC;EAGAC,cAAc,IAAAxB,iBAAA,CAAA,IAAA,CAAA,EAAAC,oBAAA,OAAGc,IAAI,CAACK,MAAM,EAAE,CAAA;AAAC,EAAA;IAAAhB,UAAA,EAAA;AAAA;AACjC;;;;"}
|
|
@@ -10,7 +10,8 @@ import { Tr2Lod } from '#consts/trinity';
|
|
|
10
10
|
import { ShouldReflect, EveComponentType } from '../EveComponentTypes.js';
|
|
11
11
|
import { withITr2Renderable } from '../../core/ITr2Renderable.js';
|
|
12
12
|
import { Tr2RenderReason } from '../../generated/trinityCore/enums.js';
|
|
13
|
-
import { ITr2GenericEmitterUpdateArguments as _ITr2GenericEmitterUp } from '../../particle/ITr2GenericEmitter.js';
|
|
13
|
+
import { ITr2GenericEmitterUpdateArguments as _ITr2GenericEmitterUp } from '../../particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js';
|
|
14
|
+
import '../../particle/ITr2GenericEmitter/ITr2GenericEmitter.js';
|
|
14
15
|
|
|
15
16
|
var _withITr2Renderable;
|
|
16
17
|
let _initProto, _initClass, _init_reflectionMode, _init_extra_reflectionMode, _init_particleEmitters, _init_extra_particleEmitters, _init_particleSystems, _init_extra_particleSystems, _init_transformModifiers, _init_extra_transformModifiers, _init_display, _init_extra_display, _init_name, _init_extra_name, _init_mesh, _init_extra_mesh, _init_lodClampLow, _init_extra_lodClampLow, _init_lodSphereRadius, _init_extra_lodSphereRadius, _init_useDynamicLod, _init_extra_useDynamicLod, _init_lodFactorLow, _init_extra_lodFactorLow, _init_lodFactorMedium, _init_extra_lodFactorMedium, _init_minScreenSize, _init_extra_minScreenSize, _init_currentScreenSize, _init_extra_currentScreenSize;
|
|
@@ -93,22 +94,22 @@ new class extends _identity {
|
|
|
93
94
|
return true;
|
|
94
95
|
}
|
|
95
96
|
|
|
96
|
-
/**
|
|
97
|
-
* Carbon re-registers the renderable component when m_reflectionMode or
|
|
98
|
-
* m_display change (EveChildParticleSystem.cpp:71-78).
|
|
97
|
+
/**
|
|
98
|
+
* Carbon re-registers the renderable component when m_reflectionMode or
|
|
99
|
+
* m_display change (EveChildParticleSystem.cpp:71-78).
|
|
99
100
|
*/
|
|
100
101
|
OnModified(_value) {
|
|
101
102
|
this.ReRegister?.();
|
|
102
103
|
return true;
|
|
103
104
|
}
|
|
104
|
-
/**
|
|
105
|
-
* The particle system child's name.
|
|
105
|
+
/**
|
|
106
|
+
* The particle system child's name.
|
|
106
107
|
*/
|
|
107
108
|
GetName() {
|
|
108
109
|
return this.name;
|
|
109
110
|
}
|
|
110
|
-
/**
|
|
111
|
-
* Sets the particle system child's name, coercing the value to a string.
|
|
111
|
+
/**
|
|
112
|
+
* Sets the particle system child's name, coercing the value to a string.
|
|
112
113
|
*/
|
|
113
114
|
SetName(name) {
|
|
114
115
|
this.name = String(name ?? "");
|
|
@@ -119,10 +120,10 @@ new class extends _identity {
|
|
|
119
120
|
return super.Setup(scale, rotation, translation, lowestLodVisible);
|
|
120
121
|
}
|
|
121
122
|
|
|
122
|
-
/**
|
|
123
|
-
* Frustum/screen-size visibility against the mesh bound and the LOD probe
|
|
124
|
-
* sphere, then per-system view-dependent updates
|
|
125
|
-
* (EveChildParticleSystem.cpp:100-121).
|
|
123
|
+
/**
|
|
124
|
+
* Frustum/screen-size visibility against the mesh bound and the LOD probe
|
|
125
|
+
* sphere, then per-system view-dependent updates
|
|
126
|
+
* (EveChildParticleSystem.cpp:100-121).
|
|
126
127
|
*/
|
|
127
128
|
UpdateVisibility(updateContext, _parentTransform, _parentLod) {
|
|
128
129
|
const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;
|
|
@@ -141,9 +142,9 @@ new class extends _identity {
|
|
|
141
142
|
}
|
|
142
143
|
}
|
|
143
144
|
|
|
144
|
-
/**
|
|
145
|
-
* Stateless visibility probe used by the entity layer
|
|
146
|
-
* (EveChildParticleSystem.cpp:123-127).
|
|
145
|
+
/**
|
|
146
|
+
* Stateless visibility probe used by the entity layer
|
|
147
|
+
* (EveChildParticleSystem.cpp:123-127).
|
|
147
148
|
*/
|
|
148
149
|
IsVisible(updateContext) {
|
|
149
150
|
const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;
|
|
@@ -151,9 +152,9 @@ new class extends _identity {
|
|
|
151
152
|
return frustum?.IsSphereVisible(this.#boundingSphere) !== false && Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity) >= this.minScreenSize * lodFactor;
|
|
152
153
|
}
|
|
153
154
|
|
|
154
|
-
/**
|
|
155
|
-
* Sorts particles and publishes this child as a renderable when visible
|
|
156
|
-
* (EveChildParticleSystem.cpp:130-143).
|
|
155
|
+
/**
|
|
156
|
+
* Sorts particles and publishes this child as a renderable when visible
|
|
157
|
+
* (EveChildParticleSystem.cpp:130-143).
|
|
157
158
|
*/
|
|
158
159
|
GetRenderables(renderables = []) {
|
|
159
160
|
if (!this.#isVisible) {
|
|
@@ -174,8 +175,8 @@ new class extends _identity {
|
|
|
174
175
|
vec4.copy(out, this.#boundingSphere);
|
|
175
176
|
return true;
|
|
176
177
|
}
|
|
177
|
-
/**
|
|
178
|
-
* Whether the assigned mesh has transparent areas, when the child is displayed and a mesh is set.
|
|
178
|
+
/**
|
|
179
|
+
* Whether the assigned mesh has transparent areas, when the child is displayed and a mesh is set.
|
|
179
180
|
*/
|
|
180
181
|
HasTransparentBatches() {
|
|
181
182
|
if (this.display && this.mesh) {
|
|
@@ -222,10 +223,10 @@ new class extends _identity {
|
|
|
222
223
|
/** Carbon's synchronous pass is empty (EveChildParticleSystem.cpp:197-199). */
|
|
223
224
|
UpdateSyncronous(_updateContext, _params) {}
|
|
224
225
|
|
|
225
|
-
/**
|
|
226
|
-
* Per-frame async update (EveChildParticleSystem.cpp:201-280): rebuild the
|
|
227
|
-
* world transform, fold the transform modifiers, rebuild the bounding and
|
|
228
|
-
* LOD spheres, then drive the particle systems and emitters.
|
|
226
|
+
/**
|
|
227
|
+
* Per-frame async update (EveChildParticleSystem.cpp:201-280): rebuild the
|
|
228
|
+
* world transform, fold the transform modifiers, rebuild the bounding and
|
|
229
|
+
* LOD spheres, then drive the particle systems and emitters.
|
|
229
230
|
*/
|
|
230
231
|
UpdateAsyncronous(updateContext, params) {
|
|
231
232
|
mat4.copy(this.#worldTransformLast, this.worldTransform);
|
|
@@ -299,9 +300,9 @@ new class extends _identity {
|
|
|
299
300
|
return this.worldTransform;
|
|
300
301
|
}
|
|
301
302
|
|
|
302
|
-
/**
|
|
303
|
-
* Clamps each system's particle budget when the parent's LOD changed
|
|
304
|
-
* (EveChildParticleSystem.cpp:295-318).
|
|
303
|
+
/**
|
|
304
|
+
* Clamps each system's particle budget when the parent's LOD changed
|
|
305
|
+
* (EveChildParticleSystem.cpp:295-318).
|
|
305
306
|
*/
|
|
306
307
|
ChangeLOD(lod) {
|
|
307
308
|
if (!this.useDynamicLod) {
|
|
@@ -324,8 +325,8 @@ new class extends _identity {
|
|
|
324
325
|
this.transformModifiers.push(modifier);
|
|
325
326
|
}
|
|
326
327
|
|
|
327
|
-
/** Carbon EveChildParticleSystem::RegisterComponents (cpp:58-68):
|
|
328
|
-
* ReflectionRenderable leaf self-registration behind ShouldReflect (Carbon
|
|
328
|
+
/** Carbon EveChildParticleSystem::RegisterComponents (cpp:58-68):
|
|
329
|
+
* ReflectionRenderable leaf self-registration behind ShouldReflect (Carbon
|
|
329
330
|
* redundantly re-checks m_display inside the outer display gate). */
|
|
330
331
|
RegisterComponents() {
|
|
331
332
|
const registry = this.GetComponentRegistry();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveChildParticleSystem.js","sources":["../../../../../src/trinity/eve/child/EveChildParticleSystem.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildParticleSystem.h\n// Hand-maintained from Carbon source, promoted out of generated intake.\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { EveChildTransform, applyTransformModifiers } from \"./EveChildTransform.js\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { sph3 } from \"#math/sph3\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\r\nimport { ReflectionMode, TriBatchType } from \"#consts/graphics\";\nimport { Tr2Lod } from \"../EveLODHelper.js\";\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\nimport { withITr2Renderable } from \"../../core/ITr2Renderable.js\";\nimport { Tr2RenderReason } from \"../../generated/trinityCore/enums.js\";\nimport { ITr2GenericEmitterUpdateArguments } from \"../../particle/ITr2GenericEmitter.js\";\n\r\n/** A child that hosts particle systems and emitters, driving their transforms, LOD-based particle budgets, and per-frame visibility and render submission. */\r\n@type.define({ className: \"EveChildParticleSystem\", family: \"eve/child\" })\r\nexport class EveChildParticleSystem extends withITr2Renderable(EveChildTransform)\n{\r\n\r\n /** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n @type.enum(\"ReflectionMode\")\r\n reflectionMode = 3;\r\n\r\n /** m_particleEmitters (PITr2GenericEmitterVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"ITr2GenericEmitter\")\r\n particleEmitters = [];\r\n\r\n /** m_particleSystems (PTr2ParticleSystemVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"Tr2ParticleSystem\")\r\n particleSystems = [];\r\n\r\n /** m_transformModifiers (PIEveChildTransformModifierVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveChildTransformModifier\")\r\n transformModifiers = [];\r\n\r\n /** m_display (bool) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n /** m_name (BlueSharedString) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_mesh (Tr2InstancedMeshPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"Tr2InstancedMesh\")\r\n mesh = null;\r\n\r\n /** m_lodClampLow (uint32_t) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.uint32\r\n lodClampLow = 5;\r\n\r\n /** m_lodSphereRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n lodSphereRadius = 0;\r\n\r\n /** m_useDynamicLod (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n useDynamicLod = false;\r\n\r\n /** m_lodFactorLow (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n lodFactorLow = 0.125;\r\n\r\n /** m_lodFactorMedium (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n lodFactorMedium = 0.25;\r\n\r\n /** m_minScreenSize (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n minScreenSize = 0;\r\n\r\n /** m_currentScreenSize (float) [READ] */\r\n @io.read\r\n @type.float32\r\n currentScreenSize = -1;\r\n\r\n /** m_boundingSphere (Vector4) - world-space mesh bound, radius -1 until built. */\r\n #boundingSphere = vec4.fromValues(0, 0, 0, -1);\r\n\r\n /** m_lodSphere (Vector4) - world-space LOD probe, radius -1 while lodSphereRadius is unset. */\r\n #lodSphere = vec4.fromValues(0, 0, 0, -1);\r\n\r\n /** m_worldTransformLast (Matrix) - previous frame's world transform. */\r\n #worldTransformLast = mat4.create();\r\n\r\n /** m_isVisible (bool) - result of the last UpdateVisibility pass. */\r\n #isVisible = true;\r\n\r\n /** m_hasUpdated (bool) - until an update ran, the object cannot be rendered. */\r\n #hasUpdated = false;\r\n\r\n /** Rebuilds static local transforms (EveChildParticleSystem.cpp:43-50). */\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n if (this.staticTransform)\r\n {\r\n this.RebuildLocalTransform();\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Carbon re-registers the renderable component when m_reflectionMode or\r\n * m_display change (EveChildParticleSystem.cpp:71-78).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon re-registers on m_reflectionMode/m_display Var edits; JS forwards every OnModified to the EveEntity ReRegister lifecycle.\")\r\n OnModified(_value)\r\n {\r\n this.ReRegister?.();\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /**\r\n * The particle system child's name.\r\n */\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /**\r\n * Sets the particle system child's name, coercing the value to a string.\r\n */\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /** Forwards to the base transform setup (EveChildParticleSystem.cpp:95-98). */\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 * Frustum/screen-size visibility against the mesh bound and the LOD probe\r\n * sphere, then per-system view-dependent updates\r\n * (EveChildParticleSystem.cpp:100-121).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Frustum and LOD factor are read from the explicit update context; a missing frustum is treated as visible.\")\r\n UpdateVisibility(updateContext, _parentTransform, _parentLod)\r\n {\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n this.#isVisible = this.display && this.#hasUpdated && frustum?.IsSphereVisible(this.#boundingSphere) !== false;\r\n if (this.#isVisible)\r\n {\r\n this.currentScreenSize = Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity);\r\n const lodFactor = Number(updateContext?.GetLodFactor?.() ?? updateContext?.lodFactor) || 1;\r\n this.#isVisible = this.#isVisible && this.currentScreenSize >= this.minScreenSize * lodFactor;\r\n }\r\n else\r\n {\r\n this.currentScreenSize = -1;\r\n }\r\n if (this.#isVisible)\r\n {\r\n for (const system of this.particleSystems)\r\n {\r\n system?.UpdateViewDependentData?.(frustum, this.worldTransform);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Stateless visibility probe used by the entity layer\r\n * (EveChildParticleSystem.cpp:123-127).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Frustum and LOD factor are read from the explicit update context; a missing frustum is treated as visible.\")\r\n IsVisible(updateContext)\r\n {\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n const lodFactor = Number(updateContext?.GetLodFactor?.() ?? updateContext?.lodFactor) || 1;\r\n return frustum?.IsSphereVisible(this.#boundingSphere) !== false &&\r\n Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity) >= this.minScreenSize * lodFactor;\r\n }\r\n\r\n /**\r\n * Sorts particles and publishes this child as a renderable when visible\r\n * (EveChildParticleSystem.cpp:130-143).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(renderables = [])\r\n {\r\n if (!this.#isVisible)\r\n {\r\n return renderables;\r\n }\r\n for (const system of this.particleSystems)\r\n {\r\n system?.SortParticles?.();\r\n }\r\n renderables.push(this);\r\n return renderables;\r\n }\r\n\r\n /** Copies the world-space mesh bound when built (EveChildParticleSystem.cpp:145-153). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphere(out = vec4.create(), _query = 0)\r\n {\r\n if (this.#boundingSphere[3] === -1)\r\n {\r\n return false;\r\n }\r\n vec4.copy(out, this.#boundingSphere);\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /**\r\n * Whether the assigned mesh has transparent areas, when the child is displayed and a mesh is set.\r\n */\r\n HasTransparentBatches()\r\n {\r\n if (this.display && this.mesh)\r\n {\r\n return (this.mesh.GetAreas(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0;\r\n }\r\n return false;\r\n }\r\n\r\n /**\n * Delegates the selected mesh areas at Carbon's maximum screen size, reversing\n * winding for reflection renders (EveChildParticleSystem.cpp:155-161).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Returns whether JavaScript mesh delegation committed a batch; Carbon's void method exposes no result.\")\n GetBatches(batches, batchType, perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\n {\n if (!this.display || !this.mesh)\n {\n return false;\n }\n\n const areas = this.mesh.GetAreas(batchType);\n if (!areas.length)\n {\n return false;\n }\n\n return this.mesh.GetBatches(\n batches,\n areas,\n perObjectData,\n Infinity,\n reason === Tr2RenderReason.TR2RENDERREASON_REFLECTION\n ) === true;\n }\n\r\n /** Distance from the view position to the world translation (EveChildParticleSystem.cpp:173-178). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\r\n GetSortValue(renderContext = null)\r\n {\r\n const viewPosition = renderContext?.GetViewPosition();\r\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\r\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\r\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\r\n return Math.hypot(x, y, z);\r\n }\r\n\r\n /** Carbon method GetPerObjectData (EveChildParticleSystem.cpp:180-195). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's transient EveBasicPerObjectData fill (cpp:182-194): world/worldLast transposed, worldInverse = Inverse(world). Trinity Allocs the record from the accumulator's store and Sets logical values by name (the store transposes per the engine layout).\")\r\n GetPerObjectData(accumulator)\r\n {\r\n const data = accumulator.Alloc(\"EveBasicPerObjectData\");\r\n\r\n data.SetAndTranspose(\"world\", this.worldTransform);\r\n data.SetAndTranspose(\"worldLast\", this.#worldTransformLast);\r\n\r\n const inverse = mat4.create();\r\n if (!mat4.invert(inverse, this.worldTransform)) mat4.identity(inverse);\r\n data.SetAndTranspose(\"worldInverse\", inverse);\r\n\r\n return data;\r\n }\r\n\r\n /** Carbon's synchronous pass is empty (EveChildParticleSystem.cpp:197-199). */\r\n @carbon.method\r\n @impl.noop\r\n UpdateSyncronous(_updateContext, _params)\r\n {\r\n }\r\n\r\n /**\r\n * Per-frame async update (EveChildParticleSystem.cpp:201-280): rebuild the\r\n * world transform, fold the transform modifiers, rebuild the bounding and\r\n * LOD spheres, then drive the particle systems and emitters.\r\n */\r\n @carbon.method\r\n @carbon.contextual([\"camera\"])\r\n @impl.adapted\r\n @impl.reason(\"Renderer-global frustum state is read from the update context, and emitter/system updates use the backend-neutral argument record.\")\r\n UpdateAsyncronous(updateContext, params)\r\n {\r\n mat4.copy(this.#worldTransformLast, this.worldTransform);\r\n const parentTransform = params?.localToWorldTransform;\r\n if (parentTransform && parentTransform.length === 16)\r\n {\r\n this.UpdateTransform(parentTransform);\r\n }\r\n applyTransformModifiers(this, updateContext, params?.boneCount ?? 0, params?.bones ?? null);\r\n\r\n if (this.mesh?.GetBoundingBox?.(EveChildParticleSystem.#boundsMin, EveChildParticleSystem.#boundsMax))\r\n {\r\n sph3.fromBounds(EveChildParticleSystem.#localSphere, EveChildParticleSystem.#boundsMin, EveChildParticleSystem.#boundsMax);\r\n sph3.transformMat4(this.#boundingSphere, EveChildParticleSystem.#localSphere, this.worldTransform);\r\n }\r\n\r\n if (this.lodSphereRadius > 0)\r\n {\r\n vec4.set(this.#lodSphere, 0, 0, 0, this.lodSphereRadius);\r\n sph3.transformMat4(this.#lodSphere, this.#lodSphere, this.worldTransform);\r\n }\r\n else\r\n {\r\n this.#lodSphere[3] = -1;\r\n }\r\n\r\n for (const system of this.particleSystems)\n {\n system.UpdateTransform(this.worldTransform);\n }\r\n\r\n const time = Number(updateContext?.GetTime?.() ?? updateContext?.currentTime ?? 0);\r\n const gpuParticleSystem = updateContext?.GetGpuParticleSystem?.() ?? updateContext?.gpuParticleSystem ?? null;\r\n const originShift = updateContext?.GetOriginShift?.() ?? updateContext?.originShift ?? EveChildParticleSystem.#zero;\r\n\r\n if (this.particleEmitters.length)\r\n {\r\n let emitCountFactor = 1;\r\n if (!(params?.isVisible ?? true) || !this.display)\r\n {\r\n emitCountFactor = 0;\r\n }\r\n else if (this.minScreenSize > 0 && this.lodSphereRadius > 0 && this.reflectionMode === EveChildParticleSystem.ReflectionMode.REFLECT_NEVER)\r\n {\r\n // Carbon derives a scratch frustum from the Tr2Renderer view globals\r\n // here (EveChildParticleSystem.cpp:246-254); the relocated camera\r\n // state is the context frustum.\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n const size = Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity);\r\n const lodFactor = Number(updateContext?.GetLodFactor?.() ?? updateContext?.lodFactor) || 1;\r\n if (size < this.minScreenSize * lodFactor)\r\n {\r\n emitCountFactor = 0;\r\n }\r\n }\r\n const args = EveChildParticleSystem.#emitterArgs;\n args.time = time;\n args.system = gpuParticleSystem;\n mat4.copy(args.parentTransform, this.worldTransform);\n vec3.copy(args.originShift, originShift);\n args.emitCountFactor = emitCountFactor;\n for (const emitter of this.particleEmitters)\n {\n emitter.Update(args);\n }\r\n }\r\n\r\n if (this.particleSystems.length)\r\n {\r\n // Carbon passes IdentityMatrix() for the systems' own update\r\n // (EveChildParticleSystem.cpp:267-278).\r\n const args = EveChildParticleSystem.#systemArgs;\n args.time = time;\n args.system = gpuParticleSystem;\n mat4.copy(args.parentTransform, EveChildParticleSystem.#identity);\n vec3.copy(args.originShift, originShift);\n args.emitCountFactor = 1;\n for (const system of this.particleSystems)\n {\n system.Update(args);\n }\r\n }\r\n\r\n this.#hasUpdated = true;\r\n }\r\n\r\n /** Returns the local-to-world matrix (EveChildParticleSystem.cpp:286-289). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"CarbonEngineJS uses an out-last signature and returns the matrix when no output is supplied.\")\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 /**\r\n * Clamps each system's particle budget when the parent's LOD changed\r\n * (EveChildParticleSystem.cpp:295-318).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ChangeLOD(lod)\r\n {\r\n if (!this.useDynamicLod)\r\n {\r\n return;\r\n }\r\n for (const system of this.particleSystems)\n {\n const original = Number(system.GetOriginalMaxParticles()) >>> 0;\n let particleCount = original;\r\n if (lod === Tr2Lod.TR2_LOD_LOW)\r\n {\r\n particleCount = Math.min(this.lodClampLow, Math.trunc(original * this.lodFactorLow));\r\n }\r\n else if (lod === Tr2Lod.TR2_LOD_MEDIUM)\r\n {\r\n particleCount = Math.trunc(original * this.lodFactorMedium);\r\n }\r\n system.SetMaxParticleCount(particleCount);\n }\r\n }\r\n\r\n /** Carbon method AddTransformModifier (EveChildParticleSystem.cpp:344-347). */\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 /** Carbon EveChildParticleSystem::RegisterComponents (cpp:58-68):\r\n * ReflectionRenderable leaf self-registration behind ShouldReflect (Carbon\r\n * redundantly re-checks m_display inside the outer display gate). */\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)\r\n {\r\n if (ShouldReflect(this.reflectionMode) && this.display)\r\n {\r\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\r\n }\r\n }\r\n }\r\n\r\n static ReflectionMode = ReflectionMode;\r\n\r\n static Tr2Lod = Tr2Lod;\r\n\r\n static #boundsMin = vec3.create();\r\n\r\n static #boundsMax = vec3.create();\r\n\r\n static #localSphere = vec4.create();\r\n\r\n static #zero = vec3.create();\r\n\r\n static #identity = mat4.create();\r\n\r\n // Reusable emitter/system argument records (backend-neutral mirror of\r\n // ITr2GenericEmitter::UpdateArguments); child updates run sequentially, so\r\n // the shared records are non-reentrant by design.\r\n static #emitterArgs = new ITr2GenericEmitterUpdateArguments();\n\n static #systemArgs = new ITr2GenericEmitterUpdateArguments();\n\r\n}\r\n"],"names":["_EveChildParticleSyst","_identity","EveChildParticleSystem","_withITr2Renderable","withITr2Renderable","EveChildTransform","e","_init_reflectionMode","_init_extra_reflectionMode","_init_particleEmitters","_init_extra_particleEmitters","_init_particleSystems","_init_extra_particleSystems","_init_transformModifiers","_init_extra_transformModifiers","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_mesh","_init_extra_mesh","_init_lodClampLow","_init_extra_lodClampLow","_init_lodSphereRadius","_init_extra_lodSphereRadius","_init_useDynamicLod","_init_extra_useDynamicLod","_init_lodFactorLow","_init_extra_lodFactorLow","_init_lodFactorMedium","_init_extra_lodFactorMedium","_init_minScreenSize","_init_extra_minScreenSize","_init_currentScreenSize","_init_extra_currentScreenSize","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","enum","list","boolean","string","model","uint32","float32","read","carbon","method","impl","implemented","adapted","reason","noop","contextual","reflectionMode","particleEmitters","particleSystems","transformModifiers","display","name","mesh","lodClampLow","lodSphereRadius","useDynamicLod","lodFactorLow","lodFactorMedium","minScreenSize","currentScreenSize","vec4","fromValues","mat4","create","Initialize","staticTransform","RebuildLocalTransform","OnModified","_value","ReRegister","GetName","SetName","String","Setup","scale","rotation","translation","lowestLodVisible","UpdateVisibility","updateContext","_parentTransform","_parentLod","frustum","GetFrustum","IsSphereVisible","Number","GetPixelSizeAccrossEst","Infinity","lodFactor","GetLodFactor","system","UpdateViewDependentData","worldTransform","IsVisible","GetRenderables","renderables","SortParticles","push","GetBoundingSphere","out","_query","copy","HasTransparentBatches","GetAreas","TriBatchType","TRIBATCHTYPE_TRANSPARENT","length","GetBatches","batches","batchType","perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","areas","TR2RENDERREASON_REFLECTION","GetSortValue","renderContext","viewPosition","GetViewPosition","x","y","z","Math","hypot","GetPerObjectData","accumulator","data","Alloc","SetAndTranspose","inverse","invert","identity","UpdateSyncronous","_updateContext","_params","UpdateAsyncronous","params","parentTransform","localToWorldTransform","UpdateTransform","applyTransformModifiers","boneCount","bones","GetBoundingBox","sph3","fromBounds","transformMat4","set","time","GetTime","currentTime","gpuParticleSystem","GetGpuParticleSystem","originShift","GetOriginShift","emitCountFactor","isVisible","ReflectionMode","REFLECT_NEVER","size","args","vec3","emitter","Update","GetLocalToWorldTransform","ChangeLOD","lod","original","GetOriginalMaxParticles","particleCount","Tr2Lod","TR2_LOD_LOW","min","trunc","TR2_LOD_MEDIUM","SetMaxParticleCount","AddTransformModifier","modifier","RegisterComponents","registry","GetComponentRegistry","ShouldReflect","RegisterComponent","EveComponentType","ReflectionRenderable","ITr2GenericEmitterUpdateArguments","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveChildParticleSystem.js","sources":["../../../../../src/trinity/eve/child/EveChildParticleSystem.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildParticleSystem.h\n// Hand-maintained from Carbon source, promoted out of generated intake.\nimport { carbon, impl, io, type } from \"#schema\";\nimport { EveChildTransform, applyTransformModifiers } from \"./EveChildTransform.js\";\nimport { mat4 } from \"#math/mat4\";\nimport { sph3 } from \"#math/sph3\";\nimport { vec3 } from \"#math/vec3\";\nimport { vec4 } from \"#math/vec4\";\nimport { ReflectionMode, TriBatchType } from \"#consts/graphics\";\nimport { Tr2Lod } from \"../EveLODHelper.js\";\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\nimport { withITr2Renderable } from \"../../core/ITr2Renderable.js\";\nimport { Tr2RenderReason } from \"../../generated/trinityCore/enums.js\";\nimport { ITr2GenericEmitterUpdateArguments } from \"../../particle/ITr2GenericEmitter/index.js\";\n\n/** A child that hosts particle systems and emitters, driving their transforms, LOD-based particle budgets, and per-frame visibility and render submission. */\n@type.define({ className: \"EveChildParticleSystem\", family: \"eve/child\" })\nexport class EveChildParticleSystem extends withITr2Renderable(EveChildTransform)\n{\n\n /** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */\n @io.notify\n @io.persist\n @type.int32\n @type.enum(\"ReflectionMode\")\n reflectionMode = 3;\n\n /** m_particleEmitters (PITr2GenericEmitterVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"ITr2GenericEmitter\")\n particleEmitters = [];\n\n /** m_particleSystems (PTr2ParticleSystemVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"Tr2ParticleSystem\")\n particleSystems = [];\n\n /** m_transformModifiers (PIEveChildTransformModifierVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"IEveChildTransformModifier\")\n transformModifiers = [];\n\n /** m_display (bool) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.boolean\n display = true;\n\n /** m_name (BlueSharedString) [READWRITE, PERSIST] */\n @io.persist\n @type.string\n name = \"\";\n\n /** m_mesh (Tr2InstancedMeshPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.model(\"Tr2InstancedMesh\")\n mesh = null;\n\n /** m_lodClampLow (uint32_t) [READWRITE, PERSIST] */\n @io.persist\n @type.uint32\n lodClampLow = 5;\n\n /** m_lodSphereRadius (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n lodSphereRadius = 0;\n\n /** m_useDynamicLod (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n useDynamicLod = false;\n\n /** m_lodFactorLow (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n lodFactorLow = 0.125;\n\n /** m_lodFactorMedium (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n lodFactorMedium = 0.25;\n\n /** m_minScreenSize (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n minScreenSize = 0;\n\n /** m_currentScreenSize (float) [READ] */\n @io.read\n @type.float32\n currentScreenSize = -1;\n\n /** m_boundingSphere (Vector4) - world-space mesh bound, radius -1 until built. */\n #boundingSphere = vec4.fromValues(0, 0, 0, -1);\n\n /** m_lodSphere (Vector4) - world-space LOD probe, radius -1 while lodSphereRadius is unset. */\n #lodSphere = vec4.fromValues(0, 0, 0, -1);\n\n /** m_worldTransformLast (Matrix) - previous frame's world transform. */\n #worldTransformLast = mat4.create();\n\n /** m_isVisible (bool) - result of the last UpdateVisibility pass. */\n #isVisible = true;\n\n /** m_hasUpdated (bool) - until an update ran, the object cannot be rendered. */\n #hasUpdated = false;\n\n /** Rebuilds static local transforms (EveChildParticleSystem.cpp:43-50). */\n @carbon.method\n @impl.implemented\n Initialize()\n {\n if (this.staticTransform)\n {\n this.RebuildLocalTransform();\n }\n return true;\n }\n\n /**\n * Carbon re-registers the renderable component when m_reflectionMode or\n * m_display change (EveChildParticleSystem.cpp:71-78).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon re-registers on m_reflectionMode/m_display Var edits; JS forwards every OnModified to the EveEntity ReRegister lifecycle.\")\n OnModified(_value)\n {\n this.ReRegister?.();\n return true;\n }\n\n @carbon.method\n @impl.implemented\n /**\n * The particle system child's name.\n */\n GetName()\n {\n return this.name;\n }\n\n @carbon.method\n @impl.implemented\n /**\n * Sets the particle system child's name, coercing the value to a string.\n */\n SetName(name)\n {\n this.name = String(name ?? \"\");\n }\n\n /** Forwards to the base transform setup (EveChildParticleSystem.cpp:95-98). */\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 * Frustum/screen-size visibility against the mesh bound and the LOD probe\n * sphere, then per-system view-dependent updates\n * (EveChildParticleSystem.cpp:100-121).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Frustum and LOD factor are read from the explicit update context; a missing frustum is treated as visible.\")\n UpdateVisibility(updateContext, _parentTransform, _parentLod)\n {\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\n this.#isVisible = this.display && this.#hasUpdated && frustum?.IsSphereVisible(this.#boundingSphere) !== false;\n if (this.#isVisible)\n {\n this.currentScreenSize = Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity);\n const lodFactor = Number(updateContext?.GetLodFactor?.() ?? updateContext?.lodFactor) || 1;\n this.#isVisible = this.#isVisible && this.currentScreenSize >= this.minScreenSize * lodFactor;\n }\n else\n {\n this.currentScreenSize = -1;\n }\n if (this.#isVisible)\n {\n for (const system of this.particleSystems)\n {\n system?.UpdateViewDependentData?.(frustum, this.worldTransform);\n }\n }\n }\n\n /**\n * Stateless visibility probe used by the entity layer\n * (EveChildParticleSystem.cpp:123-127).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Frustum and LOD factor are read from the explicit update context; a missing frustum is treated as visible.\")\n IsVisible(updateContext)\n {\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\n const lodFactor = Number(updateContext?.GetLodFactor?.() ?? updateContext?.lodFactor) || 1;\n return frustum?.IsSphereVisible(this.#boundingSphere) !== false &&\n Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity) >= this.minScreenSize * lodFactor;\n }\n\n /**\n * Sorts particles and publishes this child as a renderable when visible\n * (EveChildParticleSystem.cpp:130-143).\n */\n @carbon.method\n @impl.implemented\n GetRenderables(renderables = [])\n {\n if (!this.#isVisible)\n {\n return renderables;\n }\n for (const system of this.particleSystems)\n {\n system?.SortParticles?.();\n }\n renderables.push(this);\n return renderables;\n }\n\n /** Copies the world-space mesh bound when built (EveChildParticleSystem.cpp:145-153). */\n @carbon.method\n @impl.implemented\n GetBoundingSphere(out = vec4.create(), _query = 0)\n {\n if (this.#boundingSphere[3] === -1)\n {\n return false;\n }\n vec4.copy(out, this.#boundingSphere);\n return true;\n }\n\n @carbon.method\n @impl.implemented\n /**\n * Whether the assigned mesh has transparent areas, when the child is displayed and a mesh is set.\n */\n HasTransparentBatches()\n {\n if (this.display && this.mesh)\n {\n return (this.mesh.GetAreas(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0;\n }\n return false;\n }\n\n /**\n * Delegates the selected mesh areas at Carbon's maximum screen size, reversing\n * winding for reflection renders (EveChildParticleSystem.cpp:155-161).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Returns whether JavaScript mesh delegation committed a batch; Carbon's void method exposes no result.\")\n GetBatches(batches, batchType, perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\n {\n if (!this.display || !this.mesh)\n {\n return false;\n }\n\n const areas = this.mesh.GetAreas(batchType);\n if (!areas.length)\n {\n return false;\n }\n\n return this.mesh.GetBatches(\n batches,\n areas,\n perObjectData,\n Infinity,\n reason === Tr2RenderReason.TR2RENDERREASON_REFLECTION\n ) === true;\n }\n\n /** Distance from the view position to the world translation (EveChildParticleSystem.cpp:173-178). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\n GetSortValue(renderContext = null)\n {\n const viewPosition = renderContext?.GetViewPosition();\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\n return Math.hypot(x, y, z);\n }\n\n /** Carbon method GetPerObjectData (EveChildParticleSystem.cpp:180-195). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon's transient EveBasicPerObjectData fill (cpp:182-194): world/worldLast transposed, worldInverse = Inverse(world). Trinity Allocs the record from the accumulator's store and Sets logical values by name (the store transposes per the engine layout).\")\n GetPerObjectData(accumulator)\n {\n const data = accumulator.Alloc(\"EveBasicPerObjectData\");\n\n data.SetAndTranspose(\"world\", this.worldTransform);\n data.SetAndTranspose(\"worldLast\", this.#worldTransformLast);\n\n const inverse = mat4.create();\n if (!mat4.invert(inverse, this.worldTransform)) mat4.identity(inverse);\n data.SetAndTranspose(\"worldInverse\", inverse);\n\n return data;\n }\n\n /** Carbon's synchronous pass is empty (EveChildParticleSystem.cpp:197-199). */\n @carbon.method\n @impl.noop\n UpdateSyncronous(_updateContext, _params)\n {\n }\n\n /**\n * Per-frame async update (EveChildParticleSystem.cpp:201-280): rebuild the\n * world transform, fold the transform modifiers, rebuild the bounding and\n * LOD spheres, then drive the particle systems and emitters.\n */\n @carbon.method\n @carbon.contextual([\"camera\"])\n @impl.adapted\n @impl.reason(\"Renderer-global frustum state is read from the update context, and emitter/system updates use the backend-neutral argument record.\")\n UpdateAsyncronous(updateContext, params)\n {\n mat4.copy(this.#worldTransformLast, this.worldTransform);\n const parentTransform = params?.localToWorldTransform;\n if (parentTransform && parentTransform.length === 16)\n {\n this.UpdateTransform(parentTransform);\n }\n applyTransformModifiers(this, updateContext, params?.boneCount ?? 0, params?.bones ?? null);\n\n if (this.mesh?.GetBoundingBox?.(EveChildParticleSystem.#boundsMin, EveChildParticleSystem.#boundsMax))\n {\n sph3.fromBounds(EveChildParticleSystem.#localSphere, EveChildParticleSystem.#boundsMin, EveChildParticleSystem.#boundsMax);\n sph3.transformMat4(this.#boundingSphere, EveChildParticleSystem.#localSphere, this.worldTransform);\n }\n\n if (this.lodSphereRadius > 0)\n {\n vec4.set(this.#lodSphere, 0, 0, 0, this.lodSphereRadius);\n sph3.transformMat4(this.#lodSphere, this.#lodSphere, this.worldTransform);\n }\n else\n {\n this.#lodSphere[3] = -1;\n }\n\n for (const system of this.particleSystems)\n {\n system.UpdateTransform(this.worldTransform);\n }\n\n const time = Number(updateContext?.GetTime?.() ?? updateContext?.currentTime ?? 0);\n const gpuParticleSystem = updateContext?.GetGpuParticleSystem?.() ?? updateContext?.gpuParticleSystem ?? null;\n const originShift = updateContext?.GetOriginShift?.() ?? updateContext?.originShift ?? EveChildParticleSystem.#zero;\n\n if (this.particleEmitters.length)\n {\n let emitCountFactor = 1;\n if (!(params?.isVisible ?? true) || !this.display)\n {\n emitCountFactor = 0;\n }\n else if (this.minScreenSize > 0 && this.lodSphereRadius > 0 && this.reflectionMode === EveChildParticleSystem.ReflectionMode.REFLECT_NEVER)\n {\n // Carbon derives a scratch frustum from the Tr2Renderer view globals\n // here (EveChildParticleSystem.cpp:246-254); the relocated camera\n // state is the context frustum.\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\n const size = Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity);\n const lodFactor = Number(updateContext?.GetLodFactor?.() ?? updateContext?.lodFactor) || 1;\n if (size < this.minScreenSize * lodFactor)\n {\n emitCountFactor = 0;\n }\n }\n const args = EveChildParticleSystem.#emitterArgs;\n args.time = time;\n args.system = gpuParticleSystem;\n mat4.copy(args.parentTransform, this.worldTransform);\n vec3.copy(args.originShift, originShift);\n args.emitCountFactor = emitCountFactor;\n for (const emitter of this.particleEmitters)\n {\n emitter.Update(args);\n }\n }\n\n if (this.particleSystems.length)\n {\n // Carbon passes IdentityMatrix() for the systems' own update\n // (EveChildParticleSystem.cpp:267-278).\n const args = EveChildParticleSystem.#systemArgs;\n args.time = time;\n args.system = gpuParticleSystem;\n mat4.copy(args.parentTransform, EveChildParticleSystem.#identity);\n vec3.copy(args.originShift, originShift);\n args.emitCountFactor = 1;\n for (const system of this.particleSystems)\n {\n system.Update(args);\n }\n }\n\n this.#hasUpdated = true;\n }\n\n /** Returns the local-to-world matrix (EveChildParticleSystem.cpp:286-289). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"CarbonEngineJS uses an out-last signature and returns the matrix when no output is supplied.\")\n GetLocalToWorldTransform(out = null)\n {\n if (out)\n {\n return mat4.copy(out, this.worldTransform);\n }\n return this.worldTransform;\n }\n\n /**\n * Clamps each system's particle budget when the parent's LOD changed\n * (EveChildParticleSystem.cpp:295-318).\n */\n @carbon.method\n @impl.implemented\n ChangeLOD(lod)\n {\n if (!this.useDynamicLod)\n {\n return;\n }\n for (const system of this.particleSystems)\n {\n const original = Number(system.GetOriginalMaxParticles()) >>> 0;\n let particleCount = original;\n if (lod === Tr2Lod.TR2_LOD_LOW)\n {\n particleCount = Math.min(this.lodClampLow, Math.trunc(original * this.lodFactorLow));\n }\n else if (lod === Tr2Lod.TR2_LOD_MEDIUM)\n {\n particleCount = Math.trunc(original * this.lodFactorMedium);\n }\n system.SetMaxParticleCount(particleCount);\n }\n }\n\n /** Carbon method AddTransformModifier (EveChildParticleSystem.cpp:344-347). */\n @carbon.method\n @impl.implemented\n AddTransformModifier(modifier)\n {\n this.transformModifiers.push(modifier);\n }\n\n /** Carbon EveChildParticleSystem::RegisterComponents (cpp:58-68):\n * ReflectionRenderable leaf self-registration behind ShouldReflect (Carbon\n * redundantly re-checks m_display inside the outer display gate). */\n @carbon.method\n @impl.implemented\n RegisterComponents()\n {\n const registry = this.GetComponentRegistry();\n if (registry && this.display)\n {\n if (ShouldReflect(this.reflectionMode) && this.display)\n {\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\n }\n }\n }\n\n static ReflectionMode = ReflectionMode;\n\n static Tr2Lod = Tr2Lod;\n\n static #boundsMin = vec3.create();\n\n static #boundsMax = vec3.create();\n\n static #localSphere = vec4.create();\n\n static #zero = vec3.create();\n\n static #identity = mat4.create();\n\n // Reusable emitter/system argument records (backend-neutral mirror of\n // ITr2GenericEmitter::UpdateArguments); child updates run sequentially, so\n // the shared records are non-reentrant by design.\n static #emitterArgs = new ITr2GenericEmitterUpdateArguments();\n\n static #systemArgs = new ITr2GenericEmitterUpdateArguments();\n\n}\n"],"names":["_EveChildParticleSyst","_identity","EveChildParticleSystem","_withITr2Renderable","withITr2Renderable","EveChildTransform","e","_init_reflectionMode","_init_extra_reflectionMode","_init_particleEmitters","_init_extra_particleEmitters","_init_particleSystems","_init_extra_particleSystems","_init_transformModifiers","_init_extra_transformModifiers","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_mesh","_init_extra_mesh","_init_lodClampLow","_init_extra_lodClampLow","_init_lodSphereRadius","_init_extra_lodSphereRadius","_init_useDynamicLod","_init_extra_useDynamicLod","_init_lodFactorLow","_init_extra_lodFactorLow","_init_lodFactorMedium","_init_extra_lodFactorMedium","_init_minScreenSize","_init_extra_minScreenSize","_init_currentScreenSize","_init_extra_currentScreenSize","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","enum","list","boolean","string","model","uint32","float32","read","carbon","method","impl","implemented","adapted","reason","noop","contextual","reflectionMode","particleEmitters","particleSystems","transformModifiers","display","name","mesh","lodClampLow","lodSphereRadius","useDynamicLod","lodFactorLow","lodFactorMedium","minScreenSize","currentScreenSize","vec4","fromValues","mat4","create","Initialize","staticTransform","RebuildLocalTransform","OnModified","_value","ReRegister","GetName","SetName","String","Setup","scale","rotation","translation","lowestLodVisible","UpdateVisibility","updateContext","_parentTransform","_parentLod","frustum","GetFrustum","IsSphereVisible","Number","GetPixelSizeAccrossEst","Infinity","lodFactor","GetLodFactor","system","UpdateViewDependentData","worldTransform","IsVisible","GetRenderables","renderables","SortParticles","push","GetBoundingSphere","out","_query","copy","HasTransparentBatches","GetAreas","TriBatchType","TRIBATCHTYPE_TRANSPARENT","length","GetBatches","batches","batchType","perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","areas","TR2RENDERREASON_REFLECTION","GetSortValue","renderContext","viewPosition","GetViewPosition","x","y","z","Math","hypot","GetPerObjectData","accumulator","data","Alloc","SetAndTranspose","inverse","invert","identity","UpdateSyncronous","_updateContext","_params","UpdateAsyncronous","params","parentTransform","localToWorldTransform","UpdateTransform","applyTransformModifiers","boneCount","bones","GetBoundingBox","sph3","fromBounds","transformMat4","set","time","GetTime","currentTime","gpuParticleSystem","GetGpuParticleSystem","originShift","GetOriginShift","emitCountFactor","isVisible","ReflectionMode","REFLECT_NEVER","size","args","vec3","emitter","Update","GetLocalToWorldTransform","ChangeLOD","lod","original","GetOriginalMaxParticles","particleCount","Tr2Lod","TR2_LOD_LOW","min","trunc","TR2_LOD_MEDIUM","SetMaxParticleCount","AddTransformModifier","modifier","RegisterComponents","registry","GetComponentRegistry","ShouldReflect","RegisterComponent","EveComponentType","ReflectionRenderable","ITr2GenericEmitterUpdateArguments","constructor"],"mappings":"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"}
|
|
@@ -78,6 +78,11 @@ new class extends _identity {
|
|
|
78
78
|
}
|
|
79
79
|
return _EveChildTransform.#compose(out, this.scaling, this.rotation, this.translation);
|
|
80
80
|
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Rebuilds the local matrix from scale, rotation, and translation when useSRT
|
|
84
|
+
* is enabled, then returns it.
|
|
85
|
+
*/
|
|
81
86
|
RebuildLocalTransform() {
|
|
82
87
|
if (this.useSRT) {
|
|
83
88
|
_EveChildTransform.#compose(this.localTransform, this.scaling, this.rotation, this.translation);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveChildTransform.js","sources":["../../../../../src/trinity/eve/child/EveChildTransform.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildTransform.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildTransform.cpp\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { carbon, impl, type } from \"#schema\";\r\nimport { EveSpaceObjectChild } from \"./EveSpaceObjectChild.js\";\r\n\r\n\r\n// Carbon's registered space-object children multiple-inherit EveEntity\r\n// alongside EveChildTransform (e.g. EveChildMesh.h:56-64, EveChildContainer.h\r\n// :33-41). JavaScript single inheritance cannot express that, so the port\r\n// HOISTS the EveEntity registration lifecycle\r\n// (Register/UnRegister/GetComponentRegistry/component state) to the child\r\n// root at IEveSpaceObjectChild, and every child reaches it from there.\r\n//\r\n// THIS IS A DELIBERATE OVER-APPROXIMATION, and the consequence is worth\r\n// stating plainly: Carbon fans out through BlueCastPtr<EveEntity>, which\r\n// FAILS for a child whose class is not an EveEntity, so that child is never\r\n// registered. Here the cast cannot fail, so such a child registers anyway -\r\n// with no components, base RegisterComponents being a no-op. Same observable\r\n// result today; not the same rule.\r\n//\r\n// A NOTE THAT USED TO LIVE HERE SAID THE `child?.Register?.()` HEDGES WERE\r\n// STANDING IN FOR THAT CAST. They were not, and the claim outlived its own\r\n// premise: once EveEntity sits at the child root, every element of every\r\n// child list has Register, and the hedge could not fire. The method guards\r\n// were dropped on 2026-09-05. The one that survives is in BehaviorGroup,\r\n// which resolves its target by STRING NAME rather than by type.\r\n\r\n/**\r\n * Shared base for space-object children: holds the SRT values, local and world\r\n * transforms, and the rules by which a child's world transform is derived from\r\n * its parent's each frame.\r\n */\r\n@type.define({\r\n className: \"EveChildTransform\",\r\n family: \"eve/child\"\r\n})\r\nexport class EveChildTransform extends EveSpaceObjectChild\r\n{\r\n @type.vec3\r\n translation = vec3.create();\r\n\r\n @type.vec3\r\n scaling = vec3.fromValues(1, 1, 1);\r\n\r\n @type.quat\r\n rotation = quat.create();\r\n\r\n @type.mat4\r\n localTransform = mat4.create();\r\n\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @type.boolean\r\n staticTransform = false;\r\n\r\n @type.boolean\r\n useSRT = true;\r\n\r\n @type.boolean\r\n useStaticRotation = false;\r\n\r\n @type.boolean\r\n useStaticScale = false;\r\n\r\n /**\r\n * Recomposes the local transform from the current scaling, rotation and\r\n * translation; a child with useSRT off keeps its authored localTransform\r\n * untouched.\r\n */\r\n /**\r\n * Carbon ComputeLocalTransform (cpp:101-104): a CONST query - a static or\r\n * non-SRT child answers its stored local transform; otherwise the SRT\r\n * triple composes WITHOUT writing localTransform. Contrast\r\n * RebuildLocalTransform below, which mutates and does not consult\r\n * staticTransform. Carbon returns Matrix by value; the org out-last\r\n * convention receives it.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ComputeLocalTransform(out = mat4.create())\r\n {\r\n if (this.staticTransform || !this.useSRT)\r\n {\r\n return mat4.copy(out, this.localTransform);\r\n }\r\n return EveChildTransform.#compose(out, this.scaling, this.rotation, this.translation);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n RebuildLocalTransform()\r\n {\r\n if (this.useSRT)\r\n {\r\n EveChildTransform.#compose(this.localTransform, this.scaling, this.rotation, this.translation);\r\n }\r\n return this.localTransform;\r\n }\r\n\r\n /**\r\n * Applies the supplied SRT components (each optional - omitted ones keep their current value) and rebuilds the local transform; a child with useSRT off returns its authored localTransform unchanged.\r\n * @param {Number} [_lowestLodVisible] - accepted for Carbon signature parity, unused here\r\n * @returns {Float32Array} the child's live local transform\r\n */\r\n Setup(scale = null, rotation = null, translation = null, _lowestLodVisible = null)\r\n {\r\n if (!this.useSRT)\r\n {\r\n return this.localTransform;\r\n }\r\n if (scale)\r\n {\r\n vec3.copy(this.scaling, scale);\r\n }\r\n if (rotation)\r\n {\r\n quat.copy(this.rotation, rotation);\r\n }\r\n if (translation)\r\n {\r\n vec3.copy(this.translation, translation);\r\n }\r\n return this.RebuildLocalTransform();\r\n }\r\n\r\n /**\r\n * Setup that also latches useStaticRotation, so from then on UpdateTransform\r\n * strips the parent's rotation and the child keeps a fixed world orientation.\r\n */\r\n SetupWithStaticRotation(scale = null, rotation = null, translation = null, lowestLodVisible = null)\r\n {\r\n this.useStaticRotation = true;\r\n return this.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n /**\r\n * Setup that also latches staticTransform, so from then on UpdateTransform\r\n * reuses the local transform as-is instead of recomposing it from the SRT\r\n * values every frame.\r\n */\r\n SetupWithStaticTransform(scale = null, rotation = null, translation = null, lowestLodVisible = null)\r\n {\r\n this.staticTransform = true;\r\n return this.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n // Carbon: m_worldTransform = m_localTransform * parentTransform in\r\n // row-vector convention (local first, then parent), which is\r\n // mat4.multiply(world, parent, local) in gl-matrix - matching\r\n // EveTransform.UpdateViewDependentData.\r\n\r\n /**\r\n * Recomputes the child's world transform from its parent for this frame - the single place a child's placement is driven. A staticTransform or non-SRT child reuses its local transform as-is; otherwise it is recomposed first, and when useStaticScale or useStaticRotation is set the parent is decomposed and rebuilt with unit scale and/or identity rotation before the two are combined.\r\n * @param {Float32Array} parentTransform - borrowed, read only\r\n * @returns {Float32Array} the child's live world transform\r\n */\r\n UpdateTransform(parentTransform)\r\n {\r\n if (this.staticTransform || !this.useSRT)\r\n {\r\n return mat4.multiply(this.worldTransform, parentTransform, this.localTransform);\r\n }\r\n this.RebuildLocalTransform();\r\n if (!this.useStaticRotation && !this.useStaticScale)\r\n {\r\n return mat4.multiply(this.worldTransform, parentTransform, this.localTransform);\r\n }\r\n const scale = mat4.getScaling(vec3.create(), parentTransform);\r\n const rotation = EveChildTransform.#getRotation(quat.create(), parentTransform, scale);\r\n const translation = mat4.getTranslation(vec3.create(), parentTransform);\r\n if (this.useStaticScale)\r\n {\r\n vec3.set(scale, 1, 1, 1);\r\n }\r\n if (this.useStaticRotation)\r\n {\r\n quat.identity(rotation);\r\n }\r\n const modifiedParentTransform = EveChildTransform.#compose(mat4.create(), scale, rotation, translation);\r\n return mat4.multiply(this.worldTransform, modifiedParentTransform, this.localTransform);\r\n }\r\n\r\n /** Builds a transform matrix from a scale, rotation and translation triple. */\r\n static #compose(out, scale, rotation, translation)\r\n {\r\n return mat4.fromRotationTranslationScale(out, rotation, translation, scale);\r\n }\r\n\r\n /**\r\n * Extracts the normalized rotation quaternion from a transform by dividing\r\n * each basis column by the matching component of the supplied scale first, so\r\n * non-uniform scaling does not skew the result.\r\n */\r\n static #getRotation(out, transform, scale)\r\n {\r\n const normalized = mat4.create();\r\n for (let column = 0; column < 3; column++)\r\n {\r\n const divisor = scale[column];\r\n for (let row = 0; row < 3; row++)\r\n {\r\n normalized[column * 4 + row] = divisor ? transform[column * 4 + row] / divisor : 0;\r\n }\r\n }\r\n mat4.getRotation(out, normalized);\r\n return quat.normalize(out, out);\r\n }\r\n}\r\n\r\n// Module ping-pong scratch for the modifier fold (assume-dirty, never pooled;\r\n// child updates run sequentially so it is non-reentrant).\r\nconst modifierFoldScratch = mat4.create();\r\n\r\n/**\r\n * Folds a child's transform modifiers over its worldTransform in order, each\r\n * modifier's output feeding the next. Carbon inlines this loop inside each\r\n * EveChildMesh/Container/ParticleSystem UpdateAsyncronous\r\n * (`m_worldTransform = (*it)->ApplyTransform(m_worldTransform, boneCount, bones)`);\r\n * this is a JS-only helper (zero-alloc ping-pong between worldTransform and a\r\n * module scratch buffer so no modifier reads and writes the same matrix), kept a\r\n * free function rather than a method so it stays off the Carbon method surface.\r\n * The frame context is threaded through to camera-dependent modifiers.\r\n * @param {EveChildTransform} child - owns transformModifiers + worldTransform\r\n * @param {Object} context - frame context (EveUpdateContext)\r\n * @param {Number} boneCount\r\n * @param {Float32Array|null} bones\r\n * @returns {Float32Array} child.worldTransform\r\n */\r\nexport function applyTransformModifiers(child, context, boneCount, bones)\r\n{\r\n const modifiers = child.transformModifiers;\r\n\r\n if (!modifiers || modifiers.length === 0)\r\n {\r\n return child.worldTransform;\r\n }\r\n\r\n let source = child.worldTransform;\r\n let target = modifierFoldScratch;\r\n\r\n for (const modifier of modifiers)\r\n {\r\n modifier.ApplyTransform(context, source, boneCount, bones, target);\r\n const swap = source;\r\n source = target;\r\n target = swap;\r\n }\r\n\r\n if (source !== child.worldTransform)\r\n {\r\n mat4.copy(child.worldTransform, source);\r\n }\r\n return child.worldTransform;\r\n}\r\n"],"names":["_EveChildTransform","_identity","EveChildTransform","EveSpaceObjectChild","e","_init_translation","_init_extra_translation","_init_scaling","_init_extra_scaling","_init_rotation","_init_extra_rotation","_init_localTransform","_init_extra_localTransform","_init_worldTransform","_init_extra_worldTransform","_init_staticTransform","_init_extra_staticTransform","_init_useSRT","_init_extra_useSRT","_init_useStaticRotation","_init_extra_useStaticRotation","_init_useStaticScale","_init_extra_useStaticScale","_initProto","c","_initClass","_applyDecs","type","define","className","family","vec3","quat","mat4","boolean","carbon","method","impl","implemented","constructor","args","translation","create","scaling","fromValues","rotation","localTransform","worldTransform","staticTransform","useSRT","useStaticRotation","useStaticScale","ComputeLocalTransform","out","copy","RebuildLocalTransform","Setup","scale","_lowestLodVisible","SetupWithStaticRotation","lowestLodVisible","SetupWithStaticTransform","UpdateTransform","parentTransform","multiply","getScaling","getTranslation","set","identity","modifiedParentTransform","#compose","fromRotationTranslationScale","#getRotation","transform","normalized","column","divisor","row","getRotation","normalize","modifierFoldScratch","applyTransformModifiers","child","context","boneCount","bones","modifiers","transformModifiers","length","source","target","modifier","ApplyTransform","swap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveChildTransform.js","sources":["../../../../../src/trinity/eve/child/EveChildTransform.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildTransform.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildTransform.cpp\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { carbon, impl, type } from \"#schema\";\r\nimport { EveSpaceObjectChild } from \"./EveSpaceObjectChild.js\";\r\n\r\n\r\n// Carbon's registered space-object children multiple-inherit EveEntity\r\n// alongside EveChildTransform (e.g. EveChildMesh.h:56-64, EveChildContainer.h\r\n// :33-41). JavaScript single inheritance cannot express that, so the port\r\n// HOISTS the EveEntity registration lifecycle\r\n// (Register/UnRegister/GetComponentRegistry/component state) to the child\r\n// root at IEveSpaceObjectChild, and every child reaches it from there.\r\n//\r\n// THIS IS A DELIBERATE OVER-APPROXIMATION, and the consequence is worth\r\n// stating plainly: Carbon fans out through BlueCastPtr<EveEntity>, which\r\n// FAILS for a child whose class is not an EveEntity, so that child is never\r\n// registered. Here the cast cannot fail, so such a child registers anyway -\r\n// with no components, base RegisterComponents being a no-op. Same observable\r\n// result today; not the same rule.\r\n//\r\n// A NOTE THAT USED TO LIVE HERE SAID THE `child?.Register?.()` HEDGES WERE\r\n// STANDING IN FOR THAT CAST. They were not, and the claim outlived its own\r\n// premise: once EveEntity sits at the child root, every element of every\r\n// child list has Register, and the hedge could not fire. The method guards\r\n// were dropped on 2026-09-05. The one that survives is in BehaviorGroup,\r\n// which resolves its target by STRING NAME rather than by type.\r\n\r\n/**\r\n * Shared base for space-object children: holds the SRT values, local and world\r\n * transforms, and the rules by which a child's world transform is derived from\r\n * its parent's each frame.\r\n */\r\n@type.define({\r\n className: \"EveChildTransform\",\r\n family: \"eve/child\"\r\n})\r\nexport class EveChildTransform extends EveSpaceObjectChild\r\n{\r\n @type.vec3\r\n translation = vec3.create();\r\n\r\n @type.vec3\r\n scaling = vec3.fromValues(1, 1, 1);\r\n\r\n @type.quat\r\n rotation = quat.create();\r\n\r\n @type.mat4\r\n localTransform = mat4.create();\r\n\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @type.boolean\r\n staticTransform = false;\r\n\r\n @type.boolean\r\n useSRT = true;\r\n\r\n @type.boolean\r\n useStaticRotation = false;\r\n\r\n @type.boolean\r\n useStaticScale = false;\r\n\r\n /**\r\n * Recomposes the local transform from the current scaling, rotation and\r\n * translation; a child with useSRT off keeps its authored localTransform\r\n * untouched.\r\n */\r\n /**\r\n * Carbon ComputeLocalTransform (cpp:101-104): a CONST query - a static or\r\n * non-SRT child answers its stored local transform; otherwise the SRT\r\n * triple composes WITHOUT writing localTransform. Contrast\r\n * RebuildLocalTransform below, which mutates and does not consult\r\n * staticTransform. Carbon returns Matrix by value; the org out-last\r\n * convention receives it.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ComputeLocalTransform(out = mat4.create())\r\n {\r\n if (this.staticTransform || !this.useSRT)\r\n {\r\n return mat4.copy(out, this.localTransform);\r\n }\r\n return EveChildTransform.#compose(out, this.scaling, this.rotation, this.translation);\r\n }\r\n\r\n /**\r\n * Rebuilds the local matrix from scale, rotation, and translation when useSRT\r\n * is enabled, then returns it.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RebuildLocalTransform()\r\n {\r\n if (this.useSRT)\r\n {\r\n EveChildTransform.#compose(this.localTransform, this.scaling, this.rotation, this.translation);\r\n }\r\n return this.localTransform;\r\n }\r\n\r\n /**\r\n * Applies the supplied SRT components (each optional - omitted ones keep their current value) and rebuilds the local transform; a child with useSRT off returns its authored localTransform unchanged.\r\n * @param {Number} [_lowestLodVisible] - accepted for Carbon signature parity, unused here\r\n * @returns {Float32Array} the child's live local transform\r\n */\r\n Setup(scale = null, rotation = null, translation = null, _lowestLodVisible = null)\r\n {\r\n if (!this.useSRT)\r\n {\r\n return this.localTransform;\r\n }\r\n if (scale)\r\n {\r\n vec3.copy(this.scaling, scale);\r\n }\r\n if (rotation)\r\n {\r\n quat.copy(this.rotation, rotation);\r\n }\r\n if (translation)\r\n {\r\n vec3.copy(this.translation, translation);\r\n }\r\n return this.RebuildLocalTransform();\r\n }\r\n\r\n /**\r\n * Setup that also latches useStaticRotation, so from then on UpdateTransform\r\n * strips the parent's rotation and the child keeps a fixed world orientation.\r\n */\r\n SetupWithStaticRotation(scale = null, rotation = null, translation = null, lowestLodVisible = null)\r\n {\r\n this.useStaticRotation = true;\r\n return this.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n /**\r\n * Setup that also latches staticTransform, so from then on UpdateTransform\r\n * reuses the local transform as-is instead of recomposing it from the SRT\r\n * values every frame.\r\n */\r\n SetupWithStaticTransform(scale = null, rotation = null, translation = null, lowestLodVisible = null)\r\n {\r\n this.staticTransform = true;\r\n return this.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n // Carbon: m_worldTransform = m_localTransform * parentTransform in\r\n // row-vector convention (local first, then parent), which is\r\n // mat4.multiply(world, parent, local) in gl-matrix - matching\r\n // EveTransform.UpdateViewDependentData.\r\n\r\n /**\r\n * Recomputes the child's world transform from its parent for this frame - the single place a child's placement is driven. A staticTransform or non-SRT child reuses its local transform as-is; otherwise it is recomposed first, and when useStaticScale or useStaticRotation is set the parent is decomposed and rebuilt with unit scale and/or identity rotation before the two are combined.\r\n * @param {Float32Array} parentTransform - borrowed, read only\r\n * @returns {Float32Array} the child's live world transform\r\n */\r\n UpdateTransform(parentTransform)\r\n {\r\n if (this.staticTransform || !this.useSRT)\r\n {\r\n return mat4.multiply(this.worldTransform, parentTransform, this.localTransform);\r\n }\r\n this.RebuildLocalTransform();\r\n if (!this.useStaticRotation && !this.useStaticScale)\r\n {\r\n return mat4.multiply(this.worldTransform, parentTransform, this.localTransform);\r\n }\r\n const scale = mat4.getScaling(vec3.create(), parentTransform);\r\n const rotation = EveChildTransform.#getRotation(quat.create(), parentTransform, scale);\r\n const translation = mat4.getTranslation(vec3.create(), parentTransform);\r\n if (this.useStaticScale)\r\n {\r\n vec3.set(scale, 1, 1, 1);\r\n }\r\n if (this.useStaticRotation)\r\n {\r\n quat.identity(rotation);\r\n }\r\n const modifiedParentTransform = EveChildTransform.#compose(mat4.create(), scale, rotation, translation);\r\n return mat4.multiply(this.worldTransform, modifiedParentTransform, this.localTransform);\r\n }\r\n\r\n /** Builds a transform matrix from a scale, rotation and translation triple. */\r\n static #compose(out, scale, rotation, translation)\r\n {\r\n return mat4.fromRotationTranslationScale(out, rotation, translation, scale);\r\n }\r\n\r\n /**\r\n * Extracts the normalized rotation quaternion from a transform by dividing\r\n * each basis column by the matching component of the supplied scale first, so\r\n * non-uniform scaling does not skew the result.\r\n */\r\n static #getRotation(out, transform, scale)\r\n {\r\n const normalized = mat4.create();\r\n for (let column = 0; column < 3; column++)\r\n {\r\n const divisor = scale[column];\r\n for (let row = 0; row < 3; row++)\r\n {\r\n normalized[column * 4 + row] = divisor ? transform[column * 4 + row] / divisor : 0;\r\n }\r\n }\r\n mat4.getRotation(out, normalized);\r\n return quat.normalize(out, out);\r\n }\r\n}\r\n\r\n// Module ping-pong scratch for the modifier fold (assume-dirty, never pooled;\r\n// child updates run sequentially so it is non-reentrant).\r\nconst modifierFoldScratch = mat4.create();\r\n\r\n/**\r\n * Folds a child's transform modifiers over its worldTransform in order, each\r\n * modifier's output feeding the next. Carbon inlines this loop inside each\r\n * EveChildMesh/Container/ParticleSystem UpdateAsyncronous\r\n * (`m_worldTransform = (*it)->ApplyTransform(m_worldTransform, boneCount, bones)`);\r\n * this is a JS-only helper (zero-alloc ping-pong between worldTransform and a\r\n * module scratch buffer so no modifier reads and writes the same matrix), kept a\r\n * free function rather than a method so it stays off the Carbon method surface.\r\n * The frame context is threaded through to camera-dependent modifiers.\r\n * @param {EveChildTransform} child - owns transformModifiers + worldTransform\r\n * @param {Object} context - frame context (EveUpdateContext)\r\n * @param {Number} boneCount\r\n * @param {Float32Array|null} bones\r\n * @returns {Float32Array} child.worldTransform\r\n */\r\nexport function applyTransformModifiers(child, context, boneCount, bones)\r\n{\r\n const modifiers = child.transformModifiers;\r\n\r\n if (!modifiers || modifiers.length === 0)\r\n {\r\n return child.worldTransform;\r\n }\r\n\r\n let source = child.worldTransform;\r\n let target = modifierFoldScratch;\r\n\r\n for (const modifier of modifiers)\r\n {\r\n modifier.ApplyTransform(context, source, boneCount, bones, target);\r\n const swap = source;\r\n source = target;\r\n target = swap;\r\n }\r\n\r\n if (source !== child.worldTransform)\r\n {\r\n mat4.copy(child.worldTransform, source);\r\n }\r\n return child.worldTransform;\r\n}\r\n"],"names":["_EveChildTransform","_identity","EveChildTransform","EveSpaceObjectChild","e","_init_translation","_init_extra_translation","_init_scaling","_init_extra_scaling","_init_rotation","_init_extra_rotation","_init_localTransform","_init_extra_localTransform","_init_worldTransform","_init_extra_worldTransform","_init_staticTransform","_init_extra_staticTransform","_init_useSRT","_init_extra_useSRT","_init_useStaticRotation","_init_extra_useStaticRotation","_init_useStaticScale","_init_extra_useStaticScale","_initProto","c","_initClass","_applyDecs","type","define","className","family","vec3","quat","mat4","boolean","carbon","method","impl","implemented","constructor","args","translation","create","scaling","fromValues","rotation","localTransform","worldTransform","staticTransform","useSRT","useStaticRotation","useStaticScale","ComputeLocalTransform","out","copy","RebuildLocalTransform","Setup","scale","_lowestLodVisible","SetupWithStaticRotation","lowestLodVisible","SetupWithStaticTransform","UpdateTransform","parentTransform","multiply","getScaling","getTranslation","set","identity","modifiedParentTransform","#compose","fromRotationTranslationScale","#getRotation","transform","normalized","column","divisor","row","getRotation","normalize","modifierFoldScratch","applyTransformModifiers","child","context","boneCount","bones","modifiers","transformModifiers","length","source","target","modifier","ApplyTransform","swap"],"mappings":"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"}
|
|
@@ -142,6 +142,8 @@ new class extends _identity {
|
|
|
142
142
|
// PARENT transform, deliberately not this child's world transform; captured
|
|
143
143
|
// from the update params each async pass.
|
|
144
144
|
#parentTranslation = vec3.create();
|
|
145
|
+
|
|
146
|
+
/** Enables target fading when the turret's locator changes. */
|
|
145
147
|
constructor() {
|
|
146
148
|
super();
|
|
147
149
|
this.#target.SetFadeOnLocatorChange(true);
|
|
@@ -201,6 +203,11 @@ new class extends _identity {
|
|
|
201
203
|
}
|
|
202
204
|
return super.OnModified(value);
|
|
203
205
|
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Loads the configured firing-effect child and installs it when loading
|
|
209
|
+
* returns an object.
|
|
210
|
+
*/
|
|
204
211
|
#LoadFiringEffectFromPath() {
|
|
205
212
|
if (!this.resourceLoader) return;
|
|
206
213
|
const loaded = this.resourceLoader.LoadChild(this.firingEffectResPath, this);
|