@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -125
- package/dist/audio/index.js +8 -1
- package/dist/audio/index.js.map +1 -1
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
- package/dist/audio/trinity/audio/AudManager.js +1 -1
- package/dist/audio/trinity/audio/AudManager.js.map +1 -1
- package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
- package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
- package/dist/audio/trinity/index.js +8 -1
- package/dist/audio/trinity/index.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
- package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceManager.js +14 -0
- package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
- package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
- package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
- package/dist/character/CjsCharacterTexturePolicy.js +5 -0
- package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
- package/dist/global/blue/CjsScriptCallback.js +142 -0
- package/dist/global/blue/CjsScriptCallback.js.map +1 -0
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -0
- package/dist/global/consts/renderContext/formats.js +51 -1
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/global/consts/renderContext/index.js +2 -2
- package/dist/global/consts/renderContext/renderStates.js +16 -1
- package/dist/global/consts/renderContext/renderStates.js.map +1 -1
- package/dist/global/contracts/index.js +0 -1
- package/dist/global/contracts/index.js.map +1 -1
- package/dist/global/index.js +4 -3
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/index.js +2 -0
- package/dist/global/math/index.js.map +1 -1
- package/dist/global/math/mesh.js +70 -16
- package/dist/global/math/mesh.js.map +1 -1
- package/dist/global/math/noise.js +47 -68
- package/dist/global/math/noise.js.map +1 -1
- package/dist/global/math/pool.js +18 -3
- package/dist/global/math/pool.js.map +1 -1
- package/dist/global/math/random.js +52 -0
- package/dist/global/math/random.js.map +1 -0
- package/dist/global/math/tri3.js +18 -4
- package/dist/global/math/tri3.js.map +1 -1
- package/dist/global/schema/CjsSchema.js +20 -2
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/global/schema/hydration.js +14 -0
- package/dist/global/schema/hydration.js.map +1 -1
- package/dist/global/utils/bytes.js +22 -4
- package/dist/global/utils/bytes.js.map +1 -1
- package/dist/global/utils/checksum.js +80 -0
- package/dist/global/utils/checksum.js.map +1 -0
- package/dist/global/utils/errors/CjsCancellationError.js +36 -0
- package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
- package/dist/global/utils/errors/CjsError.js +21 -52
- package/dist/global/utils/errors/CjsError.js.map +1 -1
- package/dist/global/utils/errors/abort.js +1 -1
- package/dist/global/utils/errors/abort.js.map +1 -1
- package/dist/global/utils/errors/index.js +2 -1
- package/dist/global/utils/errors/index.js.map +1 -1
- package/dist/global/utils/index.js +4 -2
- package/dist/global/utils/index.js.map +1 -1
- package/dist/index.js +95 -35
- package/dist/index.js.map +1 -1
- package/dist/input/Tr2MainWindow.js +7 -9
- package/dist/input/Tr2MainWindow.js.map +1 -1
- package/dist/resource/CjsResMan.js +33 -39
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/CjsResource.js +19 -5
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/audio/AudioGeometryResData.js +22 -27
- package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
- package/dist/resource/audio/CjsAudioRes.js +4 -5
- package/dist/resource/audio/CjsAudioRes.js.map +1 -1
- package/dist/resource/format/CjsBitReader.js +263 -0
- package/dist/resource/format/CjsBitReader.js.map +1 -0
- package/dist/resource/format/CjsByteReader.js +130 -125
- package/dist/resource/format/CjsByteReader.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +11 -4
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatError.js +37 -1
- package/dist/resource/format/CjsFormatError.js.map +1 -1
- package/dist/resource/format/CjsResourceProbe.js +41 -37
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/carbonRecordGuard.js +33 -0
- package/dist/resource/format/carbonRecordGuard.js.map +1 -0
- package/dist/resource/format/imageSignatures.js +202 -0
- package/dist/resource/format/imageSignatures.js.map +1 -0
- package/dist/resource/format/index.js +2 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/format/jsonPolicies.js +180 -0
- package/dist/resource/format/jsonPolicies.js.map +1 -0
- package/dist/resource/formats/black/core/helpers.js +18 -29
- package/dist/resource/formats/black/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
- package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
- package/dist/resource/formats/bnk/core/busNodes.js +2 -1
- package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
- package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/eventAction.js +15 -93
- package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
- package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
- package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +2 -48
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
- package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
- package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/binary.js +54 -60
- package/dist/resource/formats/cmf/core/binary.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/bc6h.js +16 -18
- package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
- package/dist/resource/formats/dds/core/bc7.js +28 -24
- package/dist/resource/formats/dds/core/bc7.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +7 -133
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +4 -32
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/fbx/core/helpers.js +18 -12
- package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/flac/core/helpers.js +1 -62
- package/dist/resource/formats/flac/core/helpers.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gif/core/helpers.js +1 -63
- package/dist/resource/formats/gif/core/helpers.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -19
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/gr2/core/container.js +1 -10
- package/dist/resource/formats/gr2/core/container.js.map +1 -1
- package/dist/resource/formats/gr2/core/helpers.js +24 -35
- package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/core/shared.js +193 -189
- package/dist/resource/formats/gr2/core/shared.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/helpers.js +1 -30
- package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +7 -134
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +1 -64
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +1 -73
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +93 -115
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/ogg/core/helpers.js +1 -15
- package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/core/vorbis.js +138 -144
- package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +5 -3
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +13 -152
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/png/core/writer.js +3 -27
- package/dist/resource/formats/png/core/writer.js.map +1 -1
- package/dist/resource/formats/red/core/helpers.js +19 -29
- package/dist/resource/formats/red/core/helpers.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +44 -66
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +7 -153
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/vta/core/helpers.js +1 -17
- package/dist/resource/formats/vta/core/helpers.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +1 -15
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js +39 -68
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +4 -30
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +1 -73
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/webp/core/helpers.js +1 -62
- package/dist/resource/formats/webp/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +83 -106
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
- package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -15
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
- package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
- package/dist/resource/geometry/MeshDecalData.js +23 -25
- package/dist/resource/geometry/MeshDecalData.js.map +1 -1
- package/dist/resource/geometry/MeshDecalLodData.js +14 -23
- package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryRes.js +299 -284
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
- package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
- package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
- package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
- package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
- package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
- package/dist/resource/geometry/TriJointBinding.js +16 -24
- package/dist/resource/geometry/TriJointBinding.js.map +1 -1
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
- package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
- package/dist/resource/index.js +1 -1
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
- package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
- package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
- package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
- package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
- package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
- package/dist/resource/worker/protocol.js +18 -1
- package/dist/resource/worker/protocol.js.map +1 -1
- package/dist/sof/EveSOF.js +2 -222
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/sof/SofDocumentBuilder.js +205 -0
- package/dist/sof/SofDocumentBuilder.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
- package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
- package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
- package/dist/sof/faction/index.js +3 -1
- package/dist/sof/faction/index.js.map +1 -1
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
- package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
- package/dist/sof/generic/index.js +5 -1
- package/dist/sof/generic/index.js.map +1 -1
- package/dist/sof/index.js +23 -7
- package/dist/sof/index.js.map +1 -1
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
- package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
- package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
- package/dist/sof/pattern/index.js +2 -1
- package/dist/sof/pattern/index.js.map +1 -1
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
- package/dist/sof/shared/EveSOFDataArea.js +2 -13
- package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
- package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
- package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameter.js +2 -146
- package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
- package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
- package/dist/sof/shared/index.js +13 -4
- package/dist/sof/shared/index.js.map +1 -1
- package/dist/sof/sofDocumentValues.js +33 -0
- package/dist/sof/sofDocumentValues.js.map +1 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
- package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
- package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
- package/dist/trinity/controllers/Tr2Controller.js +2 -1
- package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
- package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
- package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
- package/dist/trinity/controllers/index.js +5 -2
- package/dist/trinity/controllers/index.js.map +1 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
- package/dist/trinity/core/ITr2Updateable.js +2 -1
- package/dist/trinity/core/ITr2Updateable.js.map +1 -1
- package/dist/trinity/core/Tr2Blitter.js +6 -3
- package/dist/trinity/core/Tr2Blitter.js.map +1 -1
- package/dist/trinity/core/Tr2Denoiser.js +256 -0
- package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
- package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
- package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
- package/dist/trinity/core/Tr2RenderUtils.js +20 -3
- package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
- package/dist/trinity/core/Tr2Renderer.js +146 -1
- package/dist/trinity/core/Tr2Renderer.js.map +1 -1
- package/dist/trinity/core/Tr2ShadowMap.js +135 -14
- package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
- package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
- package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
- package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
- package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
- package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
- package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
- package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
- package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
- package/dist/trinity/core/index.js +42 -15
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
- package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
- package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
- package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
- package/dist/trinity/core/variable/TriVariable.js +83 -83
- package/dist/trinity/core/variable/TriVariable.js.map +1 -1
- package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
- package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
- package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/IEveTransform.js +2 -1
- package/dist/trinity/eve/IEveTransform.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/camera/EveCamera.js +1 -1
- package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
- package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
- package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/trinity/eve/child/EveChildContainer.js +141 -141
- package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
- package/dist/trinity/eve/child/EveChildMesh.js +218 -218
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
- package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
- package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTransform.js +5 -0
- package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +7 -0
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/index.js +10 -4
- package/dist/trinity/eve/index.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2Light.js +5 -0
- package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
- package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
- package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
- package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
- package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -1
- package/dist/trinity/generated/index.js.map +1 -1
- package/dist/trinity/generated/trinityCore/index.js +0 -1
- package/dist/trinity/generated/trinityCore/index.js.map +1 -1
- package/dist/trinity/index.js +59 -23
- package/dist/trinity/index.js.map +1 -1
- package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
- package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
- package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
- package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
- package/dist/trinity/particle/index.js +2 -1
- package/dist/trinity/particle/index.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
- package/dist/trinity/shader/Tr2Effect.js +131 -58
- package/dist/trinity/shader/Tr2Effect.js.map +1 -1
- package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
- package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +21 -4
- package/dist/trinity/shader/Tr2Material.js.map +1 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
- package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
- package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
- package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
- package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
- package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
- package/dist/trinityal/index.js +22 -9
- package/dist/trinityal/index.js.map +1 -1
- package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
- package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
- package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
- package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
- package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
- package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
- package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
- package/dist/trinityal/stub/index.js +8 -4
- package/dist/trinityal/stub/index.js.map +1 -1
- package/dist/trinityal/vertexLayoutMatch.js +2 -2
- package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
- package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
- package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
- package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
- package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
- package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
- package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +12 -11
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/audio/reference/classes/trinity.md +44 -34
- package/docs/character/architecture.md +276 -0
- package/docs/character/reference/character-appearance-plans.md +30 -66
- package/docs/character/reference/prepared-libraries.md +14 -30
- package/docs/global/reference/api.md +2 -1
- package/docs/global/reference/classes/README.md +53 -71
- package/docs/global/reference/classes/dropped.md +16 -0
- package/docs/resource/README.md +19 -15
- package/docs/resource/architecture.md +9 -2
- package/docs/resource/concepts/format-capabilities.md +124 -80
- package/docs/resource/concepts/shared-format-helpers.md +94 -0
- package/docs/resource/formats/README.md +230 -224
- package/docs/resource/formats/bitknit2.md +221 -0
- package/docs/resource/formats/carbon-effect-container.md +184 -269
- package/docs/resource/formats/gr2.md +6 -1
- package/docs/resource/formats/schemabound.md +28 -48
- package/docs/resource/formats/static.md +70 -97
- package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
- package/docs/resource/formats/webgl/decl-io.md +165 -256
- package/docs/resource/formats/webgl/memory-structured.md +64 -142
- package/docs/resource/formats/webgl/texture-sample.md +109 -138
- package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
- package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
- package/docs/resource/formats/webgpu/reference/api.md +64 -67
- package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
- package/docs/resource/reference/classes/core.md +256 -236
- package/docs/resource/reference/classes/formats.md +1668 -1672
- package/docs/resource/reference/workers.md +4 -2
- package/docs/sof/reference/classes/core.md +1 -1
- package/docs/sof/reference/classes/faction.md +2 -2
- package/docs/sof/reference/classes/generic.md +4 -4
- package/docs/sof/reference/classes/pattern.md +1 -1
- package/docs/sof/reference/classes/shared.md +10 -10
- package/docs/trinity/architecture.md +55 -44
- package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
- package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
- package/docs/trinity/reference/classes/dropped.md +0 -189
- package/docs/trinity/reference/classes/eve-runtime.md +8 -8
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/particle.md +2 -2
- package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
- package/docs/trinity/reference/implementation-status.md +50 -75
- package/docs/trinity/reference/main-semantic-extraction.md +13 -17
- package/docs/trinityal/reference/classes/README.md +77 -27
- package/docs/trinityal/reference/classes/dropped.md +92 -0
- package/docs/trinityal/webgpu/README.md +3 -1
- package/docs/trinityal/webgpu/architecture.md +121 -228
- package/docs/trinityal/webgpu/reference/api.md +5 -5
- package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
- package/format-notices/gr2/NOTICE +18 -12
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
- package/package.json +4 -1
- package/dist/audio/trinity/audio/AudActionLog.js +0 -173
- package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
- package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
- package/dist/global/contracts/CjsScriptCallback.js +0 -94
- package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
- package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
- package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
- package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
- package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
- package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
- package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
- package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
- package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
- package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
- package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
- package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
- package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
- package/dist/trinity/core/rawData/constantLayout.js +0 -175
- package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
- package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
- package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
- package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
- package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
- package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
- package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
- package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
- package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
- package/dist/trinityal/Tr2SamplerDescription.js +0 -72
- package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
- package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
- package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
- package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
- package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
- package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
- package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
- package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
- package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
- package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveHazeSet.js","sources":["../../../../../../src/trinity/eve/attachment/haze/EveHazeSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveHazeSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveHazeSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\r\nimport { EveHazeSetLight } from \"./EveHazeSetLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { AsPerPointLightData, CreateLightRecord, MatrixCopyFrom3x4 } from \"../../lights/lightConversion.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\n\r\n\r\n/**\r\n * A hull's authored haze volumes, owning their per-bone bounds and the point\r\n * lights the haze emits.\r\n */\r\n@type.define({ className: \"EveHazeSet\", family: \"eve/attachment/haze\" })\r\nexport class EveHazeSet extends IEveSpaceObjectAttachment\r\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveHazeSetItem\")\r\n hazes = [];\r\n\r\n @io.persist\r\n @type.list(\"EveHazeSetLight\")\r\n lights = [];\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every haze that rides the parent transform. */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength (ctor 0, EveHazeSet.cpp:66) and\r\n * m_boosterGain (ctor `false` = 0.0f, cpp:67 - a float initialized with a\r\n * bool, verbatim quirk). Lights are BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n #boosterGain = 0;\r\n\r\n /** Sets the effect that draws the haze volumes. */\r\n @carbon.method\r\n @impl.implemented\r\n Setup(effect)\r\n {\r\n this.effect = effect ?? null;\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /**\r\n * Recomputes the item-set bounds and marks the packed geometry stale; a haze\r\n * set has no skinned flag, so every bone-indexed haze always gets its own box.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Carbon rebuilds packed haze vertices and static bounds here. The\r\n // backend-neutral runtime keeps the authored graph and invalidates the\r\n // renderer-facing revision without allocating device resources.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n // Carbon rebuilds the item-set bounds here too (cpp:247), passing\r\n // skinned=TRUE unconditionally: a haze set has no skinned flag, so every\r\n // bone-indexed haze gets its own box.\r\n this.CreateBoundingBox();\r\n }\r\n\r\n /**\r\n * Carbon CreateBoundingBox (EveHazeSet.cpp:245-248): one delegation to the\r\n * shared item-set helper, always skinned.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n CreateBoundingBox()\r\n {\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, true, this.hazes);\r\n }\r\n\r\n /** Carbon EveHazeSet::UpdateVisibility (cpp:208-218). Unlike the other sets\r\n * this one has no GetAabb of its own and never gates the bone count, because\r\n * its bounds are always built skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = GetItemSetAabb(\r\n EveHazeSet.#aabbScratch,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n boneCount\r\n );\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum?.()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /**\r\n * Appends an authored haze item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddHazeItem(item)\r\n {\r\n this.hazes.push(item);\r\n }\r\n\r\n /**\r\n * Sets a shader option on the haze effect, doing nothing when no effect that\r\n * accepts options is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.effect && typeof this.effect.SetOption === \"function\")\r\n {\r\n this.effect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveHazeSetLight and\r\n * appends it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EveHazeSetLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveHazeSet::RegisterComponents (cpp:394-401): LightOwner when\r\n * lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveHazeSet::UpdateLights (cpp:219-239): the shared packed-set\r\n * bone pattern (boneIndex > 0 only; column-stride Float4x3 unpack; 4th\r\n * column zeroed, [15] = 1; boneMatrix *= parentTransform - Carbon\r\n * row-vector, bone FIRST: gl operands SWAP; else copy the parent). Stamps\r\n * BOTH activationStrength and boosterGain (cpp:237-238). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n this.#boosterGain = Number(boosterGain) || 0;\r\n }\r\n\r\n /** Carbon EveHazeSet::GetLights (cpp:403-418): parentBrightness is set\r\n * INSIDE the loop (cpp:409) because boosterGainInfluence lights multiply\r\n * it by the booster gain (cpp:410-413); point conversion on the bone\r\n * matrix; no blink/fade, no gates. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Profile-index packing is by-reference per lightConversion.js conventions.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EveHazeSet.#features;\r\n features.parentScale = 1;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveHazeSet.#lightRecord;\r\n\r\n for (const light of this.lights)\r\n {\r\n features.parentBrightness = this.#activationStrength;\r\n if (light.boosterGainInfluence)\r\n {\r\n features.parentBrightness *= this.#boosterGain;\r\n }\r\n AsPerPointLightData(record, light.lightData, light.boneMatrix, features, quality);\r\n record.lightType = Tr2Light.POINT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n static #lightRecord = CreateLightRecord();\r\n}\r\n"],"names":["_EveHazeSet","_identity","EveHazeSet","IEveSpaceObjectAttachment","e","_init_effect","_init_extra_effect","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_hazes","_init_extra_hazes","_init_lights","_init_extra_lights","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","objectRef","boolean","string","list","carbon","method","impl","implemented","adapted","reason","effect","display","name","hazes","lights","box3","create","Setup","Initialize","Rebuild","__state","add","CreateBoundingBox","CreateItemSetBoundingBoxes","UpdateVisibility","updateContext","parentTransform","bones","boneCount","aabb","GetItemSetAabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","AddHazeItem","item","push","SetShaderOption","value","SetOption","AddLightFromSOF","light","EveHazeSetLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","Number","GetLights","lightManager","features","parentScale","quality","GetCurrentSpaceSceneShadowQuality","record","parentBrightness","boosterGainInfluence","AsPerPointLightData","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","CreateLightRecord","constructor"],"mappings":";;;;;;;;;;;;;AAaA;AACA;AACA;AACA;AAHA,IAAAA;AAAA,IAAA,cAAAC,SAAA,CAAA;AAAA,EAAA,QAIA,MAAAC,UAAA,SACgCC,qBAAyB,CACzD;AAAA,IAAA;AAAA,MAAA,CAAA;QAAAC,CAAA,EAAA,CAAAC,YAAA,EAAAC,kBAAA,EAAAC,aAAA,EAAAC,mBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,UAAA,CAAA;QAAAC,CAAA,EAAA,CAAAhB,WAAA,EAAAiB,UAAA;AAAA,OAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,QAAAA,SAAS,EAAE,YAAY;AAAEC,QAAAA,MAAM,EAAE;OAAuB,CAAC,cAGrEC,EAAE,CAACC,OAAO,CAAC,gBAAgB,CAAC,EAC5BD,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACO,SAAS,CAAC,WAAW,CAAC,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAG3BH,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACQ,OAAO,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAGZJ,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACS,MAAM,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,MAAA,EAGXL,EAAE,CAACC,OAAO,CAAC,gBAAgB,CAAC,EAC5BD,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACU,IAAI,CAAC,gBAAgB,CAAC,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAG3BN,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACU,IAAI,CAAC,iBAAiB,CAAC,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAmB5BC,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAUhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,wBAWZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAkBZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAShBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAuBhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,yBAUhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAaZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAQZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAehBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CA6BhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,EAAA,MAAA,EACZF,IAAI,CAACG,MAAM,CAAC,2EAA2E,CAAC,CAAA,EAAA,EAAA,EAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAtM3DhC,qBAAyB,CAAA;AAAA;AAKvDiC,IAAAA,MAAM,IAAArB,UAAA,CAAA,IAAA,CAAA,EAAAV,YAAA,OAAG,IAAI,CAAA;AAIbgC,IAAAA,OAAO,IAAA/B,kBAAA,CAAA,IAAA,CAAA,EAAAC,aAAA,OAAG,IAAI,CAAA;AAId+B,IAAAA,IAAI,IAAA9B,mBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,EAAE,CAAA;AAKT8B,IAAAA,KAAK,IAAA7B,gBAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAG,EAAE,CAAA;AAIV6B,IAAAA,MAAM,IAAA5B,iBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,EAAE,CAAA;AAEX,IAAA,gBAAgB,IAAAC,kBAAA,CAAA,IAAA,CAAA,EAAG,CAAC;;AAEpB;AACA,IAAA,aAAa,GAAG2B,IAAI,CAACC,MAAM,EAAE;;AAE7B;IACA,WAAW,GAAG,EAAE;;AAEhB;AACF;AACA;IACE,mBAAmB,GAAG,CAAC;IAEvB,YAAY,GAAG,CAAC;;AAEhB;IAGAC,KAAKA,CAACP,MAAM,EACZ;AACE,MAAA,IAAI,CAACA,MAAM,GAAGA,MAAM,IAAI,IAAI;AAC9B,IAAA;;AAEA;AACF;AACA;AACA;AAGEQ,IAAAA,UAAUA,GACV;MACE,IAAI,CAACC,OAAO,EAAE;AACd,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AAGEA,IAAAA,OAAOA,GACP;AACE;AACA;AACA;MACA,IAAI,CAAC,gBAAgB,EAAE;MACvB,IAAI,CAACC,OAAO,CAACtB,OAAO,CAACuB,GAAG,CAAC,gBAAgB,CAAC;AAC1C;AACA;AACA;MACA,IAAI,CAACC,iBAAiB,EAAE;AAC1B,IAAA;;AAEA;AACF;AACA;AACA;AAGEA,IAAAA,iBAAiBA,GACjB;AACEC,MAAAA,0BAA0B,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAACV,KAAK,CAAC;AACpF,IAAA;;AAEA;AACF;AACA;AAGEW,IAAAA,gBAAgBA,CAACC,aAAa,EAAEC,eAAe,EAAEC,KAAK,GAAG,IAAI,EAAEC,SAAS,GAAG,CAAC,EAC5E;MACE,MAAMC,IAAI,GAAGC,cAAc,CACzBtD,WAAU,CAAC,YAAY,EACvB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,WAAW,EAChBmD,KAAK,EACLC,SACF,CAAC;AACD,MAAA,IAAIb,IAAI,CAACgB,OAAO,CAACF,IAAI,CAAC,EACtB;AACE,QAAA,OAAO,KAAK;AACd,MAAA;MAEAd,IAAI,CAACiB,aAAa,CAACH,IAAI,EAAEA,IAAI,EAAEH,eAAe,CAAC;MAC/C,OAAO,CAAC,CAACD,aAAa,EAAEQ,UAAU,IAAI,EAAEC,YAAY,CAACL,IAAI,CAAC;AAC5D,IAAA;;AAEA;AACF;AACA;AACA;IAGEM,WAAWA,CAACC,IAAI,EAChB;AACE,MAAA,IAAI,CAACvB,KAAK,CAACwB,IAAI,CAACD,IAAI,CAAC;AACvB,IAAA;;AAEA;AACF;AACA;AACA;AAGEE,IAAAA,eAAeA,CAAC1B,IAAI,EAAE2B,KAAK,EAC3B;AACE,MAAA,IAAI,IAAI,CAAC7B,MAAM,IAAI,OAAO,IAAI,CAACA,MAAM,CAAC8B,SAAS,KAAK,UAAU,EAC9D;QACE,IAAI,CAAC9B,MAAM,CAAC8B,SAAS,CAAC5B,IAAI,EAAE2B,KAAK,CAAC;AACpC,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;IAGEE,eAAeA,CAACC,KAAK,EACrB;MACE,IAAI,CAAC5B,MAAM,CAACuB,IAAI,CAACM,gBAAe,CAACC,OAAO,CAACF,KAAK,CAAC,CAAC;AAClD,IAAA;;AAEA;AACF;AAGEG,IAAAA,kBAAkBA,GAClB;AACE,MAAA,MAAMC,QAAQ,GAAG,IAAI,CAACC,oBAAoB,EAAE;AAC5C,MAAA,IAAID,QAAQ,IAAI,IAAI,CAAChC,MAAM,CAACkC,MAAM,EAClC;QACEF,QAAQ,CAACG,iBAAiB,CAACC,gBAAgB,CAACC,UAAU,EAAE,IAAI,CAAC;AAC/D,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAGEC,IAAAA,YAAYA,CAAC1B,eAAe,EAAEC,KAAK,EAAEC,SAAS,EAAEyB,kBAAkB,EAAEC,WAAW,GAAG,CAAC,EACnF;AACE,MAAA,KAAK,MAAMZ,KAAK,IAAI,IAAI,CAAC5B,MAAM,EAC/B;AACE,QAAA,MAAMyC,SAAS,GAAGb,KAAK,CAACc,SAAS,CAACD,SAAS;QAC3C,IAAI5B,KAAK,IAAI4B,SAAS,GAAG,CAAC,IAAIA,SAAS,GAAG3B,SAAS,EACnD;UACE6B,iBAAiB,CAACf,KAAK,CAACgB,UAAU,EAAE/B,KAAK,EAAE4B,SAAS,CAAC;AACrDb,UAAAA,KAAK,CAACgB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;AACvBhB,UAAAA,KAAK,CAACgB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;AACvBhB,UAAAA,KAAK,CAACgB,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC;AACxBhB,UAAAA,KAAK,CAACgB,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC;AACxB;AACAC,UAAAA,IAAI,CAACC,QAAQ,CAAClB,KAAK,CAACgB,UAAU,EAAEhC,eAAe,EAAEgB,KAAK,CAACgB,UAAU,CAAC;AACpE,QAAA,CAAC,MAED;UACEC,IAAI,CAACE,IAAI,CAACnB,KAAK,CAACgB,UAAU,EAAEhC,eAAe,CAAC;AAC9C,QAAA;AACF,MAAA;MACA,IAAI,CAAC,mBAAmB,GAAGoC,MAAM,CAACT,kBAAkB,CAAC,IAAI,CAAC;MAC1D,IAAI,CAAC,YAAY,GAAGS,MAAM,CAACR,WAAW,CAAC,IAAI,CAAC;AAC9C,IAAA;;AAEA;AACF;AACA;AACA;IAIES,SAASA,CAACC,YAAY,EACtB;AACE,MAAA,MAAMC,QAAQ,GAAGzF,WAAU,CAAC,SAAS;MACrCyF,QAAQ,CAACC,WAAW,GAAG,CAAC;MACxB,MAAMC,OAAO,GAAGH,YAAY,EAAEI,iCAAiC,EAAE,IAAI,CAAC;AACtE,MAAA,MAAMC,MAAM,GAAG7F,WAAU,CAAC,YAAY;AAEtC,MAAA,KAAK,MAAMkE,KAAK,IAAI,IAAI,CAAC5B,MAAM,EAC/B;AACEmD,QAAAA,QAAQ,CAACK,gBAAgB,GAAG,IAAI,CAAC,mBAAmB;QACpD,IAAI5B,KAAK,CAAC6B,oBAAoB,EAC9B;AACEN,UAAAA,QAAQ,CAACK,gBAAgB,IAAI,IAAI,CAAC,YAAY;AAChD,QAAA;AACAE,QAAAA,mBAAmB,CAACH,MAAM,EAAE3B,KAAK,CAACc,SAAS,EAAEd,KAAK,CAACgB,UAAU,EAAEO,QAAQ,EAAEE,OAAO,CAAC;AACjFE,QAAAA,MAAM,CAACI,SAAS,GAAGC,SAAQ,CAACC,WAAW;AACvCN,QAAAA,MAAM,CAACb,SAAS,GAAGd,KAAK,CAACc,SAAS;AAClCa,QAAAA,MAAM,CAACO,YAAY,GAAGlC,KAAK,CAACkC,YAAY;QACxCP,MAAM,CAACQ,KAAK,GAAG,IAAI;AACnBb,QAAAA,YAAY,EAAEc,QAAQ,CAACT,MAAM,CAAC;AAChC,MAAA;AACF,IAAA;;AAEA;GAMD;AALQ,EAAA,YAAY,GAAGtD,IAAI,CAACC,MAAM,EAAE;AAE5B,EAAA,SAAS,GAAG;AAAEsD,IAAAA,gBAAgB,EAAE,CAAC;AAAEJ,IAAAA,WAAW,EAAE;GAAG;AAEnD,EAAA,YAAY,GAAGa,iBAAiB,EAAE;EAACC,WAAAA,GAAA;IAAA,KAAA,CAAA1G,WAAA,GAAAiB,UAAA,EAAA;AAAA,EAAA;AAAA,CAAA,EAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"EveHazeSet.js","sources":["../../../../../../src/trinity/eve/attachment/haze/EveHazeSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveHazeSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveHazeSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\r\nimport { EveHazeSetLight } from \"./EveHazeSetLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { AsPerPointLightData, CreateLightRecord, MatrixCopyFrom3x4 } from \"../../lights/lightConversion.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\n\r\n\r\n/**\r\n * A hull's authored haze volumes, owning their per-bone bounds and the point\r\n * lights the haze emits.\r\n */\r\n@type.define({ className: \"EveHazeSet\", family: \"eve/attachment/haze\" })\r\nexport class EveHazeSet extends IEveSpaceObjectAttachment\r\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveHazeSetItem\")\r\n hazes = [];\r\n\r\n @io.persist\r\n @type.list(\"EveHazeSetLight\")\r\n lights = [];\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every haze that rides the parent transform. */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength (ctor 0, EveHazeSet.cpp:66) and\r\n * m_boosterGain (ctor `false` = 0.0f, cpp:67 - a float initialized with a\r\n * bool, verbatim quirk). Lights are BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n #boosterGain = 0;\r\n\r\n /** Sets the effect that draws the haze volumes. */\r\n @carbon.method\r\n @impl.implemented\r\n Setup(effect)\r\n {\r\n this.effect = effect ?? null;\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /**\r\n * Recomputes the item-set bounds and marks the packed geometry stale; a haze\r\n * set has no skinned flag, so every bone-indexed haze always gets its own box.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Carbon rebuilds packed haze vertices and static bounds here. The\r\n // backend-neutral runtime keeps the authored graph and invalidates the\r\n // renderer-facing revision without allocating device resources.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n // Carbon rebuilds the item-set bounds here too (cpp:247), passing\r\n // skinned=TRUE unconditionally: a haze set has no skinned flag, so every\r\n // bone-indexed haze gets its own box.\r\n this.CreateBoundingBox();\r\n }\r\n\r\n /**\r\n * Carbon CreateBoundingBox (EveHazeSet.cpp:245-248): one delegation to the\r\n * shared item-set helper, always skinned.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n CreateBoundingBox()\r\n {\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, true, this.hazes);\r\n }\r\n\r\n /** Carbon EveHazeSet::UpdateVisibility (cpp:208-218). Unlike the other sets\r\n * this one has no GetAabb of its own and never gates the bone count, because\r\n * its bounds are always built skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = GetItemSetAabb(\r\n EveHazeSet.#aabbScratch,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n boneCount\r\n );\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /**\r\n * Appends an authored haze item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddHazeItem(item)\r\n {\r\n this.hazes.push(item);\r\n }\r\n\r\n /**\r\n * Sets a shader option on the haze effect, doing nothing when no effect that\r\n * accepts options is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.effect && typeof this.effect.SetOption === \"function\")\r\n {\r\n this.effect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveHazeSetLight and\r\n * appends it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EveHazeSetLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveHazeSet::RegisterComponents (cpp:394-401): LightOwner when\r\n * lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveHazeSet::UpdateLights (cpp:219-239): the shared packed-set\r\n * bone pattern (boneIndex > 0 only; column-stride Float4x3 unpack; 4th\r\n * column zeroed, [15] = 1; boneMatrix *= parentTransform - Carbon\r\n * row-vector, bone FIRST: gl operands SWAP; else copy the parent). Stamps\r\n * BOTH activationStrength and boosterGain (cpp:237-238). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n this.#boosterGain = Number(boosterGain) || 0;\r\n }\r\n\r\n /** Carbon EveHazeSet::GetLights (cpp:403-418): parentBrightness is set\r\n * INSIDE the loop (cpp:409) because boosterGainInfluence lights multiply\r\n * it by the booster gain (cpp:410-413); point conversion on the bone\r\n * matrix; no blink/fade, no gates. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Profile-index packing is by-reference per lightConversion.js conventions.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EveHazeSet.#features;\r\n features.parentScale = 1;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveHazeSet.#lightRecord;\r\n\r\n for (const light of this.lights)\r\n {\r\n features.parentBrightness = this.#activationStrength;\r\n if (light.boosterGainInfluence)\r\n {\r\n features.parentBrightness *= this.#boosterGain;\r\n }\r\n AsPerPointLightData(record, light.lightData, light.boneMatrix, features, quality);\r\n record.lightType = Tr2Light.POINT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n static #lightRecord = CreateLightRecord();\r\n}\r\n"],"names":["_EveHazeSet","_identity","EveHazeSet","IEveSpaceObjectAttachment","e","_init_effect","_init_extra_effect","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_hazes","_init_extra_hazes","_init_lights","_init_extra_lights","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","objectRef","boolean","string","list","carbon","method","impl","implemented","adapted","reason","effect","display","name","hazes","lights","box3","create","Setup","Initialize","Rebuild","__state","add","CreateBoundingBox","CreateItemSetBoundingBoxes","UpdateVisibility","updateContext","parentTransform","bones","boneCount","aabb","GetItemSetAabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","AddHazeItem","item","push","SetShaderOption","value","SetOption","AddLightFromSOF","light","EveHazeSetLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","Number","GetLights","lightManager","features","parentScale","quality","GetCurrentSpaceSceneShadowQuality","record","parentBrightness","boosterGainInfluence","AsPerPointLightData","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","CreateLightRecord","constructor"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EvePlaneSet.js","sources":["../../../../../../src/trinity/eve/attachment/plane/EvePlaneSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EvePlaneSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EvePlaneSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\nimport { EvePlaneLight } from \"./EvePlaneLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Fade, Saturate } from \"../EveSpaceObjectAttachmentUtils.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\nimport {\r\n AsPerPointLightData,\r\n CopyLightData,\r\n CreateLightDataScratch,\r\n CreateLightRecord,\r\n MatrixCopyFrom3x4\r\n} from \"../../lights/lightConversion.js\";\r\n\r\nconst WHITE = new Float32Array([1, 1, 1, 1]);\r\n\r\n\r\n/**\r\n * A hull's authored textured planes, owning their static and per-bone bounds,\r\n * the four shared texture parameters and the plane lights.\r\n */\r\n@type.define({ className: \"EvePlaneSet\", family: \"eve/attachment/planes\" })\r\nexport class EvePlaneSet extends IEveSpaceObjectAttachment\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.notify\r\n @io.persist\r\n @type.uint8\r\n pickBufferID = 0;\r\n\r\n @io.persist\r\n @type.boolean\r\n hideOnLowQuality = false;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.boolean\r\n skinned = false;\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EvePlaneSetItem\")\r\n planes = [];\r\n\r\n @io.persist\r\n @type.list(\"EvePlaneLight\")\r\n lights = [];\r\n\r\n // SOF-authored shared texture parameters; persisted so the values\r\n // interchange reproduces Carbon's hidden plane-set bindings.\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n imageMapParameter = null;\r\n\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n layerMap1Parameter = null;\r\n\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n layerMap2Parameter = null;\r\n\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n maskMapParameter = null;\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every unskinned, non-transparent plane (cpp:323-355). */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength (ctor 0, EvePlaneSet.cpp:76). Lights are\r\n * BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n /**\r\n * Recomputes the static and per-bone bounds from the authored planes -\r\n * skipping any plane whose colour is fully zero, which contributes nothing -\r\n * and marks the packed geometry stale.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Packed vertices, bounds caches and quad registration are reconciled by\r\n // the renderer adapter from this authored graph.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n // Carbon CreateBoundingBoxes (cpp:323-355) is the shared builder plus one\r\n // filter: a fully transparent plane contributes NO bounds at all.\r\n CreateItemSetBoundingBoxes(\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n this.skinned,\r\n this.planes.filter(item => !EvePlaneSet.#IsFullyTransparent(item))\r\n );\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /** Sets the effect that draws the planes. */\r\n @carbon.method\r\n @impl.implemented\r\n SetEffect(effect)\r\n {\r\n this.effect = effect ?? null;\r\n }\r\n\r\n /**\r\n * Sets the 8-bit pick buffer id written by the plane geometry, rebuilding\r\n * immediately when planes are already authored because the id is packed into\r\n * it.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetPickBufferID(pickBufferID)\r\n {\r\n this.pickBufferID = Number(pickBufferID) & 0xff;\r\n if (this.planes.length) this.Rebuild();\r\n }\r\n\r\n /** Carbon EvePlaneSet::GetAabb (cpp:273-276): the item-set bounds, with the bone\r\n * list forwarded only when the set is skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(\r\n out,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n this.skinned ? boneCount : 0\r\n );\r\n }\r\n\r\n /** Carbon EvePlaneSet::UpdateVisibility (cpp:236-246): an uninitialized set is\r\n * NOT visible; otherwise the bounds move into world space and take the\r\n * frustum box test. No LOD and no display gate. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = this.GetAabb(EvePlaneSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum?.()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /**\r\n * Sets whether the planes ride skeleton bones, which is what decides if\r\n * GetAabb consults the caller's bone list at all.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetIsSkinned(skinned)\r\n {\r\n this.skinned = !!skinned;\r\n }\r\n\r\n /**\r\n * Appends an authored plane item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddPlaneItem(item)\r\n {\r\n this.planes.push(item);\r\n }\r\n\r\n /** The live plane item list, not a copy. */\r\n @carbon.method\r\n @impl.implemented\r\n GetPlanes()\r\n {\r\n return this.planes;\r\n }\r\n\r\n /**\r\n * Sets a shader option on the plane effect, doing nothing when no effect that\r\n * accepts options is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.effect && typeof this.effect.SetOption === \"function\")\r\n {\r\n this.effect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Sets the shared image map texture parameter; its average colour is one of\r\n * the four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetImageMapParameter(parameter)\r\n {\r\n this.imageMapParameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Sets the shared first layer map texture parameter; its average colour is one\r\n * of the four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetLayerMap1Parameter(parameter)\r\n {\r\n this.layerMap1Parameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Sets the shared second layer map texture parameter; its average colour is\r\n * one of the four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetLayerMap2Parameter(parameter)\r\n {\r\n this.layerMap2Parameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Sets the shared mask map texture parameter; its average colour is one of the\r\n * four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetMaskMapParameter(parameter)\r\n {\r\n this.maskMapParameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EvePlaneLight and appends\r\n * it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EvePlaneLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EvePlaneSet::RegisterComponents (cpp:535-542): LightOwner when\r\n * lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EvePlaneSet::UpdateLights (cpp:248-267): the shared packed-set\r\n * bone pattern (boneIndex > 0 only; column-stride Float4x3 unpack; 4th\r\n * column zeroed, [15] = 1; boneMatrix *= parentTransform - Carbon\r\n * row-vector, bone FIRST: gl operands SWAP; else copy the parent). Stamps\r\n * the activation strength (boosterGain unused by planes). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, _boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n }\r\n\r\n /** Carbon EvePlaneSet::GetAverageColor (cpp:499-528): the componentwise\r\n * product of the four texture parameters' average colors, each defaulting\r\n * to white when the map or its resource is missing. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The texture average color is a resource capability - read as a GetAverageColor duck on the parameter's resource, white when absent.\")\r\n GetAverageColor(out = new Float32Array(4))\r\n {\r\n const layer1 = EvePlaneSet.#MapAverageColor(this.layerMap1Parameter);\r\n const layer2 = EvePlaneSet.#MapAverageColor(this.layerMap2Parameter);\r\n const image = EvePlaneSet.#MapAverageColor(this.imageMapParameter);\r\n const mask = EvePlaneSet.#MapAverageColor(this.maskMapParameter);\r\n for (let channel = 0; channel < 4; channel++)\r\n {\r\n out[channel] = layer1[channel] * layer2[channel] * image[channel] * mask[channel];\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon EvePlaneSet::GetLights (cpp:544-568): parentBrightness set once;\r\n * average color computed only when lights exist (cpp:550-553; zero\r\n * otherwise - moot, the loop is empty); the loop iterates BY VALUE\r\n * (cpp:555-557 `auto light` + lightDataCopy) so the stored items are never\r\n * mutated - a scratch copy carries: color = authored * averageColor\r\n * componentwise, then Saturate (extrapolating above 1), then brightness *=\r\n * Fade(fadeType, ...) (cpp:558-564); point conversion on the bone matrix. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::GetAnimationTime relocates onto the light-manager duck (GetAnimationTime, default 0); the texture average colors and profile packing follow the adapted ducks above.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EvePlaneSet.#features;\r\n features.parentBrightness = this.#activationStrength;\r\n features.parentScale = 1;\r\n const averageColor = EvePlaneSet.#averageColorScratch;\r\n if (this.lights.length > 0)\r\n {\r\n this.GetAverageColor(averageColor);\r\n }\r\n const time = lightManager?.GetAnimationTime() ?? 0;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EvePlaneSet.#lightRecord;\r\n const dataCopy = EvePlaneSet.#lightDataScratch;\r\n\r\n for (const light of this.lights)\r\n {\r\n CopyLightData(dataCopy, light.lightData);\r\n dataCopy.color[0] *= averageColor[0];\r\n dataCopy.color[1] *= averageColor[1];\r\n dataCopy.color[2] *= averageColor[2];\r\n dataCopy.color[3] *= averageColor[3];\r\n Saturate(dataCopy.color, dataCopy.color, light.saturation);\r\n dataCopy.brightness *= Fade(time, light.fadeType, light.blinkRate, light.blinkPhase);\r\n AsPerPointLightData(record, dataCopy, light.boneMatrix, features, quality);\r\n record.lightType = Tr2Light.POINT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /**\r\n * The average colour of a texture parameter's resource, white when the\r\n * parameter, its resource or its average colour is missing, so an absent map\r\n * is a no-op in the four-way product.\r\n */\r\n static #MapAverageColor(parameter)\r\n {\r\n const average = parameter?.GetResource?.()?.GetAverageColor?.();\r\n return average ?? WHITE;\r\n }\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n /** Carbon CreateBoundingBoxes skips an item whose color is exactly\r\n * Color(0, 0, 0, 0) (cpp:332-335) - an authored \"off\" plane contributes no\r\n * bounds. Any non-zero channel, alpha included, counts. */\r\n static #IsFullyTransparent(item)\r\n {\r\n const color = item?.color;\r\n return !!color && !color[0] && !color[1] && !color[2] && !color[3];\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #lightRecord = CreateLightRecord();\r\n\r\n static #lightDataScratch = CreateLightDataScratch();\r\n\r\n static #averageColorScratch = new Float32Array(4);\r\n}\r\n"],"names":["WHITE","Float32Array","_EvePlaneSet","_identity","EvePlaneSet","IEveSpaceObjectAttachment","e","_init_pickBufferID","_init_extra_pickBufferID","_init_hideOnLowQuality","_init_extra_hideOnLowQuality","_init_effect","_init_extra_effect","_init_skinned","_init_extra_skinned","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_planes","_init_extra_planes","_init_lights","_init_extra_lights","_init_imageMapParameter","_init_extra_imageMapParameter","_init_layerMap1Parameter","_init_extra_layerMap1Parameter","_init_layerMap2Parameter","_init_extra_layerMap2Parameter","_init_maskMapParameter","_init_extra_maskMapParameter","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","notify","persist","uint8","boolean","objectRef","string","list","carbon","method","impl","adapted","implemented","reason","pickBufferID","hideOnLowQuality","effect","skinned","display","name","planes","lights","imageMapParameter","layerMap1Parameter","layerMap2Parameter","maskMapParameter","box3","create","Rebuild","__state","add","CreateItemSetBoundingBoxes","filter","item","Initialize","SetEffect","SetPickBufferID","Number","length","GetAabb","out","bones","boneCount","GetItemSetAabb","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","SetIsSkinned","AddPlaneItem","push","GetPlanes","SetShaderOption","value","SetOption","SetImageMapParameter","parameter","SetLayerMap1Parameter","SetLayerMap2Parameter","SetMaskMapParameter","AddLightFromSOF","light","EvePlaneLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","_boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","GetAverageColor","layer1","layer2","image","mask","channel","GetLights","lightManager","features","parentBrightness","parentScale","averageColor","time","GetAnimationTime","quality","GetCurrentSpaceSceneShadowQuality","record","dataCopy","CopyLightData","color","Saturate","saturation","brightness","Fade","fadeType","blinkRate","blinkPhase","AsPerPointLightData","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","#MapAverageColor","average","GetResource","#IsFullyTransparent","CreateLightRecord","CreateLightDataScratch","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EvePlaneSet.js","sources":["../../../../../../src/trinity/eve/attachment/plane/EvePlaneSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EvePlaneSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EvePlaneSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\nimport { EvePlaneLight } from \"./EvePlaneLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Fade, Saturate } from \"../EveSpaceObjectAttachmentUtils.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\nimport {\r\n AsPerPointLightData,\r\n CopyLightData,\r\n CreateLightDataScratch,\r\n CreateLightRecord,\r\n MatrixCopyFrom3x4\r\n} from \"../../lights/lightConversion.js\";\r\n\r\nconst WHITE = new Float32Array([1, 1, 1, 1]);\r\n\r\n\r\n/**\r\n * A hull's authored textured planes, owning their static and per-bone bounds,\r\n * the four shared texture parameters and the plane lights.\r\n */\r\n@type.define({ className: \"EvePlaneSet\", family: \"eve/attachment/planes\" })\r\nexport class EvePlaneSet extends IEveSpaceObjectAttachment\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.notify\r\n @io.persist\r\n @type.uint8\r\n pickBufferID = 0;\r\n\r\n @io.persist\r\n @type.boolean\r\n hideOnLowQuality = false;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.boolean\r\n skinned = false;\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EvePlaneSetItem\")\r\n planes = [];\r\n\r\n @io.persist\r\n @type.list(\"EvePlaneLight\")\r\n lights = [];\r\n\r\n // SOF-authored shared texture parameters; persisted so the values\r\n // interchange reproduces Carbon's hidden plane-set bindings.\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n imageMapParameter = null;\r\n\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n layerMap1Parameter = null;\r\n\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n layerMap2Parameter = null;\r\n\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n maskMapParameter = null;\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every unskinned, non-transparent plane (cpp:323-355). */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength (ctor 0, EvePlaneSet.cpp:76). Lights are\r\n * BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n /**\r\n * Recomputes the static and per-bone bounds from the authored planes -\r\n * skipping any plane whose colour is fully zero, which contributes nothing -\r\n * and marks the packed geometry stale.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Packed vertices, bounds caches and quad registration are reconciled by\r\n // the renderer adapter from this authored graph.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n // Carbon CreateBoundingBoxes (cpp:323-355) is the shared builder plus one\r\n // filter: a fully transparent plane contributes NO bounds at all.\r\n CreateItemSetBoundingBoxes(\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n this.skinned,\r\n this.planes.filter(item => !EvePlaneSet.#IsFullyTransparent(item))\r\n );\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /** Sets the effect that draws the planes. */\r\n @carbon.method\r\n @impl.implemented\r\n SetEffect(effect)\r\n {\r\n this.effect = effect ?? null;\r\n }\r\n\r\n /**\r\n * Sets the 8-bit pick buffer id written by the plane geometry, rebuilding\r\n * immediately when planes are already authored because the id is packed into\r\n * it.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetPickBufferID(pickBufferID)\r\n {\r\n this.pickBufferID = Number(pickBufferID) & 0xff;\r\n if (this.planes.length) this.Rebuild();\r\n }\r\n\r\n /** Carbon EvePlaneSet::GetAabb (cpp:273-276): the item-set bounds, with the bone\r\n * list forwarded only when the set is skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(\r\n out,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n this.skinned ? boneCount : 0\r\n );\r\n }\r\n\r\n /** Carbon EvePlaneSet::UpdateVisibility (cpp:236-246): an uninitialized set is\r\n * NOT visible; otherwise the bounds move into world space and take the\r\n * frustum box test. No LOD and no display gate. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = this.GetAabb(EvePlaneSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /**\r\n * Sets whether the planes ride skeleton bones, which is what decides if\r\n * GetAabb consults the caller's bone list at all.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetIsSkinned(skinned)\r\n {\r\n this.skinned = !!skinned;\r\n }\r\n\r\n /**\r\n * Appends an authored plane item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddPlaneItem(item)\r\n {\r\n this.planes.push(item);\r\n }\r\n\r\n /** The live plane item list, not a copy. */\r\n @carbon.method\r\n @impl.implemented\r\n GetPlanes()\r\n {\r\n return this.planes;\r\n }\r\n\r\n /**\r\n * Sets a shader option on the plane effect, doing nothing when no effect that\r\n * accepts options is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.effect && typeof this.effect.SetOption === \"function\")\r\n {\r\n this.effect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Sets the shared image map texture parameter; its average colour is one of\r\n * the four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetImageMapParameter(parameter)\r\n {\r\n this.imageMapParameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Sets the shared first layer map texture parameter; its average colour is one\r\n * of the four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetLayerMap1Parameter(parameter)\r\n {\r\n this.layerMap1Parameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Sets the shared second layer map texture parameter; its average colour is\r\n * one of the four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetLayerMap2Parameter(parameter)\r\n {\r\n this.layerMap2Parameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Sets the shared mask map texture parameter; its average colour is one of the\r\n * four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetMaskMapParameter(parameter)\r\n {\r\n this.maskMapParameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EvePlaneLight and appends\r\n * it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EvePlaneLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EvePlaneSet::RegisterComponents (cpp:535-542): LightOwner when\r\n * lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EvePlaneSet::UpdateLights (cpp:248-267): the shared packed-set\r\n * bone pattern (boneIndex > 0 only; column-stride Float4x3 unpack; 4th\r\n * column zeroed, [15] = 1; boneMatrix *= parentTransform - Carbon\r\n * row-vector, bone FIRST: gl operands SWAP; else copy the parent). Stamps\r\n * the activation strength (boosterGain unused by planes). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, _boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n }\r\n\r\n /** Carbon EvePlaneSet::GetAverageColor (cpp:499-528): the componentwise\r\n * product of the four texture parameters' average colors, each defaulting\r\n * to white when the map or its resource is missing. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The texture average color is a resource capability - read as a GetAverageColor duck on the parameter's resource, white when absent.\")\r\n GetAverageColor(out = new Float32Array(4))\r\n {\r\n const layer1 = EvePlaneSet.#MapAverageColor(this.layerMap1Parameter);\r\n const layer2 = EvePlaneSet.#MapAverageColor(this.layerMap2Parameter);\r\n const image = EvePlaneSet.#MapAverageColor(this.imageMapParameter);\r\n const mask = EvePlaneSet.#MapAverageColor(this.maskMapParameter);\r\n for (let channel = 0; channel < 4; channel++)\r\n {\r\n out[channel] = layer1[channel] * layer2[channel] * image[channel] * mask[channel];\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon EvePlaneSet::GetLights (cpp:544-568): parentBrightness set once;\r\n * average color computed only when lights exist (cpp:550-553; zero\r\n * otherwise - moot, the loop is empty); the loop iterates BY VALUE\r\n * (cpp:555-557 `auto light` + lightDataCopy) so the stored items are never\r\n * mutated - a scratch copy carries: color = authored * averageColor\r\n * componentwise, then Saturate (extrapolating above 1), then brightness *=\r\n * Fade(fadeType, ...) (cpp:558-564); point conversion on the bone matrix. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::GetAnimationTime relocates onto the light-manager duck (GetAnimationTime, default 0); the texture average colors and profile packing follow the adapted ducks above.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EvePlaneSet.#features;\r\n features.parentBrightness = this.#activationStrength;\r\n features.parentScale = 1;\r\n const averageColor = EvePlaneSet.#averageColorScratch;\r\n if (this.lights.length > 0)\r\n {\r\n this.GetAverageColor(averageColor);\r\n }\r\n const time = lightManager?.GetAnimationTime() ?? 0;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EvePlaneSet.#lightRecord;\r\n const dataCopy = EvePlaneSet.#lightDataScratch;\r\n\r\n for (const light of this.lights)\r\n {\r\n CopyLightData(dataCopy, light.lightData);\r\n dataCopy.color[0] *= averageColor[0];\r\n dataCopy.color[1] *= averageColor[1];\r\n dataCopy.color[2] *= averageColor[2];\r\n dataCopy.color[3] *= averageColor[3];\r\n Saturate(dataCopy.color, dataCopy.color, light.saturation);\r\n dataCopy.brightness *= Fade(time, light.fadeType, light.blinkRate, light.blinkPhase);\r\n AsPerPointLightData(record, dataCopy, light.boneMatrix, features, quality);\r\n record.lightType = Tr2Light.POINT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /**\r\n * The average colour of a texture parameter's resource, white when the\r\n * parameter, its resource or its average colour is missing, so an absent map\r\n * is a no-op in the four-way product.\r\n */\r\n static #MapAverageColor(parameter)\r\n {\r\n const average = parameter?.GetResource?.()?.GetAverageColor?.();\r\n return average ?? WHITE;\r\n }\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n /** Carbon CreateBoundingBoxes skips an item whose color is exactly\r\n * Color(0, 0, 0, 0) (cpp:332-335) - an authored \"off\" plane contributes no\r\n * bounds. Any non-zero channel, alpha included, counts. */\r\n static #IsFullyTransparent(item)\r\n {\r\n const color = item?.color;\r\n return !!color && !color[0] && !color[1] && !color[2] && !color[3];\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #lightRecord = CreateLightRecord();\r\n\r\n static #lightDataScratch = CreateLightDataScratch();\r\n\r\n static #averageColorScratch = new Float32Array(4);\r\n}\r\n"],"names":["WHITE","Float32Array","_EvePlaneSet","_identity","EvePlaneSet","IEveSpaceObjectAttachment","e","_init_pickBufferID","_init_extra_pickBufferID","_init_hideOnLowQuality","_init_extra_hideOnLowQuality","_init_effect","_init_extra_effect","_init_skinned","_init_extra_skinned","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_planes","_init_extra_planes","_init_lights","_init_extra_lights","_init_imageMapParameter","_init_extra_imageMapParameter","_init_layerMap1Parameter","_init_extra_layerMap1Parameter","_init_layerMap2Parameter","_init_extra_layerMap2Parameter","_init_maskMapParameter","_init_extra_maskMapParameter","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","notify","persist","uint8","boolean","objectRef","string","list","carbon","method","impl","adapted","implemented","reason","pickBufferID","hideOnLowQuality","effect","skinned","display","name","planes","lights","imageMapParameter","layerMap1Parameter","layerMap2Parameter","maskMapParameter","box3","create","Rebuild","__state","add","CreateItemSetBoundingBoxes","filter","item","Initialize","SetEffect","SetPickBufferID","Number","length","GetAabb","out","bones","boneCount","GetItemSetAabb","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","SetIsSkinned","AddPlaneItem","push","GetPlanes","SetShaderOption","value","SetOption","SetImageMapParameter","parameter","SetLayerMap1Parameter","SetLayerMap2Parameter","SetMaskMapParameter","AddLightFromSOF","light","EvePlaneLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","_boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","GetAverageColor","layer1","layer2","image","mask","channel","GetLights","lightManager","features","parentBrightness","parentScale","averageColor","time","GetAnimationTime","quality","GetCurrentSpaceSceneShadowQuality","record","dataCopy","CopyLightData","color","Saturate","saturation","brightness","Fade","fadeType","blinkRate","blinkPhase","AsPerPointLightData","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","#MapAverageColor","average","GetResource","#IsFullyTransparent","CreateLightRecord","CreateLightDataScratch","constructor"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { EveComponentType } from '../../EveComponentTypes.js';
|
|
|
8
8
|
import { Tr2Light as _Tr2Light } from '../../lights/Tr2Light.js';
|
|
9
9
|
import { CreateItemSetBoundingBoxes, GetItemSetAabb } from '../itemSetBounds.js';
|
|
10
10
|
import { MatrixCopyFrom3x4, AsPerSpotLightData, CreateLightRecord } from '../../lights/lightConversion.js';
|
|
11
|
-
import { Tr2VertexDefinition } from '../../../core/vertex/Tr2VertexDefinition.js';
|
|
11
|
+
import { Tr2VertexDefinition } from '../../../core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js';
|
|
12
12
|
import { TriBatchType } from '#consts/graphics';
|
|
13
13
|
|
|
14
14
|
let _initProto, _initClass, _init_spotlightItems, _init_extra_spotlightItems, _init_name, _init_extra_name, _init_display, _init_extra_display, _init_coneEffect, _init_extra_coneEffect, _init_glowEffect, _init_extra_glowEffect, _init_skinned, _init_extra_skinned, _init_intensity, _init_extra_intensity, _init_lights, _init_extra_lights;
|
|
@@ -167,7 +167,7 @@ new class extends _identity {
|
|
|
167
167
|
return false;
|
|
168
168
|
}
|
|
169
169
|
box3.transformMat4(aabb, aabb, parentTransform);
|
|
170
|
-
return !!updateContext?.GetFrustum
|
|
170
|
+
return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveSpotlightSet.js","sources":["../../../../../../src/trinity/eve/attachment/spotlight/EveSpotlightSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpotlightSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpotlightSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\r\nimport { EveSpotlightLight } from \"./EveSpotlightLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\nimport { AsPerSpotLightData, CreateLightRecord, MatrixCopyFrom3x4 } from \"../../lights/lightConversion.js\";\r\nimport { Tr2VertexDefinition } from \"../../../core/vertex/Tr2VertexDefinition.js\";\r\nimport { TriBatchType } from \"#consts/graphics\";\r\n\r\n\r\n// Carbon's two nested pool-vertex layouts, BUILT as Carbon builds them\r\n// (GlowPoolVertex::GetDefinition, EveSpotlightSet.cpp:16-32;\r\n// ConePoolVertex::GetDefinition, cpp:34-49). Stream 0 is the per-corner\r\n// TEXCOORD4 float; stream 1 is the instance data. The ledger lands exactly on\r\n// each struct's size: glow 3xVector4 + 12 halves = 72, cone 3xVector4 +\r\n// 6 halves = 60 (EveSpotlightSet.h:110-137).\r\nconst GLOW_POOL_VERTEX_DEFINITION = new Tr2VertexDefinition();\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_1\", \"TEXCOORD\", 4);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 0, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 1, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 2, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"COLOR\", 0, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"COLOR\", 1, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"TEXCOORD\", 3, 1, 1);\r\n\r\nconst CONE_POOL_VERTEX_DEFINITION = new Tr2VertexDefinition();\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_1\", \"TEXCOORD\", 4);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 0, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 1, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 2, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"COLOR\", 0, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_2\", \"TEXCOORD\", 3, 1, 1);\r\n\r\n/** sizeof(GlowPoolVertex) / sizeof(ConePoolVertex): the stream-1 ledger. */\r\nconst GLOW_POOL_VERTEX_SIZE = GLOW_POOL_VERTEX_DEFINITION.nextOffset[1];\r\nconst CONE_POOL_VERTEX_SIZE = CONE_POOL_VERTEX_DEFINITION.nextOffset[1];\r\n\r\n// Carbon's anonymous-namespace quad counts (EveSpotlightSet.cpp:53-54).\r\nconst CONE_QUAD_COUNT = 4;\r\nconst SPRITE_QUAD_COUNT = 2;\r\n\r\n\r\n/**\r\n * A hull's authored spotlights, owning their static and per-bone bounds, the\r\n * cone and glow effects that draw them, and the spot lights they emit.\r\n */\r\n@type.define({ className: \"EveSpotlightSet\", family: \"eve/attachment/spotlights\" })\r\nexport class EveSpotlightSet extends IEveSpaceObjectAttachment\r\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveSpotlightSetItem\")\r\n spotlightItems = [];\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n coneEffect = null;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n glowEffect = null;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.boolean\r\n skinned = false;\r\n\r\n @io.persist\r\n @type.float32\r\n intensity = 1;\r\n\r\n @io.persist\r\n @type.list(\"EveSpotlightLight\")\r\n lights = [];\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every unskinned spotlight (cpp:311). */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength / m_boosterGain (ctor 0 / 0,\r\n * EveSpotlightSet.cpp:90-91). Lights are BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n #boosterGain = 0;\r\n\r\n /**\r\n * Recomputes the static and per-bone bounds from the authored spotlight items\r\n * and marks the packed geometry stale.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Packed cone/glow vertices, bounds caches, effect hashes and quad\r\n // registration are reconciled by the concrete renderer adapter.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n // Carbon rebuilds the item-set bounds at the tail of the same pack (cpp:311).\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, this.skinned, this.spotlightItems);\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /** The effect that draws the light cones. */\r\n @carbon.method\r\n @impl.implemented\r\n GetConeEffect()\r\n {\r\n return this.coneEffect;\r\n }\r\n\r\n /** Sets the effect that draws the light cones. */\r\n @carbon.method\r\n @impl.implemented\r\n SetConeEffect(effect)\r\n {\r\n this.coneEffect = effect ?? null;\r\n }\r\n\r\n /** The effect that draws the glow sprite at each cone's source. */\r\n @carbon.method\r\n @impl.implemented\r\n GetGlowEffect()\r\n {\r\n return this.glowEffect;\r\n }\r\n\r\n /** Sets the effect that draws the glow sprite at each cone's source. */\r\n @carbon.method\r\n @impl.implemented\r\n SetGlowEffect(effect)\r\n {\r\n this.glowEffect = effect ?? null;\r\n }\r\n\r\n /**\r\n * Carbon RegisterQuadRendererCone (EveSpotlightSet.cpp:124-127): one\r\n * additive-batch registration keyed by the cone effect's hash. Carbon\r\n * registers through its cached m_coneEffectHash; the key is read from the\r\n * effect here, exactly as EveSpriteSet's registration seam does.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterQuadRendererCone(quadRenderer)\r\n {\r\n if (!this.coneEffect) return;\r\n quadRenderer.RegisterEffect(\r\n Number(this.coneEffect.GetHashValue()) >>> 0,\r\n TriBatchType.TRIBATCHTYPE_ADDITIVE,\r\n CONE_POOL_VERTEX_SIZE,\r\n CONE_QUAD_COUNT,\r\n CONE_POOL_VERTEX_DEFINITION,\r\n this.coneEffect\r\n );\r\n }\r\n\r\n /**\r\n * Carbon RegisterQuadRendererGlow (cpp:129-132): the glow twin, two quads\r\n * per sprite.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterQuadRendererGlow(quadRenderer)\r\n {\r\n if (!this.glowEffect) return;\r\n quadRenderer.RegisterEffect(\r\n Number(this.glowEffect.GetHashValue()) >>> 0,\r\n TriBatchType.TRIBATCHTYPE_ADDITIVE,\r\n GLOW_POOL_VERTEX_SIZE,\r\n SPRITE_QUAD_COUNT,\r\n GLOW_POOL_VERTEX_DEFINITION,\r\n this.glowEffect\r\n );\r\n }\r\n\r\n /** The built ConePoolVertex declaration (nested-struct static in Carbon). */\r\n static getConeDefinition()\r\n {\r\n return CONE_POOL_VERTEX_DEFINITION;\r\n }\r\n\r\n /** The built GlowPoolVertex declaration (nested-struct static in Carbon). */\r\n static getGlowDefinition()\r\n {\r\n return GLOW_POOL_VERTEX_DEFINITION;\r\n }\r\n\r\n /** Carbon EveSpotlightSet::GetAabb (cpp:176-179): the item-set bounds, with the bone\r\n * list forwarded only when the set is skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(\r\n out,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n this.skinned ? boneCount : 0\r\n );\r\n }\r\n\r\n /** Carbon EveSpotlightSet::UpdateVisibility (cpp:138-148): an uninitialized set is\r\n * NOT visible; otherwise the bounds move into world space and take the\r\n * frustum box test. No LOD and no display gate. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = this.GetAabb(EveSpotlightSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum?.()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /**\r\n * Sets whether the spotlights ride skeleton bones, which is what decides if\r\n * GetAabb consults the caller's bone list at all.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetSkinned(skinned)\r\n {\r\n this.skinned = !!skinned;\r\n }\r\n\r\n /** The authored set name, which SOF uses to match this set to its DNA entry. */\r\n @carbon.method\r\n @impl.implemented\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Sets the authored set name, coercing null or undefined to an empty string. */\r\n @carbon.method\r\n @impl.implemented\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /** The live spotlight item list, not a copy. */\r\n @carbon.method\r\n @impl.implemented\r\n GetSpotlightItems()\r\n {\r\n return this.spotlightItems;\r\n }\r\n\r\n /**\r\n * Appends an authored spotlight item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddSpotlightItem(item)\r\n {\r\n this.spotlightItems.push(item);\r\n }\r\n\r\n /**\r\n * Sets a shader option on both the cone and the glow effect, skipping\r\n * whichever is absent or does not accept options.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.coneEffect && typeof this.coneEffect.SetOption === \"function\")\r\n {\r\n this.coneEffect.SetOption(name, value);\r\n }\r\n if (this.glowEffect && typeof this.glowEffect.SetOption === \"function\")\r\n {\r\n this.glowEffect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveSpotlightLight and\r\n * appends it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EveSpotlightLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveSpotlightSet::RegisterComponents (cpp:527-534): LightOwner\r\n * when lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveSpotlightSet::UpdateLights (cpp:150-170): the shared\r\n * packed-set bone pattern (boneIndex > 0 only; column-stride Float4x3\r\n * unpack; 4th column zeroed, [15] = 1; boneMatrix *= parentTransform -\r\n * Carbon row-vector, bone FIRST: gl operands SWAP; else copy the parent).\r\n * Stamps BOTH activationStrength and boosterGain (cpp:168-169). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n this.#boosterGain = Number(boosterGain) || 0;\r\n }\r\n\r\n /** Carbon EveSpotlightSet::GetLights (cpp:536-552): the haze pattern\r\n * (parentBrightness inside the loop, boosterGainInfluence multiply) but\r\n * with the SPOT conversion (cpp:549) - cos-of-degree angles and the\r\n * 1/tan(outerAngle) projection-plane distance, Infinity at outerAngle 0\r\n * exactly as Carbon ships. The spot direction comes from lightData.rotation\r\n * via the conversion's swapped RotationMatrix * transform composition. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Profile-index packing is by-reference per lightConversion.js conventions.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EveSpotlightSet.#features;\r\n features.parentScale = 1;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveSpotlightSet.#lightRecord;\r\n\r\n for (const light of this.lights)\r\n {\r\n features.parentBrightness = this.#activationStrength;\r\n if (light.boosterGainInfluence)\r\n {\r\n features.parentBrightness *= this.#boosterGain;\r\n }\r\n AsPerSpotLightData(record, light.lightData, light.boneMatrix, features, quality);\r\n record.lightType = Tr2Light.SPOT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n static #lightRecord = CreateLightRecord();\r\n}\r\n"],"names":["GLOW_POOL_VERTEX_DEFINITION","Tr2VertexDefinition","Add","CONE_POOL_VERTEX_DEFINITION","GLOW_POOL_VERTEX_SIZE","nextOffset","CONE_POOL_VERTEX_SIZE","CONE_QUAD_COUNT","SPRITE_QUAD_COUNT","_EveSpotlightSet","_identity","EveSpotlightSet","IEveSpaceObjectAttachment","e","_init_spotlightItems","_init_extra_spotlightItems","_init_name","_init_extra_name","_init_display","_init_extra_display","_init_coneEffect","_init_extra_coneEffect","_init_glowEffect","_init_extra_glowEffect","_init_skinned","_init_extra_skinned","_init_intensity","_init_extra_intensity","_init_lights","_init_extra_lights","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","list","string","boolean","objectRef","float32","carbon","method","impl","adapted","implemented","reason","spotlightItems","name","display","coneEffect","glowEffect","skinned","intensity","lights","box3","create","Rebuild","__state","add","CreateItemSetBoundingBoxes","Initialize","GetConeEffect","SetConeEffect","effect","GetGlowEffect","SetGlowEffect","RegisterQuadRendererCone","quadRenderer","RegisterEffect","Number","GetHashValue","TriBatchType","TRIBATCHTYPE_ADDITIVE","RegisterQuadRendererGlow","getConeDefinition","getGlowDefinition","GetAabb","out","bones","boneCount","GetItemSetAabb","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","SetSkinned","GetName","SetName","String","GetSpotlightItems","AddSpotlightItem","item","push","SetShaderOption","value","SetOption","AddLightFromSOF","light","EveSpotlightLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","GetLights","lightManager","features","parentScale","quality","GetCurrentSpaceSceneShadowQuality","record","parentBrightness","boosterGainInfluence","AsPerSpotLightData","lightType","Tr2Light","SPOT_LIGHT","lightProfile","owner","AddLight","CreateLightRecord","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveSpotlightSet.js","sources":["../../../../../../src/trinity/eve/attachment/spotlight/EveSpotlightSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpotlightSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpotlightSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\r\nimport { EveSpotlightLight } from \"./EveSpotlightLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\nimport { AsPerSpotLightData, CreateLightRecord, MatrixCopyFrom3x4 } from \"../../lights/lightConversion.js\";\r\nimport { Tr2VertexDefinition } from \"../../../core/vertex/Tr2VertexDefinition/index.js\";\r\nimport { TriBatchType } from \"#consts/graphics\";\r\n\r\n\r\n// Carbon's two nested pool-vertex layouts, BUILT as Carbon builds them\r\n// (GlowPoolVertex::GetDefinition, EveSpotlightSet.cpp:16-32;\r\n// ConePoolVertex::GetDefinition, cpp:34-49). Stream 0 is the per-corner\r\n// TEXCOORD4 float; stream 1 is the instance data. The ledger lands exactly on\r\n// each struct's size: glow 3xVector4 + 12 halves = 72, cone 3xVector4 +\r\n// 6 halves = 60 (EveSpotlightSet.h:110-137).\r\nconst GLOW_POOL_VERTEX_DEFINITION = new Tr2VertexDefinition();\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_1\", \"TEXCOORD\", 4);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 0, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 1, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 2, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"COLOR\", 0, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"COLOR\", 1, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"TEXCOORD\", 3, 1, 1);\r\n\r\nconst CONE_POOL_VERTEX_DEFINITION = new Tr2VertexDefinition();\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_1\", \"TEXCOORD\", 4);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 0, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 1, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 2, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"COLOR\", 0, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_2\", \"TEXCOORD\", 3, 1, 1);\r\n\r\n/** sizeof(GlowPoolVertex) / sizeof(ConePoolVertex): the stream-1 ledger. */\r\nconst GLOW_POOL_VERTEX_SIZE = GLOW_POOL_VERTEX_DEFINITION.nextOffset[1];\r\nconst CONE_POOL_VERTEX_SIZE = CONE_POOL_VERTEX_DEFINITION.nextOffset[1];\r\n\r\n// Carbon's anonymous-namespace quad counts (EveSpotlightSet.cpp:53-54).\r\nconst CONE_QUAD_COUNT = 4;\r\nconst SPRITE_QUAD_COUNT = 2;\r\n\r\n\r\n/**\r\n * A hull's authored spotlights, owning their static and per-bone bounds, the\r\n * cone and glow effects that draw them, and the spot lights they emit.\r\n */\r\n@type.define({ className: \"EveSpotlightSet\", family: \"eve/attachment/spotlights\" })\r\nexport class EveSpotlightSet extends IEveSpaceObjectAttachment\r\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveSpotlightSetItem\")\r\n spotlightItems = [];\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n coneEffect = null;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n glowEffect = null;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.boolean\r\n skinned = false;\r\n\r\n @io.persist\r\n @type.float32\r\n intensity = 1;\r\n\r\n @io.persist\r\n @type.list(\"EveSpotlightLight\")\r\n lights = [];\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every unskinned spotlight (cpp:311). */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength / m_boosterGain (ctor 0 / 0,\r\n * EveSpotlightSet.cpp:90-91). Lights are BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n #boosterGain = 0;\r\n\r\n /**\r\n * Recomputes the static and per-bone bounds from the authored spotlight items\r\n * and marks the packed geometry stale.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Packed cone/glow vertices, bounds caches, effect hashes and quad\r\n // registration are reconciled by the concrete renderer adapter.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n // Carbon rebuilds the item-set bounds at the tail of the same pack (cpp:311).\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, this.skinned, this.spotlightItems);\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /** The effect that draws the light cones. */\r\n @carbon.method\r\n @impl.implemented\r\n GetConeEffect()\r\n {\r\n return this.coneEffect;\r\n }\r\n\r\n /** Sets the effect that draws the light cones. */\r\n @carbon.method\r\n @impl.implemented\r\n SetConeEffect(effect)\r\n {\r\n this.coneEffect = effect ?? null;\r\n }\r\n\r\n /** The effect that draws the glow sprite at each cone's source. */\r\n @carbon.method\r\n @impl.implemented\r\n GetGlowEffect()\r\n {\r\n return this.glowEffect;\r\n }\r\n\r\n /** Sets the effect that draws the glow sprite at each cone's source. */\r\n @carbon.method\r\n @impl.implemented\r\n SetGlowEffect(effect)\r\n {\r\n this.glowEffect = effect ?? null;\r\n }\r\n\r\n /**\r\n * Carbon RegisterQuadRendererCone (EveSpotlightSet.cpp:124-127): one\r\n * additive-batch registration keyed by the cone effect's hash. Carbon\r\n * registers through its cached m_coneEffectHash; the key is read from the\r\n * effect here, exactly as EveSpriteSet's registration seam does.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterQuadRendererCone(quadRenderer)\r\n {\r\n if (!this.coneEffect) return;\r\n quadRenderer.RegisterEffect(\r\n Number(this.coneEffect.GetHashValue()) >>> 0,\r\n TriBatchType.TRIBATCHTYPE_ADDITIVE,\r\n CONE_POOL_VERTEX_SIZE,\r\n CONE_QUAD_COUNT,\r\n CONE_POOL_VERTEX_DEFINITION,\r\n this.coneEffect\r\n );\r\n }\r\n\r\n /**\r\n * Carbon RegisterQuadRendererGlow (cpp:129-132): the glow twin, two quads\r\n * per sprite.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterQuadRendererGlow(quadRenderer)\r\n {\r\n if (!this.glowEffect) return;\r\n quadRenderer.RegisterEffect(\r\n Number(this.glowEffect.GetHashValue()) >>> 0,\r\n TriBatchType.TRIBATCHTYPE_ADDITIVE,\r\n GLOW_POOL_VERTEX_SIZE,\r\n SPRITE_QUAD_COUNT,\r\n GLOW_POOL_VERTEX_DEFINITION,\r\n this.glowEffect\r\n );\r\n }\r\n\r\n /** The built ConePoolVertex declaration (nested-struct static in Carbon). */\r\n static getConeDefinition()\r\n {\r\n return CONE_POOL_VERTEX_DEFINITION;\r\n }\r\n\r\n /** The built GlowPoolVertex declaration (nested-struct static in Carbon). */\r\n static getGlowDefinition()\r\n {\r\n return GLOW_POOL_VERTEX_DEFINITION;\r\n }\r\n\r\n /** Carbon EveSpotlightSet::GetAabb (cpp:176-179): the item-set bounds, with the bone\r\n * list forwarded only when the set is skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(\r\n out,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n this.skinned ? boneCount : 0\r\n );\r\n }\r\n\r\n /** Carbon EveSpotlightSet::UpdateVisibility (cpp:138-148): an uninitialized set is\r\n * NOT visible; otherwise the bounds move into world space and take the\r\n * frustum box test. No LOD and no display gate. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = this.GetAabb(EveSpotlightSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /**\r\n * Sets whether the spotlights ride skeleton bones, which is what decides if\r\n * GetAabb consults the caller's bone list at all.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetSkinned(skinned)\r\n {\r\n this.skinned = !!skinned;\r\n }\r\n\r\n /** The authored set name, which SOF uses to match this set to its DNA entry. */\r\n @carbon.method\r\n @impl.implemented\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Sets the authored set name, coercing null or undefined to an empty string. */\r\n @carbon.method\r\n @impl.implemented\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /** The live spotlight item list, not a copy. */\r\n @carbon.method\r\n @impl.implemented\r\n GetSpotlightItems()\r\n {\r\n return this.spotlightItems;\r\n }\r\n\r\n /**\r\n * Appends an authored spotlight item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddSpotlightItem(item)\r\n {\r\n this.spotlightItems.push(item);\r\n }\r\n\r\n /**\r\n * Sets a shader option on both the cone and the glow effect, skipping\r\n * whichever is absent or does not accept options.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.coneEffect && typeof this.coneEffect.SetOption === \"function\")\r\n {\r\n this.coneEffect.SetOption(name, value);\r\n }\r\n if (this.glowEffect && typeof this.glowEffect.SetOption === \"function\")\r\n {\r\n this.glowEffect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveSpotlightLight and\r\n * appends it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EveSpotlightLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveSpotlightSet::RegisterComponents (cpp:527-534): LightOwner\r\n * when lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveSpotlightSet::UpdateLights (cpp:150-170): the shared\r\n * packed-set bone pattern (boneIndex > 0 only; column-stride Float4x3\r\n * unpack; 4th column zeroed, [15] = 1; boneMatrix *= parentTransform -\r\n * Carbon row-vector, bone FIRST: gl operands SWAP; else copy the parent).\r\n * Stamps BOTH activationStrength and boosterGain (cpp:168-169). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n this.#boosterGain = Number(boosterGain) || 0;\r\n }\r\n\r\n /** Carbon EveSpotlightSet::GetLights (cpp:536-552): the haze pattern\r\n * (parentBrightness inside the loop, boosterGainInfluence multiply) but\r\n * with the SPOT conversion (cpp:549) - cos-of-degree angles and the\r\n * 1/tan(outerAngle) projection-plane distance, Infinity at outerAngle 0\r\n * exactly as Carbon ships. The spot direction comes from lightData.rotation\r\n * via the conversion's swapped RotationMatrix * transform composition. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Profile-index packing is by-reference per lightConversion.js conventions.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EveSpotlightSet.#features;\r\n features.parentScale = 1;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveSpotlightSet.#lightRecord;\r\n\r\n for (const light of this.lights)\r\n {\r\n features.parentBrightness = this.#activationStrength;\r\n if (light.boosterGainInfluence)\r\n {\r\n features.parentBrightness *= this.#boosterGain;\r\n }\r\n AsPerSpotLightData(record, light.lightData, light.boneMatrix, features, quality);\r\n record.lightType = Tr2Light.SPOT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n static #lightRecord = CreateLightRecord();\r\n}\r\n"],"names":["GLOW_POOL_VERTEX_DEFINITION","Tr2VertexDefinition","Add","CONE_POOL_VERTEX_DEFINITION","GLOW_POOL_VERTEX_SIZE","nextOffset","CONE_POOL_VERTEX_SIZE","CONE_QUAD_COUNT","SPRITE_QUAD_COUNT","_EveSpotlightSet","_identity","EveSpotlightSet","IEveSpaceObjectAttachment","e","_init_spotlightItems","_init_extra_spotlightItems","_init_name","_init_extra_name","_init_display","_init_extra_display","_init_coneEffect","_init_extra_coneEffect","_init_glowEffect","_init_extra_glowEffect","_init_skinned","_init_extra_skinned","_init_intensity","_init_extra_intensity","_init_lights","_init_extra_lights","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","list","string","boolean","objectRef","float32","carbon","method","impl","adapted","implemented","reason","spotlightItems","name","display","coneEffect","glowEffect","skinned","intensity","lights","box3","create","Rebuild","__state","add","CreateItemSetBoundingBoxes","Initialize","GetConeEffect","SetConeEffect","effect","GetGlowEffect","SetGlowEffect","RegisterQuadRendererCone","quadRenderer","RegisterEffect","Number","GetHashValue","TriBatchType","TRIBATCHTYPE_ADDITIVE","RegisterQuadRendererGlow","getConeDefinition","getGlowDefinition","GetAabb","out","bones","boneCount","GetItemSetAabb","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","SetSkinned","GetName","SetName","String","GetSpotlightItems","AddSpotlightItem","item","push","SetShaderOption","value","SetOption","AddLightFromSOF","light","EveSpotlightLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","GetLights","lightManager","features","parentScale","quality","GetCurrentSpaceSceneShadowQuality","record","parentBrightness","boosterGainInfluence","AsPerSpotLightData","lightType","Tr2Light","SPOT_LIGHT","lightProfile","owner","AddLight","CreateLightRecord","constructor"],"mappings":"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"}
|
|
@@ -83,7 +83,7 @@ new class extends _identity {
|
|
|
83
83
|
return false;
|
|
84
84
|
}
|
|
85
85
|
box3.transformMat4(aabb, aabb, parentTransform);
|
|
86
|
-
return !!updateContext?.GetFrustum
|
|
86
|
+
return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
/** Sets the drawing effect and the skinned flag in one call. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveSpriteLineSet.js","sources":["../../../../../../src/trinity/eve/attachment/sprite/EveSpriteLineSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpriteLineSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpriteLineSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\nimport { EveSpriteLight } from \"./EveSpriteLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Blink } from \"../EveSpaceObjectAttachmentUtils.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\nimport { AsPerPointLightData, CreateLightRecord, MatrixCopyFrom3x4 } from \"../../lights/lightConversion.js\";\r\n\r\n\r\n/**\r\n * A hull's authored sprite runs - lines and circles of evenly spaced sprites -\r\n * owning their static and per-bone bounds and the point lights they emit.\r\n */\r\n@type.define({ className: \"EveSpriteLineSet\", family: \"eve/attachment/sprites\" })\r\nexport class EveSpriteLineSet extends IEveSpaceObjectAttachment\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveSpriteLineSetItem\")\r\n spriteLines = [];\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.boolean\r\n skinned = false;\r\n\r\n @io.read\r\n @type.uint32\r\n effectHash = 0;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.readwrite\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.list(\"EveSpriteLight\")\r\n lights = [];\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every unskinned sprite line (cpp:77). */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength (ctor default 0, EveSpriteLineSet.cpp:26 -\r\n * NOT 1: packed-set lights are BLACK until UpdateLights runs). */\r\n #activationStrength = 0;\r\n\r\n /**\r\n * Recomputes the static and per-bone bounds from the authored sprite lines and\r\n * marks the packed geometry stale.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Position expansion is available on each item, but packed quad data,\r\n // effect hashes, bounds caches and registration belong to the adapter.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, this.skinned, this.spriteLines);\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::GetAabb (cpp:177-180): the item-set bounds, with the bone\r\n * list forwarded only when the set is skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(\r\n out,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n this.skinned ? boneCount : 0\r\n );\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::UpdateVisibility (cpp:140-150): an uninitialized set is\r\n * NOT visible; otherwise the bounds move into world space and take the\r\n * frustum box test. No LOD and no display gate. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = this.GetAabb(EveSpriteLineSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum?.()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /** Sets the drawing effect and the skinned flag in one call. */\r\n @carbon.method\r\n @impl.implemented\r\n Setup(effect, isSkinned)\r\n {\r\n this.effect = effect ?? null;\r\n this.skinned = !!isSkinned;\r\n }\r\n\r\n /**\r\n * Appends an authored sprite line item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Add(item)\r\n {\r\n this.spriteLines.push(item);\r\n }\r\n\r\n /**\r\n * Sets a shader option on the sprite line effect, doing nothing when no effect\r\n * that accepts options is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.effect && typeof this.effect.SetOption === \"function\")\r\n {\r\n this.effect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveSpriteLight and appends\r\n * it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EveSpriteLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::RegisterComponents (cpp:349-356): LightOwner\r\n * when lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::UpdateLights (cpp:152-171): byte-identical to\r\n * EveSpriteSet's - boneIndex > 0 only (bone 0 never drives a packed-set\r\n * light), column-stride Float4x3 unpack, 4th column zeroed with [15] = 1,\r\n * then boneMatrix *= parentTransform - Carbon row-vector, bone FIRST: the\r\n * gl-matrix operands SWAP; else boneMatrix = parentTransform. Stamps the\r\n * activation strength (boosterGain unused). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, _boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::GetLights (cpp:358-373): byte-identical to\r\n * EveSpriteSet's (shared EveSpriteLight items) - point conversion on the\r\n * bone matrix, Blink scales radius + innerRadius after conversion, no\r\n * gates. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::GetAnimationTime relocates onto the light-manager duck (GetAnimationTime, default 0); profile-index packing is by-reference per lightConversion.js.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EveSpriteLineSet.#features;\r\n features.parentBrightness = this.#activationStrength;\r\n features.parentScale = 1;\r\n const time = lightManager?.GetAnimationTime() ?? 0;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveSpriteLineSet.#lightRecord;\r\n\r\n for (const light of this.lights)\r\n {\r\n AsPerPointLightData(record, light.lightData, light.boneMatrix, features, quality);\r\n const blinkScale = Blink(time, light.blinkRate, light.blinkPhase, light.minScale, light.maxScale);\r\n record.radius *= blinkScale;\r\n record.innerRadius *= blinkScale;\r\n record.lightType = Tr2Light.POINT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n static #lightRecord = CreateLightRecord();\r\n}\r\n"],"names":["_EveSpriteLineSet","_identity","EveSpriteLineSet","IEveSpaceObjectAttachment","e","_init_spriteLines","_init_extra_spriteLines","_init_skinned","_init_extra_skinned","_init_effectHash","_init_extra_effectHash","_init_effect","_init_extra_effect","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_lights","_init_extra_lights","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","list","boolean","read","uint32","objectRef","readwrite","string","carbon","method","impl","adapted","implemented","reason","spriteLines","skinned","effectHash","effect","display","name","lights","box3","create","Rebuild","__state","add","CreateItemSetBoundingBoxes","Initialize","GetAabb","out","bones","boneCount","GetItemSetAabb","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","Setup","isSkinned","Add","item","push","SetShaderOption","value","SetOption","AddLightFromSOF","light","EveSpriteLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","_boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","Number","GetLights","lightManager","features","parentBrightness","parentScale","time","GetAnimationTime","quality","GetCurrentSpaceSceneShadowQuality","record","AsPerPointLightData","blinkScale","Blink","blinkRate","blinkPhase","minScale","maxScale","radius","innerRadius","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","CreateLightRecord","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveSpriteLineSet.js","sources":["../../../../../../src/trinity/eve/attachment/sprite/EveSpriteLineSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpriteLineSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpriteLineSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\nimport { EveSpriteLight } from \"./EveSpriteLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Blink } from \"../EveSpaceObjectAttachmentUtils.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\nimport { AsPerPointLightData, CreateLightRecord, MatrixCopyFrom3x4 } from \"../../lights/lightConversion.js\";\r\n\r\n\r\n/**\r\n * A hull's authored sprite runs - lines and circles of evenly spaced sprites -\r\n * owning their static and per-bone bounds and the point lights they emit.\r\n */\r\n@type.define({ className: \"EveSpriteLineSet\", family: \"eve/attachment/sprites\" })\r\nexport class EveSpriteLineSet extends IEveSpaceObjectAttachment\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveSpriteLineSetItem\")\r\n spriteLines = [];\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.boolean\r\n skinned = false;\r\n\r\n @io.read\r\n @type.uint32\r\n effectHash = 0;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.readwrite\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.list(\"EveSpriteLight\")\r\n lights = [];\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every unskinned sprite line (cpp:77). */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength (ctor default 0, EveSpriteLineSet.cpp:26 -\r\n * NOT 1: packed-set lights are BLACK until UpdateLights runs). */\r\n #activationStrength = 0;\r\n\r\n /**\r\n * Recomputes the static and per-bone bounds from the authored sprite lines and\r\n * marks the packed geometry stale.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Position expansion is available on each item, but packed quad data,\r\n // effect hashes, bounds caches and registration belong to the adapter.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, this.skinned, this.spriteLines);\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::GetAabb (cpp:177-180): the item-set bounds, with the bone\r\n * list forwarded only when the set is skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(\r\n out,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n this.skinned ? boneCount : 0\r\n );\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::UpdateVisibility (cpp:140-150): an uninitialized set is\r\n * NOT visible; otherwise the bounds move into world space and take the\r\n * frustum box test. No LOD and no display gate. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = this.GetAabb(EveSpriteLineSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /** Sets the drawing effect and the skinned flag in one call. */\r\n @carbon.method\r\n @impl.implemented\r\n Setup(effect, isSkinned)\r\n {\r\n this.effect = effect ?? null;\r\n this.skinned = !!isSkinned;\r\n }\r\n\r\n /**\r\n * Appends an authored sprite line item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Add(item)\r\n {\r\n this.spriteLines.push(item);\r\n }\r\n\r\n /**\r\n * Sets a shader option on the sprite line effect, doing nothing when no effect\r\n * that accepts options is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.effect && typeof this.effect.SetOption === \"function\")\r\n {\r\n this.effect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveSpriteLight and appends\r\n * it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EveSpriteLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::RegisterComponents (cpp:349-356): LightOwner\r\n * when lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::UpdateLights (cpp:152-171): byte-identical to\r\n * EveSpriteSet's - boneIndex > 0 only (bone 0 never drives a packed-set\r\n * light), column-stride Float4x3 unpack, 4th column zeroed with [15] = 1,\r\n * then boneMatrix *= parentTransform - Carbon row-vector, bone FIRST: the\r\n * gl-matrix operands SWAP; else boneMatrix = parentTransform. Stamps the\r\n * activation strength (boosterGain unused). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, _boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::GetLights (cpp:358-373): byte-identical to\r\n * EveSpriteSet's (shared EveSpriteLight items) - point conversion on the\r\n * bone matrix, Blink scales radius + innerRadius after conversion, no\r\n * gates. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::GetAnimationTime relocates onto the light-manager duck (GetAnimationTime, default 0); profile-index packing is by-reference per lightConversion.js.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EveSpriteLineSet.#features;\r\n features.parentBrightness = this.#activationStrength;\r\n features.parentScale = 1;\r\n const time = lightManager?.GetAnimationTime() ?? 0;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveSpriteLineSet.#lightRecord;\r\n\r\n for (const light of this.lights)\r\n {\r\n AsPerPointLightData(record, light.lightData, light.boneMatrix, features, quality);\r\n const blinkScale = Blink(time, light.blinkRate, light.blinkPhase, light.minScale, light.maxScale);\r\n record.radius *= blinkScale;\r\n record.innerRadius *= blinkScale;\r\n record.lightType = Tr2Light.POINT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n static #lightRecord = CreateLightRecord();\r\n}\r\n"],"names":["_EveSpriteLineSet","_identity","EveSpriteLineSet","IEveSpaceObjectAttachment","e","_init_spriteLines","_init_extra_spriteLines","_init_skinned","_init_extra_skinned","_init_effectHash","_init_extra_effectHash","_init_effect","_init_extra_effect","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_lights","_init_extra_lights","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","list","boolean","read","uint32","objectRef","readwrite","string","carbon","method","impl","adapted","implemented","reason","spriteLines","skinned","effectHash","effect","display","name","lights","box3","create","Rebuild","__state","add","CreateItemSetBoundingBoxes","Initialize","GetAabb","out","bones","boneCount","GetItemSetAabb","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","Setup","isSkinned","Add","item","push","SetShaderOption","value","SetOption","AddLightFromSOF","light","EveSpriteLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","_boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","Number","GetLights","lightManager","features","parentBrightness","parentScale","time","GetAnimationTime","quality","GetCurrentSpaceSceneShadowQuality","record","AsPerPointLightData","blinkScale","Blink","blinkRate","blinkPhase","minScale","maxScale","radius","innerRadius","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","CreateLightRecord","constructor"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import { Tr2Light as _Tr2Light } from '../../lights/Tr2Light.js';
|
|
|
14
14
|
import { MatrixCopyFrom3x4, AsPerPointLightData, CreateLightRecord } from '../../lights/lightConversion.js';
|
|
15
15
|
import { TriBatchType } from '#consts/graphics';
|
|
16
16
|
import { num } from '#math/num';
|
|
17
|
-
import { Tr2VertexDefinition } from '../../../core/vertex/Tr2VertexDefinition.js';
|
|
17
|
+
import { Tr2VertexDefinition } from '../../../core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js';
|
|
18
18
|
|
|
19
19
|
let _initProto, _initClass, _init_sprites, _init_extra_sprites, _init_name, _init_extra_name, _init_effect, _init_extra_effect, _init_skinned, _init_extra_skinned, _init_intensity, _init_extra_intensity, _init_display, _init_extra_display, _init_lights, _init_extra_lights;
|
|
20
20
|
|
|
@@ -332,6 +332,8 @@ new class extends _identity {
|
|
|
332
332
|
this.#WritePosition(i, position);
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
|
+
|
|
336
|
+
/** Writes one sprite position as three little-endian floats in the vertex pool. */
|
|
335
337
|
#WritePosition(index, position) {
|
|
336
338
|
const base = index * POOL_VERTEX_SIZE;
|
|
337
339
|
this.#poolView.setFloat32(base, position[0], true);
|
|
@@ -355,7 +357,7 @@ new class extends _identity {
|
|
|
355
357
|
return false;
|
|
356
358
|
}
|
|
357
359
|
box3.transformMat4(aabb, aabb, parentTransform);
|
|
358
|
-
return !!updateContext?.GetFrustum
|
|
360
|
+
return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);
|
|
359
361
|
}
|
|
360
362
|
|
|
361
363
|
/**
|