@carbonenginejs/runtime-trinity 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -243
- package/dist/controllers/CjsControllerExpressionProgram.js +157 -0
- package/dist/controllers/CjsControllerExpressionProgram.js.map +1 -1
- package/dist/controllers/ITr2ControllerAction.js +57 -0
- package/dist/controllers/ITr2ControllerAction.js.map +1 -1
- package/dist/controllers/Tr2ActionAnimateCurveSet.js +10 -0
- package/dist/controllers/Tr2ActionAnimateCurveSet.js.map +1 -1
- package/dist/controllers/Tr2ActionAnimateValue.js +26 -0
- package/dist/controllers/Tr2ActionAnimateValue.js.map +1 -1
- package/dist/controllers/Tr2ActionBindRTPC.js +11 -0
- package/dist/controllers/Tr2ActionBindRTPC.js.map +1 -1
- package/dist/controllers/Tr2ActionCallback.js +5 -0
- package/dist/controllers/Tr2ActionCallback.js.map +1 -1
- package/dist/controllers/Tr2ActionChildEffect.js +63 -0
- package/dist/controllers/Tr2ActionChildEffect.js.map +1 -1
- package/dist/controllers/Tr2ActionOverlay.js +68 -0
- package/dist/controllers/Tr2ActionOverlay.js.map +1 -1
- package/dist/controllers/Tr2ActionPlayCurveSet.js +16 -0
- package/dist/controllers/Tr2ActionPlayCurveSet.js.map +1 -1
- package/dist/controllers/Tr2ActionPlayMeshAnimation.js +29 -0
- package/dist/controllers/Tr2ActionPlayMeshAnimation.js.map +1 -1
- package/dist/controllers/Tr2ActionPlaySound.js +11 -0
- package/dist/controllers/Tr2ActionPlaySound.js.map +1 -1
- package/dist/controllers/Tr2ActionPython.js +11 -0
- package/dist/controllers/Tr2ActionPython.js.map +1 -1
- package/dist/controllers/Tr2ActionResetClipSphereCenter.js +17 -0
- package/dist/controllers/Tr2ActionResetClipSphereCenter.js.map +1 -1
- package/dist/controllers/Tr2ActionSetAttenuationScaling.js +5 -0
- package/dist/controllers/Tr2ActionSetAttenuationScaling.js.map +1 -1
- package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js +5 -0
- package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
- package/dist/controllers/Tr2ActionSetAudioSwitch.js +5 -0
- package/dist/controllers/Tr2ActionSetAudioSwitch.js.map +1 -1
- package/dist/controllers/Tr2ActionSetExternalControllerVariable.js +23 -0
- package/dist/controllers/Tr2ActionSetExternalControllerVariable.js.map +1 -1
- package/dist/controllers/Tr2ActionSetShaderOption.js +5 -0
- package/dist/controllers/Tr2ActionSetShaderOption.js.map +1 -1
- package/dist/controllers/Tr2ActionSetValue.js +35 -0
- package/dist/controllers/Tr2ActionSetValue.js.map +1 -1
- package/dist/controllers/Tr2ActionSpawnParticles.js +10 -0
- package/dist/controllers/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/controllers/Tr2BindingPoint.js +67 -0
- package/dist/controllers/Tr2BindingPoint.js.map +1 -1
- package/dist/controllers/Tr2Controller.js +37 -0
- package/dist/controllers/Tr2Controller.js.map +1 -1
- package/dist/controllers/Tr2ControllerEventHandler.js +10 -0
- package/dist/controllers/Tr2ControllerEventHandler.js.map +1 -1
- package/dist/controllers/Tr2ControllerExpression.js +17 -0
- package/dist/controllers/Tr2ControllerExpression.js.map +1 -1
- package/dist/controllers/Tr2ControllerFloatVariable.js +6 -0
- package/dist/controllers/Tr2ControllerFloatVariable.js.map +1 -1
- package/dist/controllers/Tr2ControllerReference.js +11 -0
- package/dist/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/controllers/Tr2StateMachine.js +17 -0
- package/dist/controllers/Tr2StateMachine.js.map +1 -1
- package/dist/controllers/Tr2StateMachineState.js +47 -0
- package/dist/controllers/Tr2StateMachineState.js.map +1 -1
- package/dist/controllers/Tr2StateMachineTransition.js +29 -0
- package/dist/controllers/Tr2StateMachineTransition.js.map +1 -1
- package/dist/controllers/Tr2SyncToAnimation.js +5 -0
- package/dist/controllers/Tr2SyncToAnimation.js.map +1 -1
- package/dist/controllers/Tr2TimelineController.js +61 -0
- package/dist/controllers/Tr2TimelineController.js.map +1 -1
- package/dist/controllers/contracts.js +24 -1
- package/dist/controllers/contracts.js.map +1 -1
- package/dist/controllers/index.js +1 -1
- package/dist/curves/CjsGrannyCurves.js +150 -0
- package/dist/curves/CjsGrannyCurves.js.map +1 -1
- package/dist/curves/Tr2BoneMatrixCurve.js +23 -0
- package/dist/curves/Tr2BoneMatrixCurve.js.map +1 -1
- package/dist/curves/Tr2CameraFollowCurveKey.js +6 -0
- package/dist/curves/Tr2CameraFollowCurveKey.js.map +1 -1
- package/dist/curves/Tr2CurveColor.js +6 -0
- package/dist/curves/Tr2CurveColor.js.map +1 -1
- package/dist/curves/Tr2CurveColorMixer.js +6 -0
- package/dist/curves/Tr2CurveColorMixer.js.map +1 -1
- package/dist/curves/Tr2CurveCombiner.js +5 -0
- package/dist/curves/Tr2CurveCombiner.js.map +1 -1
- package/dist/curves/Tr2CurveConstant.js +16 -0
- package/dist/curves/Tr2CurveConstant.js.map +1 -1
- package/dist/curves/Tr2CurveEulerRotation.js +5 -0
- package/dist/curves/Tr2CurveEulerRotation.js.map +1 -1
- package/dist/curves/Tr2CurveEulerRotationExpression.js +66 -0
- package/dist/curves/Tr2CurveEulerRotationExpression.js.map +1 -1
- package/dist/curves/Tr2CurveQuaternion.js +5 -0
- package/dist/curves/Tr2CurveQuaternion.js.map +1 -1
- package/dist/curves/Tr2CurveQuaternionKey.js +5 -0
- package/dist/curves/Tr2CurveQuaternionKey.js.map +1 -1
- package/dist/curves/Tr2CurveRandomAxisRotation.js +28 -0
- package/dist/curves/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/curves/Tr2CurveScalar.js +35 -0
- package/dist/curves/Tr2CurveScalar.js.map +1 -1
- package/dist/curves/Tr2CurveScalarExpression.js +11 -0
- package/dist/curves/Tr2CurveScalarExpression.js.map +1 -1
- package/dist/curves/Tr2CurveScalarKey.js +6 -0
- package/dist/curves/Tr2CurveScalarKey.js.map +1 -1
- package/dist/curves/Tr2CurveSetRange.js +5 -0
- package/dist/curves/Tr2CurveSetRange.js.map +1 -1
- package/dist/curves/Tr2CurveVector2.js +5 -0
- package/dist/curves/Tr2CurveVector2.js.map +1 -1
- package/dist/curves/Tr2CurveVector3.js +5 -0
- package/dist/curves/Tr2CurveVector3.js.map +1 -1
- package/dist/curves/Tr2CurveVector3Expression.js +71 -0
- package/dist/curves/Tr2CurveVector3Expression.js.map +1 -1
- package/dist/curves/Tr2CurveVector3Lerp.js +6 -0
- package/dist/curves/Tr2CurveVector3Lerp.js.map +1 -1
- package/dist/curves/Tr2DistanceTracker.js +6 -0
- package/dist/curves/Tr2DistanceTracker.js.map +1 -1
- package/dist/curves/Tr2FollowCurve.js +6 -0
- package/dist/curves/Tr2FollowCurve.js.map +1 -1
- package/dist/curves/Tr2GrannyEventTrack.js +5 -0
- package/dist/curves/Tr2GrannyEventTrack.js.map +1 -1
- package/dist/curves/Tr2GrannyTrack.js +6 -0
- package/dist/curves/Tr2GrannyTrack.js.map +1 -1
- package/dist/curves/Tr2GrannyTransformTrack.js +6 -0
- package/dist/curves/Tr2GrannyTransformTrack.js.map +1 -1
- package/dist/curves/Tr2GrannyVectorTrack.js +5 -0
- package/dist/curves/Tr2GrannyVectorTrack.js.map +1 -1
- package/dist/curves/Tr2MatrixKey.js +5 -0
- package/dist/curves/Tr2MatrixKey.js.map +1 -1
- package/dist/curves/Tr2ObjectFollowCurveKey.js +6 -0
- package/dist/curves/Tr2ObjectFollowCurveKey.js.map +1 -1
- package/dist/curves/Tr2QuaternionLerpCurve.js +6 -0
- package/dist/curves/Tr2QuaternionLerpCurve.js.map +1 -1
- package/dist/curves/Tr2RotationAdapter.js +6 -0
- package/dist/curves/Tr2RotationAdapter.js.map +1 -1
- package/dist/curves/Tr2ScalarExprKey.js +18 -0
- package/dist/curves/Tr2ScalarExprKey.js.map +1 -1
- package/dist/curves/Tr2ScalarExprKeyCurve.js +23 -0
- package/dist/curves/Tr2ScalarExprKeyCurve.js.map +1 -1
- package/dist/curves/Tr2ScalarFader.js +11 -0
- package/dist/curves/Tr2ScalarFader.js.map +1 -1
- package/dist/curves/Tr2TranslationAdapter.js +6 -0
- package/dist/curves/Tr2TranslationAdapter.js.map +1 -1
- package/dist/curves/TriColorSequencer.js +6 -0
- package/dist/curves/TriColorSequencer.js.map +1 -1
- package/dist/curves/TriCurveSet.js +23 -0
- package/dist/curves/TriCurveSet.js.map +1 -1
- package/dist/curves/TriEventCurve.js +23 -0
- package/dist/curves/TriEventCurve.js.map +1 -1
- package/dist/curves/TriEventKey.js +5 -0
- package/dist/curves/TriEventKey.js.map +1 -1
- package/dist/curves/TriPerlinCurve.js +30 -0
- package/dist/curves/TriPerlinCurve.js.map +1 -1
- package/dist/curves/TriVectorSequencer.js +6 -0
- package/dist/curves/TriVectorSequencer.js.map +1 -1
- package/dist/eve/AudioGameObject.js +89 -1
- package/dist/eve/AudioGameObject.js.map +1 -1
- package/dist/eve/BackAndForthData.js +7 -0
- package/dist/eve/BackAndForthData.js.map +1 -1
- package/dist/eve/CjsDistributionRandom.js +6 -0
- package/dist/eve/CjsDistributionRandom.js.map +1 -1
- package/dist/eve/CjsEveThrottleableState.js +11 -0
- package/dist/eve/CjsEveThrottleableState.js.map +1 -1
- package/dist/eve/EveChildUpdateParams.js +7 -0
- package/dist/eve/EveChildUpdateParams.js.map +1 -1
- package/dist/eve/EveComponentTypes.js.map +1 -1
- package/dist/eve/EveCustomMask.js +58 -27
- package/dist/eve/EveCustomMask.js.map +1 -1
- package/dist/eve/EveDistanceField.js +84 -0
- package/dist/eve/EveDistanceField.js.map +1 -1
- package/dist/eve/EveEntity.js +138 -0
- package/dist/eve/EveEntity.js.map +1 -0
- package/dist/eve/EveImpactOverlay.js +61 -0
- package/dist/eve/EveImpactOverlay.js.map +1 -1
- package/dist/eve/EveLODHelper.js +17 -13
- package/dist/eve/EveLODHelper.js.map +1 -1
- package/dist/eve/EveLineData.js +2 -0
- package/dist/eve/EveLineData.js.map +1 -1
- package/dist/eve/EveThrottleable.js +11 -0
- package/dist/eve/EveThrottleable.js.map +1 -1
- package/dist/eve/FollowASplineData.js +7 -0
- package/dist/eve/FollowASplineData.js.map +1 -1
- package/dist/eve/FormationData.js +6 -0
- package/dist/eve/FormationData.js.map +1 -1
- package/dist/eve/InertiaData.js +7 -0
- package/dist/eve/InertiaData.js.map +1 -1
- package/dist/eve/PlacementDataWithIdentifier.js +7 -0
- package/dist/eve/PlacementDataWithIdentifier.js.map +1 -1
- package/dist/eve/PlayFXData.js +7 -0
- package/dist/eve/PlayFXData.js.map +1 -1
- package/dist/eve/SeekTargetData.js +7 -0
- package/dist/eve/SeekTargetData.js.map +1 -1
- package/dist/eve/{EveSpaceObjectAttachmentUtils.js → attachment/EveSpaceObjectAttachmentUtils.js} +11 -11
- package/dist/eve/attachment/EveSpaceObjectAttachmentUtils.js.map +1 -0
- package/dist/eve/attachment/banner/EveBannerItem.js +70 -0
- package/dist/eve/attachment/banner/EveBannerItem.js.map +1 -0
- package/dist/eve/{EveBannerLight.js → attachment/banner/EveBannerLight.js} +13 -2
- package/dist/eve/attachment/banner/EveBannerLight.js.map +1 -0
- package/dist/eve/attachment/banner/EveBannerSet.js +537 -0
- package/dist/eve/attachment/banner/EveBannerSet.js.map +1 -0
- package/dist/eve/{EveBoosterSet2.js → attachment/booster/EveBoosterSet2.js} +204 -35
- package/dist/eve/attachment/booster/EveBoosterSet2.js.map +1 -0
- package/dist/eve/{EveBoosterSet2Renderable.js → attachment/booster/EveBoosterSet2Renderable.js} +205 -12
- package/dist/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -0
- package/dist/eve/{EveTrailsSet.js → attachment/booster/EveTrailsSet.js} +49 -1
- package/dist/eve/attachment/booster/EveTrailsSet.js.map +1 -0
- package/dist/eve/attachment/decal/EveSpaceObjectDecal.js +512 -0
- package/dist/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -0
- package/dist/eve/{EveHazeSet.js → attachment/haze/EveHazeSet.js} +65 -6
- package/dist/eve/attachment/haze/EveHazeSet.js.map +1 -0
- package/dist/eve/attachment/haze/EveHazeSetItem.js +64 -0
- package/dist/eve/attachment/haze/EveHazeSetItem.js.map +1 -0
- package/dist/eve/{EveHazeSetLight.js → attachment/haze/EveHazeSetLight.js} +13 -2
- package/dist/eve/attachment/haze/EveHazeSetLight.js.map +1 -0
- package/dist/eve/attachment/itemSetBounds.js +131 -0
- package/dist/eve/attachment/itemSetBounds.js.map +1 -0
- package/dist/eve/{EvePlaneLight.js → attachment/plane/EvePlaneLight.js} +14 -2
- package/dist/eve/attachment/plane/EvePlaneLight.js.map +1 -0
- package/dist/eve/{EvePlaneSet.js → attachment/plane/EvePlaneSet.js} +119 -7
- package/dist/eve/attachment/plane/EvePlaneSet.js.map +1 -0
- package/dist/eve/attachment/plane/EvePlaneSetItem.js +72 -0
- package/dist/eve/attachment/plane/EvePlaneSetItem.js.map +1 -0
- package/dist/eve/{EveSpotlightLight.js → attachment/spotlight/EveSpotlightLight.js} +13 -2
- package/dist/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -0
- package/dist/eve/{EveSpotlightSet.js → attachment/spotlight/EveSpotlightSet.js} +86 -6
- package/dist/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -0
- package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js +61 -0
- package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -0
- package/dist/eve/{EveSpriteLight.js → attachment/sprite/EveSpriteLight.js} +14 -2
- package/dist/eve/attachment/sprite/EveSpriteLight.js.map +1 -0
- package/dist/eve/{EveSpriteLineSet.js → attachment/sprite/EveSpriteLineSet.js} +69 -7
- package/dist/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -0
- package/dist/eve/{EveSpriteLineSetItem.js → attachment/sprite/EveSpriteLineSetItem.js} +29 -4
- package/dist/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -0
- package/dist/eve/{EveSpriteSet.js → attachment/sprite/EveSpriteSet.js} +87 -8
- package/dist/eve/attachment/sprite/EveSpriteSet.js.map +1 -0
- package/dist/{generated/eve/attachment/sprites → eve/attachment/sprite}/EveSpriteSetItem.js +23 -26
- package/dist/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -0
- package/dist/eve/attachment/turrets/EveTurretFiringFX.js +184 -2
- package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
- package/dist/eve/attachment/turrets/EveTurretSet.js +236 -7
- package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/eve/attachment/turrets/EveTurretTarget.js +112 -0
- package/dist/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
- package/dist/eve/camera/EveCamera.js +644 -0
- package/dist/eve/camera/EveCamera.js.map +1 -0
- package/dist/eve/child/EveChildAudio.js +63 -0
- package/dist/eve/child/EveChildAudio.js.map +1 -1
- package/dist/eve/child/EveChildBehaviorSystem.js +412 -0
- package/dist/eve/child/EveChildBehaviorSystem.js.map +1 -0
- package/dist/{generated/eve → eve}/child/EveChildBulletStorm.js +41 -3
- package/dist/eve/child/EveChildBulletStorm.js.map +1 -0
- package/dist/eve/child/EveChildContainer.js +175 -16
- package/dist/eve/child/EveChildContainer.js.map +1 -1
- package/dist/eve/child/EveChildEffectPropagator.js +1 -1
- package/dist/eve/child/EveChildEffectPropagator.js.map +1 -1
- package/dist/eve/child/EveChildFogVolume.js +72 -0
- package/dist/eve/child/EveChildFogVolume.js.map +1 -1
- package/dist/eve/child/EveChildInheritProperties.js +17 -0
- package/dist/eve/child/EveChildInheritProperties.js.map +1 -1
- package/dist/eve/child/EveChildInstancedMeshes.js +211 -1
- package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
- package/dist/eve/child/EveChildLightingOverride.js +74 -0
- package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
- package/dist/{generated/eve → eve}/child/EveChildLink.js +17 -16
- package/dist/eve/child/EveChildLink.js.map +1 -0
- package/dist/eve/child/EveChildMesh.js +351 -105
- package/dist/eve/child/EveChildMesh.js.map +1 -1
- package/dist/eve/child/EveChildSpherePin.js +108 -0
- package/dist/eve/child/EveChildSpherePin.js.map +1 -0
- package/dist/eve/child/EveChildTransform.js +44 -1
- package/dist/eve/child/EveChildTransform.js.map +1 -1
- package/dist/eve/child/IEveSpaceObjectChild.js +5 -0
- package/dist/eve/child/IEveSpaceObjectChild.js.map +1 -1
- package/dist/eve/child/behaviors/CollisionAvoidance.js +112 -0
- package/dist/eve/child/behaviors/CollisionAvoidance.js.map +1 -0
- package/dist/eve/child/behaviors/InclusionVolume.js +131 -0
- package/dist/eve/child/behaviors/InclusionVolume.js.map +1 -0
- package/dist/eve/child/behaviors/Wander.js +99 -0
- package/dist/eve/child/behaviors/Wander.js.map +1 -0
- package/dist/{generated/eve → eve}/child/behaviors/enums.js +1 -1
- package/dist/eve/child/behaviors/enums.js.map +1 -0
- package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js +540 -0
- package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -0
- package/dist/eve/{ProcessLifetimeData.js → child/behaviors/lifecycle/ProcessLifetimeData.js} +8 -2
- package/dist/eve/child/behaviors/lifecycle/ProcessLifetimeData.js.map +1 -0
- package/dist/eve/child/behaviors/{SplineTunnel.js → tunnels/SplineTunnel.js} +9 -7
- package/dist/eve/child/behaviors/tunnels/SplineTunnel.js.map +1 -0
- package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js +211 -0
- package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -0
- package/dist/eve/child/behaviors/{SplineTunnelPoint.js → tunnels/SplineTunnelPoint.js} +3 -3
- package/dist/eve/child/behaviors/tunnels/SplineTunnelPoint.js.map +1 -0
- package/dist/eve/child/lineSetPaths/EveBezierCurve.js +65 -0
- package/dist/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
- package/dist/eve/child/lineSetPaths/EveCircle.js +63 -0
- package/dist/eve/child/lineSetPaths/EveCircle.js.map +1 -1
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierAttachToBone.js +24 -16
- package/dist/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -0
- package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js +5 -0
- package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js.map +1 -1
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierBillboard3D.js +22 -19
- package/dist/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -0
- package/dist/eve/child/modifiers/EveChildModifierBooster.js +6 -0
- package/dist/eve/child/modifiers/EveChildModifierBooster.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js +5 -0
- package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierHalo.js +5 -0
- package/dist/eve/child/modifiers/EveChildModifierHalo.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js +6 -0
- package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierSRT.js +5 -0
- package/dist/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierStretch.js +31 -17
- package/dist/eve/child/modifiers/EveChildModifierStretch.js.map +1 -0
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierTranslateWithCamera.js +16 -14
- package/dist/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/EveChildProceduralContainer.js +11 -4
- package/dist/eve/child/procedural/EveChildProceduralContainer.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMap.js +12 -12
- package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +6 -6
- package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCycling.js +12 -12
- package/dist/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCyclingParameter.js +8 -8
- package/dist/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandom.js +17 -17
- package/dist/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandomParameter.js +7 -7
- package/dist/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholdParameter.js +7 -7
- package/dist/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholds.js +17 -17
- package/dist/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/EveBaseDistributionMethod.js +132 -3
- package/dist/eve/distribution/EveBaseDistributionMethod.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +12 -1
- package/dist/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +9 -1
- package/dist/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +12 -1
- package/dist/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -0
- package/dist/eve/distribution/attributeModifiers/enums.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorLocators.js +16 -3
- package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +31 -3
- package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorVolume.js +34 -3
- package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +14 -2
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +13 -2
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +13 -2
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +13 -2
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerBurst.js +19 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +25 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerInterval.js +17 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +20 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +20 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +20 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -0
- package/dist/{generated/eve/effect → eve/effect/lensflare}/EveLensflare.js +44 -2
- package/dist/eve/effect/lensflare/EveLensflare.js.map +1 -0
- package/dist/eve/effect/multiEffect/EveMultiEffect.js +302 -0
- package/dist/eve/effect/multiEffect/EveMultiEffect.js.map +1 -0
- package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js +92 -0
- package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -0
- package/dist/eve/index.js +117 -47
- package/dist/eve/index.js.map +1 -1
- package/dist/eve/lights/CjsLightData.js +7 -0
- package/dist/eve/lights/CjsLightData.js.map +1 -1
- package/dist/eve/lights/Tr2Light.js +41 -0
- package/dist/eve/lights/Tr2Light.js.map +1 -1
- package/dist/eve/lights/Tr2PointLight.js +5 -0
- package/dist/eve/lights/Tr2PointLight.js.map +1 -1
- package/dist/eve/lights/Tr2SpotLight.js +5 -0
- package/dist/eve/lights/Tr2SpotLight.js.map +1 -1
- package/dist/eve/lights/Tr2TexturedPointLight.js +10 -0
- package/dist/eve/lights/Tr2TexturedPointLight.js.map +1 -1
- package/dist/eve/lights/lightConversion.js +29 -27
- package/dist/eve/lights/lightConversion.js.map +1 -1
- package/dist/eve/{EveLocator2.js → locator/EveLocator2.js} +20 -1
- package/dist/eve/locator/EveLocator2.js.map +1 -0
- package/dist/eve/{EveLocatorSets.js → locator/EveLocatorSets.js} +43 -1
- package/dist/eve/locator/EveLocatorSets.js.map +1 -0
- package/dist/eve/{Locator.js → locator/Locator.js} +6 -1
- package/dist/eve/locator/Locator.js.map +1 -0
- package/dist/eve/{LocatorData.js → locator/LocatorData.js} +3 -1
- package/dist/eve/locator/LocatorData.js.map +1 -0
- package/dist/eve/overlays/EveMeshOverlayEffect.js +208 -0
- package/dist/eve/overlays/EveMeshOverlayEffect.js.map +1 -0
- package/dist/eve/{EveParticleDirectForce.js → particles/force/EveParticleDirectForce.js} +5 -5
- package/dist/eve/particles/force/EveParticleDirectForce.js.map +1 -0
- package/dist/eve/{EveParticleDragForce.js → particles/force/EveParticleDragForce.js} +5 -5
- package/dist/eve/particles/force/EveParticleDragForce.js.map +1 -0
- package/dist/eve/{EveParticleSpring.js → particles/force/EveParticleSpring.js} +6 -6
- package/dist/eve/particles/force/EveParticleSpring.js.map +1 -0
- package/dist/{generated/eve/scene → eve/particles/static}/EveSceneStaticParticles.js +70 -36
- package/dist/eve/particles/static/EveSceneStaticParticles.js.map +1 -0
- package/dist/eve/perObjectData/childPerObjectRecords.js +90 -0
- package/dist/eve/perObjectData/childPerObjectRecords.js.map +1 -0
- package/dist/eve/renderable/stretch/CjsStretchRuntime.js +76 -0
- package/dist/eve/renderable/stretch/CjsStretchRuntime.js.map +1 -1
- package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +85 -1
- package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
- package/dist/eve/renderable/stretch/EveLocalPositionCurve.js +91 -0
- package/dist/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
- package/dist/eve/renderable/stretch/EveRemotePositionCurve.js +36 -0
- package/dist/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch.js +158 -9
- package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch2.js +121 -12
- package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch3.js +261 -8
- package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/eve/scene/EveSpaceScene.js +342 -6
- package/dist/eve/scene/EveSpaceScene.js.map +1 -1
- package/dist/{generated/eve/scene → eve/scene/components}/EveComponentCollection.js +24 -1
- package/dist/eve/scene/components/EveComponentCollection.js.map +1 -0
- package/dist/{generated/eve/scene → eve/scene/components}/EveComponentRegistry.js +74 -2
- package/dist/eve/scene/components/EveComponentRegistry.js.map +1 -0
- package/dist/eve/scene/picking/EvePickingContext.js +61 -0
- package/dist/eve/scene/picking/EvePickingContext.js.map +1 -0
- package/dist/eve/scene/shadows/TriShadowFrustum.js +70 -0
- package/dist/eve/scene/shadows/TriShadowFrustum.js.map +1 -0
- package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js +129 -0
- package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +19 -19
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +19 -19
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +12 -12
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +12 -12
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +30 -30
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +9 -9
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +23 -23
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -0
- package/dist/eve/smartLights/attributeModifiers/enums.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterBindingBase.js +26 -1
- package/dist/eve/socket/EveSocketParameterBindingBase.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterBool.js +17 -1
- package/dist/eve/socket/EveSocketParameterBool.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterColor.js +21 -5
- package/dist/eve/socket/EveSocketParameterColor.js.map +1 -0
- package/dist/eve/socket/EveSocketParameterFilePath.js +5 -5
- package/dist/eve/socket/EveSocketParameterFilePath.js.map +1 -1
- package/dist/{generated/eve → eve}/socket/EveSocketParameterFloat.js +17 -1
- package/dist/eve/socket/EveSocketParameterFloat.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterInt.js +17 -1
- package/dist/eve/socket/EveSocketParameterInt.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterString.js +42 -2
- package/dist/eve/socket/EveSocketParameterString.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterVector2.js +17 -1
- package/dist/eve/socket/EveSocketParameterVector2.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterVector3.js +17 -1
- package/dist/eve/socket/EveSocketParameterVector3.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterVector4.js +17 -1
- package/dist/eve/socket/EveSocketParameterVector4.js.map +1 -0
- package/dist/eve/spaceObject/EveEffectRoot2.js +58 -31
- package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
- package/dist/eve/spaceObject/EveMissile.js +49 -1
- package/dist/eve/spaceObject/EveMissile.js.map +1 -1
- package/dist/eve/spaceObject/EveMissileWarhead.js +100 -1
- package/dist/eve/spaceObject/EveMissileWarhead.js.map +1 -1
- package/dist/eve/spaceObject/EveMobile.js +104 -0
- package/dist/eve/spaceObject/EveMobile.js.map +1 -1
- package/dist/eve/spaceObject/EveRootTransform.js +17 -0
- package/dist/eve/spaceObject/EveRootTransform.js.map +1 -1
- package/dist/{generated/eve → eve}/spaceObject/EveShip2.js +32 -12
- package/dist/eve/spaceObject/EveShip2.js.map +1 -0
- package/dist/eve/spaceObject/EveSpaceObject2.js +726 -199
- package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/eve/spaceObject/EveTransform.js +143 -5
- package/dist/eve/spaceObject/EveTransform.js.map +1 -1
- package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js +70 -0
- package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -0
- package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js +19 -16
- package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js.map +1 -1
- package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +92 -0
- package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -0
- package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +158 -0
- package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -0
- package/dist/{generated/eve/spaceObject → eve/spaceObject/planet}/EvePlanet.js +2 -2
- package/dist/eve/spaceObject/planet/EvePlanet.js.map +1 -0
- package/dist/{generated/eve → eve}/spaceObject/swarm/EveSwarmRenderable.js +102 -64
- package/dist/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -0
- package/dist/eve/ui/EveEllipseDefinition.js +15 -0
- package/dist/eve/ui/EveEllipseDefinition.js.map +1 -1
- package/dist/eve/ui/EveEllipseSet.js +42 -0
- package/dist/eve/ui/EveEllipseSet.js.map +1 -1
- package/dist/{generated/eve → eve}/ui/EveSpherePin.js +76 -11
- package/dist/eve/ui/EveSpherePin.js.map +1 -0
- package/dist/eve/ui/EveSprite2dBracket.js +5 -0
- package/dist/eve/ui/EveSprite2dBracket.js.map +1 -1
- package/dist/eve/ui/EveUiObject.js +11 -0
- package/dist/eve/ui/EveUiObject.js.map +1 -1
- package/dist/{generated/eve/ui → eve/ui/lines}/EveLineSet.js +67 -6
- package/dist/eve/ui/lines/EveLineSet.js.map +1 -0
- package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +78 -0
- package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -0
- package/dist/{generated/eve/ui → eve/ui/tacticalOverlay}/EveTacticalTrails.js +22 -2
- package/dist/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -0
- package/dist/eve/virtualCamera/EveVirtualCamera.js +152 -0
- package/dist/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
- package/dist/eve/virtualCamera/EveVirtualCameraSystem.js +65 -0
- package/dist/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +17 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +19 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +17 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +29 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +15 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +38 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +17 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +18 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +20 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +20 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js +11 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js +14 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +16 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +20 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +36 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js +36 -0
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js.map +1 -1
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js +11 -0
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js.map +1 -1
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +37 -0
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
- package/dist/eve/volume/EveBoxVolume.js +59 -0
- package/dist/eve/volume/EveBoxVolume.js.map +1 -1
- package/dist/eve/volume/EveEllipsoidVolume.js +54 -0
- package/dist/eve/volume/EveEllipsoidVolume.js.map +1 -1
- package/dist/eve/volume/EveSphereVolume.js +34 -0
- package/dist/eve/volume/EveSphereVolume.js.map +1 -1
- package/dist/generated/eve/child/EveChildCloud2.js +138 -138
- package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/generated/eve/child/EveChildParticleSystem.js +10 -4
- package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/generated/eve/child/EveChildSocket.js +1 -1
- package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
- package/dist/generated/eve/child/behaviors/BackAndForth.js +14 -17
- package/dist/generated/eve/child/behaviors/BackAndForth.js.map +1 -1
- package/dist/generated/eve/child/behaviors/BehaviorGroup.js +2 -2
- package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
- package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js +26 -29
- package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js.map +1 -1
- package/dist/generated/eve/child/behaviors/FollowASpline.js +13 -17
- package/dist/generated/eve/child/behaviors/FollowASpline.js.map +1 -1
- package/dist/generated/eve/child/behaviors/PlayFX.js +14 -14
- package/dist/generated/eve/child/behaviors/PlayFX.js.map +1 -1
- package/dist/generated/eve/child/behaviors/SeekTarget.js +1 -1
- package/dist/generated/eve/child/behaviors/SeekTarget.js.map +1 -1
- package/dist/generated/eve/child/behaviors/index.js +0 -6
- package/dist/generated/eve/child/behaviors/index.js.map +1 -1
- package/dist/generated/eve/child/index.js +0 -23
- package/dist/generated/eve/child/index.js.map +1 -1
- package/dist/generated/eve/effect/index.js +0 -3
- package/dist/generated/eve/effect/index.js.map +1 -1
- package/dist/generated/eve/index.js +0 -88
- package/dist/generated/eve/index.js.map +1 -1
- package/dist/generated/eve/scene/index.js +0 -6
- package/dist/generated/eve/scene/index.js.map +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js +20 -20
- package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
- package/dist/generated/eve/smartLights/index.js +0 -8
- package/dist/generated/eve/smartLights/index.js.map +1 -1
- package/dist/generated/eve/spaceObject/index.js +0 -4
- package/dist/generated/eve/spaceObject/index.js.map +1 -1
- package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +11 -11
- package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
- package/dist/generated/eve/spaceObject/swarm/index.js +0 -1
- package/dist/generated/eve/spaceObject/swarm/index.js.map +1 -1
- package/dist/generated/eve/ui/index.js +0 -4
- package/dist/generated/eve/ui/index.js.map +1 -1
- package/dist/generated/index.js +0 -93
- package/dist/generated/index.js.map +1 -1
- package/dist/generated/trinityCore/index.js +0 -5
- package/dist/generated/trinityCore/index.js.map +1 -1
- package/dist/index.js +130 -155
- package/dist/index.js.map +1 -1
- package/dist/particle/Tr2GpuSharedEmitter.js +39 -0
- package/dist/particle/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/particle/Tr2GpuUniqueEmitter.js +5 -0
- package/dist/particle/Tr2GpuUniqueEmitter.js.map +1 -1
- package/dist/particle/Tr2ParticleAttractorForce.js +10 -0
- package/dist/particle/Tr2ParticleAttractorForce.js.map +1 -1
- package/dist/particle/Tr2ParticleDirectForce.js +7 -0
- package/dist/particle/Tr2ParticleDirectForce.js.map +1 -1
- package/dist/particle/Tr2ParticleDragForce.js +7 -0
- package/dist/particle/Tr2ParticleDragForce.js.map +1 -1
- package/dist/particle/Tr2ParticleElementDeclaration.js +5 -0
- package/dist/particle/Tr2ParticleElementDeclaration.js.map +1 -1
- package/dist/particle/Tr2ParticleFluidDragForce.js +10 -0
- package/dist/particle/Tr2ParticleFluidDragForce.js.map +1 -1
- package/dist/particle/Tr2ParticleSpring.js +10 -0
- package/dist/particle/Tr2ParticleSpring.js.map +1 -1
- package/dist/particle/Tr2ParticleVortexForce.js +10 -0
- package/dist/particle/Tr2ParticleVortexForce.js.map +1 -1
- package/dist/particle/particleElementBinding.js +12 -0
- package/dist/particle/particleElementBinding.js.map +1 -1
- package/dist/postProcess/Tr2PPBloomEffect.js +6 -0
- package/dist/postProcess/Tr2PPBloomEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPDepthOfFieldEffect.js +16 -0
- package/dist/postProcess/Tr2PPDepthOfFieldEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPGenericEffect.js +7 -0
- package/dist/postProcess/Tr2PPGenericEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPTaaEffect.js +10 -0
- package/dist/postProcess/Tr2PPTaaEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPTonemappingEffect.js +5 -0
- package/dist/postProcess/Tr2PPTonemappingEffect.js.map +1 -1
- package/dist/postProcess/Tr2PostProcess.js +5 -0
- package/dist/postProcess/Tr2PostProcess.js.map +1 -1
- package/dist/postProcess/Tr2PostProcess2.js +147 -0
- package/dist/postProcess/Tr2PostProcess2.js.map +1 -1
- package/dist/postProcess/Tr2PostProcessAttributes.js +89 -0
- package/dist/postProcess/Tr2PostProcessAttributes.js.map +1 -1
- package/dist/renderJob/Tr2RenderJobs.js +34 -0
- package/dist/renderJob/Tr2RenderJobs.js.map +1 -1
- package/dist/renderJob/TriRenderJob.js +59 -0
- package/dist/renderJob/TriRenderJob.js.map +1 -1
- package/dist/renderJob/TriRenderStep.js +20 -0
- package/dist/renderJob/TriRenderStep.js.map +1 -1
- package/dist/renderJob/TriStepClear.js +18 -0
- package/dist/renderJob/TriStepClear.js.map +1 -1
- package/dist/renderJob/TriStepCopyRenderTarget.js +51 -0
- package/dist/renderJob/TriStepCopyRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepEnableWireframeMode.js +9 -0
- package/dist/renderJob/TriStepEnableWireframeMode.js.map +1 -1
- package/dist/renderJob/TriStepGenerateMipMaps.js +9 -0
- package/dist/renderJob/TriStepGenerateMipMaps.js.map +1 -1
- package/dist/renderJob/TriStepPopDepthStencil.js +6 -0
- package/dist/renderJob/TriStepPopDepthStencil.js.map +1 -1
- package/dist/renderJob/TriStepPopProjection.js +6 -0
- package/dist/renderJob/TriStepPopProjection.js.map +1 -1
- package/dist/renderJob/TriStepPopRenderTarget.js +12 -0
- package/dist/renderJob/TriStepPopRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepPopViewTransform.js +6 -0
- package/dist/renderJob/TriStepPopViewTransform.js.map +1 -1
- package/dist/renderJob/TriStepPopViewport.js +6 -0
- package/dist/renderJob/TriStepPopViewport.js.map +1 -1
- package/dist/renderJob/TriStepPresentSwapChain.js +12 -0
- package/dist/renderJob/TriStepPresentSwapChain.js.map +1 -1
- package/dist/renderJob/TriStepPushDepthStencil.js +17 -0
- package/dist/renderJob/TriStepPushDepthStencil.js.map +1 -1
- package/dist/renderJob/TriStepPushProjection.js +6 -0
- package/dist/renderJob/TriStepPushProjection.js.map +1 -1
- package/dist/renderJob/TriStepPushRenderTarget.js +9 -0
- package/dist/renderJob/TriStepPushRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepPushViewTransform.js +6 -0
- package/dist/renderJob/TriStepPushViewTransform.js.map +1 -1
- package/dist/renderJob/TriStepPushViewport.js +6 -0
- package/dist/renderJob/TriStepPushViewport.js.map +1 -1
- package/dist/renderJob/TriStepRemoteSync.js +17 -0
- package/dist/renderJob/TriStepRemoteSync.js.map +1 -1
- package/dist/renderJob/TriStepResolve.js +13 -0
- package/dist/renderJob/TriStepResolve.js.map +1 -1
- package/dist/renderJob/TriStepRunJob.js +12 -0
- package/dist/renderJob/TriStepRunJob.js.map +1 -1
- package/dist/renderJob/TriStepSetDepthStencil.js +12 -0
- package/dist/renderJob/TriStepSetDepthStencil.js.map +1 -1
- package/dist/renderJob/TriStepSetProjection.js +14 -0
- package/dist/renderJob/TriStepSetProjection.js.map +1 -1
- package/dist/renderJob/TriStepSetRenderState.js +20 -0
- package/dist/renderJob/TriStepSetRenderState.js.map +1 -1
- package/dist/renderJob/TriStepSetRenderTarget.js +12 -0
- package/dist/renderJob/TriStepSetRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepSetStdRndStates.js +18 -0
- package/dist/renderJob/TriStepSetStdRndStates.js.map +1 -1
- package/dist/renderJob/TriStepSetView.js +29 -2
- package/dist/renderJob/TriStepSetView.js.map +1 -1
- package/dist/renderJob/TriStepSetViewport.js +17 -0
- package/dist/renderJob/TriStepSetViewport.js.map +1 -1
- package/dist/renderJob/TriStepSetVisualizationMode.js +19 -0
- package/dist/renderJob/TriStepSetVisualizationMode.js.map +1 -1
- package/dist/shader/Tr2Effect.js +217 -2
- package/dist/shader/Tr2Effect.js.map +1 -1
- package/dist/shader/Tr2Material.js +41 -0
- package/dist/shader/Tr2Material.js.map +1 -1
- package/dist/shader/index.js +1 -11
- package/dist/shader/index.js.map +1 -1
- package/dist/shader/material/Tr2EffectLibraryParameters.js +7 -0
- package/dist/shader/material/Tr2EffectLibraryParameters.js.map +1 -1
- package/dist/shader/material/Tr2EffectPassParameters.js +23 -0
- package/dist/shader/material/Tr2EffectPassParameters.js.map +1 -1
- package/dist/shader/material/Tr2MaterialStageInput.js +15 -0
- package/dist/shader/material/Tr2MaterialStageInput.js.map +1 -1
- package/dist/shader/parameter/CjsParameter.js +94 -0
- package/dist/shader/parameter/CjsParameter.js.map +1 -1
- package/dist/shader/parameter/CjsVectorParameter.js +20 -0
- package/dist/shader/parameter/CjsVectorParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2FloatParameter.js +53 -0
- package/dist/shader/parameter/Tr2FloatParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2GeometryBufferParameter.js +39 -0
- package/dist/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Matrix4Parameter.js +54 -0
- package/dist/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
- package/dist/shader/parameter/Tr2RuntimeTextureParameter.js +54 -0
- package/dist/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2TextureAnimationParameter.js +35 -0
- package/dist/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Vector2Parameter.js +86 -0
- package/dist/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Vector3Parameter.js +95 -0
- package/dist/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Vector4Parameter.js +105 -0
- package/dist/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
- package/dist/shader/parameter/TriFloatArrayParameter.js +26 -0
- package/dist/shader/parameter/TriFloatArrayParameter.js.map +1 -1
- package/dist/shader/parameter/TriTextureParameter.js +84 -0
- package/dist/shader/parameter/TriTextureParameter.js.map +1 -1
- package/dist/shader/parameter/TriTransformParameter.js +2 -0
- package/dist/shader/parameter/TriTransformParameter.js.map +1 -1
- package/dist/shader/parameter/TriVariableParameter.js +38 -0
- package/dist/shader/parameter/TriVariableParameter.js.map +1 -1
- package/dist/shader/parameter/TriVector4.js +2 -0
- package/dist/shader/parameter/TriVector4.js.map +1 -1
- package/dist/shader/reflection/Tr2ShaderOption.js +6 -1
- package/dist/shader/reflection/Tr2ShaderOption.js.map +1 -1
- package/dist/shader/support/CjsVariableStore.js +140 -0
- package/dist/shader/support/CjsVariableStore.js.map +1 -1
- package/dist/shader/support/Tr2ShaderBuffer.js +15 -0
- package/dist/shader/support/Tr2ShaderBuffer.js.map +1 -1
- package/dist/trinityCore/CjsBatchManager.js +62 -2
- package/dist/trinityCore/CjsBatchManager.js.map +1 -1
- package/dist/trinityCore/GrannyBoneOffset.js +51 -0
- package/dist/trinityCore/GrannyBoneOffset.js.map +1 -1
- package/dist/trinityCore/ITriRenderBatchAccumulator.js +65 -3
- package/dist/trinityCore/ITriRenderBatchAccumulator.js.map +1 -1
- package/dist/trinityCore/Tr2DirectInstanceData.js +19 -0
- package/dist/trinityCore/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinityCore/Tr2ExpressionTermInfo.js +21 -0
- package/dist/trinityCore/Tr2ExpressionTermInfo.js.map +1 -1
- package/dist/trinityCore/Tr2GpuBuffer.js +5 -0
- package/dist/trinityCore/Tr2GpuBuffer.js.map +1 -1
- package/dist/{generated/trinityCore → trinityCore}/Tr2GrannyAnimation.js +137 -8
- package/dist/trinityCore/Tr2GrannyAnimation.js.map +1 -0
- package/dist/trinityCore/Tr2InstancedMesh.js +52 -0
- package/dist/trinityCore/Tr2InstancedMesh.js.map +1 -1
- package/dist/trinityCore/Tr2MaterialParameterStore.js +5 -0
- package/dist/trinityCore/Tr2MaterialParameterStore.js.map +1 -1
- package/dist/trinityCore/Tr2Mesh.js +37 -0
- package/dist/trinityCore/Tr2Mesh.js.map +1 -1
- package/dist/trinityCore/Tr2MeshArea.js +78 -0
- package/dist/trinityCore/Tr2MeshArea.js.map +1 -1
- package/dist/trinityCore/Tr2MeshBase.js +98 -2
- package/dist/trinityCore/Tr2MeshBase.js.map +1 -1
- package/dist/trinityCore/Tr2PerObjectData.js +10 -0
- package/dist/trinityCore/Tr2PerObjectData.js.map +1 -1
- package/dist/trinityCore/Tr2PickType.js +33 -0
- package/dist/trinityCore/Tr2PickType.js.map +1 -0
- package/dist/trinityCore/Tr2RenderBatch.js +137 -0
- package/dist/trinityCore/Tr2RenderBatch.js.map +1 -1
- package/dist/trinityCore/Tr2RenderContext.js +271 -0
- package/dist/trinityCore/Tr2RenderContext.js.map +1 -1
- package/dist/trinityCore/Tr2RuntimeInstanceData.js +179 -0
- package/dist/trinityCore/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinityCore/Tr2ShLightingManager.js +397 -0
- package/dist/trinityCore/Tr2ShLightingManager.js.map +1 -0
- package/dist/trinityCore/Tr2VariableStore.js +26 -0
- package/dist/trinityCore/Tr2VariableStore.js.map +1 -1
- package/dist/trinityCore/Tr2VisibilityResults.js +5 -0
- package/dist/trinityCore/Tr2VisibilityResults.js.map +1 -1
- package/dist/trinityCore/TriDevice.js +5 -0
- package/dist/trinityCore/TriDevice.js.map +1 -1
- package/dist/trinityCore/TriFrustum.js +21 -14
- package/dist/trinityCore/TriFrustum.js.map +1 -1
- package/dist/trinityCore/TriObserverLocal.js +43 -0
- package/dist/trinityCore/TriObserverLocal.js.map +1 -1
- package/dist/trinityCore/TriProjection.js +86 -32
- package/dist/trinityCore/TriProjection.js.map +1 -1
- package/dist/trinityCore/TriRect.js +12 -0
- package/dist/trinityCore/TriRect.js.map +1 -1
- package/dist/trinityCore/TriRenderBatchAccumulator.js +46 -0
- package/dist/trinityCore/TriRenderBatchAccumulator.js.map +1 -1
- package/dist/trinityCore/TriRenderBatchMap.js +39 -2
- package/dist/trinityCore/TriRenderBatchMap.js.map +1 -1
- package/dist/trinityCore/TriSettings.js +38 -0
- package/dist/trinityCore/TriSettings.js.map +1 -1
- package/dist/trinityCore/TriVariable.js +30 -0
- package/dist/trinityCore/TriVariable.js.map +1 -1
- package/dist/trinityCore/TriView.js +16 -1
- package/dist/trinityCore/TriView.js.map +1 -1
- package/dist/trinityCore/TriViewport.js +12 -0
- package/dist/trinityCore/TriViewport.js.map +1 -1
- package/dist/trinityCore/{Tr2BindingVector3.js → binding/Tr2BindingVector3.js} +1 -1
- package/dist/trinityCore/binding/Tr2BindingVector3.js.map +1 -0
- package/dist/trinityCore/binding/Tr2DynamicBinding.js +266 -0
- package/dist/trinityCore/binding/Tr2DynamicBinding.js.map +1 -0
- package/dist/trinityCore/binding/Tr2ExternalParameter.js +392 -0
- package/dist/trinityCore/binding/Tr2ExternalParameter.js.map +1 -0
- package/dist/trinityCore/{Tr2PyValueBinding.js → binding/Tr2PyValueBinding.js} +30 -6
- package/dist/trinityCore/binding/Tr2PyValueBinding.js.map +1 -0
- package/dist/trinityCore/binding/TriValueBinding.js +648 -0
- package/dist/trinityCore/binding/TriValueBinding.js.map +1 -0
- package/dist/trinityCore/index.js +11 -4
- package/dist/trinityCore/index.js.map +1 -1
- package/dist/trinityCore/pickRay.js +84 -0
- package/dist/trinityCore/pickRay.js.map +1 -0
- package/dist/trinityCore/rawData/CjsPerFrameLayouts.js +517 -0
- package/dist/trinityCore/rawData/CjsPerFrameLayouts.js.map +1 -0
- package/dist/trinityCore/rawData/CjsPerObjectLayouts.js +790 -0
- package/dist/trinityCore/rawData/CjsPerObjectLayouts.js.map +1 -0
- package/dist/trinityCore/rawData/RawData.js +323 -39
- package/dist/trinityCore/rawData/RawData.js.map +1 -1
- package/dist/trinityCore/rawData/TriPoolAllocator.js +357 -0
- package/dist/trinityCore/rawData/TriPoolAllocator.js.map +1 -0
- package/dist/trinityCore/rawData/constantLayout.js +175 -0
- package/dist/trinityCore/rawData/constantLayout.js.map +1 -0
- package/dist/utilities/Range.js +53 -0
- package/dist/utilities/Range.js.map +1 -1
- package/docs/README.md +88 -0
- package/docs/architecture.md +162 -0
- package/docs/concepts/eve-runtime-behavior.md +86 -0
- package/docs/concepts/generated-class-lifecycle.md +116 -0
- package/docs/reference/api.md +76 -0
- package/docs/reference/classes/eve-runtime.md +106 -0
- package/docs/reference/classes/trinity-core.md +26 -0
- package/docs/reference/implementation-status.md +104 -0
- package/docs/reference/main-semantic-extraction.md +104 -0
- package/package.json +34 -24
- package/dist/eve/DecalVSPerObjectData.js +0 -34
- package/dist/eve/DecalVSPerObjectData.js.map +0 -1
- package/dist/eve/EveBannerItem.js +0 -43
- package/dist/eve/EveBannerItem.js.map +0 -1
- package/dist/eve/EveBannerLight.js.map +0 -1
- package/dist/eve/EveBannerSet.js +0 -190
- package/dist/eve/EveBannerSet.js.map +0 -1
- package/dist/eve/EveBasicPerObjectData.js +0 -31
- package/dist/eve/EveBasicPerObjectData.js.map +0 -1
- package/dist/eve/EveBoosterSet2.js.map +0 -1
- package/dist/eve/EveBoosterSet2Renderable.js.map +0 -1
- package/dist/eve/EveChildSpherePinPerObjectData.js +0 -37
- package/dist/eve/EveChildSpherePinPerObjectData.js.map +0 -1
- package/dist/eve/EveHazeSet.js.map +0 -1
- package/dist/eve/EveHazeSetLight.js.map +0 -1
- package/dist/eve/EveLocator2.js.map +0 -1
- package/dist/eve/EveLocatorSets.js.map +0 -1
- package/dist/eve/EveParticleDirectForce.js.map +0 -1
- package/dist/eve/EveParticleDragForce.js.map +0 -1
- package/dist/eve/EveParticleSpring.js.map +0 -1
- package/dist/eve/EvePerObjectPSData.js +0 -29
- package/dist/eve/EvePerObjectPSData.js.map +0 -1
- package/dist/eve/EvePerObjectVSData.js +0 -29
- package/dist/eve/EvePerObjectVSData.js.map +0 -1
- package/dist/eve/EvePlaneLight.js.map +0 -1
- package/dist/eve/EvePlaneSet.js.map +0 -1
- package/dist/eve/EvePlaneSetItem.js +0 -45
- package/dist/eve/EvePlaneSetItem.js.map +0 -1
- package/dist/eve/EveSpaceObjectAttachmentUtils.js.map +0 -1
- package/dist/eve/EveSpaceObjectDecal.js +0 -150
- package/dist/eve/EveSpaceObjectDecal.js.map +0 -1
- package/dist/eve/EveSpaceObjectPSData.js +0 -73
- package/dist/eve/EveSpaceObjectPSData.js.map +0 -1
- package/dist/eve/EveSpaceObjectVSData.js +0 -79
- package/dist/eve/EveSpaceObjectVSData.js.map +0 -1
- package/dist/eve/EveSpacePerObjectData.js +0 -97
- package/dist/eve/EveSpacePerObjectData.js.map +0 -1
- package/dist/eve/EveSpherePinPerObjectData.js +0 -37
- package/dist/eve/EveSpherePinPerObjectData.js.map +0 -1
- package/dist/eve/EveSpotlightLight.js.map +0 -1
- package/dist/eve/EveSpotlightSet.js.map +0 -1
- package/dist/eve/EveSpriteLight.js.map +0 -1
- package/dist/eve/EveSpriteLineSet.js.map +0 -1
- package/dist/eve/EveSpriteLineSetItem.js.map +0 -1
- package/dist/eve/EveSpriteSet.js.map +0 -1
- package/dist/eve/EveTrailsSet.js.map +0 -1
- package/dist/eve/Locator.js.map +0 -1
- package/dist/eve/LocatorData.js.map +0 -1
- package/dist/eve/ProcessLifetimeData.js.map +0 -1
- package/dist/eve/attachment/turrets/EveTurretSetPSData.js +0 -47
- package/dist/eve/attachment/turrets/EveTurretSetPSData.js.map +0 -1
- package/dist/eve/attachment/turrets/EveTurretSetVSData.js +0 -62
- package/dist/eve/attachment/turrets/EveTurretSetVSData.js.map +0 -1
- package/dist/eve/child/behaviors/SplineTunnel.js.map +0 -1
- package/dist/eve/child/behaviors/SplineTunnelPoint.js.map +0 -1
- package/dist/eve/perObjectData/DecalPSPerObjectData.js +0 -56
- package/dist/eve/perObjectData/DecalPSPerObjectData.js.map +0 -1
- package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js +0 -31
- package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js.map +0 -1
- package/dist/eve/perObjectData/EveTurretSetPerObjectData.js +0 -36
- package/dist/eve/perObjectData/EveTurretSetPerObjectData.js.map +0 -1
- package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js +0 -64
- package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js.map +0 -1
- package/dist/generated/eve/EveCamera.js +0 -264
- package/dist/generated/eve/EveCamera.js.map +0 -1
- package/dist/generated/eve/EveEntity.js +0 -81
- package/dist/generated/eve/EveEntity.js.map +0 -1
- package/dist/generated/eve/attachment/decal/index.js +0 -2
- package/dist/generated/eve/attachment/decal/index.js.map +0 -1
- package/dist/generated/eve/attachment/haze/EveHazeSetItem.js +0 -52
- package/dist/generated/eve/attachment/haze/EveHazeSetItem.js.map +0 -1
- package/dist/generated/eve/attachment/haze/index.js +0 -2
- package/dist/generated/eve/attachment/haze/index.js.map +0 -1
- package/dist/generated/eve/attachment/index.js +0 -5
- package/dist/generated/eve/attachment/index.js.map +0 -1
- package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js +0 -55
- package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js.map +0 -1
- package/dist/generated/eve/attachment/spotlights/index.js +0 -2
- package/dist/generated/eve/attachment/spotlights/index.js.map +0 -1
- package/dist/generated/eve/attachment/sprites/EveSpriteSetItem.js.map +0 -1
- package/dist/generated/eve/attachment/sprites/index.js +0 -2
- package/dist/generated/eve/attachment/sprites/index.js.map +0 -1
- package/dist/generated/eve/attachment/turrets/enums.js +0 -32
- package/dist/generated/eve/attachment/turrets/enums.js.map +0 -1
- package/dist/generated/eve/attachment/turrets/index.js +0 -2
- package/dist/generated/eve/attachment/turrets/index.js.map +0 -1
- package/dist/generated/eve/child/EveChildBehaviorSystem.js +0 -357
- package/dist/generated/eve/child/EveChildBehaviorSystem.js.map +0 -1
- package/dist/generated/eve/child/EveChildBulletStorm.js.map +0 -1
- package/dist/generated/eve/child/EveChildLink.js.map +0 -1
- package/dist/generated/eve/child/EveChildSpherePin.js +0 -54
- package/dist/generated/eve/child/EveChildSpherePin.js.map +0 -1
- package/dist/generated/eve/child/behaviors/CollisionAvoidance.js +0 -85
- package/dist/generated/eve/child/behaviors/CollisionAvoidance.js.map +0 -1
- package/dist/generated/eve/child/behaviors/InclusionVolume.js +0 -104
- package/dist/generated/eve/child/behaviors/InclusionVolume.js.map +0 -1
- package/dist/generated/eve/child/behaviors/ProcessLifetime.js +0 -458
- package/dist/generated/eve/child/behaviors/ProcessLifetime.js.map +0 -1
- package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js +0 -161
- package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js.map +0 -1
- package/dist/generated/eve/child/behaviors/Wander.js +0 -92
- package/dist/generated/eve/child/behaviors/Wander.js.map +0 -1
- package/dist/generated/eve/child/behaviors/enums.js.map +0 -1
- package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js.map +0 -1
- package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js.map +0 -1
- package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js.map +0 -1
- package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +0 -1
- package/dist/generated/eve/child/modifiers/index.js +0 -5
- package/dist/generated/eve/child/modifiers/index.js.map +0 -1
- package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +0 -1
- package/dist/generated/eve/child/procedural/index.js +0 -10
- package/dist/generated/eve/child/procedural/index.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/index.js +0 -9
- package/dist/generated/eve/child/procedural/selection/index.js.map +0 -1
- package/dist/generated/eve/distribution/EveBaseDistributionMethod.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/enums.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/index.js +0 -5
- package/dist/generated/eve/distribution/attributeModifiers/index.js.map +0 -1
- package/dist/generated/eve/distribution/index.js +0 -19
- package/dist/generated/eve/distribution/index.js.map +0 -1
- package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +0 -1
- package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +0 -1
- package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +0 -1
- package/dist/generated/eve/distribution/placement/index.js +0 -4
- package/dist/generated/eve/distribution/placement/index.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/index.js +0 -5
- package/dist/generated/eve/distribution/spawnModifiers/index.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/index.js +0 -7
- package/dist/generated/eve/distribution/spawners/index.js.map +0 -1
- package/dist/generated/eve/effect/EveLensflare.js.map +0 -1
- package/dist/generated/eve/effect/EveMultiEffect.js +0 -84
- package/dist/generated/eve/effect/EveMultiEffect.js.map +0 -1
- package/dist/generated/eve/effect/EveMultiEffectParameter.js +0 -45
- package/dist/generated/eve/effect/EveMultiEffectParameter.js.map +0 -1
- package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js +0 -47
- package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js.map +0 -1
- package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js +0 -63
- package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js.map +0 -1
- package/dist/generated/eve/fxAttributes/index.js +0 -3
- package/dist/generated/eve/fxAttributes/index.js.map +0 -1
- package/dist/generated/eve/overlays/EveMeshOverlayEffect.js +0 -58
- package/dist/generated/eve/overlays/EveMeshOverlayEffect.js.map +0 -1
- package/dist/generated/eve/overlays/index.js +0 -2
- package/dist/generated/eve/overlays/index.js.map +0 -1
- package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js +0 -66
- package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js.map +0 -1
- package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js +0 -39
- package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js.map +0 -1
- package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js +0 -34
- package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js.map +0 -1
- package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js +0 -32
- package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +0 -1
- package/dist/generated/eve/perObjectData/index.js +0 -5
- package/dist/generated/eve/perObjectData/index.js.map +0 -1
- package/dist/generated/eve/scene/EveComponentCollection.js.map +0 -1
- package/dist/generated/eve/scene/EveComponentRegistry.js.map +0 -1
- package/dist/generated/eve/scene/EvePickingContext.js +0 -43
- package/dist/generated/eve/scene/EvePickingContext.js.map +0 -1
- package/dist/generated/eve/scene/EveSceneStaticParticles.js.map +0 -1
- package/dist/generated/eve/scene/TriShadowFrustum.js +0 -83
- package/dist/generated/eve/scene/TriShadowFrustum.js.map +0 -1
- package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +0 -140
- package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/enums.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/index.js +0 -9
- package/dist/generated/eve/smartLights/attributeModifiers/index.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterBindingBase.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterBool.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterColor.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterFloat.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterInt.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterString.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterVector2.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterVector3.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterVector4.js.map +0 -1
- package/dist/generated/eve/socket/index.js +0 -10
- package/dist/generated/eve/socket/index.js.map +0 -1
- package/dist/generated/eve/spaceObject/EvePlanet.js.map +0 -1
- package/dist/generated/eve/spaceObject/EveShip2.js.map +0 -1
- package/dist/generated/eve/spaceObject/IEveSpaceObject2.js +0 -46
- package/dist/generated/eve/spaceObject/IEveSpaceObject2.js.map +0 -1
- package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +0 -1
- package/dist/generated/eve/ui/EveLineSet.js.map +0 -1
- package/dist/generated/eve/ui/EveSpherePin.js.map +0 -1
- package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js +0 -44
- package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js.map +0 -1
- package/dist/generated/eve/ui/EveTacticalTrails.js.map +0 -1
- package/dist/generated/trinityCore/Tr2DynamicBinding.js +0 -58
- package/dist/generated/trinityCore/Tr2DynamicBinding.js.map +0 -1
- package/dist/generated/trinityCore/Tr2ExternalParameter.js +0 -164
- package/dist/generated/trinityCore/Tr2ExternalParameter.js.map +0 -1
- package/dist/generated/trinityCore/Tr2GrannyAnimation.js.map +0 -1
- package/dist/generated/trinityCore/Tr2ShLightingManager.js +0 -48
- package/dist/generated/trinityCore/Tr2ShLightingManager.js.map +0 -1
- package/dist/generated/trinityCore/TriValueBinding.js +0 -249
- package/dist/generated/trinityCore/TriValueBinding.js.map +0 -1
- package/dist/shader/Tr2Shader.js +0 -150
- package/dist/shader/Tr2Shader.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectConstant.js +0 -61
- package/dist/shader/reflection/Tr2EffectConstant.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectDefine.js +0 -34
- package/dist/shader/reflection/Tr2EffectDefine.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectDescription.js +0 -34
- package/dist/shader/reflection/Tr2EffectDescription.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectLibrary.js +0 -61
- package/dist/shader/reflection/Tr2EffectLibrary.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectParameterAnnotation.js +0 -54
- package/dist/shader/reflection/Tr2EffectParameterAnnotation.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectResource.js +0 -63
- package/dist/shader/reflection/Tr2EffectResource.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectStageInput.js +0 -58
- package/dist/shader/reflection/Tr2EffectStageInput.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectTechnique.js +0 -40
- package/dist/shader/reflection/Tr2EffectTechnique.js.map +0 -1
- package/dist/shader/reflection/Tr2Pass.js +0 -46
- package/dist/shader/reflection/Tr2Pass.js.map +0 -1
- package/dist/shader/sampler/Tr2SamplerSetup.js +0 -34
- package/dist/shader/sampler/Tr2SamplerSetup.js.map +0 -1
- package/dist/trinityCore/Tr2BindingVector3.js.map +0 -1
- package/dist/trinityCore/Tr2PyValueBinding.js.map +0 -1
- package/dist/trinityCore/rawData/RawDataStore.js +0 -232
- package/dist/trinityCore/rawData/RawDataStore.js.map +0 -1
- /package/dist/{generated/eve → eve}/distribution/attributeModifiers/enums.js +0 -0
- /package/dist/{generated/eve → eve}/smartLights/attributeModifiers/enums.js +0 -0
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
import { RawDataType, RawData } from './RawData.js';
|
|
2
|
+
import { CjsPerObjectLayouts } from './CjsPerObjectLayouts.js';
|
|
3
|
+
|
|
4
|
+
// Factory + arena for RawData constant-data payloads.
|
|
5
|
+
//
|
|
6
|
+
// Named for Carbon TriPoolAllocator (TriPoolAllocator.h/.cpp): the same job,
|
|
7
|
+
// lifetime and per-frame Clear. Carbon bump-allocates with placement new and
|
|
8
|
+
// wholesale Clear()s at EndRenderContext (Tr2Renderer.cpp:1072-1081), which is
|
|
9
|
+
// exactly what Alloc/Reset do here. It also carries the struct-layout registry,
|
|
10
|
+
// which C++ gets free from the type system via Allocate<T>().
|
|
11
|
+
//
|
|
12
|
+
// A pool is PER-ENGINE (one CjsLibrary = one live backend). Structs are
|
|
13
|
+
// REGISTERED on the instance - registration resolves each struct's layout right
|
|
14
|
+
// then, so a struct that cannot be laid out fails loud at registration, naming
|
|
15
|
+
// it.
|
|
16
|
+
//
|
|
17
|
+
// TRINITY COMPUTES THE OFFSETS. This once required an engine-injected packer,
|
|
18
|
+
// on the premise that the physical layout is BACKEND-SPECIFIC. That premise is
|
|
19
|
+
// false for these buffers, verified 2026-07-28: every backend declares them as
|
|
20
|
+
// a flat array of vec4 - WGSL `array<vec4<f32>, N>`, GLSL `vec4 cbN[N]`, or a
|
|
21
|
+
// std140 block wrapping `vec4 data[N]` - and std140's stride for an array of
|
|
22
|
+
// vec4 is 16 bytes, identical to tight C++ packing. The std140 rules that DO
|
|
23
|
+
// diverge (vec3 padded to 16, scalar array stride) never engage, because there
|
|
24
|
+
// are no struct members to pad: the translated shader indexes the flat array
|
|
25
|
+
// and reassembles fields itself.
|
|
26
|
+
//
|
|
27
|
+
// Layouts resolve from two sources, in order:
|
|
28
|
+
//
|
|
29
|
+
// 1. CjsPerObjectLayouts, when the struct name is a Carbon struct. Those
|
|
30
|
+
// offsets are declared, not derived, because Carbon memcpy's the C++
|
|
31
|
+
// struct (EveSpaceObject2.cpp:1469-1483) and its members sit on float4
|
|
32
|
+
// boundaries - tight-packing a FLOAT member would drift from it.
|
|
33
|
+
// 2. tight packing of the supplied def, for an ad-hoc struct the catalog
|
|
34
|
+
// does not carry.
|
|
35
|
+
//
|
|
36
|
+
// Offsets are FLOAT offsets relative to one instance's slot (the same offset
|
|
37
|
+
// indexes the Float32 and Uint32 views).
|
|
38
|
+
//
|
|
39
|
+
// Allocation is an ARENA (bump), not a free-list:
|
|
40
|
+
// - Alloc(name) bumps a cursor and returns a view ("snip off what you need")
|
|
41
|
+
// into a RETAINED backing buffer - the buffer is NOT recreated per frame.
|
|
42
|
+
// - Reset() rewinds the cursor; every slot is freed at once, O(1); the
|
|
43
|
+
// chunks are kept and reused next frame.
|
|
44
|
+
// - There is no Unalloc: transient slots live until their batch dispatches,
|
|
45
|
+
// so Reset is the only free. Permanent per-object data is not Alloc'd - a
|
|
46
|
+
// static placeable constructs its own RawData and owns it across frames.
|
|
47
|
+
//
|
|
48
|
+
// Maps to Carbon: Alloc == accumulator.Allocate (Tr2Renderer::GetPoolAllocator,
|
|
49
|
+
// reset per frame). No clear-on-Alloc, so an unwritten field shows the previous
|
|
50
|
+
// tenant's bytes - that reproduces Carbon's "unwritten slots = allocator
|
|
51
|
+
// garbage" (declared defaults are re-applied on Alloc; everything else is
|
|
52
|
+
// write-what-you-rely-on).
|
|
53
|
+
//
|
|
54
|
+
// Design: PER-OBJECT-DATA-DESIGN-2026-07-24.md
|
|
55
|
+
|
|
56
|
+
/** Declared catalog type -> the encoder kind that writes its bytes. */
|
|
57
|
+
const CATALOG_ENCODINGS = {
|
|
58
|
+
[CjsPerObjectLayouts.Types.MATRIX4]: RawDataType.MATRIX,
|
|
59
|
+
[CjsPerObjectLayouts.Types.UINT32]: RawDataType.UINT,
|
|
60
|
+
[CjsPerObjectLayouts.Types.INT32]: RawDataType.INT
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* A catalog layout as a store field-def array.
|
|
65
|
+
*
|
|
66
|
+
* A default on an array field is repeated across every element: the store
|
|
67
|
+
* applies each default at a single offset, and Carbon's neutral for a slot
|
|
68
|
+
* (identity for an unused custom mask) applies to every slot, not just the
|
|
69
|
+
* first.
|
|
70
|
+
*/
|
|
71
|
+
function catalogDef(layout) {
|
|
72
|
+
const def = [];
|
|
73
|
+
for (const field of layout.fields.values()) {
|
|
74
|
+
let value = null;
|
|
75
|
+
if (field.default) {
|
|
76
|
+
value = field.count > 1 ? Array.from({
|
|
77
|
+
length: field.count
|
|
78
|
+
}, () => [...field.default]).flat() : [...field.default];
|
|
79
|
+
}
|
|
80
|
+
def.push({
|
|
81
|
+
name: field.name,
|
|
82
|
+
size: field.size,
|
|
83
|
+
elements: field.count,
|
|
84
|
+
encoding: CATALOG_ENCODINGS[field.type] ?? RawDataType.VECTOR,
|
|
85
|
+
default: value
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return def;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Carbon's declared layout for a struct, or null when the catalog omits it.
|
|
93
|
+
*/
|
|
94
|
+
function catalogLayout(structName) {
|
|
95
|
+
const layout = CjsPerObjectLayouts.Get(structName);
|
|
96
|
+
if (!layout) {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
const fields = {};
|
|
100
|
+
for (const field of layout.fields.values()) {
|
|
101
|
+
fields[field.name] = {
|
|
102
|
+
offset: field.offset,
|
|
103
|
+
size: field.size,
|
|
104
|
+
elements: field.count,
|
|
105
|
+
encoding: CATALOG_ENCODINGS[field.type] ?? RawDataType.VECTOR
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
fields,
|
|
110
|
+
stride: layout.stride
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Tight layout for an ad-hoc struct the catalog does not carry: fields in
|
|
116
|
+
* declared order, no padding.
|
|
117
|
+
*/
|
|
118
|
+
function tightLayout(normalized) {
|
|
119
|
+
const fields = {};
|
|
120
|
+
let offset = 0;
|
|
121
|
+
for (const field of normalized) {
|
|
122
|
+
fields[field.name] = {
|
|
123
|
+
offset,
|
|
124
|
+
size: field.size,
|
|
125
|
+
elements: field.elements,
|
|
126
|
+
encoding: field.encoding
|
|
127
|
+
};
|
|
128
|
+
offset += field.size * field.elements;
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
fields,
|
|
132
|
+
stride: offset
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/** Registers constant-data struct shapes and leases packed payloads from a per-engine arena. */
|
|
137
|
+
class TriPoolAllocator {
|
|
138
|
+
/** Registered layouts: name -> { fields, stride, defaults }. */
|
|
139
|
+
#layouts = new Map();
|
|
140
|
+
|
|
141
|
+
/** Retained arena chunks (Float32) and their Uint32 aliases. */
|
|
142
|
+
#chunks = [];
|
|
143
|
+
#chunkAliases = [];
|
|
144
|
+
|
|
145
|
+
/** Floats per chunk; also the largest struct a single Alloc may request. */
|
|
146
|
+
#chunkFloats = 8192;
|
|
147
|
+
#chunkIndex = 0;
|
|
148
|
+
#cursor = 0;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* @param {object} [options]
|
|
152
|
+
* @param {number} [options.chunkFloats] - arena chunk size in floats.
|
|
153
|
+
*/
|
|
154
|
+
constructor(options = {}) {
|
|
155
|
+
if (Number.isInteger(options.chunkFloats) && options.chunkFloats > 0) {
|
|
156
|
+
this.#chunkFloats = options.chunkFloats;
|
|
157
|
+
}
|
|
158
|
+
this.#AddChunk();
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Register several structs at once: { StructName: def, ... }. Each value is a
|
|
163
|
+
* field-def array (see RegisterStruct) or { def, stages } when the struct
|
|
164
|
+
* binds anywhere other than the default vertex-stage slot. Returns the store
|
|
165
|
+
* for chaining.
|
|
166
|
+
*/
|
|
167
|
+
Register(structs) {
|
|
168
|
+
for (const name of Object.keys(structs)) {
|
|
169
|
+
const entry = structs[name];
|
|
170
|
+
if (Array.isArray(entry)) {
|
|
171
|
+
this.RegisterStruct(name, entry);
|
|
172
|
+
} else {
|
|
173
|
+
this.RegisterStruct(name, entry.def, {
|
|
174
|
+
stages: entry.stages
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return this;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Register one struct and RESOLVE its layout immediately. `def` is an array
|
|
183
|
+
* of field defs: { name, encoding, size, elements?, default? }, where `size`
|
|
184
|
+
* may instead be a defaults ARRAY whose length is the size. Omit `def`
|
|
185
|
+
* entirely for a Carbon struct and the catalog supplies it. Returns the store
|
|
186
|
+
* for chaining.
|
|
187
|
+
*
|
|
188
|
+
* `options.stages` declares which per-object constant slots the payload binds
|
|
189
|
+
* (default ["vs"]). This is Carbon-SEMANTIC knowledge - which
|
|
190
|
+
* FillAndSetConstants calls exist for the struct - so it travels with the def
|
|
191
|
+
* rather than the layout: ["vs"] a vertex-stage payload, ["ps"] a pixel payload (one
|
|
192
|
+
* half of a { vs, ps } record), ["vs", "ps"] the SAME bytes bound to both
|
|
193
|
+
* slots (sphere pin, lensflare). The engine reads it from GetLayout().stages.
|
|
194
|
+
*/
|
|
195
|
+
RegisterStruct(name, def, options = {}) {
|
|
196
|
+
if (def === undefined) {
|
|
197
|
+
// No def supplied: take Carbon's, from the catalog.
|
|
198
|
+
const layout = CjsPerObjectLayouts.Get(name);
|
|
199
|
+
if (!layout) {
|
|
200
|
+
throw new Error(`TriPoolAllocator: struct "${name}" is not in CjsPerObjectLayouts - add it there, or pass a def explicitly`);
|
|
201
|
+
}
|
|
202
|
+
def = catalogDef(layout);
|
|
203
|
+
options = {
|
|
204
|
+
...options,
|
|
205
|
+
stages: options.stages ?? layout.stages
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
const normalized = TriPoolAllocator.normalizeDef(def);
|
|
209
|
+
const stages = TriPoolAllocator.normalizeStages(name, options.stages);
|
|
210
|
+
|
|
211
|
+
// Carbon's declared offsets win: its members sit on float4 boundaries, so
|
|
212
|
+
// tight-packing them would drift the moment a struct carries a FLOAT.
|
|
213
|
+
const resolved = catalogLayout(name) ?? tightLayout(normalized);
|
|
214
|
+
if (resolved.stride > this.#chunkFloats) {
|
|
215
|
+
throw new Error(`TriPoolAllocator: struct "${name}" (${resolved.stride} floats) exceeds the chunk size (${this.#chunkFloats})`);
|
|
216
|
+
}
|
|
217
|
+
const defaults = [];
|
|
218
|
+
for (const field of normalized) {
|
|
219
|
+
if (field.default) {
|
|
220
|
+
const entry = resolved.fields[field.name];
|
|
221
|
+
if (entry) {
|
|
222
|
+
defaults.push({
|
|
223
|
+
offset: entry.offset,
|
|
224
|
+
values: field.default
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
this.#layouts.set(name, {
|
|
230
|
+
fields: resolved.fields,
|
|
231
|
+
stride: resolved.stride,
|
|
232
|
+
defaults,
|
|
233
|
+
stages
|
|
234
|
+
});
|
|
235
|
+
return this;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/** Whether a struct has been registered on this store. */
|
|
239
|
+
Has(name) {
|
|
240
|
+
return this.#layouts.has(name);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Lease a TRANSIENT payload for a registered struct. Bumps the arena and
|
|
245
|
+
* returns a RawData view over the next slot, with declared defaults applied.
|
|
246
|
+
* Valid until the next Reset().
|
|
247
|
+
*/
|
|
248
|
+
Alloc(name) {
|
|
249
|
+
const layout = this.#layouts.get(name);
|
|
250
|
+
if (!layout) {
|
|
251
|
+
throw new Error(`TriPoolAllocator: struct "${name}" is not registered on this store (call Register/RegisterStruct first)`);
|
|
252
|
+
}
|
|
253
|
+
const stride = layout.stride;
|
|
254
|
+
if (this.#cursor + stride > this.#chunkFloats) {
|
|
255
|
+
this.#chunkIndex++;
|
|
256
|
+
this.#cursor = 0;
|
|
257
|
+
if (this.#chunkIndex >= this.#chunks.length) {
|
|
258
|
+
this.#AddChunk();
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
const start = this.#cursor;
|
|
262
|
+
this.#cursor += stride;
|
|
263
|
+
const floats = this.#chunks[this.#chunkIndex].subarray(start, start + stride);
|
|
264
|
+
const uints = this.#chunkAliases[this.#chunkIndex].subarray(start, start + stride);
|
|
265
|
+
for (const preset of layout.defaults) {
|
|
266
|
+
const values = preset.values;
|
|
267
|
+
for (let index = 0; index < values.length; index++) {
|
|
268
|
+
floats[preset.offset + index] = values[index];
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return new RawData(layout, floats, uints, name);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Free every transient slot at once (frame end). Rewinds the arena cursor;
|
|
276
|
+
* the backing chunks are RETAINED and reused - nothing is reallocated.
|
|
277
|
+
*/
|
|
278
|
+
Reset() {
|
|
279
|
+
this.#chunkIndex = 0;
|
|
280
|
+
this.#cursor = 0;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Appends a fresh arena chunk of chunkFloats floats plus a Uint32 alias view
|
|
285
|
+
* over the same bytes, so payload fields can be written as floats or raw bits.
|
|
286
|
+
*/
|
|
287
|
+
#AddChunk() {
|
|
288
|
+
const chunk = new Float32Array(this.#chunkFloats);
|
|
289
|
+
this.#chunks.push(chunk);
|
|
290
|
+
this.#chunkAliases.push(new Uint32Array(chunk.buffer));
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/** The field encoding kinds (packing directives). */
|
|
294
|
+
static Type = RawDataType;
|
|
295
|
+
|
|
296
|
+
/** The per-object binding slots a struct may declare via options.stages. */
|
|
297
|
+
static Stages = Object.freeze(["vs", "ps", "gs", "cs", "hs", "ds"]);
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Validate a stages declaration: a non-empty array drawn from
|
|
301
|
+
* TriPoolAllocator.Stages, no duplicates. Defaults to ["vs"] (Carbon's most
|
|
302
|
+
* common single-payload binding). Returns a frozen copy.
|
|
303
|
+
*/
|
|
304
|
+
static normalizeStages(structName, stages) {
|
|
305
|
+
if (stages === undefined || stages === null) {
|
|
306
|
+
return TriPoolAllocator.defaultStages;
|
|
307
|
+
}
|
|
308
|
+
if (!Array.isArray(stages) || !stages.length) {
|
|
309
|
+
throw new Error(`TriPoolAllocator: struct "${structName}" stages must be a non-empty array`);
|
|
310
|
+
}
|
|
311
|
+
for (const stage of stages) {
|
|
312
|
+
if (!TriPoolAllocator.Stages.includes(stage)) {
|
|
313
|
+
throw new Error(`TriPoolAllocator: struct "${structName}" has unknown stage "${stage}" (expected one of: ${TriPoolAllocator.Stages.join(", ")})`);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
if (new Set(stages).size !== stages.length) {
|
|
317
|
+
throw new Error(`TriPoolAllocator: struct "${structName}" declares a duplicate stage`);
|
|
318
|
+
}
|
|
319
|
+
return Object.freeze([...stages]);
|
|
320
|
+
}
|
|
321
|
+
static defaultStages = Object.freeze(["vs"]);
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* Normalize a raw def: default elements to 1, resolve size-as-defaults-array,
|
|
325
|
+
* require a name and encoding. Physical offsets are NOT computed here - they
|
|
326
|
+
* are resolved at registration, from the catalog or by tight packing.
|
|
327
|
+
*/
|
|
328
|
+
static normalizeDef(def) {
|
|
329
|
+
return def.map(field => {
|
|
330
|
+
if (!field.name) {
|
|
331
|
+
throw new Error("TriPoolAllocator: every struct field needs a name");
|
|
332
|
+
}
|
|
333
|
+
if (!field.encoding) {
|
|
334
|
+
throw new Error(`TriPoolAllocator: field "${field.name}" needs an encoding (TriPoolAllocator.Type.*)`);
|
|
335
|
+
}
|
|
336
|
+
let size = field.size;
|
|
337
|
+
let defaultValue = field.default ?? null;
|
|
338
|
+
if (Array.isArray(size)) {
|
|
339
|
+
defaultValue = size;
|
|
340
|
+
size = size.length;
|
|
341
|
+
}
|
|
342
|
+
if (!Number.isInteger(size) || size <= 0) {
|
|
343
|
+
throw new Error(`TriPoolAllocator: field "${field.name}" needs a positive integer size`);
|
|
344
|
+
}
|
|
345
|
+
return {
|
|
346
|
+
name: field.name,
|
|
347
|
+
elements: Number.isInteger(field.elements) && field.elements > 0 ? field.elements : 1,
|
|
348
|
+
size,
|
|
349
|
+
encoding: field.encoding,
|
|
350
|
+
default: defaultValue
|
|
351
|
+
};
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
export { TriPoolAllocator };
|
|
357
|
+
//# sourceMappingURL=TriPoolAllocator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriPoolAllocator.js","sources":["../../../../src/trinityCore/rawData/TriPoolAllocator.js"],"sourcesContent":["// Factory + arena for RawData constant-data payloads.\n//\n// Named for Carbon TriPoolAllocator (TriPoolAllocator.h/.cpp): the same job,\n// lifetime and per-frame Clear. Carbon bump-allocates with placement new and\n// wholesale Clear()s at EndRenderContext (Tr2Renderer.cpp:1072-1081), which is\n// exactly what Alloc/Reset do here. It also carries the struct-layout registry,\n// which C++ gets free from the type system via Allocate<T>().\n//\n// A pool is PER-ENGINE (one CjsLibrary = one live backend). Structs are\n// REGISTERED on the instance - registration resolves each struct's layout right\n// then, so a struct that cannot be laid out fails loud at registration, naming\n// it.\n//\n// TRINITY COMPUTES THE OFFSETS. This once required an engine-injected packer,\n// on the premise that the physical layout is BACKEND-SPECIFIC. That premise is\n// false for these buffers, verified 2026-07-28: every backend declares them as\n// a flat array of vec4 - WGSL `array<vec4<f32>, N>`, GLSL `vec4 cbN[N]`, or a\n// std140 block wrapping `vec4 data[N]` - and std140's stride for an array of\n// vec4 is 16 bytes, identical to tight C++ packing. The std140 rules that DO\n// diverge (vec3 padded to 16, scalar array stride) never engage, because there\n// are no struct members to pad: the translated shader indexes the flat array\n// and reassembles fields itself.\n//\n// Layouts resolve from two sources, in order:\n//\n// 1. CjsPerObjectLayouts, when the struct name is a Carbon struct. Those\n// offsets are declared, not derived, because Carbon memcpy's the C++\n// struct (EveSpaceObject2.cpp:1469-1483) and its members sit on float4\n// boundaries - tight-packing a FLOAT member would drift from it.\n// 2. tight packing of the supplied def, for an ad-hoc struct the catalog\n// does not carry.\n//\n// Offsets are FLOAT offsets relative to one instance's slot (the same offset\n// indexes the Float32 and Uint32 views).\n//\n// Allocation is an ARENA (bump), not a free-list:\n// - Alloc(name) bumps a cursor and returns a view (\"snip off what you need\")\n// into a RETAINED backing buffer - the buffer is NOT recreated per frame.\n// - Reset() rewinds the cursor; every slot is freed at once, O(1); the\n// chunks are kept and reused next frame.\n// - There is no Unalloc: transient slots live until their batch dispatches,\n// so Reset is the only free. Permanent per-object data is not Alloc'd - a\n// static placeable constructs its own RawData and owns it across frames.\n//\n// Maps to Carbon: Alloc == accumulator.Allocate (Tr2Renderer::GetPoolAllocator,\n// reset per frame). No clear-on-Alloc, so an unwritten field shows the previous\n// tenant's bytes - that reproduces Carbon's \"unwritten slots = allocator\n// garbage\" (declared defaults are re-applied on Alloc; everything else is\n// write-what-you-rely-on).\n//\n// Design: PER-OBJECT-DATA-DESIGN-2026-07-24.md\nimport { RawData, RawDataType } from \"./RawData.js\";\nimport { CjsPerObjectLayouts } from \"./CjsPerObjectLayouts.js\";\n\n\n/** Declared catalog type -> the encoder kind that writes its bytes. */\nconst CATALOG_ENCODINGS = {\n [CjsPerObjectLayouts.Types.MATRIX4]: RawDataType.MATRIX,\n [CjsPerObjectLayouts.Types.UINT32]: RawDataType.UINT,\n [CjsPerObjectLayouts.Types.INT32]: RawDataType.INT\n};\n\n\n/**\n * A catalog layout as a store field-def array.\n *\n * A default on an array field is repeated across every element: the store\n * applies each default at a single offset, and Carbon's neutral for a slot\n * (identity for an unused custom mask) applies to every slot, not just the\n * first.\n */\nfunction catalogDef(layout)\n{\n const def = [];\n\n for (const field of layout.fields.values())\n {\n let value = null;\n\n if (field.default)\n {\n value = field.count > 1\n ? Array.from({ length: field.count }, () => [ ...field.default ]).flat()\n : [ ...field.default ];\n }\n\n def.push({\n name: field.name,\n size: field.size,\n elements: field.count,\n encoding: CATALOG_ENCODINGS[field.type] ?? RawDataType.VECTOR,\n default: value\n });\n }\n\n return def;\n}\n\n\n/**\n * Carbon's declared layout for a struct, or null when the catalog omits it.\n */\nfunction catalogLayout(structName)\n{\n const layout = CjsPerObjectLayouts.Get(structName);\n\n if (!layout)\n {\n return null;\n }\n\n const fields = {};\n\n for (const field of layout.fields.values())\n {\n fields[field.name] = {\n offset: field.offset,\n size: field.size,\n elements: field.count,\n encoding: CATALOG_ENCODINGS[field.type] ?? RawDataType.VECTOR\n };\n }\n\n return { fields, stride: layout.stride };\n}\n\n\n/**\n * Tight layout for an ad-hoc struct the catalog does not carry: fields in\n * declared order, no padding.\n */\nfunction tightLayout(normalized)\n{\n const fields = {};\n let offset = 0;\n\n for (const field of normalized)\n {\n fields[field.name] = {\n offset,\n size: field.size,\n elements: field.elements,\n encoding: field.encoding\n };\n offset += field.size * field.elements;\n }\n\n return { fields, stride: offset };\n}\n\n\n/** Registers constant-data struct shapes and leases packed payloads from a per-engine arena. */\nexport class TriPoolAllocator\n{\n /** Registered layouts: name -> { fields, stride, defaults }. */\n #layouts = new Map();\n\n /** Retained arena chunks (Float32) and their Uint32 aliases. */\n #chunks = [];\n\n #chunkAliases = [];\n\n /** Floats per chunk; also the largest struct a single Alloc may request. */\n #chunkFloats = 8192;\n\n #chunkIndex = 0;\n\n #cursor = 0;\n\n /**\n * @param {object} [options]\n * @param {number} [options.chunkFloats] - arena chunk size in floats.\n */\n constructor(options = {})\n {\n if (Number.isInteger(options.chunkFloats) && options.chunkFloats > 0)\n {\n this.#chunkFloats = options.chunkFloats;\n }\n\n this.#AddChunk();\n }\n\n /**\n * Register several structs at once: { StructName: def, ... }. Each value is a\n * field-def array (see RegisterStruct) or { def, stages } when the struct\n * binds anywhere other than the default vertex-stage slot. Returns the store\n * for chaining.\n */\n Register(structs)\n {\n for (const name of Object.keys(structs))\n {\n const entry = structs[name];\n\n if (Array.isArray(entry))\n {\n this.RegisterStruct(name, entry);\n }\n else\n {\n this.RegisterStruct(name, entry.def, { stages: entry.stages });\n }\n }\n\n return this;\n }\n\n /**\n * Register one struct and RESOLVE its layout immediately. `def` is an array\n * of field defs: { name, encoding, size, elements?, default? }, where `size`\n * may instead be a defaults ARRAY whose length is the size. Omit `def`\n * entirely for a Carbon struct and the catalog supplies it. Returns the store\n * for chaining.\n *\n * `options.stages` declares which per-object constant slots the payload binds\n * (default [\"vs\"]). This is Carbon-SEMANTIC knowledge - which\n * FillAndSetConstants calls exist for the struct - so it travels with the def\n * rather than the layout: [\"vs\"] a vertex-stage payload, [\"ps\"] a pixel payload (one\n * half of a { vs, ps } record), [\"vs\", \"ps\"] the SAME bytes bound to both\n * slots (sphere pin, lensflare). The engine reads it from GetLayout().stages.\n */\n RegisterStruct(name, def, options = {})\n {\n if (def === undefined)\n {\n // No def supplied: take Carbon's, from the catalog.\n const layout = CjsPerObjectLayouts.Get(name);\n\n if (!layout)\n {\n throw new Error(\n `TriPoolAllocator: struct \"${name}\" is not in CjsPerObjectLayouts - add it there, or pass a def explicitly`\n );\n }\n\n def = catalogDef(layout);\n options = { ...options, stages: options.stages ?? layout.stages };\n }\n\n const normalized = TriPoolAllocator.normalizeDef(def);\n const stages = TriPoolAllocator.normalizeStages(name, options.stages);\n\n // Carbon's declared offsets win: its members sit on float4 boundaries, so\n // tight-packing them would drift the moment a struct carries a FLOAT.\n const resolved = catalogLayout(name) ?? tightLayout(normalized);\n\n if (resolved.stride > this.#chunkFloats)\n {\n throw new Error(`TriPoolAllocator: struct \"${name}\" (${resolved.stride} floats) exceeds the chunk size (${this.#chunkFloats})`);\n }\n\n const defaults = [];\n\n for (const field of normalized)\n {\n if (field.default)\n {\n const entry = resolved.fields[field.name];\n\n if (entry)\n {\n defaults.push({ offset: entry.offset, values: field.default });\n }\n }\n }\n\n this.#layouts.set(name, { fields: resolved.fields, stride: resolved.stride, defaults, stages });\n\n return this;\n }\n\n /** Whether a struct has been registered on this store. */\n Has(name)\n {\n return this.#layouts.has(name);\n }\n\n /**\n * Lease a TRANSIENT payload for a registered struct. Bumps the arena and\n * returns a RawData view over the next slot, with declared defaults applied.\n * Valid until the next Reset().\n */\n Alloc(name)\n {\n const layout = this.#layouts.get(name);\n\n if (!layout)\n {\n throw new Error(`TriPoolAllocator: struct \"${name}\" is not registered on this store (call Register/RegisterStruct first)`);\n }\n\n const stride = layout.stride;\n\n if (this.#cursor + stride > this.#chunkFloats)\n {\n this.#chunkIndex++;\n this.#cursor = 0;\n\n if (this.#chunkIndex >= this.#chunks.length)\n {\n this.#AddChunk();\n }\n }\n\n const start = this.#cursor;\n this.#cursor += stride;\n\n const floats = this.#chunks[this.#chunkIndex].subarray(start, start + stride);\n const uints = this.#chunkAliases[this.#chunkIndex].subarray(start, start + stride);\n\n for (const preset of layout.defaults)\n {\n const values = preset.values;\n\n for (let index = 0; index < values.length; index++)\n {\n floats[preset.offset + index] = values[index];\n }\n }\n\n return new RawData(layout, floats, uints, name);\n }\n\n /**\n * Free every transient slot at once (frame end). Rewinds the arena cursor;\n * the backing chunks are RETAINED and reused - nothing is reallocated.\n */\n Reset()\n {\n this.#chunkIndex = 0;\n this.#cursor = 0;\n }\n\n /**\n * Appends a fresh arena chunk of chunkFloats floats plus a Uint32 alias view\n * over the same bytes, so payload fields can be written as floats or raw bits.\n */\n #AddChunk()\n {\n const chunk = new Float32Array(this.#chunkFloats);\n this.#chunks.push(chunk);\n this.#chunkAliases.push(new Uint32Array(chunk.buffer));\n }\n\n /** The field encoding kinds (packing directives). */\n static Type = RawDataType;\n\n /** The per-object binding slots a struct may declare via options.stages. */\n static Stages = Object.freeze([\"vs\", \"ps\", \"gs\", \"cs\", \"hs\", \"ds\"]);\n\n /**\n * Validate a stages declaration: a non-empty array drawn from\n * TriPoolAllocator.Stages, no duplicates. Defaults to [\"vs\"] (Carbon's most\n * common single-payload binding). Returns a frozen copy.\n */\n static normalizeStages(structName, stages)\n {\n if (stages === undefined || stages === null)\n {\n return TriPoolAllocator.defaultStages;\n }\n\n if (!Array.isArray(stages) || !stages.length)\n {\n throw new Error(`TriPoolAllocator: struct \"${structName}\" stages must be a non-empty array`);\n }\n\n for (const stage of stages)\n {\n if (!TriPoolAllocator.Stages.includes(stage))\n {\n throw new Error(`TriPoolAllocator: struct \"${structName}\" has unknown stage \"${stage}\" (expected one of: ${TriPoolAllocator.Stages.join(\", \")})`);\n }\n }\n\n if (new Set(stages).size !== stages.length)\n {\n throw new Error(`TriPoolAllocator: struct \"${structName}\" declares a duplicate stage`);\n }\n\n return Object.freeze([...stages]);\n }\n\n static defaultStages = Object.freeze([\"vs\"]);\n\n /**\n * Normalize a raw def: default elements to 1, resolve size-as-defaults-array,\n * require a name and encoding. Physical offsets are NOT computed here - they\n * are resolved at registration, from the catalog or by tight packing.\n */\n static normalizeDef(def)\n {\n return def.map(field =>\n {\n if (!field.name)\n {\n throw new Error(\"TriPoolAllocator: every struct field needs a name\");\n }\n\n if (!field.encoding)\n {\n throw new Error(`TriPoolAllocator: field \"${field.name}\" needs an encoding (TriPoolAllocator.Type.*)`);\n }\n\n let size = field.size;\n let defaultValue = field.default ?? null;\n\n if (Array.isArray(size))\n {\n defaultValue = size;\n size = size.length;\n }\n\n if (!Number.isInteger(size) || size <= 0)\n {\n throw new Error(`TriPoolAllocator: field \"${field.name}\" needs a positive integer size`);\n }\n\n return {\n name: field.name,\n elements: Number.isInteger(field.elements) && field.elements > 0 ? field.elements : 1,\n size,\n encoding: field.encoding,\n default: defaultValue\n };\n });\n }\n\n}\n"],"names":["CATALOG_ENCODINGS","CjsPerObjectLayouts","Types","MATRIX4","RawDataType","MATRIX","UINT32","UINT","INT32","INT","catalogDef","layout","def","field","fields","values","value","default","count","Array","from","length","flat","push","name","size","elements","encoding","type","VECTOR","catalogLayout","structName","Get","offset","stride","tightLayout","normalized","TriPoolAllocator","Map","constructor","options","Number","isInteger","chunkFloats","Register","structs","Object","keys","entry","isArray","RegisterStruct","stages","undefined","Error","normalizeDef","normalizeStages","resolved","defaults","set","Has","has","Alloc","get","start","floats","subarray","uints","preset","index","RawData","Reset","#AddChunk","chunk","Float32Array","Uint32Array","buffer","Type","Stages","freeze","defaultStages","stage","includes","join","Set","map","defaultValue"],"mappings":"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"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
// The shared machinery behind the constant-data catalogs.
|
|
2
|
+
//
|
|
3
|
+
// C++ gets a struct's layout free from the type system, so Carbon never
|
|
4
|
+
// declares one; JavaScript has to. Two catalogs need the same declaration
|
|
5
|
+
// vocabulary and the same resolver - CjsPerObjectLayouts (per draw) and
|
|
6
|
+
// CjsPerFrameLayouts (per frame) - so it lives here rather than being forked.
|
|
7
|
+
//
|
|
8
|
+
// Carbon uploads both kinds by memcpy'ing the C++ struct straight into the
|
|
9
|
+
// constant buffer, so the C++ declaration order IS the byte layout the shader
|
|
10
|
+
// reads. Field ORDER and field SIZE are therefore the entire binding contract:
|
|
11
|
+
// renaming a field is safe, reordering or resizing one silently shifts every
|
|
12
|
+
// field after it.
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Declared C++ member types. String values rather than ordinals so a typo
|
|
16
|
+
* throws at lookup instead of silently packing wrong, and a layout dump reads
|
|
17
|
+
* `"matrix4"` rather than `3`.
|
|
18
|
+
*/
|
|
19
|
+
const Types = Object.freeze({
|
|
20
|
+
/** 16 floats. Stored transposed; written with SetAndTranspose. */
|
|
21
|
+
MATRIX4: "matrix4",
|
|
22
|
+
/** 4 floats. */
|
|
23
|
+
QUATERNION: "quaternion",
|
|
24
|
+
/** 4 floats. */
|
|
25
|
+
VECTOR4: "vector4",
|
|
26
|
+
/** 4 floats - Carbon `Color` (BlueVectorTypes.h:46: `float r, g, b, a`). */
|
|
27
|
+
COLOR: "color",
|
|
28
|
+
/** 3 floats. */
|
|
29
|
+
VECTOR3: "vector3",
|
|
30
|
+
/** 2 floats. */
|
|
31
|
+
VECTOR2: "vector2",
|
|
32
|
+
/** 1 float. */
|
|
33
|
+
FLOAT: "float",
|
|
34
|
+
/** 1 lane, bit-cast into the buffer's Uint32 view. */
|
|
35
|
+
UINT32: "uint32",
|
|
36
|
+
/** 1 lane, two's-complement bit-cast. */
|
|
37
|
+
INT32: "int32"
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
/** Float lanes per declared type. */
|
|
41
|
+
const LANES = Object.freeze({
|
|
42
|
+
[Types.MATRIX4]: 16,
|
|
43
|
+
[Types.QUATERNION]: 4,
|
|
44
|
+
[Types.VECTOR4]: 4,
|
|
45
|
+
[Types.COLOR]: 4,
|
|
46
|
+
[Types.VECTOR3]: 3,
|
|
47
|
+
[Types.VECTOR2]: 2,
|
|
48
|
+
[Types.FLOAT]: 1,
|
|
49
|
+
[Types.UINT32]: 1,
|
|
50
|
+
[Types.INT32]: 1
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Declared type -> the encoder kind that writes its bytes. These are the string
|
|
55
|
+
* values of `RawDataType`, written literally rather than imported so this
|
|
56
|
+
* module stays free of a cycle (RawData imports the catalogs, which import
|
|
57
|
+
* this). Anything absent encodes as `"vector"`.
|
|
58
|
+
*/
|
|
59
|
+
const ENCODINGS = Object.freeze({
|
|
60
|
+
[Types.MATRIX4]: "matrix",
|
|
61
|
+
[Types.UINT32]: "uint",
|
|
62
|
+
[Types.INT32]: "int"
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
/** Which stages each buffer key binds to. */
|
|
66
|
+
const STAGES = Object.freeze({
|
|
67
|
+
vs: Object.freeze(["vs"]),
|
|
68
|
+
ps: Object.freeze(["ps"]),
|
|
69
|
+
shared: Object.freeze(["vs", "ps"])
|
|
70
|
+
});
|
|
71
|
+
const ZERO4 = Object.freeze([0, 0, 0, 0]);
|
|
72
|
+
const IDENTITY = Object.freeze([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Resolves every group's buffers into flat, offset-bearing layouts, keyed by
|
|
76
|
+
* struct name. `owner` names the calling catalog so a thrown message points at
|
|
77
|
+
* the file to fix.
|
|
78
|
+
*/
|
|
79
|
+
function buildLayouts(groups, owner) {
|
|
80
|
+
const layouts = new Map();
|
|
81
|
+
for (const [group, buffers] of Object.entries(groups)) {
|
|
82
|
+
for (const [key, buffer] of Object.entries(buffers)) {
|
|
83
|
+
if (layouts.has(buffer.struct)) {
|
|
84
|
+
throw new Error(`${owner}: duplicate struct name "${buffer.struct}"`);
|
|
85
|
+
}
|
|
86
|
+
layouts.set(buffer.struct, resolveLayout(group, key, buffer, owner));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return layouts;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** Lays out one buffer, asserting Carbon's two register invariants. */
|
|
93
|
+
function resolveLayout(group, key, buffer, owner) {
|
|
94
|
+
const fields = new Map();
|
|
95
|
+
let offset = 0;
|
|
96
|
+
for (const [name, declared] of Object.entries(buffer.fields)) {
|
|
97
|
+
const lanes = LANES[declared.type];
|
|
98
|
+
if (lanes === undefined) {
|
|
99
|
+
throw new Error(`${owner}: ${buffer.struct}.${name} has unknown type "${declared.type}"`);
|
|
100
|
+
}
|
|
101
|
+
const count = declared.count ?? 1;
|
|
102
|
+
|
|
103
|
+
// Carbon hand-pads these structs so no float4-sized member ever needs
|
|
104
|
+
// implicit padding. A catalog entry that breaks that is wrong, so it
|
|
105
|
+
// fails loud rather than silently inserting a gap.
|
|
106
|
+
if (lanes >= 4 && offset % 4) {
|
|
107
|
+
throw new Error(`${owner}: ${buffer.struct}.${name} would start at float ${offset}, ` + "which is not a register boundary");
|
|
108
|
+
}
|
|
109
|
+
fields.set(name, {
|
|
110
|
+
name,
|
|
111
|
+
type: declared.type,
|
|
112
|
+
offset,
|
|
113
|
+
size: lanes,
|
|
114
|
+
count,
|
|
115
|
+
default: declared.default ?? null,
|
|
116
|
+
isMatrix: declared.type === Types.MATRIX4,
|
|
117
|
+
isInteger: declared.type === Types.UINT32 || declared.type === Types.INT32
|
|
118
|
+
});
|
|
119
|
+
offset += lanes * count;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Tr2PerObjectData.h:57 - "Size of per-object data must be a multiple of
|
|
123
|
+
// Vector4". The same holds for a per-frame buffer's registers. Reproduced
|
|
124
|
+
// so a bad catalog entry fails at build, not on screen.
|
|
125
|
+
if (offset % 4) {
|
|
126
|
+
throw new Error(`${owner}: ${buffer.struct} is ${offset} floats, not a multiple of Vector4`);
|
|
127
|
+
}
|
|
128
|
+
return Object.freeze({
|
|
129
|
+
struct: buffer.struct,
|
|
130
|
+
group,
|
|
131
|
+
key,
|
|
132
|
+
stages: STAGES[key] ?? STAGES.vs,
|
|
133
|
+
fields,
|
|
134
|
+
stride: offset,
|
|
135
|
+
registerCount: offset / 4
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* A resolved layout in the shape RawData consumes: float offsets keyed by
|
|
141
|
+
* name, plus the stride, stages, and the defaults to apply on allocation.
|
|
142
|
+
*
|
|
143
|
+
* A default on an array field is repeated across every element: the neutral
|
|
144
|
+
* for a slot - identity for an unused custom mask - applies to every slot, not
|
|
145
|
+
* just the first.
|
|
146
|
+
*/
|
|
147
|
+
function toRawLayout(layout) {
|
|
148
|
+
const fields = {};
|
|
149
|
+
const defaults = [];
|
|
150
|
+
for (const field of layout.fields.values()) {
|
|
151
|
+
fields[field.name] = {
|
|
152
|
+
offset: field.offset,
|
|
153
|
+
size: field.size,
|
|
154
|
+
elements: field.count,
|
|
155
|
+
encoding: ENCODINGS[field.type] ?? "vector"
|
|
156
|
+
};
|
|
157
|
+
if (field.default) {
|
|
158
|
+
defaults.push({
|
|
159
|
+
offset: field.offset,
|
|
160
|
+
values: field.count > 1 ? Array.from({
|
|
161
|
+
length: field.count
|
|
162
|
+
}, () => [...field.default]).flat() : [...field.default]
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
fields,
|
|
168
|
+
stride: layout.stride,
|
|
169
|
+
stages: layout.stages,
|
|
170
|
+
defaults
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export { ENCODINGS, IDENTITY, LANES, STAGES, Types, ZERO4, buildLayouts, resolveLayout, toRawLayout };
|
|
175
|
+
//# sourceMappingURL=constantLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constantLayout.js","sources":["../../../../src/trinityCore/rawData/constantLayout.js"],"sourcesContent":["// The shared machinery behind the constant-data catalogs.\n//\n// C++ gets a struct's layout free from the type system, so Carbon never\n// declares one; JavaScript has to. Two catalogs need the same declaration\n// vocabulary and the same resolver - CjsPerObjectLayouts (per draw) and\n// CjsPerFrameLayouts (per frame) - so it lives here rather than being forked.\n//\n// Carbon uploads both kinds by memcpy'ing the C++ struct straight into the\n// constant buffer, so the C++ declaration order IS the byte layout the shader\n// reads. Field ORDER and field SIZE are therefore the entire binding contract:\n// renaming a field is safe, reordering or resizing one silently shifts every\n// field after it.\n\n\n/**\n * Declared C++ member types. String values rather than ordinals so a typo\n * throws at lookup instead of silently packing wrong, and a layout dump reads\n * `\"matrix4\"` rather than `3`.\n */\nexport const Types = Object.freeze({\n /** 16 floats. Stored transposed; written with SetAndTranspose. */\n MATRIX4: \"matrix4\",\n\n /** 4 floats. */\n QUATERNION: \"quaternion\",\n\n /** 4 floats. */\n VECTOR4: \"vector4\",\n\n /** 4 floats - Carbon `Color` (BlueVectorTypes.h:46: `float r, g, b, a`). */\n COLOR: \"color\",\n\n /** 3 floats. */\n VECTOR3: \"vector3\",\n\n /** 2 floats. */\n VECTOR2: \"vector2\",\n\n /** 1 float. */\n FLOAT: \"float\",\n\n /** 1 lane, bit-cast into the buffer's Uint32 view. */\n UINT32: \"uint32\",\n\n /** 1 lane, two's-complement bit-cast. */\n INT32: \"int32\"\n});\n\n\n/** Float lanes per declared type. */\nexport const LANES = Object.freeze({\n [Types.MATRIX4]: 16,\n [Types.QUATERNION]: 4,\n [Types.VECTOR4]: 4,\n [Types.COLOR]: 4,\n [Types.VECTOR3]: 3,\n [Types.VECTOR2]: 2,\n [Types.FLOAT]: 1,\n [Types.UINT32]: 1,\n [Types.INT32]: 1\n});\n\n\n/**\n * Declared type -> the encoder kind that writes its bytes. These are the string\n * values of `RawDataType`, written literally rather than imported so this\n * module stays free of a cycle (RawData imports the catalogs, which import\n * this). Anything absent encodes as `\"vector\"`.\n */\nexport const ENCODINGS = Object.freeze({\n [Types.MATRIX4]: \"matrix\",\n [Types.UINT32]: \"uint\",\n [Types.INT32]: \"int\"\n});\n\n\n/** Which stages each buffer key binds to. */\nexport const STAGES = Object.freeze({\n vs: Object.freeze([\"vs\"]),\n ps: Object.freeze([\"ps\"]),\n shared: Object.freeze([\"vs\", \"ps\"])\n});\n\n\nexport const ZERO4 = Object.freeze([0, 0, 0, 0]);\n\n\nexport const IDENTITY = Object.freeze([\n 1, 0, 0, 0,\n 0, 1, 0, 0,\n 0, 0, 1, 0,\n 0, 0, 0, 1\n]);\n\n\n/**\n * Resolves every group's buffers into flat, offset-bearing layouts, keyed by\n * struct name. `owner` names the calling catalog so a thrown message points at\n * the file to fix.\n */\nexport function buildLayouts(groups, owner)\n{\n const layouts = new Map();\n\n for (const [group, buffers] of Object.entries(groups))\n {\n for (const [key, buffer] of Object.entries(buffers))\n {\n if (layouts.has(buffer.struct))\n {\n throw new Error(`${owner}: duplicate struct name \"${buffer.struct}\"`);\n }\n\n layouts.set(buffer.struct, resolveLayout(group, key, buffer, owner));\n }\n }\n\n return layouts;\n}\n\n\n/** Lays out one buffer, asserting Carbon's two register invariants. */\nexport function resolveLayout(group, key, buffer, owner)\n{\n const fields = new Map();\n let offset = 0;\n\n for (const [name, declared] of Object.entries(buffer.fields))\n {\n const lanes = LANES[declared.type];\n\n if (lanes === undefined)\n {\n throw new Error(`${owner}: ${buffer.struct}.${name} has unknown type \"${declared.type}\"`);\n }\n\n const count = declared.count ?? 1;\n\n // Carbon hand-pads these structs so no float4-sized member ever needs\n // implicit padding. A catalog entry that breaks that is wrong, so it\n // fails loud rather than silently inserting a gap.\n if (lanes >= 4 && offset % 4)\n {\n throw new Error(\n `${owner}: ${buffer.struct}.${name} would start at float ${offset}, `\n + \"which is not a register boundary\"\n );\n }\n\n fields.set(name, {\n name,\n type: declared.type,\n offset,\n size: lanes,\n count,\n default: declared.default ?? null,\n isMatrix: declared.type === Types.MATRIX4,\n isInteger: declared.type === Types.UINT32 || declared.type === Types.INT32\n });\n\n offset += lanes * count;\n }\n\n // Tr2PerObjectData.h:57 - \"Size of per-object data must be a multiple of\n // Vector4\". The same holds for a per-frame buffer's registers. Reproduced\n // so a bad catalog entry fails at build, not on screen.\n if (offset % 4)\n {\n throw new Error(\n `${owner}: ${buffer.struct} is ${offset} floats, not a multiple of Vector4`\n );\n }\n\n return Object.freeze({\n struct: buffer.struct,\n group,\n key,\n stages: STAGES[key] ?? STAGES.vs,\n fields,\n stride: offset,\n registerCount: offset / 4\n });\n}\n\n\n/**\n * A resolved layout in the shape RawData consumes: float offsets keyed by\n * name, plus the stride, stages, and the defaults to apply on allocation.\n *\n * A default on an array field is repeated across every element: the neutral\n * for a slot - identity for an unused custom mask - applies to every slot, not\n * just the first.\n */\nexport function toRawLayout(layout)\n{\n const fields = {};\n const defaults = [];\n\n for (const field of layout.fields.values())\n {\n fields[field.name] = {\n offset: field.offset,\n size: field.size,\n elements: field.count,\n encoding: ENCODINGS[field.type] ?? \"vector\"\n };\n\n if (field.default)\n {\n defaults.push({\n offset: field.offset,\n values: field.count > 1\n ? Array.from({ length: field.count }, () => [ ...field.default ]).flat()\n : [ ...field.default ]\n });\n }\n }\n\n return { fields, stride: layout.stride, stages: layout.stages, defaults };\n}\n"],"names":["Types","Object","freeze","MATRIX4","QUATERNION","VECTOR4","COLOR","VECTOR3","VECTOR2","FLOAT","UINT32","INT32","LANES","ENCODINGS","STAGES","vs","ps","shared","ZERO4","IDENTITY","buildLayouts","groups","owner","layouts","Map","group","buffers","entries","key","buffer","has","struct","Error","set","resolveLayout","fields","offset","name","declared","lanes","type","undefined","count","size","default","isMatrix","isInteger","stages","stride","registerCount","toRawLayout","layout","defaults","field","values","elements","encoding","push","Array","from","length","flat"],"mappings":"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"}
|