@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveChildMesh.js","sources":["../../../../src/eve/child/EveChildMesh.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildMesh.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildMesh.cpp\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildMesh_Blue.cpp\r\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\r\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\r\nimport { sph3 } from \"@carbonenginejs/runtime-utils/sph3\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\r\nimport { carbon, impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { TriBatchType } from \"@carbonenginejs/runtime-utils/graphics\";\r\nimport { EveChildTransform, applyTransformModifiers } from \"./EveChildTransform.js\";\r\nimport { Origin } from \"../../generated/eve/child/enums.js\";\r\nimport { ReflectionMode } from \"../../generated/eve/enums.js\";\r\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\r\nimport { Tr2RenderReason } from \"../../generated/trinityCore/enums.js\";\r\nimport { Tr2Lod } from \"../EveLODHelper.js\";\r\nimport { Tr2PerObjectData } from \"../../trinityCore/Tr2PerObjectData.js\";\r\n\r\n// Module scratch for the hot per-frame visibility/shadow paths (allocation\r\n// rules: copy-into, never allocate per call; child updates run sequentially so\r\n// the scratch is non-reentrant by construction).\r\nconst INVERSE_WORLD_SCRATCH = mat4.create();\r\nconst LOCAL_VIEW_SCRATCH = vec3.create();\r\nconst INSTANCE_SPHERE_SCRATCH = vec4.create();\r\nconst SHADOW_SPHERE_SCRATCH = vec4.create();\r\nconst BOX_CORNER_SCRATCH = vec3.create();\r\nconst BOX_QUERY_SCRATCH = { min: vec3.create(), max: vec3.create() };\r\nconst ZERO_VEC3 = vec3.create();\r\n\r\n\r\n@type.define({ className: \"EveChildMesh\", family: \"eve/child\" })\r\nexport class EveChildMesh extends EveChildTransform\r\n{\r\n #isMorphsBaked = false;\r\n\r\n #morphAnimationBuffer = [];\r\n\r\n #morphAnimationOffsets = {\r\n runtimeEvaluatedOffset: 0,\r\n runtimeEvaluatedCount: 0,\r\n bakedOffset: 0,\r\n bakedCount: 0,\r\n allCount: 0\r\n };\r\n\r\n // Carbon m_isVisible/m_instancesVisible/m_hasUpdated/m_activationStrength:\r\n // runtime-only frame state (never persisted; Carbon keeps them out of the\r\n // Blue surface too).\r\n #isVisible = false;\r\n\r\n #instancesVisible = false;\r\n\r\n #hasUpdated = false;\r\n\r\n #activationStrength = 1;\r\n\r\n // Carbon m_worldBoundingBox/m_worldBoundingSphere: world-space bounds\r\n // refreshed by UpdateAsyncronous; the sphere is invalid while radius <= 0.\r\n #worldBoundsMin = vec3.create();\r\n\r\n #worldBoundsMax = vec3.create();\r\n\r\n #worldBoundsValid = false;\r\n\r\n #worldBoundingSphere = vec4.create();\r\n\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"ReflectionMode\")\r\n reflectionMode = 3;\r\n\r\n @io.persist\r\n @type.list(\"IEveChildTransformModifier\")\r\n transformModifiers = [];\r\n\r\n @io.read\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n castShadow = false;\r\n\r\n @io.notify\r\n @io.persist\r\n @type.objectRef(\"Tr2MeshBase\")\r\n mesh = null;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.quat\r\n rotation = quat.create();\r\n\r\n @io.persist\r\n @type.vec3\r\n translation = vec3.create();\r\n\r\n @io.persist\r\n @type.vec3\r\n scaling = vec3.fromValues(1, 1, 1);\r\n\r\n @io.persist\r\n @type.mat4\r\n localTransform = mat4.create();\r\n\r\n @io.persist\r\n @type.list(\"EveSpaceObjectDecal\")\r\n decals = [];\r\n\r\n @io.persist\r\n @type.boolean\r\n staticTransform = false;\r\n\r\n @io.notify\r\n @io.persist\r\n @type.objectRef(\"Tr2GrannyAnimation\")\r\n animationUpdater = null;\r\n\r\n @io.persist\r\n @type.list(\"IEveSpaceObjectAttachment\")\r\n attachments = [];\r\n\r\n @io.persist\r\n @type.list(\"Tr2Light\")\r\n lights = [];\r\n\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"Tr2Lod\")\r\n lowestLodVisible = 0;\r\n\r\n @io.persist\r\n @type.float32\r\n minScreenSize = 0;\r\n\r\n @io.persist\r\n @type.float32\r\n sortValueOffset = 0;\r\n\r\n @io.persist\r\n @type.float32\r\n sortValueScale = 1;\r\n\r\n @io.read\r\n @type.float32\r\n currentScreenSize = -1;\r\n\r\n @io.read\r\n @type.float32\r\n currentInstanceScreenSize = -1;\r\n\r\n @io.persist\r\n @type.boolean\r\n useSRT = true;\r\n\r\n @io.persist\r\n @type.boolean\r\n updateAnimation = true;\r\n\r\n // SOF-authored placement/instance values; persisted so the values\r\n // interchange reproduces Carbon's hidden child placement state.\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"Origin\")\r\n origin = 0;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.array(\"mat4\")\r\n instanceTransforms = [];\r\n\r\n @io.persist\r\n @type.string\r\n sofDna = \"\";\r\n\r\n @io.persist\r\n @type.string\r\n sofParentHullName = \"\";\r\n\r\n @io.persist\r\n @type.string\r\n sofLocatorSetName = \"\";\r\n\r\n @io.persist\r\n @type.string\r\n sofLocatorIndex = \"\";\r\n\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n if (this.staticTransform)\r\n {\r\n this.RebuildLocalTransform();\r\n }\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n Setup(scale = null, rotation = null, translation = null, lowestLodVisible = null)\r\n {\r\n super.Setup(scale, rotation, translation, lowestLodVisible);\r\n if (lowestLodVisible !== null && lowestLodVisible !== undefined)\r\n {\r\n this.lowestLodVisible = Number(lowestLodVisible) | 0;\r\n }\r\n return this.localTransform;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetInstanceTransforms(instances)\r\n {\r\n const next = [];\r\n for (const transform of instances ?? [])\r\n {\r\n if (!transform || transform.length !== 16)\r\n {\r\n throw new TypeError(\"EveChildMesh instance transforms must contain 16 values\");\r\n }\r\n next.push(mat4.clone(transform));\r\n }\r\n this.instanceTransforms = next;\r\n return this.instanceTransforms;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n GetInstanceTransforms()\r\n {\r\n return this.instanceTransforms;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetMesh(mesh)\r\n {\r\n this.mesh = mesh ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetOrigin(origin)\r\n {\r\n this.origin = Number(origin) | 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetScale(scale)\r\n {\r\n vec3.copy(this.scaling, scale);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetReflectionMode(mode)\r\n {\r\n this.reflectionMode = Number(mode) | 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetCastShadow(castShadow)\r\n {\r\n this.castShadow = !!castShadow;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetMinScreenSize(minScreenSize)\r\n {\r\n this.minScreenSize = Number(minScreenSize);\r\n }\r\n\r\n /** Carbon EveChildMesh::GetLocalToWorldTransform (cpp:1047-1050); the\r\n * optional out follows the EveChildInstancedMeshes copy-out shape. */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocalToWorldTransform(out = null)\r\n {\r\n if (out)\r\n {\r\n return mat4.copy(out, this.worldTransform);\r\n }\r\n return this.worldTransform;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n AddTransformModifier(modifier)\r\n {\r\n this.transformModifiers.push(modifier);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n AddDecal(decal)\r\n {\r\n this.decals.push(decal);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n AddAttachment(attachment)\r\n {\r\n this.attachments.push(attachment);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n ClearAttachments()\r\n {\r\n this.attachments.length = 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n AddLight(light)\r\n {\r\n this.lights.push(light);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n ClearLights()\r\n {\r\n this.lights.length = 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n IsAlwaysOn()\r\n {\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetShaderOption(name, value)\r\n {\r\n this.mesh?.SetShaderOption?.(name, value);\r\n for (const decal of this.decals)\r\n {\r\n decal?.SetShaderOption?.(name, value);\r\n }\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.SetShaderOption?.(name, value);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n GetMorphTargetNames()\r\n {\r\n return this.mesh?.GetMorphTargetNames?.() ?? [];\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetMorphTargetWeight(name, weight)\r\n {\r\n this.mesh?.SetMorphTargetWeight?.(name, weight);\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n GetMorphTargetWeight(name)\r\n {\r\n return this.mesh?.GetMorphTargetWeight?.(name) ?? 0;\r\n }\r\n\r\n /** Rebuilds the source-backed indexed morph buffer from manual and animation weights. */\r\n @impl.adapted\r\n UpdateMorphAnimationBuffer()\r\n {\r\n const names = this.mesh?.GetMorphTargetNames?.();\r\n\r\n this.#morphAnimationOffsets = {\r\n runtimeEvaluatedOffset: 0,\r\n runtimeEvaluatedCount: 0,\r\n bakedOffset: 0,\r\n bakedCount: 0,\r\n allCount: 0\r\n };\r\n\r\n if (!Array.isArray(names))\r\n {\r\n this.#morphAnimationBuffer = [];\r\n return 0;\r\n }\r\n\r\n const manual = this.mesh?.GetMorphAnimations?.();\r\n const records = names.map((name, index) => ({\r\n index,\r\n weight: ReadMorphWeight(\r\n ReadNamedMorph(manual, name) ?? this.mesh?.GetMorphTargetWeight?.(name) ?? 0,\r\n name,\r\n \"mesh\"\r\n ),\r\n baked: !!(this.mesh?.IsBakedMorph?.(index)\r\n ?? this.mesh?.GetBakedMorphTarget?.(name)\r\n ?? false)\r\n }));\r\n\r\n if (this.animationUpdater?.IsInitialized?.())\r\n {\r\n const animated = this.animationUpdater.GetMorphAnimations?.();\r\n\r\n for (const record of records)\r\n {\r\n const name = names[record.index];\r\n const value = ReadNamedMorph(animated, name);\r\n\r\n if (value !== undefined)\r\n {\r\n record.weight = ReadMorphWeight(value, name, \"animation\");\r\n }\r\n }\r\n }\r\n\r\n const runtime = [];\r\n const baked = [];\r\n const inactive = [];\r\n\r\n for (const record of records)\r\n {\r\n if (record.weight >= 0.001)\r\n {\r\n (record.baked ? baked : runtime).push(record);\r\n }\r\n else\r\n {\r\n inactive.push(record);\r\n }\r\n }\r\n\r\n this.#morphAnimationBuffer = [ ...runtime, ...baked, ...inactive ];\r\n this.#morphAnimationOffsets.runtimeEvaluatedCount = runtime.length;\r\n this.#morphAnimationOffsets.bakedOffset = runtime.length;\r\n this.#morphAnimationOffsets.bakedCount = baked.length;\r\n this.#morphAnimationOffsets.allCount = runtime.length + baked.length;\r\n return this.#morphAnimationOffsets.allCount;\r\n }\r\n\r\n /** Returns detached active indexed morph records for the native filter. */\r\n @impl.adapted\r\n GetMorphTargets(filter = 2)\r\n {\r\n const normalized = NormalizeMorphFilter(filter);\r\n let offset = 0;\r\n let count = 0;\r\n\r\n if (normalized === 2)\r\n {\r\n count = this.#morphAnimationOffsets.allCount;\r\n }\r\n else if (normalized === 0)\r\n {\r\n offset = this.#isMorphsBaked\r\n ? this.#morphAnimationOffsets.runtimeEvaluatedOffset\r\n : 0;\r\n count = this.#isMorphsBaked\r\n ? this.#morphAnimationOffsets.runtimeEvaluatedCount\r\n : this.#morphAnimationOffsets.allCount;\r\n }\r\n else\r\n {\r\n offset = this.#morphAnimationOffsets.bakedOffset;\r\n count = this.#morphAnimationOffsets.bakedCount;\r\n }\r\n\r\n return this.#morphAnimationBuffer.slice(offset, offset + count)\r\n .map(value => ({ index: value.index, weight: value.weight }));\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n GetSofSourceLocator()\r\n {\r\n return null;\r\n }\r\n\r\n /**\r\n * Sync-side frame update (Carbon EveChildMesh::UpdateSyncronous,\r\n * cpp:1002-1045). Carbon's body is entirely audio-geometry registration\r\n * (cpp:1004-1010, 1044 - engine/audio-owned, omitted) plus animationUpdater\r\n * re-binding and PrePhysicsAnimation stepping (cpp:1011-1042 - skipped: the\r\n * JS animation seam is absent, there is no Tr2GrannyAnimation runtime), so\r\n * the port is a documented frame-contract no-op.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Audio-geometry registration is engine-owned and the animationUpdater branches await the JS animation seam; nothing else remains in Carbon's body.\")\r\n UpdateSyncronous(_updateContext, _params)\r\n {\r\n }\r\n\r\n /**\r\n * Per-frame async update (Carbon EveChildMesh::UpdateAsyncronous,\r\n * cpp:903-1000): rebuild the world transform from the parent, fold the\r\n * transform modifiers over it, store the activation strength, refresh the\r\n * attachment lights, the morph buffer, and the world bounds. The GPU ring\r\n * buffer advance/per-object-data invalidation (cpp:905-909), audio geometry\r\n * (cpp:920-930), parent VS/PS struct refresh (cpp:932-960), and the skinned\r\n * GetBounds overload are not modelled, hence @impl.adapted.\r\n * @param {Object} updateContext - frame context (EveUpdateContext), threaded to modifiers\r\n * @param {EveChildUpdateParams} params - localToWorldTransform + boneCount/bones\r\n * @returns {Float32Array} worldTransform\r\n */\r\n @carbon.method\r\n @carbon.contextual([\"camera\"])\r\n @impl.adapted\r\n UpdateAsyncronous(updateContext, params)\r\n {\r\n const parentTransform = params?.localToWorldTransform;\r\n\r\n if (parentTransform && parentTransform.length === 16)\r\n {\r\n this.UpdateTransform(parentTransform);\r\n }\r\n\r\n applyTransformModifiers(\r\n this,\r\n updateContext,\r\n params?.boneCount ?? 0,\r\n params?.bones ?? null\r\n );\r\n\r\n this.#activationStrength = Number(params?.activationStrength ?? 1);\r\n\r\n // Carbon (cpp:962-970): attachments refresh their lights from the updated\r\n // world transform. Bones come from GetBoneTransforms (animationUpdater) -\r\n // null until the JS animation seam exists.\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.UpdateLights?.(this.worldTransform, null, 0, this.#activationStrength, 0);\r\n }\r\n\r\n this.UpdateMorphAnimationBuffer();\r\n\r\n // Carbon (cpp:974-997): world AABB from the mesh bounds, world sphere\r\n // enclosing it. The skinned GetBounds overload (animation transforms +\r\n // morph targets, cpp:977-982) awaits the animation seam; Tr2MeshBase::\r\n // GetBounds itself is a recorded gap (CARBON-PARITY-REVIEW-2026-07-23.md\r\n // section 2.3), hence the duck call (Tr2InstancedMesh implements it).\r\n this.#worldBoundsValid = false;\r\n const bounds = this.mesh?.GetBounds?.();\r\n\r\n if (bounds?.min && bounds?.max)\r\n {\r\n this.#worldBoundsMin[0] = this.#worldBoundsMin[1] = this.#worldBoundsMin[2] = Infinity;\r\n this.#worldBoundsMax[0] = this.#worldBoundsMax[1] = this.#worldBoundsMax[2] = -Infinity;\r\n for (let index = 0; index < 8; index++)\r\n {\r\n vec3.set(\r\n BOX_CORNER_SCRATCH,\r\n index & 1 ? bounds.max[0] : bounds.min[0],\r\n index & 2 ? bounds.max[1] : bounds.min[1],\r\n index & 4 ? bounds.max[2] : bounds.min[2]\r\n );\r\n vec3.transformMat4(BOX_CORNER_SCRATCH, BOX_CORNER_SCRATCH, this.worldTransform);\r\n vec3.min(this.#worldBoundsMin, this.#worldBoundsMin, BOX_CORNER_SCRATCH);\r\n vec3.max(this.#worldBoundsMax, this.#worldBoundsMax, BOX_CORNER_SCRATCH);\r\n }\r\n this.#worldBoundsValid = true;\r\n sph3.fromBounds(this.#worldBoundingSphere, this.#worldBoundsMin, this.#worldBoundsMax);\r\n }\r\n else\r\n {\r\n sph3.set(this.#worldBoundingSphere, 0, 0, 0, 0);\r\n }\r\n\r\n this.#hasUpdated = true;\r\n return this.worldTransform;\r\n }\r\n\r\n /**\r\n * Frame visibility + LOD state (Carbon EveChildMesh::UpdateVisibility,\r\n * cpp:366-463): screen size via the frustum, invLodFactor scaling, the\r\n * minScreenSize/lowestLodVisible gates, the per-instance visibility gate,\r\n * and the attachment/decal visibility fan-out. Carbon recomputes the local\r\n * mesh bounds here (cpp:380-394) but consumes only the world sphere/box\r\n * computed in UpdateAsyncronous, so the dead recompute is skipped. The\r\n * raytracing branch (cpp:450-462) is engine-owned and omitted.\r\n * @param {Object} updateContext - frame context (frustum + invLodFactor ducks)\r\n * @param {Float32Array} _parentTransform\r\n * @param {Number} parentLod - parent Tr2Lod level\r\n * @returns {Boolean} isVisible\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Bone-fed decal/attachment bounds await the animation seam and the raytracing refresh is engine-owned; the LOD/screen-size math is ported.\")\r\n UpdateVisibility(updateContext, _parentTransform = null, parentLod = Tr2Lod.TR2_LOD_HIGH)\r\n {\r\n this.#isVisible = false;\r\n this.currentScreenSize = -1;\r\n this.#instancesVisible = false;\r\n this.currentInstanceScreenSize = -1;\r\n\r\n if (!this.#hasUpdated)\r\n {\r\n return false;\r\n }\r\n\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n const invLodFactor = Number(updateContext?.GetInvLodFactor?.() ?? updateContext?.invLodFactor) || 1;\r\n\r\n if (this.mesh)\r\n {\r\n this.currentScreenSize = Number(frustum?.GetPixelSizeAccross?.(this.#worldBoundingSphere) ?? Infinity) || 0;\r\n\r\n // Cached Tr2InstancedMesh downcast in Carbon (m_instancedMesh); the JS\r\n // port duck-types the instanced surface instead.\r\n const instanced = typeof this.mesh.GetInstanceBoundsClosestToPoint === \"function\";\r\n let instanceBounds = null;\r\n\r\n if (instanced)\r\n {\r\n // Carbon: TransformCoord(frustum.m_viewPos, Inverse(m_worldTransform))\r\n // - a single-matrix point transform (no composition; TransformCoord\r\n // maps to vec3.transformMat4 unchanged per the math conventions).\r\n if (!mat4.invert(INVERSE_WORLD_SCRATCH, this.worldTransform))\r\n {\r\n mat4.identity(INVERSE_WORLD_SCRATCH);\r\n }\r\n const viewPos = frustum?.m_viewPos ?? frustum?.viewPos ?? frustum?.GetViewPosition?.() ?? ZERO_VEC3;\r\n vec3.transformMat4(LOCAL_VIEW_SCRATCH, viewPos, INVERSE_WORLD_SCRATCH);\r\n instanceBounds = this.mesh.GetInstanceBoundsClosestToPoint(LOCAL_VIEW_SCRATCH);\r\n }\r\n\r\n if (instanceBounds)\r\n {\r\n // Carbon: instanceBounds.Transform(m_worldTransform) - single-matrix\r\n // sphere transform, ported via sph3.transformMat4.\r\n sph3.set(\r\n INSTANCE_SPHERE_SCRATCH,\r\n instanceBounds.center[0],\r\n instanceBounds.center[1],\r\n instanceBounds.center[2],\r\n instanceBounds.radius\r\n );\r\n sph3.transformMat4(INSTANCE_SPHERE_SCRATCH, INSTANCE_SPHERE_SCRATCH, this.worldTransform);\r\n this.currentInstanceScreenSize = Number(frustum?.GetPixelSizeAccross?.(INSTANCE_SPHERE_SCRATCH) ?? Infinity) || 0;\r\n this.mesh.UseWithScreenSize?.(this.currentInstanceScreenSize, INSTANCE_SPHERE_SCRATCH[3]);\r\n }\r\n else\r\n {\r\n // Carbon uses std::numeric_limits<float>::max(); Infinity keeps the\r\n // instance gate permanently open the same way.\r\n this.currentInstanceScreenSize = Infinity;\r\n this.mesh.UseWithScreenSize?.(this.currentScreenSize, this.#worldBoundingSphere[3]);\r\n }\r\n\r\n this.currentScreenSize *= invLodFactor;\r\n this.currentInstanceScreenSize *= invLodFactor;\r\n\r\n BOX_QUERY_SCRATCH.min = this.#worldBoundsMin;\r\n BOX_QUERY_SCRATCH.max = this.#worldBoundsMax;\r\n const boxVisible = this.#worldBoundsValid &&\r\n (frustum?.IsBoxVisible ? !!frustum.IsBoxVisible(BOX_QUERY_SCRATCH) : true);\r\n\r\n if (boxVisible)\r\n {\r\n this.#isVisible = parentLod >= this.lowestLodVisible && this.currentScreenSize >= this.minScreenSize;\r\n this.#instancesVisible = this.#isVisible &&\r\n this.currentInstanceScreenSize >= EveChildMesh.#instanceScreenSizeThreshold;\r\n }\r\n }\r\n\r\n // Carbon (cpp:427-435): attachments always refresh visibility; bones from\r\n // GetBoneTransforms await the animation seam.\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.UpdateVisibility?.(updateContext, this.worldTransform, null, 0);\r\n }\r\n\r\n if (this.#isVisible)\r\n {\r\n for (const decal of this.decals)\r\n {\r\n // Carbon (cpp:441-446) feeds animated bone matrices to the decal first\r\n // - skipped until the JS animation seam exists. Carbon passes\r\n // &m_parentData (per-object shading struct, GPU seam); the owning\r\n // child stands in as the duck-typed parent.\r\n decal?.UpdateVisibility?.(updateContext, this);\r\n }\r\n }\r\n\r\n return this.#isVisible;\r\n }\r\n\r\n /**\r\n * Collects this child (and its decals) as renderables (Carbon\r\n * EveChildMesh::GetRenderables, cpp:571-616): instanced meshes contribute\r\n * only while the per-instance gate passed; decals ride along through their\r\n * duck-typed renderable collectors (mesh cache is engine-owned, passed null\r\n * as in EveSpaceObject2.GetRenderables).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The decal mesh cache is engine-owned (null placeholder); collection structure is ported.\")\r\n GetRenderables(out = [])\r\n {\r\n if (!this.#isVisible)\r\n {\r\n return out;\r\n }\r\n\r\n const instanced = typeof this.mesh?.GetInstanceBoundsClosestToPoint === \"function\";\r\n\r\n if (instanced)\r\n {\r\n if (this.#instancesVisible)\r\n {\r\n out.push(this);\r\n if (this.decals.length && this.mesh.GetGeometryResource?.())\r\n {\r\n for (const decal of this.decals)\r\n {\r\n decal?.GetInstancedRenderables?.(out, null, this.mesh, this.currentInstanceScreenSize);\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n out.push(this);\r\n const geometryResource = this.mesh?.GetGeometryResource?.();\r\n if (this.decals.length && geometryResource)\r\n {\r\n for (const decal of this.decals)\r\n {\r\n decal?.GetRenderables?.(out, null, geometryResource, this.currentScreenSize);\r\n }\r\n }\r\n }\r\n\r\n return out;\r\n }\r\n\r\n /** Carbon EveChildMesh::GetBoundingSphere (cpp:618-627): the realized world\r\n * sphere, valid only after an update produced bounds (radius > 0). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphere(out = vec4.create(), _query = 0)\r\n {\r\n if (this.#worldBoundingSphere[3] > 0)\r\n {\r\n vec4.copy(out, this.#worldBoundingSphere);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildMesh::HasTransparentBatches (cpp:629-637). */\r\n @carbon.method\r\n @impl.implemented\r\n HasTransparentBatches()\r\n {\r\n if (this.display && this.mesh)\r\n {\r\n return (this.mesh.GetAreas?.(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0;\r\n }\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildMesh::IsVisible (cpp:639-650): sphere-in-frustum plus the\r\n * estimated pixel size against the context visibility threshold. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Frustum and threshold arrive via the duck-typed update context instead of renderer state.\")\r\n IsVisible(updateContext)\r\n {\r\n if (this.#worldBoundingSphere[3] > 0)\r\n {\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n if (frustum?.IsSphereVisible?.(this.#worldBoundingSphere) !== false)\r\n {\r\n const method = frustum?.GetPixelSizeAccrossEst ?? frustum?.GetPixelSizeAccross;\r\n const size = Number(typeof method === \"function\" ? method.call(frustum, this.#worldBoundingSphere) : 0) || 0;\r\n const threshold = Number(updateContext?.GetVisibilityThreshold?.() ?? updateContext?.visibilityThreshold) || 0;\r\n return size >= threshold;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildMesh::GetBatches (cpp:652-670): the mesh delegates per\r\n * batch type and activated attachments recurse. Carbon also passes\r\n * min(currentInstanceScreenSize, currentScreenSize) for LOD selection and a\r\n * reverse-winding flag from Determinant(m_worldTransform) < 0; both are\r\n * resolved by the engine at batch realization in the GPU-free port.\r\n * Returns whether any batch was committed (JS addition; Carbon returns\r\n * void). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Screen-size LOD selection and winding reversal are engine-resolved at realization; delegation structure is ported.\")\r\n GetBatches(batches, batchType, perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\r\n {\r\n if (!this.display)\r\n {\r\n return false;\r\n }\r\n\r\n let committed = false;\r\n\r\n if (this.mesh)\r\n {\r\n committed = this.mesh.GetBatches(batches, this.mesh.GetAreas(batchType), perObjectData) === true;\r\n }\r\n\r\n if (this.#activationStrength !== 0)\r\n {\r\n for (const attachment of this.attachments)\r\n {\r\n committed = attachment?.GetBatches?.(batches, batchType, perObjectData, reason) === true || committed;\r\n }\r\n }\r\n\r\n return committed;\r\n }\r\n\r\n /** Carbon EveChildMesh::GetShadowBatches (cpp:672-681): the OPAQUE areas\r\n * only, gated on display/mesh/hasUpdated. shadowPixelSize and the\r\n * reverse-winding flag are engine-resolved at realization. Returns whether\r\n * any batch was committed (JS addition; Carbon returns void). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"shadowPixelSize LOD selection and winding reversal are engine-resolved at realization; delegation structure is ported.\")\r\n GetShadowBatches(batches, perObjectData, _shadowPixelSize)\r\n {\r\n if (this.display && this.mesh && this.#hasUpdated)\r\n {\r\n return this.mesh.GetBatches(batches, this.mesh.GetAreas(TriBatchType.TRIBATCHTYPE_OPAQUE), perObjectData) === true;\r\n }\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildMesh::GetSortValue (cpp:787-792): view distance scaled by\r\n * sortValueScale plus sortValueOffset. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\r\n GetSortValue(renderContext = null)\r\n {\r\n const viewPosition = renderContext?.GetViewPosition?.();\r\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\r\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\r\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\r\n return Math.hypot(x, y, z) * this.sortValueScale + this.sortValueOffset;\r\n }\r\n\r\n /** Carbon EveChildMesh::GetShadowPerObjectData (cpp:794-797) forwards the\r\n * shadow pass to the same per-object record. */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowPerObjectData(accumulator = null)\r\n {\r\n return this.GetPerObjectData(accumulator);\r\n }\r\n\r\n /** Carbon EveChildMesh::GetPerObjectData (cpp:799-843) uploads bone/morph\r\n * ring-buffer offsets and allocates Tr2PerObjectDataWithPersistentBuffers;\r\n * those fills are GPU ring-buffer state, so the GPU-free record carries the\r\n * live object reference for the engine serializer to pull current values at\r\n * realization (mirrors EveSpaceObject2.GetPerObjectData). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Persistent VS/PS device buffers and bone/morph ring offsets are engine-owned; the record carries the object reference the engine serializer consumes.\")\r\n GetPerObjectData(accumulator = null)\r\n {\r\n const data = typeof accumulator?.Allocate === \"function\"\r\n ? accumulator.Allocate(Tr2PerObjectData)\r\n : new Tr2PerObjectData();\r\n data.object = this;\r\n return data;\r\n }\r\n\r\n /**\r\n * Carbon's two IsCastingShadow overloads, dispatched on the second argument:\r\n * a position vector (length >= 3) selects the sphere-overlap overload\r\n * (cpp:338-364); anything else is the shadow-frustum overload (cpp:295-336),\r\n * whose Carbon out-param float& sizeInShadow becomes the optional trailing\r\n * length-1 array (out-params last).\r\n * @param {Object} cameraFrustum\r\n * @param {Object|Float32Array} shadowFrustumOrPosition\r\n * @param {Number} renderReasonOrRadius\r\n * @param {Array|Number} sizeInShadowOutOrRenderReason\r\n * @returns {Boolean}\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Overload dispatch by argument shape and a length-1 out array replace C++ overloading and the float& out-param; the shadow math is ported.\")\r\n IsCastingShadow(cameraFrustum, shadowFrustumOrPosition, renderReasonOrRadius, sizeInShadowOutOrRenderReason = null)\r\n {\r\n if (!this.display || !this.castShadow || !this.#hasUpdated)\r\n {\r\n return false;\r\n }\r\n\r\n const positionOverload = typeof shadowFrustumOrPosition?.length === \"number\" &&\r\n shadowFrustumOrPosition.length >= 3;\r\n const renderReason = positionOverload\r\n ? Number(sizeInShadowOutOrRenderReason ?? Tr2RenderReason.TR2RENDERREASON_NORMAL)\r\n : Number(renderReasonOrRadius ?? Tr2RenderReason.TR2RENDERREASON_NORMAL);\r\n\r\n if (renderReason === Tr2RenderReason.TR2RENDERREASON_REFLECTION &&\r\n !ShouldReflect(this.reflectionMode))\r\n {\r\n return false;\r\n }\r\n\r\n if (positionOverload)\r\n {\r\n // Carbon (cpp:338-364): squared distance between the world sphere and\r\n // the query sphere against their combined radius.\r\n if (!this.GetBoundingSphere(SHADOW_SPHERE_SCRATCH))\r\n {\r\n return false;\r\n }\r\n const position = shadowFrustumOrPosition;\r\n const radius = Number(renderReasonOrRadius) || 0;\r\n const dx = SHADOW_SPHERE_SCRATCH[0] - position[0];\r\n const dy = SHADOW_SPHERE_SCRATCH[1] - position[1];\r\n const dz = SHADOW_SPHERE_SCRATCH[2] - position[2];\r\n const combined = radius + SHADOW_SPHERE_SCRATCH[3];\r\n return dx * dx + dy * dy + dz * dz - combined * combined < 0;\r\n }\r\n\r\n // Carbon (cpp:295-336): shadow-frustum visibility, then the size in the\r\n // shadow map from the instance sphere nearest the shadow eye (falling back\r\n // to the whole world sphere).\r\n const shadowFrustum = shadowFrustumOrPosition;\r\n const sizeOut = sizeInShadowOutOrRenderReason;\r\n if (sizeOut)\r\n {\r\n sizeOut[0] = 0;\r\n }\r\n\r\n if (this.#worldBoundingSphere[3] <= 0)\r\n {\r\n return false;\r\n }\r\n\r\n let sizeInShadow = 0;\r\n if (shadowFrustum?.IsVisible?.(cameraFrustum, this.#worldBoundingSphere))\r\n {\r\n let sphere = this.#worldBoundingSphere;\r\n if (typeof this.mesh?.GetInstanceBoundsClosestToPoint === \"function\")\r\n {\r\n // Carbon: TransformCoord(shadowFrustum.GetEyePos(), Inverse(\r\n // m_worldTransform)) - single-matrix point transform (no composition).\r\n if (!mat4.invert(INVERSE_WORLD_SCRATCH, this.worldTransform))\r\n {\r\n mat4.identity(INVERSE_WORLD_SCRATCH);\r\n }\r\n const eyePos = shadowFrustum?.GetEyePos?.() ?? ZERO_VEC3;\r\n vec3.transformMat4(LOCAL_VIEW_SCRATCH, eyePos, INVERSE_WORLD_SCRATCH);\r\n const instanceBounds = this.mesh.GetInstanceBoundsClosestToPoint(LOCAL_VIEW_SCRATCH);\r\n if (instanceBounds)\r\n {\r\n // Carbon: instanceBounds.Transform(m_worldTransform) - single-matrix\r\n // sphere transform.\r\n sph3.set(\r\n INSTANCE_SPHERE_SCRATCH,\r\n instanceBounds.center[0],\r\n instanceBounds.center[1],\r\n instanceBounds.center[2],\r\n instanceBounds.radius\r\n );\r\n sph3.transformMat4(INSTANCE_SPHERE_SCRATCH, INSTANCE_SPHERE_SCRATCH, this.worldTransform);\r\n sphere = INSTANCE_SPHERE_SCRATCH;\r\n }\r\n }\r\n sizeInShadow = Number(shadowFrustum?.GetSizeInShadow?.(sphere)) || 0;\r\n }\r\n\r\n if (sizeOut)\r\n {\r\n sizeOut[0] = sizeInShadow;\r\n }\r\n return sizeInShadow > 5;\r\n }\r\n\r\n /** Carbon EveChildMesh::ChangeLOD (cpp:1052-1054) is an intentional no-op. */\r\n @carbon.method\r\n @impl.implemented\r\n ChangeLOD(_lod)\r\n {\r\n }\r\n\r\n /** Carbon EveChildMesh::RegisterComponents (cpp:239-269): LightOwner when\r\n * lights are authored; ReflectionRenderable (ShouldReflect) and ShadowCaster\r\n * (castShadow) only when a mesh is present; then forwards the attachments.\r\n * Gate m_display. \"MeshMorph\" stays OUT-OF-BAND: Carbon registers it at\r\n * baked-morph need inside BakeMorphs (cpp:1404-1409), not here - the JS\r\n * BakeMorphs stub is the site that would register it when the GPU morph\r\n * bake is ported. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.display)\r\n {\r\n if (this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n\r\n if (this.mesh !== null)\r\n {\r\n if (ShouldReflect(this.reflectionMode))\r\n {\r\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\r\n }\r\n if (this.castShadow)\r\n {\r\n registry.RegisterComponent(EveComponentType.ShadowCaster, this);\r\n }\r\n }\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.Register?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveChildMesh::UnRegisterComponents (cpp:275-290): forwards the\r\n * attachments only (own components were already removed by\r\n * EveEntity::UnRegister, EveEntity.cpp:90); no display re-check.\r\n * UnregisterAudioGeometry (cpp:277) is audio-engine-owned and unported. */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.UnRegister?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveChildMesh::GetLights (cpp:1638-1652): BOTH gates (empty\r\n * lights and display, cpp:1640 - unlike EveSpaceObject2's display-only),\r\n * then per light AddLight(manager, worldTransform, 1, bones, boneCount)\r\n * FOLLOWED by SetBrightnessMultiplier(m_activationStrength) - the\r\n * one-frame-lag order is contract (the submission uses the multiplier\r\n * stamped on the previous pass; the first pass uses the Tr2Light default\r\n * 1). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"GetBoneTransforms (cpp:1285-1307) rides the granny animation updater - awaits the JS animation seam; (null, 0) is passed per the file's UpdateAsyncronous convention.\")\r\n GetLights(lightManager)\r\n {\r\n if (!this.lights.length || !this.display)\r\n {\r\n return;\r\n }\r\n for (const light of this.lights)\r\n {\r\n light?.AddLight?.(lightManager, this.worldTransform, 1, null, 0);\r\n light?.SetBrightnessMultiplier?.(this.#activationStrength);\r\n }\r\n }\r\n\r\n /** Carbon EveChildMesh::GetPickingBatches (cpp:862-889) maps Tr2PickTypes\r\n * flags onto batch-type collections with transparent/additive special\r\n * casing; the pick-type flag enum is not yet ported, so the surface fails\r\n * loudly rather than mis-collecting. */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetPickingBatches(..._args)\r\n {\r\n throw new Error(\"EveChildMesh.GetPickingBatches is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Carbon EveChildMesh::InitializeAnimation (cpp:217-232) wires the\r\n * animationUpdater to the mesh geometry resource; awaits the JS animation\r\n * seam (no Tr2GrannyAnimation runtime). */\r\n @carbon.method\r\n @impl.notImplemented\r\n InitializeAnimation(..._args)\r\n {\r\n throw new Error(\"EveChildMesh.InitializeAnimation is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Carbon BakeMorphs runs the merge-morphs GPU compute pass; GPU-owned. */\r\n @carbon.method\r\n @impl.notImplemented\r\n BakeMorphs(..._args)\r\n {\r\n throw new Error(\"EveChildMesh.BakeMorphs is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Carbon UnbakeMorphs releases the baked-morph GPU allocation; GPU-owned. */\r\n @carbon.method\r\n @impl.notImplemented\r\n UnbakeMorphs(..._args)\r\n {\r\n throw new Error(\"EveChildMesh.UnbakeMorphs is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Carbon IsMeshBaked reads the baked-morph GPU allocation state; GPU-owned. */\r\n @carbon.method\r\n @impl.notImplemented\r\n IsMeshBaked(..._args)\r\n {\r\n throw new Error(\"EveChildMesh.IsMeshBaked is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n // Carbon s_instanceScreenSizeThreshold (EveChildMesh.cpp:22).\r\n static #instanceScreenSizeThreshold = 1;\r\n\r\n static Origin = Origin;\r\n\r\n static ReflectionMode = ReflectionMode;\r\n\r\n static Tr2Lod = Tr2Lod;\r\n\r\n}\r\n\r\nfunction ReadNamedMorph(values, name)\r\n{\r\n if (values instanceof Map)\r\n {\r\n return values.has(name) ? values.get(name) : undefined;\r\n }\r\n\r\n if (values && typeof values === \"object\" && Object.hasOwn(values, name))\r\n {\r\n return values[name];\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction ReadMorphWeight(value, name, source)\r\n{\r\n const weight = Number(value && typeof value === \"object\" ? value.weight : value);\r\n\r\n if (!Number.isFinite(weight))\r\n {\r\n throw new TypeError(`EveChildMesh ${source} morph target \"${name}\" weight must be finite`);\r\n }\r\n\r\n return weight;\r\n}\r\n\r\nfunction NormalizeMorphFilter(value)\r\n{\r\n if (typeof value === \"string\")\r\n {\r\n const normalized = value.toLowerCase();\r\n if (normalized === \"runtime\" || normalized === \"runtime_evaluated\") return 0;\r\n if (normalized === \"baked\") return 1;\r\n if (normalized === \"all\") return 2;\r\n }\r\n\r\n const filter = Number(value);\r\n if (filter === 0 || filter === 1 || filter === 2) return filter;\r\n throw new TypeError(`Unsupported EveChildMesh morph target filter \"${value}\"`);\r\n}\r\n"],"names":["INVERSE_WORLD_SCRATCH","mat4","create","LOCAL_VIEW_SCRATCH","vec3","INSTANCE_SPHERE_SCRATCH","vec4","SHADOW_SPHERE_SCRATCH","BOX_CORNER_SCRATCH","BOX_QUERY_SCRATCH","min","max","ZERO_VEC3","_EveChildMesh","_identity","EveChildMesh","EveChildTransform","e","_init_reflectionMode","_init_extra_reflectionMode","_init_transformModifiers","_init_extra_transformModifiers","_init_worldTransform","_init_extra_worldTransform","_init_display","_init_extra_display","_init_castShadow","_init_extra_castShadow","_init_mesh","_init_extra_mesh","_init_name","_init_extra_name","_init_rotation","_init_extra_rotation","_init_translation","_init_extra_translation","_init_scaling","_init_extra_scaling","_init_localTransform","_init_extra_localTransform","_init_decals","_init_extra_decals","_init_staticTransform","_init_extra_staticTransform","_init_animationUpdater","_init_extra_animationUpdater","_init_attachments","_init_extra_attachments","_init_lights","_init_extra_lights","_init_lowestLodVisible","_init_extra_lowestLodVisible","_init_minScreenSize","_init_extra_minScreenSize","_init_sortValueOffset","_init_extra_sortValueOffset","_init_sortValueScale","_init_extra_sortValueScale","_init_currentScreenSize","_init_extra_currentScreenSize","_init_currentInstanceScreenSize","_init_extra_currentInstanceScreenSize","_init_useSRT","_init_extra_useSRT","_init_updateAnimation","_init_extra_updateAnimation","_init_origin","_init_extra_origin","_init_instanceTransforms","_init_extra_instanceTransforms","_init_sofDna","_init_extra_sofDna","_init_sofParentHullName","_init_extra_sofParentHullName","_init_sofLocatorSetName","_init_extra_sofLocatorSetName","_init_sofLocatorIndex","_init_extra_sofLocatorIndex","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","schema","enum","list","read","boolean","objectRef","string","quat","float32","rebuild","array","carbon","method","impl","adapted","implemented","reason","contextual","notImplemented","constructor","args","runtimeEvaluatedOffset","runtimeEvaluatedCount","bakedOffset","bakedCount","allCount","reflectionMode","transformModifiers","worldTransform","display","castShadow","mesh","name","rotation","translation","scaling","fromValues","localTransform","decals","staticTransform","animationUpdater","attachments","lights","lowestLodVisible","minScreenSize","sortValueOffset","sortValueScale","currentScreenSize","currentInstanceScreenSize","useSRT","updateAnimation","origin","instanceTransforms","sofDna","sofParentHullName","sofLocatorSetName","sofLocatorIndex","Initialize","RebuildLocalTransform","Setup","scale","undefined","Number","SetInstanceTransforms","instances","next","transform","length","TypeError","push","clone","GetInstanceTransforms","SetMesh","SetOrigin","SetScale","copy","SetReflectionMode","mode","SetCastShadow","SetMinScreenSize","GetLocalToWorldTransform","out","GetName","SetName","String","AddTransformModifier","modifier","AddDecal","decal","AddAttachment","attachment","ClearAttachments","AddLight","light","ClearLights","IsAlwaysOn","SetShaderOption","value","GetMorphTargetNames","SetMorphTargetWeight","weight","GetMorphTargetWeight","UpdateMorphAnimationBuffer","names","Array","isArray","manual","GetMorphAnimations","records","map","index","ReadMorphWeight","ReadNamedMorph","baked","IsBakedMorph","GetBakedMorphTarget","IsInitialized","animated","record","runtime","inactive","GetMorphTargets","filter","normalized","NormalizeMorphFilter","offset","count","slice","GetSofSourceLocator","UpdateSyncronous","_updateContext","_params","UpdateAsyncronous","updateContext","params","parentTransform","localToWorldTransform","UpdateTransform","applyTransformModifiers","boneCount","bones","activationStrength","UpdateLights","bounds","GetBounds","Infinity","set","transformMat4","sph3","fromBounds","UpdateVisibility","_parentTransform","parentLod","Tr2Lod","TR2_LOD_HIGH","frustum","GetFrustum","invLodFactor","GetInvLodFactor","GetPixelSizeAccross","instanced","GetInstanceBoundsClosestToPoint","instanceBounds","invert","identity","viewPos","m_viewPos","GetViewPosition","center","radius","UseWithScreenSize","boxVisible","IsBoxVisible","GetRenderables","GetGeometryResource","GetInstancedRenderables","geometryResource","GetBoundingSphere","_query","HasTransparentBatches","GetAreas","TriBatchType","TRIBATCHTYPE_TRANSPARENT","IsVisible","IsSphereVisible","GetPixelSizeAccrossEst","size","call","threshold","GetVisibilityThreshold","visibilityThreshold","GetBatches","batches","batchType","perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","committed","GetShadowBatches","_shadowPixelSize","TRIBATCHTYPE_OPAQUE","GetSortValue","renderContext","viewPosition","x","y","z","Math","hypot","GetShadowPerObjectData","accumulator","GetPerObjectData","data","Allocate","Tr2PerObjectData","object","IsCastingShadow","cameraFrustum","shadowFrustumOrPosition","renderReasonOrRadius","sizeInShadowOutOrRenderReason","positionOverload","renderReason","TR2RENDERREASON_REFLECTION","ShouldReflect","position","dx","dy","dz","combined","shadowFrustum","sizeOut","sizeInShadow","sphere","eyePos","GetEyePos","GetSizeInShadow","ChangeLOD","_lod","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","ReflectionRenderable","ShadowCaster","Register","UnRegisterComponents","UnRegister","GetLights","lightManager","SetBrightnessMultiplier","GetPickingBatches","_args","Error","InitializeAnimation","BakeMorphs","UnbakeMorphs","IsMeshBaked","Origin","ReflectionMode","values","Map","has","get","Object","hasOwn","source","isFinite","toLowerCase"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveChildMesh.js","sources":["../../../../src/eve/child/EveChildMesh.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildMesh.h\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildMesh.cpp\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildMesh_Blue.cpp\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\nimport { sph3 } from \"@carbonenginejs/runtime-utils/sph3\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\nimport { getBoneList } from \"../../trinityCore/Tr2GrannyAnimation.js\";\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\nimport { carbon, impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { TriBatchType } from \"@carbonenginejs/runtime-utils/graphics\";\nimport { EveChildTransform, applyTransformModifiers } from \"./EveChildTransform.js\";\nimport { Origin } from \"../../generated/eve/child/enums.js\";\nimport { ReflectionMode } from \"../../generated/eve/enums.js\";\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\nimport { Tr2RenderReason } from \"../../generated/trinityCore/enums.js\";\nimport { Tr2Lod } from \"../EveLODHelper.js\";\nimport { Tr2PerObjectData } from \"../../trinityCore/Tr2PerObjectData.js\";\nimport { TR2_PICK_TYPE_DEFAULT, Tr2PickType } from \"../../trinityCore/Tr2PickType.js\";\nimport {\n createChildPerObjectRecords,\n inheritParentPerObjectData,\n stampChildTransforms\n} from \"../perObjectData/childPerObjectRecords.js\";\n\n// Module scratch for the hot per-frame visibility/shadow paths (allocation\n// rules: copy-into, never allocate per call; child updates run sequentially so\n// the scratch is non-reentrant by construction).\nconst INVERSE_WORLD_SCRATCH = mat4.create();\nconst LOCAL_VIEW_SCRATCH = vec3.create();\nconst INSTANCE_SPHERE_SCRATCH = vec4.create();\nconst SHADOW_SPHERE_SCRATCH = vec4.create();\nconst BOX_CORNER_SCRATCH = vec3.create();\nconst BOX_QUERY_SCRATCH = { min: vec3.create(), max: vec3.create() };\nconst ZERO_VEC3 = vec3.create();\n\n// Carbon's (nullptr, 0) bone result - frozen so callers cannot mutate it.\nconst NO_BONE_TRANSFORMS = Object.freeze({ bones: null, boneCount: 0 });\n\n\n/**\n * Space-object child that draws one mesh under its own transform, owning its\n * decals, lights, attachments, morph weights, world bounds and screen-size LOD\n * state.\n */\n@type.define({ className: \"EveChildMesh\", family: \"eve/child\" })\nexport class EveChildMesh extends EveChildTransform\n{\n #isMorphsBaked = false;\n\n #morphAnimationBuffer = [];\n\n #morphAnimationOffsets = {\n runtimeEvaluatedOffset: 0,\n runtimeEvaluatedCount: 0,\n bakedOffset: 0,\n bakedCount: 0,\n allCount: 0\n };\n\n // Carbon m_isVisible/m_instancesVisible/m_hasUpdated/m_activationStrength:\n // runtime-only frame state (never persisted; Carbon keeps them out of the\n // Blue surface too).\n #isVisible = false;\n\n #instancesVisible = false;\n\n #hasUpdated = false;\n\n #activationStrength = 1;\n\n /** m_vsData / m_psData - this child's PERSISTENT per-object record pair. */\n #perObjectData = createChildPerObjectRecords();\n\n /** Carbon's local `lastWorldTransform` (cpp:912), kept across frames here. */\n #lastWorldTransform = mat4.create();\n\n // Carbon m_worldBoundingBox/m_worldBoundingSphere: world-space bounds\n // refreshed by UpdateAsyncronous; the sphere is invalid while radius <= 0.\n #worldBoundsMin = vec3.create();\n\n #worldBoundsMax = vec3.create();\n\n #worldBoundsValid = false;\n\n #worldBoundingSphere = vec4.create();\n\n @io.notify\n @io.persist\n @type.int32\n @schema.enum(\"ReflectionMode\")\n reflectionMode = 3;\n\n @io.persist\n @type.list(\"IEveChildTransformModifier\")\n transformModifiers = [];\n\n @io.read\n @type.mat4\n worldTransform = mat4.create();\n\n @io.notify\n @io.persist\n @type.boolean\n display = true;\n\n @io.notify\n @io.persist\n @type.boolean\n castShadow = false;\n\n @io.notify\n @io.persist\n @type.objectRef(\"Tr2MeshBase\")\n mesh = null;\n\n @io.persist\n @type.string\n name = \"\";\n\n @io.persist\n @type.quat\n rotation = quat.create();\n\n @io.persist\n @type.vec3\n translation = vec3.create();\n\n @io.persist\n @type.vec3\n scaling = vec3.fromValues(1, 1, 1);\n\n @io.persist\n @type.mat4\n localTransform = mat4.create();\n\n @io.persist\n @type.list(\"EveSpaceObjectDecal\")\n decals = [];\n\n @io.persist\n @type.boolean\n staticTransform = false;\n\n @io.notify\n @io.persist\n @type.objectRef(\"Tr2GrannyAnimation\")\n animationUpdater = null;\n\n @io.persist\n @type.list(\"IEveSpaceObjectAttachment\")\n attachments = [];\n\n @io.persist\n @type.list(\"Tr2Light\")\n lights = [];\n\n @io.persist\n @type.int32\n @schema.enum(\"Tr2Lod\")\n lowestLodVisible = 0;\n\n @io.persist\n @type.float32\n minScreenSize = 0;\n\n @io.persist\n @type.float32\n sortValueOffset = 0;\n\n @io.persist\n @type.float32\n sortValueScale = 1;\n\n @io.read\n @type.float32\n currentScreenSize = -1;\n\n @io.read\n @type.float32\n currentInstanceScreenSize = -1;\n\n @io.persist\n @type.boolean\n useSRT = true;\n\n @io.persist\n @type.boolean\n updateAnimation = true;\n\n // SOF-authored placement/instance values; persisted so the values\n // interchange reproduces Carbon's hidden child placement state.\n @io.persist\n @type.int32\n @schema.enum(\"Origin\")\n origin = 0;\n\n @io.rebuild(\"instanceBuffer\")\n @io.persist\n @type.array(\"mat4\")\n instanceTransforms = [];\n\n @io.persist\n @type.string\n sofDna = \"\";\n\n @io.persist\n @type.string\n sofParentHullName = \"\";\n\n @io.persist\n @type.string\n sofLocatorSetName = \"\";\n\n @io.persist\n @type.string\n sofLocatorIndex = \"\";\n\n /**\n * Rebuilds the local transform up front when the child is marked\n * staticTransform, since UpdateTransform will not rebuild it on later frames.\n */\n @carbon.method\n @impl.adapted\n Initialize()\n {\n if (this.staticTransform)\n {\n this.RebuildLocalTransform();\n }\n\n // cpp:84 - bind the updater to this mesh's geometry.\n this.InitializeAnimation();\n\n return true;\n }\n\n /**\n * Applies the authored scale/rotation/translation and, when supplied, the\n * lowest LOD level at which the child stays visible; returns the rebuilt local\n * transform.\n */\n @carbon.method\n @impl.implemented\n Setup(scale = null, rotation = null, translation = null, lowestLodVisible = null)\n {\n super.Setup(scale, rotation, translation, lowestLodVisible);\n if (lowestLodVisible !== null && lowestLodVisible !== undefined)\n {\n this.lowestLodVisible = Number(lowestLodVisible) | 0;\n }\n return this.localTransform;\n }\n\n /**\n * Replaces the instance placement list with clones of the supplied matrices, so later caller mutations do not reach the child.\n * @param {Iterable<Float32Array>} instances - 16-value matrices; a wrongly sized entry throws TypeError\n * @returns {Array<Float32Array>} the stored list\n */\n @carbon.method\n @impl.implemented\n SetInstanceTransforms(instances)\n {\n const next = [];\n for (const transform of instances ?? [])\n {\n if (!transform || transform.length !== 16)\n {\n throw new TypeError(\"EveChildMesh instance transforms must contain 16 values\");\n }\n next.push(mat4.clone(transform));\n }\n this.instanceTransforms = next;\n return this.instanceTransforms;\n }\n\n /**\n * Returns the live instance transform list, not a copy - mutating it changes\n * what the child renders.\n */\n @carbon.method\n @impl.adapted\n GetInstanceTransforms()\n {\n return this.instanceTransforms;\n }\n\n /**\n * Assigns the Tr2MeshBase this child draws; a nullish value clears it, which\n * also makes the child permanently invisible (UpdateVisibility requires a\n * mesh).\n */\n @carbon.method\n @impl.implemented\n SetMesh(mesh)\n {\n this.mesh = mesh ?? null;\n }\n\n /**\n * Records whether this child's placement was authored in space or by SOF (the\n * Origin enum).\n */\n @carbon.method\n @impl.implemented\n SetOrigin(origin)\n {\n this.origin = Number(origin) | 0;\n }\n\n /**\n * Copies the given scale into the child's SRT scaling; it reaches the world\n * transform on the next local-transform rebuild.\n */\n @carbon.method\n @impl.implemented\n SetScale(scale)\n {\n vec3.copy(this.scaling, scale);\n }\n\n /**\n * Sets the reflection mode, which decides whether the child registers as a\n * ReflectionRenderable and whether it casts shadows during reflection passes.\n */\n @carbon.method\n @impl.implemented\n SetReflectionMode(mode)\n {\n this.reflectionMode = Number(mode) | 0;\n }\n\n /**\n * Sets whether the child registers as a shadow caster and contributes opaque\n * shadow batches.\n */\n @carbon.method\n @impl.implemented\n SetCastShadow(castShadow)\n {\n this.castShadow = !!castShadow;\n }\n\n /**\n * Sets the minimum screen size, in pixels across, that the child's world\n * bounding sphere must reach - after the frame's inverse LOD factor scaling -\n * before UpdateVisibility marks it visible.\n */\n @carbon.method\n @impl.implemented\n SetMinScreenSize(minScreenSize)\n {\n this.minScreenSize = Number(minScreenSize);\n }\n\n /** Carbon EveChildMesh::GetLocalToWorldTransform (cpp:1047-1050); the\n * optional out follows the EveChildInstancedMeshes copy-out shape. */\n @carbon.method\n @impl.implemented\n GetLocalToWorldTransform(out = null)\n {\n if (out)\n {\n return mat4.copy(out, this.worldTransform);\n }\n return this.worldTransform;\n }\n\n /**\n * The authored name, persisted with the child and used to identify it in the\n * parent graph.\n */\n @carbon.method\n @impl.implemented\n GetName()\n {\n return this.name;\n }\n\n /** Sets the authored child name, coercing nullish to the empty string. */\n @carbon.method\n @impl.implemented\n SetName(name)\n {\n this.name = String(name ?? \"\");\n }\n\n /**\n * Appends a transform modifier; modifiers fold over the child's world\n * transform in insertion order on each async update.\n */\n @carbon.method\n @impl.implemented\n AddTransformModifier(modifier)\n {\n this.transformModifiers.push(modifier);\n }\n\n /**\n * Appends a decal; decals refresh their visibility only while the child itself\n * is visible, and ride along in GetRenderables when the mesh has a geometry\n * resource.\n */\n @carbon.method\n @impl.implemented\n AddDecal(decal)\n {\n this.decals.push(decal);\n }\n\n /**\n * Appends an attachment; attachments refresh their lights and visibility every\n * frame regardless of the child's own visibility.\n */\n @carbon.method\n @impl.implemented\n AddAttachment(attachment)\n {\n this.attachments.push(attachment);\n }\n\n /**\n * Drops every attachment, removing their lights, batches and visibility\n * updates from this child.\n */\n @carbon.method\n @impl.implemented\n ClearAttachments()\n {\n this.attachments.length = 0;\n }\n\n /**\n * Appends a light, submitted to the light manager from the child's world\n * transform while the child displays.\n */\n @carbon.method\n @impl.implemented\n AddLight(light)\n {\n this.lights.push(light);\n }\n\n /**\n * Drops every light, which also stops the child registering as a LightOwner on\n * the next component registration.\n */\n @carbon.method\n @impl.implemented\n ClearLights()\n {\n this.lights.length = 0;\n }\n\n /** Returns true unconditionally - a child mesh reports itself as always on. */\n @carbon.method\n @impl.implemented\n IsAlwaysOn()\n {\n return true;\n }\n\n /** Forwards a shader option to the mesh, every decal and every attachment. */\n @carbon.method\n @impl.implemented\n SetShaderOption(name, value)\n {\n this.mesh?.SetShaderOption?.(name, value);\n for (const decal of this.decals)\n {\n decal?.SetShaderOption?.(name, value);\n }\n for (const attachment of this.attachments)\n {\n attachment?.SetShaderOption?.(name, value);\n }\n }\n\n /**\n * Names of the mesh's morph targets in index order, or an empty array when the\n * mesh exposes none; the indices line up with the records GetMorphTargets\n * returns.\n */\n @carbon.method\n @impl.adapted\n GetMorphTargetNames()\n {\n return this.mesh?.GetMorphTargetNames?.() ?? [];\n }\n\n /**\n * Writes a named morph weight on the mesh; it only reaches the render path\n * after the next UpdateMorphAnimationBuffer pass re-sorts the indexed buffer.\n */\n @carbon.method\n @impl.adapted\n SetMorphTargetWeight(name, weight)\n {\n this.mesh?.SetMorphTargetWeight?.(name, weight);\n }\n\n /**\n * Reads a named morph weight straight from the mesh (0 when it has no such\n * target), bypassing any animation-driven value the morph buffer may have\n * applied.\n */\n @carbon.method\n @impl.adapted\n GetMorphTargetWeight(name)\n {\n return this.mesh?.GetMorphTargetWeight?.(name) ?? 0;\n }\n\n /** Rebuilds the source-backed indexed morph buffer from manual and animation weights. */\n @impl.adapted\n UpdateMorphAnimationBuffer()\n {\n const names = this.mesh?.GetMorphTargetNames?.();\n\n this.#morphAnimationOffsets = {\n runtimeEvaluatedOffset: 0,\n runtimeEvaluatedCount: 0,\n bakedOffset: 0,\n bakedCount: 0,\n allCount: 0\n };\n\n if (!Array.isArray(names))\n {\n this.#morphAnimationBuffer = [];\n return 0;\n }\n\n const manual = this.mesh?.GetMorphAnimations?.();\n const records = names.map((name, index) => ({\n index,\n weight: ReadMorphWeight(\n ReadNamedMorph(manual, name) ?? this.mesh?.GetMorphTargetWeight?.(name) ?? 0,\n name,\n \"mesh\"\n ),\n baked: !!(this.mesh?.IsBakedMorph?.(index)\n ?? this.mesh?.GetBakedMorphTarget?.(name)\n ?? false)\n }));\n\n if (this.animationUpdater?.IsInitialized?.())\n {\n const animated = this.animationUpdater.GetMorphAnimations?.();\n\n for (const record of records)\n {\n const name = names[record.index];\n const value = ReadNamedMorph(animated, name);\n\n if (value !== undefined)\n {\n record.weight = ReadMorphWeight(value, name, \"animation\");\n }\n }\n }\n\n const runtime = [];\n const baked = [];\n const inactive = [];\n\n for (const record of records)\n {\n if (record.weight >= 0.001)\n {\n (record.baked ? baked : runtime).push(record);\n }\n else\n {\n inactive.push(record);\n }\n }\n\n this.#morphAnimationBuffer = [ ...runtime, ...baked, ...inactive ];\n this.#morphAnimationOffsets.runtimeEvaluatedCount = runtime.length;\n this.#morphAnimationOffsets.bakedOffset = runtime.length;\n this.#morphAnimationOffsets.bakedCount = baked.length;\n this.#morphAnimationOffsets.allCount = runtime.length + baked.length;\n return this.#morphAnimationOffsets.allCount;\n }\n\n /** Returns detached active indexed morph records for the native filter. */\n @impl.adapted\n GetMorphTargets(filter = 2)\n {\n const normalized = NormalizeMorphFilter(filter);\n let offset = 0;\n let count = 0;\n\n if (normalized === 2)\n {\n count = this.#morphAnimationOffsets.allCount;\n }\n else if (normalized === 0)\n {\n offset = this.#isMorphsBaked\n ? this.#morphAnimationOffsets.runtimeEvaluatedOffset\n : 0;\n count = this.#isMorphsBaked\n ? this.#morphAnimationOffsets.runtimeEvaluatedCount\n : this.#morphAnimationOffsets.allCount;\n }\n else\n {\n offset = this.#morphAnimationOffsets.bakedOffset;\n count = this.#morphAnimationOffsets.bakedCount;\n }\n\n return this.#morphAnimationBuffer.slice(offset, offset + count)\n .map(value => ({ index: value.index, weight: value.weight }));\n }\n\n /**\n * Always returns null: a child mesh exposes no packed area-id lookup, since\n * its SOF identity lives directly on its\n * sofParentHullName/sofLocatorSetName/sofLocatorIndex fields.\n */\n @carbon.method\n @impl.adapted\n GetSofSourceLocator()\n {\n return null;\n }\n\n /**\n * Sync-side frame update (Carbon EveChildMesh::UpdateSyncronous,\n * cpp:1002-1045). Carbon's body is entirely audio-geometry registration\n * (cpp:1004-1010, 1044 - engine/audio-owned, omitted) plus animationUpdater\n * re-binding and PrePhysicsAnimation stepping (cpp:1011-1042 - skipped: the\n * JS animation seam is absent, there is no Tr2GrannyAnimation runtime), so\n * the port is a documented frame-contract no-op.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Audio-geometry registration is engine-owned and the animationUpdater branches await the JS animation seam; nothing else remains in Carbon's body.\")\n UpdateSyncronous(_updateContext, _params)\n {\n }\n\n /**\n * Per-frame async update (Carbon EveChildMesh::UpdateAsyncronous,\n * cpp:903-1000): rebuild the world transform from the parent, fold the\n * transform modifiers over it, store the activation strength, refresh the\n * attachment lights, the morph buffer, and the world bounds. The GPU ring\n * buffer advance/per-object-data invalidation (cpp:905-909), audio geometry\n * (cpp:920-930), parent VS/PS struct refresh (cpp:932-960), and the skinned\n * GetBounds overload are not modelled, hence @impl.adapted.\n * @param {Object} updateContext - frame context (EveUpdateContext), threaded to modifiers\n * @param {EveChildUpdateParams} params - localToWorldTransform + boneCount/bones\n * @returns {Float32Array} worldTransform\n */\n @carbon.method\n @carbon.contextual([\"camera\"])\n @impl.adapted\n UpdateAsyncronous(updateContext, params)\n {\n const parentTransform = params?.localToWorldTransform;\n\n // Carbon captures the OUTGOING transform before rebuilding (cpp:912).\n mat4.copy(this.#lastWorldTransform, this.worldTransform);\n\n if (parentTransform && parentTransform.length === 16)\n {\n this.UpdateTransform(parentTransform);\n }\n\n applyTransformModifiers(\n this,\n updateContext,\n params?.boneCount ?? 0,\n params?.bones ?? null\n );\n\n // Carbon cpp:932-954: inherit the hull's per-object values, rebase the clip\n // data by this child's translation, then stamp our own transforms.\n inheritParentPerObjectData(this.#perObjectData, params?.spaceObjectParent, this.translation);\n stampChildTransforms(this.#perObjectData, this.worldTransform, this.#lastWorldTransform);\n\n this.#activationStrength = Number(params?.activationStrength ?? 1);\n\n // Carbon (cpp:962-970): attachments refresh their lights from the updated\n // world transform. Bones come from GetBoneTransforms (animationUpdater) -\n // null until the JS animation seam exists.\n for (const attachment of this.attachments)\n {\n attachment?.UpdateLights?.(this.worldTransform, null, 0, this.#activationStrength, 0);\n }\n\n this.UpdateMorphAnimationBuffer();\n\n // Carbon (cpp:974-997): world AABB from the mesh bounds, world sphere\n // enclosing it. The skinned GetBounds overload (animation transforms +\n // morph targets, cpp:977-982) awaits the animation seam; Tr2MeshBase::\n // GetBounds itself is a recorded gap (CARBON-PARITY-REVIEW-2026-07-23.md\n // section 2.3), hence the duck call (Tr2InstancedMesh implements it).\n this.#worldBoundsValid = false;\n const bounds = this.mesh?.GetBounds?.();\n\n if (bounds?.min && bounds?.max)\n {\n this.#worldBoundsMin[0] = this.#worldBoundsMin[1] = this.#worldBoundsMin[2] = Infinity;\n this.#worldBoundsMax[0] = this.#worldBoundsMax[1] = this.#worldBoundsMax[2] = -Infinity;\n for (let index = 0; index < 8; index++)\n {\n vec3.set(\n BOX_CORNER_SCRATCH,\n index & 1 ? bounds.max[0] : bounds.min[0],\n index & 2 ? bounds.max[1] : bounds.min[1],\n index & 4 ? bounds.max[2] : bounds.min[2]\n );\n vec3.transformMat4(BOX_CORNER_SCRATCH, BOX_CORNER_SCRATCH, this.worldTransform);\n vec3.min(this.#worldBoundsMin, this.#worldBoundsMin, BOX_CORNER_SCRATCH);\n vec3.max(this.#worldBoundsMax, this.#worldBoundsMax, BOX_CORNER_SCRATCH);\n }\n this.#worldBoundsValid = true;\n sph3.fromBounds(this.#worldBoundingSphere, this.#worldBoundsMin, this.#worldBoundsMax);\n }\n else\n {\n sph3.set(this.#worldBoundingSphere, 0, 0, 0, 0);\n }\n\n this.#hasUpdated = true;\n return this.worldTransform;\n }\n\n /**\n * Frame visibility + LOD state (Carbon EveChildMesh::UpdateVisibility,\n * cpp:366-463): screen size via the frustum, invLodFactor scaling, the\n * minScreenSize/lowestLodVisible gates, the per-instance visibility gate,\n * and the attachment/decal visibility fan-out. Carbon recomputes the local\n * mesh bounds here (cpp:380-394) but consumes only the world sphere/box\n * computed in UpdateAsyncronous, so the dead recompute is skipped. The\n * raytracing branch (cpp:450-462) is engine-owned and omitted.\n * @param {Object} updateContext - frame context (frustum + invLodFactor ducks)\n * @param {Float32Array} _parentTransform\n * @param {Number} parentLod - parent Tr2Lod level\n * @returns {Boolean} isVisible\n */\n /**\n * The mesh's bone palette, as a borrowed Float4x3 buffer and its bone count.\n *\n * Carbon `EveChildMesh::GetBoneTransforms` (cpp:1285-1307). Carbon branches:\n * the updater's own palette when it has a mesh binding, otherwise a separate\n * `Tr2AnimationMeshBinding` palette. Only the first branch exists here -\n * `Tr2AnimationMeshBinding` is unported - so a mesh relying on the second\n * gets no bones rather than the wrong ones.\n *\n * Carbon also assigns `accumulatedTransforms` at cpp:1295 and never reads it;\n * a dead local, not reproduced.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Tr2AnimationMeshBinding is unported, so the second bone source (Carbon cpp:1303-1306) yields no bones rather than wrong ones.\")\n GetBoneTransforms()\n {\n const updater = this.animationUpdater;\n\n if (!updater?.IsInitialized?.())\n {\n return NO_BONE_TRANSFORMS;\n }\n\n // cpp:1297-1302 - the updater's own palette when it binds to the mesh.\n if (updater.HasMeshBinding?.())\n {\n return getBoneList(updater);\n }\n\n // cpp:1303-1306 would fall to a Tr2AnimationMeshBinding palette here. That\n // class is unported, so this yields no bones rather than the wrong ones.\n return NO_BONE_TRANSFORMS;\n }\n\n @carbon.method\n @impl.adapted\n @impl.reason(\"Bone-fed decal bounds still await the decal seam and the raytracing refresh is engine-owned; the LOD/screen-size math and the bone-fed attachment pass are ported.\")\n UpdateVisibility(updateContext, _parentTransform = null, parentLod = Tr2Lod.TR2_LOD_HIGH)\n {\n this.#isVisible = false;\n this.currentScreenSize = -1;\n this.#instancesVisible = false;\n this.currentInstanceScreenSize = -1;\n\n if (!this.#hasUpdated)\n {\n return false;\n }\n\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\n const invLodFactor = Number(updateContext?.GetInvLodFactor?.() ?? updateContext?.invLodFactor) || 1;\n\n if (this.mesh)\n {\n this.currentScreenSize = Number(frustum?.GetPixelSizeAccross?.(this.#worldBoundingSphere) ?? Infinity) || 0;\n\n // Cached Tr2InstancedMesh downcast in Carbon (m_instancedMesh); the JS\n // port duck-types the instanced surface instead.\n const instanced = typeof this.mesh.GetInstanceBoundsClosestToPoint === \"function\";\n let instanceBounds = null;\n\n if (instanced)\n {\n // Carbon: TransformCoord(frustum.m_viewPos, Inverse(m_worldTransform))\n // - a single-matrix point transform (no composition; TransformCoord\n // maps to vec3.transformMat4 unchanged per the math conventions).\n if (!mat4.invert(INVERSE_WORLD_SCRATCH, this.worldTransform))\n {\n mat4.identity(INVERSE_WORLD_SCRATCH);\n }\n const viewPos = frustum?.m_viewPos ?? frustum?.viewPos ?? frustum?.GetViewPosition?.() ?? ZERO_VEC3;\n vec3.transformMat4(LOCAL_VIEW_SCRATCH, viewPos, INVERSE_WORLD_SCRATCH);\n instanceBounds = this.mesh.GetInstanceBoundsClosestToPoint(LOCAL_VIEW_SCRATCH);\n }\n\n if (instanceBounds)\n {\n // Carbon: instanceBounds.Transform(m_worldTransform) - single-matrix\n // sphere transform, ported via sph3.transformMat4.\n sph3.set(\n INSTANCE_SPHERE_SCRATCH,\n instanceBounds.center[0],\n instanceBounds.center[1],\n instanceBounds.center[2],\n instanceBounds.radius\n );\n sph3.transformMat4(INSTANCE_SPHERE_SCRATCH, INSTANCE_SPHERE_SCRATCH, this.worldTransform);\n this.currentInstanceScreenSize = Number(frustum?.GetPixelSizeAccross?.(INSTANCE_SPHERE_SCRATCH) ?? Infinity) || 0;\n this.mesh.UseWithScreenSize?.(this.currentInstanceScreenSize, INSTANCE_SPHERE_SCRATCH[3]);\n }\n else\n {\n // Carbon uses std::numeric_limits<float>::max(); Infinity keeps the\n // instance gate permanently open the same way.\n this.currentInstanceScreenSize = Infinity;\n this.mesh.UseWithScreenSize?.(this.currentScreenSize, this.#worldBoundingSphere[3]);\n }\n\n this.currentScreenSize *= invLodFactor;\n this.currentInstanceScreenSize *= invLodFactor;\n\n BOX_QUERY_SCRATCH.min = this.#worldBoundsMin;\n BOX_QUERY_SCRATCH.max = this.#worldBoundsMax;\n const boxVisible = this.#worldBoundsValid &&\n (frustum?.IsBoxVisible ? !!frustum.IsBoxVisible(BOX_QUERY_SCRATCH) : true);\n\n if (boxVisible)\n {\n this.#isVisible = parentLod >= this.lowestLodVisible && this.currentScreenSize >= this.minScreenSize;\n this.#instancesVisible = this.#isVisible &&\n this.currentInstanceScreenSize >= EveChildMesh.#instanceScreenSizeThreshold;\n }\n }\n\n // Carbon (cpp:427-435): attachments always refresh visibility, fed the bone\n // palette so a bone-parented attachment is placed by its bone.\n const { bones, boneCount } = this.GetBoneTransforms();\n\n for (const attachment of this.attachments)\n {\n attachment?.UpdateVisibility?.(updateContext, this.worldTransform, bones, boneCount);\n }\n\n if (this.#isVisible)\n {\n for (const decal of this.decals)\n {\n // Carbon (cpp:441-446) feeds animated bone matrices to the decal first\n // - skipped until the JS animation seam exists. Carbon passes\n // &m_parentData (per-object shading struct, GPU seam); the owning\n // child stands in as the duck-typed parent.\n decal?.UpdateVisibility?.(updateContext, this);\n }\n }\n\n return this.#isVisible;\n }\n\n /**\n * Collects this child (and its decals) as renderables (Carbon\n * EveChildMesh::GetRenderables, cpp:571-616): instanced meshes contribute\n * only while the per-instance gate passed; decals ride along through their\n * duck-typed renderable collectors (mesh cache is engine-owned, passed null\n * as in EveSpaceObject2.GetRenderables).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"The decal mesh cache is engine-owned (null placeholder); collection structure is ported.\")\n GetRenderables(out = [])\n {\n if (!this.#isVisible)\n {\n return out;\n }\n\n const instanced = typeof this.mesh?.GetInstanceBoundsClosestToPoint === \"function\";\n\n if (instanced)\n {\n if (this.#instancesVisible)\n {\n out.push(this);\n if (this.decals.length && this.mesh.GetGeometryResource?.())\n {\n for (const decal of this.decals)\n {\n decal?.GetInstancedRenderables?.(out, null, this.mesh, this.currentInstanceScreenSize);\n }\n }\n }\n }\n else\n {\n out.push(this);\n const geometryResource = this.mesh?.GetGeometryResource?.();\n if (this.decals.length && geometryResource)\n {\n for (const decal of this.decals)\n {\n decal?.GetRenderables?.(out, null, geometryResource, this.currentScreenSize);\n }\n }\n }\n\n return out;\n }\n\n /** Carbon EveChildMesh::GetBoundingSphere (cpp:618-627): the realized world\n * sphere, valid only after an update produced bounds (radius > 0). */\n @carbon.method\n @impl.implemented\n GetBoundingSphere(out = vec4.create(), _query = 0)\n {\n if (this.#worldBoundingSphere[3] > 0)\n {\n vec4.copy(out, this.#worldBoundingSphere);\n return true;\n }\n return false;\n }\n\n /** Carbon EveChildMesh::HasTransparentBatches (cpp:629-637). */\n @carbon.method\n @impl.implemented\n HasTransparentBatches()\n {\n if (this.display && this.mesh)\n {\n return (this.mesh.GetAreas?.(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0;\n }\n return false;\n }\n\n /** Carbon EveChildMesh::IsVisible (cpp:639-650): sphere-in-frustum plus the\n * estimated pixel size against the context visibility threshold. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Frustum and threshold arrive via the duck-typed update context instead of renderer state.\")\n IsVisible(updateContext)\n {\n if (this.#worldBoundingSphere[3] > 0)\n {\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\n if (frustum?.IsSphereVisible?.(this.#worldBoundingSphere) !== false)\n {\n const method = frustum?.GetPixelSizeAccrossEst ?? frustum?.GetPixelSizeAccross;\n const size = Number(typeof method === \"function\" ? method.call(frustum, this.#worldBoundingSphere) : 0) || 0;\n const threshold = Number(updateContext?.GetVisibilityThreshold?.() ?? updateContext?.visibilityThreshold) || 0;\n return size >= threshold;\n }\n }\n return false;\n }\n\n /** Carbon EveChildMesh::GetBatches (cpp:652-670): the mesh delegates per\n * batch type and activated attachments recurse. Carbon also passes\n * min(currentInstanceScreenSize, currentScreenSize) for LOD selection and a\n * reverse-winding flag from Determinant(m_worldTransform) < 0; both are\n * resolved by the engine at batch realization in the GPU-free port.\n * Returns whether any batch was committed (JS addition; Carbon returns\n * void). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Screen-size LOD selection and winding reversal are engine-resolved at realization; delegation structure is ported.\")\n GetBatches(batches, batchType, perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\n {\n if (!this.display)\n {\n return false;\n }\n\n let committed = false;\n\n if (this.mesh)\n {\n committed = this.mesh.GetBatches(batches, this.mesh.GetAreas(batchType), perObjectData) === true;\n }\n\n if (this.#activationStrength !== 0)\n {\n for (const attachment of this.attachments)\n {\n committed = attachment?.GetBatches?.(batches, batchType, perObjectData, reason) === true || committed;\n }\n }\n\n return committed;\n }\n\n /** Carbon EveChildMesh::GetShadowBatches (cpp:672-681): the OPAQUE areas\n * only, gated on display/mesh/hasUpdated. shadowPixelSize and the\n * reverse-winding flag are engine-resolved at realization. Returns whether\n * any batch was committed (JS addition; Carbon returns void). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"shadowPixelSize LOD selection and winding reversal are engine-resolved at realization; delegation structure is ported.\")\n GetShadowBatches(batches, perObjectData, _shadowPixelSize)\n {\n if (this.display && this.mesh && this.#hasUpdated)\n {\n return this.mesh.GetBatches(batches, this.mesh.GetAreas(TriBatchType.TRIBATCHTYPE_OPAQUE), perObjectData) === true;\n }\n return false;\n }\n\n /** Carbon EveChildMesh::GetSortValue (cpp:787-792): view distance scaled by\n * sortValueScale plus sortValueOffset. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\n GetSortValue(renderContext = null)\n {\n const viewPosition = renderContext?.GetViewPosition?.();\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\n return Math.hypot(x, y, z) * this.sortValueScale + this.sortValueOffset;\n }\n\n /** Carbon EveChildMesh::GetShadowPerObjectData (cpp:794-797) forwards the\n * shadow pass to the same per-object record. */\n @carbon.method\n @impl.implemented\n GetShadowPerObjectData(accumulator = null)\n {\n return this.GetPerObjectData(accumulator);\n }\n\n /**\n * Carbon EveChildMesh::GetPerObjectData (cpp:799-843): resets the morph\n * counters, uploads the bone and morph rings, then hands back a handle over\n * this child's two PERSISTENT buffers.\n *\n * The ring OFFSETS (`boneOffsets[0..1]`, `morphTargetAnimationDataOffset`,\n * `morphTargetVertexDataOffset`, `bakedMorphTargetVertexDataOffset`) are GPU\n * addresses with no CPU derivation, so they keep their defaults; the counts,\n * which are CPU-known, are written.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"GPU ring-buffer offsets have no CPU derivation and keep their defaults; every CPU-known field is filled.\")\n GetPerObjectData(_accumulator = null)\n {\n this.#perObjectData.vs.Set(\"activeMorphTargetsCount\", [ 0 ]);\n // Carbon seeds the baked-morph offset with UINT32_MAX, not zero.\n this.#perObjectData.vs.Set(\"bakedMorphTargetVertexDataOffset\", [ 0xffffffff ]);\n\n if (this.animationUpdater?.IsInitialized?.())\n {\n const boneCount = this.animationUpdater.GetMeshBoneCount?.() ?? 0;\n this.#perObjectData.vs.SetIndex(\"boneOffsets\", 2, [ boneCount ]);\n }\n\n return { vs: this.#perObjectData.vs, ps: this.#perObjectData.ps };\n }\n\n /**\n * Carbon's two IsCastingShadow overloads, dispatched on the second argument:\n * a position vector (length >= 3) selects the sphere-overlap overload\n * (cpp:338-364); anything else is the shadow-frustum overload (cpp:295-336),\n * whose Carbon out-param float& sizeInShadow becomes the optional trailing\n * length-1 array (out-params last).\n * @param {Object} cameraFrustum\n * @param {Object|Float32Array} shadowFrustumOrPosition\n * @param {Number} renderReasonOrRadius\n * @param {Array|Number} sizeInShadowOutOrRenderReason\n * @returns {Boolean}\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Overload dispatch by argument shape and a length-1 out array replace C++ overloading and the float& out-param; the shadow math is ported.\")\n IsCastingShadow(cameraFrustum, shadowFrustumOrPosition, renderReasonOrRadius, sizeInShadowOutOrRenderReason = null)\n {\n if (!this.display || !this.castShadow || !this.#hasUpdated)\n {\n return false;\n }\n\n const positionOverload = typeof shadowFrustumOrPosition?.length === \"number\" &&\n shadowFrustumOrPosition.length >= 3;\n const renderReason = positionOverload\n ? Number(sizeInShadowOutOrRenderReason ?? Tr2RenderReason.TR2RENDERREASON_NORMAL)\n : Number(renderReasonOrRadius ?? Tr2RenderReason.TR2RENDERREASON_NORMAL);\n\n if (renderReason === Tr2RenderReason.TR2RENDERREASON_REFLECTION &&\n !ShouldReflect(this.reflectionMode))\n {\n return false;\n }\n\n if (positionOverload)\n {\n // Carbon (cpp:338-364): squared distance between the world sphere and\n // the query sphere against their combined radius.\n if (!this.GetBoundingSphere(SHADOW_SPHERE_SCRATCH))\n {\n return false;\n }\n const position = shadowFrustumOrPosition;\n const radius = Number(renderReasonOrRadius) || 0;\n const dx = SHADOW_SPHERE_SCRATCH[0] - position[0];\n const dy = SHADOW_SPHERE_SCRATCH[1] - position[1];\n const dz = SHADOW_SPHERE_SCRATCH[2] - position[2];\n const combined = radius + SHADOW_SPHERE_SCRATCH[3];\n return dx * dx + dy * dy + dz * dz - combined * combined < 0;\n }\n\n // Carbon (cpp:295-336): shadow-frustum visibility, then the size in the\n // shadow map from the instance sphere nearest the shadow eye (falling back\n // to the whole world sphere).\n const shadowFrustum = shadowFrustumOrPosition;\n const sizeOut = sizeInShadowOutOrRenderReason;\n if (sizeOut)\n {\n sizeOut[0] = 0;\n }\n\n if (this.#worldBoundingSphere[3] <= 0)\n {\n return false;\n }\n\n let sizeInShadow = 0;\n if (shadowFrustum?.IsVisible?.(cameraFrustum, this.#worldBoundingSphere))\n {\n let sphere = this.#worldBoundingSphere;\n if (typeof this.mesh?.GetInstanceBoundsClosestToPoint === \"function\")\n {\n // Carbon: TransformCoord(shadowFrustum.GetEyePos(), Inverse(\n // m_worldTransform)) - single-matrix point transform (no composition).\n if (!mat4.invert(INVERSE_WORLD_SCRATCH, this.worldTransform))\n {\n mat4.identity(INVERSE_WORLD_SCRATCH);\n }\n const eyePos = shadowFrustum?.GetEyePos?.() ?? ZERO_VEC3;\n vec3.transformMat4(LOCAL_VIEW_SCRATCH, eyePos, INVERSE_WORLD_SCRATCH);\n const instanceBounds = this.mesh.GetInstanceBoundsClosestToPoint(LOCAL_VIEW_SCRATCH);\n if (instanceBounds)\n {\n // Carbon: instanceBounds.Transform(m_worldTransform) - single-matrix\n // sphere transform.\n sph3.set(\n INSTANCE_SPHERE_SCRATCH,\n instanceBounds.center[0],\n instanceBounds.center[1],\n instanceBounds.center[2],\n instanceBounds.radius\n );\n sph3.transformMat4(INSTANCE_SPHERE_SCRATCH, INSTANCE_SPHERE_SCRATCH, this.worldTransform);\n sphere = INSTANCE_SPHERE_SCRATCH;\n }\n }\n sizeInShadow = Number(shadowFrustum?.GetSizeInShadow?.(sphere)) || 0;\n }\n\n if (sizeOut)\n {\n sizeOut[0] = sizeInShadow;\n }\n return sizeInShadow > 5;\n }\n\n /** Carbon EveChildMesh::ChangeLOD (cpp:1052-1054) is an intentional no-op. */\n @carbon.method\n @impl.implemented\n ChangeLOD(_lod)\n {\n }\n\n /** Carbon EveChildMesh::RegisterComponents (cpp:239-269): LightOwner when\n * lights are authored; ReflectionRenderable (ShouldReflect) and ShadowCaster\n * (castShadow) only when a mesh is present; then forwards the attachments.\n * Gate m_display. \"MeshMorph\" stays OUT-OF-BAND: Carbon registers it at\n * baked-morph need inside BakeMorphs (cpp:1404-1409), not here - the JS\n * BakeMorphs stub is the site that would register it when the GPU morph\n * bake is ported. */\n @carbon.method\n @impl.implemented\n RegisterComponents()\n {\n const registry = this.GetComponentRegistry();\n if (registry && this.display)\n {\n if (this.lights.length)\n {\n registry.RegisterComponent(EveComponentType.LightOwner, this);\n }\n\n if (this.mesh !== null)\n {\n if (ShouldReflect(this.reflectionMode))\n {\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\n }\n if (this.castShadow)\n {\n registry.RegisterComponent(EveComponentType.ShadowCaster, this);\n }\n }\n\n for (const attachment of this.attachments)\n {\n attachment?.Register?.(registry);\n }\n }\n }\n\n /** Carbon EveChildMesh::UnRegisterComponents (cpp:275-290): forwards the\n * attachments only (own components were already removed by\n * EveEntity::UnRegister, EveEntity.cpp:90); no display re-check.\n * UnregisterAudioGeometry (cpp:277) is audio-engine-owned and unported. */\n @carbon.method\n @impl.implemented\n UnRegisterComponents()\n {\n const registry = this.GetComponentRegistry();\n if (registry)\n {\n for (const attachment of this.attachments)\n {\n attachment?.UnRegister?.(registry);\n }\n }\n }\n\n /** Carbon EveChildMesh::GetLights (cpp:1638-1652): BOTH gates (empty\n * lights and display, cpp:1640 - unlike EveSpaceObject2's display-only),\n * then per light AddLight(manager, worldTransform, 1, bones, boneCount)\n * FOLLOWED by SetBrightnessMultiplier(m_activationStrength) - the\n * one-frame-lag order is contract (the submission uses the multiplier\n * stamped on the previous pass; the first pass uses the Tr2Light default\n * 1). */\n @carbon.method\n @impl.implemented\n GetLights(lightManager)\n {\n if (!this.lights.length || !this.display)\n {\n return;\n }\n\n // cpp:1645 - bones so a bone-parented light is placed by its bone.\n const { bones, boneCount } = this.GetBoneTransforms();\n\n for (const light of this.lights)\n {\n light?.AddLight?.(lightManager, this.worldTransform, 1, bones, boneCount);\n light?.SetBrightnessMultiplier?.(this.#activationStrength);\n }\n }\n\n /** Carbon EveChildMesh::GetID returns GetRawRoot(), i.e. this object. */\n @carbon.method\n @impl.implemented\n GetID(_area = 0)\n {\n return this;\n }\n\n /**\n * Carbon EveChildMesh::GetPickingBatches (cpp:862-889): collects the geometry\n * a pick pass should test, by mask. Unlike the hull's version this one has no\n * overlay effects to pull in.\n *\n * @param {Object} batches - the picking accumulator\n * @param {Number} pickTypes - a Tr2PickType mask\n * @param {Object} perObjectData - this child's per-object record\n */\n @carbon.method\n @impl.implemented\n GetPickingBatches(batches, pickTypes = TR2_PICK_TYPE_DEFAULT, perObjectData = null)\n {\n if (pickTypes & Tr2PickType.PICK_TYPE_PICKING)\n {\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_PICKING, perObjectData);\n }\n\n if (pickTypes & Tr2PickType.PICK_TYPE_OPAQUE)\n {\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_OPAQUE, perObjectData);\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_DECAL, perObjectData);\n }\n\n if (pickTypes & Tr2PickType.PICK_TYPE_TRANSPARENT)\n {\n // A hidden mesh suppresses the transparent pass only; Carbon returns\n // early here, after the collections above have already run.\n if (!this.mesh || this.mesh.display === false)\n {\n return true;\n }\n\n for (const batchType of [ TriBatchType.TRIBATCHTYPE_TRANSPARENT, TriBatchType.TRIBATCHTYPE_ADDITIVE ])\n {\n const areas = this.mesh.GetAreas?.(batchType);\n\n if (areas)\n {\n this.mesh.GetBatches?.(batches, areas, perObjectData);\n }\n }\n }\n\n return true;\n }\n\n /**\n * Binds the animation updater to this mesh's geometry, so a child with no\n * animation resource of its own animates from the mesh's own bone binding.\n *\n * Carbon `EveChildMesh::InitializeAnimation` (cpp:217-232). Only runs when\n * the updater has no authored resPath - one that does keeps its own\n * resource. When the mesh has no geometry yet the shared binding is cleared\n * rather than left stale, so a later mesh swap rebinds cleanly.\n */\n @carbon.method\n @impl.implemented\n InitializeAnimation()\n {\n const updater = this.animationUpdater;\n\n if (!updater || updater.resPath_)\n {\n return;\n }\n\n const geometry = this.mesh?.GetGeometryResource?.();\n\n if (geometry)\n {\n updater.SetUseMeshBinding?.(true);\n updater.SetSharedGeometryRes?.(geometry);\n return;\n }\n\n updater.SetSharedGeometryRes?.(null);\n }\n\n /** Carbon BakeMorphs runs the merge-morphs GPU compute pass; GPU-owned. */\n @carbon.method\n @impl.notImplemented\n BakeMorphs(..._args)\n {\n throw new Error(\"EveChildMesh.BakeMorphs is not implemented in CarbonEngineJS.\");\n }\n\n /** Carbon UnbakeMorphs releases the baked-morph GPU allocation; GPU-owned. */\n @carbon.method\n @impl.notImplemented\n UnbakeMorphs(..._args)\n {\n throw new Error(\"EveChildMesh.UnbakeMorphs is not implemented in CarbonEngineJS.\");\n }\n\n /** Carbon IsMeshBaked reads the baked-morph GPU allocation state; GPU-owned. */\n @carbon.method\n @impl.notImplemented\n IsMeshBaked(..._args)\n {\n throw new Error(\"EveChildMesh.IsMeshBaked is not implemented in CarbonEngineJS.\");\n }\n\n // Carbon s_instanceScreenSizeThreshold (EveChildMesh.cpp:22).\n static #instanceScreenSizeThreshold = 1;\n\n static Origin = Origin;\n\n static ReflectionMode = ReflectionMode;\n\n static Tr2Lod = Tr2Lod;\n\n}\n\nfunction ReadNamedMorph(values, name)\n{\n if (values instanceof Map)\n {\n return values.has(name) ? values.get(name) : undefined;\n }\n\n if (values && typeof values === \"object\" && Object.hasOwn(values, name))\n {\n return values[name];\n }\n\n return undefined;\n}\n\nfunction ReadMorphWeight(value, name, source)\n{\n const weight = Number(value && typeof value === \"object\" ? value.weight : value);\n\n if (!Number.isFinite(weight))\n {\n throw new TypeError(`EveChildMesh ${source} morph target \"${name}\" weight must be finite`);\n }\n\n return weight;\n}\n\nfunction NormalizeMorphFilter(value)\n{\n if (typeof value === \"string\")\n {\n const normalized = value.toLowerCase();\n if (normalized === \"runtime\" || normalized === \"runtime_evaluated\") return 0;\n if (normalized === \"baked\") return 1;\n if (normalized === \"all\") return 2;\n }\n\n const filter = Number(value);\n if (filter === 0 || filter === 1 || filter === 2) return filter;\n throw new TypeError(`Unsupported EveChildMesh morph target filter \"${value}\"`);\n}\n"],"names":["INVERSE_WORLD_SCRATCH","mat4","create","LOCAL_VIEW_SCRATCH","vec3","INSTANCE_SPHERE_SCRATCH","vec4","SHADOW_SPHERE_SCRATCH","BOX_CORNER_SCRATCH","BOX_QUERY_SCRATCH","min","max","ZERO_VEC3","NO_BONE_TRANSFORMS","Object","freeze","bones","boneCount","_EveChildMesh","_identity","EveChildMesh","EveChildTransform","e","_init_reflectionMode","_init_extra_reflectionMode","_init_transformModifiers","_init_extra_transformModifiers","_init_worldTransform","_init_extra_worldTransform","_init_display","_init_extra_display","_init_castShadow","_init_extra_castShadow","_init_mesh","_init_extra_mesh","_init_name","_init_extra_name","_init_rotation","_init_extra_rotation","_init_translation","_init_extra_translation","_init_scaling","_init_extra_scaling","_init_localTransform","_init_extra_localTransform","_init_decals","_init_extra_decals","_init_staticTransform","_init_extra_staticTransform","_init_animationUpdater","_init_extra_animationUpdater","_init_attachments","_init_extra_attachments","_init_lights","_init_extra_lights","_init_lowestLodVisible","_init_extra_lowestLodVisible","_init_minScreenSize","_init_extra_minScreenSize","_init_sortValueOffset","_init_extra_sortValueOffset","_init_sortValueScale","_init_extra_sortValueScale","_init_currentScreenSize","_init_extra_currentScreenSize","_init_currentInstanceScreenSize","_init_extra_currentInstanceScreenSize","_init_useSRT","_init_extra_useSRT","_init_updateAnimation","_init_extra_updateAnimation","_init_origin","_init_extra_origin","_init_instanceTransforms","_init_extra_instanceTransforms","_init_sofDna","_init_extra_sofDna","_init_sofParentHullName","_init_extra_sofParentHullName","_init_sofLocatorSetName","_init_extra_sofLocatorSetName","_init_sofLocatorIndex","_init_extra_sofLocatorIndex","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","schema","enum","list","read","boolean","objectRef","string","quat","float32","rebuild","array","carbon","method","impl","adapted","implemented","reason","contextual","notImplemented","constructor","args","runtimeEvaluatedOffset","runtimeEvaluatedCount","bakedOffset","bakedCount","allCount","createChildPerObjectRecords","reflectionMode","transformModifiers","worldTransform","display","castShadow","mesh","name","rotation","translation","scaling","fromValues","localTransform","decals","staticTransform","animationUpdater","attachments","lights","lowestLodVisible","minScreenSize","sortValueOffset","sortValueScale","currentScreenSize","currentInstanceScreenSize","useSRT","updateAnimation","origin","instanceTransforms","sofDna","sofParentHullName","sofLocatorSetName","sofLocatorIndex","Initialize","RebuildLocalTransform","InitializeAnimation","Setup","scale","undefined","Number","SetInstanceTransforms","instances","next","transform","length","TypeError","push","clone","GetInstanceTransforms","SetMesh","SetOrigin","SetScale","copy","SetReflectionMode","mode","SetCastShadow","SetMinScreenSize","GetLocalToWorldTransform","out","GetName","SetName","String","AddTransformModifier","modifier","AddDecal","decal","AddAttachment","attachment","ClearAttachments","AddLight","light","ClearLights","IsAlwaysOn","SetShaderOption","value","GetMorphTargetNames","SetMorphTargetWeight","weight","GetMorphTargetWeight","UpdateMorphAnimationBuffer","names","Array","isArray","manual","GetMorphAnimations","records","map","index","ReadMorphWeight","ReadNamedMorph","baked","IsBakedMorph","GetBakedMorphTarget","IsInitialized","animated","record","runtime","inactive","GetMorphTargets","filter","normalized","NormalizeMorphFilter","offset","count","slice","GetSofSourceLocator","UpdateSyncronous","_updateContext","_params","UpdateAsyncronous","updateContext","params","parentTransform","localToWorldTransform","UpdateTransform","applyTransformModifiers","inheritParentPerObjectData","spaceObjectParent","stampChildTransforms","activationStrength","UpdateLights","bounds","GetBounds","Infinity","set","transformMat4","sph3","fromBounds","GetBoneTransforms","updater","HasMeshBinding","getBoneList","UpdateVisibility","_parentTransform","parentLod","Tr2Lod","TR2_LOD_HIGH","frustum","GetFrustum","invLodFactor","GetInvLodFactor","GetPixelSizeAccross","instanced","GetInstanceBoundsClosestToPoint","instanceBounds","invert","identity","viewPos","m_viewPos","GetViewPosition","center","radius","UseWithScreenSize","boxVisible","IsBoxVisible","GetRenderables","GetGeometryResource","GetInstancedRenderables","geometryResource","GetBoundingSphere","_query","HasTransparentBatches","GetAreas","TriBatchType","TRIBATCHTYPE_TRANSPARENT","IsVisible","IsSphereVisible","GetPixelSizeAccrossEst","size","call","threshold","GetVisibilityThreshold","visibilityThreshold","GetBatches","batches","batchType","perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","committed","GetShadowBatches","_shadowPixelSize","TRIBATCHTYPE_OPAQUE","GetSortValue","renderContext","viewPosition","x","y","z","Math","hypot","GetShadowPerObjectData","accumulator","GetPerObjectData","_accumulator","vs","Set","GetMeshBoneCount","SetIndex","ps","IsCastingShadow","cameraFrustum","shadowFrustumOrPosition","renderReasonOrRadius","sizeInShadowOutOrRenderReason","positionOverload","renderReason","TR2RENDERREASON_REFLECTION","ShouldReflect","position","dx","dy","dz","combined","shadowFrustum","sizeOut","sizeInShadow","sphere","eyePos","GetEyePos","GetSizeInShadow","ChangeLOD","_lod","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","ReflectionRenderable","ShadowCaster","Register","UnRegisterComponents","UnRegister","GetLights","lightManager","SetBrightnessMultiplier","GetID","_area","GetPickingBatches","pickTypes","TR2_PICK_TYPE_DEFAULT","Tr2PickType","PICK_TYPE_PICKING","TRIBATCHTYPE_PICKING","PICK_TYPE_OPAQUE","TRIBATCHTYPE_DECAL","PICK_TYPE_TRANSPARENT","TRIBATCHTYPE_ADDITIVE","areas","resPath_","geometry","SetUseMeshBinding","SetSharedGeometryRes","BakeMorphs","_args","Error","UnbakeMorphs","IsMeshBaked","Origin","ReflectionMode","values","Map","has","get","hasOwn","source","isFinite","toLowerCase"],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { applyDecs2311 as _applyDecs2311 } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { io, type, carbon, impl, CjsSchema } from '@carbonenginejs/runtime-utils/schema';
|
|
3
|
+
import { EveChildMesh as _EveChildMesh } from './EveChildMesh.js';
|
|
4
|
+
import { vec3 } from '@carbonenginejs/runtime-utils/vec3';
|
|
5
|
+
import { vec4 } from '@carbonenginejs/runtime-utils/vec4';
|
|
6
|
+
|
|
7
|
+
let _initProto, _initClass, _init_curveSets, _init_extra_curveSets, _init_centerNormal, _init_extra_centerNormal, _init_pinMaxRadius, _init_extra_pinMaxRadius, _init_pinRadius, _init_extra_pinRadius, _init_pinRotation, _init_extra_pinRotation, _init_pinAlphaThreshold, _init_extra_pinAlphaThreshold;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Child mesh that draws a pin on a sphere's surface, contributing the pin's
|
|
11
|
+
* centre normal, radius, rotation, alpha threshold and colour to its own
|
|
12
|
+
* per-object shader data.
|
|
13
|
+
*/
|
|
14
|
+
let _EveChildSpherePin;
|
|
15
|
+
class EveChildSpherePin extends _EveChildMesh {
|
|
16
|
+
static {
|
|
17
|
+
({
|
|
18
|
+
e: [_init_curveSets, _init_extra_curveSets, _init_centerNormal, _init_extra_centerNormal, _init_pinMaxRadius, _init_extra_pinMaxRadius, _init_pinRadius, _init_extra_pinRadius, _init_pinRotation, _init_extra_pinRotation, _init_pinAlphaThreshold, _init_extra_pinAlphaThreshold, _initProto],
|
|
19
|
+
c: [_EveChildSpherePin, _initClass]
|
|
20
|
+
} = _applyDecs2311(this, [type.define({
|
|
21
|
+
className: "EveChildSpherePin",
|
|
22
|
+
family: "eve/child"
|
|
23
|
+
})], [[[io, io.persist, void 0, type.list("TriCurveSet")], 16, "curveSets"], [[io, io.notify, io, io.persist, type, type.vec3], 16, "centerNormal"], [[io, io.notify, io, io.persist, type, type.float32], 16, "pinMaxRadius"], [[io, io.notify, io, io.persist, type, type.float32], 16, "pinRadius"], [[io, io.notify, io, io.persist, type, type.float32], 16, "pinRotation"], [[io, io.notify, io, io.persist, type, type.float32], 16, "pinAlphaThreshold"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectData"]], 0, void 0, _EveChildMesh));
|
|
24
|
+
}
|
|
25
|
+
constructor(...args) {
|
|
26
|
+
super(...args);
|
|
27
|
+
_init_extra_pinAlphaThreshold(this);
|
|
28
|
+
}
|
|
29
|
+
#pinColor = (_initProto(this), vec4.fromValues(1, 1, 1, 1));
|
|
30
|
+
|
|
31
|
+
/** Carbon maps both Blue names to the same m_pinColor storage. */
|
|
32
|
+
get pinColor() {
|
|
33
|
+
return this.#pinColor;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Copies a four-component colour into the owned buffer; a shorter value is
|
|
38
|
+
* ignored rather than partially applied.
|
|
39
|
+
*/
|
|
40
|
+
set pinColor(value) {
|
|
41
|
+
if (value?.length >= 4) {
|
|
42
|
+
vec4.copy(this.#pinColor, value);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Blue alias for pinColor. */
|
|
47
|
+
get color() {
|
|
48
|
+
return this.#pinColor;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Blue alias that writes through to pinColor. */
|
|
52
|
+
set color(value) {
|
|
53
|
+
this.pinColor = value;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** m_curveSets (PTriCurveSetVector) [READ, PERSIST] */
|
|
57
|
+
curveSets = _init_curveSets(this, []);
|
|
58
|
+
|
|
59
|
+
/** m_centerNormal (Vector3) [READWRITE, NOTIFY, PERSIST] */
|
|
60
|
+
centerNormal = (_init_extra_curveSets(this), _init_centerNormal(this, vec3.create()));
|
|
61
|
+
|
|
62
|
+
/** m_pinMaxRadius (float) [READWRITE, NOTIFY, PERSIST] */
|
|
63
|
+
pinMaxRadius = (_init_extra_centerNormal(this), _init_pinMaxRadius(this, 0.2));
|
|
64
|
+
|
|
65
|
+
/** m_pinRadius (float) [READWRITE, NOTIFY, PERSIST] */
|
|
66
|
+
pinRadius = (_init_extra_pinMaxRadius(this), _init_pinRadius(this, 0));
|
|
67
|
+
|
|
68
|
+
/** m_pinRotation (float) [READWRITE, NOTIFY, PERSIST] */
|
|
69
|
+
pinRotation = (_init_extra_pinRadius(this), _init_pinRotation(this, 0));
|
|
70
|
+
|
|
71
|
+
/** m_pinAlphaThreshold (float) [READWRITE, NOTIFY, PERSIST] */
|
|
72
|
+
pinAlphaThreshold = (_init_extra_pinRotation(this), _init_pinAlphaThreshold(this, 0));
|
|
73
|
+
|
|
74
|
+
/** Carbon updates the mesh first, then advances every attached curve set. */
|
|
75
|
+
UpdateAsyncronous(updateContext, params) {
|
|
76
|
+
super.UpdateAsyncronous(updateContext, params);
|
|
77
|
+
const time = updateContext?.GetTime?.() ?? updateContext?.currentTime ?? 0;
|
|
78
|
+
for (const curveSet of this.curveSets) {
|
|
79
|
+
curveSet?.Update?.(time, time);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Carbon EveChildSpherePin::GetPerObjectData (cpp:40-62). One transient
|
|
85
|
+
* payload; Set(MATRIX) performs Carbon's `Transpose(m_worldTransform)`.
|
|
86
|
+
* The struct registers with stages ["vs", "ps"]: the SAME bytes are bound
|
|
87
|
+
* to both per-object slots (cpp:68-75).
|
|
88
|
+
*/
|
|
89
|
+
GetPerObjectData(accumulator) {
|
|
90
|
+
const data = accumulator.Alloc("EveChildSpherePinPerObjectData");
|
|
91
|
+
data.SetAndTranspose("worldMatrix", this.worldTransform);
|
|
92
|
+
data.Set("pinPosition", [this.centerNormal[0], this.centerNormal[1], this.centerNormal[2], this.pinRadius]);
|
|
93
|
+
data.Set("pinRotation", [this.pinRotation, 0, 0, 0]);
|
|
94
|
+
data.Set("pinColor", this.#pinColor);
|
|
95
|
+
data.Set("pinThreshold", [this.pinAlphaThreshold, 0, 0, 0]);
|
|
96
|
+
data.Set("pinRadiusPrecalc", [Math.sin(this.pinRadius), Math.cos(this.pinRadius), Math.sin(this.pinRotation), Math.cos(this.pinRotation)]);
|
|
97
|
+
data.Set("pinUV", [1, 1, 0, 0]);
|
|
98
|
+
return data;
|
|
99
|
+
}
|
|
100
|
+
static {
|
|
101
|
+
_initClass();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
CjsSchema.decorateField(_EveChildSpherePin, "pinColor", io.notify, io.persist, type.color);
|
|
105
|
+
CjsSchema.decorateField(_EveChildSpherePin, "color", io.notify, io.persist, type.color);
|
|
106
|
+
|
|
107
|
+
export { _EveChildSpherePin as EveChildSpherePin };
|
|
108
|
+
//# sourceMappingURL=EveChildSpherePin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EveChildSpherePin.js","sources":["../../../../src/eve/child/EveChildSpherePin.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildSpherePin.h\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildSpherePin.cpp\r\nimport { CjsSchema, carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { EveChildMesh } from \"./EveChildMesh.js\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\r\n\r\n/**\r\n * Child mesh that draws a pin on a sphere's surface, contributing the pin's\r\n * centre normal, radius, rotation, alpha threshold and colour to its own\r\n * per-object shader data.\r\n */\r\n@type.define({ className: \"EveChildSpherePin\", family: \"eve/child\" })\r\nexport class EveChildSpherePin extends EveChildMesh\r\n{\r\n\r\n #pinColor = vec4.fromValues(1, 1, 1, 1);\r\n\r\n /** Carbon maps both Blue names to the same m_pinColor storage. */\r\n get pinColor()\r\n {\r\n return this.#pinColor;\r\n }\r\n\r\n /**\r\n * Copies a four-component colour into the owned buffer; a shorter value is\r\n * ignored rather than partially applied.\r\n */\r\n set pinColor(value)\r\n {\r\n if (value?.length >= 4)\r\n {\r\n vec4.copy(this.#pinColor, value);\r\n }\r\n }\r\n\r\n /** Blue alias for pinColor. */\r\n get color()\r\n {\r\n return this.#pinColor;\r\n }\r\n\r\n /** Blue alias that writes through to pinColor. */\r\n set color(value)\r\n {\r\n this.pinColor = value;\r\n }\r\n\r\n /** m_curveSets (PTriCurveSetVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"TriCurveSet\")\r\n curveSets = [];\r\n\r\n /** m_centerNormal (Vector3) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.vec3\r\n centerNormal = vec3.create();\r\n\r\n /** m_pinMaxRadius (float) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.float32\r\n pinMaxRadius = 0.2;\r\n\r\n /** m_pinRadius (float) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.float32\r\n pinRadius = 0;\r\n\r\n /** m_pinRotation (float) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.float32\r\n pinRotation = 0;\r\n\r\n /** m_pinAlphaThreshold (float) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.float32\r\n pinAlphaThreshold = 0;\r\n\r\n /** Carbon updates the mesh first, then advances every attached curve set. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAsyncronous(updateContext, params)\r\n {\r\n super.UpdateAsyncronous(updateContext, params);\r\n const time = updateContext?.GetTime?.() ?? updateContext?.currentTime ?? 0;\r\n for (const curveSet of this.curveSets)\r\n {\r\n curveSet?.Update?.(time, time);\r\n }\r\n }\r\n\r\n /**\r\n * Carbon EveChildSpherePin::GetPerObjectData (cpp:40-62). One transient\r\n * payload; Set(MATRIX) performs Carbon's `Transpose(m_worldTransform)`.\r\n * The struct registers with stages [\"vs\", \"ps\"]: the SAME bytes are bound\r\n * to both per-object slots (cpp:68-75).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetPerObjectData(accumulator)\r\n {\r\n const data = accumulator.Alloc(\"EveChildSpherePinPerObjectData\");\r\n\r\n data.SetAndTranspose(\"worldMatrix\", this.worldTransform);\r\n data.Set(\"pinPosition\", [\r\n this.centerNormal[0],\r\n this.centerNormal[1],\r\n this.centerNormal[2],\r\n this.pinRadius\r\n ]);\r\n data.Set(\"pinRotation\", [this.pinRotation, 0, 0, 0]);\r\n data.Set(\"pinColor\", this.#pinColor);\r\n data.Set(\"pinThreshold\", [this.pinAlphaThreshold, 0, 0, 0]);\r\n data.Set(\"pinRadiusPrecalc\", [\r\n Math.sin(this.pinRadius),\r\n Math.cos(this.pinRadius),\r\n Math.sin(this.pinRotation),\r\n Math.cos(this.pinRotation)\r\n ]);\r\n data.Set(\"pinUV\", [1, 1, 0, 0]);\r\n\r\n return data;\r\n }\r\n\r\n}\r\n\r\nCjsSchema.decorateField(EveChildSpherePin, \"pinColor\", io.notify, io.persist, type.color);\r\nCjsSchema.decorateField(EveChildSpherePin, \"color\", io.notify, io.persist, type.color);\r\n"],"names":["_EveChildSpherePin","EveChildSpherePin","EveChildMesh","e","_init_curveSets","_init_extra_curveSets","_init_centerNormal","_init_extra_centerNormal","_init_pinMaxRadius","_init_extra_pinMaxRadius","_init_pinRadius","_init_extra_pinRadius","_init_pinRotation","_init_extra_pinRotation","_init_pinAlphaThreshold","_init_extra_pinAlphaThreshold","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","list","notify","vec3","float32","carbon","method","impl","implemented","constructor","args","vec4","fromValues","pinColor","value","length","copy","color","curveSets","centerNormal","create","pinMaxRadius","pinRadius","pinRotation","pinAlphaThreshold","UpdateAsyncronous","updateContext","params","time","GetTime","currentTime","curveSet","Update","GetPerObjectData","accumulator","data","Alloc","SetAndTranspose","worldTransform","Set","Math","sin","cos","CjsSchema","decorateField"],"mappings":"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"}
|