@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -125
- package/dist/audio/index.js +8 -1
- package/dist/audio/index.js.map +1 -1
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
- package/dist/audio/trinity/audio/AudManager.js +1 -1
- package/dist/audio/trinity/audio/AudManager.js.map +1 -1
- package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
- package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
- package/dist/audio/trinity/index.js +8 -1
- package/dist/audio/trinity/index.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
- package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceManager.js +14 -0
- package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
- package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
- package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
- package/dist/character/CjsCharacterTexturePolicy.js +5 -0
- package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
- package/dist/global/blue/CjsScriptCallback.js +142 -0
- package/dist/global/blue/CjsScriptCallback.js.map +1 -0
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -0
- package/dist/global/consts/renderContext/formats.js +51 -1
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/global/consts/renderContext/index.js +2 -2
- package/dist/global/consts/renderContext/renderStates.js +16 -1
- package/dist/global/consts/renderContext/renderStates.js.map +1 -1
- package/dist/global/contracts/index.js +0 -1
- package/dist/global/contracts/index.js.map +1 -1
- package/dist/global/index.js +4 -3
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/index.js +2 -0
- package/dist/global/math/index.js.map +1 -1
- package/dist/global/math/mesh.js +70 -16
- package/dist/global/math/mesh.js.map +1 -1
- package/dist/global/math/noise.js +47 -68
- package/dist/global/math/noise.js.map +1 -1
- package/dist/global/math/pool.js +18 -3
- package/dist/global/math/pool.js.map +1 -1
- package/dist/global/math/random.js +52 -0
- package/dist/global/math/random.js.map +1 -0
- package/dist/global/math/tri3.js +18 -4
- package/dist/global/math/tri3.js.map +1 -1
- package/dist/global/schema/CjsSchema.js +20 -2
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/global/schema/hydration.js +14 -0
- package/dist/global/schema/hydration.js.map +1 -1
- package/dist/global/utils/bytes.js +22 -4
- package/dist/global/utils/bytes.js.map +1 -1
- package/dist/global/utils/checksum.js +80 -0
- package/dist/global/utils/checksum.js.map +1 -0
- package/dist/global/utils/errors/CjsCancellationError.js +36 -0
- package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
- package/dist/global/utils/errors/CjsError.js +21 -52
- package/dist/global/utils/errors/CjsError.js.map +1 -1
- package/dist/global/utils/errors/abort.js +1 -1
- package/dist/global/utils/errors/abort.js.map +1 -1
- package/dist/global/utils/errors/index.js +2 -1
- package/dist/global/utils/errors/index.js.map +1 -1
- package/dist/global/utils/index.js +4 -2
- package/dist/global/utils/index.js.map +1 -1
- package/dist/index.js +95 -35
- package/dist/index.js.map +1 -1
- package/dist/input/Tr2MainWindow.js +7 -9
- package/dist/input/Tr2MainWindow.js.map +1 -1
- package/dist/resource/CjsResMan.js +33 -39
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/CjsResource.js +19 -5
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/audio/AudioGeometryResData.js +22 -27
- package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
- package/dist/resource/audio/CjsAudioRes.js +4 -5
- package/dist/resource/audio/CjsAudioRes.js.map +1 -1
- package/dist/resource/format/CjsBitReader.js +263 -0
- package/dist/resource/format/CjsBitReader.js.map +1 -0
- package/dist/resource/format/CjsByteReader.js +130 -125
- package/dist/resource/format/CjsByteReader.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +11 -4
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatError.js +37 -1
- package/dist/resource/format/CjsFormatError.js.map +1 -1
- package/dist/resource/format/CjsResourceProbe.js +41 -37
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/carbonRecordGuard.js +33 -0
- package/dist/resource/format/carbonRecordGuard.js.map +1 -0
- package/dist/resource/format/imageSignatures.js +202 -0
- package/dist/resource/format/imageSignatures.js.map +1 -0
- package/dist/resource/format/index.js +2 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/format/jsonPolicies.js +180 -0
- package/dist/resource/format/jsonPolicies.js.map +1 -0
- package/dist/resource/formats/black/core/helpers.js +18 -29
- package/dist/resource/formats/black/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
- package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
- package/dist/resource/formats/bnk/core/busNodes.js +2 -1
- package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
- package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/eventAction.js +15 -93
- package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
- package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
- package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +2 -48
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
- package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
- package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/binary.js +54 -60
- package/dist/resource/formats/cmf/core/binary.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/bc6h.js +16 -18
- package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
- package/dist/resource/formats/dds/core/bc7.js +28 -24
- package/dist/resource/formats/dds/core/bc7.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +7 -133
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +4 -32
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/fbx/core/helpers.js +18 -12
- package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/flac/core/helpers.js +1 -62
- package/dist/resource/formats/flac/core/helpers.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gif/core/helpers.js +1 -63
- package/dist/resource/formats/gif/core/helpers.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -19
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/gr2/core/container.js +1 -10
- package/dist/resource/formats/gr2/core/container.js.map +1 -1
- package/dist/resource/formats/gr2/core/helpers.js +24 -35
- package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/core/shared.js +193 -189
- package/dist/resource/formats/gr2/core/shared.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/helpers.js +1 -30
- package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +7 -134
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +1 -64
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +1 -73
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +93 -115
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/ogg/core/helpers.js +1 -15
- package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/core/vorbis.js +138 -144
- package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +5 -3
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +13 -152
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/png/core/writer.js +3 -27
- package/dist/resource/formats/png/core/writer.js.map +1 -1
- package/dist/resource/formats/red/core/helpers.js +19 -29
- package/dist/resource/formats/red/core/helpers.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +44 -66
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +7 -153
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/vta/core/helpers.js +1 -17
- package/dist/resource/formats/vta/core/helpers.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +1 -15
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js +39 -68
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +4 -30
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +1 -73
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/webp/core/helpers.js +1 -62
- package/dist/resource/formats/webp/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +83 -106
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
- package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -15
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
- package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
- package/dist/resource/geometry/MeshDecalData.js +23 -25
- package/dist/resource/geometry/MeshDecalData.js.map +1 -1
- package/dist/resource/geometry/MeshDecalLodData.js +14 -23
- package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryRes.js +299 -284
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
- package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
- package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
- package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
- package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
- package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
- package/dist/resource/geometry/TriJointBinding.js +16 -24
- package/dist/resource/geometry/TriJointBinding.js.map +1 -1
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
- package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
- package/dist/resource/index.js +1 -1
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
- package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
- package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
- package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
- package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
- package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
- package/dist/resource/worker/protocol.js +18 -1
- package/dist/resource/worker/protocol.js.map +1 -1
- package/dist/sof/EveSOF.js +2 -222
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/sof/SofDocumentBuilder.js +205 -0
- package/dist/sof/SofDocumentBuilder.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
- package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
- package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
- package/dist/sof/faction/index.js +3 -1
- package/dist/sof/faction/index.js.map +1 -1
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
- package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
- package/dist/sof/generic/index.js +5 -1
- package/dist/sof/generic/index.js.map +1 -1
- package/dist/sof/index.js +23 -7
- package/dist/sof/index.js.map +1 -1
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
- package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
- package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
- package/dist/sof/pattern/index.js +2 -1
- package/dist/sof/pattern/index.js.map +1 -1
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
- package/dist/sof/shared/EveSOFDataArea.js +2 -13
- package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
- package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
- package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameter.js +2 -146
- package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
- package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
- package/dist/sof/shared/index.js +13 -4
- package/dist/sof/shared/index.js.map +1 -1
- package/dist/sof/sofDocumentValues.js +33 -0
- package/dist/sof/sofDocumentValues.js.map +1 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
- package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
- package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
- package/dist/trinity/controllers/Tr2Controller.js +2 -1
- package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
- package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
- package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
- package/dist/trinity/controllers/index.js +5 -2
- package/dist/trinity/controllers/index.js.map +1 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
- package/dist/trinity/core/ITr2Updateable.js +2 -1
- package/dist/trinity/core/ITr2Updateable.js.map +1 -1
- package/dist/trinity/core/Tr2Blitter.js +6 -3
- package/dist/trinity/core/Tr2Blitter.js.map +1 -1
- package/dist/trinity/core/Tr2Denoiser.js +256 -0
- package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
- package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
- package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
- package/dist/trinity/core/Tr2RenderUtils.js +20 -3
- package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
- package/dist/trinity/core/Tr2Renderer.js +146 -1
- package/dist/trinity/core/Tr2Renderer.js.map +1 -1
- package/dist/trinity/core/Tr2ShadowMap.js +135 -14
- package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
- package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
- package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
- package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
- package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
- package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
- package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
- package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
- package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
- package/dist/trinity/core/index.js +42 -15
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
- package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
- package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
- package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
- package/dist/trinity/core/variable/TriVariable.js +83 -83
- package/dist/trinity/core/variable/TriVariable.js.map +1 -1
- package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
- package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
- package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/IEveTransform.js +2 -1
- package/dist/trinity/eve/IEveTransform.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/camera/EveCamera.js +1 -1
- package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
- package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
- package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/trinity/eve/child/EveChildContainer.js +141 -141
- package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
- package/dist/trinity/eve/child/EveChildMesh.js +218 -218
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
- package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
- package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTransform.js +5 -0
- package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +7 -0
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/index.js +10 -4
- package/dist/trinity/eve/index.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2Light.js +5 -0
- package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
- package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
- package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
- package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
- package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -1
- package/dist/trinity/generated/index.js.map +1 -1
- package/dist/trinity/generated/trinityCore/index.js +0 -1
- package/dist/trinity/generated/trinityCore/index.js.map +1 -1
- package/dist/trinity/index.js +59 -23
- package/dist/trinity/index.js.map +1 -1
- package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
- package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
- package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
- package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
- package/dist/trinity/particle/index.js +2 -1
- package/dist/trinity/particle/index.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
- package/dist/trinity/shader/Tr2Effect.js +131 -58
- package/dist/trinity/shader/Tr2Effect.js.map +1 -1
- package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
- package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +21 -4
- package/dist/trinity/shader/Tr2Material.js.map +1 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
- package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
- package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
- package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
- package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
- package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
- package/dist/trinityal/index.js +22 -9
- package/dist/trinityal/index.js.map +1 -1
- package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
- package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
- package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
- package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
- package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
- package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
- package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
- package/dist/trinityal/stub/index.js +8 -4
- package/dist/trinityal/stub/index.js.map +1 -1
- package/dist/trinityal/vertexLayoutMatch.js +2 -2
- package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
- package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
- package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
- package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
- package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
- package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
- package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +12 -11
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/audio/reference/classes/trinity.md +44 -34
- package/docs/character/architecture.md +276 -0
- package/docs/character/reference/character-appearance-plans.md +30 -66
- package/docs/character/reference/prepared-libraries.md +14 -30
- package/docs/global/reference/api.md +2 -1
- package/docs/global/reference/classes/README.md +53 -71
- package/docs/global/reference/classes/dropped.md +16 -0
- package/docs/resource/README.md +19 -15
- package/docs/resource/architecture.md +9 -2
- package/docs/resource/concepts/format-capabilities.md +124 -80
- package/docs/resource/concepts/shared-format-helpers.md +94 -0
- package/docs/resource/formats/README.md +230 -224
- package/docs/resource/formats/bitknit2.md +221 -0
- package/docs/resource/formats/carbon-effect-container.md +184 -269
- package/docs/resource/formats/gr2.md +6 -1
- package/docs/resource/formats/schemabound.md +28 -48
- package/docs/resource/formats/static.md +70 -97
- package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
- package/docs/resource/formats/webgl/decl-io.md +165 -256
- package/docs/resource/formats/webgl/memory-structured.md +64 -142
- package/docs/resource/formats/webgl/texture-sample.md +109 -138
- package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
- package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
- package/docs/resource/formats/webgpu/reference/api.md +64 -67
- package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
- package/docs/resource/reference/classes/core.md +256 -236
- package/docs/resource/reference/classes/formats.md +1668 -1672
- package/docs/resource/reference/workers.md +4 -2
- package/docs/sof/reference/classes/core.md +1 -1
- package/docs/sof/reference/classes/faction.md +2 -2
- package/docs/sof/reference/classes/generic.md +4 -4
- package/docs/sof/reference/classes/pattern.md +1 -1
- package/docs/sof/reference/classes/shared.md +10 -10
- package/docs/trinity/architecture.md +55 -44
- package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
- package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
- package/docs/trinity/reference/classes/dropped.md +0 -189
- package/docs/trinity/reference/classes/eve-runtime.md +8 -8
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/particle.md +2 -2
- package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
- package/docs/trinity/reference/implementation-status.md +50 -75
- package/docs/trinity/reference/main-semantic-extraction.md +13 -17
- package/docs/trinityal/reference/classes/README.md +77 -27
- package/docs/trinityal/reference/classes/dropped.md +92 -0
- package/docs/trinityal/webgpu/README.md +3 -1
- package/docs/trinityal/webgpu/architecture.md +121 -228
- package/docs/trinityal/webgpu/reference/api.md +5 -5
- package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
- package/format-notices/gr2/NOTICE +18 -12
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
- package/package.json +4 -1
- package/dist/audio/trinity/audio/AudActionLog.js +0 -173
- package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
- package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
- package/dist/global/contracts/CjsScriptCallback.js +0 -94
- package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
- package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
- package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
- package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
- package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
- package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
- package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
- package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
- package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
- package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
- package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
- package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
- package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
- package/dist/trinity/core/rawData/constantLayout.js +0 -175
- package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
- package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
- package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
- package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
- package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
- package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
- package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
- package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
- package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
- package/dist/trinityal/Tr2SamplerDescription.js +0 -72
- package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
- package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
- package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
- package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
- package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
- package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
- package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
- package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
- package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
- package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tr2CurveRandomAxisRotation.js","sources":["../../../../../src/trinity/curves/curve/Tr2CurveRandomAxisRotation.js"],"sourcesContent":["// Source: trinity/trinity/Curves/Tr2CurveRandomAxisRotation.h\r\n// Source: trinity/trinity/Curves/Tr2CurveRandomAxisRotation.cpp\r\nimport { fromYawPitchRoll, quat } from \"#math/quat\";\r\nimport { CjsModel } from \"#model\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\n\r\n\r\n/**\r\n * Quaternion curve that spins at a fixed rate of one revolution per `period`\r\n * seconds about an axis fixed by two seed-derived random rotations applied\r\n * before and after the spin.\r\n */\r\n@type.define({\r\n className: \"Tr2CurveRandomAxisRotation\",\r\n family: \"curves\"\r\n})\r\nexport class Tr2CurveRandomAxisRotation extends CjsModel\r\n{\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.read\r\n @type.quat\r\n currentValue = quat.create();\r\n\r\n @io.persist\r\n @type.float32\r\n period = 1;\r\n\r\n @io.persistOnly\r\n @type.uint32\r\n seed = 0;\r\n\r\n /**\r\n * Source runtime state; not exposed by Carbon's Blue schema.\r\n */\r\n preRotation = quat.create();\r\n\r\n /**\r\n * Source runtime state; not exposed by Carbon's Blue schema.\r\n */\r\n postRotation = quat.create();\r\n\r\n #rotation = quat.create();\r\n\r\n /**\r\n * Updates the cached quaternion value for the supplied time.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateValue(time)\r\n {\r\n this.GetValueAt(time, this.currentValue);\r\n }\r\n\r\n /**\r\n * Updates the cached value and copies it into `out`.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Update(time, out)\r\n {\r\n this.UpdateValue(time);\r\n return quat.copy(out, this.currentValue);\r\n }\r\n\r\n /**\r\n * Gets the quaternion value at `time` into `out`.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetValueAt(time, out)\r\n {\r\n return this.Evaluate(out, time);\r\n }\r\n\r\n /**\r\n * Derivative stub retained for Carbon interface compatibility.\r\n */\r\n @carbon.method\r\n @impl.noop\r\n GetValueDotAt(_time, out)\r\n {\r\n return out;\r\n }\r\n\r\n /**\r\n * Second-derivative stub retained for Carbon interface compatibility.\r\n */\r\n @carbon.method\r\n @impl.noop\r\n GetValueDoubleDotAt(_time, out)\r\n {\r\n return out;\r\n }\r\n\r\n /**\r\n * Gets the quaternion value at `time` into `out`.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetValue(time, out)\r\n {\r\n return this.GetValueAt(time, out);\r\n }\r\n\r\n /**\r\n * Evaluates Carbon's row-vector chain post * pitch * pre (post applied\r\n * first, pre last) - gl composes it as pre . pitch . post.\r\n */\r\n Evaluate(out, time)\r\n {\r\n quat.copy(out, this.postRotation);\r\n if (this.period !== 0)\r\n {\r\n const angle = time / Math.abs(this.period) * Math.PI * 2;\r\n fromYawPitchRoll(this.#rotation, 0, angle, 0);\r\n quat.multiply(out, this.#rotation, out);\r\n }\r\n return quat.multiply(out, this.preRotation, out);\r\n }\r\n\r\n /**\r\n * Rebuilds random rotations when a persisted seed is available.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n if (this.seed !== 0)\r\n {\r\n this.SeedChanged();\r\n this.UpdateValues({ property: \"seed\", source: this, skipEvents: true });\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Gets the deterministic seed value.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetSeed()\r\n {\r\n return this.seed;\r\n }\r\n\r\n /**\r\n * Sets the deterministic seed value and rebuilds random rotations.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetSeed(seed, options = {})\r\n {\r\n const changed = this.SetValues({ seed: seed >>> 0 }, { ...options, skipUpdate: true, returnBoolean: true });\r\n if (!changed) return false;\r\n this.SeedChanged();\r\n if (options.skipUpdate !== true)\r\n {\r\n this.UpdateValues({ ...options, source: options.source ?? this });\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Rebuilds pre/post random rotations.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SeedChanged()\r\n {\r\n const random = this.seed !== 0 ? Tr2CurveRandomAxisRotation.#makeMsvcDefaultRandomEngine(this.seed) : Math.random;\r\n Tr2CurveRandomAxisRotation.#buildCarbonRandomRotation(this.preRotation, random);\r\n Tr2CurveRandomAxisRotation.#buildCarbonRandomRotation(this.postRotation, random);\r\n }\r\n\r\n /**\r\n * Draws roll, pitch and yaw from the supplied generator in that order -\r\n * matching Carbon's draw order, which fixes the resulting rotation for a given\r\n * seed - and writes the quaternion into `out`.\r\n */\r\n static #buildCarbonRandomRotation(out, random)\r\n {\r\n const roll = Tr2CurveRandomAxisRotation.#randomAngle(random);\r\n const pitch = Tr2CurveRandomAxisRotation.#randomAngle(random);\r\n const yaw = Tr2CurveRandomAxisRotation.#randomAngle(random);\r\n return fromYawPitchRoll(out, yaw, pitch, roll);\r\n }\r\n\r\n /** Draws one angle uniformly in [0, 2pi) radians from the supplied generator. */\r\n static #randomAngle(random)\r\n {\r\n return random() * Math.PI * 2;\r\n }\r\n\r\n /**\r\n * Builds a [0, 1] generator over a Mersenne Twister seeded like MSVC's\r\n * default_random_engine, so a persisted seed reproduces Carbon's rotations.\r\n */\r\n static #makeMsvcDefaultRandomEngine(seed)\r\n {\r\n const engine = new CjsMt19937(seed >>> 0);\r\n return () => engine.Next() / 0xffffffff;\r\n }\r\n}\r\n\r\n/**\r\n * Deterministic MT19937 Mersenne Twister used to reproduce the C++ standard\r\n * library's default random sequence from a persisted seed.\r\n */\r\nclass CjsMt19937\r\n{\r\n #state = new Uint32Array(624);\r\n\r\n #index = 624;\r\n\r\n /** Seeds the 624-word state with MT19937's standard initialisation recurrence. */\r\n constructor(seed)\r\n {\r\n this.#state[0] = seed >>> 0;\r\n for (let i = 1; i < this.#state.length; i++)\r\n {\r\n const previous = this.#state[i - 1];\r\n this.#state[i] = Math.imul(1812433253, previous ^ previous >>> 30) + i >>> 0;\r\n }\r\n }\r\n\r\n /**\r\n * Returns the next 32-bit unsigned value, regenerating the state block when\r\n * the previous 624 outputs are exhausted.\r\n */\r\n Next()\r\n {\r\n if (this.#index >= this.#state.length)\r\n {\r\n this.#twist();\r\n }\r\n let value = this.#state[this.#index++];\r\n value ^= value >>> 11;\r\n value ^= value << 7 & 0x9d2c5680;\r\n value ^= value << 15 & 0xefc60000;\r\n value ^= value >>> 18;\r\n return value >>> 0;\r\n }\r\n\r\n /** Regenerates the whole 624-word state block and rewinds the output cursor. */\r\n #twist()\r\n {\r\n for (let i = 0; i < this.#state.length; i++)\r\n {\r\n const next = (i + 1) % this.#state.length;\r\n const mix = this.#state[i] & 0x80000000 | this.#state[next] & 0x7fffffff;\r\n let value = this.#state[(i + 397) % this.#state.length] ^ mix >>> 1;\r\n if (mix & 1)\r\n {\r\n value ^= 0x9908b0df;\r\n }\r\n this.#state[i] = value >>> 0;\r\n }\r\n this.#index = 0;\r\n }\r\n}\r\n"],"names":["_Tr2CurveRandomAxisRo","_identity","Tr2CurveRandomAxisRotation","CjsModel","e","_init_name","_init_extra_name","_init_currentValue","_init_extra_currentValue","_init_period","_init_extra_period","_init_seed","_init_extra_seed","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","read","quat","float32","persistOnly","uint32","carbon","method","impl","implemented","adapted","noop","name","currentValue","create","period","seed","preRotation","postRotation","UpdateValue","time","GetValueAt","Update","out","copy","Evaluate","GetValueDotAt","_time","GetValueDoubleDotAt","GetValue","angle","Math","abs","PI","fromYawPitchRoll","multiply","Initialize","SeedChanged","UpdateValues","property","source","skipEvents","GetSeed","SetSeed","options","changed","SetValues","skipUpdate","returnBoolean","random","#buildCarbonRandomRotation","roll","pitch","yaw","#randomAngle","#makeMsvcDefaultRandomEngine","engine","CjsMt19937","Next","constructor","Uint32Array","i","length","previous","imul","value","#twist","next","mix"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tr2CurveRandomAxisRotation.js","sources":["../../../../../src/trinity/curves/curve/Tr2CurveRandomAxisRotation.js"],"sourcesContent":["// Source: trinity/trinity/Curves/Tr2CurveRandomAxisRotation.h\n// Source: trinity/trinity/Curves/Tr2CurveRandomAxisRotation.cpp\nimport { random } from \"#math/random\";\nimport { fromYawPitchRoll, quat } from \"#math/quat\";\nimport { CjsModel } from \"#model\";\nimport { carbon, impl, io, type } from \"#schema\";\n\n\n/**\n * Quaternion curve that spins at a fixed rate of one revolution per `period`\n * seconds about an axis fixed by two seed-derived random rotations applied\n * before and after the spin.\n */\n@type.define({\n className: \"Tr2CurveRandomAxisRotation\",\n family: \"curves\"\n})\nexport class Tr2CurveRandomAxisRotation extends CjsModel\n{\n @io.persist\n @type.string\n name = \"\";\n\n @io.read\n @type.quat\n currentValue = quat.create();\n\n @io.persist\n @type.float32\n period = 1;\n\n @io.persistOnly\n @type.uint32\n seed = 0;\n\n /**\n * Source runtime state; not exposed by Carbon's Blue schema.\n */\n preRotation = quat.create();\n\n /**\n * Source runtime state; not exposed by Carbon's Blue schema.\n */\n postRotation = quat.create();\n\n #rotation = quat.create();\n\n /**\n * Updates the cached quaternion value for the supplied time.\n */\n @carbon.method\n @impl.implemented\n UpdateValue(time)\n {\n this.GetValueAt(time, this.currentValue);\n }\n\n /**\n * Updates the cached value and copies it into `out`.\n */\n @carbon.method\n @impl.adapted\n Update(time, out)\n {\n this.UpdateValue(time);\n return quat.copy(out, this.currentValue);\n }\n\n /**\n * Gets the quaternion value at `time` into `out`.\n */\n @carbon.method\n @impl.adapted\n GetValueAt(time, out)\n {\n return this.Evaluate(out, time);\n }\n\n /**\n * Derivative stub retained for Carbon interface compatibility.\n */\n @carbon.method\n @impl.noop\n GetValueDotAt(_time, out)\n {\n return out;\n }\n\n /**\n * Second-derivative stub retained for Carbon interface compatibility.\n */\n @carbon.method\n @impl.noop\n GetValueDoubleDotAt(_time, out)\n {\n return out;\n }\n\n /**\n * Gets the quaternion value at `time` into `out`.\n */\n @carbon.method\n @impl.adapted\n GetValue(time, out)\n {\n return this.GetValueAt(time, out);\n }\n\n /**\n * Evaluates Carbon's row-vector chain post * pitch * pre (post applied\n * first, pre last) - gl composes it as pre . pitch . post.\n */\n Evaluate(out, time)\n {\n quat.copy(out, this.postRotation);\n if (this.period !== 0)\n {\n const angle = time / Math.abs(this.period) * Math.PI * 2;\n fromYawPitchRoll(this.#rotation, 0, angle, 0);\n quat.multiply(out, this.#rotation, out);\n }\n return quat.multiply(out, this.preRotation, out);\n }\n\n /**\n * Rebuilds random rotations when a persisted seed is available.\n */\n @carbon.method\n @impl.adapted\n Initialize()\n {\n if (this.seed !== 0)\n {\n this.SeedChanged();\n this.UpdateValues({ property: \"seed\", source: this, skipEvents: true });\n }\n return true;\n }\n\n /**\n * Gets the deterministic seed value.\n */\n @carbon.method\n @impl.implemented\n GetSeed()\n {\n return this.seed;\n }\n\n /**\n * Sets the deterministic seed value and rebuilds random rotations.\n */\n @carbon.method\n @impl.adapted\n SetSeed(seed, options = {})\n {\n const changed = this.SetValues({ seed: seed >>> 0 }, { ...options, skipUpdate: true, returnBoolean: true });\n if (!changed) return false;\n this.SeedChanged();\n if (options.skipUpdate !== true)\n {\n this.UpdateValues({ ...options, source: options.source ?? this });\n }\n return true;\n }\n\n /**\n * Rebuilds pre/post random rotations.\n */\n @carbon.method\n @impl.adapted\n SeedChanged()\n {\n const engine = this.seed !== 0 ? Tr2CurveRandomAxisRotation.#makeMsvcDefaultRandomEngine(this.seed) : Math.random;\n Tr2CurveRandomAxisRotation.#buildCarbonRandomRotation(this.preRotation, engine);\n Tr2CurveRandomAxisRotation.#buildCarbonRandomRotation(this.postRotation, engine);\n }\n\n /**\n * Draws roll, pitch and yaw from the supplied generator in that order -\n * matching Carbon's draw order, which fixes the resulting rotation for a given\n * seed - and writes the quaternion into `out`.\n */\n static #buildCarbonRandomRotation(out, engine)\n {\n const roll = Tr2CurveRandomAxisRotation.#randomAngle(engine);\n const pitch = Tr2CurveRandomAxisRotation.#randomAngle(engine);\n const yaw = Tr2CurveRandomAxisRotation.#randomAngle(engine);\n return fromYawPitchRoll(out, yaw, pitch, roll);\n }\n\n /** Draws one angle uniformly in [0, 2pi) radians from the supplied generator. */\n static #randomAngle(engine)\n {\n return engine() * Math.PI * 2;\n }\n\n /**\n * Builds a [0, 1] generator over a Mersenne Twister seeded like MSVC's\n * default_random_engine, so a persisted seed reproduces Carbon's rotations.\n */\n static #makeMsvcDefaultRandomEngine(seed)\n {\n const engine = random.mt19937(seed >>> 0);\n return () => engine() / 0xffffffff;\n }\n}\n"],"names":["_Tr2CurveRandomAxisRo","_identity","Tr2CurveRandomAxisRotation","CjsModel","e","_init_name","_init_extra_name","_init_currentValue","_init_extra_currentValue","_init_period","_init_extra_period","_init_seed","_init_extra_seed","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","read","quat","float32","persistOnly","uint32","carbon","method","impl","implemented","adapted","noop","name","currentValue","create","period","seed","preRotation","postRotation","UpdateValue","time","GetValueAt","Update","out","copy","Evaluate","GetValueDotAt","_time","GetValueDoubleDotAt","GetValue","angle","Math","abs","PI","fromYawPitchRoll","multiply","Initialize","SeedChanged","UpdateValues","property","source","skipEvents","GetSeed","SetSeed","options","changed","SetValues","skipUpdate","returnBoolean","engine","random","#buildCarbonRandomRotation","roll","pitch","yaw","#randomAngle","#makeMsvcDefaultRandomEngine","mt19937","constructor"],"mappings":";;;;;;;;AAQA;AACA;AACA;AACA;AACA;AAJA,IAAAA;AAAA,IAAA,cAAAC,SAAA,CAAA;AAAA,EAAA,QAKA,MAAAC,0BAAA,SAIgDC,QAAQ,CACxD;AAAA,IAAA;AAAA,MAAA,CAAA;AAAAC,QAAAA,CAAA,GAAAC,UAAA,EAAAC,gBAAA,EAAAC,kBAAA,EAAAC,wBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,UAAA,CAAA;QAAAC,CAAA,EAAA,CAAAd,qBAAA,EAAAe,UAAA;AAAA,OAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CALCC,IAAI,CAACC,MAAM,CAAC;AACXC,QAAAA,SAAS,EAAE,4BAA4B;AACvCC,QAAAA,MAAM,EAAE;AACV,OAAC,CAAC,CAAA,EAAA,CAAA,CAAA,CAGCC,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACM,MAAM,kBAGXF,EAAE,EAAFA,EAAE,CAACG,IAAI,EACPP,IAAI,EAAJA,IAAI,CAACQ,IAAI,CAAA,EAAA,EAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAGTJ,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACS,OAAO,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAGZL,EAAE,EAAFA,EAAE,CAACM,WAAW,EACdV,IAAI,EAAJA,IAAI,CAACW,MAAM,kBAkBXC,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAShBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAUZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CASZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACG,IAAI,2BASTL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACG,IAAI,CAAA,EAAA,EAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CASTL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAyBZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,wBAcZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAShBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAgBZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,mCAzJiC9B,QAAQ,CAAA;AAAA;AAItDgC,IAAAA,IAAI,IAAAtB,UAAA,CAAA,IAAA,CAAA,EAAAR,UAAA,OAAG,EAAE,CAAA;IAIT+B,YAAY,IAAA9B,gBAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,OAAGkB,IAAI,CAACY,MAAM,EAAE,CAAA;AAI5BC,IAAAA,MAAM,IAAA9B,wBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,CAAC,CAAA;AAIV8B,IAAAA,IAAI,IAAA7B,kBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,CAAC,CAAA;;AAER;AACF;AACA;AACE6B,IAAAA,WAAW,IAAA5B,gBAAA,CAAA,IAAA,CAAA,EAAGa,IAAI,CAACY,MAAM,EAAE;;AAE3B;AACF;AACA;AACEI,IAAAA,YAAY,GAAGhB,IAAI,CAACY,MAAM,EAAE;AAE5B,IAAA,SAAS,GAAGZ,IAAI,CAACY,MAAM,EAAE;;AAEzB;AACF;AACA;IAGEK,WAAWA,CAACC,IAAI,EAChB;MACE,IAAI,CAACC,UAAU,CAACD,IAAI,EAAE,IAAI,CAACP,YAAY,CAAC;AAC1C,IAAA;;AAEA;AACF;AACA;AAGES,IAAAA,MAAMA,CAACF,IAAI,EAAEG,GAAG,EAChB;AACE,MAAA,IAAI,CAACJ,WAAW,CAACC,IAAI,CAAC;MACtB,OAAOlB,IAAI,CAACsB,IAAI,CAACD,GAAG,EAAE,IAAI,CAACV,YAAY,CAAC;AAC1C,IAAA;;AAEA;AACF;AACA;AAGEQ,IAAAA,UAAUA,CAACD,IAAI,EAAEG,GAAG,EACpB;AACE,MAAA,OAAO,IAAI,CAACE,QAAQ,CAACF,GAAG,EAAEH,IAAI,CAAC;AACjC,IAAA;;AAEA;AACF;AACA;AAGEM,IAAAA,aAAaA,CAACC,KAAK,EAAEJ,GAAG,EACxB;AACE,MAAA,OAAOA,GAAG;AACZ,IAAA;;AAEA;AACF;AACA;AAGEK,IAAAA,mBAAmBA,CAACD,KAAK,EAAEJ,GAAG,EAC9B;AACE,MAAA,OAAOA,GAAG;AACZ,IAAA;;AAEA;AACF;AACA;AAGEM,IAAAA,QAAQA,CAACT,IAAI,EAAEG,GAAG,EAClB;AACE,MAAA,OAAO,IAAI,CAACF,UAAU,CAACD,IAAI,EAAEG,GAAG,CAAC;AACnC,IAAA;;AAEA;AACF;AACA;AACA;AACEE,IAAAA,QAAQA,CAACF,GAAG,EAAEH,IAAI,EAClB;MACElB,IAAI,CAACsB,IAAI,CAACD,GAAG,EAAE,IAAI,CAACL,YAAY,CAAC;AACjC,MAAA,IAAI,IAAI,CAACH,MAAM,KAAK,CAAC,EACrB;AACE,QAAA,MAAMe,KAAK,GAAGV,IAAI,GAAGW,IAAI,CAACC,GAAG,CAAC,IAAI,CAACjB,MAAM,CAAC,GAAGgB,IAAI,CAACE,EAAE,GAAG,CAAC;QACxDC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAEJ,KAAK,EAAE,CAAC,CAAC;QAC7C5B,IAAI,CAACiC,QAAQ,CAACZ,GAAG,EAAE,IAAI,CAAC,SAAS,EAAEA,GAAG,CAAC;AACzC,MAAA;MACA,OAAOrB,IAAI,CAACiC,QAAQ,CAACZ,GAAG,EAAE,IAAI,CAACN,WAAW,EAAEM,GAAG,CAAC;AAClD,IAAA;;AAEA;AACF;AACA;AAGEa,IAAAA,UAAUA,GACV;AACE,MAAA,IAAI,IAAI,CAACpB,IAAI,KAAK,CAAC,EACnB;QACE,IAAI,CAACqB,WAAW,EAAE;QAClB,IAAI,CAACC,YAAY,CAAC;AAAEC,UAAAA,QAAQ,EAAE,MAAM;AAAEC,UAAAA,MAAM,EAAE,IAAI;AAAEC,UAAAA,UAAU,EAAE;AAAK,SAAC,CAAC;AACzE,MAAA;AACA,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AAGEC,IAAAA,OAAOA,GACP;MACE,OAAO,IAAI,CAAC1B,IAAI;AAClB,IAAA;;AAEA;AACF;AACA;AAGE2B,IAAAA,OAAOA,CAAC3B,IAAI,EAAE4B,OAAO,GAAG,EAAE,EAC1B;AACE,MAAA,MAAMC,OAAO,GAAG,IAAI,CAACC,SAAS,CAAC;QAAE9B,IAAI,EAAEA,IAAI,KAAK;AAAE,OAAC,EAAE;AAAE,QAAA,GAAG4B,OAAO;AAAEG,QAAAA,UAAU,EAAE,IAAI;AAAEC,QAAAA,aAAa,EAAE;AAAK,OAAC,CAAC;AAC3G,MAAA,IAAI,CAACH,OAAO,EAAE,OAAO,KAAK;MAC1B,IAAI,CAACR,WAAW,EAAE;AAClB,MAAA,IAAIO,OAAO,CAACG,UAAU,KAAK,IAAI,EAC/B;QACE,IAAI,CAACT,YAAY,CAAC;AAAE,UAAA,GAAGM,OAAO;AAAEJ,UAAAA,MAAM,EAAEI,OAAO,CAACJ,MAAM,IAAI;AAAK,SAAC,CAAC;AACnE,MAAA;AACA,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AAGEH,IAAAA,WAAWA,GACX;MACE,MAAMY,MAAM,GAAG,IAAI,CAACjC,IAAI,KAAK,CAAC,GAAGrC,qBAA0B,CAAC,4BAA4B,CAAC,IAAI,CAACqC,IAAI,CAAC,GAAGe,IAAI,CAACmB,MAAM;MACjHvE,qBAA0B,CAAC,0BAA0B,CAAC,IAAI,CAACsC,WAAW,EAAEgC,MAAM,CAAC;MAC/EtE,qBAA0B,CAAC,0BAA0B,CAAC,IAAI,CAACuC,YAAY,EAAE+B,MAAM,CAAC;AAClF,IAAA;;AAEA;AACF;AACA;AACA;AACA;;AASE;;AAMA;AACF;AACA;AACA;GAMC;AAvBQ,EAAA,0BAA0BE,CAAC5B,GAAG,EAAE0B,MAAM,EAC7C;IACE,MAAMG,IAAI,GAAGzE,qBAA0B,CAAC,YAAY,CAACsE,MAAM,CAAC;IAC5D,MAAMI,KAAK,GAAG1E,qBAA0B,CAAC,YAAY,CAACsE,MAAM,CAAC;IAC7D,MAAMK,GAAG,GAAG3E,qBAA0B,CAAC,YAAY,CAACsE,MAAM,CAAC;IAC3D,OAAOf,gBAAgB,CAACX,GAAG,EAAE+B,GAAG,EAAED,KAAK,EAAED,IAAI,CAAC;AAChD,EAAA;EAGO,YAAYG,CAACN,MAAM,EAC1B;IACE,OAAOA,MAAM,EAAE,GAAGlB,IAAI,CAACE,EAAE,GAAG,CAAC;AAC/B,EAAA;EAMO,4BAA4BuB,CAACxC,IAAI,EACxC;IACE,MAAMiC,MAAM,GAAGC,MAAM,CAACO,OAAO,CAACzC,IAAI,KAAK,CAAC,CAAC;AACzC,IAAA,OAAO,MAAMiC,MAAM,EAAE,GAAG,UAAU;AACpC,EAAA;EAACS,WAAAA,GAAA;IAAA,KAAA,CAAAjF,qBAAA,GAAAe,UAAA,EAAA;AAAA,EAAA;AAAA,CAAA,EAAA;;;;"}
|
|
@@ -5,8 +5,12 @@ import { vec3 } from '#math/vec3';
|
|
|
5
5
|
import { vec4 } from '#math/vec4';
|
|
6
6
|
import { CjsModel } from '#model';
|
|
7
7
|
import { carbon, impl, type } from '#schema';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { EveChildPartDataPartData as _EveChildPartDataPart } from './child/EveChildPartData/EveChildPartDataPartData.js';
|
|
9
|
+
import { EveChildPartData as _EveChildPartData } from './child/EveChildPartData/EveChildPartData.js';
|
|
10
|
+
import './child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js';
|
|
11
|
+
import './child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js';
|
|
12
|
+
import './child/EveChildInstancedMeshes/EveChildInstancedMesh.js';
|
|
13
|
+
import { EveChildInstancedMeshes as _EveChildInstancedMes } from './child/EveChildInstancedMeshes/EveChildInstancedMeshes.js';
|
|
10
14
|
import { EveStation2 as _EveStation } from './spaceObject/EveStation2.js';
|
|
11
15
|
import { Tr2Lod } from '#consts/trinity';
|
|
12
16
|
|
|
@@ -41,7 +45,7 @@ new class extends _identity {
|
|
|
41
45
|
this.#data = new _EveChildPartData();
|
|
42
46
|
object.AddToEffectChildrenList(this.#data);
|
|
43
47
|
}
|
|
44
|
-
this.#instancedMeshes = object.effectChildren.find(child => child instanceof
|
|
48
|
+
this.#instancedMeshes = object.effectChildren.find(child => child instanceof _EveChildInstancedMes) ?? null;
|
|
45
49
|
return this;
|
|
46
50
|
}
|
|
47
51
|
|
|
@@ -58,7 +62,7 @@ new class extends _identity {
|
|
|
58
62
|
// Runtime SOF composes through GetValues/SetValues and may replace the
|
|
59
63
|
// whole child list. Reacquire graph-owned records before mutating them.
|
|
60
64
|
this.#data = this.#object.effectChildren.find(child => child instanceof _EveChildPartData) ?? null;
|
|
61
|
-
this.#instancedMeshes = this.#object.effectChildren.find(child => child instanceof
|
|
65
|
+
this.#instancedMeshes = this.#object.effectChildren.find(child => child instanceof _EveChildInstancedMes) ?? null;
|
|
62
66
|
const part = new _EveChildPartDataPart();
|
|
63
67
|
part.partId = id;
|
|
64
68
|
vec3.copy(part.position, position);
|
|
@@ -152,7 +156,7 @@ new class extends _identity {
|
|
|
152
156
|
// OUTSIDE the partTag gate (Carbon EveModularObjectModifier.cpp:225-228,
|
|
153
157
|
// PLAT-11963): the shared instanced child carries many parts' instances
|
|
154
158
|
// under its own aggregate tag; the per-part filter lives in the method.
|
|
155
|
-
if (child instanceof
|
|
159
|
+
if (child instanceof _EveChildInstancedMes) {
|
|
156
160
|
child.SetInstanceTransformByPartTag(part.partId, position, rotation, scale);
|
|
157
161
|
}
|
|
158
162
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveModularObjectModifier.js","sources":["../../../../src/trinity/eve/EveModularObjectModifier.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveModularObjectModifier.h\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveModularObjectModifier.cpp\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveModularObjectModifier_Blue.cpp\nimport { mat4 } from \"#math/mat4\";\nimport { quat } from \"#math/quat\";\nimport { vec3 } from \"#math/vec3\";\nimport { vec4 } from \"#math/vec4\";\nimport { CjsModel } from \"#model\";\nimport { carbon, impl, type } from \"#schema\";\nimport { EveChildPartData, EveChildPartDataPartData } from \"./child/EveChildPartData.js\";\nimport { EveChildInstancedMeshes } from \"./child/EveChildInstancedMeshes.js\";\nimport { EveStation2 } from \"./spaceObject/EveStation2.js\";\nimport { Tr2Lod } from \"./EveLODHelper.js\";\n\n\n/** Transient edit session for one modular EveSpaceObject2. */\n@type.define({ className: \"EveModularObjectModifier\", family: \"eve\" })\nexport class EveModularObjectModifier extends CjsModel\n{\n #object = null;\n\n #data = null;\n\n #instancedMeshes = null;\n\n #sof = null;\n\n #objectLoader = null;\n\n /** Opens an edit session and creates persistent part data when absent. */\n @carbon.method\n @impl.adapted\n Create(object, sof, objectLoader = null)\n {\n this.#object = object;\n this.#sof = sof;\n this.#objectLoader = objectLoader;\n this.#data = object.effectChildren.find(child => child instanceof EveChildPartData) ?? null;\n if (!this.#data)\n {\n this.#data = new EveChildPartData();\n object.AddToEffectChildrenList(this.#data);\n }\n this.#instancedMeshes = object.effectChildren.find(\n child => child instanceof EveChildInstancedMeshes) ?? null;\n return this;\n }\n\n /** Builds and attaches one SOF hull part, returning its unique part tag. */\n @carbon.method\n @impl.implemented\n AddHull(hullName, factionName, raceName, position, rotation, scale)\n {\n this.#AssertReady();\n const id = this.#AllocatePartId();\n const dna = `${hullName}:${factionName || this.#data.faction}:${raceName || this.#data.race}`;\n const transform = mat4.fromRotationTranslationScale(mat4.create(), rotation, position, scale);\n if (!this.#sof.BuildChild(this.#object, dna, id, transform))\n {\n return EveModularObjectModifier.INVALID_PART_TAG;\n }\n\n // Runtime SOF composes through GetValues/SetValues and may replace the\n // whole child list. Reacquire graph-owned records before mutating them.\n this.#data = this.#object.effectChildren.find(\n child => child instanceof EveChildPartData) ?? null;\n this.#instancedMeshes = this.#object.effectChildren.find(\n child => child instanceof EveChildInstancedMeshes) ?? null;\n\n const part = new EveChildPartDataPartData();\n part.partId = id;\n vec3.copy(part.position, position);\n quat.copy(part.rotation, rotation);\n vec3.copy(part.scale, scale);\n vec4.set(part.boundingSphere,\n this.#object.boundingSphereCenter[0],\n this.#object.boundingSphereCenter[1],\n this.#object.boundingSphereCenter[2],\n this.#object.boundingSphereRadius);\n this.#data.parts.push(part);\n this.#object.InvalidateMergedLocators(\"structure\");\n this.#UpdateImpactOverlayLocatorCount();\n this.ApplyBounds();\n return id;\n }\n\n /** Loads and attaches one resource child, returning its unique part tag. */\n @carbon.method\n @impl.adapted\n AddChild(resourcePath, position, rotation, scale)\n {\n this.#AssertReady();\n if (!this.#objectLoader)\n {\n throw new Error(\"EveModularObjectModifier.AddChild requires a CjsEveChildResourceLoader.\");\n }\n\n const child = this.#objectLoader.LoadChild(String(resourcePath), this.#object);\n if (!child) return EveModularObjectModifier.INVALID_PART_TAG;\n\n child.Setup(scale, rotation, position, Tr2Lod.TR2_LOD_LOW);\n this.#object.AddToEffectChildrenList(child);\n const id = this.#AllocatePartId();\n child.SetPartTag(id);\n\n const part = new EveChildPartDataPartData();\n part.partId = id;\n vec3.copy(part.position, position);\n quat.copy(part.rotation, rotation);\n vec3.copy(part.scale, scale);\n this.#data.parts.push(part);\n this.#object.InvalidateMergedLocators(\"structure\");\n this.ApplyBounds();\n return id;\n }\n\n /** Removes a modular part and every child carrying its tag. */\n @carbon.method\n @impl.implemented\n Remove(partId)\n {\n const part = this.#GetPart(partId);\n for (let index = this.#object.effectChildren.length - 1; index >= 0; index--)\n {\n const child = this.#object.effectChildren[index];\n if (child.GetPartTag() === part.partId) this.#object.RemoveFromEffectChildrenList(child);\n }\n\n for (const set of this.#object.locatorSets)\n {\n set.locators = set.locators.filter(locator => locator.partTag !== part.partId);\n }\n if (this.#instancedMeshes) this.#instancedMeshes.RemoveInstancesByPartTag(part.partId);\n this.#data.parts.splice(this.#data.parts.indexOf(part), 1);\n this.#object.InvalidateMergedLocators(\"structure\");\n this.#object.ClearImpactDamage();\n this.#UpdateImpactOverlayLocatorCount();\n this.ApplyBounds();\n return true;\n }\n\n /** Replaces a modular part transform and updates its attached children. */\n @carbon.method\n @impl.adapted\n SetTransform(partId, position, rotation, scale)\n {\n const part = this.#GetPart(partId);\n const oldTransform = mat4.fromRotationTranslationScale(\n mat4.create(), part.rotation, part.position, part.scale);\n const newTransform = mat4.fromRotationTranslationScale(\n mat4.create(), rotation, position, scale);\n const inverseOld = mat4.create();\n if (!mat4.invert(inverseOld, oldTransform))\n {\n throw new Error(`Modular part ${part.partId} has a singular transform.`);\n }\n\n const inverseOldRotation = quat.invert(quat.create(), part.rotation);\n for (const set of this.#object.locatorSets)\n {\n for (const locator of set.locators)\n {\n if (locator.partTag !== part.partId) continue;\n locator.scale[0] = scale[0] / part.scale[0];\n locator.scale[1] = scale[1] / part.scale[1];\n locator.scale[2] = scale[2] / part.scale[2];\n // Carbon invOld.rotation * newRotation (row-vector composition) maps\n // to reversed gl-matrix quaternion operands.\n quat.multiply(locator.direction, rotation, inverseOldRotation);\n vec3.transformMat4(locator.position, locator.position, inverseOld);\n vec3.transformMat4(locator.position, locator.position, newTransform);\n }\n }\n\n const center = vec3.fromValues(\n part.boundingSphere[0], part.boundingSphere[1], part.boundingSphere[2]);\n vec3.transformMat4(center, center, inverseOld);\n vec3.transformMat4(center, center, newTransform);\n vec3.copy(part.boundingSphere, center);\n part.boundingSphere[3] *= Math.max(scale[0], scale[1], scale[2]) /\n Math.max(part.scale[0], part.scale[1], part.scale[2]);\n\n vec3.copy(part.position, position);\n quat.copy(part.rotation, rotation);\n vec3.copy(part.scale, scale);\n for (const child of this.#object.effectChildren)\n {\n if (child.GetPartTag() === part.partId)\n {\n child.Setup(scale, rotation, position, Tr2Lod.TR2_LOD_LOW);\n }\n // OUTSIDE the partTag gate (Carbon EveModularObjectModifier.cpp:225-228,\n // PLAT-11963): the shared instanced child carries many parts' instances\n // under its own aggregate tag; the per-part filter lives in the method.\n if (child instanceof EveChildInstancedMeshes)\n {\n child.SetInstanceTransformByPartTag(part.partId, position, rotation, scale);\n }\n }\n this.#object.InvalidateMergedLocators(\"partMoved\");\n this.ApplyBounds();\n return true;\n }\n\n /** Recomputes culling bounds from the current modular part spheres. */\n @carbon.method\n @impl.adapted\n ApplyBounds()\n {\n this.#AssertReady();\n const ordered = this.#data.parts.slice().sort(\n (left, right) => right.boundingSphere[3] - left.boundingSphere[3]);\n const bounds = vec4.create();\n const min = vec3.fromValues(Infinity, Infinity, Infinity);\n const max = vec3.fromValues(-Infinity, -Infinity, -Infinity);\n let hasBounds = false;\n\n for (const part of ordered)\n {\n includeSphere(bounds, part.boundingSphere, hasBounds);\n hasBounds = true;\n for (let axis = 0; axis < 3; axis++)\n {\n min[axis] = Math.min(min[axis], part.boundingSphere[axis] - part.boundingSphere[3]);\n max[axis] = Math.max(max[axis], part.boundingSphere[axis] + part.boundingSphere[3]);\n }\n }\n\n if (!hasBounds)\n {\n vec4.set(bounds, 0, 0, 0, 0);\n vec3.set(this.#object.shapeEllipsoidCenter, 0, 0, 0);\n vec3.set(this.#object.shapeEllipsoidRadius, 0, 0, 0);\n }\n else\n {\n vec3.lerp(this.#object.shapeEllipsoidCenter, min, max, 0.5);\n vec3.subtract(this.#object.shapeEllipsoidRadius, max, min);\n vec3.scale(\n this.#object.shapeEllipsoidRadius,\n this.#object.shapeEllipsoidRadius,\n Math.sqrt(3) * 0.5);\n }\n this.#object.SetBoundingSphereInformation(bounds);\n return bounds;\n }\n\n /** Copies a modular part's authored position. */\n @carbon.method\n @impl.implemented\n GetPosition(partId, out = vec3.create())\n {\n return vec3.copy(out, this.#GetPart(partId).position);\n }\n\n /** Copies a modular part's authored rotation. */\n @carbon.method\n @impl.implemented\n GetRotation(partId, out = quat.create())\n {\n return quat.copy(out, this.#GetPart(partId).rotation);\n }\n\n /** Copies a modular part's authored scale. */\n @carbon.method\n @impl.implemented\n GetScale(partId, out = vec3.create())\n {\n return vec3.copy(out, this.#GetPart(partId).scale);\n }\n\n /** Throws until the modifier has an object, part data and SOF service. */\n #AssertReady()\n {\n if (!this.#object || !this.#data || !this.#sof)\n {\n throw new Error(\"EveModularObjectModifier.Create must be called before editing.\");\n }\n }\n\n /** Resolves a modular part by its unsigned part tag. */\n #GetPart(partId)\n {\n this.#AssertReady();\n const id = Number(partId) >>> 0;\n const part = this.#data.parts.find(candidate => candidate.partId === id);\n if (!part) throw new RangeError(`Unknown modular part tag ${id}.`);\n return part;\n }\n\n /** Finds an unused nonzero tag across recorded parts and attached children. */\n #AllocatePartId()\n {\n let id = this.#data.GetUnusedPartID();\n for (const child of this.#object.effectChildren)\n {\n const tag = child.GetPartTag();\n if (tag !== 0) id = Math.max(id, (tag + 1) >>> 0);\n }\n return id >>> 0;\n }\n\n /** Refreshes the owning impact overlay after the locator graph changes. */\n #UpdateImpactOverlayLocatorCount()\n {\n if (!this.#object.impactOverlay) return;\n this.#object.EnsureChildLocatorMerged();\n this.#object.impactOverlay.SetDamageLocatorCount(this.#object.GetDamageLocatorCount());\n }\n\n static INVALID_PART_TAG = 0xffffffff;\n}\n\n\n/** Creates an empty modular station plus its edit session. */\nexport function CreateModularObject(sof, factionName = \"\", raceName = \"\", objectLoader = null)\n{\n const object = new EveStation2();\n const data = new EveChildPartData();\n data.faction = String(factionName);\n data.race = String(raceName);\n object.AddToEffectChildrenList(data);\n object.Initialize();\n return [ object, new EveModularObjectModifier().Create(object, sof, objectLoader) ];\n}\n\n\n/** Opens a modular edit session on an existing object. */\nexport function ModifyModularObject(object, sof, objectLoader = null)\n{\n return new EveModularObjectModifier().Create(object, sof, objectLoader);\n}\n\n\n/** Returns Carbon's reserved invalid modular-part tag. */\nexport function GetInvalidPartTag()\n{\n return EveModularObjectModifier.INVALID_PART_TAG;\n}\n\n\nfunction includeSphere(out, sphere, initialized)\n{\n if (!initialized)\n {\n vec4.copy(out, sphere);\n return;\n }\n\n const dx = sphere[0] - out[0];\n const dy = sphere[1] - out[1];\n const dz = sphere[2] - out[2];\n const distance = Math.hypot(dx, dy, dz);\n if (out[3] >= distance + sphere[3]) return;\n if (sphere[3] >= distance + out[3])\n {\n vec4.copy(out, sphere);\n return;\n }\n\n const radius = (distance + out[3] + sphere[3]) * 0.5;\n const shift = distance ? (radius - out[3]) / distance : 0;\n out[0] += dx * shift;\n out[1] += dy * shift;\n out[2] += dz * shift;\n out[3] = radius;\n}\n"],"names":["_EveModularObjectModi","_identity","EveModularObjectModifier","CjsModel","e","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","adapted","implemented","Create","object","sof","objectLoader","effectChildren","find","child","EveChildPartData","AddToEffectChildrenList","EveChildInstancedMeshes","AddHull","hullName","factionName","raceName","position","rotation","scale","id","dna","faction","race","transform","mat4","fromRotationTranslationScale","create","BuildChild","INVALID_PART_TAG","part","EveChildPartDataPartData","partId","vec3","copy","quat","vec4","set","boundingSphere","boundingSphereCenter","boundingSphereRadius","parts","push","InvalidateMergedLocators","ApplyBounds","AddChild","resourcePath","Error","LoadChild","String","Setup","Tr2Lod","TR2_LOD_LOW","SetPartTag","Remove","index","length","GetPartTag","RemoveFromEffectChildrenList","locatorSets","locators","filter","locator","partTag","RemoveInstancesByPartTag","splice","indexOf","ClearImpactDamage","SetTransform","oldTransform","newTransform","inverseOld","invert","inverseOldRotation","multiply","direction","transformMat4","center","fromValues","Math","max","SetInstanceTransformByPartTag","ordered","slice","sort","left","right","bounds","min","Infinity","hasBounds","includeSphere","axis","shapeEllipsoidCenter","shapeEllipsoidRadius","lerp","subtract","sqrt","SetBoundingSphereInformation","GetPosition","out","GetRotation","GetScale","#AssertReady","#GetPart","Number","candidate","RangeError","#AllocatePartId","GetUnusedPartID","tag","#UpdateImpactOverlayLocatorCount","impactOverlay","EnsureChildLocatorMerged","SetDamageLocatorCount","GetDamageLocatorCount","constructor","CreateModularObject","EveStation2","data","Initialize","ModifyModularObject","GetInvalidPartTag","sphere","initialized","dx","dy","dz","distance","hypot","radius","shift"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveModularObjectModifier.js","sources":["../../../../src/trinity/eve/EveModularObjectModifier.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveModularObjectModifier.h\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveModularObjectModifier.cpp\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveModularObjectModifier_Blue.cpp\nimport { mat4 } from \"#math/mat4\";\nimport { quat } from \"#math/quat\";\nimport { vec3 } from \"#math/vec3\";\nimport { vec4 } from \"#math/vec4\";\nimport { CjsModel } from \"#model\";\nimport { carbon, impl, type } from \"#schema\";\nimport { EveChildPartData, EveChildPartDataPartData } from \"./child/EveChildPartData/index.js\";\nimport { EveChildInstancedMeshes } from \"./child/EveChildInstancedMeshes/index.js\";\nimport { EveStation2 } from \"./spaceObject/EveStation2.js\";\nimport { Tr2Lod } from \"./EveLODHelper.js\";\n\n\n/** Transient edit session for one modular EveSpaceObject2. */\n@type.define({ className: \"EveModularObjectModifier\", family: \"eve\" })\nexport class EveModularObjectModifier extends CjsModel\n{\n #object = null;\n\n #data = null;\n\n #instancedMeshes = null;\n\n #sof = null;\n\n #objectLoader = null;\n\n /** Opens an edit session and creates persistent part data when absent. */\n @carbon.method\n @impl.adapted\n Create(object, sof, objectLoader = null)\n {\n this.#object = object;\n this.#sof = sof;\n this.#objectLoader = objectLoader;\n this.#data = object.effectChildren.find(child => child instanceof EveChildPartData) ?? null;\n if (!this.#data)\n {\n this.#data = new EveChildPartData();\n object.AddToEffectChildrenList(this.#data);\n }\n this.#instancedMeshes = object.effectChildren.find(\n child => child instanceof EveChildInstancedMeshes) ?? null;\n return this;\n }\n\n /** Builds and attaches one SOF hull part, returning its unique part tag. */\n @carbon.method\n @impl.implemented\n AddHull(hullName, factionName, raceName, position, rotation, scale)\n {\n this.#AssertReady();\n const id = this.#AllocatePartId();\n const dna = `${hullName}:${factionName || this.#data.faction}:${raceName || this.#data.race}`;\n const transform = mat4.fromRotationTranslationScale(mat4.create(), rotation, position, scale);\n if (!this.#sof.BuildChild(this.#object, dna, id, transform))\n {\n return EveModularObjectModifier.INVALID_PART_TAG;\n }\n\n // Runtime SOF composes through GetValues/SetValues and may replace the\n // whole child list. Reacquire graph-owned records before mutating them.\n this.#data = this.#object.effectChildren.find(\n child => child instanceof EveChildPartData) ?? null;\n this.#instancedMeshes = this.#object.effectChildren.find(\n child => child instanceof EveChildInstancedMeshes) ?? null;\n\n const part = new EveChildPartDataPartData();\n part.partId = id;\n vec3.copy(part.position, position);\n quat.copy(part.rotation, rotation);\n vec3.copy(part.scale, scale);\n vec4.set(part.boundingSphere,\n this.#object.boundingSphereCenter[0],\n this.#object.boundingSphereCenter[1],\n this.#object.boundingSphereCenter[2],\n this.#object.boundingSphereRadius);\n this.#data.parts.push(part);\n this.#object.InvalidateMergedLocators(\"structure\");\n this.#UpdateImpactOverlayLocatorCount();\n this.ApplyBounds();\n return id;\n }\n\n /** Loads and attaches one resource child, returning its unique part tag. */\n @carbon.method\n @impl.adapted\n AddChild(resourcePath, position, rotation, scale)\n {\n this.#AssertReady();\n if (!this.#objectLoader)\n {\n throw new Error(\"EveModularObjectModifier.AddChild requires a CjsEveChildResourceLoader.\");\n }\n\n const child = this.#objectLoader.LoadChild(String(resourcePath), this.#object);\n if (!child) return EveModularObjectModifier.INVALID_PART_TAG;\n\n child.Setup(scale, rotation, position, Tr2Lod.TR2_LOD_LOW);\n this.#object.AddToEffectChildrenList(child);\n const id = this.#AllocatePartId();\n child.SetPartTag(id);\n\n const part = new EveChildPartDataPartData();\n part.partId = id;\n vec3.copy(part.position, position);\n quat.copy(part.rotation, rotation);\n vec3.copy(part.scale, scale);\n this.#data.parts.push(part);\n this.#object.InvalidateMergedLocators(\"structure\");\n this.ApplyBounds();\n return id;\n }\n\n /** Removes a modular part and every child carrying its tag. */\n @carbon.method\n @impl.implemented\n Remove(partId)\n {\n const part = this.#GetPart(partId);\n for (let index = this.#object.effectChildren.length - 1; index >= 0; index--)\n {\n const child = this.#object.effectChildren[index];\n if (child.GetPartTag() === part.partId) this.#object.RemoveFromEffectChildrenList(child);\n }\n\n for (const set of this.#object.locatorSets)\n {\n set.locators = set.locators.filter(locator => locator.partTag !== part.partId);\n }\n if (this.#instancedMeshes) this.#instancedMeshes.RemoveInstancesByPartTag(part.partId);\n this.#data.parts.splice(this.#data.parts.indexOf(part), 1);\n this.#object.InvalidateMergedLocators(\"structure\");\n this.#object.ClearImpactDamage();\n this.#UpdateImpactOverlayLocatorCount();\n this.ApplyBounds();\n return true;\n }\n\n /** Replaces a modular part transform and updates its attached children. */\n @carbon.method\n @impl.adapted\n SetTransform(partId, position, rotation, scale)\n {\n const part = this.#GetPart(partId);\n const oldTransform = mat4.fromRotationTranslationScale(\n mat4.create(), part.rotation, part.position, part.scale);\n const newTransform = mat4.fromRotationTranslationScale(\n mat4.create(), rotation, position, scale);\n const inverseOld = mat4.create();\n if (!mat4.invert(inverseOld, oldTransform))\n {\n throw new Error(`Modular part ${part.partId} has a singular transform.`);\n }\n\n const inverseOldRotation = quat.invert(quat.create(), part.rotation);\n for (const set of this.#object.locatorSets)\n {\n for (const locator of set.locators)\n {\n if (locator.partTag !== part.partId) continue;\n locator.scale[0] = scale[0] / part.scale[0];\n locator.scale[1] = scale[1] / part.scale[1];\n locator.scale[2] = scale[2] / part.scale[2];\n // Carbon invOld.rotation * newRotation (row-vector composition) maps\n // to reversed gl-matrix quaternion operands.\n quat.multiply(locator.direction, rotation, inverseOldRotation);\n vec3.transformMat4(locator.position, locator.position, inverseOld);\n vec3.transformMat4(locator.position, locator.position, newTransform);\n }\n }\n\n const center = vec3.fromValues(\n part.boundingSphere[0], part.boundingSphere[1], part.boundingSphere[2]);\n vec3.transformMat4(center, center, inverseOld);\n vec3.transformMat4(center, center, newTransform);\n vec3.copy(part.boundingSphere, center);\n part.boundingSphere[3] *= Math.max(scale[0], scale[1], scale[2]) /\n Math.max(part.scale[0], part.scale[1], part.scale[2]);\n\n vec3.copy(part.position, position);\n quat.copy(part.rotation, rotation);\n vec3.copy(part.scale, scale);\n for (const child of this.#object.effectChildren)\n {\n if (child.GetPartTag() === part.partId)\n {\n child.Setup(scale, rotation, position, Tr2Lod.TR2_LOD_LOW);\n }\n // OUTSIDE the partTag gate (Carbon EveModularObjectModifier.cpp:225-228,\n // PLAT-11963): the shared instanced child carries many parts' instances\n // under its own aggregate tag; the per-part filter lives in the method.\n if (child instanceof EveChildInstancedMeshes)\n {\n child.SetInstanceTransformByPartTag(part.partId, position, rotation, scale);\n }\n }\n this.#object.InvalidateMergedLocators(\"partMoved\");\n this.ApplyBounds();\n return true;\n }\n\n /** Recomputes culling bounds from the current modular part spheres. */\n @carbon.method\n @impl.adapted\n ApplyBounds()\n {\n this.#AssertReady();\n const ordered = this.#data.parts.slice().sort(\n (left, right) => right.boundingSphere[3] - left.boundingSphere[3]);\n const bounds = vec4.create();\n const min = vec3.fromValues(Infinity, Infinity, Infinity);\n const max = vec3.fromValues(-Infinity, -Infinity, -Infinity);\n let hasBounds = false;\n\n for (const part of ordered)\n {\n includeSphere(bounds, part.boundingSphere, hasBounds);\n hasBounds = true;\n for (let axis = 0; axis < 3; axis++)\n {\n min[axis] = Math.min(min[axis], part.boundingSphere[axis] - part.boundingSphere[3]);\n max[axis] = Math.max(max[axis], part.boundingSphere[axis] + part.boundingSphere[3]);\n }\n }\n\n if (!hasBounds)\n {\n vec4.set(bounds, 0, 0, 0, 0);\n vec3.set(this.#object.shapeEllipsoidCenter, 0, 0, 0);\n vec3.set(this.#object.shapeEllipsoidRadius, 0, 0, 0);\n }\n else\n {\n vec3.lerp(this.#object.shapeEllipsoidCenter, min, max, 0.5);\n vec3.subtract(this.#object.shapeEllipsoidRadius, max, min);\n vec3.scale(\n this.#object.shapeEllipsoidRadius,\n this.#object.shapeEllipsoidRadius,\n Math.sqrt(3) * 0.5);\n }\n this.#object.SetBoundingSphereInformation(bounds);\n return bounds;\n }\n\n /** Copies a modular part's authored position. */\n @carbon.method\n @impl.implemented\n GetPosition(partId, out = vec3.create())\n {\n return vec3.copy(out, this.#GetPart(partId).position);\n }\n\n /** Copies a modular part's authored rotation. */\n @carbon.method\n @impl.implemented\n GetRotation(partId, out = quat.create())\n {\n return quat.copy(out, this.#GetPart(partId).rotation);\n }\n\n /** Copies a modular part's authored scale. */\n @carbon.method\n @impl.implemented\n GetScale(partId, out = vec3.create())\n {\n return vec3.copy(out, this.#GetPart(partId).scale);\n }\n\n /** Throws until the modifier has an object, part data and SOF service. */\n #AssertReady()\n {\n if (!this.#object || !this.#data || !this.#sof)\n {\n throw new Error(\"EveModularObjectModifier.Create must be called before editing.\");\n }\n }\n\n /** Resolves a modular part by its unsigned part tag. */\n #GetPart(partId)\n {\n this.#AssertReady();\n const id = Number(partId) >>> 0;\n const part = this.#data.parts.find(candidate => candidate.partId === id);\n if (!part) throw new RangeError(`Unknown modular part tag ${id}.`);\n return part;\n }\n\n /** Finds an unused nonzero tag across recorded parts and attached children. */\n #AllocatePartId()\n {\n let id = this.#data.GetUnusedPartID();\n for (const child of this.#object.effectChildren)\n {\n const tag = child.GetPartTag();\n if (tag !== 0) id = Math.max(id, (tag + 1) >>> 0);\n }\n return id >>> 0;\n }\n\n /** Refreshes the owning impact overlay after the locator graph changes. */\n #UpdateImpactOverlayLocatorCount()\n {\n if (!this.#object.impactOverlay) return;\n this.#object.EnsureChildLocatorMerged();\n this.#object.impactOverlay.SetDamageLocatorCount(this.#object.GetDamageLocatorCount());\n }\n\n static INVALID_PART_TAG = 0xffffffff;\n}\n\n\n/** Creates an empty modular station plus its edit session. */\nexport function CreateModularObject(sof, factionName = \"\", raceName = \"\", objectLoader = null)\n{\n const object = new EveStation2();\n const data = new EveChildPartData();\n data.faction = String(factionName);\n data.race = String(raceName);\n object.AddToEffectChildrenList(data);\n object.Initialize();\n return [ object, new EveModularObjectModifier().Create(object, sof, objectLoader) ];\n}\n\n\n/** Opens a modular edit session on an existing object. */\nexport function ModifyModularObject(object, sof, objectLoader = null)\n{\n return new EveModularObjectModifier().Create(object, sof, objectLoader);\n}\n\n\n/** Returns Carbon's reserved invalid modular-part tag. */\nexport function GetInvalidPartTag()\n{\n return EveModularObjectModifier.INVALID_PART_TAG;\n}\n\n\nfunction includeSphere(out, sphere, initialized)\n{\n if (!initialized)\n {\n vec4.copy(out, sphere);\n return;\n }\n\n const dx = sphere[0] - out[0];\n const dy = sphere[1] - out[1];\n const dz = sphere[2] - out[2];\n const distance = Math.hypot(dx, dy, dz);\n if (out[3] >= distance + sphere[3]) return;\n if (sphere[3] >= distance + out[3])\n {\n vec4.copy(out, sphere);\n return;\n }\n\n const radius = (distance + out[3] + sphere[3]) * 0.5;\n const shift = distance ? (radius - out[3]) / distance : 0;\n out[0] += dx * shift;\n out[1] += dy * shift;\n out[2] += dz * shift;\n out[3] = radius;\n}\n"],"names":["_EveModularObjectModi","_identity","EveModularObjectModifier","CjsModel","e","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","adapted","implemented","Create","object","sof","objectLoader","effectChildren","find","child","EveChildPartData","AddToEffectChildrenList","EveChildInstancedMeshes","AddHull","hullName","factionName","raceName","position","rotation","scale","id","dna","faction","race","transform","mat4","fromRotationTranslationScale","create","BuildChild","INVALID_PART_TAG","part","EveChildPartDataPartData","partId","vec3","copy","quat","vec4","set","boundingSphere","boundingSphereCenter","boundingSphereRadius","parts","push","InvalidateMergedLocators","ApplyBounds","AddChild","resourcePath","Error","LoadChild","String","Setup","Tr2Lod","TR2_LOD_LOW","SetPartTag","Remove","index","length","GetPartTag","RemoveFromEffectChildrenList","locatorSets","locators","filter","locator","partTag","RemoveInstancesByPartTag","splice","indexOf","ClearImpactDamage","SetTransform","oldTransform","newTransform","inverseOld","invert","inverseOldRotation","multiply","direction","transformMat4","center","fromValues","Math","max","SetInstanceTransformByPartTag","ordered","slice","sort","left","right","bounds","min","Infinity","hasBounds","includeSphere","axis","shapeEllipsoidCenter","shapeEllipsoidRadius","lerp","subtract","sqrt","SetBoundingSphereInformation","GetPosition","out","GetRotation","GetScale","#AssertReady","#GetPart","Number","candidate","RangeError","#AllocatePartId","GetUnusedPartID","tag","#UpdateImpactOverlayLocatorCount","impactOverlay","EnsureChildLocatorMerged","SetDamageLocatorCount","GetDamageLocatorCount","constructor","CreateModularObject","EveStation2","data","Initialize","ModifyModularObject","GetInvalidPartTag","sphere","initialized","dx","dy","dz","distance","hypot","radius","shift"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CjsSchema } from '#schema';
|
|
2
|
-
import { Brand, Adopt } from '../controllers/ITr2Controller.js';
|
|
2
|
+
import { Brand, Adopt } from '../controllers/ITr2Controller/ITr2Controller.js';
|
|
3
|
+
import '../controllers/ITr2Controller/ITr2ActionController.js';
|
|
3
4
|
|
|
4
5
|
// Source: trinity/trinity/Eve/SpaceObject/Children/IEveInheritPropertiesOwner.h
|
|
5
6
|
//
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IEveInheritPropertiesOwner.js","sources":["../../../../src/trinity/eve/IEveInheritPropertiesOwner.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/IEveInheritPropertiesOwner.h\n//\n// The capability a child must CARRY to receive inherited faction colours.\n// Carbon never calls SetInheritProperties on a bare child or light: every\n// distribution loop gates on BlueCastPtr<IEveInheritPropertiesOwner>\n// (EveSpaceObject2.cpp:4431,4439; EveChildContainer.cpp:1021,1029) and skips\n// anything that is not an owner. Until this contract existed the JS port\n// expressed that cast as `child?.SetInheritProperties?.()` - which is not the\n// same thing: the hedge called ANY object carrying the method name, where\n// Carbon calls only the five classes that opted in.\n//\n// The gate at the call sites is `instanceof IEveInheritPropertiesOwner`,\n// exactly as BehaviorGroup.SetPlayFXBehavior ports its dynamic_cast.\n\nimport { CjsSchema } from \"#schema\";\nimport { Adopt, Brand } from \"../controllers/ITr2Controller.js\";\n\n\nconst IEVE_INHERIT_PROPERTIES_OWNER = Symbol.for(\"carbonenginejs.contract.IEveInheritPropertiesOwner\");\n\nconst OWNER_ABSTRACTS = [ \"SetInheritProperties\" ];\n\n\n/** Contract for an object that accepts inherited faction colour properties. */\nexport class IEveInheritPropertiesOwner\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[IEVE_INHERIT_PROPERTIES_OWNER] === true;\n }\n\n /**\n * Receives the owner's inherited colour set.\n *\n * THE ONLY METHOD, AND CARBON MAKES IT PURE VIRTUAL: an owner exists\n * precisely to accept the colours, so there is no sensible default.\n *\n * @param {Array} _colorSet The inherited colour properties.\n */\n SetInheritProperties(_colorSet)\n {\n throw new Error(\"IEveInheritPropertiesOwner.SetInheritProperties must be implemented by an owner.\");\n }\n}\n\n\nBrand(IEveInheritPropertiesOwner, IEVE_INHERIT_PROPERTIES_OWNER, [], OWNER_ABSTRACTS);\nCjsSchema.define(IEveInheritPropertiesOwner, { className: \"IEveInheritPropertiesOwner\" });\n\n\n/**\n * Adds the IEveInheritPropertiesOwner contract without replacing an existing\n * model base.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying the contract.\n */\nexport function withIEveInheritPropertiesOwner(Base)\n{\n const Owner = Adopt(Base, IEveInheritPropertiesOwner, OWNER_ABSTRACTS);\n\n Brand(Owner, IEVE_INHERIT_PROPERTIES_OWNER, [], OWNER_ABSTRACTS);\n\n return Owner;\n}\n"],"names":["IEVE_INHERIT_PROPERTIES_OWNER","Symbol","for","OWNER_ABSTRACTS","IEveInheritPropertiesOwner","hasInstance","value","undefined","SetInheritProperties","_colorSet","Error","Brand","CjsSchema","define","className","withIEveInheritPropertiesOwner","Base","Owner","Adopt"],"mappings":"
|
|
1
|
+
{"version":3,"file":"IEveInheritPropertiesOwner.js","sources":["../../../../src/trinity/eve/IEveInheritPropertiesOwner.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/IEveInheritPropertiesOwner.h\n//\n// The capability a child must CARRY to receive inherited faction colours.\n// Carbon never calls SetInheritProperties on a bare child or light: every\n// distribution loop gates on BlueCastPtr<IEveInheritPropertiesOwner>\n// (EveSpaceObject2.cpp:4431,4439; EveChildContainer.cpp:1021,1029) and skips\n// anything that is not an owner. Until this contract existed the JS port\n// expressed that cast as `child?.SetInheritProperties?.()` - which is not the\n// same thing: the hedge called ANY object carrying the method name, where\n// Carbon calls only the five classes that opted in.\n//\n// The gate at the call sites is `instanceof IEveInheritPropertiesOwner`,\n// exactly as BehaviorGroup.SetPlayFXBehavior ports its dynamic_cast.\n\nimport { CjsSchema } from \"#schema\";\nimport { Adopt, Brand } from \"../controllers/ITr2Controller/index.js\";\n\n\nconst IEVE_INHERIT_PROPERTIES_OWNER = Symbol.for(\"carbonenginejs.contract.IEveInheritPropertiesOwner\");\n\nconst OWNER_ABSTRACTS = [ \"SetInheritProperties\" ];\n\n\n/** Contract for an object that accepts inherited faction colour properties. */\nexport class IEveInheritPropertiesOwner\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[IEVE_INHERIT_PROPERTIES_OWNER] === true;\n }\n\n /**\n * Receives the owner's inherited colour set.\n *\n * THE ONLY METHOD, AND CARBON MAKES IT PURE VIRTUAL: an owner exists\n * precisely to accept the colours, so there is no sensible default.\n *\n * @param {Array} _colorSet The inherited colour properties.\n */\n SetInheritProperties(_colorSet)\n {\n throw new Error(\"IEveInheritPropertiesOwner.SetInheritProperties must be implemented by an owner.\");\n }\n}\n\n\nBrand(IEveInheritPropertiesOwner, IEVE_INHERIT_PROPERTIES_OWNER, [], OWNER_ABSTRACTS);\nCjsSchema.define(IEveInheritPropertiesOwner, { className: \"IEveInheritPropertiesOwner\" });\n\n\n/**\n * Adds the IEveInheritPropertiesOwner contract without replacing an existing\n * model base.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying the contract.\n */\nexport function withIEveInheritPropertiesOwner(Base)\n{\n const Owner = Adopt(Base, IEveInheritPropertiesOwner, OWNER_ABSTRACTS);\n\n Brand(Owner, IEVE_INHERIT_PROPERTIES_OWNER, [], OWNER_ABSTRACTS);\n\n return Owner;\n}\n"],"names":["IEVE_INHERIT_PROPERTIES_OWNER","Symbol","for","OWNER_ABSTRACTS","IEveInheritPropertiesOwner","hasInstance","value","undefined","SetInheritProperties","_colorSet","Error","Brand","CjsSchema","define","className","withIEveInheritPropertiesOwner","Base","Owner","Adopt"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,MAAMA,6BAA6B,GAAGC,MAAM,CAACC,GAAG,CAAC,oDAAoD,CAAC;AAEtG,MAAMC,eAAe,GAAG,CAAE,sBAAsB,CAAE;;AAGlD;AACO,MAAMC,0BAA0B,CACvC;AACE,EAAA,QAAQH,MAAM,CAACI,WAAW,CAAA,CAAEC,KAAK,EACjC;AACE,IAAA,OAAOA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,CAACN,6BAA6B,CAAC,KAAK,IAAI;AAC/F,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEQ,oBAAoBA,CAACC,SAAS,EAC9B;AACE,IAAA,MAAM,IAAIC,KAAK,CAAC,kFAAkF,CAAC;AACrG,EAAA;AACF;AAGAC,KAAK,CAACP,0BAA0B,EAAEJ,6BAA6B,EAAE,EAAE,EAAEG,eAAe,CAAC;AACrFS,SAAS,CAACC,MAAM,CAACT,0BAA0B,EAAE;AAAEU,EAAAA,SAAS,EAAE;AAA6B,CAAC,CAAC;;AAGzF;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,8BAA8BA,CAACC,IAAI,EACnD;EACE,MAAMC,KAAK,GAAGC,KAAK,CAACF,IAAI,EAAEZ,0BAA0B,EAAED,eAAe,CAAC;EAEtEQ,KAAK,CAACM,KAAK,EAAEjB,6BAA6B,EAAE,EAAE,EAAEG,eAAe,CAAC;AAEhE,EAAA,OAAOc,KAAK;AACd;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CjsSchema, impl } from '#schema';
|
|
2
|
-
import { Brand, Adopt } from '../controllers/ITr2Controller.js';
|
|
2
|
+
import { Brand, Adopt } from '../controllers/ITr2Controller/ITr2Controller.js';
|
|
3
|
+
import '../controllers/ITr2Controller/ITr2ActionController.js';
|
|
3
4
|
import { vec3 } from '#math/vec3';
|
|
4
5
|
|
|
5
6
|
// Source: trinity/trinity/Eve/IEveSpaceObject2.h
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IEveSpaceObject2.js","sources":["../../../../src/trinity/eve/IEveSpaceObject2.js"],"sourcesContent":["// Source: trinity/trinity/Eve/IEveSpaceObject2.h\n//\n// The contract every top-level scene object answers to: everything\n// EveSpaceScene holds in `objects`, `uiObjects`, `backgroundObjects` and\n// `warpTunnel`. Carbon makes the frame-pass nine PURE VIRTUAL - the scene\n// drives them unhedged every frame - and gives the remaining nine defaulted\n// bodies (mostly empty; IsPickable answers true, IsAudioOccluder false,\n// GetWorldVelocity writes zero).\n//\n// TWO RULES THE MIXIN MUST KEEP, both learned from live call sites:\n// - The defaulted nine get CONCRETE default bodies, never throws.\n// EveChildContainer and the smart-light expression bucket already call\n// GetWorldVelocity through a duck guard on every space-object parent; a\n// throwing default would convert those working fallbacks into live errors.\n// - Nothing here installs `Update`, `UpdateSynchronous` or `UpdateAsynchronous`\n// (the English spellings): the stretch family defines those as its own\n// forwarding surface, probed with `typeof`, and a stub would flip the probe.\n\nimport { CjsSchema, impl } from \"#schema\";\nimport { Adopt, Brand } from \"../controllers/ITr2Controller.js\";\nimport { vec3 } from \"#math/vec3\";\n\n\nconst IEVE_SPACE_OBJECT_2 = Symbol.for(\"carbonenginejs.contract.IEveSpaceObject2\");\n\nconst SPACE_OBJECT_ABSTRACTS = [\n \"UpdateSyncronous\", \"UpdateAsyncronous\", \"UpdateVisibility\", \"GetRenderables\",\n \"GetBoundingSphere\", \"UpdateModelCenterWorldPosition\", \"GetModelCenterWorldPosition\",\n \"GetLocalBoundingBox\", \"GetLocalToWorldTransform\"\n];\nconst SPACE_OBJECT_NOOPS = [\n \"RegisterWithQuadRenderer\", \"AddQuadsToQuadRenderer\", \"GetPerObjectStructs\",\n \"SetProceduralContainerVariable\", \"GetParentData\", \"InvalidateMergedLocators\"\n];\nconst SPACE_OBJECT_DEFAULTS = [ \"GetWorldVelocity\", \"IsPickable\", \"IsAudioOccluder\" ];\n\n\n/** Contract for a top-level object an EveSpaceScene drives each frame. */\nexport class IEveSpaceObject2\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[IEVE_SPACE_OBJECT_2] === true;\n }\n\n /**\n * Runs the frame work that must happen on the sim thread, in order.\n *\n * @param {object} _updateContext The frame's EveUpdateContext.\n */\n UpdateSyncronous(_updateContext)\n {\n throw new Error(\"IEveSpaceObject2.UpdateSyncronous must be implemented by a space object.\");\n }\n\n /**\n * Runs the frame work Carbon may run in parallel.\n *\n * @param {object} _updateContext The frame's EveUpdateContext.\n */\n UpdateAsyncronous(_updateContext)\n {\n throw new Error(\"IEveSpaceObject2.UpdateAsyncronous must be implemented by a space object.\");\n }\n\n /**\n * Decides frame visibility against the frustum.\n *\n * @param {object} _updateContext The frame's EveUpdateContext.\n * @param {Float32Array} _parentTransform The parent's world transform.\n */\n UpdateVisibility(_updateContext, _parentTransform)\n {\n throw new Error(\"IEveSpaceObject2.UpdateVisibility must be implemented by a space object.\");\n }\n\n /**\n * Appends this object's renderables for the frame.\n *\n * @param {Array} _renderables Collected renderables.\n * @param {object} [_impostors] The impostor manager, when one exists.\n */\n GetRenderables(_renderables, _impostors)\n {\n throw new Error(\"IEveSpaceObject2.GetRenderables must be implemented by a space object.\");\n }\n\n /**\n * Writes the world-space bounding sphere.\n *\n * @param {Float32Array} _sphere Receives centre xyz and radius w.\n * @param {number} [_query] A BoundingSphereQuery.\n * @returns {boolean} Whether a sphere was written.\n */\n GetBoundingSphere(_sphere, _query)\n {\n throw new Error(\"IEveSpaceObject2.GetBoundingSphere must be implemented by a space object.\");\n }\n\n /**\n * Updates the model/ball position and writes its world position.\n *\n * @param {Float32Array} _position Receives the position.\n * @param {number} _time Sim seconds.\n */\n UpdateModelCenterWorldPosition(_position, _time)\n {\n throw new Error(\"IEveSpaceObject2.UpdateModelCenterWorldPosition must be implemented by a space object.\");\n }\n\n /**\n * Writes the model centre's world position without updating the object.\n *\n * @param {Float32Array} _position Receives the position.\n */\n GetModelCenterWorldPosition(_position)\n {\n throw new Error(\"IEveSpaceObject2.GetModelCenterWorldPosition must be implemented by a space object.\");\n }\n\n /**\n * Writes a local-space AABB when the object can supply one.\n *\n * @param {Float32Array} _min Receives the minimum corner.\n * @param {Float32Array} _max Receives the maximum corner.\n * @returns {boolean} Whether a box was written.\n */\n GetLocalBoundingBox(_min, _max)\n {\n throw new Error(\"IEveSpaceObject2.GetLocalBoundingBox must be implemented by a space object.\");\n }\n\n /**\n * Writes the local-to-world transform.\n *\n * @param {Float32Array} _transform Receives the matrix.\n */\n GetLocalToWorldTransform(_transform)\n {\n throw new Error(\"IEveSpaceObject2.GetLocalToWorldTransform must be implemented by a space object.\");\n }\n\n /**\n * Writes the object's world velocity; a static object writes zero.\n *\n * @param {Float32Array} velocity Receives the velocity.\n */\n GetWorldVelocity(velocity)\n {\n vec3.set(velocity, 0, 0, 0);\n }\n\n /**\n * Registers this object and its attachments with the quad renderer.\n *\n * @param {object} _quadRenderer The scene's quad renderer.\n */\n RegisterWithQuadRenderer(_quadRenderer)\n {\n }\n\n /**\n * Adds this object's quads for the frame; Carbon calls this in parallel.\n *\n * @param {object} _frustum The frame's frustum.\n * @param {object} _quadRenderer The scene's quad renderer.\n */\n AddQuadsToQuadRenderer(_frustum, _quadRenderer)\n {\n }\n\n /**\n * Fills the per-object VS and PS constant structs.\n *\n * @param {object} _vsData Receives EveSpaceObjectVSData.\n * @param {object} _psData Receives EveSpaceObjectPSData.\n */\n GetPerObjectStructs(_vsData, _psData)\n {\n }\n\n /**\n * Whether picking may hit this object.\n *\n * @returns {boolean} True unless the object opts out.\n */\n IsPickable()\n {\n return true;\n }\n\n /**\n * Whether this object occludes audio.\n *\n * @returns {boolean} False unless the object opts in.\n */\n IsAudioOccluder()\n {\n return false;\n }\n\n /**\n * Sets one named variable on the object's procedural containers.\n *\n * @param {string} _name The variable's name.\n * @param {number} _value Its new value.\n */\n SetProceduralContainerVariable(_name, _value)\n {\n }\n\n /**\n * Fills the ParentData record passed down to children.\n *\n * @param {object} _parentData Receives the record.\n */\n GetParentData(_parentData)\n {\n }\n\n /**\n * Invalidates merged locator state after a structural change.\n *\n * @param {number} _reason A LocatorInvalidationReason.\n */\n InvalidateMergedLocators(_reason)\n {\n }\n}\n\n\nBrand(IEveSpaceObject2, IEVE_SPACE_OBJECT_2, SPACE_OBJECT_NOOPS, SPACE_OBJECT_ABSTRACTS);\nfor (const name of SPACE_OBJECT_DEFAULTS) CjsSchema.decorateMethod(IEveSpaceObject2, name, impl.implemented);\nCjsSchema.define(IEveSpaceObject2, { className: \"IEveSpaceObject2\" });\n\n\n/**\n * Adds the IEveSpaceObject2 contract without replacing an existing model base.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying the contract.\n */\nexport function withIEveSpaceObject2(Base)\n{\n const SpaceObject = Adopt(\n Base,\n IEveSpaceObject2,\n [ ...SPACE_OBJECT_ABSTRACTS, ...SPACE_OBJECT_NOOPS, ...SPACE_OBJECT_DEFAULTS ]\n );\n\n Brand(SpaceObject, IEVE_SPACE_OBJECT_2, SPACE_OBJECT_NOOPS, SPACE_OBJECT_ABSTRACTS);\n for (const name of SPACE_OBJECT_DEFAULTS) CjsSchema.decorateMethod(SpaceObject, name, impl.implemented);\n\n return SpaceObject;\n}\n"],"names":["IEVE_SPACE_OBJECT_2","Symbol","for","SPACE_OBJECT_ABSTRACTS","SPACE_OBJECT_NOOPS","SPACE_OBJECT_DEFAULTS","IEveSpaceObject2","hasInstance","value","undefined","UpdateSyncronous","_updateContext","Error","UpdateAsyncronous","UpdateVisibility","_parentTransform","GetRenderables","_renderables","_impostors","GetBoundingSphere","_sphere","_query","UpdateModelCenterWorldPosition","_position","_time","GetModelCenterWorldPosition","GetLocalBoundingBox","_min","_max","GetLocalToWorldTransform","_transform","GetWorldVelocity","velocity","vec3","set","RegisterWithQuadRenderer","_quadRenderer","AddQuadsToQuadRenderer","_frustum","GetPerObjectStructs","_vsData","_psData","IsPickable","IsAudioOccluder","SetProceduralContainerVariable","_name","_value","GetParentData","_parentData","InvalidateMergedLocators","_reason","Brand","name","CjsSchema","decorateMethod","impl","implemented","define","className","withIEveSpaceObject2","Base","SpaceObject","Adopt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IEveSpaceObject2.js","sources":["../../../../src/trinity/eve/IEveSpaceObject2.js"],"sourcesContent":["// Source: trinity/trinity/Eve/IEveSpaceObject2.h\n//\n// The contract every top-level scene object answers to: everything\n// EveSpaceScene holds in `objects`, `uiObjects`, `backgroundObjects` and\n// `warpTunnel`. Carbon makes the frame-pass nine PURE VIRTUAL - the scene\n// drives them unhedged every frame - and gives the remaining nine defaulted\n// bodies (mostly empty; IsPickable answers true, IsAudioOccluder false,\n// GetWorldVelocity writes zero).\n//\n// TWO RULES THE MIXIN MUST KEEP, both learned from live call sites:\n// - The defaulted nine get CONCRETE default bodies, never throws.\n// EveChildContainer and the smart-light expression bucket already call\n// GetWorldVelocity through a duck guard on every space-object parent; a\n// throwing default would convert those working fallbacks into live errors.\n// - Nothing here installs `Update`, `UpdateSynchronous` or `UpdateAsynchronous`\n// (the English spellings): the stretch family defines those as its own\n// forwarding surface, probed with `typeof`, and a stub would flip the probe.\n\nimport { CjsSchema, impl } from \"#schema\";\nimport { Adopt, Brand } from \"../controllers/ITr2Controller/index.js\";\nimport { vec3 } from \"#math/vec3\";\n\n\nconst IEVE_SPACE_OBJECT_2 = Symbol.for(\"carbonenginejs.contract.IEveSpaceObject2\");\n\nconst SPACE_OBJECT_ABSTRACTS = [\n \"UpdateSyncronous\", \"UpdateAsyncronous\", \"UpdateVisibility\", \"GetRenderables\",\n \"GetBoundingSphere\", \"UpdateModelCenterWorldPosition\", \"GetModelCenterWorldPosition\",\n \"GetLocalBoundingBox\", \"GetLocalToWorldTransform\"\n];\nconst SPACE_OBJECT_NOOPS = [\n \"RegisterWithQuadRenderer\", \"AddQuadsToQuadRenderer\", \"GetPerObjectStructs\",\n \"SetProceduralContainerVariable\", \"GetParentData\", \"InvalidateMergedLocators\"\n];\nconst SPACE_OBJECT_DEFAULTS = [ \"GetWorldVelocity\", \"IsPickable\", \"IsAudioOccluder\" ];\n\n\n/** Contract for a top-level object an EveSpaceScene drives each frame. */\nexport class IEveSpaceObject2\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[IEVE_SPACE_OBJECT_2] === true;\n }\n\n /**\n * Runs the frame work that must happen on the sim thread, in order.\n *\n * @param {object} _updateContext The frame's EveUpdateContext.\n */\n UpdateSyncronous(_updateContext)\n {\n throw new Error(\"IEveSpaceObject2.UpdateSyncronous must be implemented by a space object.\");\n }\n\n /**\n * Runs the frame work Carbon may run in parallel.\n *\n * @param {object} _updateContext The frame's EveUpdateContext.\n */\n UpdateAsyncronous(_updateContext)\n {\n throw new Error(\"IEveSpaceObject2.UpdateAsyncronous must be implemented by a space object.\");\n }\n\n /**\n * Decides frame visibility against the frustum.\n *\n * @param {object} _updateContext The frame's EveUpdateContext.\n * @param {Float32Array} _parentTransform The parent's world transform.\n */\n UpdateVisibility(_updateContext, _parentTransform)\n {\n throw new Error(\"IEveSpaceObject2.UpdateVisibility must be implemented by a space object.\");\n }\n\n /**\n * Appends this object's renderables for the frame.\n *\n * @param {Array} _renderables Collected renderables.\n * @param {object} [_impostors] The impostor manager, when one exists.\n */\n GetRenderables(_renderables, _impostors)\n {\n throw new Error(\"IEveSpaceObject2.GetRenderables must be implemented by a space object.\");\n }\n\n /**\n * Writes the world-space bounding sphere.\n *\n * @param {Float32Array} _sphere Receives centre xyz and radius w.\n * @param {number} [_query] A BoundingSphereQuery.\n * @returns {boolean} Whether a sphere was written.\n */\n GetBoundingSphere(_sphere, _query)\n {\n throw new Error(\"IEveSpaceObject2.GetBoundingSphere must be implemented by a space object.\");\n }\n\n /**\n * Updates the model/ball position and writes its world position.\n *\n * @param {Float32Array} _position Receives the position.\n * @param {number} _time Sim seconds.\n */\n UpdateModelCenterWorldPosition(_position, _time)\n {\n throw new Error(\"IEveSpaceObject2.UpdateModelCenterWorldPosition must be implemented by a space object.\");\n }\n\n /**\n * Writes the model centre's world position without updating the object.\n *\n * @param {Float32Array} _position Receives the position.\n */\n GetModelCenterWorldPosition(_position)\n {\n throw new Error(\"IEveSpaceObject2.GetModelCenterWorldPosition must be implemented by a space object.\");\n }\n\n /**\n * Writes a local-space AABB when the object can supply one.\n *\n * @param {Float32Array} _min Receives the minimum corner.\n * @param {Float32Array} _max Receives the maximum corner.\n * @returns {boolean} Whether a box was written.\n */\n GetLocalBoundingBox(_min, _max)\n {\n throw new Error(\"IEveSpaceObject2.GetLocalBoundingBox must be implemented by a space object.\");\n }\n\n /**\n * Writes the local-to-world transform.\n *\n * @param {Float32Array} _transform Receives the matrix.\n */\n GetLocalToWorldTransform(_transform)\n {\n throw new Error(\"IEveSpaceObject2.GetLocalToWorldTransform must be implemented by a space object.\");\n }\n\n /**\n * Writes the object's world velocity; a static object writes zero.\n *\n * @param {Float32Array} velocity Receives the velocity.\n */\n GetWorldVelocity(velocity)\n {\n vec3.set(velocity, 0, 0, 0);\n }\n\n /**\n * Registers this object and its attachments with the quad renderer.\n *\n * @param {object} _quadRenderer The scene's quad renderer.\n */\n RegisterWithQuadRenderer(_quadRenderer)\n {\n }\n\n /**\n * Adds this object's quads for the frame; Carbon calls this in parallel.\n *\n * @param {object} _frustum The frame's frustum.\n * @param {object} _quadRenderer The scene's quad renderer.\n */\n AddQuadsToQuadRenderer(_frustum, _quadRenderer)\n {\n }\n\n /**\n * Fills the per-object VS and PS constant structs.\n *\n * @param {object} _vsData Receives EveSpaceObjectVSData.\n * @param {object} _psData Receives EveSpaceObjectPSData.\n */\n GetPerObjectStructs(_vsData, _psData)\n {\n }\n\n /**\n * Whether picking may hit this object.\n *\n * @returns {boolean} True unless the object opts out.\n */\n IsPickable()\n {\n return true;\n }\n\n /**\n * Whether this object occludes audio.\n *\n * @returns {boolean} False unless the object opts in.\n */\n IsAudioOccluder()\n {\n return false;\n }\n\n /**\n * Sets one named variable on the object's procedural containers.\n *\n * @param {string} _name The variable's name.\n * @param {number} _value Its new value.\n */\n SetProceduralContainerVariable(_name, _value)\n {\n }\n\n /**\n * Fills the ParentData record passed down to children.\n *\n * @param {object} _parentData Receives the record.\n */\n GetParentData(_parentData)\n {\n }\n\n /**\n * Invalidates merged locator state after a structural change.\n *\n * @param {number} _reason A LocatorInvalidationReason.\n */\n InvalidateMergedLocators(_reason)\n {\n }\n}\n\n\nBrand(IEveSpaceObject2, IEVE_SPACE_OBJECT_2, SPACE_OBJECT_NOOPS, SPACE_OBJECT_ABSTRACTS);\nfor (const name of SPACE_OBJECT_DEFAULTS) CjsSchema.decorateMethod(IEveSpaceObject2, name, impl.implemented);\nCjsSchema.define(IEveSpaceObject2, { className: \"IEveSpaceObject2\" });\n\n\n/**\n * Adds the IEveSpaceObject2 contract without replacing an existing model base.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying the contract.\n */\nexport function withIEveSpaceObject2(Base)\n{\n const SpaceObject = Adopt(\n Base,\n IEveSpaceObject2,\n [ ...SPACE_OBJECT_ABSTRACTS, ...SPACE_OBJECT_NOOPS, ...SPACE_OBJECT_DEFAULTS ]\n );\n\n Brand(SpaceObject, IEVE_SPACE_OBJECT_2, SPACE_OBJECT_NOOPS, SPACE_OBJECT_ABSTRACTS);\n for (const name of SPACE_OBJECT_DEFAULTS) CjsSchema.decorateMethod(SpaceObject, name, impl.implemented);\n\n return SpaceObject;\n}\n"],"names":["IEVE_SPACE_OBJECT_2","Symbol","for","SPACE_OBJECT_ABSTRACTS","SPACE_OBJECT_NOOPS","SPACE_OBJECT_DEFAULTS","IEveSpaceObject2","hasInstance","value","undefined","UpdateSyncronous","_updateContext","Error","UpdateAsyncronous","UpdateVisibility","_parentTransform","GetRenderables","_renderables","_impostors","GetBoundingSphere","_sphere","_query","UpdateModelCenterWorldPosition","_position","_time","GetModelCenterWorldPosition","GetLocalBoundingBox","_min","_max","GetLocalToWorldTransform","_transform","GetWorldVelocity","velocity","vec3","set","RegisterWithQuadRenderer","_quadRenderer","AddQuadsToQuadRenderer","_frustum","GetPerObjectStructs","_vsData","_psData","IsPickable","IsAudioOccluder","SetProceduralContainerVariable","_name","_value","GetParentData","_parentData","InvalidateMergedLocators","_reason","Brand","name","CjsSchema","decorateMethod","impl","implemented","define","className","withIEveSpaceObject2","Base","SpaceObject","Adopt"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CjsSchema } from '#schema';
|
|
2
|
-
import { Brand, Adopt } from '../controllers/ITr2Controller.js';
|
|
2
|
+
import { Brand, Adopt } from '../controllers/ITr2Controller/ITr2Controller.js';
|
|
3
|
+
import '../controllers/ITr2Controller/ITr2ActionController.js';
|
|
3
4
|
|
|
4
5
|
// Source: trinity/trinity/Eve/IEveTransform.h
|
|
5
6
|
//
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IEveTransform.js","sources":["../../../../src/trinity/eve/IEveTransform.js"],"sourcesContent":["// Source: trinity/trinity/Eve/IEveTransform.h\n//\n// The contract for entries in a `children` list on EveSpaceObject2 and\n// EveTransform. Carbon declares five pure virtuals; FOUR are ported.\n//\n// `Update(const EveUpdateContext&)` is DELIBERATELY NOT PORTED. The name is\n// already taken on the transform lineage by Tr2Transform.Update(time,\n// renderContext) - a different signature and meaning. C++ resolves the two by\n// overload; JavaScript cannot, and a mixin installing a throwing Update would\n// silently change what Tr2Transform.Update means for every subclass. Callers\n// iterating `children` therefore keep their hedge on `child?.Update?.()`\n// until the implementors' own Update surfaces are reconciled.\n\nimport { CjsSchema } from \"#schema\";\nimport { Adopt, Brand } from \"../controllers/ITr2Controller.js\";\n\n\nconst IEVE_TRANSFORM = Symbol.for(\"carbonenginejs.contract.IEveTransform\");\n\nconst TRANSFORM_ABSTRACTS = [\n \"UpdateVisibility\", \"GetRenderables\", \"GetBoundingSphere\", \"GetLODLevel\"\n];\n\n\n/** Contract for a child entry a space object drives and renders. */\nexport class IEveTransform\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[IEVE_TRANSFORM] === true;\n }\n\n /**\n * Decides frame visibility against the frustum.\n *\n * @param {object} _updateContext The frame's EveUpdateContext.\n * @param {Float32Array} _parentTransform The parent's world transform.\n */\n UpdateVisibility(_updateContext, _parentTransform)\n {\n throw new Error(\"IEveTransform.UpdateVisibility must be implemented by a transform child.\");\n }\n\n /**\n * Appends this child's renderables for the frame.\n *\n * @param {Array} _renderables Collected renderables.\n */\n GetRenderables(_renderables)\n {\n throw new Error(\"IEveTransform.GetRenderables must be implemented by a transform child.\");\n }\n\n /**\n * Writes the world-space bounding sphere.\n *\n * @param {Float32Array} _sphere Receives centre xyz and radius w.\n * @param {number} [_query] A BoundingSphereQuery.\n * @returns {boolean} Whether a sphere was written.\n */\n GetBoundingSphere(_sphere, _query)\n {\n throw new Error(\"IEveTransform.GetBoundingSphere must be implemented by a transform child.\");\n }\n\n /**\n * The child's current level of detail.\n *\n * @returns {number} A Tr2Lod value.\n */\n GetLODLevel()\n {\n throw new Error(\"IEveTransform.GetLODLevel must be implemented by a transform child.\");\n }\n}\n\n\nBrand(IEveTransform, IEVE_TRANSFORM, [], TRANSFORM_ABSTRACTS);\nCjsSchema.define(IEveTransform, { className: \"IEveTransform\" });\n\n\n/**\n * Adds the IEveTransform contract without replacing an existing model base.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying the contract.\n */\nexport function withIEveTransform(Base)\n{\n const Transform = Adopt(Base, IEveTransform, TRANSFORM_ABSTRACTS);\n\n Brand(Transform, IEVE_TRANSFORM, [], TRANSFORM_ABSTRACTS);\n\n return Transform;\n}\n"],"names":["IEVE_TRANSFORM","Symbol","for","TRANSFORM_ABSTRACTS","IEveTransform","hasInstance","value","undefined","UpdateVisibility","_updateContext","_parentTransform","Error","GetRenderables","_renderables","GetBoundingSphere","_sphere","_query","GetLODLevel","Brand","CjsSchema","define","className","withIEveTransform","Base","Transform","Adopt"],"mappings":"
|
|
1
|
+
{"version":3,"file":"IEveTransform.js","sources":["../../../../src/trinity/eve/IEveTransform.js"],"sourcesContent":["// Source: trinity/trinity/Eve/IEveTransform.h\n//\n// The contract for entries in a `children` list on EveSpaceObject2 and\n// EveTransform. Carbon declares five pure virtuals; FOUR are ported.\n//\n// `Update(const EveUpdateContext&)` is DELIBERATELY NOT PORTED. The name is\n// already taken on the transform lineage by Tr2Transform.Update(time,\n// renderContext) - a different signature and meaning. C++ resolves the two by\n// overload; JavaScript cannot, and a mixin installing a throwing Update would\n// silently change what Tr2Transform.Update means for every subclass. Callers\n// iterating `children` therefore keep their hedge on `child?.Update?.()`\n// until the implementors' own Update surfaces are reconciled.\n\nimport { CjsSchema } from \"#schema\";\nimport { Adopt, Brand } from \"../controllers/ITr2Controller/index.js\";\n\n\nconst IEVE_TRANSFORM = Symbol.for(\"carbonenginejs.contract.IEveTransform\");\n\nconst TRANSFORM_ABSTRACTS = [\n \"UpdateVisibility\", \"GetRenderables\", \"GetBoundingSphere\", \"GetLODLevel\"\n];\n\n\n/** Contract for a child entry a space object drives and renders. */\nexport class IEveTransform\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[IEVE_TRANSFORM] === true;\n }\n\n /**\n * Decides frame visibility against the frustum.\n *\n * @param {object} _updateContext The frame's EveUpdateContext.\n * @param {Float32Array} _parentTransform The parent's world transform.\n */\n UpdateVisibility(_updateContext, _parentTransform)\n {\n throw new Error(\"IEveTransform.UpdateVisibility must be implemented by a transform child.\");\n }\n\n /**\n * Appends this child's renderables for the frame.\n *\n * @param {Array} _renderables Collected renderables.\n */\n GetRenderables(_renderables)\n {\n throw new Error(\"IEveTransform.GetRenderables must be implemented by a transform child.\");\n }\n\n /**\n * Writes the world-space bounding sphere.\n *\n * @param {Float32Array} _sphere Receives centre xyz and radius w.\n * @param {number} [_query] A BoundingSphereQuery.\n * @returns {boolean} Whether a sphere was written.\n */\n GetBoundingSphere(_sphere, _query)\n {\n throw new Error(\"IEveTransform.GetBoundingSphere must be implemented by a transform child.\");\n }\n\n /**\n * The child's current level of detail.\n *\n * @returns {number} A Tr2Lod value.\n */\n GetLODLevel()\n {\n throw new Error(\"IEveTransform.GetLODLevel must be implemented by a transform child.\");\n }\n}\n\n\nBrand(IEveTransform, IEVE_TRANSFORM, [], TRANSFORM_ABSTRACTS);\nCjsSchema.define(IEveTransform, { className: \"IEveTransform\" });\n\n\n/**\n * Adds the IEveTransform contract without replacing an existing model base.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying the contract.\n */\nexport function withIEveTransform(Base)\n{\n const Transform = Adopt(Base, IEveTransform, TRANSFORM_ABSTRACTS);\n\n Brand(Transform, IEVE_TRANSFORM, [], TRANSFORM_ABSTRACTS);\n\n return Transform;\n}\n"],"names":["IEVE_TRANSFORM","Symbol","for","TRANSFORM_ABSTRACTS","IEveTransform","hasInstance","value","undefined","UpdateVisibility","_updateContext","_parentTransform","Error","GetRenderables","_renderables","GetBoundingSphere","_sphere","_query","GetLODLevel","Brand","CjsSchema","define","className","withIEveTransform","Base","Transform","Adopt"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,MAAMA,cAAc,GAAGC,MAAM,CAACC,GAAG,CAAC,uCAAuC,CAAC;AAE1E,MAAMC,mBAAmB,GAAG,CAC1B,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,CACzE;;AAGD;AACO,MAAMC,aAAa,CAC1B;AACE,EAAA,QAAQH,MAAM,CAACI,WAAW,CAAA,CAAEC,KAAK,EACjC;AACE,IAAA,OAAOA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,CAACN,cAAc,CAAC,KAAK,IAAI;AAChF,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEQ,EAAAA,gBAAgBA,CAACC,cAAc,EAAEC,gBAAgB,EACjD;AACE,IAAA,MAAM,IAAIC,KAAK,CAAC,0EAA0E,CAAC;AAC7F,EAAA;;AAEA;AACF;AACA;AACA;AACA;EACEC,cAAcA,CAACC,YAAY,EAC3B;AACE,IAAA,MAAM,IAAIF,KAAK,CAAC,wEAAwE,CAAC;AAC3F,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACEG,EAAAA,iBAAiBA,CAACC,OAAO,EAAEC,MAAM,EACjC;AACE,IAAA,MAAM,IAAIL,KAAK,CAAC,2EAA2E,CAAC;AAC9F,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEM,EAAAA,WAAWA,GACX;AACE,IAAA,MAAM,IAAIN,KAAK,CAAC,qEAAqE,CAAC;AACxF,EAAA;AACF;AAGAO,KAAK,CAACd,aAAa,EAAEJ,cAAc,EAAE,EAAE,EAAEG,mBAAmB,CAAC;AAC7DgB,SAAS,CAACC,MAAM,CAAChB,aAAa,EAAE;AAAEiB,EAAAA,SAAS,EAAE;AAAgB,CAAC,CAAC;;AAG/D;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAACC,IAAI,EACtC;EACE,MAAMC,SAAS,GAAGC,KAAK,CAACF,IAAI,EAAEnB,aAAa,EAAED,mBAAmB,CAAC;EAEjEe,KAAK,CAACM,SAAS,EAAExB,cAAc,EAAE,EAAE,EAAEG,mBAAmB,CAAC;AAEzD,EAAA,OAAOqB,SAAS;AAClB;;;;"}
|
|
@@ -131,7 +131,7 @@ new class extends _identity {
|
|
|
131
131
|
return false;
|
|
132
132
|
}
|
|
133
133
|
box3.transformMat4(aabb, aabb, parentTransform);
|
|
134
|
-
const frustum = updateContext?.GetFrustum
|
|
134
|
+
const frustum = updateContext?.GetFrustum() ?? null;
|
|
135
135
|
this.#isVisible = !!frustum?.IsBoxVisible(aabb);
|
|
136
136
|
let isLoddedOut = true;
|
|
137
137
|
let screenSize = FLOAT_MAX;
|
|
@@ -151,7 +151,7 @@ new class extends _identity {
|
|
|
151
151
|
vec3.scaleAndAdd(closest, sph3.$position(sphere), closest, sph3.radius(sphere));
|
|
152
152
|
const element = sph3.fromPositionRadius(_EveBannerSet.#elementScratch, closest, this.#maxBannerRadius);
|
|
153
153
|
screenSize = frustum.GetPixelSizeAccrossEst(element);
|
|
154
|
-
if (screenSize > (updateContext.GetVisibilityThreshold
|
|
154
|
+
if (screenSize > (updateContext.GetVisibilityThreshold() ?? 0) * 0.5) {
|
|
155
155
|
isLoddedOut = false;
|
|
156
156
|
}
|
|
157
157
|
}
|