@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
|
@@ -107,7 +107,7 @@ class EveSceneStaticParticles extends (_withITr2Renderable = withITr2Renderable(
|
|
|
107
107
|
return;
|
|
108
108
|
}
|
|
109
109
|
mat4.copy(this.lastWorldMatrix, this.worldMatrix);
|
|
110
|
-
const origin = updateContext?.GetOrigin
|
|
110
|
+
const origin = updateContext?.GetOrigin();
|
|
111
111
|
// Double-precision subtraction (Carbon Vector3d, cpp:100), narrowed per
|
|
112
112
|
// component at the matrix boundary (cpp:102).
|
|
113
113
|
vec3.set(OFFSET_SCRATCH, Math.fround(this.centerOfClusters[0] - (origin?.[0] ?? 0)), Math.fround(this.centerOfClusters[1] - (origin?.[1] ?? 0)), Math.fround(this.centerOfClusters[2] - (origin?.[2] ?? 0)));
|
|
@@ -129,12 +129,12 @@ class EveSceneStaticParticles extends (_withITr2Renderable = withITr2Renderable(
|
|
|
129
129
|
if ((updateContext?.lowQuality ?? updateContext?.device?.lowQuality) === true || this.clusters.length === 0 || !this.mesh) {
|
|
130
130
|
return;
|
|
131
131
|
}
|
|
132
|
-
const frustum = updateContext?.GetFrustum
|
|
132
|
+
const frustum = updateContext?.GetFrustum();
|
|
133
133
|
if (!frustum) {
|
|
134
134
|
return;
|
|
135
135
|
}
|
|
136
136
|
this.estimatedSize = frustum.GetPixelSizeAccross(this.boundingSphere);
|
|
137
|
-
const estimatedSizeWithinBounds = this.estimatedSize > PARTICLE_CLUSTER_MIN_SIZE * (updateContext?.GetLodFactor
|
|
137
|
+
const estimatedSizeWithinBounds = this.estimatedSize > PARTICLE_CLUSTER_MIN_SIZE * (updateContext?.GetLodFactor() ?? 1);
|
|
138
138
|
const viewPos = frustum.viewPos ?? frustum.m_viewPos;
|
|
139
139
|
const dx = this.center[0] - (viewPos?.[0] ?? 0);
|
|
140
140
|
const dy = this.center[1] - (viewPos?.[1] ?? 0);
|
|
@@ -147,7 +147,7 @@ class EveSceneStaticParticles extends (_withITr2Renderable = withITr2Renderable(
|
|
|
147
147
|
* center with the local radius through the ONE-ARG IsSphereVisible - the
|
|
148
148
|
* back-plane-ignored TriFrustum quirk applies (cullBackPlane false). */
|
|
149
149
|
IsVisible(updateContext) {
|
|
150
|
-
const frustum = updateContext?.GetFrustum
|
|
150
|
+
const frustum = updateContext?.GetFrustum();
|
|
151
151
|
if (!frustum) {
|
|
152
152
|
return false;
|
|
153
153
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveSceneStaticParticles.js","sources":["../../../../../../src/trinity/eve/particles/static/EveSceneStaticParticles.js"],"sourcesContent":["// Source: trinity/trinity/Eve/Renderable/EveSceneStaticParticles.h\n// trinity/trinity/Eve/Renderable/EveSceneStaticParticles.cpp\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\nimport { withITr2Renderable } from \"../../../core/ITr2Renderable.js\";\n\r\n/** Carbon PARTICLE_CLUSTER_MIN_SIZE (EveSceneStaticParticles.cpp:14, a\r\n * file-scope const - NOT in the header): the pixel-size floor, scaled by the\r\n * context lodFactor, below which the cluster system is invisible. */\r\nexport const PARTICLE_CLUSTER_MIN_SIZE = 100;\r\n\r\n// Packed (x, y, z, radius) world-space cull-sphere scratch.\r\nconst SPHERE_SCRATCH = vec4.create();\r\nconst DEBUG_CENTER_SCRATCH = vec3.create();\r\nconst OFFSET_SCRATCH = vec3.create();\r\n\r\n\r\nfunction createRandom(seed)\r\n{\r\n let state = (seed >>> 0) || 0x6d2b79f5;\r\n return () =>\r\n {\r\n state = (Math.imul(state, 1664525) + 1013904223) >>> 0;\r\n return state / 0xffffffff;\r\n };\r\n}\r\n\r\n\r\nfunction randomGauss(random, deviation)\r\n{\r\n const first = Math.max(random(), 1e-100);\r\n return deviation * Math.pow(-2 * Math.log(first), 0.75) * Math.cos(random() * Math.PI * 2);\r\n}\r\n\r\n/**\r\n * A scene-scale field of static particle clusters, held as CPU instance rows\r\n * around a double-precision aggregate origin and drawn through a single\r\n * instanced mesh.\r\n */\r\n@type.define({ className: \"EveSceneStaticParticles\", family: \"eve/scene\" })\r\nexport class EveSceneStaticParticles extends withITr2Renderable(CjsModel)\n{\r\n\r\n /** Carbon ClusterData records retained on the CPU. */\r\n @type.list(\"ClusterData\")\r\n clusters = [];\r\n\r\n /** Double-precision aggregate origin used for camera-relative placement. */\r\n @type.rawStruct(\"Vector3d\")\r\n centerOfClusters = new Float64Array(3);\r\n\r\n /** Local particle bounds rebuilt with the CPU instance data. */\r\n @type.vec4\r\n boundingSphere = new Float32Array(4);\r\n\r\n /** m_clusterParticleDensityAdjust (float) [READ] */\r\n @io.read\r\n @type.float32\r\n clusterParticleDensityAdjust = 1;\r\n\r\n /** m_estimatedSize (float) [READ] */\r\n @io.read\r\n @type.float32\r\n estimatedSize = 0;\r\n\r\n /** m_clusterParticleDensity (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n clusterParticleDensity = 100;\r\n\r\n /** m_maxSize (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n maxSize = 200;\r\n\r\n /** m_minSize (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n minSize = 5;\r\n\r\n /** m_mesh (Tr2InstancedMeshPtr) [READWRITE] */\r\n @io.readwrite\r\n @type.objectRef(\"Tr2InstancedMesh\")\r\n mesh = null;\r\n\r\n /** m_maxParticleCount (size_t) [READWRITE] */\r\n @io.readwrite\r\n @type.uint64\r\n maxParticleCount = 100000;\r\n\r\n /** m_visible (bool) [READ] */\r\n @io.read\r\n @type.boolean\r\n visible = false;\r\n\r\n /** m_worldMatrix (EveSceneStaticParticles.h:93; ctor identity, cpp:27) -\r\n * the camera-relative placement stamped by Update. */\r\n worldMatrix = mat4.create();\r\n\r\n /** m_lastWorldMatrix (h:94; ctor identity, cpp:28) - the previous frame's\r\n * placement, consumed by GetPerObjectData for motion vectors. */\r\n lastWorldMatrix = mat4.create();\r\n\r\n /** m_center (h:95; ctor zero, cpp:24) - the world-space sphere center\r\n * stamped by Update. */\r\n center = vec3.create();\r\n\r\n /** Carbon's post-hydration initializer has no additional work. */\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n return true;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::Update (cpp:90-105): the same\r\n * low-quality/clusters/mesh triple early-out as UpdateVisibility; stashes\r\n * the previous world matrix, rebuilds the camera-relative translation from\r\n * the DOUBLE-precision offset centerOfClusters - origin (narrowed to\r\n * float32 per component only when it enters the matrix, Carbon's\r\n * float(offset.x) casts), and stamps the world-space sphere center. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::IsLowQuality relocates onto the update-context duck (lowQuality, default false).\")\r\n Update(updateContext)\r\n {\r\n if ((updateContext?.lowQuality ?? updateContext?.device?.lowQuality) === true ||\r\n this.clusters.length === 0 || !this.mesh)\r\n {\r\n return;\r\n }\r\n\r\n mat4.copy(this.lastWorldMatrix, this.worldMatrix);\r\n const origin = updateContext?.GetOrigin?.();\r\n // Double-precision subtraction (Carbon Vector3d, cpp:100), narrowed per\r\n // component at the matrix boundary (cpp:102).\r\n vec3.set(\r\n OFFSET_SCRATCH,\r\n Math.fround(this.centerOfClusters[0] - (origin?.[0] ?? 0)),\r\n Math.fround(this.centerOfClusters[1] - (origin?.[1] ?? 0)),\r\n Math.fround(this.centerOfClusters[2] - (origin?.[2] ?? 0))\r\n );\r\n mat4.fromTranslation(this.worldMatrix, OFFSET_SCRATCH);\r\n vec3.transformMat4(this.center, this.boundingSphere, this.worldMatrix);\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::UpdateVisibility (cpp:107-123): visible\r\n * is stamped false first (so a quality toggle / cleared clusters drop the\r\n * system the same frame); the pixel size is measured on the UNTRANSLATED\r\n * LOCAL bounding sphere (cpp:117) while the inside test and the frustum\r\n * test use the world-space center - Carbon's asymmetry, preserved; the\r\n * camera being inside the cluster sphere bypasses BOTH the frustum test\r\n * and the size gate; the size gate is strict > against\r\n * PARTICLE_CLUSTER_MIN_SIZE * lodFactor. estimatedSize is stamped even\r\n * when invisible - GetBatches consumes it as the LOD size (cpp:139). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::IsLowQuality relocates onto the update-context duck (lowQuality, default false).\")\r\n UpdateVisibility(updateContext)\r\n {\r\n this.visible = false;\r\n if ((updateContext?.lowQuality ?? updateContext?.device?.lowQuality) === true ||\r\n this.clusters.length === 0 || !this.mesh)\r\n {\r\n return;\r\n }\r\n const frustum = updateContext?.GetFrustum?.();\r\n if (!frustum)\r\n {\r\n return;\r\n }\r\n this.estimatedSize = frustum.GetPixelSizeAccross(this.boundingSphere);\r\n\r\n const estimatedSizeWithinBounds =\r\n this.estimatedSize > PARTICLE_CLUSTER_MIN_SIZE * (updateContext?.GetLodFactor?.() ?? 1);\r\n const viewPos = frustum.viewPos ?? frustum.m_viewPos;\r\n const dx = this.center[0] - (viewPos?.[0] ?? 0);\r\n const dy = this.center[1] - (viewPos?.[1] ?? 0);\r\n const dz = this.center[2] - (viewPos?.[2] ?? 0);\r\n const inBoundingSphere =\r\n dx * dx + dy * dy + dz * dz <= this.boundingSphere[3] * this.boundingSphere[3];\r\n\r\n this.visible = inBoundingSphere || (this.IsVisible(updateContext) && estimatedSizeWithinBounds);\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::IsVisible (cpp:170-174): the world-space\r\n * center with the local radius through the ONE-ARG IsSphereVisible - the\r\n * back-plane-ignored TriFrustum quirk applies (cullBackPlane false). */\r\n @carbon.method\r\n @impl.implemented\r\n IsVisible(updateContext)\r\n {\r\n const frustum = updateContext?.GetFrustum?.();\r\n if (!frustum)\r\n {\r\n return false;\r\n }\r\n vec4.set(SPHERE_SCRATCH, this.center[0], this.center[1], this.center[2], this.boundingSphere[3]);\r\n return frustum.IsSphereVisible(SPHERE_SCRATCH) === true;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetRenderables (cpp:129-135): pushes the\r\n * object ITSELF when visible; the frustum parameter is deliberately unused\r\n * (kept for the scene call-site contract, EveSpaceScene.cpp:1504-1507). */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(_frustum, out = [])\r\n {\r\n if (this.visible)\r\n {\r\n out.push(this);\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetBatches (cpp:137-140): the mesh's\r\n * areas of the requested type with the stamped estimatedSize as the LOD\r\n * screen size (engine-resolved at realization in the GPU-free model). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The estimatedSize LOD select is engine-resolved at realization; the delegation structure is ported.\")\r\n GetBatches(batches, batchType, perObjectData, _reason)\r\n {\r\n const areas = this.mesh?.GetAreas(batchType) ?? batchType;\r\n return this.mesh?.GetBatches?.(batches, areas, perObjectData, this.estimatedSize) === true;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetShadowBatches (cpp:142-145): the\r\n * particle clusters never cast shadows. */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowBatches(_batches, _perObjectData, _shadowPixelSize)\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetPerObjectData (cpp:147-158): the\r\n * world/lastWorld pair (HLSL packing transposes of single matrices - no\r\n * composition). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Trinity allocates the catalogued record and encodes world/lastWorld into the canonical stored layout. Both fields are CPU-filled; the engine only realizes and binds the packed payload.\")\r\n GetPerObjectData(accumulator)\r\n {\r\n const data = accumulator?.Alloc?.(\"EveSceneStaticParticlesPerObjectData\");\r\n if (!data)\r\n {\r\n return null;\r\n }\r\n data.SetAndTranspose(\"world\", this.worldMatrix);\r\n data.SetAndTranspose(\"lastWorld\", this.lastWorldMatrix);\r\n return data;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::HasTransparentBatches (cpp:160-163). */\r\n @carbon.method\r\n @impl.implemented\r\n HasTransparentBatches()\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetSortValue (cpp:165-168). */\r\n @carbon.method\r\n @impl.implemented\r\n GetSortValue()\r\n {\r\n return 0;\r\n }\r\n\r\n /** Adds Carbon's sole debug option to a Set-like option bag. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2DebugRendererOptions is represented by an injected Set-like option bag.\")\r\n GetDebugOptions(options = new Set())\r\n {\r\n if (options?.add)\r\n {\r\n options.add(\"Bounding Sphere\");\r\n }\r\n else\r\n {\r\n options?.insert?.(\"Bounding Sphere\");\r\n }\r\n return options;\r\n }\r\n\r\n /** Draws the transformed cluster bounds through the injected debug renderer. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"ITr2DebugRenderer2 is an injected engine-owned capability; its Effect::Wireframe value is retained as 0.\")\r\n RenderDebugInfo(renderer)\r\n {\r\n if (!renderer?.HasOption?.(this, \"Bounding Sphere\"))\r\n {\r\n return;\r\n }\r\n vec3.transformMat4(DEBUG_CENTER_SCRATCH, this.boundingSphere, this.worldMatrix);\r\n renderer.DrawSphere?.(\r\n this,\r\n DEBUG_CENTER_SCRATCH,\r\n this.boundingSphere[3],\r\n 10,\r\n 0,\r\n 0xffffff00\r\n );\r\n }\r\n\r\n /** Carbon method AddCluster (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's native ClusterData/Vector3d value is represented by a plain record with a Float64Array position.\")\r\n AddCluster(position, radius, color1, color2, randomSeed)\r\n {\r\n this.clusters.push({\r\n position: new Float64Array(position),\r\n radius,\r\n color1: vec4.clone(color1),\r\n color2: vec4.clone(color2),\r\n randomSeed: randomSeed >>> 0\r\n });\r\n }\r\n\r\n /** Carbon method Rebuild (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Builds Carbon's CPU instance rows and bounds; a deterministic local PRNG replaces Carbon's process-global C rand state, and boolean success plus safe empty-cluster cleanup replace Carbon's void native buffer path.\")\r\n Rebuild()\r\n {\r\n const instanceData = this.mesh?.GetInstanceGeometryResource?.();\r\n if (!instanceData?.SetElementLayout || !instanceData?.SetData)\r\n {\r\n return false;\r\n }\r\n if (this.clusters.length === 0)\r\n {\r\n instanceData.DestroyData?.();\r\n this.centerOfClusters.fill(0);\r\n this.boundingSphere.fill(0);\r\n return true;\r\n }\r\n\r\n this.centerOfClusters.fill(0);\r\n for (const cluster of this.clusters)\r\n {\r\n this.centerOfClusters[0] += cluster.position[0];\r\n this.centerOfClusters[1] += cluster.position[1];\r\n this.centerOfClusters[2] += cluster.position[2];\r\n }\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n this.centerOfClusters[axis] /= this.clusters.length;\r\n }\r\n\r\n let unadjustedCount = 0;\r\n for (const cluster of this.clusters)\r\n {\r\n unadjustedCount += Math.max(0, Math.trunc(this.clusterParticleDensity * cluster.radius));\r\n }\r\n const maximum = Math.max(0, Number(this.maxParticleCount));\r\n this.clusterParticleDensityAdjust = unadjustedCount > maximum && unadjustedCount > 0\r\n ? maximum / unadjustedCount\r\n : 1;\r\n\r\n const rows = [];\r\n for (let clusterIndex = 0; clusterIndex < this.clusters.length; clusterIndex++)\r\n {\r\n const cluster = this.clusters[clusterIndex];\r\n const count = Math.max(0, Math.trunc(this.clusterParticleDensityAdjust * this.clusterParticleDensity * cluster.radius));\r\n const deviation = Math.min(cluster.radius, 2000);\r\n const relative = vec3.fromValues(\r\n cluster.position[0] - this.centerOfClusters[0],\r\n cluster.position[1] - this.centerOfClusters[1],\r\n cluster.position[2] - this.centerOfClusters[2]\r\n );\r\n const random = createRandom(cluster.randomSeed || clusterIndex + 1);\r\n\r\n for (let index = 0; index < count; index++)\r\n {\r\n const offset = vec3.fromValues(\r\n randomGauss(random, 2 * deviation),\r\n randomGauss(random, deviation),\r\n randomGauss(random, 2 * deviation)\r\n );\r\n const length = vec3.length(offset);\r\n const position = vec3.clone(relative);\r\n vec3.add(position, position, offset);\r\n if (length > 0)\r\n {\r\n vec3.scaleAndAdd(position, position, offset, cluster.radius / length);\r\n }\r\n\r\n const mix = random();\r\n const color = vec4.create();\r\n for (let channel = 0; channel < 4; channel++)\r\n {\r\n color[channel] = cluster.color1[channel] + (cluster.color2[channel] - cluster.color1[channel]) * mix;\r\n }\r\n color[3] = count > 0 ? index / count : 0;\r\n const size = random() * Math.min(cluster.radius / 10, this.maxSize) + this.minSize;\r\n rows.push([position, size, color]);\r\n }\r\n }\r\n\r\n instanceData.SetElementLayout([\r\n { usage: \"POSITION\", usageIndex: 0, type: \"FLOAT32_3\", name: \"position\" },\r\n { usage: \"TEXCOORD\", usageIndex: 0, type: \"FLOAT32_1\", name: \"size\" },\r\n { usage: \"TEXCOORD\", usageIndex: 1, type: \"FLOAT32_4\", name: \"color\" }\r\n ]);\r\n instanceData.SetData(rows);\r\n instanceData.UpdateBoundingBox?.();\r\n instanceData.UpdateData?.();\r\n\r\n const bounds = instanceData.GetBoundingBox?.();\r\n if (bounds?.min && bounds?.max)\r\n {\r\n this.mesh.SetBoundingBox?.(bounds.min, bounds.max);\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n this.boundingSphere[axis] = (bounds.min[axis] + bounds.max[axis]) * 0.5;\r\n }\r\n this.boundingSphere[3] = Math.hypot(\r\n bounds.max[0] - bounds.min[0],\r\n bounds.max[1] - bounds.min[1],\r\n bounds.max[2] - bounds.min[2]\r\n ) * 0.5;\r\n }\r\n return true;\r\n }\r\n\r\n /** Carbon method ClearClusters (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon QueryInterface<Tr2RuntimeInstanceData> becomes the portable instance-resource duck exposed by the mesh.\")\r\n ClearClusters()\r\n {\r\n this.clusters.length = 0;\r\n this.mesh?.GetInstanceGeometryResource?.()?.DestroyData?.();\r\n }\r\n\r\n}\r\n"],"names":["PARTICLE_CLUSTER_MIN_SIZE","SPHERE_SCRATCH","vec4","create","DEBUG_CENTER_SCRATCH","vec3","OFFSET_SCRATCH","createRandom","seed","state","Math","imul","randomGauss","random","deviation","first","max","pow","log","cos","PI","_EveSceneStaticPartic","EveSceneStaticParticles","_withITr2Renderable","withITr2Renderable","CjsModel","e","_init_clusters","_init_extra_clusters","_init_centerOfClusters","_init_extra_centerOfClusters","_init_boundingSphere","_init_extra_boundingSphere","_init_clusterParticleDensityAdjust","_init_extra_clusterParticleDensityAdjust","_init_estimatedSize","_init_extra_estimatedSize","_init_clusterParticleDensity","_init_extra_clusterParticleDensity","_init_maxSize","_init_extra_maxSize","_init_minSize","_init_extra_minSize","_init_mesh","_init_extra_mesh","_init_maxParticleCount","_init_extra_maxParticleCount","_init_visible","_init_extra_visible","_initProto","c","_initClass","_applyDecs","type","define","className","family","list","rawStruct","io","read","float32","readwrite","objectRef","uint64","boolean","carbon","method","impl","implemented","adapted","reason","clusters","centerOfClusters","Float64Array","boundingSphere","Float32Array","clusterParticleDensityAdjust","estimatedSize","clusterParticleDensity","maxSize","minSize","mesh","maxParticleCount","visible","worldMatrix","mat4","lastWorldMatrix","center","Initialize","Update","updateContext","lowQuality","device","length","copy","origin","GetOrigin","set","fround","fromTranslation","transformMat4","UpdateVisibility","frustum","GetFrustum","GetPixelSizeAccross","estimatedSizeWithinBounds","GetLodFactor","viewPos","m_viewPos","dx","dy","dz","inBoundingSphere","IsVisible","IsSphereVisible","GetRenderables","_frustum","out","push","GetBatches","batches","batchType","perObjectData","_reason","areas","GetAreas","GetShadowBatches","_batches","_perObjectData","_shadowPixelSize","GetPerObjectData","accumulator","data","Alloc","SetAndTranspose","HasTransparentBatches","GetSortValue","GetDebugOptions","options","Set","add","insert","RenderDebugInfo","renderer","HasOption","DrawSphere","AddCluster","position","radius","color1","color2","randomSeed","clone","Rebuild","instanceData","GetInstanceGeometryResource","SetElementLayout","SetData","DestroyData","fill","cluster","axis","unadjustedCount","trunc","maximum","Number","rows","clusterIndex","count","min","relative","fromValues","index","offset","scaleAndAdd","mix","color","channel","size","usage","usageIndex","name","UpdateBoundingBox","UpdateData","bounds","GetBoundingBox","SetBoundingBox","hypot","ClearClusters"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveSceneStaticParticles.js","sources":["../../../../../../src/trinity/eve/particles/static/EveSceneStaticParticles.js"],"sourcesContent":["// Source: trinity/trinity/Eve/Renderable/EveSceneStaticParticles.h\n// trinity/trinity/Eve/Renderable/EveSceneStaticParticles.cpp\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\nimport { withITr2Renderable } from \"../../../core/ITr2Renderable.js\";\n\r\n/** Carbon PARTICLE_CLUSTER_MIN_SIZE (EveSceneStaticParticles.cpp:14, a\r\n * file-scope const - NOT in the header): the pixel-size floor, scaled by the\r\n * context lodFactor, below which the cluster system is invisible. */\r\nexport const PARTICLE_CLUSTER_MIN_SIZE = 100;\r\n\r\n// Packed (x, y, z, radius) world-space cull-sphere scratch.\r\nconst SPHERE_SCRATCH = vec4.create();\r\nconst DEBUG_CENTER_SCRATCH = vec3.create();\r\nconst OFFSET_SCRATCH = vec3.create();\r\n\r\n\r\nfunction createRandom(seed)\r\n{\r\n let state = (seed >>> 0) || 0x6d2b79f5;\r\n return () =>\r\n {\r\n state = (Math.imul(state, 1664525) + 1013904223) >>> 0;\r\n return state / 0xffffffff;\r\n };\r\n}\r\n\r\n\r\nfunction randomGauss(random, deviation)\r\n{\r\n const first = Math.max(random(), 1e-100);\r\n return deviation * Math.pow(-2 * Math.log(first), 0.75) * Math.cos(random() * Math.PI * 2);\r\n}\r\n\r\n/**\r\n * A scene-scale field of static particle clusters, held as CPU instance rows\r\n * around a double-precision aggregate origin and drawn through a single\r\n * instanced mesh.\r\n */\r\n@type.define({ className: \"EveSceneStaticParticles\", family: \"eve/scene\" })\r\nexport class EveSceneStaticParticles extends withITr2Renderable(CjsModel)\n{\r\n\r\n /** Carbon ClusterData records retained on the CPU. */\r\n @type.list(\"ClusterData\")\r\n clusters = [];\r\n\r\n /** Double-precision aggregate origin used for camera-relative placement. */\r\n @type.rawStruct(\"Vector3d\")\r\n centerOfClusters = new Float64Array(3);\r\n\r\n /** Local particle bounds rebuilt with the CPU instance data. */\r\n @type.vec4\r\n boundingSphere = new Float32Array(4);\r\n\r\n /** m_clusterParticleDensityAdjust (float) [READ] */\r\n @io.read\r\n @type.float32\r\n clusterParticleDensityAdjust = 1;\r\n\r\n /** m_estimatedSize (float) [READ] */\r\n @io.read\r\n @type.float32\r\n estimatedSize = 0;\r\n\r\n /** m_clusterParticleDensity (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n clusterParticleDensity = 100;\r\n\r\n /** m_maxSize (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n maxSize = 200;\r\n\r\n /** m_minSize (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n minSize = 5;\r\n\r\n /** m_mesh (Tr2InstancedMeshPtr) [READWRITE] */\r\n @io.readwrite\r\n @type.objectRef(\"Tr2InstancedMesh\")\r\n mesh = null;\r\n\r\n /** m_maxParticleCount (size_t) [READWRITE] */\r\n @io.readwrite\r\n @type.uint64\r\n maxParticleCount = 100000;\r\n\r\n /** m_visible (bool) [READ] */\r\n @io.read\r\n @type.boolean\r\n visible = false;\r\n\r\n /** m_worldMatrix (EveSceneStaticParticles.h:93; ctor identity, cpp:27) -\r\n * the camera-relative placement stamped by Update. */\r\n worldMatrix = mat4.create();\r\n\r\n /** m_lastWorldMatrix (h:94; ctor identity, cpp:28) - the previous frame's\r\n * placement, consumed by GetPerObjectData for motion vectors. */\r\n lastWorldMatrix = mat4.create();\r\n\r\n /** m_center (h:95; ctor zero, cpp:24) - the world-space sphere center\r\n * stamped by Update. */\r\n center = vec3.create();\r\n\r\n /** Carbon's post-hydration initializer has no additional work. */\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n return true;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::Update (cpp:90-105): the same\r\n * low-quality/clusters/mesh triple early-out as UpdateVisibility; stashes\r\n * the previous world matrix, rebuilds the camera-relative translation from\r\n * the DOUBLE-precision offset centerOfClusters - origin (narrowed to\r\n * float32 per component only when it enters the matrix, Carbon's\r\n * float(offset.x) casts), and stamps the world-space sphere center. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::IsLowQuality relocates onto the update-context duck (lowQuality, default false).\")\r\n Update(updateContext)\r\n {\r\n if ((updateContext?.lowQuality ?? updateContext?.device?.lowQuality) === true ||\r\n this.clusters.length === 0 || !this.mesh)\r\n {\r\n return;\r\n }\r\n\r\n mat4.copy(this.lastWorldMatrix, this.worldMatrix);\r\n const origin = updateContext?.GetOrigin();\r\n // Double-precision subtraction (Carbon Vector3d, cpp:100), narrowed per\r\n // component at the matrix boundary (cpp:102).\r\n vec3.set(\r\n OFFSET_SCRATCH,\r\n Math.fround(this.centerOfClusters[0] - (origin?.[0] ?? 0)),\r\n Math.fround(this.centerOfClusters[1] - (origin?.[1] ?? 0)),\r\n Math.fround(this.centerOfClusters[2] - (origin?.[2] ?? 0))\r\n );\r\n mat4.fromTranslation(this.worldMatrix, OFFSET_SCRATCH);\r\n vec3.transformMat4(this.center, this.boundingSphere, this.worldMatrix);\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::UpdateVisibility (cpp:107-123): visible\r\n * is stamped false first (so a quality toggle / cleared clusters drop the\r\n * system the same frame); the pixel size is measured on the UNTRANSLATED\r\n * LOCAL bounding sphere (cpp:117) while the inside test and the frustum\r\n * test use the world-space center - Carbon's asymmetry, preserved; the\r\n * camera being inside the cluster sphere bypasses BOTH the frustum test\r\n * and the size gate; the size gate is strict > against\r\n * PARTICLE_CLUSTER_MIN_SIZE * lodFactor. estimatedSize is stamped even\r\n * when invisible - GetBatches consumes it as the LOD size (cpp:139). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::IsLowQuality relocates onto the update-context duck (lowQuality, default false).\")\r\n UpdateVisibility(updateContext)\r\n {\r\n this.visible = false;\r\n if ((updateContext?.lowQuality ?? updateContext?.device?.lowQuality) === true ||\r\n this.clusters.length === 0 || !this.mesh)\r\n {\r\n return;\r\n }\r\n const frustum = updateContext?.GetFrustum();\r\n if (!frustum)\r\n {\r\n return;\r\n }\r\n this.estimatedSize = frustum.GetPixelSizeAccross(this.boundingSphere);\r\n\r\n const estimatedSizeWithinBounds =\r\n this.estimatedSize > PARTICLE_CLUSTER_MIN_SIZE * (updateContext?.GetLodFactor() ?? 1);\r\n const viewPos = frustum.viewPos ?? frustum.m_viewPos;\r\n const dx = this.center[0] - (viewPos?.[0] ?? 0);\r\n const dy = this.center[1] - (viewPos?.[1] ?? 0);\r\n const dz = this.center[2] - (viewPos?.[2] ?? 0);\r\n const inBoundingSphere =\r\n dx * dx + dy * dy + dz * dz <= this.boundingSphere[3] * this.boundingSphere[3];\r\n\r\n this.visible = inBoundingSphere || (this.IsVisible(updateContext) && estimatedSizeWithinBounds);\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::IsVisible (cpp:170-174): the world-space\r\n * center with the local radius through the ONE-ARG IsSphereVisible - the\r\n * back-plane-ignored TriFrustum quirk applies (cullBackPlane false). */\r\n @carbon.method\r\n @impl.implemented\r\n IsVisible(updateContext)\r\n {\r\n const frustum = updateContext?.GetFrustum();\r\n if (!frustum)\r\n {\r\n return false;\r\n }\r\n vec4.set(SPHERE_SCRATCH, this.center[0], this.center[1], this.center[2], this.boundingSphere[3]);\r\n return frustum.IsSphereVisible(SPHERE_SCRATCH) === true;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetRenderables (cpp:129-135): pushes the\r\n * object ITSELF when visible; the frustum parameter is deliberately unused\r\n * (kept for the scene call-site contract, EveSpaceScene.cpp:1504-1507). */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(_frustum, out = [])\r\n {\r\n if (this.visible)\r\n {\r\n out.push(this);\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetBatches (cpp:137-140): the mesh's\r\n * areas of the requested type with the stamped estimatedSize as the LOD\r\n * screen size (engine-resolved at realization in the GPU-free model). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The estimatedSize LOD select is engine-resolved at realization; the delegation structure is ported.\")\r\n GetBatches(batches, batchType, perObjectData, _reason)\r\n {\r\n const areas = this.mesh?.GetAreas(batchType) ?? batchType;\r\n return this.mesh?.GetBatches?.(batches, areas, perObjectData, this.estimatedSize) === true;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetShadowBatches (cpp:142-145): the\r\n * particle clusters never cast shadows. */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowBatches(_batches, _perObjectData, _shadowPixelSize)\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetPerObjectData (cpp:147-158): the\r\n * world/lastWorld pair (HLSL packing transposes of single matrices - no\r\n * composition). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Trinity allocates the catalogued record and encodes world/lastWorld into the canonical stored layout. Both fields are CPU-filled; the engine only realizes and binds the packed payload.\")\r\n GetPerObjectData(accumulator)\r\n {\r\n const data = accumulator?.Alloc?.(\"EveSceneStaticParticlesPerObjectData\");\r\n if (!data)\r\n {\r\n return null;\r\n }\r\n data.SetAndTranspose(\"world\", this.worldMatrix);\r\n data.SetAndTranspose(\"lastWorld\", this.lastWorldMatrix);\r\n return data;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::HasTransparentBatches (cpp:160-163). */\r\n @carbon.method\r\n @impl.implemented\r\n HasTransparentBatches()\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetSortValue (cpp:165-168). */\r\n @carbon.method\r\n @impl.implemented\r\n GetSortValue()\r\n {\r\n return 0;\r\n }\r\n\r\n /** Adds Carbon's sole debug option to a Set-like option bag. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2DebugRendererOptions is represented by an injected Set-like option bag.\")\r\n GetDebugOptions(options = new Set())\r\n {\r\n if (options?.add)\r\n {\r\n options.add(\"Bounding Sphere\");\r\n }\r\n else\r\n {\r\n options?.insert?.(\"Bounding Sphere\");\r\n }\r\n return options;\r\n }\r\n\r\n /** Draws the transformed cluster bounds through the injected debug renderer. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"ITr2DebugRenderer2 is an injected engine-owned capability; its Effect::Wireframe value is retained as 0.\")\r\n RenderDebugInfo(renderer)\r\n {\r\n if (!renderer?.HasOption?.(this, \"Bounding Sphere\"))\r\n {\r\n return;\r\n }\r\n vec3.transformMat4(DEBUG_CENTER_SCRATCH, this.boundingSphere, this.worldMatrix);\r\n renderer.DrawSphere?.(\r\n this,\r\n DEBUG_CENTER_SCRATCH,\r\n this.boundingSphere[3],\r\n 10,\r\n 0,\r\n 0xffffff00\r\n );\r\n }\r\n\r\n /** Carbon method AddCluster (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's native ClusterData/Vector3d value is represented by a plain record with a Float64Array position.\")\r\n AddCluster(position, radius, color1, color2, randomSeed)\r\n {\r\n this.clusters.push({\r\n position: new Float64Array(position),\r\n radius,\r\n color1: vec4.clone(color1),\r\n color2: vec4.clone(color2),\r\n randomSeed: randomSeed >>> 0\r\n });\r\n }\r\n\r\n /** Carbon method Rebuild (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Builds Carbon's CPU instance rows and bounds; a deterministic local PRNG replaces Carbon's process-global C rand state, and boolean success plus safe empty-cluster cleanup replace Carbon's void native buffer path.\")\r\n Rebuild()\r\n {\r\n const instanceData = this.mesh?.GetInstanceGeometryResource?.();\r\n if (!instanceData?.SetElementLayout || !instanceData?.SetData)\r\n {\r\n return false;\r\n }\r\n if (this.clusters.length === 0)\r\n {\r\n instanceData.DestroyData?.();\r\n this.centerOfClusters.fill(0);\r\n this.boundingSphere.fill(0);\r\n return true;\r\n }\r\n\r\n this.centerOfClusters.fill(0);\r\n for (const cluster of this.clusters)\r\n {\r\n this.centerOfClusters[0] += cluster.position[0];\r\n this.centerOfClusters[1] += cluster.position[1];\r\n this.centerOfClusters[2] += cluster.position[2];\r\n }\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n this.centerOfClusters[axis] /= this.clusters.length;\r\n }\r\n\r\n let unadjustedCount = 0;\r\n for (const cluster of this.clusters)\r\n {\r\n unadjustedCount += Math.max(0, Math.trunc(this.clusterParticleDensity * cluster.radius));\r\n }\r\n const maximum = Math.max(0, Number(this.maxParticleCount));\r\n this.clusterParticleDensityAdjust = unadjustedCount > maximum && unadjustedCount > 0\r\n ? maximum / unadjustedCount\r\n : 1;\r\n\r\n const rows = [];\r\n for (let clusterIndex = 0; clusterIndex < this.clusters.length; clusterIndex++)\r\n {\r\n const cluster = this.clusters[clusterIndex];\r\n const count = Math.max(0, Math.trunc(this.clusterParticleDensityAdjust * this.clusterParticleDensity * cluster.radius));\r\n const deviation = Math.min(cluster.radius, 2000);\r\n const relative = vec3.fromValues(\r\n cluster.position[0] - this.centerOfClusters[0],\r\n cluster.position[1] - this.centerOfClusters[1],\r\n cluster.position[2] - this.centerOfClusters[2]\r\n );\r\n const random = createRandom(cluster.randomSeed || clusterIndex + 1);\r\n\r\n for (let index = 0; index < count; index++)\r\n {\r\n const offset = vec3.fromValues(\r\n randomGauss(random, 2 * deviation),\r\n randomGauss(random, deviation),\r\n randomGauss(random, 2 * deviation)\r\n );\r\n const length = vec3.length(offset);\r\n const position = vec3.clone(relative);\r\n vec3.add(position, position, offset);\r\n if (length > 0)\r\n {\r\n vec3.scaleAndAdd(position, position, offset, cluster.radius / length);\r\n }\r\n\r\n const mix = random();\r\n const color = vec4.create();\r\n for (let channel = 0; channel < 4; channel++)\r\n {\r\n color[channel] = cluster.color1[channel] + (cluster.color2[channel] - cluster.color1[channel]) * mix;\r\n }\r\n color[3] = count > 0 ? index / count : 0;\r\n const size = random() * Math.min(cluster.radius / 10, this.maxSize) + this.minSize;\r\n rows.push([position, size, color]);\r\n }\r\n }\r\n\r\n instanceData.SetElementLayout([\r\n { usage: \"POSITION\", usageIndex: 0, type: \"FLOAT32_3\", name: \"position\" },\r\n { usage: \"TEXCOORD\", usageIndex: 0, type: \"FLOAT32_1\", name: \"size\" },\r\n { usage: \"TEXCOORD\", usageIndex: 1, type: \"FLOAT32_4\", name: \"color\" }\r\n ]);\r\n instanceData.SetData(rows);\r\n instanceData.UpdateBoundingBox?.();\r\n instanceData.UpdateData?.();\r\n\r\n const bounds = instanceData.GetBoundingBox?.();\r\n if (bounds?.min && bounds?.max)\r\n {\r\n this.mesh.SetBoundingBox?.(bounds.min, bounds.max);\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n this.boundingSphere[axis] = (bounds.min[axis] + bounds.max[axis]) * 0.5;\r\n }\r\n this.boundingSphere[3] = Math.hypot(\r\n bounds.max[0] - bounds.min[0],\r\n bounds.max[1] - bounds.min[1],\r\n bounds.max[2] - bounds.min[2]\r\n ) * 0.5;\r\n }\r\n return true;\r\n }\r\n\r\n /** Carbon method ClearClusters (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon QueryInterface<Tr2RuntimeInstanceData> becomes the portable instance-resource duck exposed by the mesh.\")\r\n ClearClusters()\r\n {\r\n this.clusters.length = 0;\r\n this.mesh?.GetInstanceGeometryResource?.()?.DestroyData?.();\r\n }\r\n\r\n}\r\n"],"names":["PARTICLE_CLUSTER_MIN_SIZE","SPHERE_SCRATCH","vec4","create","DEBUG_CENTER_SCRATCH","vec3","OFFSET_SCRATCH","createRandom","seed","state","Math","imul","randomGauss","random","deviation","first","max","pow","log","cos","PI","_EveSceneStaticPartic","EveSceneStaticParticles","_withITr2Renderable","withITr2Renderable","CjsModel","e","_init_clusters","_init_extra_clusters","_init_centerOfClusters","_init_extra_centerOfClusters","_init_boundingSphere","_init_extra_boundingSphere","_init_clusterParticleDensityAdjust","_init_extra_clusterParticleDensityAdjust","_init_estimatedSize","_init_extra_estimatedSize","_init_clusterParticleDensity","_init_extra_clusterParticleDensity","_init_maxSize","_init_extra_maxSize","_init_minSize","_init_extra_minSize","_init_mesh","_init_extra_mesh","_init_maxParticleCount","_init_extra_maxParticleCount","_init_visible","_init_extra_visible","_initProto","c","_initClass","_applyDecs","type","define","className","family","list","rawStruct","io","read","float32","readwrite","objectRef","uint64","boolean","carbon","method","impl","implemented","adapted","reason","clusters","centerOfClusters","Float64Array","boundingSphere","Float32Array","clusterParticleDensityAdjust","estimatedSize","clusterParticleDensity","maxSize","minSize","mesh","maxParticleCount","visible","worldMatrix","mat4","lastWorldMatrix","center","Initialize","Update","updateContext","lowQuality","device","length","copy","origin","GetOrigin","set","fround","fromTranslation","transformMat4","UpdateVisibility","frustum","GetFrustum","GetPixelSizeAccross","estimatedSizeWithinBounds","GetLodFactor","viewPos","m_viewPos","dx","dy","dz","inBoundingSphere","IsVisible","IsSphereVisible","GetRenderables","_frustum","out","push","GetBatches","batches","batchType","perObjectData","_reason","areas","GetAreas","GetShadowBatches","_batches","_perObjectData","_shadowPixelSize","GetPerObjectData","accumulator","data","Alloc","SetAndTranspose","HasTransparentBatches","GetSortValue","GetDebugOptions","options","Set","add","insert","RenderDebugInfo","renderer","HasOption","DrawSphere","AddCluster","position","radius","color1","color2","randomSeed","clone","Rebuild","instanceData","GetInstanceGeometryResource","SetElementLayout","SetData","DestroyData","fill","cluster","axis","unadjustedCount","trunc","maximum","Number","rows","clusterIndex","count","min","relative","fromValues","index","offset","scaleAndAdd","mix","color","channel","size","usage","usageIndex","name","UpdateBoundingBox","UpdateData","bounds","GetBoundingBox","SetBoundingBox","hypot","ClearClusters"],"mappings":"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"}
|
|
@@ -6,19 +6,24 @@ import { TriBatchType } from '#consts/graphics';
|
|
|
6
6
|
import { io, type, carbon, impl } from '#schema';
|
|
7
7
|
import { IEveFiringEffectElement as _IEveFiringEffectElem } from '../../IEveFiringEffectElement.js';
|
|
8
8
|
import { EveComponentType } from '../../EveComponentTypes.js';
|
|
9
|
-
import { Tr2QuadRenderer as _Tr2QuadRenderer } from '../../../core/Tr2QuadRenderer.js';
|
|
10
|
-
import { Tr2RenderBatch } from '../../../core/batch/Tr2RenderBatch.js';
|
|
9
|
+
import { Tr2QuadRenderer as _Tr2QuadRenderer } from '../../../core/Tr2QuadRenderer/Tr2QuadRenderer.js';
|
|
10
|
+
import { Tr2RenderBatch } from '../../../core/batch/TriRenderBatch/Tr2RenderBatch.js';
|
|
11
|
+
import '../../../core/batch/TriRenderBatch/DefaultKeyGenerator.js';
|
|
12
|
+
import '../../../core/batch/TriRenderBatch/EffectKeyGenerator.js';
|
|
13
|
+
import '../../../core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js';
|
|
14
|
+
import '#consts/render-context';
|
|
11
15
|
import { getCurveDuration, getTime, updateCurveSet, makeEndpointTransforms, getOriginShift } from './CjsStretchRuntime.js';
|
|
12
16
|
import { withITr2Renderable } from '../../../core/ITr2Renderable.js';
|
|
13
|
-
import { ITr2GenericEmitterUpdateArguments as _ITr2GenericEmitterUp } from '../../../particle/ITr2GenericEmitter.js';
|
|
17
|
+
import { ITr2GenericEmitterUpdateArguments as _ITr2GenericEmitterUp } from '../../../particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js';
|
|
18
|
+
import '../../../particle/ITr2GenericEmitter/ITr2GenericEmitter.js';
|
|
14
19
|
|
|
15
20
|
var _withITr2Renderable;
|
|
16
21
|
let _initProto, _initClass, _init_name, _init_extra_name, _init_loop, _init_extra_loop, _init_start, _init_extra_start, _init_end, _init_extra_end, _init_effect, _init_extra_effect, _init_destinationEmitter, _init_extra_destinationEmitter, _init_sourceEmitter, _init_extra_sourceEmitter, _init_quadCount, _init_extra_quadCount, _init_destinationObserver, _init_extra_destinationObserver, _init_sourceObserver, _init_extra_sourceObserver, _init_destinationLight, _init_extra_destinationLight, _init_sourceLight, _init_extra_sourceLight, _init_boundingRadius, _init_extra_boundingRadius;
|
|
17
22
|
|
|
18
|
-
/**
|
|
19
|
-
* A simplified stretch that renders the span between two points as a strip of
|
|
20
|
-
* quads with its own effect, end emitters, observers and point lights, instead
|
|
21
|
-
* of hosting child objects.
|
|
23
|
+
/**
|
|
24
|
+
* A simplified stretch that renders the span between two points as a strip of
|
|
25
|
+
* quads with its own effect, end emitters, observers and point lights, instead
|
|
26
|
+
* of hosting child objects.
|
|
22
27
|
*/
|
|
23
28
|
let _EveStretch;
|
|
24
29
|
new class extends _identity {
|
|
@@ -57,17 +62,17 @@ new class extends _identity {
|
|
|
57
62
|
#intensity = 1;
|
|
58
63
|
#effectData = [vec4.fromValues(0, 0, 0, Math.random()), vec4.fromValues(1, 0, 0, 0)];
|
|
59
64
|
|
|
60
|
-
/**
|
|
61
|
-
* Post-hydration hook; validates the authored quad count. Carbon also builds
|
|
62
|
-
* the procedural GPU buffers here, which is engine work in this port.
|
|
65
|
+
/**
|
|
66
|
+
* Post-hydration hook; validates the authored quad count. Carbon also builds
|
|
67
|
+
* the procedural GPU buffers here, which is engine work in this port.
|
|
63
68
|
*/
|
|
64
69
|
Initialize() {
|
|
65
70
|
return this.OnModified();
|
|
66
71
|
}
|
|
67
72
|
|
|
68
|
-
/**
|
|
69
|
-
* Re-validates quadCount against the 128-quad procedural geometry limit after
|
|
70
|
-
* a model update and throws a RangeError when it is exceeded.
|
|
73
|
+
/**
|
|
74
|
+
* Re-validates quadCount against the 128-quad procedural geometry limit after
|
|
75
|
+
* a model update and throws a RangeError when it is exceeded.
|
|
71
76
|
*/
|
|
72
77
|
OnModified() {
|
|
73
78
|
if (this.quadCount > _EveStretch.MAX_QUAD_COUNT) {
|
|
@@ -76,9 +81,9 @@ new class extends _identity {
|
|
|
76
81
|
return true;
|
|
77
82
|
}
|
|
78
83
|
|
|
79
|
-
/**
|
|
80
|
-
* Sets the destination-end scale and adopts it as the current one, undoing any
|
|
81
|
-
* hidden-destination override left by DisplayEndPoints.
|
|
84
|
+
/**
|
|
85
|
+
* Sets the destination-end scale and adopts it as the current one, undoing any
|
|
86
|
+
* hidden-destination override left by DisplayEndPoints.
|
|
82
87
|
*/
|
|
83
88
|
SetDestObjectScale(scale) {
|
|
84
89
|
this.#destinationScale = this.#currentDestinationScale = Number(scale);
|
|
@@ -92,9 +97,9 @@ new class extends _identity {
|
|
|
92
97
|
return Math.max(getCurveDuration(this.start), getCurveDuration(this.loop));
|
|
93
98
|
}
|
|
94
99
|
|
|
95
|
-
/**
|
|
96
|
-
* Begins a shot: reseeds the per-shot random value carried in the effect data, plays the start and loop sets from -delay and stops the end set.
|
|
97
|
-
* @param {Number} [delay] - seconds the curve sets wait before reaching time zero
|
|
100
|
+
/**
|
|
101
|
+
* Begins a shot: reseeds the per-shot random value carried in the effect data, plays the start and loop sets from -delay and stops the end set.
|
|
102
|
+
* @param {Number} [delay] - seconds the curve sets wait before reaching time zero
|
|
98
103
|
*/
|
|
99
104
|
StartFiring(delay = 0) {
|
|
100
105
|
this.#effectData[0][3] = Math.random();
|
|
@@ -110,43 +115,43 @@ new class extends _identity {
|
|
|
110
115
|
this.end?.Play();
|
|
111
116
|
}
|
|
112
117
|
|
|
113
|
-
/**
|
|
114
|
-
* Sets both endpoints, accepting either a 16-element source transform - of
|
|
115
|
-
* which only the translation is kept, since the span orientation is rebuilt
|
|
116
|
-
* each update - or a source position.
|
|
118
|
+
/**
|
|
119
|
+
* Sets both endpoints, accepting either a 16-element source transform - of
|
|
120
|
+
* which only the translation is kept, since the span orientation is rebuilt
|
|
121
|
+
* each update - or a source position.
|
|
117
122
|
*/
|
|
118
123
|
SetFiringTransform(source, destination) {
|
|
119
124
|
if (source?.length === 16) mat4.getTranslation(this.#source, source);else vec3.copy(this.#source, source);
|
|
120
125
|
vec3.copy(this.#destination, destination);
|
|
121
126
|
}
|
|
122
127
|
|
|
123
|
-
/**
|
|
124
|
-
* Hides the destination end by zeroing its current scale; the source end is
|
|
125
|
-
* always drawn, so the source flag is ignored.
|
|
128
|
+
/**
|
|
129
|
+
* Hides the destination end by zeroing its current scale; the source end is
|
|
130
|
+
* always drawn, so the source flag is ignored.
|
|
126
131
|
*/
|
|
127
132
|
DisplayEndPoints(_displaySource, displayDestination) {
|
|
128
133
|
this.#currentDestinationScale = displayDestination ? this.#destinationScale : 0;
|
|
129
134
|
}
|
|
130
135
|
|
|
131
|
-
/**
|
|
132
|
-
* Shows or hides the stretch, gating visibility, renderable collection and
|
|
133
|
-
* light contribution.
|
|
136
|
+
/**
|
|
137
|
+
* Shows or hides the stretch, gating visibility, renderable collection and
|
|
138
|
+
* light contribution.
|
|
134
139
|
*/
|
|
135
140
|
SetDisplay(display) {
|
|
136
141
|
this.#visible = !!display;
|
|
137
142
|
}
|
|
138
143
|
|
|
139
|
-
/**
|
|
140
|
-
* Sets the intensity uploaded in per-object data, clamped to zero at the
|
|
141
|
-
* bottom; a zero intensity also suppresses visibility, renderables and lights.
|
|
144
|
+
/**
|
|
145
|
+
* Sets the intensity uploaded in per-object data, clamped to zero at the
|
|
146
|
+
* bottom; a zero intensity also suppresses visibility, renderables and lights.
|
|
142
147
|
*/
|
|
143
148
|
SetIntensity(intensity) {
|
|
144
149
|
this.#intensity = Math.max(0, Number(intensity));
|
|
145
150
|
}
|
|
146
151
|
|
|
147
|
-
/**
|
|
148
|
-
* IEveFiringEffectElement synchronous hook; EveStretch2 does all of its work
|
|
149
|
-
* in the asynchronous phase.
|
|
152
|
+
/**
|
|
153
|
+
* IEveFiringEffectElement synchronous hook; EveStretch2 does all of its work
|
|
154
|
+
* in the asynchronous phase.
|
|
150
155
|
*/
|
|
151
156
|
UpdateEffectSync(_context) {
|
|
152
157
|
return true;
|
|
@@ -157,11 +162,11 @@ new class extends _identity {
|
|
|
157
162
|
return this.Update(context);
|
|
158
163
|
}
|
|
159
164
|
|
|
160
|
-
/**
|
|
161
|
-
* Advances the start, loop and end curve sets on time measured from the first
|
|
162
|
-
* update, records each set's scaled time into the effect data that
|
|
163
|
-
* GetPerObjectData uploads, rebuilds the two endpoint bases, and drives the
|
|
164
|
-
* end observers and GPU emitters from them.
|
|
165
|
+
/**
|
|
166
|
+
* Advances the start, loop and end curve sets on time measured from the first
|
|
167
|
+
* update, records each set's scaled time into the effect data that
|
|
168
|
+
* GetPerObjectData uploads, rebuilds the two endpoint bases, and drives the
|
|
169
|
+
* end observers and GPU emitters from them.
|
|
165
170
|
*/
|
|
166
171
|
Update(context) {
|
|
167
172
|
const time = getTime(context);
|
|
@@ -198,9 +203,9 @@ new class extends _identity {
|
|
|
198
203
|
return true;
|
|
199
204
|
}
|
|
200
205
|
|
|
201
|
-
/**
|
|
202
|
-
* Frustum-tests a box in the source basis that reaches boundingRadius sideways and the endpoint distance plus boundingRadius forwards, caching the result for GetRenderables; a hidden or zero-intensity stretch fails without testing, and a frustum that cannot test boxes passes.
|
|
203
|
-
* @returns {Boolean} whether the stretch is in frustum
|
|
206
|
+
/**
|
|
207
|
+
* Frustum-tests a box in the source basis that reaches boundingRadius sideways and the endpoint distance plus boundingRadius forwards, caching the result for GetRenderables; a hidden or zero-intensity stretch fails without testing, and a frustum that cannot test boxes passes.
|
|
208
|
+
* @returns {Boolean} whether the stretch is in frustum
|
|
204
209
|
*/
|
|
205
210
|
UpdateVisibility(context) {
|
|
206
211
|
if (!(this.#visible && this.#intensity > 0)) {
|
|
@@ -217,18 +222,18 @@ new class extends _identity {
|
|
|
217
222
|
return this.#inFrustum;
|
|
218
223
|
}
|
|
219
224
|
|
|
220
|
-
/**
|
|
221
|
-
* Pushes the stretch itself when displayed, non-zero intensity and in frustum; the quad strip is built by the engine from the per-object data, not here.
|
|
222
|
-
* @returns {Array} out
|
|
225
|
+
/**
|
|
226
|
+
* Pushes the stretch itself when displayed, non-zero intensity and in frustum; the quad strip is built by the engine from the per-object data, not here.
|
|
227
|
+
* @returns {Array} out
|
|
223
228
|
*/
|
|
224
229
|
GetRenderables(out = []) {
|
|
225
230
|
if (this.#visible && this.#intensity > 0 && this.#inFrustum) out.push(this);
|
|
226
231
|
return out;
|
|
227
232
|
}
|
|
228
233
|
|
|
229
|
-
/** Carbon EveStretch2::GetPerObjectData (cpp:327-337): stamps
|
|
230
|
-
* m_effectData[1].x = m_intensity, then uploads the contiguous member run
|
|
231
|
-
* m_source..m_effectData[2] (EveStretch2.h:105-109) - 4 vec4s - to BOTH
|
|
234
|
+
/** Carbon EveStretch2::GetPerObjectData (cpp:327-337): stamps
|
|
235
|
+
* m_effectData[1].x = m_intensity, then uploads the contiguous member run
|
|
236
|
+
* m_source..m_effectData[2] (EveStretch2.h:105-109) - 4 vec4s - to BOTH
|
|
232
237
|
* per-object slots (cpp:23-39). One payload, stages ["vs", "ps"]. */
|
|
233
238
|
GetPerObjectData(accumulator) {
|
|
234
239
|
this.#effectData[1][0] = this.#intensity;
|
|
@@ -268,10 +273,10 @@ new class extends _identity {
|
|
|
268
273
|
return 0;
|
|
269
274
|
}
|
|
270
275
|
|
|
271
|
-
/**
|
|
272
|
-
* Offers the source and destination point lights at their endpoint bases, the
|
|
273
|
-
* destination scaled by its current scale; nothing is offered while hidden or
|
|
274
|
-
* at zero intensity.
|
|
276
|
+
/**
|
|
277
|
+
* Offers the source and destination point lights at their endpoint bases, the
|
|
278
|
+
* destination scaled by its current scale; nothing is offered while hidden or
|
|
279
|
+
* at zero intensity.
|
|
275
280
|
*/
|
|
276
281
|
GetLights(lightManager) {
|
|
277
282
|
if (!(this.#visible && this.#intensity > 0)) return;
|
|
@@ -279,8 +284,8 @@ new class extends _identity {
|
|
|
279
284
|
this.destinationLight?.AddLight(lightManager, this.#destinationTransform, this.#currentDestinationScale);
|
|
280
285
|
}
|
|
281
286
|
|
|
282
|
-
/** Carbon EveStretch2::RegisterComponents (cpp:389-398): LightOwner leaf
|
|
283
|
-
* self-registration. Gate (m_visible && m_intensity > 0) && a source or
|
|
287
|
+
/** Carbon EveStretch2::RegisterComponents (cpp:389-398): LightOwner leaf
|
|
288
|
+
* self-registration. Gate (m_visible && m_intensity > 0) && a source or
|
|
284
289
|
* destination light. */
|
|
285
290
|
RegisterComponents() {
|
|
286
291
|
const registry = this.GetComponentRegistry();
|
|
@@ -291,37 +296,37 @@ new class extends _identity {
|
|
|
291
296
|
}
|
|
292
297
|
}
|
|
293
298
|
|
|
294
|
-
/**
|
|
295
|
-
* Copies the source endpoint position.
|
|
296
|
-
* @param {Array} [out] - caller-owned vec3; a fresh vector is allocated when omitted
|
|
297
|
-
* @returns {Array} out
|
|
299
|
+
/**
|
|
300
|
+
* Copies the source endpoint position.
|
|
301
|
+
* @param {Array} [out] - caller-owned vec3; a fresh vector is allocated when omitted
|
|
302
|
+
* @returns {Array} out
|
|
298
303
|
*/
|
|
299
304
|
GetSourcePosition(out = vec3.create()) {
|
|
300
305
|
return vec3.copy(out, this.#source);
|
|
301
306
|
}
|
|
302
307
|
|
|
303
|
-
/**
|
|
304
|
-
* Copies the destination endpoint position.
|
|
305
|
-
* @param {Array} [out] - caller-owned vec3; a fresh vector is allocated when omitted
|
|
306
|
-
* @returns {Array} out
|
|
308
|
+
/**
|
|
309
|
+
* Copies the destination endpoint position.
|
|
310
|
+
* @param {Array} [out] - caller-owned vec3; a fresh vector is allocated when omitted
|
|
311
|
+
* @returns {Array} out
|
|
307
312
|
*/
|
|
308
313
|
GetDestinationPosition(out = vec3.create()) {
|
|
309
314
|
return vec3.copy(out, this.#destination);
|
|
310
315
|
}
|
|
311
316
|
|
|
312
|
-
/**
|
|
313
|
-
* Copies the source endpoint basis, which is only valid once Update has run.
|
|
314
|
-
* @param {Array} [out] - caller-owned mat4; a fresh matrix is allocated when omitted
|
|
315
|
-
* @returns {Array} out
|
|
317
|
+
/**
|
|
318
|
+
* Copies the source endpoint basis, which is only valid once Update has run.
|
|
319
|
+
* @param {Array} [out] - caller-owned mat4; a fresh matrix is allocated when omitted
|
|
320
|
+
* @returns {Array} out
|
|
316
321
|
*/
|
|
317
322
|
GetSourceTransform(out = mat4.create()) {
|
|
318
323
|
return mat4.copy(out, this.#sourceTransform);
|
|
319
324
|
}
|
|
320
325
|
|
|
321
|
-
/**
|
|
322
|
-
* Copies the destination endpoint basis, which is only valid once Update has run.
|
|
323
|
-
* @param {Array} [out] - caller-owned mat4; a fresh matrix is allocated when omitted
|
|
324
|
-
* @returns {Array} out
|
|
326
|
+
/**
|
|
327
|
+
* Copies the destination endpoint basis, which is only valid once Update has run.
|
|
328
|
+
* @param {Array} [out] - caller-owned mat4; a fresh matrix is allocated when omitted
|
|
329
|
+
* @returns {Array} out
|
|
325
330
|
*/
|
|
326
331
|
GetDestinationTransform(out = mat4.create()) {
|
|
327
332
|
return mat4.copy(out, this.#destinationTransform);
|