@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":"EveBannerSet.js","sources":["../../../../../../src/trinity/eve/attachment/banner/EveBannerSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveBannerSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveBannerSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { sph3 } from \"#math/sph3\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\nimport { EveBannerItem } from \"./EveBannerItem.js\";\r\nimport { EveBannerLight } from \"./EveBannerLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Saturate } from \"../EveSpaceObjectAttachmentUtils.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { FLOAT_MAX } from \"../../../core/view/TriFrustum.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\n\r\n/**\r\n * A hull's authored banner quads, owning their static and per-bone bounds, the\r\n * largest single banner radius its LOD is measured on, and the banner lights.\r\n */\r\n@type.define({ className: \"EveBannerSet\", family: \"eve/attachment/banners\" })\r\nexport class EveBannerSet extends IEveSpaceObjectAttachment\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveBannerItem\")\r\n banners = [];\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.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.persist\r\n @type.boolean\r\n isPickable = false;\r\n\r\n @io.readwrite\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.int32\r\n key = 0;\r\n\r\n @io.persist\r\n @type.list(\"EveBannerLight\")\r\n lights = [];\r\n\r\n // SOF-authored primary banner texture parameter; persisted so the values\r\n // interchange reproduces Carbon's hidden banner binding.\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n primaryTextureParameter = null;\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb (h) - the union of every banner that rides the parent transform. */\r\n #staticBounds = box3.create();\r\n\r\n /** m_skinnedBoxes (cpp:403) - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** m_maxBannerRadius (cpp:421) - the largest single banner half-diagonal,\r\n * which is the radius the LOD test measures rather than the whole set. */\r\n #maxBannerRadius = 0;\r\n\r\n /** m_isVisible - the result of the last UpdateVisibility. */\r\n #isVisible = false;\r\n\r\n /** Carbon m_activationStrength (ctor 0, EveBannerSet.cpp:94). Lights are\r\n * BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n /**\r\n * Recomputes the bounds a banner set answers with - the static box, the\r\n * per-bone boxes and the largest single banner half-diagonal - and marks the\r\n * packed geometry stale; a set without an effect builds no bounds at all, so\r\n * it reads as invisible rather than unbounded.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Physical geometry, buffers and batches are backend work; the bounds are\r\n // not. Carbon rebuilds both together (cpp:397-431).\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n\r\n box3.empty(this.#staticBounds);\r\n this.#boneBounds.length = 0;\r\n this.#maxBannerRadius = 0;\r\n\r\n // Carbon bails before building ANY bounds when the set has no effect\r\n // (cpp:406-409) - an effectless banner set is invisible, not unbounded.\r\n if (!this.effect)\r\n {\r\n return;\r\n }\r\n\r\n // Carbon inlines the shared grouping here, and never gates it on a skinned\r\n // flag: any banner with a bone of its own gets its own box (cpp:424).\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, true, this.banners);\r\n\r\n for (const banner of this.banners)\r\n {\r\n banner.GetBounds(EveBannerSet.#bannerScratch);\r\n this.#maxBannerRadius = Math.max(\r\n this.#maxBannerRadius,\r\n box3.radius(EveBannerSet.#bannerScratch)\r\n );\r\n }\r\n }\r\n\r\n /** Carbon EveBannerSet::GetAabb (cpp:392-395): the item-set bounds. The bone\r\n * count is forwarded ungated - a banner set has no skinned flag. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(out, this.#staticBounds, this.#boneBounds, bones, boneCount);\r\n }\r\n\r\n /** The largest single banner half-diagonal, as measured by the last Rebuild. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon reads the m_maxBannerRadius member directly; JavaScript exposes it through an accessor.\")\r\n GetMaxBannerRadius()\r\n {\r\n return this.#maxBannerRadius;\r\n }\r\n\r\n /** The result of the last UpdateVisibility (Carbon m_isVisible). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon reads the m_isVisible member directly; JavaScript exposes it through an accessor.\")\r\n GetVisibility()\r\n {\r\n return this.#isVisible;\r\n }\r\n\r\n /**\r\n * Carbon EveBannerSet::UpdateVisibility (cpp:117-161). The frustum test is the\r\n * usual transformed item-set box, but the LOD gate is unlike any other set:\r\n *\r\n * - It measures the CLOSEST POINT ON THE SET SPHERE to the camera, carrying\r\n * the largest SINGLE banner radius. A row of banners therefore lods out on\r\n * how big one banner looks, not on how big the row is.\r\n * - A camera INSIDE the set sphere skips the gate entirely and leaves the\r\n * screen size at FLT_MAX, which is also what the effect is then told.\r\n * - The bar is HALF the visibility threshold, not the threshold.\r\n *\r\n * The effect is told the screen size on EVERY path, culled or not, because it\r\n * drives texture streaming rather than drawing.\r\n */\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(EveBannerSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n this.#isVisible = false;\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n\r\n const frustum = updateContext?.GetFrustum?.() ?? null;\r\n this.#isVisible = !!frustum?.IsBoxVisible(aabb);\r\n\r\n let isLoddedOut = true;\r\n let screenSize = FLOAT_MAX;\r\n\r\n if (frustum)\r\n {\r\n // Carbon BoundingSphereFromBox: the box centre with half its full\r\n // diagonal. The centre is written into the sphere in place, so the radius\r\n // is assigned after - never inside a sph3.set that would clear it.\r\n const sphere = EveBannerSet.#sphereScratch;\r\n sphere[3] = box3.toPositionRadius(aabb, sph3.$position(sphere));\r\n\r\n if (sph3.containsPoint(sphere, frustum.viewPos))\r\n {\r\n isLoddedOut = false;\r\n }\r\n else\r\n {\r\n // The point on the set sphere nearest the camera, given the largest\r\n // single banner as the thing being measured.\r\n const closest = vec3.subtract(EveBannerSet.#closestScratch, frustum.viewPos, sph3.$position(sphere));\r\n vec3.normalize(closest, closest);\r\n vec3.scaleAndAdd(closest, sph3.$position(sphere), closest, sph3.radius(sphere));\r\n\r\n const element = sph3.fromPositionRadius(EveBannerSet.#elementScratch, closest, this.#maxBannerRadius);\r\n screenSize = frustum.GetPixelSizeAccrossEst(element);\r\n if (screenSize > (updateContext.GetVisibilityThreshold?.() ?? 0) * 0.5)\r\n {\r\n isLoddedOut = false;\r\n }\r\n }\r\n }\r\n\r\n this.effect?.UsedWithScreenSize?.(screenSize, this.#maxBannerRadius, EveBannerSet.#uvDensities);\r\n\r\n if (isLoddedOut)\r\n {\r\n this.#isVisible = false;\r\n }\r\n return this.#isVisible;\r\n }\r\n\r\n /** Carbon EveBannerSet::GetDebugOptions (cpp:219-224). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2DebugRendererOptions is an engine-owned set; a Set (add) or an insert duck is accepted.\")\r\n GetDebugOptions(options = new Set())\r\n {\r\n for (const option of EveBannerSet.DebugOptions)\r\n {\r\n if (options?.add) options.add(option);\r\n else options?.insert?.(option);\r\n }\r\n return options;\r\n }\r\n\r\n /**\r\n * Carbon EveBannerSet::RenderDebugInfo (cpp:226-311): three independent\r\n * options, each emitting draw intents onto the injected debug renderer.\r\n *\r\n * \"Banner Sets\" draws every banner TWICE - wireframe then solid - as a\r\n * near-flat box (z +/- 0.005), NOT the half-open bounds box the LOD uses. A\r\n * banner whose bone index is out of range is drawn RED instead of blue, which\r\n * is how a missing bone shows up on screen.\r\n *\r\n * \"Banner Sets Bounds\" draws the item-set box in the parent space, and\r\n * \"Banner Sets Lights\" draws each light twice, inner then outer radius, with\r\n * the saturated authored color - or the texture average color when a primary\r\n * texture parameter is attached, exactly as GetLights decides it.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"ITr2DebugRenderer2 and Tr2DebugObjectReference are engine-owned; the reference collapses to (owner, index) arguments and the Effect enum to its ordinal.\")\r\n RenderDebugInfo(renderer, parentTransform, bones = null, boneCount = 0)\r\n {\r\n if (!renderer) return false;\r\n\r\n if (renderer.HasOption?.(this, \"Banner Sets\"))\r\n {\r\n const transform = EveBannerSet.#debugTransform;\r\n for (let index = 0; index < this.banners.length; index++)\r\n {\r\n const banner = this.banners[index];\r\n mat4.fromRotationTranslationScale(transform, banner.rotation, banner.position, banner.scaling);\r\n\r\n let color = EveBannerSet.#debugBannerColor;\r\n if (banner.bone >= 0)\r\n {\r\n if (bones && banner.bone < boneCount)\r\n {\r\n MatrixCopyFrom3x4(EveBannerSet.#debugBone, bones, banner.bone);\r\n // Carbon (row-vector): t * boneTF - the banner applies first.\r\n mat4.multiply(transform, EveBannerSet.#debugBone, transform);\r\n }\r\n else\r\n {\r\n color = EveBannerSet.#debugMissingBoneColor;\r\n }\r\n }\r\n mat4.multiply(transform, parentTransform, transform);\r\n\r\n renderer.DrawBox?.(this, index, transform, EveBannerSet.#debugBoxMin, EveBannerSet.#debugBoxMax, EveBannerSet.DebugEffect.Wireframe, color);\r\n renderer.DrawBox?.(this, index, transform, EveBannerSet.#debugBoxMin, EveBannerSet.#debugBoxMax, EveBannerSet.DebugEffect.Solid, 0);\r\n }\r\n }\r\n\r\n if (renderer.HasOption?.(this, \"Banner Sets Bounds\"))\r\n {\r\n const aabb = this.GetAabb(EveBannerSet.#debugBounds, bones, boneCount);\r\n renderer.DrawBox?.(this, -1, parentTransform, box3.$min(aabb), box3.$max(aabb), EveBannerSet.DebugEffect.Wireframe, 0xff00ff00);\r\n }\r\n\r\n if (renderer.HasOption?.(this, \"Banner Sets Lights\"))\r\n {\r\n const color = EveBannerSet.#debugLightColor;\r\n for (const light of this.lights)\r\n {\r\n const transform = mat4.fromTranslation(EveBannerSet.#debugTransform, light.lightData.position);\r\n // Carbon (row-vector): TranslationMatrix(position) * boneMatrix.\r\n mat4.multiply(transform, light.boneMatrix, transform);\r\n\r\n if (this.primaryTextureParameter)\r\n {\r\n this.GetAverageColor(color);\r\n }\r\n else\r\n {\r\n Saturate(color, light.lightData.color, light.saturation);\r\n }\r\n\r\n color[3] = 0.5;\r\n renderer.DrawSphere?.(this, light.index, transform, light.lightData.innerRadius, 10, EveBannerSet.DebugEffect.Solid, color);\r\n color[3] = 0.3;\r\n renderer.DrawSphere?.(this, light.index, transform, light.lightData.radius, 10, EveBannerSet.DebugEffect.Solid, color);\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * The SOF reference id of the banner at an index, which is how a caller maps a\r\n * picked banner back to its authored slot.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetReference(index)\r\n {\r\n return this.banners[index].reference;\r\n }\r\n\r\n /** Measures the generated banner surface exactly as Carbon does: flat\r\n * banners use authored X/Y scale, while curved banners sum the same\r\n * approximately five-degree transformed arc chords used by geometry\r\n * generation. */\r\n @carbon.method\r\n @impl.implemented\r\n static GetBannerAspectRatio(banner)\r\n {\r\n const flatX = banner.angleX <= 0;\r\n const flatY = banner.angleY <= 0;\r\n if (flatX && flatY)\r\n {\r\n return banner.scaling[0] / banner.scaling[1];\r\n }\r\n\r\n const transform = mat4.fromRotationTranslationScale(\r\n EveBannerSet.#aspectTransform,\r\n banner.rotation,\r\n banner.position,\r\n banner.scaling\r\n );\r\n if (flatX)\r\n {\r\n const angleY = EveBannerSet.#clampBannerAngle(banner.angleY);\r\n const halfAngleY = angleY / 180 * Math.PI / 2;\r\n const scaleY = 0.5 / Math.sin(halfAngleY);\r\n const vLength = EveBannerSet.#measureVerticalArc(transform, angleY, halfAngleY, scaleY, scaleY);\r\n return banner.scaling[0] / vLength;\r\n }\r\n if (flatY)\r\n {\r\n const angleX = EveBannerSet.#clampBannerAngle(banner.angleX);\r\n const halfAngleX = angleX / 180 * Math.PI / 2;\r\n const scaleX = 0.5 / Math.sin(halfAngleX);\r\n const uLength = EveBannerSet.#measureHorizontalArc(transform, angleX, halfAngleX, scaleX, scaleX);\r\n return uLength / banner.scaling[1];\r\n }\r\n\r\n const angleX = EveBannerSet.#clampBannerAngle(banner.angleX);\r\n const angleY = EveBannerSet.#clampBannerAngle(banner.angleY);\r\n const halfAngleX = angleX / 180 * Math.PI / 2;\r\n const halfAngleY = angleY / 180 * Math.PI / 2;\r\n const scaleX = 0.5 / Math.sin(halfAngleX);\r\n const scaleY = 0.5 / Math.sin(halfAngleY);\r\n const scaleZ = Math.min(scaleX, scaleY);\r\n const uLength = EveBannerSet.#measureHorizontalArc(transform, angleX, halfAngleX, scaleX, scaleZ);\r\n const vLength = EveBannerSet.#measureVerticalArc(transform, angleY, halfAngleY, scaleY, scaleZ);\r\n return uLength / vLength;\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 * Copies a loose banner description into a stored EveBannerItem, appends it\r\n * and returns the copy; the source object is not retained.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddBanner(banner)\r\n {\r\n const copy = EveBannerSet.#copyBanner(banner);\r\n this.banners.push(copy);\r\n return copy;\r\n }\r\n\r\n /**\r\n * Sets the effect that draws the banners; without one Rebuild produces no\r\n * bounds and the set never draws.\r\n */\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 /** Sets the banner key that the set's picking id is derived from. */\r\n @carbon.method\r\n @impl.implemented\r\n SetKey(key)\r\n {\r\n this.key = Number(key) | 0;\r\n }\r\n\r\n /** The picking id this set writes, which is 101 plus the authored key. */\r\n @carbon.method\r\n @impl.implemented\r\n GetPickingID()\r\n {\r\n return (101 + this.key) >>> 0;\r\n }\r\n\r\n /**\r\n * Sets a shader option on the banner 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 texture parameter whose average colour replaces the authored colour\r\n * of every banner light.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetPrimaryTextureParameter(parameter)\r\n {\r\n this.primaryTextureParameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveBannerLight 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(EveBannerLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveBannerSet::RegisterComponents (cpp:457-464): LightOwner\r\n * UNCONDITIONAL (no lights-empty check, unlike the other packed sets -\r\n * GetLights self-gates on display/lights instead, cpp:468). */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveBannerSet::UpdateLights (cpp:164-183): 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 banners). */\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 EveBannerSet::GetAverageColor (cpp:441-455): the PRIMARY texture\r\n * parameter's average color, (0,0,0,0) when the map or resource is\r\n * missing (contrast EvePlaneSet's white default and four-map product). */\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, zero when absent.\")\r\n GetAverageColor(out = new Float32Array(4))\r\n {\r\n const average = this.primaryTextureParameter?.GetResource?.()?.GetAverageColor?.();\r\n if (average)\r\n {\r\n out[0] = average[0];\r\n out[1] = average[1];\r\n out[2] = average[2];\r\n out[3] = average[3];\r\n }\r\n else\r\n {\r\n out.fill(0);\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon EveBannerSet::GetLights (cpp:466-491): the ONLY packed set with\r\n * a display gate in GetLights (its registration is unconditional,\r\n * cpp:457-464); an averageColor with zero alpha submits NOTHING (texture\r\n * not loaded yet, cpp:474-477); the loop iterates BY VALUE (`auto light`,\r\n * cpp:482) - the authored color is REPLACED entirely by\r\n * Saturate(averageColor, saturation) on a scratch copy (cpp:484 -\r\n * contrast EvePlaneSet's multiply); no blink/fade; point conversion on\r\n * the bone matrix. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The texture average color and profile packing follow the adapted ducks above.\")\r\n GetLights(lightManager)\r\n {\r\n if (!this.display || this.lights.length === 0)\r\n {\r\n return;\r\n }\r\n const averageColor = EveBannerSet.#averageColorScratch;\r\n this.GetAverageColor(averageColor);\r\n if (averageColor[3] === 0)\r\n {\r\n return;\r\n }\r\n\r\n const features = EveBannerSet.#features;\r\n features.parentBrightness = this.#activationStrength;\r\n features.parentScale = 1;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveBannerSet.#lightRecord;\r\n const dataCopy = EveBannerSet.#lightDataScratch;\r\n\r\n for (const light of this.lights)\r\n {\r\n CopyLightData(dataCopy, light.lightData);\r\n Saturate(dataCopy.color, averageColor, light.saturation);\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 /** Carbon ITr2DebugRenderer2::Effect (Include/ITr2DebugRenderer2.h:134-139). */\r\n static DebugEffect = Object.freeze({ Wireframe: 0, Solid: 1, Lit: 2 });\r\n\r\n /** The option names this set publishes (cpp:221-223). */\r\n static DebugOptions = Object.freeze([\"Banner Sets\", \"Banner Sets Bounds\", \"Banner Sets Lights\"]);\r\n\r\n static #debugTransform = mat4.create();\r\n\r\n static #debugBone = mat4.create();\r\n\r\n static #debugBounds = box3.create();\r\n\r\n static #debugLightColor = new Float32Array(4);\r\n\r\n static #debugBoxMin = Object.freeze([-0.5, -0.5, -0.005]);\r\n\r\n static #debugBoxMax = Object.freeze([0.5, 0.5, 0.005]);\r\n\r\n static #debugBannerColor = Object.freeze([0.1, 0.1, 0.7, 0.5]);\r\n\r\n static #debugMissingBoneColor = Object.freeze([0.7, 0.1, 0.1, 0.5]);\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #sphereScratch = sph3.create();\r\n\r\n static #elementScratch = sph3.create();\r\n\r\n static #closestScratch = vec3.create();\r\n\r\n static #bannerScratch = box3.create();\r\n\r\n /** Carbon passes a single 1.0 density (cpp:154) - a banner is one flat quad. */\r\n static #uvDensities = Object.freeze([1]);\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\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 static #aspectTransform = mat4.create();\r\n\r\n static #aspectPosition = vec3.create();\r\n\r\n static #aspectPreviousPosition = vec3.create();\r\n\r\n /**\r\n * Clamps an authored curvature angle to the 0..180 degree range the arc\r\n * measurement assumes.\r\n */\r\n static #clampBannerAngle(angle)\r\n {\r\n return Math.max(0, Math.min(Number(angle), 180));\r\n }\r\n\r\n /**\r\n * Sums the transformed chord lengths of the horizontal curvature arc, sampled\r\n * at roughly one segment per five degrees, giving the banner's real U length\r\n * as the generated geometry would have it.\r\n */\r\n static #measureHorizontalArc(transform, angle, halfAngle, scaleX, scaleZ)\r\n {\r\n const segments = 1 + Math.floor(angle / 5);\r\n const position = EveBannerSet.#aspectPosition;\r\n const previous = EveBannerSet.#aspectPreviousPosition;\r\n let length = 0;\r\n\r\n for (let index = 0; index <= segments; index++)\r\n {\r\n const value = index / segments;\r\n const sampleAngle = -halfAngle + value * 2 * halfAngle;\r\n vec3.set(\r\n position,\r\n Math.sin(sampleAngle) * scaleX,\r\n 0,\r\n (Math.cos(sampleAngle) - 1) * scaleZ\r\n );\r\n vec3.transformMat4(position, position, transform);\r\n if (index) length += vec3.distance(previous, position);\r\n vec3.copy(previous, position);\r\n }\r\n return length;\r\n }\r\n\r\n /**\r\n * Sums the transformed chord lengths of the vertical curvature arc, sampled at\r\n * roughly one segment per five degrees, giving the banner's real V length as\r\n * the generated geometry would have it.\r\n */\r\n static #measureVerticalArc(transform, angle, halfAngle, scaleY, scaleZ)\r\n {\r\n const segments = 1 + Math.floor(angle / 5);\r\n const position = EveBannerSet.#aspectPosition;\r\n const previous = EveBannerSet.#aspectPreviousPosition;\r\n let length = 0;\r\n\r\n for (let index = 0; index <= segments; index++)\r\n {\r\n const value = index / segments;\r\n const sampleAngle = -halfAngle + value * 2 * halfAngle + Math.PI / 2;\r\n vec3.set(\r\n position,\r\n 0,\r\n Math.cos(sampleAngle) * scaleY,\r\n (Math.sin(sampleAngle) - 1) * scaleZ\r\n );\r\n vec3.transformMat4(position, position, transform);\r\n if (index) length += vec3.distance(previous, position);\r\n vec3.copy(previous, position);\r\n }\r\n return length;\r\n }\r\n\r\n /**\r\n * Builds an EveBannerItem from a loose banner description, leaving the item's\r\n * own default in place for every field the source omits.\r\n */\r\n static #copyBanner(source)\r\n {\r\n const banner = new EveBannerItem();\r\n if (!source) return banner;\r\n banner.bone = Number(source.bone ?? -1) | 0;\r\n vec3.copy(banner.position, source.position ?? banner.position);\r\n quat.copy(banner.rotation, source.rotation ?? banner.rotation);\r\n vec3.copy(banner.scaling, source.scaling ?? banner.scaling);\r\n banner.angleX = Number(source.angleX ?? 0);\r\n banner.angleY = Number(source.angleY ?? 0);\r\n banner.reference = Number(source.reference ?? 0) | 0;\r\n return banner;\r\n }\r\n\r\n}\r\n"],"names":["_EveBannerSet","_identity","EveBannerSet","IEveSpaceObjectAttachment","e","_init_banners","_init_extra_banners","_init_name","_init_extra_name","_init_effect","_init_extra_effect","_init_isPickable","_init_extra_isPickable","_init_display","_init_extra_display","_init_key","_init_extra_key","_init_lights","_init_extra_lights","_init_primaryTextureParameter","_init_extra_primaryTextureParameter","_initProto","_initStatic","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","list","string","objectRef","boolean","readwrite","int32","carbon","method","impl","adapted","implemented","reason","banners","name","effect","isPickable","display","key","lights","primaryTextureParameter","box3","create","Rebuild","__state","add","empty","length","CreateItemSetBoundingBoxes","banner","GetBounds","Math","max","radius","GetAabb","out","bones","boneCount","GetItemSetAabb","GetMaxBannerRadius","GetVisibility","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","frustum","GetFrustum","IsBoxVisible","isLoddedOut","screenSize","FLOAT_MAX","sphere","toPositionRadius","sph3","$position","containsPoint","viewPos","closest","vec3","subtract","normalize","scaleAndAdd","element","fromPositionRadius","GetPixelSizeAccrossEst","GetVisibilityThreshold","UsedWithScreenSize","GetDebugOptions","options","Set","option","DebugOptions","insert","RenderDebugInfo","renderer","HasOption","transform","index","mat4","fromRotationTranslationScale","rotation","position","scaling","color","bone","MatrixCopyFrom3x4","multiply","DrawBox","DebugEffect","Wireframe","Solid","$min","$max","light","fromTranslation","lightData","boneMatrix","GetAverageColor","Saturate","saturation","DrawSphere","innerRadius","GetReference","reference","GetBannerAspectRatio","flatX","angleX","flatY","angleY","halfAngleY","PI","scaleY","sin","vLength","halfAngleX","scaleX","uLength","scaleZ","min","Initialize","AddBanner","copy","push","SetEffect","SetKey","Number","GetPickingID","SetShaderOption","value","SetOption","SetPrimaryTextureParameter","parameter","AddLightFromSOF","EveBannerLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","_boosterGain","boneIndex","Float32Array","average","GetResource","fill","GetLights","lightManager","averageColor","features","parentBrightness","parentScale","quality","GetCurrentSpaceSceneShadowQuality","record","dataCopy","CopyLightData","AsPerPointLightData","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","Object","freeze","Lit","CreateLightRecord","CreateLightDataScratch","#clampBannerAngle","angle","#measureHorizontalArc","halfAngle","segments","floor","previous","sampleAngle","set","cos","distance","#measureVerticalArc","#copyBanner","source","EveBannerItem","quat","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveBannerSet.js","sources":["../../../../../../src/trinity/eve/attachment/banner/EveBannerSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveBannerSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveBannerSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { sph3 } from \"#math/sph3\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\nimport { EveBannerItem } from \"./EveBannerItem.js\";\r\nimport { EveBannerLight } from \"./EveBannerLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Saturate } from \"../EveSpaceObjectAttachmentUtils.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { FLOAT_MAX } from \"../../../core/view/TriFrustum.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\n\r\n/**\r\n * A hull's authored banner quads, owning their static and per-bone bounds, the\r\n * largest single banner radius its LOD is measured on, and the banner lights.\r\n */\r\n@type.define({ className: \"EveBannerSet\", family: \"eve/attachment/banners\" })\r\nexport class EveBannerSet extends IEveSpaceObjectAttachment\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveBannerItem\")\r\n banners = [];\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.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.persist\r\n @type.boolean\r\n isPickable = false;\r\n\r\n @io.readwrite\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.int32\r\n key = 0;\r\n\r\n @io.persist\r\n @type.list(\"EveBannerLight\")\r\n lights = [];\r\n\r\n // SOF-authored primary banner texture parameter; persisted so the values\r\n // interchange reproduces Carbon's hidden banner binding.\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n primaryTextureParameter = null;\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb (h) - the union of every banner that rides the parent transform. */\r\n #staticBounds = box3.create();\r\n\r\n /** m_skinnedBoxes (cpp:403) - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** m_maxBannerRadius (cpp:421) - the largest single banner half-diagonal,\r\n * which is the radius the LOD test measures rather than the whole set. */\r\n #maxBannerRadius = 0;\r\n\r\n /** m_isVisible - the result of the last UpdateVisibility. */\r\n #isVisible = false;\r\n\r\n /** Carbon m_activationStrength (ctor 0, EveBannerSet.cpp:94). Lights are\r\n * BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n /**\r\n * Recomputes the bounds a banner set answers with - the static box, the\r\n * per-bone boxes and the largest single banner half-diagonal - and marks the\r\n * packed geometry stale; a set without an effect builds no bounds at all, so\r\n * it reads as invisible rather than unbounded.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Physical geometry, buffers and batches are backend work; the bounds are\r\n // not. Carbon rebuilds both together (cpp:397-431).\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n\r\n box3.empty(this.#staticBounds);\r\n this.#boneBounds.length = 0;\r\n this.#maxBannerRadius = 0;\r\n\r\n // Carbon bails before building ANY bounds when the set has no effect\r\n // (cpp:406-409) - an effectless banner set is invisible, not unbounded.\r\n if (!this.effect)\r\n {\r\n return;\r\n }\r\n\r\n // Carbon inlines the shared grouping here, and never gates it on a skinned\r\n // flag: any banner with a bone of its own gets its own box (cpp:424).\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, true, this.banners);\r\n\r\n for (const banner of this.banners)\r\n {\r\n banner.GetBounds(EveBannerSet.#bannerScratch);\r\n this.#maxBannerRadius = Math.max(\r\n this.#maxBannerRadius,\r\n box3.radius(EveBannerSet.#bannerScratch)\r\n );\r\n }\r\n }\r\n\r\n /** Carbon EveBannerSet::GetAabb (cpp:392-395): the item-set bounds. The bone\r\n * count is forwarded ungated - a banner set has no skinned flag. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(out, this.#staticBounds, this.#boneBounds, bones, boneCount);\r\n }\r\n\r\n /** The largest single banner half-diagonal, as measured by the last Rebuild. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon reads the m_maxBannerRadius member directly; JavaScript exposes it through an accessor.\")\r\n GetMaxBannerRadius()\r\n {\r\n return this.#maxBannerRadius;\r\n }\r\n\r\n /** The result of the last UpdateVisibility (Carbon m_isVisible). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon reads the m_isVisible member directly; JavaScript exposes it through an accessor.\")\r\n GetVisibility()\r\n {\r\n return this.#isVisible;\r\n }\r\n\r\n /**\r\n * Carbon EveBannerSet::UpdateVisibility (cpp:117-161). The frustum test is the\r\n * usual transformed item-set box, but the LOD gate is unlike any other set:\r\n *\r\n * - It measures the CLOSEST POINT ON THE SET SPHERE to the camera, carrying\r\n * the largest SINGLE banner radius. A row of banners therefore lods out on\r\n * how big one banner looks, not on how big the row is.\r\n * - A camera INSIDE the set sphere skips the gate entirely and leaves the\r\n * screen size at FLT_MAX, which is also what the effect is then told.\r\n * - The bar is HALF the visibility threshold, not the threshold.\r\n *\r\n * The effect is told the screen size on EVERY path, culled or not, because it\r\n * drives texture streaming rather than drawing.\r\n */\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(EveBannerSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n this.#isVisible = false;\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n\r\n const frustum = updateContext?.GetFrustum() ?? null;\r\n this.#isVisible = !!frustum?.IsBoxVisible(aabb);\r\n\r\n let isLoddedOut = true;\r\n let screenSize = FLOAT_MAX;\r\n\r\n if (frustum)\r\n {\r\n // Carbon BoundingSphereFromBox: the box centre with half its full\r\n // diagonal. The centre is written into the sphere in place, so the radius\r\n // is assigned after - never inside a sph3.set that would clear it.\r\n const sphere = EveBannerSet.#sphereScratch;\r\n sphere[3] = box3.toPositionRadius(aabb, sph3.$position(sphere));\r\n\r\n if (sph3.containsPoint(sphere, frustum.viewPos))\r\n {\r\n isLoddedOut = false;\r\n }\r\n else\r\n {\r\n // The point on the set sphere nearest the camera, given the largest\r\n // single banner as the thing being measured.\r\n const closest = vec3.subtract(EveBannerSet.#closestScratch, frustum.viewPos, sph3.$position(sphere));\r\n vec3.normalize(closest, closest);\r\n vec3.scaleAndAdd(closest, sph3.$position(sphere), closest, sph3.radius(sphere));\r\n\r\n const element = sph3.fromPositionRadius(EveBannerSet.#elementScratch, closest, this.#maxBannerRadius);\r\n screenSize = frustum.GetPixelSizeAccrossEst(element);\r\n if (screenSize > (updateContext.GetVisibilityThreshold() ?? 0) * 0.5)\r\n {\r\n isLoddedOut = false;\r\n }\r\n }\r\n }\r\n\r\n this.effect?.UsedWithScreenSize?.(screenSize, this.#maxBannerRadius, EveBannerSet.#uvDensities);\r\n\r\n if (isLoddedOut)\r\n {\r\n this.#isVisible = false;\r\n }\r\n return this.#isVisible;\r\n }\r\n\r\n /** Carbon EveBannerSet::GetDebugOptions (cpp:219-224). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2DebugRendererOptions is an engine-owned set; a Set (add) or an insert duck is accepted.\")\r\n GetDebugOptions(options = new Set())\r\n {\r\n for (const option of EveBannerSet.DebugOptions)\r\n {\r\n if (options?.add) options.add(option);\r\n else options?.insert?.(option);\r\n }\r\n return options;\r\n }\r\n\r\n /**\r\n * Carbon EveBannerSet::RenderDebugInfo (cpp:226-311): three independent\r\n * options, each emitting draw intents onto the injected debug renderer.\r\n *\r\n * \"Banner Sets\" draws every banner TWICE - wireframe then solid - as a\r\n * near-flat box (z +/- 0.005), NOT the half-open bounds box the LOD uses. A\r\n * banner whose bone index is out of range is drawn RED instead of blue, which\r\n * is how a missing bone shows up on screen.\r\n *\r\n * \"Banner Sets Bounds\" draws the item-set box in the parent space, and\r\n * \"Banner Sets Lights\" draws each light twice, inner then outer radius, with\r\n * the saturated authored color - or the texture average color when a primary\r\n * texture parameter is attached, exactly as GetLights decides it.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"ITr2DebugRenderer2 and Tr2DebugObjectReference are engine-owned; the reference collapses to (owner, index) arguments and the Effect enum to its ordinal.\")\r\n RenderDebugInfo(renderer, parentTransform, bones = null, boneCount = 0)\r\n {\r\n if (!renderer) return false;\r\n\r\n if (renderer.HasOption?.(this, \"Banner Sets\"))\r\n {\r\n const transform = EveBannerSet.#debugTransform;\r\n for (let index = 0; index < this.banners.length; index++)\r\n {\r\n const banner = this.banners[index];\r\n mat4.fromRotationTranslationScale(transform, banner.rotation, banner.position, banner.scaling);\r\n\r\n let color = EveBannerSet.#debugBannerColor;\r\n if (banner.bone >= 0)\r\n {\r\n if (bones && banner.bone < boneCount)\r\n {\r\n MatrixCopyFrom3x4(EveBannerSet.#debugBone, bones, banner.bone);\r\n // Carbon (row-vector): t * boneTF - the banner applies first.\r\n mat4.multiply(transform, EveBannerSet.#debugBone, transform);\r\n }\r\n else\r\n {\r\n color = EveBannerSet.#debugMissingBoneColor;\r\n }\r\n }\r\n mat4.multiply(transform, parentTransform, transform);\r\n\r\n renderer.DrawBox?.(this, index, transform, EveBannerSet.#debugBoxMin, EveBannerSet.#debugBoxMax, EveBannerSet.DebugEffect.Wireframe, color);\r\n renderer.DrawBox?.(this, index, transform, EveBannerSet.#debugBoxMin, EveBannerSet.#debugBoxMax, EveBannerSet.DebugEffect.Solid, 0);\r\n }\r\n }\r\n\r\n if (renderer.HasOption?.(this, \"Banner Sets Bounds\"))\r\n {\r\n const aabb = this.GetAabb(EveBannerSet.#debugBounds, bones, boneCount);\r\n renderer.DrawBox?.(this, -1, parentTransform, box3.$min(aabb), box3.$max(aabb), EveBannerSet.DebugEffect.Wireframe, 0xff00ff00);\r\n }\r\n\r\n if (renderer.HasOption?.(this, \"Banner Sets Lights\"))\r\n {\r\n const color = EveBannerSet.#debugLightColor;\r\n for (const light of this.lights)\r\n {\r\n const transform = mat4.fromTranslation(EveBannerSet.#debugTransform, light.lightData.position);\r\n // Carbon (row-vector): TranslationMatrix(position) * boneMatrix.\r\n mat4.multiply(transform, light.boneMatrix, transform);\r\n\r\n if (this.primaryTextureParameter)\r\n {\r\n this.GetAverageColor(color);\r\n }\r\n else\r\n {\r\n Saturate(color, light.lightData.color, light.saturation);\r\n }\r\n\r\n color[3] = 0.5;\r\n renderer.DrawSphere?.(this, light.index, transform, light.lightData.innerRadius, 10, EveBannerSet.DebugEffect.Solid, color);\r\n color[3] = 0.3;\r\n renderer.DrawSphere?.(this, light.index, transform, light.lightData.radius, 10, EveBannerSet.DebugEffect.Solid, color);\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * The SOF reference id of the banner at an index, which is how a caller maps a\r\n * picked banner back to its authored slot.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetReference(index)\r\n {\r\n return this.banners[index].reference;\r\n }\r\n\r\n /** Measures the generated banner surface exactly as Carbon does: flat\r\n * banners use authored X/Y scale, while curved banners sum the same\r\n * approximately five-degree transformed arc chords used by geometry\r\n * generation. */\r\n @carbon.method\r\n @impl.implemented\r\n static GetBannerAspectRatio(banner)\r\n {\r\n const flatX = banner.angleX <= 0;\r\n const flatY = banner.angleY <= 0;\r\n if (flatX && flatY)\r\n {\r\n return banner.scaling[0] / banner.scaling[1];\r\n }\r\n\r\n const transform = mat4.fromRotationTranslationScale(\r\n EveBannerSet.#aspectTransform,\r\n banner.rotation,\r\n banner.position,\r\n banner.scaling\r\n );\r\n if (flatX)\r\n {\r\n const angleY = EveBannerSet.#clampBannerAngle(banner.angleY);\r\n const halfAngleY = angleY / 180 * Math.PI / 2;\r\n const scaleY = 0.5 / Math.sin(halfAngleY);\r\n const vLength = EveBannerSet.#measureVerticalArc(transform, angleY, halfAngleY, scaleY, scaleY);\r\n return banner.scaling[0] / vLength;\r\n }\r\n if (flatY)\r\n {\r\n const angleX = EveBannerSet.#clampBannerAngle(banner.angleX);\r\n const halfAngleX = angleX / 180 * Math.PI / 2;\r\n const scaleX = 0.5 / Math.sin(halfAngleX);\r\n const uLength = EveBannerSet.#measureHorizontalArc(transform, angleX, halfAngleX, scaleX, scaleX);\r\n return uLength / banner.scaling[1];\r\n }\r\n\r\n const angleX = EveBannerSet.#clampBannerAngle(banner.angleX);\r\n const angleY = EveBannerSet.#clampBannerAngle(banner.angleY);\r\n const halfAngleX = angleX / 180 * Math.PI / 2;\r\n const halfAngleY = angleY / 180 * Math.PI / 2;\r\n const scaleX = 0.5 / Math.sin(halfAngleX);\r\n const scaleY = 0.5 / Math.sin(halfAngleY);\r\n const scaleZ = Math.min(scaleX, scaleY);\r\n const uLength = EveBannerSet.#measureHorizontalArc(transform, angleX, halfAngleX, scaleX, scaleZ);\r\n const vLength = EveBannerSet.#measureVerticalArc(transform, angleY, halfAngleY, scaleY, scaleZ);\r\n return uLength / vLength;\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 * Copies a loose banner description into a stored EveBannerItem, appends it\r\n * and returns the copy; the source object is not retained.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddBanner(banner)\r\n {\r\n const copy = EveBannerSet.#copyBanner(banner);\r\n this.banners.push(copy);\r\n return copy;\r\n }\r\n\r\n /**\r\n * Sets the effect that draws the banners; without one Rebuild produces no\r\n * bounds and the set never draws.\r\n */\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 /** Sets the banner key that the set's picking id is derived from. */\r\n @carbon.method\r\n @impl.implemented\r\n SetKey(key)\r\n {\r\n this.key = Number(key) | 0;\r\n }\r\n\r\n /** The picking id this set writes, which is 101 plus the authored key. */\r\n @carbon.method\r\n @impl.implemented\r\n GetPickingID()\r\n {\r\n return (101 + this.key) >>> 0;\r\n }\r\n\r\n /**\r\n * Sets a shader option on the banner 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 texture parameter whose average colour replaces the authored colour\r\n * of every banner light.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetPrimaryTextureParameter(parameter)\r\n {\r\n this.primaryTextureParameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveBannerLight 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(EveBannerLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveBannerSet::RegisterComponents (cpp:457-464): LightOwner\r\n * UNCONDITIONAL (no lights-empty check, unlike the other packed sets -\r\n * GetLights self-gates on display/lights instead, cpp:468). */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveBannerSet::UpdateLights (cpp:164-183): 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 banners). */\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 EveBannerSet::GetAverageColor (cpp:441-455): the PRIMARY texture\r\n * parameter's average color, (0,0,0,0) when the map or resource is\r\n * missing (contrast EvePlaneSet's white default and four-map product). */\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, zero when absent.\")\r\n GetAverageColor(out = new Float32Array(4))\r\n {\r\n const average = this.primaryTextureParameter?.GetResource?.()?.GetAverageColor?.();\r\n if (average)\r\n {\r\n out[0] = average[0];\r\n out[1] = average[1];\r\n out[2] = average[2];\r\n out[3] = average[3];\r\n }\r\n else\r\n {\r\n out.fill(0);\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon EveBannerSet::GetLights (cpp:466-491): the ONLY packed set with\r\n * a display gate in GetLights (its registration is unconditional,\r\n * cpp:457-464); an averageColor with zero alpha submits NOTHING (texture\r\n * not loaded yet, cpp:474-477); the loop iterates BY VALUE (`auto light`,\r\n * cpp:482) - the authored color is REPLACED entirely by\r\n * Saturate(averageColor, saturation) on a scratch copy (cpp:484 -\r\n * contrast EvePlaneSet's multiply); no blink/fade; point conversion on\r\n * the bone matrix. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The texture average color and profile packing follow the adapted ducks above.\")\r\n GetLights(lightManager)\r\n {\r\n if (!this.display || this.lights.length === 0)\r\n {\r\n return;\r\n }\r\n const averageColor = EveBannerSet.#averageColorScratch;\r\n this.GetAverageColor(averageColor);\r\n if (averageColor[3] === 0)\r\n {\r\n return;\r\n }\r\n\r\n const features = EveBannerSet.#features;\r\n features.parentBrightness = this.#activationStrength;\r\n features.parentScale = 1;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveBannerSet.#lightRecord;\r\n const dataCopy = EveBannerSet.#lightDataScratch;\r\n\r\n for (const light of this.lights)\r\n {\r\n CopyLightData(dataCopy, light.lightData);\r\n Saturate(dataCopy.color, averageColor, light.saturation);\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 /** Carbon ITr2DebugRenderer2::Effect (Include/ITr2DebugRenderer2.h:134-139). */\r\n static DebugEffect = Object.freeze({ Wireframe: 0, Solid: 1, Lit: 2 });\r\n\r\n /** The option names this set publishes (cpp:221-223). */\r\n static DebugOptions = Object.freeze([\"Banner Sets\", \"Banner Sets Bounds\", \"Banner Sets Lights\"]);\r\n\r\n static #debugTransform = mat4.create();\r\n\r\n static #debugBone = mat4.create();\r\n\r\n static #debugBounds = box3.create();\r\n\r\n static #debugLightColor = new Float32Array(4);\r\n\r\n static #debugBoxMin = Object.freeze([-0.5, -0.5, -0.005]);\r\n\r\n static #debugBoxMax = Object.freeze([0.5, 0.5, 0.005]);\r\n\r\n static #debugBannerColor = Object.freeze([0.1, 0.1, 0.7, 0.5]);\r\n\r\n static #debugMissingBoneColor = Object.freeze([0.7, 0.1, 0.1, 0.5]);\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #sphereScratch = sph3.create();\r\n\r\n static #elementScratch = sph3.create();\r\n\r\n static #closestScratch = vec3.create();\r\n\r\n static #bannerScratch = box3.create();\r\n\r\n /** Carbon passes a single 1.0 density (cpp:154) - a banner is one flat quad. */\r\n static #uvDensities = Object.freeze([1]);\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\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 static #aspectTransform = mat4.create();\r\n\r\n static #aspectPosition = vec3.create();\r\n\r\n static #aspectPreviousPosition = vec3.create();\r\n\r\n /**\r\n * Clamps an authored curvature angle to the 0..180 degree range the arc\r\n * measurement assumes.\r\n */\r\n static #clampBannerAngle(angle)\r\n {\r\n return Math.max(0, Math.min(Number(angle), 180));\r\n }\r\n\r\n /**\r\n * Sums the transformed chord lengths of the horizontal curvature arc, sampled\r\n * at roughly one segment per five degrees, giving the banner's real U length\r\n * as the generated geometry would have it.\r\n */\r\n static #measureHorizontalArc(transform, angle, halfAngle, scaleX, scaleZ)\r\n {\r\n const segments = 1 + Math.floor(angle / 5);\r\n const position = EveBannerSet.#aspectPosition;\r\n const previous = EveBannerSet.#aspectPreviousPosition;\r\n let length = 0;\r\n\r\n for (let index = 0; index <= segments; index++)\r\n {\r\n const value = index / segments;\r\n const sampleAngle = -halfAngle + value * 2 * halfAngle;\r\n vec3.set(\r\n position,\r\n Math.sin(sampleAngle) * scaleX,\r\n 0,\r\n (Math.cos(sampleAngle) - 1) * scaleZ\r\n );\r\n vec3.transformMat4(position, position, transform);\r\n if (index) length += vec3.distance(previous, position);\r\n vec3.copy(previous, position);\r\n }\r\n return length;\r\n }\r\n\r\n /**\r\n * Sums the transformed chord lengths of the vertical curvature arc, sampled at\r\n * roughly one segment per five degrees, giving the banner's real V length as\r\n * the generated geometry would have it.\r\n */\r\n static #measureVerticalArc(transform, angle, halfAngle, scaleY, scaleZ)\r\n {\r\n const segments = 1 + Math.floor(angle / 5);\r\n const position = EveBannerSet.#aspectPosition;\r\n const previous = EveBannerSet.#aspectPreviousPosition;\r\n let length = 0;\r\n\r\n for (let index = 0; index <= segments; index++)\r\n {\r\n const value = index / segments;\r\n const sampleAngle = -halfAngle + value * 2 * halfAngle + Math.PI / 2;\r\n vec3.set(\r\n position,\r\n 0,\r\n Math.cos(sampleAngle) * scaleY,\r\n (Math.sin(sampleAngle) - 1) * scaleZ\r\n );\r\n vec3.transformMat4(position, position, transform);\r\n if (index) length += vec3.distance(previous, position);\r\n vec3.copy(previous, position);\r\n }\r\n return length;\r\n }\r\n\r\n /**\r\n * Builds an EveBannerItem from a loose banner description, leaving the item's\r\n * own default in place for every field the source omits.\r\n */\r\n static #copyBanner(source)\r\n {\r\n const banner = new EveBannerItem();\r\n if (!source) return banner;\r\n banner.bone = Number(source.bone ?? -1) | 0;\r\n vec3.copy(banner.position, source.position ?? banner.position);\r\n quat.copy(banner.rotation, source.rotation ?? banner.rotation);\r\n vec3.copy(banner.scaling, source.scaling ?? banner.scaling);\r\n banner.angleX = Number(source.angleX ?? 0);\r\n banner.angleY = Number(source.angleY ?? 0);\r\n banner.reference = Number(source.reference ?? 0) | 0;\r\n return banner;\r\n }\r\n\r\n}\r\n"],"names":["_EveBannerSet","_identity","EveBannerSet","IEveSpaceObjectAttachment","e","_init_banners","_init_extra_banners","_init_name","_init_extra_name","_init_effect","_init_extra_effect","_init_isPickable","_init_extra_isPickable","_init_display","_init_extra_display","_init_key","_init_extra_key","_init_lights","_init_extra_lights","_init_primaryTextureParameter","_init_extra_primaryTextureParameter","_initProto","_initStatic","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","list","string","objectRef","boolean","readwrite","int32","carbon","method","impl","adapted","implemented","reason","banners","name","effect","isPickable","display","key","lights","primaryTextureParameter","box3","create","Rebuild","__state","add","empty","length","CreateItemSetBoundingBoxes","banner","GetBounds","Math","max","radius","GetAabb","out","bones","boneCount","GetItemSetAabb","GetMaxBannerRadius","GetVisibility","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","frustum","GetFrustum","IsBoxVisible","isLoddedOut","screenSize","FLOAT_MAX","sphere","toPositionRadius","sph3","$position","containsPoint","viewPos","closest","vec3","subtract","normalize","scaleAndAdd","element","fromPositionRadius","GetPixelSizeAccrossEst","GetVisibilityThreshold","UsedWithScreenSize","GetDebugOptions","options","Set","option","DebugOptions","insert","RenderDebugInfo","renderer","HasOption","transform","index","mat4","fromRotationTranslationScale","rotation","position","scaling","color","bone","MatrixCopyFrom3x4","multiply","DrawBox","DebugEffect","Wireframe","Solid","$min","$max","light","fromTranslation","lightData","boneMatrix","GetAverageColor","Saturate","saturation","DrawSphere","innerRadius","GetReference","reference","GetBannerAspectRatio","flatX","angleX","flatY","angleY","halfAngleY","PI","scaleY","sin","vLength","halfAngleX","scaleX","uLength","scaleZ","min","Initialize","AddBanner","copy","push","SetEffect","SetKey","Number","GetPickingID","SetShaderOption","value","SetOption","SetPrimaryTextureParameter","parameter","AddLightFromSOF","EveBannerLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","_boosterGain","boneIndex","Float32Array","average","GetResource","fill","GetLights","lightManager","averageColor","features","parentBrightness","parentScale","quality","GetCurrentSpaceSceneShadowQuality","record","dataCopy","CopyLightData","AsPerPointLightData","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","Object","freeze","Lit","CreateLightRecord","CreateLightDataScratch","#clampBannerAngle","angle","#measureHorizontalArc","halfAngle","segments","floor","previous","sampleAngle","set","cos","distance","#measureVerticalArc","#copyBanner","source","EveBannerItem","quat","constructor"],"mappings":"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"}
|