@carbonenginejs/runtime 0.1.0-alpha.2 → 0.1.0-alpha.4
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/NOTICE +5 -4
- package/dist/audio/generated/audio/AudEventKey.js +2 -2
- package/dist/audio/generated/audio/AudEventKey.js.map +1 -1
- package/dist/audio/generated/audio/AudSettings.js +2 -2
- package/dist/audio/generated/audio/AudSettings.js.map +1 -1
- package/dist/audio/index.js +1 -1
- package/dist/audio/trinity/audio/AudEmitter.js +4 -5
- package/dist/audio/trinity/audio/AudEmitter.js.map +1 -1
- package/dist/audio/trinity/audio/AudEventCurve.js +14 -14
- package/dist/audio/trinity/audio/AudEventCurve.js.map +1 -1
- package/dist/audio/trinity/audio/AudGameObjResource.js +13 -25
- package/dist/audio/trinity/audio/AudGameObjResource.js.map +1 -1
- package/dist/audio/trinity/audio/AudManager.js +2 -2
- package/dist/audio/trinity/audio/AudManager.js.map +1 -1
- package/dist/audio/trinity/audio/AudParameter.js +7 -11
- package/dist/audio/trinity/audio/AudParameter.js.map +1 -1
- package/dist/audio/trinity/audio/AudUIPlayer.js +2 -2
- package/dist/audio/trinity/audio/AudUIPlayer.js.map +1 -1
- package/dist/audio/trinity/audio/AudioCurveSetDriver.js +2 -2
- package/dist/audio/trinity/audio/AudioCurveSetDriver.js.map +1 -1
- package/dist/audio/trinity/audio/StretchAudio.js +2 -2
- package/dist/audio/trinity/audio/StretchAudio.js.map +1 -1
- package/dist/audio/trinity/index.js +1 -1
- package/dist/audio/trinity/trinityAudio/Tr2AudioStretchAuto.js +2 -2
- package/dist/audio/trinity/trinityAudio/Tr2AudioStretchAuto.js.map +1 -1
- package/dist/audio/trinity/trinityAudio/Tr2AudioStretchBase.js +2 -2
- package/dist/audio/trinity/trinityAudio/Tr2AudioStretchBase.js.map +1 -1
- package/dist/audio/trinity/trinityAudioApi/ITr2AudEmitter.js +1 -37
- package/dist/audio/trinity/trinityAudioApi/ITr2AudEmitter.js.map +1 -1
- package/dist/character/incarna/curves/Tr2ColorCurve.js +2 -2
- package/dist/character/incarna/curves/Tr2ColorCurve.js.map +1 -1
- package/dist/character/incarna/curves/Tr2ColorKey.js +2 -2
- package/dist/character/incarna/curves/Tr2ColorKey.js.map +1 -1
- package/dist/character/incarna/curves/Tr2ScalarCurve.js +2 -2
- package/dist/character/incarna/curves/Tr2ScalarCurve.js.map +1 -1
- package/dist/character/incarna/curves/Tr2ScalarKey.js +2 -2
- package/dist/character/incarna/curves/Tr2ScalarKey.js.map +1 -1
- package/dist/character/incarna/interior/Tr2InteriorCell.js +2 -2
- package/dist/character/incarna/interior/Tr2InteriorCell.js.map +1 -1
- package/dist/character/library/CjsCharacterLibrary.js +9 -16
- package/dist/character/library/CjsCharacterLibrary.js.map +1 -1
- package/dist/character/library/CjsCharacterLibraryDocuments.js +20 -4
- package/dist/character/library/CjsCharacterLibraryDocuments.js.map +1 -1
- package/dist/character/model/CjsCharacterRecord.js +2 -2
- package/dist/character/model/CjsCharacterRecord.js.map +1 -1
- package/dist/character/model/activity/CjsCharacterArchetype.js +2 -2
- package/dist/character/model/activity/CjsCharacterArchetype.js.map +1 -1
- package/dist/character/model/appearance/CjsCharacterColorLocation.js +2 -2
- package/dist/character/model/appearance/CjsCharacterColorLocation.js.map +1 -1
- package/dist/character/model/appearance/CjsCharacterColorName.js +2 -2
- package/dist/character/model/appearance/CjsCharacterColorName.js.map +1 -1
- package/dist/character/model/appearance/CjsCharacterColorSelection.js +2 -2
- package/dist/character/model/appearance/CjsCharacterColorSelection.js.map +1 -1
- package/dist/character/model/appearance/CjsCharacterSculptSelection.js +2 -2
- package/dist/character/model/appearance/CjsCharacterSculptSelection.js.map +1 -1
- package/dist/character/model/appearance/CjsCharacterSculptingLocation.js +2 -2
- package/dist/character/model/appearance/CjsCharacterSculptingLocation.js.map +1 -1
- package/dist/character/model/behavior/CjsCharacterAvatarBehavior.js +2 -2
- package/dist/character/model/behavior/CjsCharacterAvatarBehavior.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterColorValue.js +2 -2
- package/dist/character/model/catalog/CjsCharacterColorValue.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterDefinition.js +2 -2
- package/dist/character/model/catalog/CjsCharacterDefinition.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterMaterialProfile.js +2 -2
- package/dist/character/model/catalog/CjsCharacterMaterialProfile.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterModifierReference.js +2 -2
- package/dist/character/model/catalog/CjsCharacterModifierReference.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterPartMetadata.js +2 -2
- package/dist/character/model/catalog/CjsCharacterPartMetadata.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterPartModelBundle.js +2 -2
- package/dist/character/model/catalog/CjsCharacterPartModelBundle.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterPartSource.js +2 -2
- package/dist/character/model/catalog/CjsCharacterPartSource.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterPartSourceVersion.js +2 -2
- package/dist/character/model/catalog/CjsCharacterPartSourceVersion.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterPartType.js +2 -2
- package/dist/character/model/catalog/CjsCharacterPartType.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterProjectionProfile.js +2 -2
- package/dist/character/model/catalog/CjsCharacterProjectionProfile.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterRecipeEntry.js +2 -2
- package/dist/character/model/catalog/CjsCharacterRecipeEntry.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterRecipeProfile.js +2 -2
- package/dist/character/model/catalog/CjsCharacterRecipeProfile.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterTextureMetadata.js +2 -2
- package/dist/character/model/catalog/CjsCharacterTextureMetadata.js.map +1 -1
- package/dist/character/model/composition/CjsCharacterModifierLocation.js +2 -2
- package/dist/character/model/composition/CjsCharacterModifierLocation.js.map +1 -1
- package/dist/character/model/composition/CjsCharacterModifierSelection.js +2 -2
- package/dist/character/model/composition/CjsCharacterModifierSelection.js.map +1 -1
- package/dist/character/model/creation/CjsCharacterPaperdoll.js +2 -2
- package/dist/character/model/creation/CjsCharacterPaperdoll.js.map +1 -1
- package/dist/character/model/demographics/CjsCharacterAncestry.js +2 -2
- package/dist/character/model/demographics/CjsCharacterAncestry.js.map +1 -1
- package/dist/character/model/demographics/CjsCharacterBloodline.js +2 -2
- package/dist/character/model/demographics/CjsCharacterBloodline.js.map +1 -1
- package/dist/character/model/demographics/CjsCharacterRace.js +2 -2
- package/dist/character/model/demographics/CjsCharacterRace.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterAppearanceBinding.js +2 -2
- package/dist/character/model/planning/CjsCharacterAppearanceBinding.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterAppearanceColorSelection.js +2 -2
- package/dist/character/model/planning/CjsCharacterAppearanceColorSelection.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterAppearanceDiagnostic.js +2 -2
- package/dist/character/model/planning/CjsCharacterAppearanceDiagnostic.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterAppearanceLayer.js +2 -2
- package/dist/character/model/planning/CjsCharacterAppearanceLayer.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterAppearancePlan.js +2 -2
- package/dist/character/model/planning/CjsCharacterAppearancePlan.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterAppearanceSelection.js +2 -2
- package/dist/character/model/planning/CjsCharacterAppearanceSelection.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterBindingAlpha.js +2 -2
- package/dist/character/model/planning/CjsCharacterBindingAlpha.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterCompositionInput.js +2 -2
- package/dist/character/model/planning/CjsCharacterCompositionInput.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterCompositionPass.js +2 -2
- package/dist/character/model/planning/CjsCharacterCompositionPass.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterCompositionTarget.js +2 -2
- package/dist/character/model/planning/CjsCharacterCompositionTarget.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterCoverage.js +2 -2
- package/dist/character/model/planning/CjsCharacterCoverage.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterMorphTargetWeight.js +2 -2
- package/dist/character/model/planning/CjsCharacterMorphTargetWeight.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterOrigin.js +2 -2
- package/dist/character/model/planning/CjsCharacterOrigin.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterResolvedPart.js +2 -2
- package/dist/character/model/planning/CjsCharacterResolvedPart.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterTextureAsset.js +2 -2
- package/dist/character/model/planning/CjsCharacterTextureAsset.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterTextureChannel.js +2 -2
- package/dist/character/model/planning/CjsCharacterTextureChannel.js.map +1 -1
- package/dist/character/model/resources/CjsCharacterPortraitResource.js +2 -2
- package/dist/character/model/resources/CjsCharacterPortraitResource.js.map +1 -1
- package/dist/character/model/resources/CjsCharacterResource.js +2 -2
- package/dist/character/model/resources/CjsCharacterResource.js.map +1 -1
- package/dist/character/trinity/interior/Tr2IntSkinnedObject.js +6 -5
- package/dist/character/trinity/interior/Tr2IntSkinnedObject.js.map +1 -1
- package/dist/character/trinity/interior/Tr2InteriorLightSource.js +2 -2
- package/dist/character/trinity/interior/Tr2InteriorLightSource.js.map +1 -1
- package/dist/character/trinity/interior/Tr2InteriorPlaceable.js +4 -5
- package/dist/character/trinity/interior/Tr2InteriorPlaceable.js.map +1 -1
- package/dist/character/trinity/interior/Tr2InteriorScene.js +2 -2
- package/dist/character/trinity/interior/Tr2InteriorScene.js.map +1 -1
- package/dist/character/trinity/trinityCore/Tr2GStateAnimation.js +2 -2
- package/dist/character/trinity/trinityCore/Tr2GStateAnimation.js.map +1 -1
- package/dist/character/trinity/trinityCore/Tr2GStateParameter.js +2 -2
- package/dist/character/trinity/trinityCore/Tr2GStateParameter.js.map +1 -1
- package/dist/character/trinity/trinityCore/Tr2Model.js +2 -2
- package/dist/character/trinity/trinityCore/Tr2Model.js.map +1 -1
- package/dist/character/trinity/trinityCore/Tr2SkinnedModel.js +21 -10
- package/dist/character/trinity/trinityCore/Tr2SkinnedModel.js.map +1 -1
- package/dist/character/trinity/trinityCore/Tr2SkinnedObject.js +64 -57
- package/dist/character/trinity/trinityCore/Tr2SkinnedObject.js.map +1 -1
- package/dist/character/trinity/trinityCore/Tr2SkinnedObjectLod.js +1 -1
- package/dist/character/trinity/trinityCore/Tr2SkinnedObjectLod.js.map +1 -1
- package/dist/character/trinity/wod/WodBakingScene.js +2 -2
- package/dist/character/trinity/wod/WodBakingScene.js.map +1 -1
- package/dist/core/CjsLibrary.js +32 -685
- package/dist/core/CjsLibrary.js.map +1 -1
- package/dist/core/index.js +1 -2
- package/dist/core/index.js.map +1 -1
- package/dist/global/blue/BeInfo.js +95 -0
- package/dist/global/blue/BeInfo.js.map +1 -0
- package/dist/global/blue/CcpDateTime.js +53 -0
- package/dist/global/blue/CcpDateTime.js.map +1 -0
- package/dist/global/blue/CcpTime.js +148 -0
- package/dist/global/blue/CcpTime.js.map +1 -0
- package/dist/global/blue/CjsBlueOS.js +301 -0
- package/dist/global/blue/CjsBlueOS.js.map +1 -0
- package/dist/global/blue/CjsBluePaths.js +97 -0
- package/dist/global/blue/CjsBluePaths.js.map +1 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js +29 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -0
- package/dist/global/blue/IBlueEvents.js +34 -0
- package/dist/global/blue/IBlueEvents.js.map +1 -0
- package/dist/global/blue/IBlueOS.js +132 -0
- package/dist/global/blue/IBlueOS.js.map +1 -0
- package/dist/global/blue/IBluePaths.js +72 -0
- package/dist/global/blue/IBluePaths.js.map +1 -0
- package/dist/global/blue/IBlueResMan.js +93 -0
- package/dist/global/blue/IBlueResMan.js.map +1 -0
- package/dist/global/blue/IBlueResManNotifications.js +51 -0
- package/dist/global/blue/IBlueResManNotifications.js.map +1 -0
- package/dist/global/blue/ICatchupTicks.js +25 -0
- package/dist/global/blue/ICatchupTicks.js.map +1 -0
- package/dist/global/blue/IInitialize.js +47 -0
- package/dist/global/blue/IInitialize.js.map +1 -0
- package/dist/global/blue/IListNotify.js +44 -0
- package/dist/global/blue/IListNotify.js.map +1 -0
- package/dist/global/blue/INotify.js +65 -0
- package/dist/global/blue/INotify.js.map +1 -0
- package/dist/global/blue/ISimTimeRebaseNotify.js +28 -0
- package/dist/global/blue/ISimTimeRebaseNotify.js.map +1 -0
- package/dist/global/blue/IVariableTicker.js +24 -0
- package/dist/global/blue/IVariableTicker.js.map +1 -0
- package/dist/global/blue/blue.js +61 -0
- package/dist/global/blue/blue.js.map +1 -0
- package/dist/global/blue/enums/CjsBlueEnumRegistry.js +173 -0
- package/dist/global/blue/enums/CjsBlueEnumRegistry.js.map +1 -0
- package/dist/global/blue/index.js +19 -0
- package/dist/global/blue/index.js.map +1 -1
- package/dist/global/blue/registerTrinityEnums.js +43 -0
- package/dist/global/blue/registerTrinityEnums.js.map +1 -0
- package/dist/global/compose/abstract.js +81 -0
- package/dist/global/compose/abstract.js.map +1 -0
- package/dist/global/compose/interface.js +131 -26
- package/dist/global/compose/interface.js.map +1 -1
- package/dist/global/compose/notify.js +10 -1
- package/dist/global/compose/notify.js.map +1 -1
- package/dist/global/compose/values.js +116 -53
- package/dist/global/compose/values.js.map +1 -1
- package/dist/global/consts/blue.js +73 -0
- package/dist/global/consts/blue.js.map +1 -0
- package/dist/global/consts/graphics/index.js +1 -1
- package/dist/global/consts/graphics/trinityEnums.js +19 -7
- package/dist/global/consts/graphics/trinityEnums.js.map +1 -1
- package/dist/global/consts/index.js +2 -1
- package/dist/global/consts/index.js.map +1 -1
- package/dist/global/consts/trinity.js.map +1 -1
- package/dist/global/contracts/ITr2BoundingBox.js +1 -34
- package/dist/global/contracts/ITr2BoundingBox.js.map +1 -1
- package/dist/global/contracts/ITr2RenderNode.js +1 -27
- package/dist/global/contracts/ITr2RenderNode.js.map +1 -1
- package/dist/global/contracts/index.js +2 -4
- package/dist/global/contracts/index.js.map +1 -1
- package/dist/global/index.js +23 -5
- package/dist/global/index.js.map +1 -1
- package/dist/global/model/CjsModel.js +82 -99
- package/dist/global/model/CjsModel.js.map +1 -1
- package/dist/global/model/CjsModelState.js +0 -15
- package/dist/global/model/CjsModelState.js.map +1 -1
- package/dist/global/model/document/CjsDocumentHydrator.js +5 -1
- package/dist/global/model/document/CjsDocumentHydrator.js.map +1 -1
- package/dist/global/model/index.js +1 -1
- package/dist/global/schema/CjsSchema.js +275 -69
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/global/schema/hydration.js +10 -8
- package/dist/global/schema/hydration.js.map +1 -1
- package/dist/global/schema/index.js +4 -3
- package/dist/global/schema/index.js.map +1 -1
- package/dist/global/schema/types/carbonTypes.js +1 -1
- package/dist/global/schema/types/carbonTypes.js.map +1 -1
- package/dist/global/utils/bytes.js +2 -0
- package/dist/global/utils/bytes.js.map +1 -1
- package/dist/global/utils/path.js +30 -1
- package/dist/global/utils/path.js.map +1 -1
- package/dist/index.js +59 -24
- package/dist/index.js.map +1 -1
- package/dist/resource/CjsResMan.js +206 -43
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/CjsResource.js +4 -1
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/format/CjsBlueReader.js +8 -2
- package/dist/resource/format/CjsBlueReader.js.map +1 -1
- package/dist/resource/format/CjsResourceProbe.js +15 -16
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/carbonEffect/carbonEffectResourceTransform.js +132 -75
- package/dist/resource/format/carbonEffect/carbonEffectResourceTransform.js.map +1 -1
- package/dist/resource/formats/black/core/CjsBlackPropertyReaders.js +26 -0
- package/dist/resource/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
- package/dist/resource/formats/black/core/CjsBlackSchemaRegistry.js +2 -1
- package/dist/resource/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
- package/dist/resource/formats/black/core/black-schema-v1-2026-09-19.json.js +4 -0
- package/dist/resource/formats/black/core/black-schema-v1-2026-09-19.json.js.map +1 -0
- package/dist/resource/formats/black/core/blackDefinitions.js +1 -1
- package/dist/resource/formats/black/core/blackDefinitions.js.map +1 -1
- package/dist/resource/formats/black/core/blackSchema.js +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +50 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +51 -5
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierGraphicIds.js +94 -0
- package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierGraphicIds.js.map +1 -0
- package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierTypes.js +189 -0
- package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierTypes.js.map +1 -0
- package/dist/resource/formats/fsd/64/readers/index.js +2 -0
- package/dist/resource/formats/fsd/64/readers/index.js.map +1 -1
- package/dist/resource/formats/hlsl/core/detailMapFamily.js +18 -92
- package/dist/resource/formats/hlsl/core/detailMapFamily.js.map +1 -1
- package/dist/resource/formats/hlsl/core/textureArrayFamilies.js +285 -0
- package/dist/resource/formats/hlsl/core/textureArrayFamilies.js.map +1 -0
- package/dist/resource/formats/pickle/CjsPickleFormat.js +34 -14
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +60 -451
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +407 -0
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -0
- package/dist/resource/formats/pickle/core/pickleCommon.js +671 -0
- package/dist/resource/formats/pickle/core/pickleCommon.js.map +1 -0
- package/dist/resource/formats/red/core/blackDefinitions.js +1 -1
- package/dist/resource/formats/webgl/core/effectPackage.js +85 -7
- package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +666 -565
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glslBackendBodySet.js +4 -4
- package/dist/resource/formats/webgl/core/glslBackendBodySet.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js +2 -2
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/geometry/TriGeometryRes.js +61 -7
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +11 -11
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
- package/dist/resource/index.js +11 -0
- package/dist/resource/index.js.map +1 -1
- package/dist/resource/shader/Tr2EffectRes.js +2 -3
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialArea.js +3 -3
- package/dist/resource/shader/Tr2MaterialArea.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialMesh.js +2 -2
- package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialRes.js +3 -3
- package/dist/resource/shader/Tr2MaterialRes.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +2 -2
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +2 -2
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +4 -4
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
- package/dist/resource/texture/SolidColorTextureConstructor.js +46 -0
- package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -0
- package/dist/resource/texture/Tr2ImageRes.js +3 -4
- package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodManager.js +0 -1
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js +4 -4
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +3 -4
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +5 -5
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +3 -3
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +2 -2
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +6 -6
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/texture/TriTextureRes.js +65 -21
- package/dist/resource/texture/TriTextureRes.js.map +1 -1
- package/dist/resource/texture/index.js +2 -0
- package/dist/resource/texture/index.js.map +1 -1
- package/dist/resource/texture/solidColorTexture.js +111 -0
- package/dist/resource/texture/solidColorTexture.js.map +1 -0
- package/dist/resource/video/AudioMetadata.js +41 -0
- package/dist/resource/video/AudioMetadata.js.map +1 -0
- package/dist/resource/video/IAudioSink.js +51 -0
- package/dist/resource/video/IAudioSink.js.map +1 -0
- package/dist/resource/video/IEncodedFrame.js +52 -0
- package/dist/resource/video/IEncodedFrame.js.map +1 -0
- package/dist/resource/video/IVideoContainerParser.js +70 -0
- package/dist/resource/video/IVideoContainerParser.js.map +1 -0
- package/dist/resource/video/IVideoDecoder.js +36 -0
- package/dist/resource/video/IVideoDecoder.js.map +1 -0
- package/dist/resource/video/PcmFrame.js +33 -0
- package/dist/resource/video/PcmFrame.js.map +1 -0
- package/dist/resource/video/VideoFrame.js +45 -0
- package/dist/resource/video/VideoFrame.js.map +1 -0
- package/dist/resource/video/VideoMetadata.js +34 -0
- package/dist/resource/video/VideoMetadata.js.map +1 -0
- package/dist/resource/video/enums.js +30 -0
- package/dist/resource/video/enums.js.map +1 -0
- package/dist/sof/EveSOF.js +176 -176
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/sof/EveSOFDNA.js +5 -1
- package/dist/sof/EveSOFDNA.js.map +1 -1
- package/dist/sof/EveSOFData.js +2 -2
- package/dist/sof/EveSOFData.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFaction.js +2 -2
- package/dist/sof/faction/EveSOFDataFaction.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFactionChild.js +2 -2
- package/dist/sof/faction/EveSOFDataFactionChild.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFactionColorSet.js +189 -3
- package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFactionHullArea.js +2 -2
- package/dist/sof/faction/EveSOFDataFactionHullArea.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFactionPlaneSet.js +2 -2
- package/dist/sof/faction/EveSOFDataFactionPlaneSet.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFactionSpotlightSet.js +2 -2
- package/dist/sof/faction/EveSOFDataFactionSpotlightSet.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFactionVisibilityGroupSet.js +2 -2
- package/dist/sof/faction/EveSOFDataFactionVisibilityGroupSet.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGeneric.js +234 -230
- package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericDamage.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericDamage.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericDecalShader.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericDecalShader.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericHullCategory.js +27 -23
- package/dist/sof/generic/EveSOFDataGenericHullCategory.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericHullDamage.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericHullDamage.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericShader.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericShader.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericString.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericString.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericSwarm.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericSwarm.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericVariant.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericVariant.js.map +1 -1
- package/dist/sof/generic/EveSOFDataVisibilityGroup.js +2 -2
- package/dist/sof/generic/EveSOFDataVisibilityGroup.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHull.js +56 -3
- package/dist/sof/hull/EveSOFDataHull.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullAnimation.js +2 -2
- package/dist/sof/hull/EveSOFDataHullAnimation.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullArea.js +58 -54
- package/dist/sof/hull/EveSOFDataHullArea.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullBanner.js +109 -3
- package/dist/sof/hull/EveSOFDataHullBanner.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullBannerLight.js +2 -2
- package/dist/sof/hull/EveSOFDataHullBannerLight.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullBannerSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullBannerSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullBannerSetItem.js +109 -3
- package/dist/sof/hull/EveSOFDataHullBannerSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullBooster.js +2 -2
- package/dist/sof/hull/EveSOFDataHullBooster.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullBoosterItem.js +2 -2
- package/dist/sof/hull/EveSOFDataHullBoosterItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullChild.js +55 -50
- package/dist/sof/hull/EveSOFDataHullChild.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullChildSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullChildSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullChildSetItem.js +51 -46
- package/dist/sof/hull/EveSOFDataHullChildSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullController.js +2 -2
- package/dist/sof/hull/EveSOFDataHullController.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullDecalSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullDecalSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullDecalSetItem.js +45 -3
- package/dist/sof/hull/EveSOFDataHullDecalSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullHazeSet.js +21 -3
- package/dist/sof/hull/EveSOFDataHullHazeSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullHazeSetItem.js +47 -43
- package/dist/sof/hull/EveSOFDataHullHazeSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLightSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullLightSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLightSetItem.js +4 -2
- package/dist/sof/hull/EveSOFDataHullLightSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLightSetSpotLight.js +2 -2
- package/dist/sof/hull/EveSOFDataHullLightSetSpotLight.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLightSetTexturedPointLight.js +2 -2
- package/dist/sof/hull/EveSOFDataHullLightSetTexturedPointLight.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLocator.js +2 -2
- package/dist/sof/hull/EveSOFDataHullLocator.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLocatorSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullLocatorSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLocatorSetGroup.js +2 -2
- package/dist/sof/hull/EveSOFDataHullLocatorSetGroup.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullPlaneSet.js +29 -3
- package/dist/sof/hull/EveSOFDataHullPlaneSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullPlaneSetItem.js +81 -75
- package/dist/sof/hull/EveSOFDataHullPlaneSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSoundEmitter.js +2 -2
- package/dist/sof/hull/EveSOFDataHullSoundEmitter.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSpotlightSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullSpotlightSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSpotlightSetItem.js +45 -41
- package/dist/sof/hull/EveSOFDataHullSpotlightSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSpriteLineSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullSpriteLineSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSpriteLineSetItem.js +70 -66
- package/dist/sof/hull/EveSOFDataHullSpriteLineSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSpriteSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullSpriteSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSpriteSetItem.js +45 -41
- package/dist/sof/hull/EveSOFDataHullSpriteSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataMultiHullDecalIndexBuffers.js +2 -2
- package/dist/sof/hull/EveSOFDataMultiHullDecalIndexBuffers.js.map +1 -1
- package/dist/sof/layout/EveSOFDataDistributionDepletionCounter.js +2 -2
- package/dist/sof/layout/EveSOFDataDistributionDepletionCounter.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionBucket.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionBucket.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacement.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionPlacement.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionDepletionCounter.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionDepletionCounter.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionMapGraphicSettings.js +35 -3
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionMapGraphicSettings.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionParentMatch.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionParentMatch.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionPlacement.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionPlacement.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionRandomChance.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionRandomChance.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementGroup.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementGroup.js.map +1 -1
- package/dist/sof/layout/EveSOFDataLayout.js +2 -2
- package/dist/sof/layout/EveSOFDataLayout.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPattern.js +2 -2
- package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPatternApplicationGroup.js +2 -2
- package/dist/sof/pattern/EveSOFDataPatternApplicationGroup.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPatternLayer.js +60 -3
- package/dist/sof/pattern/EveSOFDataPatternLayer.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPatternLayerProperties.js +23 -3
- package/dist/sof/pattern/EveSOFDataPatternLayerProperties.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPatternMaterialOverride.js +2 -2
- package/dist/sof/pattern/EveSOFDataPatternMaterialOverride.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPatternPerHull.js +2 -2
- package/dist/sof/pattern/EveSOFDataPatternPerHull.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPatternTransform.js +2 -2
- package/dist/sof/pattern/EveSOFDataPatternTransform.js.map +1 -1
- package/dist/sof/race/EveSOFDataRace.js +46 -42
- package/dist/sof/race/EveSOFDataRace.js.map +1 -1
- package/dist/sof/race/EveSOFDataRaceDamage.js +2 -2
- package/dist/sof/race/EveSOFDataRaceDamage.js.map +1 -1
- package/dist/sof/shared/CjsExternalRef.js +2 -2
- package/dist/sof/shared/CjsExternalRef.js.map +1 -1
- package/dist/sof/shared/EveSOFDNADescriptor.js +2 -2
- package/dist/sof/shared/EveSOFDNADescriptor.js.map +1 -1
- package/dist/sof/shared/EveSOFDataArea.js +61 -3
- package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
- package/dist/sof/shared/EveSOFDataAreaMaterial.js +4 -2
- package/dist/sof/shared/EveSOFDataAreaMaterial.js.map +1 -1
- package/dist/sof/shared/EveSOFDataBlinkType.js +48 -8
- package/dist/sof/shared/EveSOFDataBlinkType.js.map +1 -1
- package/dist/sof/shared/EveSOFDataBooster.js +2 -2
- package/dist/sof/shared/EveSOFDataBooster.js.map +1 -1
- package/dist/sof/shared/EveSOFDataBoosterShape.js +2 -2
- package/dist/sof/shared/EveSOFDataBoosterShape.js.map +1 -1
- package/dist/sof/shared/EveSOFDataDecalIndexBuffer.js +2 -2
- package/dist/sof/shared/EveSOFDataDecalIndexBuffer.js.map +1 -1
- package/dist/sof/shared/EveSOFDataInstancedMesh.js +40 -3
- package/dist/sof/shared/EveSOFDataInstancedMesh.js.map +1 -1
- package/dist/sof/shared/EveSOFDataLogo.js +2 -2
- package/dist/sof/shared/EveSOFDataLogo.js.map +1 -1
- package/dist/sof/shared/EveSOFDataLogoSet.js +33 -3
- package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
- package/dist/sof/shared/EveSOFDataMaterial.js +2 -2
- package/dist/sof/shared/EveSOFDataMaterial.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameter.js +2 -2
- package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterBool.js +2 -2
- package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterColor.js +2 -2
- package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterFloat.js +2 -2
- package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterInt.js +2 -2
- package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterVector2.js +2 -2
- package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterVector3.js +2 -2
- package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -1
- package/dist/sof/shared/EveSOFDataPointLightAttachment.js +2 -2
- package/dist/sof/shared/EveSOFDataPointLightAttachment.js.map +1 -1
- package/dist/sof/shared/EveSOFDataSpotLightAttachment.js +2 -2
- package/dist/sof/shared/EveSOFDataSpotLightAttachment.js.map +1 -1
- package/dist/sof/shared/EveSOFDataTexture.js +2 -2
- package/dist/sof/shared/EveSOFDataTexture.js.map +1 -1
- package/dist/sof/shared/EveSOFDataTransform.js +2 -2
- package/dist/sof/shared/EveSOFDataTransform.js.map +1 -1
- package/dist/sof/shared/EveSofDataMeshInstance.js +2 -2
- package/dist/sof/shared/EveSofDataMeshInstance.js.map +1 -1
- package/dist/sof/sofDocumentValues.js +9 -0
- package/dist/sof/sofDocumentValues.js.map +1 -1
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +2 -25
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -1
- package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js +2 -72
- package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -1
- package/dist/trinity/controllers/ITr2ControllerOwner.js +1 -36
- package/dist/trinity/controllers/ITr2ControllerOwner.js.map +1 -1
- package/dist/trinity/controllers/Tr2Controller.js +4 -5
- package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
- package/dist/trinity/controllers/Tr2ControllerEventHandler.js +2 -2
- package/dist/trinity/controllers/Tr2ControllerEventHandler.js.map +1 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js +9 -17
- package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/trinity/controllers/Tr2SyncToAnimation.js +4 -5
- package/dist/trinity/controllers/Tr2SyncToAnimation.js.map +1 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js +1 -28
- package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionAnimateCurveSet.js +9 -7
- package/dist/trinity/controllers/action/Tr2ActionAnimateCurveSet.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionAnimateValue.js +11 -9
- package/dist/trinity/controllers/action/Tr2ActionAnimateValue.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionBindRTPC.js +9 -7
- package/dist/trinity/controllers/action/Tr2ActionBindRTPC.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionCallback.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionCallback.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionChildEffect.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionChildEffect.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionOverlay.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionOverlay.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionPlayCurveSet.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionPlayCurveSet.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionPlayMeshAnimation.js +13 -9
- package/dist/trinity/controllers/action/Tr2ActionPlayMeshAnimation.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionPlaySound.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionPlaySound.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionPython.js +6 -6
- package/dist/trinity/controllers/action/Tr2ActionPython.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionResetClipSphereCenter.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionResetClipSphereCenter.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSetAttenuationScaling.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionSetAttenuationScaling.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSetAudioEmitterPrefix.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSetAudioSwitch.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionSetAudioSwitch.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSetExternalControllerVariable.js +8 -17
- package/dist/trinity/controllers/action/Tr2ActionSetExternalControllerVariable.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSetShaderOption.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionSetShaderOption.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSetValue.js +11 -9
- package/dist/trinity/controllers/action/Tr2ActionSetValue.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/trinity/controllers/contracts.js +27 -19
- package/dist/trinity/controllers/contracts.js.map +1 -1
- package/dist/trinity/controllers/expression/Tr2BindingPoint.js +6 -15
- package/dist/trinity/controllers/expression/Tr2BindingPoint.js.map +1 -1
- package/dist/trinity/controllers/expression/Tr2ControllerFloatVariable.js +2 -2
- package/dist/trinity/controllers/expression/Tr2ControllerFloatVariable.js.map +1 -1
- package/dist/trinity/controllers/expression/expressionRuntime.js +136 -0
- package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -1
- package/dist/trinity/controllers/index.js +6 -6
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +1 -24
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
- package/dist/trinity/controllers/state/Tr2StateMachine.js +4 -6
- package/dist/trinity/controllers/state/Tr2StateMachine.js.map +1 -1
- package/dist/trinity/controllers/state/Tr2StateMachineState.js +6 -6
- package/dist/trinity/controllers/state/Tr2StateMachineState.js.map +1 -1
- package/dist/trinity/controllers/state/Tr2StateMachineTransition.js +12 -9
- package/dist/trinity/controllers/state/Tr2StateMachineTransition.js.map +1 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js +5 -6
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
- package/dist/trinity/core/ITr2Renderable.js +1 -49
- package/dist/trinity/core/ITr2Renderable.js.map +1 -1
- package/dist/trinity/core/ITr2Updateable.js +1 -22
- package/dist/trinity/core/ITr2Updateable.js.map +1 -1
- package/dist/trinity/core/ITriReroutable.js +56 -0
- package/dist/trinity/core/ITriReroutable.js.map +1 -0
- package/dist/trinity/core/Tr2Denoiser.js +2 -2
- package/dist/trinity/core/Tr2Denoiser.js.map +1 -1
- package/dist/trinity/core/Tr2MaterialParameterStore.js +2 -2
- package/dist/trinity/core/Tr2MaterialParameterStore.js.map +1 -1
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js +2 -2
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -1
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +1 -1
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -1
- package/dist/trinity/core/Tr2Renderer.js +161 -4
- package/dist/trinity/core/Tr2Renderer.js.map +1 -1
- package/dist/trinity/core/Tr2ShadowMap.js +3 -3
- package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
- package/dist/trinity/core/Tr2StreamingBitmapSaver.js +2 -2
- package/dist/trinity/core/Tr2StreamingBitmapSaver.js.map +1 -1
- package/dist/trinity/core/Tr2Transform.js +4 -5
- package/dist/trinity/core/Tr2Transform.js.map +1 -1
- package/dist/trinity/core/animation/Tr2GrannyAnimation.js +2 -2
- package/dist/trinity/core/animation/Tr2GrannyAnimation.js.map +1 -1
- package/dist/trinity/core/animation/Tr2TextureAnimation.js +2 -2
- package/dist/trinity/core/animation/Tr2TextureAnimation.js.map +1 -1
- package/dist/trinity/core/animation/TriRigidOrientation.js +2 -2
- package/dist/trinity/core/animation/TriRigidOrientation.js.map +1 -1
- package/dist/trinity/core/animation/TriTorque.js +2 -2
- package/dist/trinity/core/animation/TriTorque.js.map +1 -1
- package/dist/trinity/core/batch/CjsBatchManager.js +15 -50
- package/dist/trinity/core/batch/CjsBatchManager.js.map +1 -1
- package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -1
- package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js +12 -14
- package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -1
- package/dist/trinity/core/binding/Tr2BindingVector3.js +2 -2
- package/dist/trinity/core/binding/Tr2BindingVector3.js.map +1 -1
- package/dist/trinity/core/binding/Tr2DynamicBinding.js +6 -20
- package/dist/trinity/core/binding/Tr2DynamicBinding.js.map +1 -1
- package/dist/trinity/core/binding/Tr2ExternalParameter.js +3 -6
- package/dist/trinity/core/binding/Tr2ExternalParameter.js.map +1 -1
- package/dist/trinity/core/binding/Tr2PyValueBinding.js +2 -2
- package/dist/trinity/core/binding/Tr2PyValueBinding.js.map +1 -1
- package/dist/trinity/core/binding/TriValueBinding.js +50 -24
- package/dist/trinity/core/binding/TriValueBinding.js.map +1 -1
- package/dist/trinity/core/context/CjsDirectTrinityStepExecutor.js +0 -6
- package/dist/trinity/core/context/CjsDirectTrinityStepExecutor.js.map +1 -1
- package/dist/trinity/core/context/CjsTrinityStepExecutor.js +7 -10
- package/dist/trinity/core/context/CjsTrinityStepExecutor.js.map +1 -1
- package/dist/trinity/core/context/Tr2RenderContext.js +74 -116
- package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
- package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/Tr2GpuBuffer.js +2 -2
- package/dist/trinity/core/device/Tr2GpuBuffer.js.map +1 -1
- package/dist/trinity/core/device/Tr2RenderTarget.js +2 -2
- package/dist/trinity/core/device/Tr2RenderTarget.js.map +1 -1
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +2 -2
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -1
- package/dist/trinity/core/device/Tr2SwapChain.js +2 -2
- package/dist/trinity/core/device/Tr2SwapChain.js.map +1 -1
- package/dist/trinity/core/device/TriDevice.js +576 -37
- package/dist/trinity/core/device/TriDevice.js.map +1 -1
- package/dist/trinity/core/device/gTriDev.js +49 -0
- package/dist/trinity/core/device/gTriDev.js.map +1 -0
- package/dist/trinity/core/index.js +9 -5
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2KelvinColor.js +2 -2
- package/dist/trinity/core/lighting/Tr2KelvinColor.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +7 -17
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2ShLightingManager.js +2 -2
- package/dist/trinity/core/lighting/Tr2ShLightingManager.js.map +1 -1
- package/dist/trinity/core/line/Tr2BoundingLineSet.js +2 -2
- package/dist/trinity/core/line/Tr2BoundingLineSet.js.map +1 -1
- package/dist/trinity/core/line/Tr2CurveLineSet.js +10 -7
- package/dist/trinity/core/line/Tr2CurveLineSet.js.map +1 -1
- package/dist/trinity/core/line/Tr2LineGraph.js +2 -2
- package/dist/trinity/core/line/Tr2LineGraph.js.map +1 -1
- package/dist/trinity/core/line/Tr2PrimitiveSet.js +4 -5
- package/dist/trinity/core/line/Tr2PrimitiveSet.js.map +1 -1
- package/dist/trinity/core/line/TriLineSet.js +2 -2
- package/dist/trinity/core/line/TriLineSet.js.map +1 -1
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js +1 -37
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -1
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js +1 -34
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +5 -6
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2InstancedMesh.js +2 -2
- package/dist/trinity/core/mesh/Tr2InstancedMesh.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2Mesh.js +288 -183
- package/dist/trinity/core/mesh/Tr2Mesh.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2MeshArea.js +32 -3
- package/dist/trinity/core/mesh/Tr2MeshArea.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js +58 -8
- package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +141 -142
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2SerializedMorphAnimation.js +2 -2
- package/dist/trinity/core/mesh/Tr2SerializedMorphAnimation.js.map +1 -1
- package/dist/trinity/core/procedural/GradientTextureConstructor.js +62 -0
- package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -0
- package/dist/trinity/core/procedural/gradientTexture.js +196 -0
- package/dist/trinity/core/procedural/gradientTexture.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -1
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +5 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -1
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +2 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -1
- package/dist/trinity/core/tool/Tr2ManipulationTool.js +2 -2
- package/dist/trinity/core/tool/Tr2ManipulationTool.js.map +1 -1
- package/dist/trinity/core/tool/Tr2RotationTool.js +2 -2
- package/dist/trinity/core/tool/Tr2RotationTool.js.map +1 -1
- package/dist/trinity/core/tool/Tr2ScalingTool.js +2 -2
- package/dist/trinity/core/tool/Tr2ScalingTool.js.map +1 -1
- package/dist/trinity/core/tool/Tr2TranslationTool.js +2 -2
- package/dist/trinity/core/tool/Tr2TranslationTool.js.map +1 -1
- package/dist/trinity/core/variable/Tr2ExpressionTermInfo.js +2 -2
- package/dist/trinity/core/variable/Tr2ExpressionTermInfo.js.map +1 -1
- package/dist/trinity/core/variable/TriFloat.js +2 -2
- package/dist/trinity/core/variable/TriFloat.js.map +1 -1
- package/dist/trinity/core/variable/TriObserverLocal.js +2 -2
- package/dist/trinity/core/variable/TriObserverLocal.js.map +1 -1
- package/dist/trinity/core/variable/TriVariable.js +2 -2
- package/dist/trinity/core/variable/TriVariable.js.map +1 -1
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js +2 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -1
- package/dist/trinity/core/view/TriProjection.js +2 -2
- package/dist/trinity/core/view/TriProjection.js.map +1 -1
- package/dist/trinity/core/view/TriRect.js +2 -2
- package/dist/trinity/core/view/TriRect.js.map +1 -1
- package/dist/trinity/core/view/TriView.js +2 -2
- package/dist/trinity/core/view/TriView.js.map +1 -1
- package/dist/trinity/core/view/TriViewport.js +2 -2
- package/dist/trinity/core/view/TriViewport.js.map +1 -1
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +3 -3
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/curves/Tr2CurveSetRange.js +2 -2
- package/dist/trinity/curves/Tr2CurveSetRange.js.map +1 -1
- package/dist/trinity/curves/TriCurveSet.js +2 -2
- package/dist/trinity/curves/TriCurveSet.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2BoneMatrixCurve.js +2 -2
- package/dist/trinity/curves/curve/Tr2BoneMatrixCurve.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveColor.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveColor.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveColorMixer.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveColorMixer.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveCombiner.js +3 -3
- package/dist/trinity/curves/curve/Tr2CurveCombiner.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveConstant.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveConstant.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveEulerRotation.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveEulerRotation.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveEulerRotationExpression.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveEulerRotationExpression.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveQuaternion.js +3 -3
- package/dist/trinity/curves/curve/Tr2CurveQuaternion.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveScalar.js +3 -3
- package/dist/trinity/curves/curve/Tr2CurveScalar.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveScalarExpression.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveScalarExpression.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveVector2.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveVector2.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveVector3.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveVector3.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveVector3Expression.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveVector3Expression.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveVector3Lerp.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveVector3Lerp.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2DistanceTracker.js +5 -5
- package/dist/trinity/curves/curve/Tr2DistanceTracker.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2FollowCurve.js +2 -2
- package/dist/trinity/curves/curve/Tr2FollowCurve.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2QuaternionLerpCurve.js +2 -2
- package/dist/trinity/curves/curve/Tr2QuaternionLerpCurve.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2RotationAdapter.js +2 -2
- package/dist/trinity/curves/curve/Tr2RotationAdapter.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2ScalarExprKeyCurve.js +2 -2
- package/dist/trinity/curves/curve/Tr2ScalarExprKeyCurve.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2ScalarFader.js +2 -2
- package/dist/trinity/curves/curve/Tr2ScalarFader.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2TranslationAdapter.js +2 -2
- package/dist/trinity/curves/curve/Tr2TranslationAdapter.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2VectorFunctionModifier.js +2 -2
- package/dist/trinity/curves/curve/Tr2VectorFunctionModifier.js.map +1 -1
- package/dist/trinity/curves/curve/TriColorSequencer.js +18 -18
- package/dist/trinity/curves/curve/TriColorSequencer.js.map +1 -1
- package/dist/trinity/curves/curve/TriEventCurve.js +51 -51
- package/dist/trinity/curves/curve/TriEventCurve.js.map +1 -1
- package/dist/trinity/curves/curve/TriPerlinCurve.js +2 -2
- package/dist/trinity/curves/curve/TriPerlinCurve.js.map +1 -1
- package/dist/trinity/curves/curve/TriVectorSequencer.js +36 -36
- package/dist/trinity/curves/curve/TriVectorSequencer.js.map +1 -1
- package/dist/trinity/curves/key/Tr2CameraFollowCurveKey.js +2 -2
- package/dist/trinity/curves/key/Tr2CameraFollowCurveKey.js.map +1 -1
- package/dist/trinity/curves/key/Tr2MatrixKey.js +2 -2
- package/dist/trinity/curves/key/Tr2MatrixKey.js.map +1 -1
- package/dist/trinity/curves/key/Tr2ObjectFollowCurveKey.js +2 -2
- package/dist/trinity/curves/key/Tr2ObjectFollowCurveKey.js.map +1 -1
- package/dist/trinity/curves/key/Tr2ScalarExprKey.js +28 -24
- package/dist/trinity/curves/key/Tr2ScalarExprKey.js.map +1 -1
- package/dist/trinity/curves/key/TriEventKey.js +2 -2
- package/dist/trinity/curves/key/TriEventKey.js.map +1 -1
- package/dist/trinity/curves/track/Tr2GrannyEventTrack.js +2 -2
- package/dist/trinity/curves/track/Tr2GrannyEventTrack.js.map +1 -1
- package/dist/trinity/curves/track/Tr2GrannyTrack.js +9 -4
- package/dist/trinity/curves/track/Tr2GrannyTrack.js.map +1 -1
- package/dist/trinity/curves/track/Tr2GrannyTransformTrack.js +2 -2
- package/dist/trinity/curves/track/Tr2GrannyTransformTrack.js.map +1 -1
- package/dist/trinity/curves/track/Tr2GrannyVectorTrack.js +2 -2
- package/dist/trinity/curves/track/Tr2GrannyVectorTrack.js.map +1 -1
- package/dist/trinity/eve/AudioGameObject.js +6 -8
- package/dist/trinity/eve/AudioGameObject.js.map +1 -1
- package/dist/trinity/eve/EveCustomMask.js +2 -2
- package/dist/trinity/eve/EveCustomMask.js.map +1 -1
- package/dist/trinity/eve/EveDistanceField.js +6 -4
- package/dist/trinity/eve/EveDistanceField.js.map +1 -1
- package/dist/trinity/eve/EveImpactOverlay.js +2 -2
- package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
- package/dist/trinity/eve/EveThrottleable.js +2 -2
- package/dist/trinity/eve/EveThrottleable.js.map +1 -1
- package/dist/trinity/eve/EveTriggerVolume.js +4 -5
- package/dist/trinity/eve/EveTriggerVolume.js.map +1 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js +1 -23
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
- package/dist/trinity/eve/IEveSpaceObject2.js +1 -24
- package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/IEveTransform.js +1 -22
- package/dist/trinity/eve/IEveTransform.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerItem.js +2 -2
- package/dist/trinity/eve/attachment/banner/EveBannerItem.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerLight.js +2 -2
- package/dist/trinity/eve/attachment/banner/EveBannerLight.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js +20 -3
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +127 -122
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +5 -5
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +4 -5
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveTrailsSet.js +4 -2
- package/dist/trinity/eve/attachment/booster/EveTrailsSet.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +169 -155
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js +3 -3
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSetItem.js +2 -2
- package/dist/trinity/eve/attachment/haze/EveHazeSetItem.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSetLight.js +2 -2
- package/dist/trinity/eve/attachment/haze/EveHazeSetLight.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneLight.js +2 -2
- package/dist/trinity/eve/attachment/plane/EvePlaneLight.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +10 -4
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSetItem.js +3 -2
- package/dist/trinity/eve/attachment/plane/EvePlaneSetItem.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightLight.js +2 -2
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +3 -3
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSetItem.js +2 -2
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLight.js +2 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteLight.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +4 -4
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSetItem.js +2 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +5 -5
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteSetItem.js +2 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretFiringFX.js +7 -4
- package/dist/trinity/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +177 -144
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +2 -2
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
- package/dist/trinity/eve/camera/EveCamera.js +5 -11
- package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
- package/dist/trinity/eve/child/EveChildAudio.js +4 -5
- package/dist/trinity/eve/child/EveChildAudio.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBehaviorSystem.js +5 -6
- package/dist/trinity/eve/child/EveChildBehaviorSystem.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js +6 -6
- package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBulletStorm.js +4 -5
- package/dist/trinity/eve/child/EveChildBulletStorm.js.map +1 -1
- package/dist/trinity/eve/child/EveChildCloud.js +5 -6
- package/dist/trinity/eve/child/EveChildCloud.js.map +1 -1
- package/dist/trinity/eve/child/EveChildCloud2.js +166 -166
- package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/trinity/eve/child/EveChildContainer.js +235 -169
- package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildEffectPropagator.js +9 -9
- package/dist/trinity/eve/child/EveChildEffectPropagator.js.map +1 -1
- package/dist/trinity/eve/child/EveChildExplosion.js +11 -7
- package/dist/trinity/eve/child/EveChildExplosion.js.map +1 -1
- package/dist/trinity/eve/child/EveChildFogVolume.js +2 -2
- package/dist/trinity/eve/child/EveChildFogVolume.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInheritProperties.js +2 -2
- package/dist/trinity/eve/child/EveChildInheritProperties.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstanceContainer.js +2 -2
- package/dist/trinity/eve/child/EveChildInstanceContainer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstanceMeshRenderer.js +11 -7
- package/dist/trinity/eve/child/EveChildInstanceMeshRenderer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +2 -2
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +2 -2
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +2 -2
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +4 -5
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
- package/dist/trinity/eve/child/EveChildLightingOverride.js +4 -5
- package/dist/trinity/eve/child/EveChildLightingOverride.js.map +1 -1
- package/dist/trinity/eve/child/EveChildLineSet.js +4 -5
- package/dist/trinity/eve/child/EveChildLineSet.js.map +1 -1
- package/dist/trinity/eve/child/EveChildLink.js +2 -2
- package/dist/trinity/eve/child/EveChildLink.js.map +1 -1
- package/dist/trinity/eve/child/EveChildMesh.js +315 -229
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +2 -2
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js +2 -2
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -1
- package/dist/trinity/eve/child/EveChildParticleSphere.js +4 -5
- package/dist/trinity/eve/child/EveChildParticleSphere.js.map +1 -1
- package/dist/trinity/eve/child/EveChildParticleSystem.js +36 -36
- package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPlug.js +60 -14
- package/dist/trinity/eve/child/EveChildPlug.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPostProcessVolume.js +2 -2
- package/dist/trinity/eve/child/EveChildPostProcessVolume.js.map +1 -1
- package/dist/trinity/eve/child/EveChildQuad.js +4 -5
- package/dist/trinity/eve/child/EveChildQuad.js.map +1 -1
- package/dist/trinity/eve/child/EveChildRef.js +2 -2
- package/dist/trinity/eve/child/EveChildRef.js.map +1 -1
- package/dist/trinity/eve/child/EveChildSocket.js +2 -2
- package/dist/trinity/eve/child/EveChildSocket.js.map +1 -1
- package/dist/trinity/eve/child/EveChildSpherePin.js +4 -4
- package/dist/trinity/eve/child/EveChildSpherePin.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +4 -4
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/child/EveCloudVolumeBall.js +2 -2
- package/dist/trinity/eve/child/EveCloudVolumeBall.js.map +1 -1
- package/dist/trinity/eve/child/EveCloudVolumeTextureParameter.js +6 -6
- package/dist/trinity/eve/child/EveCloudVolumeTextureParameter.js.map +1 -1
- package/dist/trinity/eve/child/EveSpaceObjectChild.js +2 -2
- package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
- package/dist/trinity/eve/child/IEveLightingOverride.js +1 -23
- package/dist/trinity/eve/child/IEveLightingOverride.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/Allign.js +2 -2
- package/dist/trinity/eve/child/behaviors/Allign.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/ApproachGroup.js +2 -2
- package/dist/trinity/eve/child/behaviors/ApproachGroup.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/BackAndForth.js +2 -2
- package/dist/trinity/eve/child/behaviors/BackAndForth.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/BehaviorGroup.js +4 -4
- package/dist/trinity/eve/child/behaviors/BehaviorGroup.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/BehaviorGroupBooster.js +2 -2
- package/dist/trinity/eve/child/behaviors/BehaviorGroupBooster.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/CollisionAvoidance.js +2 -2
- package/dist/trinity/eve/child/behaviors/CollisionAvoidance.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/DroneAvoidance.js +2 -2
- package/dist/trinity/eve/child/behaviors/DroneAvoidance.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/FollowASpline.js +2 -2
- package/dist/trinity/eve/child/behaviors/FollowASpline.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/Formation.js +2 -2
- package/dist/trinity/eve/child/behaviors/Formation.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/InclusionVolume.js +2 -2
- package/dist/trinity/eve/child/behaviors/InclusionVolume.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/Inertia.js +2 -2
- package/dist/trinity/eve/child/behaviors/Inertia.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/PlayFX.js +2 -2
- package/dist/trinity/eve/child/behaviors/PlayFX.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/SeekTarget.js +2 -2
- package/dist/trinity/eve/child/behaviors/SeekTarget.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/SpawnDrones.js +2 -2
- package/dist/trinity/eve/child/behaviors/SpawnDrones.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/Wander.js +2 -2
- package/dist/trinity/eve/child/behaviors/Wander.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/lifecycle/ProcessLifetime.js +2 -2
- package/dist/trinity/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/tunnels/SplineTunnelGroup.js +2 -2
- package/dist/trinity/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -1
- package/dist/trinity/eve/child/lineSetPaths/EveBezierCurve.js +8 -8
- package/dist/trinity/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
- package/dist/trinity/eve/child/lineSetPaths/EveCircle.js +8 -8
- package/dist/trinity/eve/child/lineSetPaths/EveCircle.js.map +1 -1
- package/dist/trinity/eve/child/lineSetPaths/EveLineChildContainer.js +2 -2
- package/dist/trinity/eve/child/lineSetPaths/EveLineChildContainer.js.map +1 -1
- package/dist/trinity/eve/child/modifiers/EveChildModifierAttachToBone.js +2 -2
- package/dist/trinity/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -1
- package/dist/trinity/eve/child/modifiers/EveChildModifierBillboard3D.js +2 -2
- package/dist/trinity/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -1
- package/dist/trinity/eve/child/modifiers/EveChildModifierSRT.js +2 -2
- package/dist/trinity/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
- package/dist/trinity/eve/child/modifiers/EveChildModifierStretch.js +2 -2
- package/dist/trinity/eve/child/modifiers/EveChildModifierStretch.js.map +1 -1
- package/dist/trinity/eve/child/modifiers/EveChildModifierTranslateWithCamera.js +2 -2
- package/dist/trinity/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -1
- package/dist/trinity/eve/child/procedural/EveChildProceduralContainer.js +5 -6
- package/dist/trinity/eve/child/procedural/EveChildProceduralContainer.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js +3 -3
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +3 -3
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCycling.js +2 -2
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js +3 -3
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandom.js +4 -4
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js +4 -4
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js +4 -4
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholds.js +4 -4
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -1
- package/dist/trinity/eve/distribution/EveBaseDistributionMethod.js +2 -2
- package/dist/trinity/eve/distribution/EveBaseDistributionMethod.js.map +1 -1
- package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +2 -2
- package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -1
- package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +2 -2
- package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -1
- package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +2 -2
- package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -1
- package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js +2 -2
- package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -1
- package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +4 -4
- package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -1
- package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js +2 -2
- package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -1
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +2 -2
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -1
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +2 -2
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -1
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +2 -2
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -1
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +2 -2
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -1
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerBurst.js +2 -2
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -1
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +2 -2
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -1
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerInterval.js +2 -2
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -1
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +2 -2
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -1
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +2 -2
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -1
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +2 -2
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -1
- package/dist/trinity/eve/effect/lensflare/EveLensflare.js +4 -5
- package/dist/trinity/eve/effect/lensflare/EveLensflare.js.map +1 -1
- package/dist/trinity/eve/effect/multiEffect/EveMultiEffect.js +4 -5
- package/dist/trinity/eve/effect/multiEffect/EveMultiEffect.js.map +1 -1
- package/dist/trinity/eve/effect/multiEffect/EveMultiEffectParameter.js +4 -4
- package/dist/trinity/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -1
- package/dist/trinity/eve/index.js +4 -4
- package/dist/trinity/eve/lights/Tr2FactionLight.js +5 -6
- package/dist/trinity/eve/lights/Tr2FactionLight.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2Light.js +37 -9
- package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2PointLight.js +2 -2
- package/dist/trinity/eve/lights/Tr2PointLight.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2SpotLight.js +2 -2
- package/dist/trinity/eve/lights/Tr2SpotLight.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2TexturedPointLight.js +29 -31
- package/dist/trinity/eve/lights/Tr2TexturedPointLight.js.map +1 -1
- package/dist/trinity/eve/locator/EveLocator2.js +2 -2
- package/dist/trinity/eve/locator/EveLocator2.js.map +1 -1
- package/dist/trinity/eve/locator/EveLocatorSets.js +13 -4
- package/dist/trinity/eve/locator/EveLocatorSets.js.map +1 -1
- package/dist/trinity/eve/locator/Locator.js +2 -2
- package/dist/trinity/eve/locator/Locator.js.map +1 -1
- package/dist/trinity/eve/overlays/EveDamageOverlay.js +2 -2
- package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
- package/dist/trinity/eve/overlays/EveMeshOverlayEffect.js +2 -2
- package/dist/trinity/eve/overlays/EveMeshOverlayEffect.js.map +1 -1
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +5 -6
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveFiringEffectElementContainer.js +4 -5
- package/dist/trinity/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveLocalPositionCurve.js +2 -2
- package/dist/trinity/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveRemotePositionCurve.js +2 -2
- package/dist/trinity/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch.js +6 -6
- package/dist/trinity/eve/renderable/stretch/EveStretch.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js +10 -8
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js +4 -5
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceScene.js +2 -2
- package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -2
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
- package/dist/trinity/eve/scene/components/EveComponentRegistry.js +3 -3
- package/dist/trinity/eve/scene/components/EveComponentRegistry.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveChildSmartLightSet.js +6 -7
- package/dist/trinity/eve/smartLights/EveChildSmartLightSet.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveSmartLightBaseGroup.js +2 -2
- package/dist/trinity/eve/smartLights/EveSmartLightBaseGroup.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveSmartLightColorShareGroup.js +4 -8
- package/dist/trinity/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveSmartLightMesh.js +7 -4
- package/dist/trinity/eve/smartLights/EveSmartLightMesh.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveSmartLightPointLight.js +25 -15
- package/dist/trinity/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveSmartLightQuad.js +4 -9
- package/dist/trinity/eve/smartLights/EveSmartLightQuad.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveSmartLightSpotLight.js +2 -2
- package/dist/trinity/eve/smartLights/EveSmartLightSpotLight.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +2 -3
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +2 -2
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +2 -2
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +10 -18
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +2 -2
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +2 -2
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +4 -9
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterBool.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterBool.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterColor.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterColor.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterFloat.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterFloat.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterInt.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterInt.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterString.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterString.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterVector2.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterVector2.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterVector3.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterVector3.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterVector4.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterVector4.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveEffectRoot2.js +20 -17
- package/dist/trinity/eve/spaceObject/EveEffectRoot2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveMissile.js +2 -2
- package/dist/trinity/eve/spaceObject/EveMissile.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveMissileWarhead.js +2 -2
- package/dist/trinity/eve/spaceObject/EveMissileWarhead.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveMobile.js +2 -2
- package/dist/trinity/eve/spaceObject/EveMobile.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveRootTransform.js +2 -2
- package/dist/trinity/eve/spaceObject/EveRootTransform.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveShip2.js +2 -2
- package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +539 -432
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveTransform.js +7 -7
- package/dist/trinity/eve/spaceObject/EveTransform.js.map +1 -1
- package/dist/trinity/eve/spaceObject/IEveSpaceObject2ParentData.js +44 -52
- package/dist/trinity/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -1
- package/dist/trinity/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +2 -2
- package/dist/trinity/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -1
- package/dist/trinity/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +2 -2
- package/dist/trinity/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -1
- package/dist/trinity/eve/spaceObject/planet/EvePlanet.js +2 -2
- package/dist/trinity/eve/spaceObject/planet/EvePlanet.js.map +1 -1
- package/dist/trinity/eve/spaceObject/swarm/EveSwarm.js +2 -2
- package/dist/trinity/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
- package/dist/trinity/eve/spaceObject/swarm/EveSwarmRenderable.js +7 -8
- package/dist/trinity/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -1
- package/dist/trinity/eve/ui/EveConnector.js +2 -2
- package/dist/trinity/eve/ui/EveConnector.js.map +1 -1
- package/dist/trinity/eve/ui/EveEllipseDefinition.js +2 -2
- package/dist/trinity/eve/ui/EveEllipseDefinition.js.map +1 -1
- package/dist/trinity/eve/ui/EveEllipseSet.js +36 -6
- package/dist/trinity/eve/ui/EveEllipseSet.js.map +1 -1
- package/dist/trinity/eve/ui/EveLineContainer.js +4 -5
- package/dist/trinity/eve/ui/EveLineContainer.js.map +1 -1
- package/dist/trinity/eve/ui/EveProjectBracket.js +11 -3
- package/dist/trinity/eve/ui/EveProjectBracket.js.map +1 -1
- package/dist/trinity/eve/ui/EveSpherePin.js +6 -7
- package/dist/trinity/eve/ui/EveSpherePin.js.map +1 -1
- package/dist/trinity/eve/ui/EveSprite2dBracket.js +2 -2
- package/dist/trinity/eve/ui/EveSprite2dBracket.js.map +1 -1
- package/dist/trinity/eve/ui/EveSprite2dBracketRenderer.js +2 -2
- package/dist/trinity/eve/ui/EveSprite2dBracketRenderer.js.map +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js +6 -24
- package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
- package/dist/trinity/eve/ui/EveUiObject.js +2 -2
- package/dist/trinity/eve/ui/EveUiObject.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +4 -5
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveLineSet.js +6 -7
- package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +2 -2
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -1
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +8 -9
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/EveVirtualCamera.js +2 -2
- package/dist/trinity/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/EveVirtualCameraSystem.js +2 -2
- package/dist/trinity/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +4 -4
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +4 -4
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +2 -2
- package/dist/trinity/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
- package/dist/trinity/eve/volume/EveBoxVolume.js +44 -44
- package/dist/trinity/eve/volume/EveBoxVolume.js.map +1 -1
- package/dist/trinity/eve/volume/EveEllipsoidVolume.js +2 -2
- package/dist/trinity/eve/volume/EveEllipsoidVolume.js.map +1 -1
- package/dist/trinity/eve/volume/EveSphereVolume.js +5 -6
- package/dist/trinity/eve/volume/EveSphereVolume.js.map +1 -1
- package/dist/trinity/generated/eve/child/EveCloudEditableVolume.js +2 -2
- package/dist/trinity/generated/eve/child/EveCloudEditableVolume.js.map +1 -1
- package/dist/trinity/generated/eve/effect/EveOccluder.js +2 -2
- package/dist/trinity/generated/eve/effect/EveOccluder.js.map +1 -1
- package/dist/trinity/generated/eve/effect/EveStarfield.js +2 -2
- package/dist/trinity/generated/eve/effect/EveStarfield.js.map +1 -1
- package/dist/trinity/generated/font/Tr2FontManager.js +2 -2
- package/dist/trinity/generated/font/Tr2FontManager.js.map +1 -1
- package/dist/trinity/generated/font/Tr2FontMeasurer.js +2 -2
- package/dist/trinity/generated/font/Tr2FontMeasurer.js.map +1 -1
- package/dist/trinity/generated/font/Tr2SBitWrapper.js +2 -2
- package/dist/trinity/generated/font/Tr2SBitWrapper.js.map +1 -1
- package/dist/trinity/generated/particle/Tr2GpuParticleSystem.js +2 -2
- package/dist/trinity/generated/particle/Tr2GpuParticleSystem.js.map +1 -1
- package/dist/trinity/generated/raytracing/Tr2RaytracingManager.js +2 -2
- package/dist/trinity/generated/raytracing/Tr2RaytracingManager.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2d.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2d.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dArc.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dArc.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dContainer.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dContainer.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dFrame.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dFrame.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dLayer.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dLayer.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dLine.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dLine.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretch.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretch.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretchVertical.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretchVertical.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dTextObject.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dTextObject.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dTexture.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dTexture.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2SpriteObject.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2SpriteObject.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2AtlasTexture.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2AtlasTexture.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2GpuStructuredBuffer.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2GpuStructuredBuffer.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2GrannyPrimitiveSet.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2GrannyPrimitiveSet.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2HostBitmap.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2HostBitmap.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2ImpostorManager.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2ImpostorManager.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2PrimitiveScene.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2PrimitiveScene.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2PrimitiveText.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2PrimitiveText.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2ReflectionProbe.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2ReflectionProbe.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2SSSSS.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2SSSSS.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2TextureAtlas.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2TextureAtlas.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2TextureAtlasMan.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2TextureAtlasMan.js.map +1 -1
- package/dist/trinity/index.js +23 -16
- package/dist/trinity/index.js.map +1 -1
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js +1 -31
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -1
- package/dist/trinity/particle/Tr2ParticleSystem.js +51 -52
- package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
- package/dist/trinity/particle/attribute/Tr2CapsuleShapeAttributeGenerator.js +2 -2
- package/dist/trinity/particle/attribute/Tr2CapsuleShapeAttributeGenerator.js.map +1 -1
- package/dist/trinity/particle/attribute/Tr2ConsecutiveIntegerAttributeGenerator.js +2 -2
- package/dist/trinity/particle/attribute/Tr2ConsecutiveIntegerAttributeGenerator.js.map +1 -1
- package/dist/trinity/particle/attribute/Tr2RandomDirectionAttributeGenerator.js +2 -2
- package/dist/trinity/particle/attribute/Tr2RandomDirectionAttributeGenerator.js.map +1 -1
- package/dist/trinity/particle/attribute/Tr2RandomIntegerAttributeGenerator.js +2 -2
- package/dist/trinity/particle/attribute/Tr2RandomIntegerAttributeGenerator.js.map +1 -1
- package/dist/trinity/particle/attribute/Tr2RandomUniformAttributeGenerator.js +2 -2
- package/dist/trinity/particle/attribute/Tr2RandomUniformAttributeGenerator.js.map +1 -1
- package/dist/trinity/particle/attribute/Tr2SphereShapeAttributeGenerator.js +2 -2
- package/dist/trinity/particle/attribute/Tr2SphereShapeAttributeGenerator.js.map +1 -1
- package/dist/trinity/particle/constraint/Tr2ElementBlendConstraint.js +2 -2
- package/dist/trinity/particle/constraint/Tr2ElementBlendConstraint.js.map +1 -1
- package/dist/trinity/particle/constraint/Tr2PlaneConstraint.js +13 -3
- package/dist/trinity/particle/constraint/Tr2PlaneConstraint.js.map +1 -1
- package/dist/trinity/particle/constraint/Tr2SphereConstraint.js +2 -2
- package/dist/trinity/particle/constraint/Tr2SphereConstraint.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementData.js +22 -8
- package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementDeclaration.js +13 -25
- package/dist/trinity/particle/element/Tr2ParticleElementDeclaration.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementDeclarationName.js +38 -3
- package/dist/trinity/particle/element/Tr2ParticleElementDeclarationName.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +26 -27
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +4 -5
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2GpuUniqueEmitter.js +2 -2
- package/dist/trinity/particle/emitter/Tr2GpuUniqueEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +17 -18
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ForceSphereVolume.js +2 -2
- package/dist/trinity/particle/force/Tr2ForceSphereVolume.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleAttractorForce.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleAttractorForce.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleDirectForce.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleDirectForce.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleDragForce.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleDragForce.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleFluidDragForce.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleFluidDragForce.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleSpring.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleSpring.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleTurbulenceForce.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleTurbulenceForce.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleVortexForce.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleVortexForce.js.map +1 -1
- package/dist/trinity/particle/index.js +1 -1
- package/dist/trinity/postProcess/Tr2PostProcess.js +2 -2
- package/dist/trinity/postProcess/Tr2PostProcess.js.map +1 -1
- package/dist/trinity/postProcess/Tr2PostProcess2.js +2 -2
- package/dist/trinity/postProcess/Tr2PostProcess2.js.map +1 -1
- package/dist/trinity/postProcess/Tr2PostProcessAttributes.js +2 -2
- package/dist/trinity/postProcess/Tr2PostProcessAttributes.js.map +1 -1
- package/dist/trinity/postProcess/Tr2PostProcessRenderer.js +4 -4
- package/dist/trinity/postProcess/Tr2PostProcessRenderer.js.map +1 -1
- package/dist/trinity/postProcess/Tr2SSAO.js +4 -4
- package/dist/trinity/postProcess/Tr2SSAO.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPBloomEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPBloomEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPColorCorrectionEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPColorCorrectionEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPDepthOfFieldEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPDepthOfFieldEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPDesaturateEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPDesaturateEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPDynamicExposureEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPDynamicExposureEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPFadeEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPFadeEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPFilmGrainEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPFilmGrainEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPFogEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPFogEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPGenericEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPGenericEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPGodRaysEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPGodRaysEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPLutEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPLutEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPSignalLossEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPSignalLossEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPTaaEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPTaaEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPTonemappingEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPTonemappingEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPVignetteEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPVignetteEffect.js.map +1 -1
- package/dist/trinity/renderJob/Tr2RenderJobs.js +5 -5
- package/dist/trinity/renderJob/Tr2RenderJobs.js.map +1 -1
- package/dist/trinity/renderJob/TriRenderJob.js +4 -4
- package/dist/trinity/renderJob/TriRenderJob.js.map +1 -1
- package/dist/trinity/renderJob/node/Tr2RenderNodeEffect.js +4 -5
- package/dist/trinity/renderJob/node/Tr2RenderNodeEffect.js.map +1 -1
- package/dist/trinity/renderJob/node/Tr2RenderNodeSprite2dScene.js +4 -5
- package/dist/trinity/renderJob/node/Tr2RenderNodeSprite2dScene.js.map +1 -1
- package/dist/trinity/renderJob/step/Tr2StepExecuteRenderNode.js +2 -2
- package/dist/trinity/renderJob/step/Tr2StepExecuteRenderNode.js.map +1 -1
- package/dist/trinity/renderJob/step/TriRenderStep.js +2 -2
- package/dist/trinity/renderJob/step/TriRenderStep.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepClear.js +2 -2
- package/dist/trinity/renderJob/step/TriStepClear.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepClearUav.js +2 -2
- package/dist/trinity/renderJob/step/TriStepClearUav.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepCopyRenderTarget.js +2 -2
- package/dist/trinity/renderJob/step/TriStepCopyRenderTarget.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepEnableWireframeMode.js +2 -2
- package/dist/trinity/renderJob/step/TriStepEnableWireframeMode.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepFilterVisibilityResults.js +2 -2
- package/dist/trinity/renderJob/step/TriStepFilterVisibilityResults.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepGenerateMipMaps.js +2 -2
- package/dist/trinity/renderJob/step/TriStepGenerateMipMaps.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPopRenderTarget.js +2 -2
- package/dist/trinity/renderJob/step/TriStepPopRenderTarget.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPresentSwapChain.js +2 -2
- package/dist/trinity/renderJob/step/TriStepPresentSwapChain.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPushDepthStencil.js +2 -2
- package/dist/trinity/renderJob/step/TriStepPushDepthStencil.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +2 -2
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderAtlas.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderAtlas.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderDebug.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderDebug.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderEffect.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderEffect.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderFps.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderFps.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderLineGraph.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderLineGraph.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderObject.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderObject.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderPass.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderPass.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderScene.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderScene.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderSceneDebug.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderSceneDebug.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderTexture.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderTexture.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepResolve.js +2 -2
- package/dist/trinity/renderJob/step/TriStepResolve.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRunComputeShader.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRunComputeShader.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRunJob.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRunJob.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetDebugRenderer.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetDebugRenderer.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetDepthStencil.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetDepthStencil.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetProjection.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetProjection.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetRenderState.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetRenderState.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetRenderTarget.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetRenderTarget.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetStdRndStates.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetStdRndStates.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetUpscalingContextID.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetUpscalingContextID.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetVariableStore.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetVariableStore.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetView.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetView.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetViewport.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetViewport.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetVisualizationMode.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetVisualizationMode.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepTestBlocking.js +2 -2
- package/dist/trinity/renderJob/step/TriStepTestBlocking.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepToggleCubemap.js +2 -2
- package/dist/trinity/renderJob/step/TriStepToggleCubemap.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepUpdate.js +2 -2
- package/dist/trinity/renderJob/step/TriStepUpdate.js.map +1 -1
- package/dist/trinity/shader/Tr2DataTextureManager.js +9 -9
- package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Effect.js +370 -347
- package/dist/trinity/shader/Tr2Effect.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +5 -5
- package/dist/trinity/shader/Tr2Material.js.map +1 -1
- package/dist/trinity/shader/Tr2ShaderBuffer.js +3 -4
- package/dist/trinity/shader/Tr2ShaderBuffer.js.map +1 -1
- package/dist/trinity/shader/index.js +3 -0
- package/dist/trinity/shader/index.js.map +1 -1
- package/dist/trinity/shader/parameter/CjsParameter.js +202 -185
- package/dist/trinity/shader/parameter/CjsParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/CjsVectorParameter.js +2 -2
- package/dist/trinity/shader/parameter/CjsVectorParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/ITriEffectParameter.js +56 -0
- package/dist/trinity/shader/parameter/ITriEffectParameter.js.map +1 -0
- package/dist/trinity/shader/parameter/ITriEffectResourceParameter.js +31 -0
- package/dist/trinity/shader/parameter/ITriEffectResourceParameter.js.map +1 -0
- package/dist/trinity/shader/parameter/ITriEffectTextureParameter.js +43 -0
- package/dist/trinity/shader/parameter/ITriEffectTextureParameter.js.map +1 -0
- package/dist/trinity/shader/parameter/Tr2ConstantEffectParameter.js +17 -5
- package/dist/trinity/shader/parameter/Tr2ConstantEffectParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2FloatParameter.js +46 -45
- package/dist/trinity/shader/parameter/Tr2FloatParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +14 -12
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2Matrix4Parameter.js +33 -32
- package/dist/trinity/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2RuntimeTextureParameter.js +11 -10
- package/dist/trinity/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2TextureAnimationParameter.js +55 -53
- package/dist/trinity/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2Vector2Parameter.js +49 -48
- package/dist/trinity/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2Vector3Parameter.js +52 -51
- package/dist/trinity/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2Vector4Parameter.js +56 -55
- package/dist/trinity/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
- package/dist/trinity/shader/parameter/TriFloatArrayParameter.js +8 -8
- package/dist/trinity/shader/parameter/TriFloatArrayParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/TriTextureParameter.js +27 -22
- package/dist/trinity/shader/parameter/TriTextureParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/TriTransformParameter.js +27 -27
- package/dist/trinity/shader/parameter/TriTransformParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/TriVariableParameter.js +53 -54
- package/dist/trinity/shader/parameter/TriVariableParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/TriVector4.js +2 -2
- package/dist/trinity/shader/parameter/TriVector4.js.map +1 -1
- package/dist/trinity/shader/reflection/Tr2ShaderOption.js +4 -2
- package/dist/trinity/shader/reflection/Tr2ShaderOption.js.map +1 -1
- package/dist/trinity/shader/sampler/Tr2SamplerOverride.js +11 -2
- package/dist/trinity/shader/sampler/Tr2SamplerOverride.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dContainerBase.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dContainerBase.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dLineTrace.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dLineTrace.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dLineTraceVertex.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dLineTraceVertex.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dPickingMask.js +8 -9
- package/dist/trinity/sprite2d/Tr2Sprite2dPickingMask.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dPolygon.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dPolygon.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dRenderJob.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dRenderJob.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dScene.js +4 -4
- package/dist/trinity/sprite2d/Tr2Sprite2dScene.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dTransform.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dTransform.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dTriangle.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dTriangle.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2SpriteObjectBase.js +2 -2
- package/dist/trinity/sprite2d/Tr2SpriteObjectBase.js.map +1 -1
- package/dist/trinity/ui/Tr2PresentParameters.js +2 -2
- package/dist/trinity/ui/Tr2PresentParameters.js.map +1 -1
- package/dist/trinity/ui/Tr2ProjectBoundingBoxBracket.js +3 -3
- package/dist/trinity/ui/Tr2ProjectBoundingBoxBracket.js.map +1 -1
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
- package/docs/core/README.md +38 -38
- package/docs/core/architecture.md +6 -5
- package/docs/core/reference/api.md +0 -10
- package/docs/core/reference/classes/README.md +57 -67
- package/docs/global/architecture.md +1 -3
- package/docs/global/blue-enums.md +115 -0
- package/docs/global/concepts/model-lifecycle.md +177 -182
- package/docs/global/core-types/README.md +394 -317
- package/docs/global/reference/api.md +2 -2
- package/docs/global/reference/classes/README.md +355 -205
- package/docs/global/reference/classes/dropped.md +40 -0
- package/docs/resource/architecture.md +152 -112
- package/docs/resource/concepts/resource-lifecycle.md +21 -15
- package/docs/resource/formats/geometry-interchange.md +50 -0
- package/docs/resource/formats/pickle.md +126 -100
- package/docs/resource/formats/provenance.md +15 -9
- package/docs/resource/formats/webgl/carbon-constant-layouts.md +98 -232
- package/docs/resource/formats/webgl/decl-io.md +241 -397
- package/docs/resource/formats/webgl/memory-structured.md +91 -128
- package/docs/resource/formats/webgl/texture-sample.md +306 -469
- package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +278 -530
- package/docs/resource/reference/classes/README.md +3 -1
- package/docs/resource/reference/classes/dropped.md +21 -1
- package/docs/resource/reference/classes/formats.md +33 -0
- package/docs/resource/reference/classes/texture.md +11 -1
- package/docs/resource/reference/classes/video.md +92 -0
- package/docs/resource/reference/events.md +10 -9
- package/docs/resource/reference/motherlode-cache.md +24 -11
- package/docs/resource/reference/queues.md +30 -1
- package/docs/trinity/README.md +5 -5
- package/docs/trinity/architecture.md +355 -344
- package/docs/trinity/concepts/eve-runtime-behavior.md +1 -1
- package/docs/trinity/reference/api.md +19 -7
- package/docs/trinity/reference/classes/dropped.md +2 -11
- package/docs/trinity/reference/classes/eve-runtime.md +1 -1
- package/docs/trinity/reference/classes/trinity-core.md +1672 -1622
- package/docs/trinity/reference/implementation-status.md +92 -92
- package/package.json +2 -1
- package/dist/core/CjsFrameDriver.js +0 -109
- package/dist/core/CjsFrameDriver.js.map +0 -1
- package/dist/global/contracts/CjsFrameLifecycle.js +0 -49
- package/dist/global/contracts/CjsFrameLifecycle.js.map +0 -1
- package/dist/global/contracts/CjsInstancedMeshManager.js +0 -58
- package/dist/global/contracts/CjsInstancedMeshManager.js.map +0 -1
- package/dist/resource/formats/black/core/black-schema-v1-2026-07-23.json.js +0 -4
- package/dist/resource/formats/black/core/black-schema-v1-2026-07-23.json.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriRigidOrientation.js","sources":["../../../../../src/trinity/core/animation/TriRigidOrientation.js"],"sourcesContent":["// Source: trinity/trinity/TriRigidOrientation.h\n// Hand-maintained from Carbon source, promoted out of generated intake.\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\n\r\n/** Integrates torque into an orientation over time, sampling the result at a given moment. */\r\n@type.define({ className: \"TriRigidOrientation\", family: \"trinityCore\" })\r\nexport class TriRigidOrientation extends CjsModel\r\n{\r\n\r\n /** mDrag (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n drag = 1;\r\n\r\n /** mStart (Be::Time) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float64\r\n start = 0;\r\n\r\n /** mI (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n I = 1;\r\n\r\n /** mStates (PTriTorqueVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"TriTorque\")\r\n states = [];\r\n\r\n /** mValue (Quaternion) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.quat\r\n value = quat.create();\r\n\r\n /** mName (std::wstring) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** Carbon method Sort (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.implemented\r\n Sort()\r\n {\r\n this.states.sort((a, b) => a.time - b.time);\r\n const tau = vec3.create();\r\n const converter = quat.create();\r\n for (let i = 1; i < this.states.length; i++)\r\n {\r\n const current = this.states[i];\r\n const previous = this.states[i - 1];\r\n const elapsed = current.time - previous.time;\r\n const decay = Math.exp(-this.drag * elapsed / this.I);\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n const acceleration = previous.torque[axis];\r\n const velocity = previous.omega0[axis];\r\n current.omega0[axis] = acceleration / this.drag + (velocity - acceleration / this.drag) * decay;\r\n tau[axis] = acceleration * elapsed / this.drag + this.I * (velocity * this.drag - acceleration) / (this.drag * this.drag) * (1 - decay);\r\n }\r\n quat.set(converter, tau[0], tau[1], tau[2], 0);\r\n quat.exp(converter, converter);\r\n // Carbon (row-vector): rot0 = previousRot0 * tauConverter - previous first.\r\n quat.multiply(current.rot0, converter, previous.rot0);\r\n }\r\n if (this.states.length) quat.copy(this.value, this.states[0].rot0);\r\n }\r\n\r\n // Carbon TriRigidOrientation.cpp:36-172. Sort precomputes each key's start\r\n // state; these sample BETWEEN keys, integrating the active key's torque\r\n // forward by the elapsed time with the same closed-form drag solution\r\n // (TriMath.cpp:153-176):\r\n //\r\n // angle = a*t/k + I*(v*k - a)/k^2 * (1 - e^(-k*t/I))\r\n // velocity = a/k + (v - a/k) * e^(-k*t/I)\r\n //\r\n // where a is torque, v the angular velocity at the key, I the moment of\r\n // inertia and k the drag. The integrated angle becomes a pure quaternion\r\n // whose exponential is the rotation accumulated since the key.\r\n\r\n /**\r\n * Selects the key covering a time, matching Carbon's cursor reuse: the\r\n * cached key is kept when it still brackets the time, and only a miss walks\r\n * the list.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Seek(time)\r\n {\r\n const count = this.states.length;\r\n\r\n if (!count) return -1;\r\n\r\n if (time >= this.states[count - 1].time)\r\n {\r\n this.#currentKey = count - 1;\r\n return this.#currentKey;\r\n }\r\n\r\n if (this.#currentKey === count - 1) this.#currentKey = 0;\r\n\r\n const key = this.states[this.#currentKey];\r\n\r\n if (time < key.time || time >= this.states[this.#currentKey + 1].time)\r\n {\r\n for (this.#currentKey = 0; this.#currentKey < count - 1; this.#currentKey++)\r\n {\r\n if (time >= this.states[this.#currentKey].time\r\n && time < this.states[this.#currentKey + 1].time) break;\r\n }\r\n }\r\n\r\n return this.#currentKey;\r\n }\r\n\r\n /**\r\n * The orientation at a time measured from the start, written into `out`;\r\n * before the first key it is the retained value.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetValueAt(out, time)\r\n {\r\n if (!this.states.length || time < 0 || time < this.states[0].time)\r\n {\r\n return quat.copy(out, this.value);\r\n }\r\n\r\n const key = this.states[this.Seek(time)];\r\n const elapsed = time - key.time;\r\n const decay = Math.exp(-this.drag * elapsed / this.I);\r\n\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n const acceleration = key.torque[axis];\r\n const velocity = key.omega0[axis];\r\n\r\n ANGLE_SCRATCH[axis] = acceleration * elapsed / this.drag\r\n + this.I * (velocity * this.drag - acceleration) / (this.drag * this.drag) * (1 - decay);\r\n }\r\n\r\n quat.set(CONVERTER_SCRATCH, ANGLE_SCRATCH[0], ANGLE_SCRATCH[1], ANGLE_SCRATCH[2], 0);\r\n quat.exp(CONVERTER_SCRATCH, CONVERTER_SCRATCH);\r\n\r\n // Carbon (row-vector): rot0 * converter, the key's orientation first.\r\n return quat.multiply(out, CONVERTER_SCRATCH, key.rot0);\r\n }\r\n\r\n /**\r\n * The angular velocity at a time measured from the start, written into\r\n * `out`; before the first key it is zero.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetValueDotAt(out, time)\r\n {\r\n if (!this.states.length || time < 0 || time < this.states[0].time)\r\n {\r\n return vec3.set(out, 0, 0, 0);\r\n }\r\n\r\n const key = this.states[this.Seek(time)];\r\n const decay = Math.exp(-this.drag * (time - key.time) / this.I);\r\n\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n const terminal = key.torque[axis] / this.drag;\r\n out[axis] = terminal + (key.omega0[axis] - terminal) * decay;\r\n }\r\n\r\n return out;\r\n }\r\n\r\n /**\r\n * Samples the orientation at a time and retains it as the current value,\r\n * which is what a curve consumer reads back.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Update(out, time)\r\n {\r\n this.GetValueAt(this.value, time);\r\n return quat.copy(out, this.value);\r\n }\r\n\r\n #currentKey = 0;\r\n\r\n}\r\n\r\nconst ANGLE_SCRATCH = vec3.create();\r\nconst CONVERTER_SCRATCH = quat.create();\r\n"],"names":["_TriRigidOrientation","TriRigidOrientation","CjsModel","e","_init_drag","_init_extra_drag","_init_start","_init_extra_start","_init_I","_init_extra_I","_init_states","_init_extra_states","_init_value","_init_extra_value","_init_name","_init_extra_name","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","float32","float64","list","quat","string","carbon","method","impl","implemented","drag","start","I","states","value","create","name","Sort","sort","a","b","time","tau","vec3","converter","i","length","current","previous","elapsed","decay","Math","exp","axis","acceleration","torque","velocity","omega0","set","multiply","rot0","copy","Seek","count","key","GetValueAt","out","ANGLE_SCRATCH","CONVERTER_SCRATCH","GetValueDotAt","terminal","Update"],"mappings":";;;;;;;;AAOA;AAAA,IAAAA;AACA,MAAAC,mBAAA,SACyCC,QAAQ,CACjD;AAAA,EAAA;AAAA,IAAA,CAAA;MAAAC,CAAA,EAAA,CAAAC,UAAA,EAAAC,gBAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,OAAA,EAAAC,aAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,UAAA,CAAA;MAAAC,CAAA,EAAA,CAAAjB,oBAAA,EAAAkB,UAAA;AAAA,KAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,MAAAA,SAAS,EAAE,qBAAqB;AAAEC,MAAAA,MAAM,EAAE;AAAc,KAAC,CAAC,CAAA,EAAA,CAAA,CAAA,CAKtEC,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACM,OAAO,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAIZF,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACO,OAAO,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAIZH,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACM,OAAO,CAAA,EAAA,EAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAIZF,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAA,MAAA,EACVL,IAAI,CAACQ,IAAI,CAAC,WAAW,CAAC,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAItBJ,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACS,IAAI,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAITL,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACU,MAAM,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAIXC,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CA4ChBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAiChBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAgChBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAwBhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,8BA5KsBhC,QAAQ,CAAA;AAAA;AAG/C;AAGAiC,EAAAA,IAAI,IAAAnB,UAAA,CAAA,IAAA,CAAA,EAAAZ,UAAA,OAAG,CAAC,CAAA;;AAER;AAGAgC,EAAAA,KAAK,IAAA/B,gBAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAG,CAAC,CAAA;;AAET;AAGA+B,EAAAA,CAAC,IAAA9B,iBAAA,CAAA,IAAA,CAAA,EAAAC,OAAA,OAAG,CAAC,CAAA;;AAEL;AAGA8B,EAAAA,MAAM,IAAA7B,aAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,EAAE,CAAA;;AAEX;EAGA6B,KAAK,IAAA5B,kBAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAGiB,IAAI,CAACW,MAAM,EAAE,CAAA;;AAErB;AAGAC,EAAAA,IAAI,IAAA5B,iBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,EAAE,CAAA;;AAET;AAGA4B,EAAAA,IAAIA,GACJ;AACE,IAAA,IAAI,CAACJ,MAAM,CAACK,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,IAAI,GAAGD,CAAC,CAACC,IAAI,CAAC;AAC3C,IAAA,MAAMC,GAAG,GAAGC,IAAI,CAACR,MAAM,EAAE;AACzB,IAAA,MAAMS,SAAS,GAAGpB,IAAI,CAACW,MAAM,EAAE;AAC/B,IAAA,KAAK,IAAIU,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACZ,MAAM,CAACa,MAAM,EAAED,CAAC,EAAE,EAC3C;AACE,MAAA,MAAME,OAAO,GAAG,IAAI,CAACd,MAAM,CAACY,CAAC,CAAC;MAC9B,MAAMG,QAAQ,GAAG,IAAI,CAACf,MAAM,CAACY,CAAC,GAAG,CAAC,CAAC;MACnC,MAAMI,OAAO,GAAGF,OAAO,CAACN,IAAI,GAAGO,QAAQ,CAACP,IAAI;AAC5C,MAAA,MAAMS,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAI,CAACtB,IAAI,GAAGmB,OAAO,GAAG,IAAI,CAACjB,CAAC,CAAC;MACrD,KAAK,IAAIqB,IAAI,GAAG,CAAC,EAAEA,IAAI,GAAG,CAAC,EAAEA,IAAI,EAAE,EACnC;AACE,QAAA,MAAMC,YAAY,GAAGN,QAAQ,CAACO,MAAM,CAACF,IAAI,CAAC;AAC1C,QAAA,MAAMG,QAAQ,GAAGR,QAAQ,CAACS,MAAM,CAACJ,IAAI,CAAC;QACtCN,OAAO,CAACU,MAAM,CAACJ,IAAI,CAAC,GAAGC,YAAY,GAAG,IAAI,CAACxB,IAAI,GAAG,CAAC0B,QAAQ,GAAGF,YAAY,GAAG,IAAI,CAACxB,IAAI,IAAIoB,KAAK;AAC/FR,QAAAA,GAAG,CAACW,IAAI,CAAC,GAAGC,YAAY,GAAGL,OAAO,GAAG,IAAI,CAACnB,IAAI,GAAG,IAAI,CAACE,CAAC,IAAIwB,QAAQ,GAAG,IAAI,CAAC1B,IAAI,GAAGwB,YAAY,CAAC,IAAI,IAAI,CAACxB,IAAI,GAAG,IAAI,CAACA,IAAI,CAAC,IAAI,CAAC,GAAGoB,KAAK,CAAC;AACzI,MAAA;MACA1B,IAAI,CAACkC,GAAG,CAACd,SAAS,EAAEF,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9ClB,MAAAA,IAAI,CAAC4B,GAAG,CAACR,SAAS,EAAEA,SAAS,CAAC;AAC9B;AACApB,MAAAA,IAAI,CAACmC,QAAQ,CAACZ,OAAO,CAACa,IAAI,EAAEhB,SAAS,EAAEI,QAAQ,CAACY,IAAI,CAAC;AACvD,IAAA;IACA,IAAI,IAAI,CAAC3B,MAAM,CAACa,MAAM,EAAEtB,IAAI,CAACqC,IAAI,CAAC,IAAI,CAAC3B,KAAK,EAAE,IAAI,CAACD,MAAM,CAAC,CAAC,CAAC,CAAC2B,IAAI,CAAC;AACpE,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACF;AACA;AACA;AACA;EAGEE,IAAIA,CAACrB,IAAI,EACT;AACE,IAAA,MAAMsB,KAAK,GAAG,IAAI,CAAC9B,MAAM,CAACa,MAAM;AAEhC,IAAA,IAAI,CAACiB,KAAK,EAAE,OAAO,EAAE;AAErB,IAAA,IAAItB,IAAI,IAAI,IAAI,CAACR,MAAM,CAAC8B,KAAK,GAAG,CAAC,CAAC,CAACtB,IAAI,EACvC;AACE,MAAA,IAAI,CAAC,WAAW,GAAGsB,KAAK,GAAG,CAAC;MAC5B,OAAO,IAAI,CAAC,WAAW;AACzB,IAAA;AAEA,IAAA,IAAI,IAAI,CAAC,WAAW,KAAKA,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC;IAExD,MAAMC,GAAG,GAAG,IAAI,CAAC/B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IAEzC,IAAIQ,IAAI,GAAGuB,GAAG,CAACvB,IAAI,IAAIA,IAAI,IAAI,IAAI,CAACR,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAACQ,IAAI,EACrE;MACE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,GAAGsB,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,EAC3E;AACE,QAAA,IAAItB,IAAI,IAAI,IAAI,CAACR,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAACQ,IAAI,IACzCA,IAAI,GAAG,IAAI,CAACR,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAACQ,IAAI,EAAE;AACtD,MAAA;AACF,IAAA;IAEA,OAAO,IAAI,CAAC,WAAW;AACzB,EAAA;;AAEA;AACF;AACA;AACA;AAGEwB,EAAAA,UAAUA,CAACC,GAAG,EAAEzB,IAAI,EACpB;IACE,IAAI,CAAC,IAAI,CAACR,MAAM,CAACa,MAAM,IAAIL,IAAI,GAAG,CAAC,IAAIA,IAAI,GAAG,IAAI,CAACR,MAAM,CAAC,CAAC,CAAC,CAACQ,IAAI,EACjE;MACE,OAAOjB,IAAI,CAACqC,IAAI,CAACK,GAAG,EAAE,IAAI,CAAChC,KAAK,CAAC;AACnC,IAAA;AAEA,IAAA,MAAM8B,GAAG,GAAG,IAAI,CAAC/B,MAAM,CAAC,IAAI,CAAC6B,IAAI,CAACrB,IAAI,CAAC,CAAC;AACxC,IAAA,MAAMQ,OAAO,GAAGR,IAAI,GAAGuB,GAAG,CAACvB,IAAI;AAC/B,IAAA,MAAMS,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAI,CAACtB,IAAI,GAAGmB,OAAO,GAAG,IAAI,CAACjB,CAAC,CAAC;IAErD,KAAK,IAAIqB,IAAI,GAAG,CAAC,EAAEA,IAAI,GAAG,CAAC,EAAEA,IAAI,EAAE,EACnC;AACE,MAAA,MAAMC,YAAY,GAAGU,GAAG,CAACT,MAAM,CAACF,IAAI,CAAC;AACrC,MAAA,MAAMG,QAAQ,GAAGQ,GAAG,CAACP,MAAM,CAACJ,IAAI,CAAC;AAEjCc,MAAAA,aAAa,CAACd,IAAI,CAAC,GAAGC,YAAY,GAAGL,OAAO,GAAG,IAAI,CAACnB,IAAI,GACpD,IAAI,CAACE,CAAC,IAAIwB,QAAQ,GAAG,IAAI,CAAC1B,IAAI,GAAGwB,YAAY,CAAC,IAAI,IAAI,CAACxB,IAAI,GAAG,IAAI,CAACA,IAAI,CAAC,IAAI,CAAC,GAAGoB,KAAK,CAAC;AAC5F,IAAA;IAEA1B,IAAI,CAACkC,GAAG,CAACU,iBAAiB,EAAED,aAAa,CAAC,CAAC,CAAC,EAAEA,aAAa,CAAC,CAAC,CAAC,EAAEA,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpF3C,IAAAA,IAAI,CAAC4B,GAAG,CAACgB,iBAAiB,EAAEA,iBAAiB,CAAC;;AAE9C;IACA,OAAO5C,IAAI,CAACmC,QAAQ,CAACO,GAAG,EAAEE,iBAAiB,EAAEJ,GAAG,CAACJ,IAAI,CAAC;AACxD,EAAA;;AAEA;AACF;AACA;AACA;AAGES,EAAAA,aAAaA,CAACH,GAAG,EAAEzB,IAAI,EACvB;IACE,IAAI,CAAC,IAAI,CAACR,MAAM,CAACa,MAAM,IAAIL,IAAI,GAAG,CAAC,IAAIA,IAAI,GAAG,IAAI,CAACR,MAAM,CAAC,CAAC,CAAC,CAACQ,IAAI,EACjE;MACE,OAAOE,IAAI,CAACe,GAAG,CAACQ,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,IAAA;AAEA,IAAA,MAAMF,GAAG,GAAG,IAAI,CAAC/B,MAAM,CAAC,IAAI,CAAC6B,IAAI,CAACrB,IAAI,CAAC,CAAC;IACxC,MAAMS,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAI,CAACtB,IAAI,IAAIW,IAAI,GAAGuB,GAAG,CAACvB,IAAI,CAAC,GAAG,IAAI,CAACT,CAAC,CAAC;IAE/D,KAAK,IAAIqB,IAAI,GAAG,CAAC,EAAEA,IAAI,GAAG,CAAC,EAAEA,IAAI,EAAE,EACnC;MACE,MAAMiB,QAAQ,GAAGN,GAAG,CAACT,MAAM,CAACF,IAAI,CAAC,GAAG,IAAI,CAACvB,IAAI;AAC7CoC,MAAAA,GAAG,CAACb,IAAI,CAAC,GAAGiB,QAAQ,GAAG,CAACN,GAAG,CAACP,MAAM,CAACJ,IAAI,CAAC,GAAGiB,QAAQ,IAAIpB,KAAK;AAC9D,IAAA;AAEA,IAAA,OAAOgB,GAAG;AACZ,EAAA;;AAEA;AACF;AACA;AACA;AAGEK,EAAAA,MAAMA,CAACL,GAAG,EAAEzB,IAAI,EAChB;IACE,IAAI,CAACwB,UAAU,CAAC,IAAI,CAAC/B,KAAK,EAAEO,IAAI,CAAC;IACjC,OAAOjB,IAAI,CAACqC,IAAI,CAACK,GAAG,EAAE,IAAI,CAAChC,KAAK,CAAC;AACnC,EAAA;AAEA,EAAA,WAAW,IAAAxB,gBAAA,CAAA,IAAA,CAAA,EAAG,CAAC;AAAC,EAAA;IAAAG,UAAA,EAAA;AAAA;AAElB;AAEA,MAAMsD,aAAa,GAAGxB,IAAI,CAACR,MAAM,EAAE;AACnC,MAAMiC,iBAAiB,GAAG5C,IAAI,CAACW,MAAM,EAAE;;;;"}
|
|
1
|
+
{"version":3,"file":"TriRigidOrientation.js","sources":["../../../../../src/trinity/core/animation/TriRigidOrientation.js"],"sourcesContent":["// Source: trinity/trinity/TriRigidOrientation.h\n// Hand-maintained from Carbon source, promoted out of generated intake.\r\nimport { carbon, impl, edit, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\n\r\n/** Integrates torque into an orientation over time, sampling the result at a given moment. */\r\n@type.define({ className: \"TriRigidOrientation\", family: \"trinityCore\" })\r\nexport class TriRigidOrientation extends CjsModel\r\n{\r\n\r\n /** mDrag (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n drag = 1;\r\n\r\n /** mStart (Be::Time) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float64\r\n start = 0;\r\n\r\n /** mI (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n I = 1;\r\n\r\n /** mStates (PTriTorqueVector) [READ, PERSIST] */\r\n @edit.persist\r\n @type.list(\"TriTorque\")\r\n states = [];\r\n\r\n /** mValue (Quaternion) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.quat\r\n value = quat.create();\r\n\r\n /** mName (std::wstring) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** Carbon method Sort (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.implemented\r\n Sort()\r\n {\r\n this.states.sort((a, b) => a.time - b.time);\r\n const tau = vec3.create();\r\n const converter = quat.create();\r\n for (let i = 1; i < this.states.length; i++)\r\n {\r\n const current = this.states[i];\r\n const previous = this.states[i - 1];\r\n const elapsed = current.time - previous.time;\r\n const decay = Math.exp(-this.drag * elapsed / this.I);\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n const acceleration = previous.torque[axis];\r\n const velocity = previous.omega0[axis];\r\n current.omega0[axis] = acceleration / this.drag + (velocity - acceleration / this.drag) * decay;\r\n tau[axis] = acceleration * elapsed / this.drag + this.I * (velocity * this.drag - acceleration) / (this.drag * this.drag) * (1 - decay);\r\n }\r\n quat.set(converter, tau[0], tau[1], tau[2], 0);\r\n quat.exp(converter, converter);\r\n // Carbon (row-vector): rot0 = previousRot0 * tauConverter - previous first.\r\n quat.multiply(current.rot0, converter, previous.rot0);\r\n }\r\n if (this.states.length) quat.copy(this.value, this.states[0].rot0);\r\n }\r\n\r\n // Carbon TriRigidOrientation.cpp:36-172. Sort precomputes each key's start\r\n // state; these sample BETWEEN keys, integrating the active key's torque\r\n // forward by the elapsed time with the same closed-form drag solution\r\n // (TriMath.cpp:153-176):\r\n //\r\n // angle = a*t/k + I*(v*k - a)/k^2 * (1 - e^(-k*t/I))\r\n // velocity = a/k + (v - a/k) * e^(-k*t/I)\r\n //\r\n // where a is torque, v the angular velocity at the key, I the moment of\r\n // inertia and k the drag. The integrated angle becomes a pure quaternion\r\n // whose exponential is the rotation accumulated since the key.\r\n\r\n /**\r\n * Selects the key covering a time, matching Carbon's cursor reuse: the\r\n * cached key is kept when it still brackets the time, and only a miss walks\r\n * the list.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Seek(time)\r\n {\r\n const count = this.states.length;\r\n\r\n if (!count) return -1;\r\n\r\n if (time >= this.states[count - 1].time)\r\n {\r\n this.#currentKey = count - 1;\r\n return this.#currentKey;\r\n }\r\n\r\n if (this.#currentKey === count - 1) this.#currentKey = 0;\r\n\r\n const key = this.states[this.#currentKey];\r\n\r\n if (time < key.time || time >= this.states[this.#currentKey + 1].time)\r\n {\r\n for (this.#currentKey = 0; this.#currentKey < count - 1; this.#currentKey++)\r\n {\r\n if (time >= this.states[this.#currentKey].time\r\n && time < this.states[this.#currentKey + 1].time) break;\r\n }\r\n }\r\n\r\n return this.#currentKey;\r\n }\r\n\r\n /**\r\n * The orientation at a time measured from the start, written into `out`;\r\n * before the first key it is the retained value.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetValueAt(out, time)\r\n {\r\n if (!this.states.length || time < 0 || time < this.states[0].time)\r\n {\r\n return quat.copy(out, this.value);\r\n }\r\n\r\n const key = this.states[this.Seek(time)];\r\n const elapsed = time - key.time;\r\n const decay = Math.exp(-this.drag * elapsed / this.I);\r\n\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n const acceleration = key.torque[axis];\r\n const velocity = key.omega0[axis];\r\n\r\n ANGLE_SCRATCH[axis] = acceleration * elapsed / this.drag\r\n + this.I * (velocity * this.drag - acceleration) / (this.drag * this.drag) * (1 - decay);\r\n }\r\n\r\n quat.set(CONVERTER_SCRATCH, ANGLE_SCRATCH[0], ANGLE_SCRATCH[1], ANGLE_SCRATCH[2], 0);\r\n quat.exp(CONVERTER_SCRATCH, CONVERTER_SCRATCH);\r\n\r\n // Carbon (row-vector): rot0 * converter, the key's orientation first.\r\n return quat.multiply(out, CONVERTER_SCRATCH, key.rot0);\r\n }\r\n\r\n /**\r\n * The angular velocity at a time measured from the start, written into\r\n * `out`; before the first key it is zero.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetValueDotAt(out, time)\r\n {\r\n if (!this.states.length || time < 0 || time < this.states[0].time)\r\n {\r\n return vec3.set(out, 0, 0, 0);\r\n }\r\n\r\n const key = this.states[this.Seek(time)];\r\n const decay = Math.exp(-this.drag * (time - key.time) / this.I);\r\n\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n const terminal = key.torque[axis] / this.drag;\r\n out[axis] = terminal + (key.omega0[axis] - terminal) * decay;\r\n }\r\n\r\n return out;\r\n }\r\n\r\n /**\r\n * Samples the orientation at a time and retains it as the current value,\r\n * which is what a curve consumer reads back.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Update(out, time)\r\n {\r\n this.GetValueAt(this.value, time);\r\n return quat.copy(out, this.value);\r\n }\r\n\r\n #currentKey = 0;\r\n\r\n}\r\n\r\nconst ANGLE_SCRATCH = vec3.create();\r\nconst CONVERTER_SCRATCH = quat.create();\r\n"],"names":["_TriRigidOrientation","TriRigidOrientation","CjsModel","e","_init_drag","_init_extra_drag","_init_start","_init_extra_start","_init_I","_init_extra_I","_init_states","_init_extra_states","_init_value","_init_extra_value","_init_name","_init_extra_name","_initProto","c","_initClass","_applyDecs","type","define","className","family","edit","persist","float32","float64","list","quat","string","carbon","method","impl","implemented","drag","start","I","states","value","create","name","Sort","sort","a","b","time","tau","vec3","converter","i","length","current","previous","elapsed","decay","Math","exp","axis","acceleration","torque","velocity","omega0","set","multiply","rot0","copy","Seek","count","key","GetValueAt","out","ANGLE_SCRATCH","CONVERTER_SCRATCH","GetValueDotAt","terminal","Update"],"mappings":";;;;;;;;AAOA;AAAA,IAAAA;AACA,MAAAC,mBAAA,SACyCC,QAAQ,CACjD;AAAA,EAAA;AAAA,IAAA,CAAA;MAAAC,CAAA,EAAA,CAAAC,UAAA,EAAAC,gBAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,OAAA,EAAAC,aAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,UAAA,CAAA;MAAAC,CAAA,EAAA,CAAAjB,oBAAA,EAAAkB,UAAA;AAAA,KAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,MAAAA,SAAS,EAAE,qBAAqB;AAAEC,MAAAA,MAAM,EAAE;AAAc,KAAC,CAAC,CAAA,EAAA,CAAA,CAAA,CAKtEC,IAAI,EAAJA,IAAI,CAACC,OAAO,EACZL,IAAI,EAAJA,IAAI,CAACM,OAAO,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAIZF,IAAI,EAAJA,IAAI,CAACC,OAAO,EACZL,IAAI,EAAJA,IAAI,CAACO,OAAO,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAIZH,IAAI,EAAJA,IAAI,CAACC,OAAO,EACZL,IAAI,EAAJA,IAAI,CAACM,OAAO,CAAA,EAAA,EAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAIZF,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZL,IAAI,CAACQ,IAAI,CAAC,WAAW,CAAC,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAItBJ,IAAI,EAAJA,IAAI,CAACC,OAAO,EACZL,IAAI,EAAJA,IAAI,CAACS,IAAI,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAITL,IAAI,EAAJA,IAAI,CAACC,OAAO,EACZL,IAAI,EAAJA,IAAI,CAACU,MAAM,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAIXC,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CA4ChBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAiChBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAgChBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAwBhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,8BA5KsBhC,QAAQ,CAAA;AAAA;AAG/C;AAGAiC,EAAAA,IAAI,IAAAnB,UAAA,CAAA,IAAA,CAAA,EAAAZ,UAAA,OAAG,CAAC,CAAA;;AAER;AAGAgC,EAAAA,KAAK,IAAA/B,gBAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAG,CAAC,CAAA;;AAET;AAGA+B,EAAAA,CAAC,IAAA9B,iBAAA,CAAA,IAAA,CAAA,EAAAC,OAAA,OAAG,CAAC,CAAA;;AAEL;AAGA8B,EAAAA,MAAM,IAAA7B,aAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,EAAE,CAAA;;AAEX;EAGA6B,KAAK,IAAA5B,kBAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAGiB,IAAI,CAACW,MAAM,EAAE,CAAA;;AAErB;AAGAC,EAAAA,IAAI,IAAA5B,iBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,EAAE,CAAA;;AAET;AAGA4B,EAAAA,IAAIA,GACJ;AACE,IAAA,IAAI,CAACJ,MAAM,CAACK,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,IAAI,GAAGD,CAAC,CAACC,IAAI,CAAC;AAC3C,IAAA,MAAMC,GAAG,GAAGC,IAAI,CAACR,MAAM,EAAE;AACzB,IAAA,MAAMS,SAAS,GAAGpB,IAAI,CAACW,MAAM,EAAE;AAC/B,IAAA,KAAK,IAAIU,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACZ,MAAM,CAACa,MAAM,EAAED,CAAC,EAAE,EAC3C;AACE,MAAA,MAAME,OAAO,GAAG,IAAI,CAACd,MAAM,CAACY,CAAC,CAAC;MAC9B,MAAMG,QAAQ,GAAG,IAAI,CAACf,MAAM,CAACY,CAAC,GAAG,CAAC,CAAC;MACnC,MAAMI,OAAO,GAAGF,OAAO,CAACN,IAAI,GAAGO,QAAQ,CAACP,IAAI;AAC5C,MAAA,MAAMS,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAI,CAACtB,IAAI,GAAGmB,OAAO,GAAG,IAAI,CAACjB,CAAC,CAAC;MACrD,KAAK,IAAIqB,IAAI,GAAG,CAAC,EAAEA,IAAI,GAAG,CAAC,EAAEA,IAAI,EAAE,EACnC;AACE,QAAA,MAAMC,YAAY,GAAGN,QAAQ,CAACO,MAAM,CAACF,IAAI,CAAC;AAC1C,QAAA,MAAMG,QAAQ,GAAGR,QAAQ,CAACS,MAAM,CAACJ,IAAI,CAAC;QACtCN,OAAO,CAACU,MAAM,CAACJ,IAAI,CAAC,GAAGC,YAAY,GAAG,IAAI,CAACxB,IAAI,GAAG,CAAC0B,QAAQ,GAAGF,YAAY,GAAG,IAAI,CAACxB,IAAI,IAAIoB,KAAK;AAC/FR,QAAAA,GAAG,CAACW,IAAI,CAAC,GAAGC,YAAY,GAAGL,OAAO,GAAG,IAAI,CAACnB,IAAI,GAAG,IAAI,CAACE,CAAC,IAAIwB,QAAQ,GAAG,IAAI,CAAC1B,IAAI,GAAGwB,YAAY,CAAC,IAAI,IAAI,CAACxB,IAAI,GAAG,IAAI,CAACA,IAAI,CAAC,IAAI,CAAC,GAAGoB,KAAK,CAAC;AACzI,MAAA;MACA1B,IAAI,CAACkC,GAAG,CAACd,SAAS,EAAEF,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9ClB,MAAAA,IAAI,CAAC4B,GAAG,CAACR,SAAS,EAAEA,SAAS,CAAC;AAC9B;AACApB,MAAAA,IAAI,CAACmC,QAAQ,CAACZ,OAAO,CAACa,IAAI,EAAEhB,SAAS,EAAEI,QAAQ,CAACY,IAAI,CAAC;AACvD,IAAA;IACA,IAAI,IAAI,CAAC3B,MAAM,CAACa,MAAM,EAAEtB,IAAI,CAACqC,IAAI,CAAC,IAAI,CAAC3B,KAAK,EAAE,IAAI,CAACD,MAAM,CAAC,CAAC,CAAC,CAAC2B,IAAI,CAAC;AACpE,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACF;AACA;AACA;AACA;EAGEE,IAAIA,CAACrB,IAAI,EACT;AACE,IAAA,MAAMsB,KAAK,GAAG,IAAI,CAAC9B,MAAM,CAACa,MAAM;AAEhC,IAAA,IAAI,CAACiB,KAAK,EAAE,OAAO,EAAE;AAErB,IAAA,IAAItB,IAAI,IAAI,IAAI,CAACR,MAAM,CAAC8B,KAAK,GAAG,CAAC,CAAC,CAACtB,IAAI,EACvC;AACE,MAAA,IAAI,CAAC,WAAW,GAAGsB,KAAK,GAAG,CAAC;MAC5B,OAAO,IAAI,CAAC,WAAW;AACzB,IAAA;AAEA,IAAA,IAAI,IAAI,CAAC,WAAW,KAAKA,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC;IAExD,MAAMC,GAAG,GAAG,IAAI,CAAC/B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IAEzC,IAAIQ,IAAI,GAAGuB,GAAG,CAACvB,IAAI,IAAIA,IAAI,IAAI,IAAI,CAACR,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAACQ,IAAI,EACrE;MACE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,GAAGsB,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,EAC3E;AACE,QAAA,IAAItB,IAAI,IAAI,IAAI,CAACR,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAACQ,IAAI,IACzCA,IAAI,GAAG,IAAI,CAACR,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAACQ,IAAI,EAAE;AACtD,MAAA;AACF,IAAA;IAEA,OAAO,IAAI,CAAC,WAAW;AACzB,EAAA;;AAEA;AACF;AACA;AACA;AAGEwB,EAAAA,UAAUA,CAACC,GAAG,EAAEzB,IAAI,EACpB;IACE,IAAI,CAAC,IAAI,CAACR,MAAM,CAACa,MAAM,IAAIL,IAAI,GAAG,CAAC,IAAIA,IAAI,GAAG,IAAI,CAACR,MAAM,CAAC,CAAC,CAAC,CAACQ,IAAI,EACjE;MACE,OAAOjB,IAAI,CAACqC,IAAI,CAACK,GAAG,EAAE,IAAI,CAAChC,KAAK,CAAC;AACnC,IAAA;AAEA,IAAA,MAAM8B,GAAG,GAAG,IAAI,CAAC/B,MAAM,CAAC,IAAI,CAAC6B,IAAI,CAACrB,IAAI,CAAC,CAAC;AACxC,IAAA,MAAMQ,OAAO,GAAGR,IAAI,GAAGuB,GAAG,CAACvB,IAAI;AAC/B,IAAA,MAAMS,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAI,CAACtB,IAAI,GAAGmB,OAAO,GAAG,IAAI,CAACjB,CAAC,CAAC;IAErD,KAAK,IAAIqB,IAAI,GAAG,CAAC,EAAEA,IAAI,GAAG,CAAC,EAAEA,IAAI,EAAE,EACnC;AACE,MAAA,MAAMC,YAAY,GAAGU,GAAG,CAACT,MAAM,CAACF,IAAI,CAAC;AACrC,MAAA,MAAMG,QAAQ,GAAGQ,GAAG,CAACP,MAAM,CAACJ,IAAI,CAAC;AAEjCc,MAAAA,aAAa,CAACd,IAAI,CAAC,GAAGC,YAAY,GAAGL,OAAO,GAAG,IAAI,CAACnB,IAAI,GACpD,IAAI,CAACE,CAAC,IAAIwB,QAAQ,GAAG,IAAI,CAAC1B,IAAI,GAAGwB,YAAY,CAAC,IAAI,IAAI,CAACxB,IAAI,GAAG,IAAI,CAACA,IAAI,CAAC,IAAI,CAAC,GAAGoB,KAAK,CAAC;AAC5F,IAAA;IAEA1B,IAAI,CAACkC,GAAG,CAACU,iBAAiB,EAAED,aAAa,CAAC,CAAC,CAAC,EAAEA,aAAa,CAAC,CAAC,CAAC,EAAEA,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpF3C,IAAAA,IAAI,CAAC4B,GAAG,CAACgB,iBAAiB,EAAEA,iBAAiB,CAAC;;AAE9C;IACA,OAAO5C,IAAI,CAACmC,QAAQ,CAACO,GAAG,EAAEE,iBAAiB,EAAEJ,GAAG,CAACJ,IAAI,CAAC;AACxD,EAAA;;AAEA;AACF;AACA;AACA;AAGES,EAAAA,aAAaA,CAACH,GAAG,EAAEzB,IAAI,EACvB;IACE,IAAI,CAAC,IAAI,CAACR,MAAM,CAACa,MAAM,IAAIL,IAAI,GAAG,CAAC,IAAIA,IAAI,GAAG,IAAI,CAACR,MAAM,CAAC,CAAC,CAAC,CAACQ,IAAI,EACjE;MACE,OAAOE,IAAI,CAACe,GAAG,CAACQ,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,IAAA;AAEA,IAAA,MAAMF,GAAG,GAAG,IAAI,CAAC/B,MAAM,CAAC,IAAI,CAAC6B,IAAI,CAACrB,IAAI,CAAC,CAAC;IACxC,MAAMS,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAI,CAACtB,IAAI,IAAIW,IAAI,GAAGuB,GAAG,CAACvB,IAAI,CAAC,GAAG,IAAI,CAACT,CAAC,CAAC;IAE/D,KAAK,IAAIqB,IAAI,GAAG,CAAC,EAAEA,IAAI,GAAG,CAAC,EAAEA,IAAI,EAAE,EACnC;MACE,MAAMiB,QAAQ,GAAGN,GAAG,CAACT,MAAM,CAACF,IAAI,CAAC,GAAG,IAAI,CAACvB,IAAI;AAC7CoC,MAAAA,GAAG,CAACb,IAAI,CAAC,GAAGiB,QAAQ,GAAG,CAACN,GAAG,CAACP,MAAM,CAACJ,IAAI,CAAC,GAAGiB,QAAQ,IAAIpB,KAAK;AAC9D,IAAA;AAEA,IAAA,OAAOgB,GAAG;AACZ,EAAA;;AAEA;AACF;AACA;AACA;AAGEK,EAAAA,MAAMA,CAACL,GAAG,EAAEzB,IAAI,EAChB;IACE,IAAI,CAACwB,UAAU,CAAC,IAAI,CAAC/B,KAAK,EAAEO,IAAI,CAAC;IACjC,OAAOjB,IAAI,CAACqC,IAAI,CAACK,GAAG,EAAE,IAAI,CAAChC,KAAK,CAAC;AACnC,EAAA;AAEA,EAAA,WAAW,IAAAxB,gBAAA,CAAA,IAAA,CAAA,EAAG,CAAC;AAAC,EAAA;IAAAG,UAAA,EAAA;AAAA;AAElB;AAEA,MAAMsD,aAAa,GAAGxB,IAAI,CAACR,MAAM,EAAE;AACnC,MAAMiC,iBAAiB,GAAG5C,IAAI,CAACW,MAAM,EAAE;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { applyDecs2311 as _applyDecs2311 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import {
|
|
2
|
+
import { edit, type } from '#schema';
|
|
3
3
|
import { CjsModel } from '#model';
|
|
4
4
|
import { quat } from '#math/quat';
|
|
5
5
|
import { vec3 } from '#math/vec3';
|
|
@@ -16,7 +16,7 @@ class TriTorque extends CjsModel {
|
|
|
16
16
|
} = _applyDecs2311(this, [type.define({
|
|
17
17
|
className: "TriTorque",
|
|
18
18
|
family: "trinityCore"
|
|
19
|
-
})], [[[
|
|
19
|
+
})], [[[edit, edit.persist, type, type.float32], 16, "time"], [[edit, edit.persist, type, type.quat], 16, "rot0"], [[edit, edit.persist, type, type.vec3], 16, "omega0"], [[edit, edit.persist, type, type.vec3], 16, "torque"]], 0, void 0, CjsModel));
|
|
20
20
|
}
|
|
21
21
|
constructor(...args) {
|
|
22
22
|
super(...args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriTorque.js","sources":["../../../../../src/trinity/core/animation/TriTorque.js"],"sourcesContent":["// Source: trinity/trinity/TriRigidOrientation.h\n// Promoted to hand-maintained source 2026-07-23 (Carbon-verified property shell; schema trinityCore/TriTorque.json.).\r\nimport {
|
|
1
|
+
{"version":3,"file":"TriTorque.js","sources":["../../../../../src/trinity/core/animation/TriTorque.js"],"sourcesContent":["// Source: trinity/trinity/TriRigidOrientation.h\n// Promoted to hand-maintained source 2026-07-23 (Carbon-verified property shell; schema trinityCore/TriTorque.json.).\r\nimport { edit, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\n\r\n/** TriTorque (trinityCore) - generated from schema shapeHash 10c5e0d6.... */\r\n@type.define({ className: \"TriTorque\", family: \"trinityCore\" })\r\nexport class TriTorque extends CjsModel\r\n{\r\n\r\n /** mTime (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n time = 0;\r\n\r\n /** mRot0 (Quaternion) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.quat\r\n rot0 = quat.create();\r\n\r\n /** mOmega0 (Vector3) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.vec3\r\n omega0 = vec3.create();\r\n\r\n /** mTorque (Vector3) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.vec3\r\n torque = vec3.create();\r\n\r\n}\r\n"],"names":["_TriTorque","TriTorque","CjsModel","e","_init_time","_init_extra_time","_init_rot","_init_extra_rot","_init_omega","_init_extra_omega","_init_torque","_init_extra_torque","c","_initClass","_applyDecs","type","define","className","family","edit","persist","float32","quat","vec3","constructor","args","time","rot0","create","omega0","torque"],"mappings":";;;;;;;;AAOA;AAAA,IAAAA;AACA,MAAAC,SAAA,SAC+BC,QAAQ,CACvC;AAAA,EAAA;AAAA,IAAA,CAAA;AAAAC,MAAAA,CAAA,EAAA,CAAAC,UAAA,EAAAC,gBAAA,EAAAC,SAAA,EAAAC,eAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,YAAA,EAAAC,kBAAA,CAAA;MAAAC,CAAA,EAAA,CAAAZ,UAAA,EAAAa,UAAA;AAAA,KAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,MAAAA,SAAS,EAAE,WAAW;AAAEC,MAAAA,MAAM,EAAE;KAAe,CAAC,MAK5DC,IAAI,EAAJA,IAAI,CAACC,OAAO,EACZL,IAAI,EAAJA,IAAI,CAACM,OAAO,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAIZF,IAAI,EAAJA,IAAI,CAACC,OAAO,EACZL,IAAI,EAAJA,IAAI,CAACO,IAAI,kBAITH,IAAI,EAAJA,IAAI,CAACC,OAAO,EACZL,IAAI,EAAJA,IAAI,CAACQ,IAAI,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAITJ,IAAI,EAAJA,IAAI,CAACC,OAAO,EACZL,IAAI,EAAJA,IAAI,CAACQ,IAAI,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EApBmBrB,QAAQ,CAAA;AAAA;AAAAsB,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;IAAAd,kBAAA,CAAA,IAAA,CAAA;AAAA,EAAA;AAGrC;EAGAe,IAAI,GAAAtB,UAAA,CAAA,IAAA,EAAG,CAAC,CAAA;;AAER;EAGAuB,IAAI,IAAAtB,gBAAA,CAAA,IAAA,CAAA,EAAAC,SAAA,OAAGgB,IAAI,CAACM,MAAM,EAAE,CAAA;;AAEpB;EAGAC,MAAM,IAAAtB,eAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAGe,IAAI,CAACK,MAAM,EAAE,CAAA;;AAEtB;EAGAE,MAAM,IAAArB,iBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAGa,IAAI,CAACK,MAAM,EAAE,CAAA;AAAC,EAAA;IAAAf,UAAA,EAAA;AAAA;AAEzB;;;;"}
|
|
@@ -5,19 +5,18 @@ import { TriRenderBatchMap } from './TriRenderBatchMap.js';
|
|
|
5
5
|
// CarbonEngineJS composition class (no Carbon counterpart) - see the
|
|
6
6
|
// render-batch contract in docs/architecture.md.
|
|
7
7
|
//
|
|
8
|
-
// Library-level batch orchestrator: one per backend/CjsLibrary
|
|
9
|
-
//
|
|
10
|
-
// collectors) and the
|
|
8
|
+
// Library-level batch orchestrator: one per backend/CjsLibrary. Owns the
|
|
9
|
+
// producer registry ({ type -> { Build, Realize } } plus scene-global
|
|
10
|
+
// collectors) and the per-frame collection flow:
|
|
11
11
|
//
|
|
12
|
-
//
|
|
12
|
+
// prepare-if-stale -> build data batches -> finalize -> expose accumulators
|
|
13
13
|
//
|
|
14
|
-
// The
|
|
15
|
-
// Initialize)
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
// handle ever enters this class.
|
|
14
|
+
// The producer registers its concrete hooks at composition time (fail-closed
|
|
15
|
+
// via Initialize); Build hooks emit Tr2RenderBatch DATA into the
|
|
16
|
+
// per-TriBatchType accumulators.
|
|
17
|
+
//
|
|
18
|
+
// Realize is an optional producer-owned preparation hook. Each producer owns
|
|
19
|
+
// its actual resource/geometry lifecycle; there is no shared rebuild token bus.
|
|
21
20
|
const DEFAULT_BATCH_TYPES = [TriBatchType.TRIBATCHTYPE_OPAQUE, TriBatchType.TRIBATCHTYPE_DECAL, TriBatchType.TRIBATCHTYPE_TRANSPARENT, TriBatchType.TRIBATCHTYPE_ADDITIVE, TriBatchType.TRIBATCHTYPE_DEPTH];
|
|
22
21
|
function fail(message) {
|
|
23
22
|
throw new Error(`CjsBatchManager: ${message}`);
|
|
@@ -25,7 +24,7 @@ function fail(message) {
|
|
|
25
24
|
|
|
26
25
|
/**
|
|
27
26
|
* Owns the per-library render-batch producer and collector registry and drives
|
|
28
|
-
* the
|
|
27
|
+
* the per-frame flow of prepare, build, finalize into one accumulator
|
|
29
28
|
* per batch type.
|
|
30
29
|
*/
|
|
31
30
|
class CjsBatchManager {
|
|
@@ -59,8 +58,7 @@ class CjsBatchManager {
|
|
|
59
58
|
|
|
60
59
|
// Registers producer hooks: [{ type, Build, Realize? }]. Build(renderable,
|
|
61
60
|
// batchMap, perObjectData, reason) emits data batches; Realize(renderable) is
|
|
62
|
-
//
|
|
63
|
-
// when current). Registration is closed once Initialize has run.
|
|
61
|
+
// producer-owned preparation seam. Registration closes at Initialize.
|
|
64
62
|
|
|
65
63
|
/**
|
|
66
64
|
* Registers producer hooks given as { type, Build, Realize? } entries,
|
|
@@ -130,8 +128,8 @@ class CjsBatchManager {
|
|
|
130
128
|
// (visibility is a scene concern). Faithful to Carbon's two-phase flow
|
|
131
129
|
// (EveSpaceScene.cpp GetBatchesFromRenderables + PrepareTransparentBatch):
|
|
132
130
|
//
|
|
133
|
-
// 1. Per renderable: run the
|
|
134
|
-
//
|
|
131
|
+
// 1. Per renderable: run the Realize hook when its producer registered one
|
|
132
|
+
// (it is expected to fast-exit when current), obtain per-object
|
|
135
133
|
// data once (pool = OPAQUE accumulator), then dispatch the registered Build
|
|
136
134
|
// hook or fall back to the renderable's GetBatches per NON-TRANSPARENT batch
|
|
137
135
|
// type. Renderables reporting HasTransparentBatches are gathered with
|
|
@@ -145,7 +143,7 @@ class CjsBatchManager {
|
|
|
145
143
|
// reads a renderer global). Returns the finalized batch map.
|
|
146
144
|
|
|
147
145
|
/**
|
|
148
|
-
* Runs the per-frame CPU collection over pre-culled renderables -
|
|
146
|
+
* Runs the per-frame CPU collection over pre-culled renderables - prepare,
|
|
149
147
|
* per-renderable build into every non-transparent type, then a back-to-front
|
|
150
148
|
* transparent pass, then the scene-global collectors - and returns the
|
|
151
149
|
* finalized batch map.
|
|
@@ -235,39 +233,6 @@ class CjsBatchManager {
|
|
|
235
233
|
const type = declared ?? renderable.batchProducerType ?? null;
|
|
236
234
|
return type ? this.#producers.get(type) ?? null : null;
|
|
237
235
|
}
|
|
238
|
-
|
|
239
|
-
// True when the object advertises pending scheduled GPU work via the shared
|
|
240
|
-
// __state.rebuild token set. Realizers use this (plus their own per-token
|
|
241
|
-
// checks) to fast-exit when current.
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* Whether an object advertises pending scheduled GPU work through its shared
|
|
245
|
-
* __state.rebuild token set.
|
|
246
|
-
*/
|
|
247
|
-
static HasRebuildWork(object) {
|
|
248
|
-
return (object?.__state?.rebuild?.size ?? 0) > 0;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
// Owner-propagation convention: child records (mesh areas, set items, effect
|
|
252
|
-
// children) carry their OWN declared rebuild tokens, and the OWNING realizer
|
|
253
|
-
// consumes child tokens alongside the owner's - no upward token copying is
|
|
254
|
-
// performed.
|
|
255
|
-
// This helper answers "does the owner or any child advertise work"; the
|
|
256
|
-
// realizer still clears each consumed token where it lives.
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* Whether the owner or any listed child advertises rebuild work; child tokens
|
|
260
|
-
* stay where they live, and the realizer still clears each consumed token
|
|
261
|
-
* there.
|
|
262
|
-
*/
|
|
263
|
-
static AnyRebuildWork(object, children = null) {
|
|
264
|
-
if (CjsBatchManager.HasRebuildWork(object)) return true;
|
|
265
|
-
if (!children) return false;
|
|
266
|
-
for (const child of children) {
|
|
267
|
-
if (CjsBatchManager.HasRebuildWork(child)) return true;
|
|
268
|
-
}
|
|
269
|
-
return false;
|
|
270
|
-
}
|
|
271
236
|
}
|
|
272
237
|
|
|
273
238
|
export { CjsBatchManager };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsBatchManager.js","sources":["../../../../../src/trinity/core/batch/CjsBatchManager.js"],"sourcesContent":["// CarbonEngineJS composition class (no Carbon counterpart) - see the\r\n// render-batch contract in docs/architecture.md.\r\n//\r\n// Library-level batch orchestrator: one per backend/CjsLibrary, GPU-free. Owns\r\n// the producer registry ({ type -> { Build, Realize } } plus scene-global\r\n// collectors) and the neutral per-frame collection flow:\r\n//\r\n// realize-if-stale -> build data batches -> finalize -> expose accumulators\r\n//\r\n// The engine registers its concrete hooks at composition time (fail-closed via\r\n// Initialize). Realizers own GPU state and the staleness policy (they consume\r\n// __state.rebuild tokens and fast-exit when current); Build hooks emit neutral\r\n// Tr2RenderBatch DATA into the per-TriBatchType accumulators; dispatch of the\r\n// finalized accumulators is engine work and never lives here. The manager holds\r\n// a reference DOWN to the engine hooks - it is not a device member, and no GPU\r\n// handle ever enters this class.\r\nimport { TriBatchType } from \"#consts/graphics\";\r\nimport { Tr2RenderReason } from \"../../generated/trinityCore/enums.js\";\r\nimport { TriRenderBatchMap } from \"./TriRenderBatchMap.js\";\r\n\r\nconst DEFAULT_BATCH_TYPES = [\r\n TriBatchType.TRIBATCHTYPE_OPAQUE,\r\n TriBatchType.TRIBATCHTYPE_DECAL,\r\n TriBatchType.TRIBATCHTYPE_TRANSPARENT,\r\n TriBatchType.TRIBATCHTYPE_ADDITIVE,\r\n TriBatchType.TRIBATCHTYPE_DEPTH\r\n];\r\n\r\nfunction fail(message)\r\n{\r\n throw new Error(`CjsBatchManager: ${message}`);\r\n}\r\n\r\n/**\r\n * Owns the per-library render-batch producer and collector registry and drives\r\n * the GPU-free per-frame flow of realize, build, finalize into one accumulator\r\n * per batch type.\r\n */\r\nexport class CjsBatchManager\r\n{\r\n #producers = new Map();\r\n\r\n #collectors = new Map();\r\n\r\n #batchTypes;\r\n\r\n #requiredTypes;\r\n\r\n #createAccumulator;\r\n\r\n #batchMap = null;\r\n\r\n #initialized = false;\r\n\r\n // batchTypes: TriBatchType values collected each frame. requiredTypes:\r\n // producer type names that MUST be registered before Initialize succeeds.\r\n // createAccumulator: optional (batchType) => accumulator factory forwarded to\r\n // the TriRenderBatchMap (e.g. an order-preserving accumulator for TRANSPARENT).\r\n\r\n /**\r\n * Configures which TriBatchType values are collected, which producer types\r\n * Initialize must find registered, and an optional per-batch-type accumulator\r\n * factory.\r\n */\r\n constructor({ batchTypes = DEFAULT_BATCH_TYPES, requiredTypes = [], createAccumulator = null } = {})\r\n {\r\n this.#batchTypes = Array.from(batchTypes);\r\n this.#requiredTypes = Array.from(requiredTypes);\r\n this.#createAccumulator = createAccumulator;\r\n }\r\n\r\n // Registers producer hooks: [{ type, Build, Realize? }]. Build(renderable,\r\n // batchMap, perObjectData, reason) emits data batches; Realize(renderable) is\r\n // the engine's pull-realization (consumes __state.rebuild tokens, fast-exits\r\n // when current). Registration is closed once Initialize has run.\r\n\r\n /**\r\n * Registers producer hooks given as { type, Build, Realize? } entries,\r\n * rejecting duplicates and malformed entries; registration closes once\r\n * Initialize has run. Returns this for chaining.\r\n */\r\n Register(entries)\r\n {\r\n if (this.#initialized) fail(\"Register must be called before Initialize\");\r\n if (!Array.isArray(entries)) fail(\"Register expects an array of { type, Build, Realize? } entries\");\r\n\r\n for (const entry of entries)\r\n {\r\n const type = entry?.type;\r\n if (typeof type !== \"string\" || !type) fail(\"producer entry requires a non-empty string type\");\r\n if (this.#producers.has(type)) fail(`producer type \"${type}\" is already registered`);\r\n if (typeof entry.Build !== \"function\") fail(`producer \"${type}\" requires a Build function`);\r\n if (entry.Realize !== undefined && typeof entry.Realize !== \"function\")\r\n {\r\n fail(`producer \"${type}\" Realize must be a function when provided`);\r\n }\r\n this.#producers.set(type, { Build: entry.Build, Realize: entry.Realize ?? null });\r\n }\r\n return this;\r\n }\r\n\r\n // Registers a scene-global collector (e.g. the quad or instanced-mesh family):\r\n // Collect(renderables, batchMap, reason) runs once per frame after the\r\n // per-renderable pass (Carbon precedent: Tr2QuadRenderer, EveInstancedMeshManager).\r\n\r\n /**\r\n * Registers a scene-global collector whose Collect runs once per frame after\r\n * the per-renderable pass; must also be called before Initialize.\r\n */\r\n RegisterCollector(name, collector)\r\n {\r\n if (this.#initialized) fail(\"RegisterCollector must be called before Initialize\");\r\n if (typeof name !== \"string\" || !name) fail(\"collector requires a non-empty string name\");\r\n if (this.#collectors.has(name)) fail(`collector \"${name}\" is already registered`);\r\n if (typeof collector?.Collect !== \"function\") fail(`collector \"${name}\" requires a Collect function`);\r\n this.#collectors.set(name, collector);\r\n return this;\r\n }\r\n\r\n // Fail-closed gate: throws if a required producer type has no registration.\r\n // Creates the per-TriBatchType accumulator map and closes the registry.\r\n\r\n /**\r\n * Fail-closed gate: throws when any required producer type is unregistered,\r\n * then creates the per-batch-type accumulator map and closes the registry.\r\n */\r\n Initialize()\r\n {\r\n if (this.#initialized) fail(\"Initialize was already called\");\r\n\r\n const missing = this.#requiredTypes.filter(type => !this.#producers.has(type));\r\n if (missing.length)\r\n {\r\n fail(`required producer type(s) not registered: ${missing.join(\", \")}`);\r\n }\r\n\r\n this.#batchMap = new TriRenderBatchMap(this.#batchTypes, this.#createAccumulator);\r\n this.#initialized = true;\r\n return this;\r\n }\r\n\r\n /** Whether Initialize has run and the batch map exists. */\r\n IsInitialized()\r\n {\r\n return this.#initialized;\r\n }\r\n\r\n // The neutral per-frame CPU collection. Renderables are expected pre-culled\r\n // (visibility is a scene concern). Faithful to Carbon's two-phase flow\r\n // (EveSpaceScene.cpp GetBatchesFromRenderables + PrepareTransparentBatch):\r\n //\r\n // 1. Per renderable: run the engine's Realize hook when its producer\r\n // registered one (the realizer fast-exits when current), obtain per-object\r\n // data once (pool = OPAQUE accumulator), then dispatch the registered Build\r\n // hook or fall back to the renderable's GetBatches per NON-TRANSPARENT batch\r\n // type. Renderables reporting HasTransparentBatches are gathered with\r\n // their GetSortValue distance.\r\n // 2. Transparent pass: sort front-to-back, iterate back-to-front, allocating\r\n // fresh per-object data from the TRANSPARENT accumulator per renderable -\r\n // insertion order IS the draw order (order-preserving accumulator).\r\n //\r\n // Scene-global collectors run after; Finalize sorts/group-counts every\r\n // accumulator. renderContext supplies the relocated view position (Carbon\r\n // reads a renderer global). Returns the finalized batch map.\r\n\r\n /**\r\n * Runs the per-frame CPU collection over pre-culled renderables - realize,\r\n * per-renderable build into every non-transparent type, then a back-to-front\r\n * transparent pass, then the scene-global collectors - and returns the\r\n * finalized batch map.\r\n */\r\n Collect(renderables, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL, renderContext = null)\r\n {\r\n if (!this.#initialized) fail(\"Collect requires Initialize\");\r\n\r\n const TRANSPARENT = TriBatchType.TRIBATCHTYPE_TRANSPARENT;\r\n const batchMap = this.#batchMap;\r\n batchMap.Clear();\r\n\r\n // Bind the per-object-data store from the render context (built once from\r\n // the engine at scene setup). GetPerObjectData Allocs pooled records from\r\n // it; without a store, an eager-fill renderable throws (setup error).\r\n const store = renderContext?.GetTriPoolAllocator();\r\n if (store) batchMap.SetTriPoolAllocator(store);\r\n\r\n const collectsTransparent = this.#batchTypes.includes(TRANSPARENT);\r\n const transparents = [];\r\n\r\n if (renderables)\r\n {\r\n const poolAccumulator = batchMap.GetAccumulator(TriBatchType.TRIBATCHTYPE_OPAQUE)\r\n ?? batchMap.GetAccumulator(this.#batchTypes[0]);\r\n\r\n for (const renderable of renderables)\r\n {\r\n if (!renderable) continue;\r\n\r\n const producer = this.#ProducerFor(renderable);\r\n if (producer?.Realize) producer.Realize(renderable);\r\n\r\n const perObjectData = renderable.GetPerObjectData(poolAccumulator);\r\n\r\n if (producer)\r\n {\r\n producer.Build(renderable, batchMap, perObjectData, reason);\r\n }\r\n else\r\n {\r\n for (const batchType of this.#batchTypes)\r\n {\r\n if (batchType === TRANSPARENT) continue;\r\n renderable.GetBatches(\r\n batchMap.GetAccumulator(batchType), batchType, perObjectData, reason, renderContext);\r\n }\r\n }\r\n\r\n if (collectsTransparent && renderable.HasTransparentBatches())\r\n {\r\n transparents.push({\r\n renderable,\r\n distance: renderable.GetSortValue(renderContext)\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (transparents.length)\r\n {\r\n const transparentAccumulator = batchMap.GetAccumulator(TRANSPARENT);\r\n transparents.sort((a, b) => a.distance - b.distance);\r\n for (let index = transparents.length - 1; index >= 0; index--)\r\n {\r\n const renderable = transparents[index].renderable;\r\n const perObjectData = renderable.GetPerObjectData(transparentAccumulator);\r\n renderable.GetBatches(transparentAccumulator, TRANSPARENT, perObjectData, reason, renderContext);\r\n }\r\n }\r\n\r\n for (const collector of this.#collectors.values())\r\n {\r\n collector.Collect(renderables ?? [], batchMap, reason);\r\n }\r\n\r\n batchMap.Finalize();\r\n return batchMap;\r\n }\r\n\r\n /** The batch map created by Initialize, or null before it has run. */\r\n GetBatchMap()\r\n {\r\n return this.#batchMap;\r\n }\r\n\r\n /** The accumulator for one batch type, or null when that type is not collected. */\r\n GetAccumulator(batchType)\r\n {\r\n return this.#batchMap?.GetAccumulator(batchType) ?? null;\r\n }\r\n\r\n /** A copy of the collected batch-type list. */\r\n GetBatchTypes()\r\n {\r\n return Array.from(this.#batchTypes);\r\n }\r\n\r\n // A renderable DECLARES its producer type (method or plain property); it never\r\n // owns builder code. Returns null when undeclared (the renderable's own\r\n // GetBatches implementation applies).\r\n\r\n /**\r\n * Looks up the producer a renderable declares through GetBatchProducerType or\r\n * a batchProducerType property; null means the renderable's GetBatches path\r\n * applies.\r\n */\r\n #ProducerFor(renderable)\r\n {\r\n // An EXPLICIT PROBE, not a hedge: no class in this runtime declares\r\n // `GetBatchProducerType`. It is a shape a CALLER's renderable may offer,\r\n // so asking whether it is there is the actual question - where `?.()` would\r\n // have read as \"one of ours might be missing it\".\r\n const declared = typeof renderable.GetBatchProducerType === \"function\"\r\n ? renderable.GetBatchProducerType()\r\n : null;\r\n const type = declared ?? renderable.batchProducerType ?? null;\r\n return type ? this.#producers.get(type) ?? null : null;\r\n }\r\n\r\n // True when the object advertises pending scheduled GPU work via the shared\r\n // __state.rebuild token set. Realizers use this (plus their own per-token\r\n // checks) to fast-exit when current.\r\n\r\n /**\r\n * Whether an object advertises pending scheduled GPU work through its shared\r\n * __state.rebuild token set.\r\n */\r\n static HasRebuildWork(object)\r\n {\r\n return (object?.__state?.rebuild?.size ?? 0) > 0;\r\n }\r\n\r\n // Owner-propagation convention: child records (mesh areas, set items, effect\r\n // children) carry their OWN declared rebuild tokens, and the OWNING realizer\r\n // consumes child tokens alongside the owner's - no upward token copying is\r\n // performed.\r\n // This helper answers \"does the owner or any child advertise work\"; the\r\n // realizer still clears each consumed token where it lives.\r\n\r\n /**\r\n * Whether the owner or any listed child advertises rebuild work; child tokens\r\n * stay where they live, and the realizer still clears each consumed token\r\n * there.\r\n */\r\n static AnyRebuildWork(object, children = null)\r\n {\r\n if (CjsBatchManager.HasRebuildWork(object)) return true;\r\n if (!children) return false;\r\n for (const child of children)\r\n {\r\n if (CjsBatchManager.HasRebuildWork(child)) return true;\r\n }\r\n return false;\r\n }\r\n}\r\n"],"names":["DEFAULT_BATCH_TYPES","TriBatchType","TRIBATCHTYPE_OPAQUE","TRIBATCHTYPE_DECAL","TRIBATCHTYPE_TRANSPARENT","TRIBATCHTYPE_ADDITIVE","TRIBATCHTYPE_DEPTH","fail","message","Error","CjsBatchManager","Map","constructor","batchTypes","requiredTypes","createAccumulator","Array","from","Register","entries","isArray","entry","type","has","Build","Realize","undefined","set","RegisterCollector","name","collector","Collect","Initialize","missing","filter","length","join","TriRenderBatchMap","IsInitialized","renderables","reason","Tr2RenderReason","TR2RENDERREASON_NORMAL","renderContext","TRANSPARENT","batchMap","Clear","store","GetTriPoolAllocator","SetTriPoolAllocator","collectsTransparent","includes","transparents","poolAccumulator","GetAccumulator","renderable","producer","perObjectData","GetPerObjectData","batchType","GetBatches","HasTransparentBatches","push","distance","GetSortValue","transparentAccumulator","sort","a","b","index","values","Finalize","GetBatchMap","GetBatchTypes","#ProducerFor","declared","GetBatchProducerType","batchProducerType","get","HasRebuildWork","object","__state","rebuild","size","AnyRebuildWork","children","child"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsBatchManager.js","sources":["../../../../../src/trinity/core/batch/CjsBatchManager.js"],"sourcesContent":["// CarbonEngineJS composition class (no Carbon counterpart) - see the\r\n// render-batch contract in docs/architecture.md.\r\n//\r\n// Library-level batch orchestrator: one per backend/CjsLibrary. Owns the\r\n// producer registry ({ type -> { Build, Realize } } plus scene-global\r\n// collectors) and the per-frame collection flow:\r\n//\r\n// prepare-if-stale -> build data batches -> finalize -> expose accumulators\r\n//\r\n// The producer registers its concrete hooks at composition time (fail-closed\r\n// via Initialize); Build hooks emit Tr2RenderBatch DATA into the\r\n// per-TriBatchType accumulators.\r\n//\r\n// Realize is an optional producer-owned preparation hook. Each producer owns\r\n// its actual resource/geometry lifecycle; there is no shared rebuild token bus.\r\nimport { TriBatchType } from \"#consts/graphics\";\r\nimport { Tr2RenderReason } from \"../../generated/trinityCore/enums.js\";\r\nimport { TriRenderBatchMap } from \"./TriRenderBatchMap.js\";\r\n\r\nconst DEFAULT_BATCH_TYPES = [\r\n TriBatchType.TRIBATCHTYPE_OPAQUE,\r\n TriBatchType.TRIBATCHTYPE_DECAL,\r\n TriBatchType.TRIBATCHTYPE_TRANSPARENT,\r\n TriBatchType.TRIBATCHTYPE_ADDITIVE,\r\n TriBatchType.TRIBATCHTYPE_DEPTH\r\n];\r\n\r\nfunction fail(message)\r\n{\r\n throw new Error(`CjsBatchManager: ${message}`);\r\n}\r\n\r\n/**\r\n * Owns the per-library render-batch producer and collector registry and drives\r\n * the per-frame flow of prepare, build, finalize into one accumulator\r\n * per batch type.\r\n */\r\nexport class CjsBatchManager\r\n{\r\n #producers = new Map();\r\n\r\n #collectors = new Map();\r\n\r\n #batchTypes;\r\n\r\n #requiredTypes;\r\n\r\n #createAccumulator;\r\n\r\n #batchMap = null;\r\n\r\n #initialized = false;\r\n\r\n // batchTypes: TriBatchType values collected each frame. requiredTypes:\r\n // producer type names that MUST be registered before Initialize succeeds.\r\n // createAccumulator: optional (batchType) => accumulator factory forwarded to\r\n // the TriRenderBatchMap (e.g. an order-preserving accumulator for TRANSPARENT).\r\n\r\n /**\r\n * Configures which TriBatchType values are collected, which producer types\r\n * Initialize must find registered, and an optional per-batch-type accumulator\r\n * factory.\r\n */\r\n constructor({ batchTypes = DEFAULT_BATCH_TYPES, requiredTypes = [], createAccumulator = null } = {})\r\n {\r\n this.#batchTypes = Array.from(batchTypes);\r\n this.#requiredTypes = Array.from(requiredTypes);\r\n this.#createAccumulator = createAccumulator;\r\n }\r\n\r\n // Registers producer hooks: [{ type, Build, Realize? }]. Build(renderable,\r\n // batchMap, perObjectData, reason) emits data batches; Realize(renderable) is\r\n // producer-owned preparation seam. Registration closes at Initialize.\r\n\r\n /**\r\n * Registers producer hooks given as { type, Build, Realize? } entries,\r\n * rejecting duplicates and malformed entries; registration closes once\r\n * Initialize has run. Returns this for chaining.\r\n */\r\n Register(entries)\r\n {\r\n if (this.#initialized) fail(\"Register must be called before Initialize\");\r\n if (!Array.isArray(entries)) fail(\"Register expects an array of { type, Build, Realize? } entries\");\r\n\r\n for (const entry of entries)\r\n {\r\n const type = entry?.type;\r\n if (typeof type !== \"string\" || !type) fail(\"producer entry requires a non-empty string type\");\r\n if (this.#producers.has(type)) fail(`producer type \"${type}\" is already registered`);\r\n if (typeof entry.Build !== \"function\") fail(`producer \"${type}\" requires a Build function`);\r\n if (entry.Realize !== undefined && typeof entry.Realize !== \"function\")\r\n {\r\n fail(`producer \"${type}\" Realize must be a function when provided`);\r\n }\r\n this.#producers.set(type, { Build: entry.Build, Realize: entry.Realize ?? null });\r\n }\r\n return this;\r\n }\r\n\r\n // Registers a scene-global collector (e.g. the quad or instanced-mesh family):\r\n // Collect(renderables, batchMap, reason) runs once per frame after the\r\n // per-renderable pass (Carbon precedent: Tr2QuadRenderer, EveInstancedMeshManager).\r\n\r\n /**\r\n * Registers a scene-global collector whose Collect runs once per frame after\r\n * the per-renderable pass; must also be called before Initialize.\r\n */\r\n RegisterCollector(name, collector)\r\n {\r\n if (this.#initialized) fail(\"RegisterCollector must be called before Initialize\");\r\n if (typeof name !== \"string\" || !name) fail(\"collector requires a non-empty string name\");\r\n if (this.#collectors.has(name)) fail(`collector \"${name}\" is already registered`);\r\n if (typeof collector?.Collect !== \"function\") fail(`collector \"${name}\" requires a Collect function`);\r\n this.#collectors.set(name, collector);\r\n return this;\r\n }\r\n\r\n // Fail-closed gate: throws if a required producer type has no registration.\r\n // Creates the per-TriBatchType accumulator map and closes the registry.\r\n\r\n /**\r\n * Fail-closed gate: throws when any required producer type is unregistered,\r\n * then creates the per-batch-type accumulator map and closes the registry.\r\n */\r\n Initialize()\r\n {\r\n if (this.#initialized) fail(\"Initialize was already called\");\r\n\r\n const missing = this.#requiredTypes.filter(type => !this.#producers.has(type));\r\n if (missing.length)\r\n {\r\n fail(`required producer type(s) not registered: ${missing.join(\", \")}`);\r\n }\r\n\r\n this.#batchMap = new TriRenderBatchMap(this.#batchTypes, this.#createAccumulator);\r\n this.#initialized = true;\r\n return this;\r\n }\r\n\r\n /** Whether Initialize has run and the batch map exists. */\r\n IsInitialized()\r\n {\r\n return this.#initialized;\r\n }\r\n\r\n // The neutral per-frame CPU collection. Renderables are expected pre-culled\r\n // (visibility is a scene concern). Faithful to Carbon's two-phase flow\r\n // (EveSpaceScene.cpp GetBatchesFromRenderables + PrepareTransparentBatch):\r\n //\r\n // 1. Per renderable: run the Realize hook when its producer registered one\r\n // (it is expected to fast-exit when current), obtain per-object\r\n // data once (pool = OPAQUE accumulator), then dispatch the registered Build\r\n // hook or fall back to the renderable's GetBatches per NON-TRANSPARENT batch\r\n // type. Renderables reporting HasTransparentBatches are gathered with\r\n // their GetSortValue distance.\r\n // 2. Transparent pass: sort front-to-back, iterate back-to-front, allocating\r\n // fresh per-object data from the TRANSPARENT accumulator per renderable -\r\n // insertion order IS the draw order (order-preserving accumulator).\r\n //\r\n // Scene-global collectors run after; Finalize sorts/group-counts every\r\n // accumulator. renderContext supplies the relocated view position (Carbon\r\n // reads a renderer global). Returns the finalized batch map.\r\n\r\n /**\r\n * Runs the per-frame CPU collection over pre-culled renderables - prepare,\r\n * per-renderable build into every non-transparent type, then a back-to-front\r\n * transparent pass, then the scene-global collectors - and returns the\r\n * finalized batch map.\r\n */\r\n Collect(renderables, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL, renderContext = null)\r\n {\r\n if (!this.#initialized) fail(\"Collect requires Initialize\");\r\n\r\n const TRANSPARENT = TriBatchType.TRIBATCHTYPE_TRANSPARENT;\r\n const batchMap = this.#batchMap;\r\n batchMap.Clear();\r\n\r\n // Bind the per-object-data store from the render context (built once from\r\n // the engine at scene setup). GetPerObjectData Allocs pooled records from\r\n // it; without a store, an eager-fill renderable throws (setup error).\r\n const store = renderContext?.GetTriPoolAllocator();\r\n if (store) batchMap.SetTriPoolAllocator(store);\r\n\r\n const collectsTransparent = this.#batchTypes.includes(TRANSPARENT);\r\n const transparents = [];\r\n\r\n if (renderables)\r\n {\r\n const poolAccumulator = batchMap.GetAccumulator(TriBatchType.TRIBATCHTYPE_OPAQUE)\r\n ?? batchMap.GetAccumulator(this.#batchTypes[0]);\r\n\r\n for (const renderable of renderables)\r\n {\r\n if (!renderable) continue;\r\n\r\n const producer = this.#ProducerFor(renderable);\r\n if (producer?.Realize) producer.Realize(renderable);\r\n\r\n const perObjectData = renderable.GetPerObjectData(poolAccumulator);\r\n\r\n if (producer)\r\n {\r\n producer.Build(renderable, batchMap, perObjectData, reason);\r\n }\r\n else\r\n {\r\n for (const batchType of this.#batchTypes)\r\n {\r\n if (batchType === TRANSPARENT) continue;\r\n renderable.GetBatches(\r\n batchMap.GetAccumulator(batchType), batchType, perObjectData, reason, renderContext);\r\n }\r\n }\r\n\r\n if (collectsTransparent && renderable.HasTransparentBatches())\r\n {\r\n transparents.push({\r\n renderable,\r\n distance: renderable.GetSortValue(renderContext)\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (transparents.length)\r\n {\r\n const transparentAccumulator = batchMap.GetAccumulator(TRANSPARENT);\r\n transparents.sort((a, b) => a.distance - b.distance);\r\n for (let index = transparents.length - 1; index >= 0; index--)\r\n {\r\n const renderable = transparents[index].renderable;\r\n const perObjectData = renderable.GetPerObjectData(transparentAccumulator);\r\n renderable.GetBatches(transparentAccumulator, TRANSPARENT, perObjectData, reason, renderContext);\r\n }\r\n }\r\n\r\n for (const collector of this.#collectors.values())\r\n {\r\n collector.Collect(renderables ?? [], batchMap, reason);\r\n }\r\n\r\n batchMap.Finalize();\r\n return batchMap;\r\n }\r\n\r\n /** The batch map created by Initialize, or null before it has run. */\r\n GetBatchMap()\r\n {\r\n return this.#batchMap;\r\n }\r\n\r\n /** The accumulator for one batch type, or null when that type is not collected. */\r\n GetAccumulator(batchType)\r\n {\r\n return this.#batchMap?.GetAccumulator(batchType) ?? null;\r\n }\r\n\r\n /** A copy of the collected batch-type list. */\r\n GetBatchTypes()\r\n {\r\n return Array.from(this.#batchTypes);\r\n }\r\n\r\n // A renderable DECLARES its producer type (method or plain property); it never\r\n // owns builder code. Returns null when undeclared (the renderable's own\r\n // GetBatches implementation applies).\r\n\r\n /**\r\n * Looks up the producer a renderable declares through GetBatchProducerType or\r\n * a batchProducerType property; null means the renderable's GetBatches path\r\n * applies.\r\n */\r\n #ProducerFor(renderable)\r\n {\r\n // An EXPLICIT PROBE, not a hedge: no class in this runtime declares\r\n // `GetBatchProducerType`. It is a shape a CALLER's renderable may offer,\r\n // so asking whether it is there is the actual question - where `?.()` would\r\n // have read as \"one of ours might be missing it\".\r\n const declared = typeof renderable.GetBatchProducerType === \"function\"\r\n ? renderable.GetBatchProducerType()\r\n : null;\r\n const type = declared ?? renderable.batchProducerType ?? null;\r\n return type ? this.#producers.get(type) ?? null : null;\r\n }\r\n\r\n}\r\n"],"names":["DEFAULT_BATCH_TYPES","TriBatchType","TRIBATCHTYPE_OPAQUE","TRIBATCHTYPE_DECAL","TRIBATCHTYPE_TRANSPARENT","TRIBATCHTYPE_ADDITIVE","TRIBATCHTYPE_DEPTH","fail","message","Error","CjsBatchManager","Map","constructor","batchTypes","requiredTypes","createAccumulator","Array","from","Register","entries","isArray","entry","type","has","Build","Realize","undefined","set","RegisterCollector","name","collector","Collect","Initialize","missing","filter","length","join","TriRenderBatchMap","IsInitialized","renderables","reason","Tr2RenderReason","TR2RENDERREASON_NORMAL","renderContext","TRANSPARENT","batchMap","Clear","store","GetTriPoolAllocator","SetTriPoolAllocator","collectsTransparent","includes","transparents","poolAccumulator","GetAccumulator","renderable","producer","perObjectData","GetPerObjectData","batchType","GetBatches","HasTransparentBatches","push","distance","GetSortValue","transparentAccumulator","sort","a","b","index","values","Finalize","GetBatchMap","GetBatchTypes","#ProducerFor","declared","GetBatchProducerType","batchProducerType","get"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA,MAAMA,mBAAmB,GAAG,CAC1BC,YAAY,CAACC,mBAAmB,EAChCD,YAAY,CAACE,kBAAkB,EAC/BF,YAAY,CAACG,wBAAwB,EACrCH,YAAY,CAACI,qBAAqB,EAClCJ,YAAY,CAACK,kBAAkB,CAChC;AAED,SAASC,IAAIA,CAACC,OAAO,EACrB;AACE,EAAA,MAAM,IAAIC,KAAK,CAAC,CAAA,iBAAA,EAAoBD,OAAO,EAAE,CAAC;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACO,MAAME,eAAe,CAC5B;AACE,EAAA,UAAU,GAAG,IAAIC,GAAG,EAAE;AAEtB,EAAA,WAAW,GAAG,IAAIA,GAAG,EAAE;AAEvB,EAAA,WAAW;AAEX,EAAA,cAAc;AAEd,EAAA,kBAAkB;EAElB,SAAS,GAAG,IAAI;EAEhB,YAAY,GAAG,KAAK;;AAEpB;AACA;AACA;AACA;;AAEA;AACF;AACA;AACA;AACA;AACEC,EAAAA,WAAWA,CAAC;AAAEC,IAAAA,UAAU,GAAGb,mBAAmB;AAAEc,IAAAA,aAAa,GAAG,EAAE;AAAEC,IAAAA,iBAAiB,GAAG;GAAM,GAAG,EAAE,EACnG;IACE,IAAI,CAAC,WAAW,GAAGC,KAAK,CAACC,IAAI,CAACJ,UAAU,CAAC;IACzC,IAAI,CAAC,cAAc,GAAGG,KAAK,CAACC,IAAI,CAACH,aAAa,CAAC;AAC/C,IAAA,IAAI,CAAC,kBAAkB,GAAGC,iBAAiB;AAC7C,EAAA;;AAEA;AACA;AACA;;AAEA;AACF;AACA;AACA;AACA;EACEG,QAAQA,CAACC,OAAO,EAChB;IACE,IAAI,IAAI,CAAC,YAAY,EAAEZ,IAAI,CAAC,2CAA2C,CAAC;IACxE,IAAI,CAACS,KAAK,CAACI,OAAO,CAACD,OAAO,CAAC,EAAEZ,IAAI,CAAC,gEAAgE,CAAC;AAEnG,IAAA,KAAK,MAAMc,KAAK,IAAIF,OAAO,EAC3B;AACE,MAAA,MAAMG,IAAI,GAAGD,KAAK,EAAEC,IAAI;MACxB,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,CAACA,IAAI,EAAEf,IAAI,CAAC,iDAAiD,CAAC;AAC9F,MAAA,IAAI,IAAI,CAAC,UAAU,CAACgB,GAAG,CAACD,IAAI,CAAC,EAAEf,IAAI,CAAC,CAAA,eAAA,EAAkBe,IAAI,yBAAyB,CAAC;AACpF,MAAA,IAAI,OAAOD,KAAK,CAACG,KAAK,KAAK,UAAU,EAAEjB,IAAI,CAAC,CAAA,UAAA,EAAae,IAAI,CAAA,2BAAA,CAA6B,CAAC;AAC3F,MAAA,IAAID,KAAK,CAACI,OAAO,KAAKC,SAAS,IAAI,OAAOL,KAAK,CAACI,OAAO,KAAK,UAAU,EACtE;AACElB,QAAAA,IAAI,CAAC,CAAA,UAAA,EAAae,IAAI,CAAA,0CAAA,CAA4C,CAAC;AACrE,MAAA;AACA,MAAA,IAAI,CAAC,UAAU,CAACK,GAAG,CAACL,IAAI,EAAE;QAAEE,KAAK,EAAEH,KAAK,CAACG,KAAK;AAAEC,QAAAA,OAAO,EAAEJ,KAAK,CAACI,OAAO,IAAI;AAAK,OAAC,CAAC;AACnF,IAAA;AACA,IAAA,OAAO,IAAI;AACb,EAAA;;AAEA;AACA;AACA;;AAEA;AACF;AACA;AACA;AACEG,EAAAA,iBAAiBA,CAACC,IAAI,EAAEC,SAAS,EACjC;IACE,IAAI,IAAI,CAAC,YAAY,EAAEvB,IAAI,CAAC,oDAAoD,CAAC;IACjF,IAAI,OAAOsB,IAAI,KAAK,QAAQ,IAAI,CAACA,IAAI,EAAEtB,IAAI,CAAC,4CAA4C,CAAC;AACzF,IAAA,IAAI,IAAI,CAAC,WAAW,CAACgB,GAAG,CAACM,IAAI,CAAC,EAAEtB,IAAI,CAAC,CAAA,WAAA,EAAcsB,IAAI,yBAAyB,CAAC;AACjF,IAAA,IAAI,OAAOC,SAAS,EAAEC,OAAO,KAAK,UAAU,EAAExB,IAAI,CAAC,CAAA,WAAA,EAAcsB,IAAI,CAAA,6BAAA,CAA+B,CAAC;IACrG,IAAI,CAAC,WAAW,CAACF,GAAG,CAACE,IAAI,EAAEC,SAAS,CAAC;AACrC,IAAA,OAAO,IAAI;AACb,EAAA;;AAEA;AACA;;AAEA;AACF;AACA;AACA;AACEE,EAAAA,UAAUA,GACV;IACE,IAAI,IAAI,CAAC,YAAY,EAAEzB,IAAI,CAAC,+BAA+B,CAAC;IAE5D,MAAM0B,OAAO,GAAG,IAAI,CAAC,cAAc,CAACC,MAAM,CAACZ,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAACC,GAAG,CAACD,IAAI,CAAC,CAAC;IAC9E,IAAIW,OAAO,CAACE,MAAM,EAClB;MACE5B,IAAI,CAAC,6CAA6C0B,OAAO,CAACG,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;AACzE,IAAA;AAEA,IAAA,IAAI,CAAC,SAAS,GAAG,IAAIC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC;AACjF,IAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,IAAA,OAAO,IAAI;AACb,EAAA;;AAEA;AACAC,EAAAA,aAAaA,GACb;IACE,OAAO,IAAI,CAAC,YAAY;AAC1B,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEP,EAAAA,OAAOA,CAACQ,WAAW,EAAEC,MAAM,GAAGC,eAAe,CAACC,sBAAsB,EAAEC,aAAa,GAAG,IAAI,EAC1F;IACE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAEpC,IAAI,CAAC,6BAA6B,CAAC;AAE3D,IAAA,MAAMqC,WAAW,GAAG3C,YAAY,CAACG,wBAAwB;AACzD,IAAA,MAAMyC,QAAQ,GAAG,IAAI,CAAC,SAAS;IAC/BA,QAAQ,CAACC,KAAK,EAAE;;AAEhB;AACA;AACA;AACA,IAAA,MAAMC,KAAK,GAAGJ,aAAa,EAAEK,mBAAmB,EAAE;AAClD,IAAA,IAAID,KAAK,EAAEF,QAAQ,CAACI,mBAAmB,CAACF,KAAK,CAAC;IAE9C,MAAMG,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAACC,QAAQ,CAACP,WAAW,CAAC;IAClE,MAAMQ,YAAY,GAAG,EAAE;AAEvB,IAAA,IAAIb,WAAW,EACf;MACE,MAAMc,eAAe,GAAGR,QAAQ,CAACS,cAAc,CAACrD,YAAY,CAACC,mBAAmB,CAAC,IAC5E2C,QAAQ,CAACS,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAEjD,MAAA,KAAK,MAAMC,UAAU,IAAIhB,WAAW,EACpC;QACE,IAAI,CAACgB,UAAU,EAAE;QAEjB,MAAMC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAACD,UAAU,CAAC;QAC9C,IAAIC,QAAQ,EAAE/B,OAAO,EAAE+B,QAAQ,CAAC/B,OAAO,CAAC8B,UAAU,CAAC;AAEnD,QAAA,MAAME,aAAa,GAAGF,UAAU,CAACG,gBAAgB,CAACL,eAAe,CAAC;AAElE,QAAA,IAAIG,QAAQ,EACZ;UACEA,QAAQ,CAAChC,KAAK,CAAC+B,UAAU,EAAEV,QAAQ,EAAEY,aAAa,EAAEjB,MAAM,CAAC;AAC7D,QAAA,CAAC,MAED;AACE,UAAA,KAAK,MAAMmB,SAAS,IAAI,IAAI,CAAC,WAAW,EACxC;YACE,IAAIA,SAAS,KAAKf,WAAW,EAAE;AAC/BW,YAAAA,UAAU,CAACK,UAAU,CACnBf,QAAQ,CAACS,cAAc,CAACK,SAAS,CAAC,EAAEA,SAAS,EAAEF,aAAa,EAAEjB,MAAM,EAAEG,aAAa,CAAC;AACxF,UAAA;AACF,QAAA;AAEA,QAAA,IAAIO,mBAAmB,IAAIK,UAAU,CAACM,qBAAqB,EAAE,EAC7D;UACET,YAAY,CAACU,IAAI,CAAC;YAChBP,UAAU;AACVQ,YAAAA,QAAQ,EAAER,UAAU,CAACS,YAAY,CAACrB,aAAa;AACjD,WAAC,CAAC;AACJ,QAAA;AACF,MAAA;AACF,IAAA;IAEA,IAAIS,YAAY,CAACjB,MAAM,EACvB;AACE,MAAA,MAAM8B,sBAAsB,GAAGpB,QAAQ,CAACS,cAAc,CAACV,WAAW,CAAC;AACnEQ,MAAAA,YAAY,CAACc,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACJ,QAAQ,GAAGK,CAAC,CAACL,QAAQ,CAAC;AACpD,MAAA,KAAK,IAAIM,KAAK,GAAGjB,YAAY,CAACjB,MAAM,GAAG,CAAC,EAAEkC,KAAK,IAAI,CAAC,EAAEA,KAAK,EAAE,EAC7D;AACE,QAAA,MAAMd,UAAU,GAAGH,YAAY,CAACiB,KAAK,CAAC,CAACd,UAAU;AACjD,QAAA,MAAME,aAAa,GAAGF,UAAU,CAACG,gBAAgB,CAACO,sBAAsB,CAAC;AACzEV,QAAAA,UAAU,CAACK,UAAU,CAACK,sBAAsB,EAAErB,WAAW,EAAEa,aAAa,EAAEjB,MAAM,EAAEG,aAAa,CAAC;AAClG,MAAA;AACF,IAAA;IAEA,KAAK,MAAMb,SAAS,IAAI,IAAI,CAAC,WAAW,CAACwC,MAAM,EAAE,EACjD;MACExC,SAAS,CAACC,OAAO,CAACQ,WAAW,IAAI,EAAE,EAAEM,QAAQ,EAAEL,MAAM,CAAC;AACxD,IAAA;IAEAK,QAAQ,CAAC0B,QAAQ,EAAE;AACnB,IAAA,OAAO1B,QAAQ;AACjB,EAAA;;AAEA;AACA2B,EAAAA,WAAWA,GACX;IACE,OAAO,IAAI,CAAC,SAAS;AACvB,EAAA;;AAEA;EACAlB,cAAcA,CAACK,SAAS,EACxB;IACE,OAAO,IAAI,CAAC,SAAS,EAAEL,cAAc,CAACK,SAAS,CAAC,IAAI,IAAI;AAC1D,EAAA;;AAEA;AACAc,EAAAA,aAAaA,GACb;IACE,OAAOzD,KAAK,CAACC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,EAAA;;AAEA;AACA;AACA;;AAEA;AACF;AACA;AACA;AACA;EACE,YAAYyD,CAACnB,UAAU,EACvB;AACE;AACA;AACA;AACA;AACA,IAAA,MAAMoB,QAAQ,GAAG,OAAOpB,UAAU,CAACqB,oBAAoB,KAAK,UAAU,GAClErB,UAAU,CAACqB,oBAAoB,EAAE,GACjC,IAAI;IACR,MAAMtD,IAAI,GAAGqD,QAAQ,IAAIpB,UAAU,CAACsB,iBAAiB,IAAI,IAAI;AAC7D,IAAA,OAAOvD,IAAI,GAAG,IAAI,CAAC,UAAU,CAACwD,GAAG,CAACxD,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI;AACxD,EAAA;AAEF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ITriRenderBatchAccumulator.js","sources":["../../../../../../src/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js"],"sourcesContent":["// Source: trinity/trinity/TriRenderBatch.h (ITriRenderBatchAccumulator)\n//\n// Abstract base for render-batch accumulators: shared render-mode / user-data\n// state plus the collect/sort contract. Concrete accumulators\n// (TriRenderBatchAccumulator) implement Commit/Finalize/Get*/TransferFrom. This\n//
|
|
1
|
+
{"version":3,"file":"ITriRenderBatchAccumulator.js","sources":["../../../../../../src/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js"],"sourcesContent":["// Source: trinity/trinity/TriRenderBatch.h (ITriRenderBatchAccumulator)\n//\n// Abstract base for render-batch accumulators: shared render-mode / user-data\n// state plus the collect/sort contract. Concrete accumulators\n// (TriRenderBatchAccumulator) implement Commit/Finalize/Get*/TransferFrom. This\n// collects CPU batch data; dispatch to the device is not ported yet.\nimport { RenderingMode } from \"#consts/graphics\";\nimport { impl } from \"#schema\";\n\n\n/**\n * Abstract base for render-batch accumulators: holds the shared rendering mode,\n * user data and per-object-data store, and declares the collect and sort\n * contract concrete accumulators implement.\n */\nexport class ITriRenderBatchAccumulator\n{\n /**\n * Starts with zero user data, RM_ANY rendering mode and no per-object-data\n * store bound.\n */\n constructor()\n {\n this.userData = 0;\n\n this.renderingMode = RenderingMode.RM_ANY;\n\n // The per-object-data store (a TriPoolAllocator), set once from the render\n // context at scene setup. The engine builds it from its own struct\n // reflection; Trinity never defines a struct here.\n this.rawDataStore = null;\n }\n\n // Bind the per-object-data store (from the render context). Carbon's pool\n // allocator (Tr2Renderer::GetPoolAllocator) relocates onto this store.\n\n /**\n * Binds the per-object-data store, normally taken from the render context at\n * scene setup; returns this for chaining.\n */\n SetTriPoolAllocator(store)\n {\n this.rawDataStore = store;\n return this;\n }\n\n /** The bound per-object-data store, or null when none was set. */\n GetTriPoolAllocator()\n {\n return this.rawDataStore;\n }\n\n // Lease a transient per-object payload for a registered struct (the pooled\n // per-object-data allocation). Requires a store - there is no fallback; a\n // missing store is a setup error, not a silent tight-pack.\n\n /**\n * Leases a transient per-object payload for a registered struct from the bound\n * store; a missing store throws rather than silently falling back, because it\n * is a setup error.\n */\n Alloc(name)\n {\n if (!this.rawDataStore)\n {\n throw new Error(`ITriRenderBatchAccumulator: no per-object-data store bound (set it from the render context before Alloc \"${name}\")`);\n }\n\n return this.rawDataStore.Allocate(name);\n }\n\n // Carbon pool-allocates per-object data from the accumulator; in JS the GC\n // owns lifetime, so this just constructs the requested object. Retained for\n // the deferred { object: this } sites during the per-object-data migration.\n\n /**\n * Constructs the requested per-object-data object; Carbon pool-allocates here,\n * but in JS the GC owns lifetime, so this only calls the constructor.\n */\n Allocate(Constructor)\n {\n return new Constructor();\n }\n\n /**\n * Attaches an opaque caller value that every batch collected by this\n * accumulator carries.\n */\n SetUserData(userData)\n {\n this.userData = userData;\n }\n\n /** Sets the rendering mode that Commit stamps onto every batch collected here. */\n SetRenderingMode(mode)\n {\n this.renderingMode = mode;\n }\n\n /** The rendering mode stamped onto collected batches. */\n GetRenderingMode()\n {\n return this.renderingMode;\n }\n\n /**\n * Abstract: concrete accumulators drop every collected batch and reset the\n * shared state.\n */\n @impl.abstract\n Clear()\n {\n throw new Error(\"ITriRenderBatchAccumulator.Clear is abstract\");\n }\n\n /**\n * Abstract: concrete accumulators take ownership of a batch and file it for\n * sorting.\n */\n @impl.abstract\n Commit(_batch)\n {\n throw new Error(\"ITriRenderBatchAccumulator.Commit is abstract\");\n }\n\n /** Abstract: the GDPR-eligible batch vector. */\n @impl.abstract\n GetGdprBatches()\n {\n throw new Error(\"ITriRenderBatchAccumulator.GetGdprBatches is abstract\");\n }\n\n /** Abstract: the plain batch vector. */\n @impl.abstract\n GetBatches()\n {\n throw new Error(\"ITriRenderBatchAccumulator.GetBatches is abstract\");\n }\n\n /** Abstract: concrete accumulators sort and group-count the collected batches. */\n @impl.abstract\n Finalize()\n {\n throw new Error(\"ITriRenderBatchAccumulator.Finalize is abstract\");\n }\n\n /** Abstract: total number of collected batches. */\n @impl.abstract\n GetBatchCount()\n {\n throw new Error(\"ITriRenderBatchAccumulator.GetBatchCount is abstract\");\n }\n\n /**\n * Abstract: whether the collected batches are effect-sorted rather than\n * order-preserving.\n */\n @impl.abstract\n IsChainedByEffect()\n {\n throw new Error(\"ITriRenderBatchAccumulator.IsChainedByEffect is abstract\");\n }\n\n /** Abstract: folds another accumulator's batches into this one. */\n @impl.abstract\n TransferFrom(_source)\n {\n throw new Error(\"ITriRenderBatchAccumulator.TransferFrom is abstract\");\n }\n}\n"],"names":["ITriRenderBatchAccumulator","_initProto","_applyDecs","impl","abstract","e","constructor","userData","renderingMode","RenderingMode","RM_ANY","rawDataStore","SetTriPoolAllocator","store","GetTriPoolAllocator","Alloc","name","Error","Allocate","Constructor","SetUserData","SetRenderingMode","mode","GetRenderingMode","Clear","Commit","_batch","GetGdprBatches","GetBatches","Finalize","GetBatchCount","IsChainedByEffect","TransferFrom","_source"],"mappings":"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"}
|
|
@@ -85,12 +85,11 @@ class Tr2RenderBatch {
|
|
|
85
85
|
this.indexBuffer = null;
|
|
86
86
|
this.indexStride = 0;
|
|
87
87
|
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
//
|
|
91
|
-
//
|
|
92
|
-
//
|
|
93
|
-
// docs/architecture.md.
|
|
88
|
+
// NOT PORTED: Carbon's Tr2MeshBase::CreateGeometryBatch bakes the buffer
|
|
89
|
+
// allocations and computed draw arguments into the batch during collection.
|
|
90
|
+
// Here only a geometry-resource and area-range descriptor is recorded, and
|
|
91
|
+
// resolving it to allocations and final draw arguments is missing. See the
|
|
92
|
+
// render-batch contract in docs/architecture.md.
|
|
94
93
|
this.geometrySource = null;
|
|
95
94
|
this.objectData = null;
|
|
96
95
|
this.renderingMode = RenderingMode.RM_ANY;
|
|
@@ -117,15 +116,14 @@ class Tr2RenderBatch {
|
|
|
117
116
|
this.groupCount = 1;
|
|
118
117
|
}
|
|
119
118
|
|
|
120
|
-
// Sets material and derives the shader key from it.
|
|
121
|
-
//
|
|
122
|
-
//
|
|
123
|
-
// shader key. Either way the shader is both the validity key (see IsValid) and
|
|
119
|
+
// Sets material and derives the shader key from it. Normally the shader is the
|
|
120
|
+
// material's shader-state interface; before one is resolved the material
|
|
121
|
+
// (effect) itself stands in as the shader key. Either way the shader is both the validity key (see IsValid) and
|
|
124
122
|
// the primary bin/sort key, so effect-equal batches still group together.
|
|
125
123
|
|
|
126
124
|
/**
|
|
127
125
|
* Sets the material and derives the shader key from it, falling back to the
|
|
128
|
-
* material itself when no shader-state interface is
|
|
126
|
+
* material itself when no shader-state interface is resolved yet; that key is
|
|
129
127
|
* both the validity test and the primary bin/sort key, so effect-equal batches
|
|
130
128
|
* still group together.
|
|
131
129
|
*/
|
|
@@ -176,8 +174,8 @@ class Tr2RenderBatch {
|
|
|
176
174
|
this.stride[1] = AllocationStride(vertexAllocation2);
|
|
177
175
|
}
|
|
178
176
|
|
|
179
|
-
//
|
|
180
|
-
//
|
|
177
|
+
// Geometry binding: records the resource + mesh/area range. Resolving it into
|
|
178
|
+
// buffers and draw arguments at dispatch is not ported yet.
|
|
181
179
|
|
|
182
180
|
/**
|
|
183
181
|
* GPU-free geometry binding: records the geometry resource plus the mesh and
|
|
@@ -320,7 +318,7 @@ class Tr2RenderBatch {
|
|
|
320
318
|
// allocation for two integers.
|
|
321
319
|
//
|
|
322
320
|
// Carbon gates the BATCH on lod->m_allocationsValid, because in Carbon an
|
|
323
|
-
//
|
|
321
|
+
// unbuilt draw cannot exist. Here the allocations are not built yet, so an unbuilt
|
|
324
322
|
// LOD is normal and the flags gate the DRAW ARGUMENTS instead: collection
|
|
325
323
|
// still emits the geometry-source descriptor.
|
|
326
324
|
//
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tr2RenderBatch.js","sources":["../../../../../../src/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js"],"sourcesContent":["// Source: trinity/trinity/TriRenderBatch.h\n// trinity/TriRenderBatch.cpp\n//\n// GPU-free CPU render-batch descriptor plus the binning/sort helpers. A batch\n// holds opaque references to material/shader/geometry and plain draw arguments;\n// it never touches a device. The engine adapter reads a finalized accumulator's\n// batches and issues the actual draws (Carbon's Tr2RenderContextBase::RenderBatches*\n// dispatch family stays engine-side and is intentionally NOT ported here).\n\nimport { RenderingMode } from \"#consts/graphics\";\nimport { Topology } from \"#consts/render-context\";\nimport { TriGeometryRes } from \"#resource/geometry\";\n\n// Carbon sorts batches on raw pointer identity of shader/vertex-stream objects.\n// JS has no pointer order, so we assign each distinct reference a stable id on\n// first encounter. Only contiguity of equal references matters for binning, so\n// the ordinal itself is irrelevant as long as it is consistent within a run.\nlet nextOrderId = 1;\n\nconst orderIds = new WeakMap();\n\n/**\n * Stable per-reference ordinal standing in for Carbon's pointer ordering in\n * batch comparisons; assigned on first sight and held in a WeakMap, so it is\n * consistent within a run but meaningless across runs.\n */\nexport function OrderOf(ref)\n{\n if (ref === null || ref === undefined) return 0;\n if (typeof ref !== \"object\" && typeof ref !== \"function\") return Number(ref) || 0;\n let id = orderIds.get(ref);\n if (id === undefined)\n {\n id = nextOrderId++;\n orderIds.set(ref, id);\n }\n return id;\n}\n\n// THE ALLOCATION TYPE IS A PORT GAP, AND THESE TWO HELPERS ARE WHERE IT SHOWS.\n//\n// Carbon's `SetGeometryFromAllocations` takes a `Tr2SuballocatedBuffer::Allocation`\n// (`Tr2SuballocatedBuffer.h:23-66`) and simply calls `GetBuffer()`, `GetOffset()`,\n// `GetStride()` and `GetStartIndex()` on it - no probing, because the type is the\n// argument. We have no such class: it needs `Tr2VirtualAllocator`, which in\n// Carbon is a thin wrapper over VMA's virtual-block suballocator, so porting it\n// means writing a real suballocator rather than translating one.\n//\n// Until then a caller passes either a shaped allocation or a bare buffer, and\n// these ask WHICH rather than hedging on a method one of our own classes might\n// be missing. When the class lands, both helpers delete and the call sites go\n// back to Carbon's four direct accessor calls.\n\n/** The buffer an allocation lends, or the argument itself when it IS a buffer. */\nfunction AllocationBuffer(allocation)\n{\n if (!allocation) return null;\n\n return typeof allocation.GetBuffer === \"function\" ? allocation.GetBuffer() : allocation;\n}\n\n/** An allocation's element stride, however the caller's shape spells it. */\nfunction AllocationStride(allocation)\n{\n if (!allocation) return 0;\n\n if (typeof allocation.GetStride === \"function\") return allocation.GetStride();\n\n return allocation.stride ?? 0;\n}\n\n// A single draw's worth of CPU descriptor state. Faithful to Carbon's\n// Tr2RenderBatch struct; the vertex/index \"buffer\" slots hold whatever the\n// producer supplies (in the GPU-free runtime these are geometry-resource-backed\n// descriptors that the engine resolves to real buffers at dispatch time).\n\n/**\n * One draw's worth of CPU descriptor state - material and shader key, geometry\n * binding, draw arguments and sort keys - holding no device resources.\n */\nexport class Tr2RenderBatch\n{\n /**\n * Creates an empty batch with no material or geometry, RM_ANY rendering mode,\n * triangle-list topology and a group count of 1.\n */\n constructor()\n {\n this.material = null;\n this.shader = null;\n\n this.vertexDeclaration = 0;\n this.vertexStreams = [ null, null ];\n this.stride = [ 0, 0 ];\n this.indexBuffer = null;\n this.indexStride = 0;\n\n // GPU-free adaptation: Carbon's Tr2MeshBase::CreateGeometryBatch bakes\n // realized buffer allocations and computed draw arguments into the batch\n // during collection. Trinity instead records a geometry-resource and\n // area-range descriptor; the engine resolves it to realized allocations\n // and final draw arguments at dispatch. See the render-batch contract in\n // docs/architecture.md.\n this.geometrySource = null;\n\n this.objectData = null;\n this.renderingMode = RenderingMode.RM_ANY;\n // THE VOCABULARY IS THE ABSTRACTION LAYER'S, NOT D3D'S. This field held a\n // `D3dPrimitiveTopology` until 2026-09-05, and everything drew correctly\n // because the WebGPU engine translated on the way out. Carbon does not\n // translate: `SubmitGeometry` hands `batch.m_topology` straight to\n // `SetTopology` (`Tr2RenderContext.cpp:86`), so the two numberings have to\n // BE the same one, and the AL owns it. The old numbering collided rather\n // than merely disagreed - D3D's 4 is TRIANGLELIST, the AL's 4 is TOP_LINES.\n this.topology = Topology.TOP_TRIANGLES;\n\n this.indexCountPerInstance = 0;\n this.instanceCount = 0;\n this.startIndexLocation = 0;\n this.baseVertexLocation = 0;\n this.startInstanceLocation = 0;\n\n this.pickingData = 0;\n this.depth = 0;\n this.priority = 0;\n\n // Default 1; the effect-sort partition rewrites this on the first batch of\n // each bin-run to the run length so dispatch can stride one state-set over\n // several draws. Meaningless on non-leading batches of a run.\n this.groupCount = 1;\n }\n\n // Sets material and derives the shader key from it. In the realized engine the\n // shader is the material's shader-state interface; in GPU-free collection no\n // shader is realized yet, so the material (effect) itself stands in as the\n // shader key. Either way the shader is both the validity key (see IsValid) and\n // the primary bin/sort key, so effect-equal batches still group together.\n\n /**\n * Sets the material and derives the shader key from it, falling back to the\n * material itself when no shader-state interface is realized yet; that key is\n * both the validity test and the primary bin/sort key, so effect-equal batches\n * still group together.\n */\n SetMaterial(material)\n {\n this.material = material ?? null;\n this.shader = material?.GetShaderStateInterface() ?? material ?? null;\n }\n\n /** Sets the outermost sort key; lower priorities sort first. */\n SetPriority(priority)\n {\n this.priority = priority >>> 0;\n }\n\n // Carbon: SetGeometry(vertexDecl, Tr2BufferAL& vb, stride, Tr2BufferAL& ib, indexStride).\n\n /**\n * Binds one vertex stream and an index buffer with their strides, clearing the\n * second stream.\n */\n SetGeometry(vertexDeclaration, vertexBuffer, vertexStride, indexBuffer, indexStride)\n {\n this.vertexDeclaration = vertexDeclaration >>> 0;\n this.vertexStreams[0] = vertexBuffer ?? null;\n this.vertexStreams[1] = null;\n this.stride[0] = vertexStride >>> 0;\n this.indexBuffer = indexBuffer ?? null;\n this.indexStride = indexStride >>> 0;\n }\n\n // Carbon overload taking suballocated-buffer allocations (the mesh path).\n\n /**\n * Binds geometry from suballocated buffer allocations, taking each\n * allocation's buffer and stride (Carbon's mesh path).\n */\n SetGeometryFromAllocations(vertexDeclaration, vertexAllocation, indexAllocation)\n {\n this.SetGeometry(\n vertexDeclaration,\n AllocationBuffer(vertexAllocation),\n AllocationStride(vertexAllocation),\n AllocationBuffer(indexAllocation),\n AllocationStride(indexAllocation)\n );\n }\n\n // Carbon two-stream allocation overload.\n\n /**\n * Binds a two-stream allocation set; the second allocation becomes vertex\n * stream 1.\n */\n SetGeometryFromAllocations2(vertexDeclaration, vertexAllocation1, vertexAllocation2, indexAllocation)\n {\n this.SetGeometryFromAllocations(vertexDeclaration, vertexAllocation1, indexAllocation);\n this.vertexStreams[1] = AllocationBuffer(vertexAllocation2);\n this.stride[1] = AllocationStride(vertexAllocation2);\n }\n\n // GPU-free geometry binding: records the resource + mesh/area range for the\n // engine to resolve into realized buffers and draw arguments at dispatch.\n\n /**\n * GPU-free geometry binding: records the geometry resource plus the mesh and\n * area range for the engine to resolve into realized buffers and draw\n * arguments at dispatch.\n */\n SetGeometrySource(geometry, meshIndex, areaIndex, count, reversed, lod = null)\n {\n this.geometrySource = {\n geometry: geometry ?? null,\n meshIndex: meshIndex >>> 0,\n areaIndex: areaIndex | 0,\n count: count | 0,\n reversed: !!reversed,\n // The LOD the area belongs to, so the render context can realize its\n // allocations at submit and recompute the draw arguments against them.\n lod: lod ?? null\n };\n }\n\n /**\n * Sets the vertex-declaration key, which participates in both binning and\n * sorting.\n */\n SetVertexDeclaration(vertexDeclaration)\n {\n this.vertexDeclaration = vertexDeclaration >>> 0;\n }\n\n /** Binds one vertex stream slot and its stride. */\n SetStreamSource(index, vertexBuffer, vertexStride)\n {\n this.vertexStreams[index] = vertexBuffer ?? null;\n this.stride[index] = vertexStride >>> 0;\n }\n\n // Carbon spells this SetInidices (a typo in the C++ API); we use the corrected\n // name since both producer and consumer are ours.\n\n /**\n * Binds the index buffer and its stride; Carbon spells this SetInidices, a\n * typo corrected here because both producer and consumer are ours.\n */\n SetIndices(indexBuffer, indexStride)\n {\n this.indexBuffer = indexBuffer ?? null;\n this.indexStride = indexStride >>> 0;\n }\n\n /**\n * Sets the primitive topology; only TRIANGLELIST batches are eligible for GDPR\n * binning.\n */\n SetTopology(topology)\n {\n this.topology = topology;\n }\n\n /**\n * References the per-object payload the engine binds when dispatching this\n * batch; the batch borrows it and does not own it.\n */\n SetPerObjectData(objectData)\n {\n this.objectData = objectData ?? null;\n }\n\n /** Records the indexed instanced draw arguments verbatim. */\n SetDrawIndexedInstanced(indexCountPerInstance, instanceCount, startIndexLocation, baseVertexLocation, startInstanceLocation)\n {\n this.indexCountPerInstance = indexCountPerInstance >>> 0;\n this.instanceCount = instanceCount >>> 0;\n this.startIndexLocation = startIndexLocation >>> 0;\n this.baseVertexLocation = baseVertexLocation >>> 0;\n this.startInstanceLocation = startInstanceLocation >>> 0;\n }\n\n // Non-indexed draw: reuses indexCountPerInstance for the vertex count and\n // startIndexLocation for the start vertex; baseVertexLocation is left as is.\n\n /**\n * Records a non-indexed instanced draw, reusing indexCountPerInstance for the\n * vertex count and startIndexLocation for the start vertex; baseVertexLocation\n * is left untouched.\n */\n SetDrawInstanced(vertexCountPerInstance, instanceCount, startVertexLocation, startInstanceLocation)\n {\n this.indexCountPerInstance = vertexCountPerInstance >>> 0;\n this.instanceCount = instanceCount >>> 0;\n this.startIndexLocation = startVertexLocation >>> 0;\n this.startInstanceLocation = startInstanceLocation >>> 0;\n }\n\n /**\n * Sets the batch's rendering mode; note that Commit overwrites it with the\n * accumulator's own mode.\n */\n SetRenderingMode(mode)\n {\n this.renderingMode = mode;\n }\n\n // Carbon overloads SetPickingData(data) and SetPickingData(meshIndex, areaIndex).\n\n /**\n * Stores picking data either as a raw value or, when a second argument is\n * given, as the mesh index shifted above the low byte of the area index.\n */\n SetPickingData(a, b)\n {\n this.pickingData = (b === undefined) ? (a >>> 0) : (((a << 8) | (b & 0xff)) >>> 0);\n }\n\n // A batch is valid iff it has a shader (i.e. SetMaterial was called with a\n // material that exposed a shader-state interface). Invalid batches are dropped\n // silently at Commit time.\n\n /**\n * A batch is valid only once it has a shader, that is once SetMaterial\n * received a material; invalid batches are dropped silently at Commit.\n */\n IsValid()\n {\n return this.shader !== null && this.shader !== undefined;\n }\n\n // Carbon Tr2MeshBase.cpp:341-395 (the draw arguments inside\n // CreateGeometryBatch) and Tr2SuballocatedBuffer.cpp:212-215\n // (Allocation::GetStartIndex).\n //\n // THE ARITHMETIC LIVES HERE ONCE. Carbon replicates this expression in\n // Tr2InstancedMesh and at least eight further call sites that bypass\n // CreateGeometryBatch; that duplication is a defect this port declines to\n // inherit. Every producer calls resolveDrawArguments instead.\n //\n // A draw argument is neither wholly CPU-derivable nor wholly the engine's:\n //\n // primCount - pure geometry data (area primitive counts). CPU.\n // firstIndex - pure geometry data. CPU.\n // startIndex - firstIndex PLUS the index allocation's start index. The base\n // is a suballocation, which only a realizing engine knows.\n // baseVertex - the vertex allocation's offset / stride, which IS\n // GetStartIndex() hand-inlined (Tr2MeshBase.cpp:391).\n //\n // The two bases default to ZERO when nothing has realized the geometry, and\n // zero is the CORRECT answer for an engine that gives each mesh its own\n // buffers rather than suballocating from a shared one - which is what ccpwgl\n // does and what a first WebGL implementation naturally does. A suballocating\n // engine writes its allocation into the resource and the same expression\n // yields the pooled bases. Trinity never sees a GPU handle: it asks the\n // allocation for two integers.\n //\n // Carbon gates the BATCH on lod->m_allocationsValid, because in Carbon an\n // unrealized draw cannot exist. This runtime is GPU-free, so an unrealized\n // LOD is normal and the flags gate the DRAW ARGUMENTS instead: collection\n // still emits the geometry-source descriptor.\n //\n // LOD selection and the primitive-count sum are NOT here. Carbon declares\n // both beside TriGeometryRes (Resources/TriGeometryRes.h:202/:242), which\n // the runtime resource layer owns.\n\n /**\n * Carbon's indexed draw arguments for one mesh area of one LOD, or null when\n * the area contributes no primitives or a reversed draw has no reversed\n * indices - both of which are Carbon's \"emit no batch\" answers.\n *\n * `reversed` is the already-resolved winding for this draw, which Carbon\n * computes as `area->GetReversed() != reverseWinding` at the call site.\n */\n static resolveDrawArguments(lod, areaIndex, areaCount, reversed = false)\n {\n if (!lod) return null;\n\n // Carbon clamps both to zero before use (Tr2MeshBase.cpp:356).\n const index = Math.max(0, areaIndex | 0);\n const count = Math.max(0, areaCount | 0);\n\n const primitiveCount = TriGeometryRes.getPrimitiveCount(lod, index, count);\n\n if (!primitiveCount) return null;\n\n if (reversed && lod.reversedIndicesValid === false) return null;\n\n // Not `area.firstIndex` directly: a CMF-shaped LOD writes the area start as\n // a first TRIANGLE, and the geometry layer owns that conversion.\n const firstIndex = TriGeometryRes.getAreaFirstIndex(lod.areas?.[index]);\n\n // Carbon binds the FORWARD index allocation on both paths and only reads\n // the reversed allocation for the start index (Tr2MeshBase.cpp:371/375).\n // That works because both live in one pool at one stride; an engine that\n // separates them must bind the one this start index belongs to.\n const indices = reversed ? lod.reversedIndexAllocation : lod.indexAllocation;\n\n const startIndexLocation = reversed\n ? Tr2RenderBatch.startIndexOf(indices) + TriGeometryRes.getLodPrimitiveCount(lod) * 3 - firstIndex - primitiveCount * 3\n : Tr2RenderBatch.startIndexOf(indices) + firstIndex;\n\n return {\n indexCountPerInstance: primitiveCount * 3,\n instanceCount: 1,\n startIndexLocation,\n baseVertexLocation: Tr2RenderBatch.startIndexOf(lod.vertexAllocation),\n startInstanceLocation: 0\n };\n }\n\n /**\n * The start index of a realized suballocation, or zero when the geometry is\n * unrealized or the engine allocates per mesh rather than from a shared\n * buffer; Carbon reads Allocation::GetStartIndex.\n */\n static startIndexOf(allocation)\n {\n if (!allocation) return 0;\n\n if (typeof allocation.GetStartIndex === \"function\")\n {\n return allocation.GetStartIndex() >>> 0;\n }\n\n // GetStartIndex() IS offset / stride; Carbon hand-inlines exactly this for\n // the base vertex (Tr2MeshBase.cpp:391).\n const stride = AllocationStride(allocation);\n\n if (!stride) return 0;\n\n const offset = typeof allocation.GetOffset === \"function\"\n ? allocation.GetOffset()\n : allocation.offset ?? 0;\n\n return (offset / stride) >>> 0;\n }\n}\n\n// Two batches can share a single state-set (one bin/GDPR group) iff all of these\n// match. Note: priority, material and topology are intentionally NOT compared\n// here (faithful to Carbon CanBeBinned).\n\n/**\n * Whether two batches can share one state-set: shader, vertex declaration, index\n * stride, both vertex streams and rendering mode must match, while priority,\n * material and topology are deliberately not compared (faithful to Carbon).\n */\nexport function CanBeBinned(batch1, batch2)\n{\n return batch1.shader === batch2.shader\n && batch1.vertexDeclaration === batch2.vertexDeclaration\n && batch1.indexStride === batch2.indexStride\n && batch1.vertexStreams[0] === batch2.vertexStreams[0]\n && batch1.vertexStreams[1] === batch2.vertexStreams[1]\n && batch1.renderingMode === batch2.renderingMode;\n}\n\n// JS comparator (negative/zero/positive) reproducing Carbon Compare's strict-weak\n// ordering: priority, shader, vertexDeclaration, indexStride, stream0, stream1,\n// renderingMode. Pointer identity is replaced by a stable per-reference order id.\n\n/**\n * Strict-weak comparator reproducing Carbon's batch ordering - priority, shader,\n * vertex declaration, index stride, stream 0, stream 1, rendering mode - with\n * pointer identity replaced by stable order ids.\n */\nexport function CompareBatches(batch1, batch2)\n{\n if (batch1.priority !== batch2.priority) return batch1.priority - batch2.priority;\n\n const shaderOrder = OrderOf(batch1.shader) - OrderOf(batch2.shader);\n if (shaderOrder !== 0) return shaderOrder;\n\n if (batch1.vertexDeclaration !== batch2.vertexDeclaration) return batch1.vertexDeclaration - batch2.vertexDeclaration;\n if (batch1.indexStride !== batch2.indexStride) return batch1.indexStride - batch2.indexStride;\n\n const stream0Order = OrderOf(batch1.vertexStreams[0]) - OrderOf(batch2.vertexStreams[0]);\n if (stream0Order !== 0) return stream0Order;\n\n const stream1Order = OrderOf(batch1.vertexStreams[1]) - OrderOf(batch2.vertexStreams[1]);\n if (stream1Order !== 0) return stream1Order;\n\n return batch1.renderingMode - batch2.renderingMode;\n}\n\n// Sorts a batch vector and writes each bin-run's length onto the run's leading\n// batch (groupCount). Mirrors Tr2GdprBatchFullPartition. JS Array.sort is stable,\n// so the \"full\" and \"stable\" partition variants are behaviourally identical here.\n\n/**\n * Sorts a batch vector and writes each bin-run's length onto that run's leading\n * batch groupCount, so dispatch can stride one state-set over several draws.\n */\nexport function Tr2GdprBatchFullPartition(batches)\n{\n PartitionBatchGroups(batches);\n}\n\n/**\n * Stable variant of the full partition, behaviourally identical here because JS\n * Array.sort is already stable.\n */\nexport function Tr2GdprBatchStableFullPartition(batches)\n{\n PartitionBatchGroups(batches);\n}\n\nfunction PartitionBatchGroups(batches)\n{\n if (batches.length === 0) return;\n\n batches.sort(CompareBatches);\n\n let first = 0;\n for (let current = 0; current < batches.length; current++)\n {\n if (!CanBeBinned(batches[first], batches[current]))\n {\n batches[first].groupCount = current - first;\n first = current;\n }\n }\n batches[first].groupCount = batches.length - first;\n}\n"],"names":["nextOrderId","orderIds","WeakMap","OrderOf","ref","undefined","Number","id","get","set","AllocationBuffer","allocation","GetBuffer","AllocationStride","GetStride","stride","Tr2RenderBatch","constructor","material","shader","vertexDeclaration","vertexStreams","indexBuffer","indexStride","geometrySource","objectData","renderingMode","RenderingMode","RM_ANY","topology","Topology","TOP_TRIANGLES","indexCountPerInstance","instanceCount","startIndexLocation","baseVertexLocation","startInstanceLocation","pickingData","depth","priority","groupCount","SetMaterial","GetShaderStateInterface","SetPriority","SetGeometry","vertexBuffer","vertexStride","SetGeometryFromAllocations","vertexAllocation","indexAllocation","SetGeometryFromAllocations2","vertexAllocation1","vertexAllocation2","SetGeometrySource","geometry","meshIndex","areaIndex","count","reversed","lod","SetVertexDeclaration","SetStreamSource","index","SetIndices","SetTopology","SetPerObjectData","SetDrawIndexedInstanced","SetDrawInstanced","vertexCountPerInstance","startVertexLocation","SetRenderingMode","mode","SetPickingData","a","b","IsValid","resolveDrawArguments","areaCount","Math","max","primitiveCount","TriGeometryRes","getPrimitiveCount","reversedIndicesValid","firstIndex","getAreaFirstIndex","areas","indices","reversedIndexAllocation","startIndexOf","getLodPrimitiveCount","GetStartIndex","offset","GetOffset","CanBeBinned","batch1","batch2","CompareBatches","shaderOrder","stream0Order","stream1Order","Tr2GdprBatchFullPartition","batches","PartitionBatchGroups","Tr2GdprBatchStableFullPartition","length","sort","first","current"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tr2RenderBatch.js","sources":["../../../../../../src/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js"],"sourcesContent":["// Source: trinity/trinity/TriRenderBatch.h\n// trinity/TriRenderBatch.cpp\n//\n// GPU-free CPU render-batch descriptor plus the binning/sort helpers. A batch\n// holds opaque references to material/shader/geometry and plain draw arguments;\n// it never touches a device. The engine adapter reads a finalized accumulator's\n// batches and issues the actual draws (Carbon's Tr2RenderContextBase::RenderBatches*\n// dispatch family stays engine-side and is intentionally NOT ported here).\n\nimport { RenderingMode } from \"#consts/graphics\";\nimport { Topology } from \"#consts/render-context\";\nimport { TriGeometryRes } from \"#resource/geometry\";\n\n// Carbon sorts batches on raw pointer identity of shader/vertex-stream objects.\n// JS has no pointer order, so we assign each distinct reference a stable id on\n// first encounter. Only contiguity of equal references matters for binning, so\n// the ordinal itself is irrelevant as long as it is consistent within a run.\nlet nextOrderId = 1;\n\nconst orderIds = new WeakMap();\n\n/**\n * Stable per-reference ordinal standing in for Carbon's pointer ordering in\n * batch comparisons; assigned on first sight and held in a WeakMap, so it is\n * consistent within a run but meaningless across runs.\n */\nexport function OrderOf(ref)\n{\n if (ref === null || ref === undefined) return 0;\n if (typeof ref !== \"object\" && typeof ref !== \"function\") return Number(ref) || 0;\n let id = orderIds.get(ref);\n if (id === undefined)\n {\n id = nextOrderId++;\n orderIds.set(ref, id);\n }\n return id;\n}\n\n// THE ALLOCATION TYPE IS A PORT GAP, AND THESE TWO HELPERS ARE WHERE IT SHOWS.\n//\n// Carbon's `SetGeometryFromAllocations` takes a `Tr2SuballocatedBuffer::Allocation`\n// (`Tr2SuballocatedBuffer.h:23-66`) and simply calls `GetBuffer()`, `GetOffset()`,\n// `GetStride()` and `GetStartIndex()` on it - no probing, because the type is the\n// argument. We have no such class: it needs `Tr2VirtualAllocator`, which in\n// Carbon is a thin wrapper over VMA's virtual-block suballocator, so porting it\n// means writing a real suballocator rather than translating one.\n//\n// Until then a caller passes either a shaped allocation or a bare buffer, and\n// these ask WHICH rather than hedging on a method one of our own classes might\n// be missing. When the class lands, both helpers delete and the call sites go\n// back to Carbon's four direct accessor calls.\n\n/** The buffer an allocation lends, or the argument itself when it IS a buffer. */\nfunction AllocationBuffer(allocation)\n{\n if (!allocation) return null;\n\n return typeof allocation.GetBuffer === \"function\" ? allocation.GetBuffer() : allocation;\n}\n\n/** An allocation's element stride, however the caller's shape spells it. */\nfunction AllocationStride(allocation)\n{\n if (!allocation) return 0;\n\n if (typeof allocation.GetStride === \"function\") return allocation.GetStride();\n\n return allocation.stride ?? 0;\n}\n\n// A single draw's worth of CPU descriptor state. Faithful to Carbon's\n// Tr2RenderBatch struct; the vertex/index \"buffer\" slots hold whatever the\n// producer supplies (in the GPU-free runtime these are geometry-resource-backed\n// descriptors that the engine resolves to real buffers at dispatch time).\n\n/**\n * One draw's worth of CPU descriptor state - material and shader key, geometry\n * binding, draw arguments and sort keys - holding no device resources.\n */\nexport class Tr2RenderBatch\n{\n /**\n * Creates an empty batch with no material or geometry, RM_ANY rendering mode,\n * triangle-list topology and a group count of 1.\n */\n constructor()\n {\n this.material = null;\n this.shader = null;\n\n this.vertexDeclaration = 0;\n this.vertexStreams = [ null, null ];\n this.stride = [ 0, 0 ];\n this.indexBuffer = null;\n this.indexStride = 0;\n\n // NOT PORTED: Carbon's Tr2MeshBase::CreateGeometryBatch bakes the buffer\n // allocations and computed draw arguments into the batch during collection.\n // Here only a geometry-resource and area-range descriptor is recorded, and\n // resolving it to allocations and final draw arguments is missing. See the\n // render-batch contract in docs/architecture.md.\n this.geometrySource = null;\n\n this.objectData = null;\n this.renderingMode = RenderingMode.RM_ANY;\n // THE VOCABULARY IS THE ABSTRACTION LAYER'S, NOT D3D'S. This field held a\n // `D3dPrimitiveTopology` until 2026-09-05, and everything drew correctly\n // because the WebGPU engine translated on the way out. Carbon does not\n // translate: `SubmitGeometry` hands `batch.m_topology` straight to\n // `SetTopology` (`Tr2RenderContext.cpp:86`), so the two numberings have to\n // BE the same one, and the AL owns it. The old numbering collided rather\n // than merely disagreed - D3D's 4 is TRIANGLELIST, the AL's 4 is TOP_LINES.\n this.topology = Topology.TOP_TRIANGLES;\n\n this.indexCountPerInstance = 0;\n this.instanceCount = 0;\n this.startIndexLocation = 0;\n this.baseVertexLocation = 0;\n this.startInstanceLocation = 0;\n\n this.pickingData = 0;\n this.depth = 0;\n this.priority = 0;\n\n // Default 1; the effect-sort partition rewrites this on the first batch of\n // each bin-run to the run length so dispatch can stride one state-set over\n // several draws. Meaningless on non-leading batches of a run.\n this.groupCount = 1;\n }\n\n // Sets material and derives the shader key from it. Normally the shader is the\n // material's shader-state interface; before one is resolved the material\n // (effect) itself stands in as the shader key. Either way the shader is both the validity key (see IsValid) and\n // the primary bin/sort key, so effect-equal batches still group together.\n\n /**\n * Sets the material and derives the shader key from it, falling back to the\n * material itself when no shader-state interface is resolved yet; that key is\n * both the validity test and the primary bin/sort key, so effect-equal batches\n * still group together.\n */\n SetMaterial(material)\n {\n this.material = material ?? null;\n this.shader = material?.GetShaderStateInterface() ?? material ?? null;\n }\n\n /** Sets the outermost sort key; lower priorities sort first. */\n SetPriority(priority)\n {\n this.priority = priority >>> 0;\n }\n\n // Carbon: SetGeometry(vertexDecl, Tr2BufferAL& vb, stride, Tr2BufferAL& ib, indexStride).\n\n /**\n * Binds one vertex stream and an index buffer with their strides, clearing the\n * second stream.\n */\n SetGeometry(vertexDeclaration, vertexBuffer, vertexStride, indexBuffer, indexStride)\n {\n this.vertexDeclaration = vertexDeclaration >>> 0;\n this.vertexStreams[0] = vertexBuffer ?? null;\n this.vertexStreams[1] = null;\n this.stride[0] = vertexStride >>> 0;\n this.indexBuffer = indexBuffer ?? null;\n this.indexStride = indexStride >>> 0;\n }\n\n // Carbon overload taking suballocated-buffer allocations (the mesh path).\n\n /**\n * Binds geometry from suballocated buffer allocations, taking each\n * allocation's buffer and stride (Carbon's mesh path).\n */\n SetGeometryFromAllocations(vertexDeclaration, vertexAllocation, indexAllocation)\n {\n this.SetGeometry(\n vertexDeclaration,\n AllocationBuffer(vertexAllocation),\n AllocationStride(vertexAllocation),\n AllocationBuffer(indexAllocation),\n AllocationStride(indexAllocation)\n );\n }\n\n // Carbon two-stream allocation overload.\n\n /**\n * Binds a two-stream allocation set; the second allocation becomes vertex\n * stream 1.\n */\n SetGeometryFromAllocations2(vertexDeclaration, vertexAllocation1, vertexAllocation2, indexAllocation)\n {\n this.SetGeometryFromAllocations(vertexDeclaration, vertexAllocation1, indexAllocation);\n this.vertexStreams[1] = AllocationBuffer(vertexAllocation2);\n this.stride[1] = AllocationStride(vertexAllocation2);\n }\n\n // Geometry binding: records the resource + mesh/area range. Resolving it into\n // buffers and draw arguments at dispatch is not ported yet.\n\n /**\n * GPU-free geometry binding: records the geometry resource plus the mesh and\n * area range for the engine to resolve into realized buffers and draw\n * arguments at dispatch.\n */\n SetGeometrySource(geometry, meshIndex, areaIndex, count, reversed, lod = null)\n {\n this.geometrySource = {\n geometry: geometry ?? null,\n meshIndex: meshIndex >>> 0,\n areaIndex: areaIndex | 0,\n count: count | 0,\n reversed: !!reversed,\n // The LOD the area belongs to, so the render context can realize its\n // allocations at submit and recompute the draw arguments against them.\n lod: lod ?? null\n };\n }\n\n /**\n * Sets the vertex-declaration key, which participates in both binning and\n * sorting.\n */\n SetVertexDeclaration(vertexDeclaration)\n {\n this.vertexDeclaration = vertexDeclaration >>> 0;\n }\n\n /** Binds one vertex stream slot and its stride. */\n SetStreamSource(index, vertexBuffer, vertexStride)\n {\n this.vertexStreams[index] = vertexBuffer ?? null;\n this.stride[index] = vertexStride >>> 0;\n }\n\n // Carbon spells this SetInidices (a typo in the C++ API); we use the corrected\n // name since both producer and consumer are ours.\n\n /**\n * Binds the index buffer and its stride; Carbon spells this SetInidices, a\n * typo corrected here because both producer and consumer are ours.\n */\n SetIndices(indexBuffer, indexStride)\n {\n this.indexBuffer = indexBuffer ?? null;\n this.indexStride = indexStride >>> 0;\n }\n\n /**\n * Sets the primitive topology; only TRIANGLELIST batches are eligible for GDPR\n * binning.\n */\n SetTopology(topology)\n {\n this.topology = topology;\n }\n\n /**\n * References the per-object payload the engine binds when dispatching this\n * batch; the batch borrows it and does not own it.\n */\n SetPerObjectData(objectData)\n {\n this.objectData = objectData ?? null;\n }\n\n /** Records the indexed instanced draw arguments verbatim. */\n SetDrawIndexedInstanced(indexCountPerInstance, instanceCount, startIndexLocation, baseVertexLocation, startInstanceLocation)\n {\n this.indexCountPerInstance = indexCountPerInstance >>> 0;\n this.instanceCount = instanceCount >>> 0;\n this.startIndexLocation = startIndexLocation >>> 0;\n this.baseVertexLocation = baseVertexLocation >>> 0;\n this.startInstanceLocation = startInstanceLocation >>> 0;\n }\n\n // Non-indexed draw: reuses indexCountPerInstance for the vertex count and\n // startIndexLocation for the start vertex; baseVertexLocation is left as is.\n\n /**\n * Records a non-indexed instanced draw, reusing indexCountPerInstance for the\n * vertex count and startIndexLocation for the start vertex; baseVertexLocation\n * is left untouched.\n */\n SetDrawInstanced(vertexCountPerInstance, instanceCount, startVertexLocation, startInstanceLocation)\n {\n this.indexCountPerInstance = vertexCountPerInstance >>> 0;\n this.instanceCount = instanceCount >>> 0;\n this.startIndexLocation = startVertexLocation >>> 0;\n this.startInstanceLocation = startInstanceLocation >>> 0;\n }\n\n /**\n * Sets the batch's rendering mode; note that Commit overwrites it with the\n * accumulator's own mode.\n */\n SetRenderingMode(mode)\n {\n this.renderingMode = mode;\n }\n\n // Carbon overloads SetPickingData(data) and SetPickingData(meshIndex, areaIndex).\n\n /**\n * Stores picking data either as a raw value or, when a second argument is\n * given, as the mesh index shifted above the low byte of the area index.\n */\n SetPickingData(a, b)\n {\n this.pickingData = (b === undefined) ? (a >>> 0) : (((a << 8) | (b & 0xff)) >>> 0);\n }\n\n // A batch is valid iff it has a shader (i.e. SetMaterial was called with a\n // material that exposed a shader-state interface). Invalid batches are dropped\n // silently at Commit time.\n\n /**\n * A batch is valid only once it has a shader, that is once SetMaterial\n * received a material; invalid batches are dropped silently at Commit.\n */\n IsValid()\n {\n return this.shader !== null && this.shader !== undefined;\n }\n\n // Carbon Tr2MeshBase.cpp:341-395 (the draw arguments inside\n // CreateGeometryBatch) and Tr2SuballocatedBuffer.cpp:212-215\n // (Allocation::GetStartIndex).\n //\n // THE ARITHMETIC LIVES HERE ONCE. Carbon replicates this expression in\n // Tr2InstancedMesh and at least eight further call sites that bypass\n // CreateGeometryBatch; that duplication is a defect this port declines to\n // inherit. Every producer calls resolveDrawArguments instead.\n //\n // A draw argument is neither wholly CPU-derivable nor wholly the engine's:\n //\n // primCount - pure geometry data (area primitive counts). CPU.\n // firstIndex - pure geometry data. CPU.\n // startIndex - firstIndex PLUS the index allocation's start index. The base\n // is a suballocation, which only a realizing engine knows.\n // baseVertex - the vertex allocation's offset / stride, which IS\n // GetStartIndex() hand-inlined (Tr2MeshBase.cpp:391).\n //\n // The two bases default to ZERO when nothing has realized the geometry, and\n // zero is the CORRECT answer for an engine that gives each mesh its own\n // buffers rather than suballocating from a shared one - which is what ccpwgl\n // does and what a first WebGL implementation naturally does. A suballocating\n // engine writes its allocation into the resource and the same expression\n // yields the pooled bases. Trinity never sees a GPU handle: it asks the\n // allocation for two integers.\n //\n // Carbon gates the BATCH on lod->m_allocationsValid, because in Carbon an\n // unbuilt draw cannot exist. Here the allocations are not built yet, so an unbuilt\n // LOD is normal and the flags gate the DRAW ARGUMENTS instead: collection\n // still emits the geometry-source descriptor.\n //\n // LOD selection and the primitive-count sum are NOT here. Carbon declares\n // both beside TriGeometryRes (Resources/TriGeometryRes.h:202/:242), which\n // the runtime resource layer owns.\n\n /**\n * Carbon's indexed draw arguments for one mesh area of one LOD, or null when\n * the area contributes no primitives or a reversed draw has no reversed\n * indices - both of which are Carbon's \"emit no batch\" answers.\n *\n * `reversed` is the already-resolved winding for this draw, which Carbon\n * computes as `area->GetReversed() != reverseWinding` at the call site.\n */\n static resolveDrawArguments(lod, areaIndex, areaCount, reversed = false)\n {\n if (!lod) return null;\n\n // Carbon clamps both to zero before use (Tr2MeshBase.cpp:356).\n const index = Math.max(0, areaIndex | 0);\n const count = Math.max(0, areaCount | 0);\n\n const primitiveCount = TriGeometryRes.getPrimitiveCount(lod, index, count);\n\n if (!primitiveCount) return null;\n\n if (reversed && lod.reversedIndicesValid === false) return null;\n\n // Not `area.firstIndex` directly: a CMF-shaped LOD writes the area start as\n // a first TRIANGLE, and the geometry layer owns that conversion.\n const firstIndex = TriGeometryRes.getAreaFirstIndex(lod.areas?.[index]);\n\n // Carbon binds the FORWARD index allocation on both paths and only reads\n // the reversed allocation for the start index (Tr2MeshBase.cpp:371/375).\n // That works because both live in one pool at one stride; an engine that\n // separates them must bind the one this start index belongs to.\n const indices = reversed ? lod.reversedIndexAllocation : lod.indexAllocation;\n\n const startIndexLocation = reversed\n ? Tr2RenderBatch.startIndexOf(indices) + TriGeometryRes.getLodPrimitiveCount(lod) * 3 - firstIndex - primitiveCount * 3\n : Tr2RenderBatch.startIndexOf(indices) + firstIndex;\n\n return {\n indexCountPerInstance: primitiveCount * 3,\n instanceCount: 1,\n startIndexLocation,\n baseVertexLocation: Tr2RenderBatch.startIndexOf(lod.vertexAllocation),\n startInstanceLocation: 0\n };\n }\n\n /**\n * The start index of a realized suballocation, or zero when the geometry is\n * unrealized or the engine allocates per mesh rather than from a shared\n * buffer; Carbon reads Allocation::GetStartIndex.\n */\n static startIndexOf(allocation)\n {\n if (!allocation) return 0;\n\n if (typeof allocation.GetStartIndex === \"function\")\n {\n return allocation.GetStartIndex() >>> 0;\n }\n\n // GetStartIndex() IS offset / stride; Carbon hand-inlines exactly this for\n // the base vertex (Tr2MeshBase.cpp:391).\n const stride = AllocationStride(allocation);\n\n if (!stride) return 0;\n\n const offset = typeof allocation.GetOffset === \"function\"\n ? allocation.GetOffset()\n : allocation.offset ?? 0;\n\n return (offset / stride) >>> 0;\n }\n}\n\n// Two batches can share a single state-set (one bin/GDPR group) iff all of these\n// match. Note: priority, material and topology are intentionally NOT compared\n// here (faithful to Carbon CanBeBinned).\n\n/**\n * Whether two batches can share one state-set: shader, vertex declaration, index\n * stride, both vertex streams and rendering mode must match, while priority,\n * material and topology are deliberately not compared (faithful to Carbon).\n */\nexport function CanBeBinned(batch1, batch2)\n{\n return batch1.shader === batch2.shader\n && batch1.vertexDeclaration === batch2.vertexDeclaration\n && batch1.indexStride === batch2.indexStride\n && batch1.vertexStreams[0] === batch2.vertexStreams[0]\n && batch1.vertexStreams[1] === batch2.vertexStreams[1]\n && batch1.renderingMode === batch2.renderingMode;\n}\n\n// JS comparator (negative/zero/positive) reproducing Carbon Compare's strict-weak\n// ordering: priority, shader, vertexDeclaration, indexStride, stream0, stream1,\n// renderingMode. Pointer identity is replaced by a stable per-reference order id.\n\n/**\n * Strict-weak comparator reproducing Carbon's batch ordering - priority, shader,\n * vertex declaration, index stride, stream 0, stream 1, rendering mode - with\n * pointer identity replaced by stable order ids.\n */\nexport function CompareBatches(batch1, batch2)\n{\n if (batch1.priority !== batch2.priority) return batch1.priority - batch2.priority;\n\n const shaderOrder = OrderOf(batch1.shader) - OrderOf(batch2.shader);\n if (shaderOrder !== 0) return shaderOrder;\n\n if (batch1.vertexDeclaration !== batch2.vertexDeclaration) return batch1.vertexDeclaration - batch2.vertexDeclaration;\n if (batch1.indexStride !== batch2.indexStride) return batch1.indexStride - batch2.indexStride;\n\n const stream0Order = OrderOf(batch1.vertexStreams[0]) - OrderOf(batch2.vertexStreams[0]);\n if (stream0Order !== 0) return stream0Order;\n\n const stream1Order = OrderOf(batch1.vertexStreams[1]) - OrderOf(batch2.vertexStreams[1]);\n if (stream1Order !== 0) return stream1Order;\n\n return batch1.renderingMode - batch2.renderingMode;\n}\n\n// Sorts a batch vector and writes each bin-run's length onto the run's leading\n// batch (groupCount). Mirrors Tr2GdprBatchFullPartition. JS Array.sort is stable,\n// so the \"full\" and \"stable\" partition variants are behaviourally identical here.\n\n/**\n * Sorts a batch vector and writes each bin-run's length onto that run's leading\n * batch groupCount, so dispatch can stride one state-set over several draws.\n */\nexport function Tr2GdprBatchFullPartition(batches)\n{\n PartitionBatchGroups(batches);\n}\n\n/**\n * Stable variant of the full partition, behaviourally identical here because JS\n * Array.sort is already stable.\n */\nexport function Tr2GdprBatchStableFullPartition(batches)\n{\n PartitionBatchGroups(batches);\n}\n\nfunction PartitionBatchGroups(batches)\n{\n if (batches.length === 0) return;\n\n batches.sort(CompareBatches);\n\n let first = 0;\n for (let current = 0; current < batches.length; current++)\n {\n if (!CanBeBinned(batches[first], batches[current]))\n {\n batches[first].groupCount = current - first;\n first = current;\n }\n }\n batches[first].groupCount = batches.length - first;\n}\n"],"names":["nextOrderId","orderIds","WeakMap","OrderOf","ref","undefined","Number","id","get","set","AllocationBuffer","allocation","GetBuffer","AllocationStride","GetStride","stride","Tr2RenderBatch","constructor","material","shader","vertexDeclaration","vertexStreams","indexBuffer","indexStride","geometrySource","objectData","renderingMode","RenderingMode","RM_ANY","topology","Topology","TOP_TRIANGLES","indexCountPerInstance","instanceCount","startIndexLocation","baseVertexLocation","startInstanceLocation","pickingData","depth","priority","groupCount","SetMaterial","GetShaderStateInterface","SetPriority","SetGeometry","vertexBuffer","vertexStride","SetGeometryFromAllocations","vertexAllocation","indexAllocation","SetGeometryFromAllocations2","vertexAllocation1","vertexAllocation2","SetGeometrySource","geometry","meshIndex","areaIndex","count","reversed","lod","SetVertexDeclaration","SetStreamSource","index","SetIndices","SetTopology","SetPerObjectData","SetDrawIndexedInstanced","SetDrawInstanced","vertexCountPerInstance","startVertexLocation","SetRenderingMode","mode","SetPickingData","a","b","IsValid","resolveDrawArguments","areaCount","Math","max","primitiveCount","TriGeometryRes","getPrimitiveCount","reversedIndicesValid","firstIndex","getAreaFirstIndex","areas","indices","reversedIndexAllocation","startIndexOf","getLodPrimitiveCount","GetStartIndex","offset","GetOffset","CanBeBinned","batch1","batch2","CompareBatches","shaderOrder","stream0Order","stream1Order","Tr2GdprBatchFullPartition","batches","PartitionBatchGroups","Tr2GdprBatchStableFullPartition","length","sort","first","current"],"mappings":"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"}
|