@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":"EveChildCloud2.js","sources":["../../../../../src/generated/eve/child/EveChildCloud2.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/Eve/SpaceObject/Children/EveChildCloud2.h\n// Generated by format-carbon carbon-class --emit. Verify against eve/child/EveChildCloud2.json.\nimport { impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { EveEntity } from \"../EveEntity.js\";\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\nimport { RenderingMode } from \"@carbonenginejs/runtime-utils/graphics\";\nimport { EveComponentType, ShouldReflect } from \"../../../eve/EveComponentTypes.js\";\nimport { Tr2PerObjectData } from \"../../../trinityCore/Tr2PerObjectData.js\";\nimport { Tr2RenderBatch } from \"../../../trinityCore/Tr2RenderBatch.js\";\nimport { TriFrustumOrtho } from \"../../../trinityCore/TriFrustumOrtho.js\";\nimport { Tr2RenderReason, TriBatchType } from \"../../trinityCore/enums.js\";\n\n// Carbon std::numeric_limits<float>::max() (cpp:916). The renderable-side sort\n// value is a finite float32, NOT Infinity - downstream distance sums must stay\n// finite.\nconst FLOAT32_MAX = 3.4028234663852886e38;\n\nconst IDENTITY = mat4.create();\n\n// Module scratch (per-frame paths - never allocate in the hot loop).\nconst INV_SCRATCH = mat4.create();\nconst WV_SCRATCH = mat4.create();\nconst BASIS_SCRATCH = mat4.create();\nconst LIGHT_VIEW_SCRATCH = mat4.create();\nconst WORLD_LIGHT_SCRATCH = mat4.create();\nconst ORTHO_SCRATCH = mat4.create();\nconst CORNER_MIN_SCRATCH = vec3.create();\nconst CORNER_MAX_SCRATCH = vec3.create();\nconst CORNER_SCRATCH = vec3.create();\nconst SHIFT_SCRATCH = vec3.create();\nconst SUN_SCRATCH = vec3.create();\nconst SCALE_SCRATCH = vec3.create();\nconst BOUNDS_MIN_SCRATCH = vec3.create();\nconst BOUNDS_MAX_SCRATCH = vec3.create();\nconst LIGHT_SCRATCH = { position: vec3.create(), radius: 0, color: vec3.create() };\n\n/** Carbon OrthoNormalBasisZ (math Matrix_inline.h:531-546): identity; row Z =\n * Normalize(z); X seeded (0,1,0) when |Z.x| > 0.99 else (1,0,0); Y =\n * Normalize(Cross(X, Z)); X = Cross(Y, Z). Carbon's basis rows land at gl flat\n * [0..2]/[4..6]/[8..10] on the shared byte layout - single-matrix build, no\n * composition, no operand swap. A zero-length z NaNs exactly as Carbon's\n * Normalize does. */\nfunction OrthoNormalBasisZ(out, z)\n{\n mat4.identity(out);\n const zl = Math.hypot(z[0], z[1], z[2]);\n const zx = z[0] / zl;\n const zy = z[1] / zl;\n const zz = z[2] / zl;\n out[8] = zx;\n out[9] = zy;\n out[10] = zz;\n const xx = Math.abs(zx) > 0.99 ? 0 : 1;\n const xy = Math.abs(zx) > 0.99 ? 1 : 0;\n // Y = Normalize(Cross(X, Z)) with xz = 0 on either seed.\n let yx = xy * zz;\n let yy = -xx * zz;\n let yz = xx * zy - xy * zx;\n const yl = Math.hypot(yx, yy, yz);\n yx /= yl;\n yy /= yl;\n yz /= yl;\n out[4] = yx;\n out[5] = yy;\n out[6] = yz;\n // X = Cross(Y, Z).\n out[0] = yy * zz - yz * zy;\n out[1] = yz * zx - yx * zz;\n out[2] = yx * zy - yy * zx;\n return out;\n}\n\n/** Carbon OrthoOffCenterMatrix (math Matrix_inline.h:749-765): D3D-style\n * z-in-[0,1] off-center orthographic projection. Deliberately NOT gl-matrix's\n * mat4.ortho (GL z-in-[-1,1], different off-center terms). Carbon m[i][j]\n * lands at gl flat [i*4+j] on the shared byte layout. */\nfunction OrthoOffCenterMatrix(out, l, r, b, t, zn, zf)\n{\n mat4.identity(out);\n out[0] = 2 / (r - l);\n out[5] = 2 / (t - b);\n out[10] = 1 / (zn - zf);\n out[12] = -1 - 2 * l / (r - l);\n out[13] = 1 + 2 * t / (b - t);\n out[14] = zn / (zn - zf);\n return out;\n}\n\n/** Carbon TransformNormal(v, M) - row-vector basis-only transform (no\n * translation): out_j = sum_i v_i * M[i][j], rows at gl flat [0..2]/[4..6]/\n * [8..10]. vec3.transformMat4 would add the translation - do not use it. */\nfunction TransformNormal(out, v, m)\n{\n const x = v[0];\n const y = v[1];\n const z = v[2];\n out[0] = x * m[0] + y * m[4] + z * m[8];\n out[1] = x * m[1] + y * m[5] + z * m[9];\n out[2] = x * m[2] + y * m[6] + z * m[10];\n return out;\n}\n\n/** EveChildCloud2 (eve/child) - generated from schema shapeHash e973d7fa.... */\n@type.define({ className: \"EveChildCloud2\", family: \"eve/child\" })\nexport class EveChildCloud2 extends EveEntity\n{\n\n /** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */\n @io.notify\n @io.persist\n @type.int32\n @schema.enum(\"ReflectionMode\")\n reflectionMode = 0;\n\n /** m_minVisibleQuality (Tr2VolumerticQuality - enum Tr2VolumerticQuality) [READWRITE, PERSIST, ENUM] */\n @io.persist\n @type.int32\n @schema.enum(\"Tr2VolumerticQuality\")\n minVisibleQuality = 0;\n\n /** m_sortingModifier (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n sortingModifier = 0;\n\n /** m_animation (Tr2TextureAnimationPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.model(\"Tr2TextureAnimation\")\n animation = null;\n\n /** m_shadowMapDS (Tr2DepthStencilPtr) [READWRITE, NOTIFY] */\n @io.notify\n @io.readwrite\n @type.objectRef(\"Tr2DepthStencil\")\n shadowMapDS = null;\n\n /** m_lightMap (Tr2TextureReferencePtr) [READ] */\n @io.read\n @type.objectRef(\"Tr2TextureReference\")\n lightmap = null;\n\n /** m_lightmapSizeScale (float) [READ] */\n @io.read\n @type.float32\n lightmapSizeScale = 0;\n\n /** m_lights (PTr2LightVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"Tr2Light\")\n lights = [];\n\n /** m_minScreenSize (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n minScreenSize = 0;\n\n /** m_rotation (Quaternion) [READWRITE, PERSIST] */\n @io.persist\n @type.quat\n rotation = quat.create();\n\n /** m_translation (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n translation = vec3.create();\n\n /** m_scaling (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n scaling = vec3.create();\n\n /** m_reflectionEffect (Tr2EffectPtr) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.model(\"Tr2Effect\")\n reflectionEffect = null;\n\n /** m_effect (Tr2EffectPtr) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.model(\"Tr2Effect\")\n effect = null;\n\n /** m_noiseTextureSize (uint32_t) [READWRITE, PERSIST] */\n @io.persist\n @type.uint32\n noiseTextureSize = 0;\n\n /** m_mapOffsets[0] (Vector3) [READ] */\n @io.read\n @type.vec3\n mapOffset0 = vec3.create();\n\n /** m_mapOffsets[1] (Vector3) [READ] */\n @io.read\n @type.vec3\n mapOffset1 = vec3.create();\n\n /** m_mapOffsets[2] (Vector3) [READ] */\n @io.read\n @type.vec3\n mapOffset2 = vec3.create();\n\n /** m_castShadows (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n castShadows = false;\n\n /** m_receiveShadows (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n receiveShadows = false;\n\n /** m_name (std::string) [READWRITE, PERSIST] */\n @io.persist\n @type.string\n name = \"\";\n\n /** m_mapTiling[1] (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n detailTiling1 = vec3.create();\n\n /** m_mapTiling[2] (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n detailTiling2 = vec3.create();\n\n /** m_mapTiling[0] (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n textureTiling = vec3.create();\n\n /** m_display (bool) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.boolean\n display = false;\n\n // --- Runtime state (Carbon ctor cpp:72-118; not persisted). NOTE: the\n // generated persisted defaults above are schema zero-values and DIVERGE from\n // Carbon's ctor defaults (display/castShadows/receiveShadows true,\n // sortingModifier 1, noiseTextureSize 32, lightmapSizeScale 0.5,\n // reflectionMode REFLECT_NEVER, scaling (1,1,1), mapTiling all (1,1,1)).\n // Hydrated documents overwrite them; the divergence for default-constructed\n // objects is deliberate schema policy, recorded here rather than \"fixed\". ---\n\n /** m_localTransform - stamped by UpdateAsyncronous (cpp:689). */\n localTransform = mat4.create();\n\n /** m_worldTransform - stamped by UpdateAsyncronous (cpp:693). */\n worldTransform = mat4.create();\n\n /** m_boundingSphere (CcpMath::Sphere) - the TriFrustum sphere-duck shape. */\n boundingSphere = { center: vec3.create(), radius: 0 };\n\n /** m_hasUpdated (false until the first UpdateAsyncronous). */\n hasUpdated = false;\n\n /** m_adjustedMinScreenSize = minScreenSize * lodFactor (cpp:706). */\n adjustedMinScreenSize = 0;\n\n /** m_currentQuality (cpp:85) - Tr2VolumerticQuality.High. */\n currentQuality = 2;\n\n /** m_lightmapDirty (cpp:89). */\n lightmapDirty = true;\n\n /** m_renderedLastFrame (cpp:90). */\n renderedLastFrame = true;\n\n /** m_effectHash - effect identity tracked by UpdateSyncronous (cpp:625-633). */\n effectHash = 0;\n\n /** Unscaled lightmap dimensions - Carbon discovers them from the effect's\n * DensityMap resource (cpp:634-665, engine-owned in JS; 0 fail-closes\n * UpdateVolumetricLightmap). */\n lightmapWidth = 0;\n\n /** m_lightmapHeight - see lightmapWidth. */\n lightmapHeight = 0;\n\n /** m_lightmapDepth - see lightmapWidth. */\n lightmapDepth = 0;\n\n /** m_lightmapDirtyOffset - the incremental lightmap update cursor. */\n lightmapDirtyOffset = 0;\n\n /** m_prevSunDirection (SetSceneInformation's re-dirty threshold state). */\n prevSunDirection = vec3.create();\n\n /** m_localSunDirection (SetSceneInformation cpp:407). */\n localSunDirection = vec3.create();\n\n /** m_depthSlices - SceneInformation::depthSliceCount = 4\n * (ITr2VolumetricRenderable.h:26). */\n depthSlices = new Float32Array(4);\n\n /** m_targetWidth - Carbon leaves it uninitialized until SetSceneInformation;\n * JS zeroes (targetInvSize then divides by zero to Infinity, matching\n * Carbon's float semantics on garbage-free zero). */\n targetWidth = 0;\n\n /** m_targetHeight - see targetWidth. */\n targetHeight = 0;\n\n /** m_lightViewProj - Carbon: uninitialized memory until SetupShadowFrustum;\n * JS: identity. */\n lightViewProj = mat4.create();\n\n /** m_shadowMapSize (cpp:101). */\n shadowMapSize = 512;\n\n /** The global \"DepthShadowMap\" variable handle Carbon registers in the ctor\n * (cpp:115) - the variable store is engine-owned in JS, so the handle is an\n * engine-injected duck. */\n depthShadowMapHandle = null;\n\n /** Carbon EveChildCloud2::RegisterComponents (EveChildCloud2.cpp:148-163):\n * LightOwner when lights are authored; VolumetricRenderable UNCONDITIONAL;\n * ReflectionRenderable only when ShouldReflect && display &&\n * reflectionEffect. Note: no whole-block display gate in Carbon. No\n * UnRegisterComponents override (base no-op; EveEntity::UnRegister already\n * removes the components, EveEntity.cpp:90). */\n @impl.implemented\n RegisterComponents()\n {\n const registry = this.GetComponentRegistry();\n if (registry)\n {\n if (this.lights.length)\n {\n registry.RegisterComponent(EveComponentType.LightOwner, this);\n }\n registry.RegisterComponent(EveComponentType.VolumetricRenderable, this);\n if (ShouldReflect(this.reflectionMode) && this.display && this.reflectionEffect)\n {\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\n }\n }\n }\n\n /** Carbon EveChildCloud2::UpdateSyncronous (cpp:621-685): an effect-hash\n * change invalidates the lightmap and zeroes its dimensions (cpp:625-633);\n * the DensityMap-driven dimension discovery and the empty-lightmap fallback\n * (cpp:634-674) are GPU/resource work; the texture animation advances gated\n * on UpdateOnlyWhenRendered/renderedLastFrame (cpp:677-683) and\n * renderedLastFrame is cleared every pass (cpp:684) - the flag is only\n * re-stamped by the volumetric batch path (GetVolumetricBatches cpp:283),\n * deliberately NOT by the reflection path. */\n @impl.adapted\n @impl.reason(\"DensityMap texture discovery and empty-lightmap creation (cpp:634-674) are engine-owned resource work - lightmapWidth stays 0 until the engine stamps it, which fail-closes UpdateVolumetricLightmap; the hash invalidation, animation gate and renderedLastFrame contract are ported.\")\n UpdateSyncronous(updateContext, _params)\n {\n if (this.effect)\n {\n const hash = this.effect.GetHashValue?.() ?? this.effect;\n if (this.effectHash !== hash)\n {\n this.effectHash = hash;\n this.lightmapDirty = true;\n this.lightmapWidth = 0;\n this.lightmapHeight = 0;\n this.lightmapDepth = 0;\n }\n }\n\n if (this.animation)\n {\n if (!this.animation.UpdateOnlyWhenRendered?.() || this.renderedLastFrame)\n {\n this.animation.AdvanceTime?.(updateContext?.GetDeltaT?.() ?? 0);\n }\n }\n this.renderedLastFrame = false;\n }\n\n /** Carbon EveChildCloud2::UpdateAsyncronous (cpp:687-708): local SRT\n * transform (cpp:689); world = localTransform * parent - Carbon row-vector,\n * local applies first, so the gl-matrix operands swap (cpp:693); bounding\n * sphere = CcpMath::Sphere(unit cube, world) which transforms ONLY the min\n * and max corners (math Sphere.cpp:10-17 - the cheap two-corner form, not an\n * 8-corner bound; preserved); map-offset scroll from the origin-shift-\n * corrected world movement rotated into local space (cpp:697-704 - QUIRK\n * kept verbatim: the .z offset scrolls by mapTiling.y, cpp:703); adjusted\n * min screen size (cpp:706); hasUpdated stamp (cpp:707). */\n @impl.implemented\n UpdateAsyncronous(updateContext, params = {})\n {\n // Carbon TransformationMatrix(m_scaling, m_rotation, m_translation)\n // (cpp:689) - argument order differs, matrix identical.\n mat4.fromRotationTranslationScale(this.localTransform, this.rotation, this.translation, this.scaling);\n\n const parent = params?.localToWorldTransform ?? IDENTITY;\n const w = this.worldTransform;\n const prevX = w[12];\n const prevY = w[13];\n const prevZ = w[14];\n // Carbon (row-vector): m_localTransform * parent - local first.\n mat4.multiply(w, parent, this.localTransform);\n\n // CcpMath::Sphere(AxisAlignedBox(-0.5..0.5), world) (cpp:695).\n vec3.set(CORNER_MIN_SCRATCH, -0.5, -0.5, -0.5);\n vec3.transformMat4(CORNER_MIN_SCRATCH, CORNER_MIN_SCRATCH, w);\n vec3.set(CORNER_MAX_SCRATCH, 0.5, 0.5, 0.5);\n vec3.transformMat4(CORNER_MAX_SCRATCH, CORNER_MAX_SCRATCH, w);\n const center = this.boundingSphere.center;\n center[0] = (CORNER_MIN_SCRATCH[0] + CORNER_MAX_SCRATCH[0]) * 0.5;\n center[1] = (CORNER_MIN_SCRATCH[1] + CORNER_MAX_SCRATCH[1]) * 0.5;\n center[2] = (CORNER_MIN_SCRATCH[2] + CORNER_MAX_SCRATCH[2]) * 0.5;\n this.boundingSphere.radius = vec3.distance(CORNER_MIN_SCRATCH, CORNER_MAX_SCRATCH) * 0.5;\n\n // shift = -originShift + (new - previous world translation), then rotated\n // into local space with TransformNormal(shift, Inverse(world)) (cpp:697-698).\n const originShift = updateContext?.GetOriginShift?.();\n SHIFT_SCRATCH[0] = (originShift ? -originShift[0] : 0) + w[12] - prevX;\n SHIFT_SCRATCH[1] = (originShift ? -originShift[1] : 0) + w[13] - prevY;\n SHIFT_SCRATCH[2] = (originShift ? -originShift[2] : 0) + w[14] - prevZ;\n // Carbon's one-arg Inverse returns the INPUT unchanged on a singular\n // matrix (math Matrix.cpp:12-16) and the scroll still runs - mirrored.\n const inverse = mat4.invert(INV_SCRATCH, w) ?? w;\n TransformNormal(SHIFT_SCRATCH, SHIFT_SCRATCH, inverse);\n const offsets = [this.mapOffset0, this.mapOffset1, this.mapOffset2];\n const tilings = [this.textureTiling, this.detailTiling1, this.detailTiling2];\n for (let i = 0; i < 3; ++i)\n {\n const offset = offsets[i];\n const tiling = tilings[i];\n offset[0] = (offset[0] + SHIFT_SCRATCH[0] * tiling[0]) % 1;\n offset[1] = (offset[1] + SHIFT_SCRATCH[1] * tiling[1]) % 1;\n // Carbon bug preserved verbatim: .z scrolls by mapTiling.y (cpp:703).\n offset[2] = (offset[2] + SHIFT_SCRATCH[2] * tiling[1]) % 1;\n }\n\n this.adjustedMinScreenSize = this.minScreenSize * (updateContext?.GetLodFactor?.() ?? 1);\n this.hasUpdated = true;\n }\n\n /** Carbon EveChildCloud2::GetBoundingSphere (cpp:226-230): the packed\n * (center, radius) cloud sphere, unconditionally true. IEveSpaceObjectChild\n * override - parent bounds unions consume it optional-chained. */\n @impl.implemented\n GetBoundingSphere(out = new Float32Array(4), _query = 0)\n {\n out[0] = this.boundingSphere.center[0];\n out[1] = this.boundingSphere.center[1];\n out[2] = this.boundingSphere.center[2];\n out[3] = this.boundingSphere.radius;\n return true;\n }\n\n /** Carbon EveChildCloud2::GetLocalToWorldTransform (cpp:232-235); the\n * optional out follows the EveChildContainer copy-out shape. */\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 /** Carbon EveChildCloud2::IsVisible (cpp:837-852): display + one-arg\n * IsSphereVisible (the back-plane-ignored TriFrustum quirk applies), then\n * the Sphere-duck GetPixelSizeAccross (Est path) against minScreenSize *\n * the LIVE lodFactor (not the adjusted stamp). Carbon's override of the\n * defaulted ITr2Renderable::IsVisible (h:47-50 returns true) - without it\n * the reflection gather would treat the cloud as always visible. */\n @impl.implemented\n IsVisible(updateContext)\n {\n const frustum = updateContext?.GetFrustum?.();\n if (!frustum)\n {\n return false;\n }\n const sphere = this.boundingSphere;\n if (!this.display || !frustum.IsSphereVisible(sphere.center, sphere.radius))\n {\n return false;\n }\n const screenSize = frustum.GetPixelSizeAccross(sphere);\n if (screenSize < this.minScreenSize * (updateContext?.GetLodFactor?.() ?? 1))\n {\n return false;\n }\n return true;\n }\n\n /** Carbon EveChildCloud2::HasValidTransform (cpp:309-317): determinant is\n * nonzero and finite. */\n @impl.implemented\n HasValidTransform()\n {\n const det = mat4.determinant(this.worldTransform);\n return det !== 0 && Number.isFinite(det);\n }\n\n /** Carbon EveChildCloud2::IsLightmapDirty (cpp:748-751). */\n @impl.implemented\n IsLightmapDirty()\n {\n return this.lightmapDirty;\n }\n\n /** Carbon EveChildCloud2::MarkLightmapDirty (cpp:753-757): also zeroes the\n * dirty offset (contrast SetSceneInformation's scale-change path, which\n * sets the flag WITHOUT resetting the offset - cpp:398-402). */\n @impl.implemented\n MarkLightmapDirty(dirty)\n {\n this.lightmapDirty = !!dirty;\n this.lightmapDirtyOffset = 0;\n }\n\n /** Carbon EveChildCloud2::GetLights (cpp:732-746): display gate only (no\n * hasUpdated gate, unlike EveChildContainer), average world-basis-row-length\n * scaling (Carbon LengthEst; exact hypot is the accepted divergence - single\n * matrix reads, no composition), each light submitted with the world\n * transform through the duck-typed manager. Inside Tr2Light::AddLight\n * Carbon composes boneTransform * transform (Tr2Light.cpp:132) - that swap\n * belongs to the Tr2Light port, not here. */\n @impl.implemented\n GetLights(lightManager)\n {\n if (!this.display)\n {\n return;\n }\n const m = this.worldTransform;\n const scaling = (\n Math.hypot(m[0], m[1], m[2]) +\n Math.hypot(m[4], m[5], m[6]) +\n Math.hypot(m[8], m[9], m[10])\n ) / 3;\n for (const light of this.lights)\n {\n light?.AddLight?.(lightManager, m, scaling);\n }\n }\n\n /** Carbon's two GetSortValue overloads, dispatched on argument presence:\n * the ITr2VolumetricRenderable frustum form (cpp:237-242) - view distance\n * minus |authored local scaling| * sortingModifier, consumed by the\n * volumetric renderer's DESCENDING stable sort (farthest first,\n * Tr2VolumetricsRenderer.cpp:276-287) - and the ITr2Renderable zero-arg\n * form (cpp:914-917) - float32 max (finite, NOT Infinity), so the\n * transparent reflection pass sorts the cloud to draw first. */\n @impl.implemented\n GetSortValue(frustum = null)\n {\n if (!frustum)\n {\n return FLOAT32_MAX;\n }\n const viewPos = frustum.viewPos ?? frustum.m_viewPos;\n const w = this.worldTransform;\n const dx = viewPos[0] - w[12];\n const dy = viewPos[1] - w[13];\n const dz = viewPos[2] - w[14];\n return Math.hypot(dx, dy, dz) - vec3.length(this.scaling) * this.sortingModifier;\n }\n\n /** Carbon EveChildCloud2::GetVolumetricBatches (cpp:244-284), exact gate\n * order: quality (cpp:246), display+hasUpdated+frustum sphere (cpp:250),\n * Sphere-duck pixel size vs the adjusted min screen size (cpp:256-260),\n * HasValidTransform (cpp:262), unit-cube buffers + effect shader\n * (cpp:267-274), then ONE transparent volumetric batch with the real\n * screenSize per-object data and Carbon's 36-index draw (cpp:276-281).\n * Stamps renderedLastFrame (cpp:283) - the texture-animation keep-alive.\n * Returns whether a batch was committed (JS addition; Carbon returns void). */\n @impl.adapted\n @impl.reason(\"The procedural unit-cube vertex/index buffers and declaration (OnPrepareResources cpp:453-532) are engine-realized, so the buffer-validity gate (cpp:267-270) and shader-state gate (cpp:271-274) reduce to the effect presence check; the batch records the effect, per-object data and draw arguments for the engine to bind the cube.\")\n GetVolumetricBatches(frustum, batches)\n {\n if (this.currentQuality < this.minVisibleQuality)\n {\n return false;\n }\n const sphere = this.boundingSphere;\n const isVisible = this.display && this.hasUpdated &&\n frustum?.IsSphereVisible?.(sphere.center, sphere.radius) === true;\n if (!isVisible)\n {\n return false;\n }\n\n // Sphere duck routes to the Est estimator, matching Carbon's Sphere\n // overload (cpp:256; TriFrustum cpp:295-298).\n const screenSize = frustum.GetPixelSizeAccross(sphere);\n if (screenSize < this.adjustedMinScreenSize)\n {\n return false;\n }\n if (!this.HasValidTransform())\n {\n return false;\n }\n if (!this.effect)\n {\n return false;\n }\n\n const batch = new Tr2RenderBatch();\n batch.SetMaterial(this.effect);\n batch.SetPerObjectData(this.GetPerObjectData(batches, screenSize));\n batch.SetDrawIndexedInstanced(12 * 3, 1, 0, 0, 0);\n const committed = batches?.Commit?.(batch) === true;\n\n this.renderedLastFrame = true;\n return committed;\n }\n\n /** Carbon EveChildCloud2::UpdateVolumetricLightmap (cpp:319-382): the\n * scene-facing contract is the gates and the bool return - true means \"this\n * cloud consumed the frame's single scene-wide lightmap budget\"\n * (Tr2VolumetricsRenderer::ProcessComponentsUntil stops at the FIRST true,\n * cpp:219-221). Slice budget: VOXELS_PER_UPDATE = 6400000 * scale^3;\n * slices = max(VOXELS / (scaledHeight * scaledDepth), 1) (cpp:354-355).\n * QUIRK verbatim: the dispatch group Y/Z counts use the UNSCALED dims while\n * the slice count uses the scaled ones (cpp:359-361). Success advances\n * lightmapDirtyOffset by slices; reaching scaledWidth completes the map\n * (dirty false, offset 0); failure resets the offset and returns false. */\n @impl.adapted\n @impl.reason(\"The 3D lightmap texture lifecycle, per-object upload and LightMap variable swaps (cpp:327-352, 363-372) are engine-owned; the GenerateLightmap dispatch is delegated to a renderContext.RunComputeShader duck and fail-closes to false when absent.\")\n UpdateVolumetricLightmap(renderContext)\n {\n if (this.currentQuality < this.minVisibleQuality || !this.hasUpdated)\n {\n return false;\n }\n if (this.lightmapDirty && this.effect && this.lightmapWidth > 0 && this.HasValidTransform())\n {\n const scaledWidth = Math.max(1, Math.floor(this.lightmapWidth * this.lightmapSizeScale));\n const scaledHeight = Math.max(1, Math.floor(this.lightmapHeight * this.lightmapSizeScale));\n const scaledDepth = Math.max(1, Math.floor(this.lightmapDepth * this.lightmapSizeScale));\n\n const VOXELS_PER_UPDATE = Math.floor(6400000 * this.lightmapSizeScale ** 3);\n const slices = Math.max(Math.floor(VOXELS_PER_UPDATE / (scaledHeight * scaledDepth)), 1);\n const success = renderContext?.RunComputeShader?.(\n this.effect,\n \"GenerateLightmap\",\n slices,\n Math.floor((this.lightmapHeight + 7) / 8),\n Math.floor((this.lightmapDepth + 7) / 8)\n ) === true;\n if (success)\n {\n this.lightmapDirtyOffset += slices;\n if (this.lightmapDirtyOffset >= scaledWidth)\n {\n this.lightmapDirty = false;\n this.lightmapDirtyOffset = 0;\n }\n return true;\n }\n this.lightmapDirtyOffset = 0;\n }\n return false;\n }\n\n /** Carbon EveChildCloud2::SetSceneInformation (cpp:384-424): quality maps to\n * lightmapSizeScale (Low 0.1 / Medium 0.15 / default 0.25, cpp:386-397); a\n * scale change sets lightmapDirty WITHOUT resetting the dirty offset\n * (cpp:398-402 - asymmetric vs MarkLightmapDirty, preserved); copies the 4\n * depth slices; localSunDirection = Normalize(TransformNormal(sunDir,\n * Inverse(world))) (cpp:407 - single-matrix inverse + basis transform, no\n * composition); re-dirties the lightmap when the sun moved past\n * cos(5/180) - QUIRK verbatim: Carbon omits the degree conversion, so the\n * threshold is ~1.59 degrees, not 5 (cpp:408); stamps target dims; flips\n * the two cloud-shadow effect options (cpp:417-423). */\n @impl.adapted\n @impl.reason(\"Carbon dereferences m_effect with no null guard (cpp:417); the JS option writes are optional-chained. Everything else is verbatim, including the missing degree conversion in the sun-motion threshold.\")\n SetSceneInformation(sceneInformation)\n {\n let lightmapSizeScale;\n switch (sceneInformation.quality)\n {\n case EveChildCloud2.Tr2VolumerticQuality.Low:\n lightmapSizeScale = 0.1;\n break;\n case EveChildCloud2.Tr2VolumerticQuality.Medium:\n lightmapSizeScale = 0.15;\n break;\n default:\n lightmapSizeScale = 0.25;\n }\n if (lightmapSizeScale !== this.lightmapSizeScale)\n {\n this.lightmapSizeScale = lightmapSizeScale;\n this.lightmapDirty = true;\n }\n this.currentQuality = sceneInformation.quality;\n\n for (let i = 0; i < 4; ++i)\n {\n this.depthSlices[i] = sceneInformation.depthSlices?.[i] ?? 0;\n }\n\n // Carbon's one-arg Inverse returns the INPUT unchanged on a singular\n // matrix (math Matrix.cpp:12-16) and the recompute still runs - mirrored.\n const inverse = mat4.invert(INV_SCRATCH, this.worldTransform) ?? this.worldTransform;\n TransformNormal(SUN_SCRATCH, sceneInformation.sunDirection, inverse);\n vec3.normalize(this.localSunDirection, SUN_SCRATCH);\n if (vec3.dot(this.prevSunDirection, this.localSunDirection) < Math.cos(5.0 / 180.0))\n {\n vec3.copy(this.prevSunDirection, this.localSunDirection);\n this.MarkLightmapDirty(true);\n }\n\n this.targetWidth = sceneInformation.targetWidth;\n this.targetHeight = sceneInformation.targetHeight;\n\n const receive = !!sceneInformation.receiveShadows && !!this.receiveShadows;\n this.effect?.SetOption?.(\n \"CLOUD_SHADOWS\",\n receive ? \"CLOUD_SHADOWS_RECEIVE\" : \"CLOUD_SHADOWS_NONE\"\n );\n this.effect?.SetOption?.(\n \"CLOUD_SHADOW_ALGORITHM\",\n receive && sceneInformation.raytracedShadows ? \"CLOUD_SHADOWS_RAYTRACED\" : \"CLOUD_SHADOWS_CASCADED\"\n );\n }\n\n /** Carbon EveChildCloud2::GetVolumetricShadowBatches (cpp:759-785): gated on\n * display + effect + castShadows, then the \"Shadow\" technique presence\n * (cpp:766-776); emits ONE alpha, declaration-less (NULL_DECLARATION,\n * cpp:782), non-indexed single-triangle batch with screenSize-1 per-object\n * data (cpp:778-784). Does NOT stamp renderedLastFrame. Returns whether the\n * batch was committed (JS addition). */\n @impl.adapted\n @impl.reason(\"The 'Shadow' technique gate applies only when a shader-state interface is realized - in GPU-free collection the engine drops the batch at realization otherwise; NULL_DECLARATION maps to declaration 0.\")\n GetVolumetricShadowBatches(batches)\n {\n if (!this.display || !this.effect || !this.castShadows)\n {\n return false;\n }\n // cpp:766-776 - the \"Shadow\" technique must exist. The JS shader duck\n // (Tr2Shader.GetTechniqueIndex) returns an INDEX: -1 for missing, 0..n\n // for found - 0 is a valid technique (compare < 0, never truthiness).\n const shader = this.effect.GetShaderStateInterface?.();\n if (shader?.GetTechniqueIndex)\n {\n const technique = shader.GetTechniqueIndex(\"Shadow\");\n if (technique === null || technique === undefined || technique < 0)\n {\n return false;\n }\n }\n\n const batch = new Tr2RenderBatch();\n batch.SetMaterial(this.effect);\n batch.SetPerObjectData(this.GetPerObjectData(batches, 1));\n batch.SetRenderingMode(RenderingMode.RM_ALPHA);\n batch.SetVertexDeclaration(0);\n batch.SetDrawInstanced(3, 1, 0, 0);\n return batches?.Commit?.(batch) === true;\n }\n\n /** Carbon EveChildCloud2::GetVolumetricShadowInfo (cpp:787-790): pure\n * delegation to SetupShadowFrustum. The scene calls this to build the\n * shadow-camera package before rendering casters into the cloud shadow map\n * (EveSpaceScene.cpp:2355-2371). */\n @impl.implemented\n GetVolumetricShadowInfo(shadowInfo, sunDir)\n {\n return this.SetupShadowFrustum(shadowInfo, sunDir);\n }\n\n /** Carbon EveChildCloud2::SetupShadowFrustum (cpp:886-907):\n * lightView = Inverse(OrthoNormalBasisZ(-sunDir)) (cpp:889 - single-matrix\n * build + invert); the unit-cube AABB transformed by worldTransform *\n * lightView - COMPOSITION, world applies first, so the gl-matrix operands\n * swap (cpp:893; all 8 corners, math AxisAlignedBox.cpp:9-33); max.z\n * extended by the 2,500,000 sun-ray magic constant (cpp:895); lightViewProj\n * = lightView * OrthoOffCenterMatrix(...) - COMPOSITION, lightView first,\n * operands swap (cpp:897), with Carbon's deliberately mirrored argument\n * order (max.x, min.x, max.y, min.y, -max.z, -min.z) and D3D z-in-[0,1]\n * formula both preserved; DeriveFrustum(lightView, aabb.min, aabb.max)\n * (cpp:900-901); outputs aabbMax / lightViewProj copy / shadowFrustum /\n * shadowMapSize (cpp:903-906). */\n @impl.implemented\n SetupShadowFrustum(shadowInfo, sunDir)\n {\n vec3.set(SUN_SCRATCH, -sunDir[0], -sunDir[1], -sunDir[2]);\n OrthoNormalBasisZ(BASIS_SCRATCH, SUN_SCRATCH);\n if (!mat4.invert(LIGHT_VIEW_SCRATCH, BASIS_SCRATCH))\n {\n mat4.identity(LIGHT_VIEW_SCRATCH);\n }\n\n // Carbon (row-vector): m_worldTransform * lightView - world first.\n mat4.multiply(WORLD_LIGHT_SCRATCH, LIGHT_VIEW_SCRATCH, this.worldTransform);\n let minX = Infinity, minY = Infinity, minZ = Infinity;\n let maxX = -Infinity, maxY = -Infinity, maxZ = -Infinity;\n for (let corner = 0; corner < 8; ++corner)\n {\n CORNER_SCRATCH[0] = (corner & 1) ? 0.5 : -0.5;\n CORNER_SCRATCH[1] = (corner & 2) ? 0.5 : -0.5;\n CORNER_SCRATCH[2] = (corner & 4) ? 0.5 : -0.5;\n vec3.transformMat4(CORNER_SCRATCH, CORNER_SCRATCH, WORLD_LIGHT_SCRATCH);\n minX = Math.min(minX, CORNER_SCRATCH[0]);\n minY = Math.min(minY, CORNER_SCRATCH[1]);\n minZ = Math.min(minZ, CORNER_SCRATCH[2]);\n maxX = Math.max(maxX, CORNER_SCRATCH[0]);\n maxY = Math.max(maxY, CORNER_SCRATCH[1]);\n maxZ = Math.max(maxZ, CORNER_SCRATCH[2]);\n }\n maxZ += 2500000;\n\n OrthoOffCenterMatrix(ORTHO_SCRATCH, maxX, minX, maxY, minY, -maxZ, -minZ);\n // Carbon (row-vector): lightView * ortho - lightView first.\n mat4.multiply(this.lightViewProj, ORTHO_SCRATCH, LIGHT_VIEW_SCRATCH);\n\n const shadowFrustum = new TriFrustumOrtho();\n vec3.set(BOUNDS_MIN_SCRATCH, minX, minY, minZ);\n vec3.set(BOUNDS_MAX_SCRATCH, maxX, maxY, maxZ);\n shadowFrustum.DeriveFrustum(LIGHT_VIEW_SCRATCH, BOUNDS_MIN_SCRATCH, BOUNDS_MAX_SCRATCH);\n\n shadowInfo.aabbMax = vec3.fromValues(maxX, maxY, maxZ);\n shadowInfo.lightViewProj = mat4.clone(this.lightViewProj);\n shadowInfo.shadowFrustum = shadowFrustum;\n shadowInfo.shadowMapSize = this.shadowMapSize;\n return shadowInfo;\n }\n\n /** Carbon EveChildCloud2::PrepareCloudShadowMap (cpp:792-826): the CPU\n * contract is the receiveShadows gate (cpp:796-799) and the bool return -\n * the scene calls SetCloudShadowMapHandle ONLY after a true return\n * (EveSpaceScene.cpp:2365-2368), which is what makes Carbon's unguarded\n * m_shadowMapDS dereference there safe. */\n @impl.adapted\n @impl.reason(\"Depth-stencil creation and the viewport/render-target pushes (cpp:801-823) are engine-owned, delegated to a renderContext duck; the gate and return contract are ported.\")\n PrepareCloudShadowMap(renderContext)\n {\n if (!this.receiveShadows)\n {\n return false;\n }\n renderContext?.PrepareCloudShadowMap?.(this);\n return true;\n }\n\n /** Carbon EveChildCloud2::SetCloudShadowMapHandle (cpp:829-835): publish the\n * shadow depth-stencil into the global \"DepthShadowMap\" variable handle\n * (registered in the Carbon ctor, cpp:115). QUIRK: Carbon dereferences\n * m_shadowMapDS with no null guard - safe only via the\n * PrepareCloudShadowMap-first call order (see above). */\n @impl.adapted\n @impl.reason(\"The variable store is engine-owned (depthShadowMapHandle is an injected duck); Carbon's unguarded m_shadowMapDS dereference is optional-chained.\")\n SetCloudShadowMapHandle()\n {\n if (this.shadowMapDS?.IsValid?.())\n {\n this.depthShadowMapHandle?.SetValue?.(this.shadowMapDS);\n }\n }\n\n /** Carbon EveChildCloud2::GetBatches (cpp:854-884): quality gate, then ONLY\n * the (REFLECTION, TRANSPARENT) type/reason pair produces anything\n * (cpp:860) - every other combination is a silent no-op; HasValidTransform\n * + unit-cube buffers + reflectionEffect gates (cpp:862-874); one alpha\n * batch with the hardcoded 10000 screen size forcing max lodFactor\n * (cpp:878). QUIRK: unlike GetVolumetricBatches this does NOT stamp\n * renderedLastFrame - reflection-only rendering does not keep texture\n * animations alive. Returns whether a batch was committed (JS addition). */\n @impl.adapted\n @impl.reason(\"Unit-cube buffers/declaration are engine-realized (as GetVolumetricBatches); the perObjectData parameter is unused because Carbon allocates the cloud's own with screenSize 10000 (cpp:878).\")\n GetBatches(batches, batchType, _perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\n {\n if (this.currentQuality < this.minVisibleQuality)\n {\n return false;\n }\n if (reason !== Tr2RenderReason.TR2RENDERREASON_REFLECTION || batchType !== TriBatchType.TRIBATCHTYPE_TRANSPARENT)\n {\n return false;\n }\n if (!this.HasValidTransform())\n {\n return false;\n }\n if (!this.reflectionEffect)\n {\n return false;\n }\n\n const batch = new Tr2RenderBatch();\n batch.SetMaterial(this.reflectionEffect);\n batch.SetPerObjectData(this.GetPerObjectData(batches, 10000));\n batch.SetDrawIndexedInstanced(12 * 3, 1, 0, 0, 0);\n batch.SetRenderingMode(RenderingMode.RM_ALPHA);\n return batches?.Commit?.(batch) === true;\n }\n\n /** Carbon EveChildCloud2::HasTransparentBatches (cpp:909-912):\n * unconditionally true - the reflection gather always routes the cloud\n * through the transparent leg that feeds GetBatches' type/reason filter. */\n @impl.implemented\n HasTransparentBatches()\n {\n return true;\n }\n\n /** Carbon's two GetPerObjectData overloads (public, screenSize 1:\n * cpp:919-927; private, caller screenSize: cpp:534-542): allocate from the\n * accumulator and populate. The GPU-free record carries the live object\n * reference plus the CPU-populated field block (cloudData); view-dependent\n * members are refreshed by the engine calling PopulatePerObjectData again\n * with its render context at realization (screenSize is stamped for that). */\n @impl.adapted\n @impl.reason(\"EveChildCloudPerObjectData's device constant buffers are engine-owned; the record carries the object reference, the collection-time screenSize and the CPU field block.\")\n GetPerObjectData(accumulator = null, screenSize = 1)\n {\n const data = typeof accumulator?.Allocate === \"function\"\n ? accumulator.Allocate(Tr2PerObjectData)\n : new Tr2PerObjectData();\n if (!data)\n {\n return null;\n }\n data.object = this;\n data.screenSize = screenSize;\n data.cloudData = this.PopulatePerObjectData({}, screenSize);\n return data;\n }\n\n /** Carbon EveChildCloud2::PopulatePerObjectData (cpp:544-619) against the\n * PerObjectData block (EveChildCloud2.h:125-145). Compositions (Carbon\n * row-vector -> gl-matrix operands swap):\n * - cpp:548/567 worldTransform * viewTransform (world first) ->\n * mat4.multiply(WV, view, world); the cpp:567 transpose is folded into\n * explicit element reads: viewDirection = TransformNormal((0,0,-1),\n * worldViewT) = (-WV[2], -WV[6], -WV[10]); depthSliceN =\n * -WV[14] - slice * WV[15].\n * Single-matrix sites (NO swap): the cpp:546/547/551 HLSL packing\n * transposes, cpp:550 TransformCoord with the inverted world, cpp:578\n * Decompose (mat4.getScaling). */\n @impl.adapted\n @impl.reason(\"Tr2Renderer's view/projection globals relocate onto the optional renderContext duck (identity/zero fallbacks when absent - the engine repopulates at realization); rand() maps to Math.random with a zero-size guard Carbon's UB-free ctor default (32) never needed; the Tr2Light Perlin flicker inside GetLight awaits the frame-clock seam.\")\n PopulatePerObjectData(data, screenSize = 1, renderContext = null)\n {\n const w = this.worldTransform;\n // cpp:546 - packing transpose of a single matrix.\n data.world = mat4.transpose(mat4.create(), w);\n\n // cpp:547 - Transpose(Inverse(reversed-depth projection)); renderer\n // global (identity when the context duck is absent; a singular input\n // mirrors Carbon's Inverse-returns-input).\n data.projectionInv = mat4.create();\n const projection = renderContext?.GetReversedDepthProjectionTransform?.();\n if (projection)\n {\n if (!mat4.invert(data.projectionInv, projection))\n {\n mat4.copy(data.projectionInv, projection);\n }\n mat4.transpose(data.projectionInv, data.projectionInv);\n }\n\n // cpp:548-549 - Inverse(world * view), COMPOSITION: operands swap.\n // Singular product: Carbon's Inverse returns the input unchanged\n // (math Matrix.cpp:12-16) - mirrored.\n const view = renderContext?.GetViewTransform?.() ?? IDENTITY;\n mat4.multiply(WV_SCRATCH, view, w);\n data.worldViewInv = mat4.create();\n if (!mat4.invert(data.worldViewInv, WV_SCRATCH))\n {\n mat4.copy(data.worldViewInv, WV_SCRATCH);\n }\n mat4.transpose(data.worldViewInv, data.worldViewInv);\n\n // cpp:550 - TransformCoord(viewPosition, Inverse(world)) - single matrix;\n // same singular-input mirror.\n data.viewPosition = vec3.create();\n const viewPosition = renderContext?.GetViewPosition?.();\n if (viewPosition)\n {\n const inverseWorld = mat4.invert(INV_SCRATCH, w) ?? w;\n vec3.transformMat4(data.viewPosition, viewPosition, inverseWorld);\n }\n\n // cpp:551 - packing transpose (stamped by SetupShadowFrustum).\n data.lightViewProj = mat4.transpose(mat4.create(), this.lightViewProj);\n\n // cpp:553-560 - scaled lightmap dims + dirty offset.\n const scaledWidth = Math.max(1, Math.floor(this.lightmapWidth * this.lightmapSizeScale));\n const scaledHeight = Math.max(1, Math.floor(this.lightmapHeight * this.lightmapSizeScale));\n const scaledDepth = Math.max(1, Math.floor(this.lightmapDepth * this.lightmapSizeScale));\n data.lightmapDimensions = [scaledWidth, scaledHeight, scaledDepth, this.lightmapDirtyOffset];\n\n // cpp:562-565 - rand() % noiseTextureSize; nondeterministic by design.\n // The generated schema default 0 would be modulo-by-zero UB in Carbon\n // (its ctor default is 32) - guarded here.\n const noiseSize = this.noiseTextureSize >>> 0;\n data.noiseConfig = [\n noiseSize > 0 ? Math.floor(Math.random() * noiseSize) : 0,\n noiseSize > 0 ? Math.floor(Math.random() * noiseSize) : 0,\n noiseSize,\n noiseSize,\n ];\n\n // cpp:567-571 - Transpose(world * view) consumed by row-vector transforms;\n // ported as explicit element reads of the (already swapped) WV product.\n const wv = WV_SCRATCH;\n data.viewDirection = vec3.fromValues(-wv[2], -wv[6], -wv[10]);\n data.depthSlice0 = -wv[14] - this.depthSlices[0] * wv[15];\n data.depthSlice1 = -wv[14] - this.depthSlices[1] * wv[15];\n data.depthSlice2 = -wv[14] - this.depthSlices[2] * wv[15];\n\n // cpp:573.\n data.sunDirection = vec3.fromValues(\n -this.localSunDirection[0],\n -this.localSunDirection[1],\n -this.localSunDirection[2]\n );\n\n // cpp:575-580 - Decompose scale, normalized by the largest component\n // (pure decomposition - no composition, no swap).\n mat4.getScaling(SCALE_SCRATCH, w);\n const maxScale = Math.max(SCALE_SCRATCH[0], SCALE_SCRATCH[1], SCALE_SCRATCH[2]);\n data.relativeScaling = vec3.fromValues(\n SCALE_SCRATCH[0] / maxScale,\n SCALE_SCRATCH[1] / maxScale,\n SCALE_SCRATCH[2] / maxScale\n );\n\n // cpp:581.\n data.lodFactor = Math.max(0, screenSize / Math.max(1, this.minScreenSize) - 1);\n\n // cpp:583 - Infinity when target dims are unset, matching Carbon's float\n // division semantics.\n data.targetInvSize = [2 / this.targetWidth, 2 / this.targetHeight];\n\n // cpp:585-614 - up to 4 lights via Tr2Light::GetLight; radius > 0 scales\n // the color by brightnessMultiplier * (innerRadius*2 + 1)^3; remaining\n // slots zero-filled (cpp:611-614).\n data.lights = [];\n for (const light of this.lights)\n {\n if (data.lights.length >= 4)\n {\n break;\n }\n const record = { position: vec3.create(), radius: 0, color: vec3.create(), innerRadius: 0 };\n if (light?.GetLight?.(LIGHT_SCRATCH))\n {\n vec3.copy(record.position, LIGHT_SCRATCH.position);\n record.radius = LIGHT_SCRATCH.radius;\n if (record.radius > 0)\n {\n const lightData = light.GetLightData?.();\n record.innerRadius = Math.max(Math.min((lightData?.innerRadius ?? 0) / record.radius, 1), 0);\n const multiplier = light.GetBrightnessMultiplier?.() ?? 1;\n const boost = (record.innerRadius * 2 + 1) ** 3;\n record.color[0] = LIGHT_SCRATCH.color[0] * multiplier * boost;\n record.color[1] = LIGHT_SCRATCH.color[1] * multiplier * boost;\n record.color[2] = LIGHT_SCRATCH.color[2] * multiplier * boost;\n }\n }\n data.lights.push(record);\n }\n while (data.lights.length < 4)\n {\n data.lights.push({ position: vec3.create(), radius: 0, color: vec3.create(), innerRadius: 0 });\n }\n\n // cpp:616-618.\n data.mapOffsets = [\n [this.mapOffset0[0], this.mapOffset0[1], this.mapOffset0[2], 0],\n [this.mapOffset1[0], this.mapOffset1[1], this.mapOffset1[2], 0],\n [this.mapOffset2[0], this.mapOffset2[1], this.mapOffset2[2], 0],\n ];\n return data;\n }\n\n static ReflectionMode = Object.freeze({\n REFLECT_HIGH: 0,\n REFLECT_MEDIUM_AND_HIGH: 1,\n REFLECT_LOW_MEDIUM_HIGH: 2,\n REFLECT_NEVER: 3,\n });\n\n static Tr2VolumerticQuality = Object.freeze({\n Low: 0,\n Medium: 1,\n High: 2,\n Ultra: 3,\n });\n\n}\n"],"names":["FLOAT32_MAX","IDENTITY","mat4","create","INV_SCRATCH","WV_SCRATCH","BASIS_SCRATCH","LIGHT_VIEW_SCRATCH","WORLD_LIGHT_SCRATCH","ORTHO_SCRATCH","CORNER_MIN_SCRATCH","vec3","CORNER_MAX_SCRATCH","CORNER_SCRATCH","SHIFT_SCRATCH","SUN_SCRATCH","SCALE_SCRATCH","BOUNDS_MIN_SCRATCH","BOUNDS_MAX_SCRATCH","LIGHT_SCRATCH","position","radius","color","OrthoNormalBasisZ","out","z","identity","zl","Math","hypot","zx","zy","zz","xx","abs","xy","yx","yy","yz","yl","OrthoOffCenterMatrix","l","r","b","t","zn","zf","TransformNormal","v","m","x","y","_EveChildCloud","_identity","EveChildCloud2","EveEntity","e","_init_reflectionMode","_init_extra_reflectionMode","_init_minVisibleQuality","_init_extra_minVisibleQuality","_init_sortingModifier","_init_extra_sortingModifier","_init_animation","_init_extra_animation","_init_shadowMapDS","_init_extra_shadowMapDS","_init_lightmap","_init_extra_lightmap","_init_lightmapSizeScale","_init_extra_lightmapSizeScale","_init_lights","_init_extra_lights","_init_minScreenSize","_init_extra_minScreenSize","_init_rotation","_init_extra_rotation","_init_translation","_init_extra_translation","_init_scaling","_init_extra_scaling","_init_reflectionEffect","_init_extra_reflectionEffect","_init_effect","_init_extra_effect","_init_noiseTextureSize","_init_extra_noiseTextureSize","_init_mapOffset","_init_extra_mapOffset","_init_mapOffset2","_init_extra_mapOffset2","_init_mapOffset3","_init_extra_mapOffset3","_init_castShadows","_init_extra_castShadows","_init_receiveShadows","_init_extra_receiveShadows","_init_name","_init_extra_name","_init_detailTiling","_init_extra_detailTiling","_init_detailTiling2","_init_extra_detailTiling2","_init_textureTiling","_init_extra_textureTiling","_init_display","_init_extra_display","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","schema","enum","float32","model","readwrite","objectRef","read","list","quat","uint32","boolean","string","impl","implemented","adapted","reason","reflectionMode","minVisibleQuality","sortingModifier","animation","shadowMapDS","lightmap","lightmapSizeScale","lights","minScreenSize","rotation","translation","scaling","reflectionEffect","effect","noiseTextureSize","mapOffset0","mapOffset1","mapOffset2","castShadows","receiveShadows","name","detailTiling1","detailTiling2","textureTiling","display","localTransform","worldTransform","boundingSphere","center","hasUpdated","adjustedMinScreenSize","currentQuality","lightmapDirty","renderedLastFrame","effectHash","lightmapWidth","lightmapHeight","lightmapDepth","lightmapDirtyOffset","prevSunDirection","localSunDirection","depthSlices","Float32Array","targetWidth","targetHeight","lightViewProj","shadowMapSize","depthShadowMapHandle","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","VolumetricRenderable","ShouldReflect","ReflectionRenderable","UpdateSyncronous","updateContext","_params","hash","GetHashValue","UpdateOnlyWhenRendered","AdvanceTime","GetDeltaT","UpdateAsyncronous","params","fromRotationTranslationScale","parent","localToWorldTransform","w","prevX","prevY","prevZ","multiply","set","transformMat4","distance","originShift","GetOriginShift","inverse","invert","offsets","tilings","i","offset","tiling","GetLodFactor","GetBoundingSphere","_query","GetLocalToWorldTransform","copy","IsVisible","frustum","GetFrustum","sphere","IsSphereVisible","screenSize","GetPixelSizeAccross","HasValidTransform","det","determinant","Number","isFinite","IsLightmapDirty","MarkLightmapDirty","dirty","GetLights","lightManager","light","AddLight","GetSortValue","viewPos","m_viewPos","dx","dy","dz","GetVolumetricBatches","batches","isVisible","batch","Tr2RenderBatch","SetMaterial","SetPerObjectData","GetPerObjectData","SetDrawIndexedInstanced","committed","Commit","UpdateVolumetricLightmap","renderContext","scaledWidth","max","floor","scaledHeight","scaledDepth","VOXELS_PER_UPDATE","slices","success","RunComputeShader","SetSceneInformation","sceneInformation","quality","Tr2VolumerticQuality","Low","Medium","sunDirection","normalize","dot","cos","receive","SetOption","raytracedShadows","GetVolumetricShadowBatches","shader","GetShaderStateInterface","GetTechniqueIndex","technique","undefined","SetRenderingMode","RenderingMode","RM_ALPHA","SetVertexDeclaration","SetDrawInstanced","GetVolumetricShadowInfo","shadowInfo","sunDir","SetupShadowFrustum","minX","Infinity","minY","minZ","maxX","maxY","maxZ","corner","min","shadowFrustum","TriFrustumOrtho","DeriveFrustum","aabbMax","fromValues","clone","PrepareCloudShadowMap","SetCloudShadowMapHandle","IsValid","SetValue","GetBatches","batchType","_perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","TR2RENDERREASON_REFLECTION","TriBatchType","TRIBATCHTYPE_TRANSPARENT","HasTransparentBatches","accumulator","data","Allocate","Tr2PerObjectData","object","cloudData","PopulatePerObjectData","world","transpose","projectionInv","projection","GetReversedDepthProjectionTransform","view","GetViewTransform","worldViewInv","viewPosition","GetViewPosition","inverseWorld","lightmapDimensions","noiseSize","noiseConfig","random","wv","viewDirection","depthSlice0","depthSlice1","depthSlice2","getScaling","maxScale","relativeScaling","lodFactor","targetInvSize","record","innerRadius","GetLight","lightData","GetLightData","multiplier","GetBrightnessMultiplier","boost","push","mapOffsets","ReflectionMode","Object","freeze","REFLECT_HIGH","REFLECT_MEDIUM_AND_HIGH","REFLECT_LOW_MEDIUM_HIGH","REFLECT_NEVER","High","Ultra","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveChildCloud2.js","sources":["../../../../../src/generated/eve/child/EveChildCloud2.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildCloud2.h\r\n// Generated by format-carbon carbon-class --emit. Verify against eve/child/EveChildCloud2.json.\r\nimport { impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { EveEntity } from \"../../../eve/EveEntity.js\";\r\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\r\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { RenderingMode } from \"@carbonenginejs/runtime-utils/graphics\";\r\nimport { EveComponentType, ShouldReflect } from \"../../../eve/EveComponentTypes.js\";\r\nimport { Tr2PerObjectData } from \"../../../trinityCore/Tr2PerObjectData.js\";\r\nimport { Tr2RenderBatch } from \"../../../trinityCore/Tr2RenderBatch.js\";\r\nimport { TriFrustumOrtho } from \"../../../trinityCore/TriFrustumOrtho.js\";\r\nimport { Tr2RenderReason, TriBatchType } from \"../../trinityCore/enums.js\";\r\n\r\n// Carbon std::numeric_limits<float>::max() (cpp:916). The renderable-side sort\r\n// value is a finite float32, NOT Infinity - downstream distance sums must stay\r\n// finite.\r\nconst FLOAT32_MAX = 3.4028234663852886e38;\r\n\r\nconst IDENTITY = mat4.create();\r\n\r\n// Module scratch (per-frame paths - never allocate in the hot loop).\r\nconst INV_SCRATCH = mat4.create();\r\nconst WV_SCRATCH = mat4.create();\r\nconst BASIS_SCRATCH = mat4.create();\r\nconst LIGHT_VIEW_SCRATCH = mat4.create();\r\nconst WORLD_LIGHT_SCRATCH = mat4.create();\r\nconst ORTHO_SCRATCH = mat4.create();\r\nconst CORNER_MIN_SCRATCH = vec3.create();\r\nconst CORNER_MAX_SCRATCH = vec3.create();\r\nconst CORNER_SCRATCH = vec3.create();\r\nconst SHIFT_SCRATCH = vec3.create();\r\nconst SUN_SCRATCH = vec3.create();\r\nconst SCALE_SCRATCH = vec3.create();\r\nconst BOUNDS_MIN_SCRATCH = vec3.create();\r\nconst BOUNDS_MAX_SCRATCH = vec3.create();\r\nconst LIGHT_SCRATCH = { position: vec3.create(), radius: 0, color: vec3.create() };\r\n\r\n/** Carbon OrthoNormalBasisZ (math Matrix_inline.h:531-546): identity; row Z =\r\n * Normalize(z); X seeded (0,1,0) when |Z.x| > 0.99 else (1,0,0); Y =\r\n * Normalize(Cross(X, Z)); X = Cross(Y, Z). Carbon's basis rows land at gl flat\r\n * [0..2]/[4..6]/[8..10] on the shared byte layout - single-matrix build, no\r\n * composition, no operand swap. A zero-length z NaNs exactly as Carbon's\r\n * Normalize does. */\r\nfunction OrthoNormalBasisZ(out, z)\r\n{\r\n mat4.identity(out);\r\n const zl = Math.hypot(z[0], z[1], z[2]);\r\n const zx = z[0] / zl;\r\n const zy = z[1] / zl;\r\n const zz = z[2] / zl;\r\n out[8] = zx;\r\n out[9] = zy;\r\n out[10] = zz;\r\n const xx = Math.abs(zx) > 0.99 ? 0 : 1;\r\n const xy = Math.abs(zx) > 0.99 ? 1 : 0;\r\n // Y = Normalize(Cross(X, Z)) with xz = 0 on either seed.\r\n let yx = xy * zz;\r\n let yy = -xx * zz;\r\n let yz = xx * zy - xy * zx;\r\n const yl = Math.hypot(yx, yy, yz);\r\n yx /= yl;\r\n yy /= yl;\r\n yz /= yl;\r\n out[4] = yx;\r\n out[5] = yy;\r\n out[6] = yz;\r\n // X = Cross(Y, Z).\r\n out[0] = yy * zz - yz * zy;\r\n out[1] = yz * zx - yx * zz;\r\n out[2] = yx * zy - yy * zx;\r\n return out;\r\n}\r\n\r\n/** Carbon OrthoOffCenterMatrix (math Matrix_inline.h:749-765): D3D-style\r\n * z-in-[0,1] off-center orthographic projection. Deliberately NOT gl-matrix's\r\n * mat4.ortho (GL z-in-[-1,1], different off-center terms). Carbon m[i][j]\r\n * lands at gl flat [i*4+j] on the shared byte layout. */\r\nfunction OrthoOffCenterMatrix(out, l, r, b, t, zn, zf)\r\n{\r\n mat4.identity(out);\r\n out[0] = 2 / (r - l);\r\n out[5] = 2 / (t - b);\r\n out[10] = 1 / (zn - zf);\r\n out[12] = -1 - 2 * l / (r - l);\r\n out[13] = 1 + 2 * t / (b - t);\r\n out[14] = zn / (zn - zf);\r\n return out;\r\n}\r\n\r\n/** Carbon TransformNormal(v, M) - row-vector basis-only transform (no\r\n * translation): out_j = sum_i v_i * M[i][j], rows at gl flat [0..2]/[4..6]/\r\n * [8..10]. vec3.transformMat4 would add the translation - do not use it. */\r\nfunction TransformNormal(out, v, m)\r\n{\r\n const x = v[0];\r\n const y = v[1];\r\n const z = v[2];\r\n out[0] = x * m[0] + y * m[4] + z * m[8];\r\n out[1] = x * m[1] + y * m[5] + z * m[9];\r\n out[2] = x * m[2] + y * m[6] + z * m[10];\r\n return out;\r\n}\r\n\r\n/** EveChildCloud2 (eve/child) - generated from schema shapeHash e973d7fa.... */\r\n@type.define({ className: \"EveChildCloud2\", family: \"eve/child\" })\r\nexport class EveChildCloud2 extends EveEntity\r\n{\r\n\r\n /** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"ReflectionMode\")\r\n reflectionMode = 0;\r\n\r\n /** m_minVisibleQuality (Tr2VolumerticQuality - enum Tr2VolumerticQuality) [READWRITE, PERSIST, ENUM] */\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"Tr2VolumerticQuality\")\r\n minVisibleQuality = 0;\r\n\r\n /** m_sortingModifier (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n sortingModifier = 0;\r\n\r\n /** m_animation (Tr2TextureAnimationPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"Tr2TextureAnimation\")\r\n animation = null;\r\n\r\n /** m_shadowMapDS (Tr2DepthStencilPtr) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.objectRef(\"Tr2DepthStencil\")\r\n shadowMapDS = null;\r\n\r\n /** m_lightMap (Tr2TextureReferencePtr) [READ] */\r\n @io.read\r\n @type.objectRef(\"Tr2TextureReference\")\r\n lightmap = null;\r\n\r\n /** m_lightmapSizeScale (float) [READ] */\r\n @io.read\r\n @type.float32\r\n lightmapSizeScale = 0;\r\n\r\n /** m_lights (PTr2LightVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"Tr2Light\")\r\n lights = [];\r\n\r\n /** m_minScreenSize (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n minScreenSize = 0;\r\n\r\n /** m_rotation (Quaternion) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.quat\r\n rotation = quat.create();\r\n\r\n /** m_translation (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n translation = vec3.create();\r\n\r\n /** m_scaling (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n scaling = vec3.create();\r\n\r\n /** m_reflectionEffect (Tr2EffectPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.model(\"Tr2Effect\")\r\n reflectionEffect = null;\r\n\r\n /** m_effect (Tr2EffectPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.model(\"Tr2Effect\")\r\n effect = null;\r\n\r\n /** m_noiseTextureSize (uint32_t) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.uint32\r\n noiseTextureSize = 0;\r\n\r\n /** m_mapOffsets[0] (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n mapOffset0 = vec3.create();\r\n\r\n /** m_mapOffsets[1] (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n mapOffset1 = vec3.create();\r\n\r\n /** m_mapOffsets[2] (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n mapOffset2 = vec3.create();\r\n\r\n /** m_castShadows (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n castShadows = false;\r\n\r\n /** m_receiveShadows (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n receiveShadows = false;\r\n\r\n /** m_name (std::string) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_mapTiling[1] (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n detailTiling1 = vec3.create();\r\n\r\n /** m_mapTiling[2] (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n detailTiling2 = vec3.create();\r\n\r\n /** m_mapTiling[0] (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n textureTiling = vec3.create();\r\n\r\n /** m_display (bool) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n display = false;\r\n\r\n // --- Runtime state (Carbon ctor cpp:72-118; not persisted). NOTE: the\r\n // generated persisted defaults above are schema zero-values and DIVERGE from\r\n // Carbon's ctor defaults (display/castShadows/receiveShadows true,\r\n // sortingModifier 1, noiseTextureSize 32, lightmapSizeScale 0.5,\r\n // reflectionMode REFLECT_NEVER, scaling (1,1,1), mapTiling all (1,1,1)).\r\n // Hydrated documents overwrite them; the divergence for default-constructed\r\n // objects is deliberate schema policy, recorded here rather than \"fixed\". ---\r\n\r\n /** m_localTransform - stamped by UpdateAsyncronous (cpp:689). */\r\n localTransform = mat4.create();\r\n\r\n /** m_worldTransform - stamped by UpdateAsyncronous (cpp:693). */\r\n worldTransform = mat4.create();\r\n\r\n /** m_boundingSphere (CcpMath::Sphere) - the TriFrustum sphere-duck shape. */\r\n boundingSphere = { center: vec3.create(), radius: 0 };\r\n\r\n /** m_hasUpdated (false until the first UpdateAsyncronous). */\r\n hasUpdated = false;\r\n\r\n /** m_adjustedMinScreenSize = minScreenSize * lodFactor (cpp:706). */\r\n adjustedMinScreenSize = 0;\r\n\r\n /** m_currentQuality (cpp:85) - Tr2VolumerticQuality.High. */\r\n currentQuality = 2;\r\n\r\n /** m_lightmapDirty (cpp:89). */\r\n lightmapDirty = true;\r\n\r\n /** m_renderedLastFrame (cpp:90). */\r\n renderedLastFrame = true;\r\n\r\n /** m_effectHash - effect identity tracked by UpdateSyncronous (cpp:625-633). */\r\n effectHash = 0;\r\n\r\n /** Unscaled lightmap dimensions - Carbon discovers them from the effect's\r\n * DensityMap resource (cpp:634-665, engine-owned in JS; 0 fail-closes\r\n * UpdateVolumetricLightmap). */\r\n lightmapWidth = 0;\r\n\r\n /** m_lightmapHeight - see lightmapWidth. */\r\n lightmapHeight = 0;\r\n\r\n /** m_lightmapDepth - see lightmapWidth. */\r\n lightmapDepth = 0;\r\n\r\n /** m_lightmapDirtyOffset - the incremental lightmap update cursor. */\r\n lightmapDirtyOffset = 0;\r\n\r\n /** m_prevSunDirection (SetSceneInformation's re-dirty threshold state). */\r\n prevSunDirection = vec3.create();\r\n\r\n /** m_localSunDirection (SetSceneInformation cpp:407). */\r\n localSunDirection = vec3.create();\r\n\r\n /** m_depthSlices - SceneInformation::depthSliceCount = 4\r\n * (ITr2VolumetricRenderable.h:26). */\r\n depthSlices = new Float32Array(4);\r\n\r\n /** m_targetWidth - Carbon leaves it uninitialized until SetSceneInformation;\r\n * JS zeroes (targetInvSize then divides by zero to Infinity, matching\r\n * Carbon's float semantics on garbage-free zero). */\r\n targetWidth = 0;\r\n\r\n /** m_targetHeight - see targetWidth. */\r\n targetHeight = 0;\r\n\r\n /** m_lightViewProj - Carbon: uninitialized memory until SetupShadowFrustum;\r\n * JS: identity. */\r\n lightViewProj = mat4.create();\r\n\r\n /** m_shadowMapSize (cpp:101). */\r\n shadowMapSize = 512;\r\n\r\n /** The global \"DepthShadowMap\" variable handle Carbon registers in the ctor\r\n * (cpp:115) - the variable store is engine-owned in JS, so the handle is an\r\n * engine-injected duck. */\r\n depthShadowMapHandle = null;\r\n\r\n /** Carbon EveChildCloud2::RegisterComponents (EveChildCloud2.cpp:148-163):\r\n * LightOwner when lights are authored; VolumetricRenderable UNCONDITIONAL;\r\n * ReflectionRenderable only when ShouldReflect && display &&\r\n * reflectionEffect. Note: no whole-block display gate in Carbon. No\r\n * UnRegisterComponents override (base no-op; EveEntity::UnRegister already\r\n * removes the components, EveEntity.cpp:90). */\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n if (this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n registry.RegisterComponent(EveComponentType.VolumetricRenderable, this);\r\n if (ShouldReflect(this.reflectionMode) && this.display && this.reflectionEffect)\r\n {\r\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveChildCloud2::UpdateSyncronous (cpp:621-685): an effect-hash\r\n * change invalidates the lightmap and zeroes its dimensions (cpp:625-633);\r\n * the DensityMap-driven dimension discovery and the empty-lightmap fallback\r\n * (cpp:634-674) are GPU/resource work; the texture animation advances gated\r\n * on UpdateOnlyWhenRendered/renderedLastFrame (cpp:677-683) and\r\n * renderedLastFrame is cleared every pass (cpp:684) - the flag is only\r\n * re-stamped by the volumetric batch path (GetVolumetricBatches cpp:283),\r\n * deliberately NOT by the reflection path. */\r\n @impl.adapted\r\n @impl.reason(\"DensityMap texture discovery and empty-lightmap creation (cpp:634-674) are engine-owned resource work - lightmapWidth stays 0 until the engine stamps it, which fail-closes UpdateVolumetricLightmap; the hash invalidation, animation gate and renderedLastFrame contract are ported.\")\r\n UpdateSyncronous(updateContext, _params)\r\n {\r\n if (this.effect)\r\n {\r\n const hash = this.effect.GetHashValue?.() ?? this.effect;\r\n if (this.effectHash !== hash)\r\n {\r\n this.effectHash = hash;\r\n this.lightmapDirty = true;\r\n this.lightmapWidth = 0;\r\n this.lightmapHeight = 0;\r\n this.lightmapDepth = 0;\r\n }\r\n }\r\n\r\n if (this.animation)\r\n {\r\n if (!this.animation.UpdateOnlyWhenRendered?.() || this.renderedLastFrame)\r\n {\r\n this.animation.AdvanceTime?.(updateContext?.GetDeltaT?.() ?? 0);\r\n }\r\n }\r\n this.renderedLastFrame = false;\r\n }\r\n\r\n /** Carbon EveChildCloud2::UpdateAsyncronous (cpp:687-708): local SRT\r\n * transform (cpp:689); world = localTransform * parent - Carbon row-vector,\r\n * local applies first, so the gl-matrix operands swap (cpp:693); bounding\r\n * sphere = CcpMath::Sphere(unit cube, world) which transforms ONLY the min\r\n * and max corners (math Sphere.cpp:10-17 - the cheap two-corner form, not an\r\n * 8-corner bound; preserved); map-offset scroll from the origin-shift-\r\n * corrected world movement rotated into local space (cpp:697-704 - QUIRK\r\n * kept verbatim: the .z offset scrolls by mapTiling.y, cpp:703); adjusted\r\n * min screen size (cpp:706); hasUpdated stamp (cpp:707). */\r\n @impl.implemented\r\n UpdateAsyncronous(updateContext, params = {})\r\n {\r\n // Carbon TransformationMatrix(m_scaling, m_rotation, m_translation)\r\n // (cpp:689) - argument order differs, matrix identical.\r\n mat4.fromRotationTranslationScale(this.localTransform, this.rotation, this.translation, this.scaling);\r\n\r\n const parent = params?.localToWorldTransform ?? IDENTITY;\r\n const w = this.worldTransform;\r\n const prevX = w[12];\r\n const prevY = w[13];\r\n const prevZ = w[14];\r\n // Carbon (row-vector): m_localTransform * parent - local first.\r\n mat4.multiply(w, parent, this.localTransform);\r\n\r\n // CcpMath::Sphere(AxisAlignedBox(-0.5..0.5), world) (cpp:695).\r\n vec3.set(CORNER_MIN_SCRATCH, -0.5, -0.5, -0.5);\r\n vec3.transformMat4(CORNER_MIN_SCRATCH, CORNER_MIN_SCRATCH, w);\r\n vec3.set(CORNER_MAX_SCRATCH, 0.5, 0.5, 0.5);\r\n vec3.transformMat4(CORNER_MAX_SCRATCH, CORNER_MAX_SCRATCH, w);\r\n const center = this.boundingSphere.center;\r\n center[0] = (CORNER_MIN_SCRATCH[0] + CORNER_MAX_SCRATCH[0]) * 0.5;\r\n center[1] = (CORNER_MIN_SCRATCH[1] + CORNER_MAX_SCRATCH[1]) * 0.5;\r\n center[2] = (CORNER_MIN_SCRATCH[2] + CORNER_MAX_SCRATCH[2]) * 0.5;\r\n this.boundingSphere.radius = vec3.distance(CORNER_MIN_SCRATCH, CORNER_MAX_SCRATCH) * 0.5;\r\n\r\n // shift = -originShift + (new - previous world translation), then rotated\r\n // into local space with TransformNormal(shift, Inverse(world)) (cpp:697-698).\r\n const originShift = updateContext?.GetOriginShift?.();\r\n SHIFT_SCRATCH[0] = (originShift ? -originShift[0] : 0) + w[12] - prevX;\r\n SHIFT_SCRATCH[1] = (originShift ? -originShift[1] : 0) + w[13] - prevY;\r\n SHIFT_SCRATCH[2] = (originShift ? -originShift[2] : 0) + w[14] - prevZ;\r\n // Carbon's one-arg Inverse returns the INPUT unchanged on a singular\r\n // matrix (math Matrix.cpp:12-16) and the scroll still runs - mirrored.\r\n const inverse = mat4.invert(INV_SCRATCH, w) ?? w;\r\n TransformNormal(SHIFT_SCRATCH, SHIFT_SCRATCH, inverse);\r\n const offsets = [this.mapOffset0, this.mapOffset1, this.mapOffset2];\r\n const tilings = [this.textureTiling, this.detailTiling1, this.detailTiling2];\r\n for (let i = 0; i < 3; ++i)\r\n {\r\n const offset = offsets[i];\r\n const tiling = tilings[i];\r\n offset[0] = (offset[0] + SHIFT_SCRATCH[0] * tiling[0]) % 1;\r\n offset[1] = (offset[1] + SHIFT_SCRATCH[1] * tiling[1]) % 1;\r\n // Carbon bug preserved verbatim: .z scrolls by mapTiling.y (cpp:703).\r\n offset[2] = (offset[2] + SHIFT_SCRATCH[2] * tiling[1]) % 1;\r\n }\r\n\r\n this.adjustedMinScreenSize = this.minScreenSize * (updateContext?.GetLodFactor?.() ?? 1);\r\n this.hasUpdated = true;\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetBoundingSphere (cpp:226-230): the packed\r\n * (center, radius) cloud sphere, unconditionally true. IEveSpaceObjectChild\r\n * override - parent bounds unions consume it optional-chained. */\r\n @impl.implemented\r\n GetBoundingSphere(out = new Float32Array(4), _query = 0)\r\n {\r\n out[0] = this.boundingSphere.center[0];\r\n out[1] = this.boundingSphere.center[1];\r\n out[2] = this.boundingSphere.center[2];\r\n out[3] = this.boundingSphere.radius;\r\n return true;\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetLocalToWorldTransform (cpp:232-235); the\r\n * optional out follows the EveChildContainer copy-out shape. */\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 EveChildCloud2::IsVisible (cpp:837-852): display + one-arg\r\n * IsSphereVisible (the back-plane-ignored TriFrustum quirk applies), then\r\n * the Sphere-duck GetPixelSizeAccross (Est path) against minScreenSize *\r\n * the LIVE lodFactor (not the adjusted stamp). Carbon's override of the\r\n * defaulted ITr2Renderable::IsVisible (h:47-50 returns true) - without it\r\n * the reflection gather would treat the cloud as always visible. */\r\n @impl.implemented\r\n IsVisible(updateContext)\r\n {\r\n const frustum = updateContext?.GetFrustum?.();\r\n if (!frustum)\r\n {\r\n return false;\r\n }\r\n const sphere = this.boundingSphere;\r\n if (!this.display || !frustum.IsSphereVisible(sphere.center, sphere.radius))\r\n {\r\n return false;\r\n }\r\n const screenSize = frustum.GetPixelSizeAccross(sphere);\r\n if (screenSize < this.minScreenSize * (updateContext?.GetLodFactor?.() ?? 1))\r\n {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /** Carbon EveChildCloud2::HasValidTransform (cpp:309-317): determinant is\r\n * nonzero and finite. */\r\n @impl.implemented\r\n HasValidTransform()\r\n {\r\n const det = mat4.determinant(this.worldTransform);\r\n return det !== 0 && Number.isFinite(det);\r\n }\r\n\r\n /** Carbon EveChildCloud2::IsLightmapDirty (cpp:748-751). */\r\n @impl.implemented\r\n IsLightmapDirty()\r\n {\r\n return this.lightmapDirty;\r\n }\r\n\r\n /** Carbon EveChildCloud2::MarkLightmapDirty (cpp:753-757): also zeroes the\r\n * dirty offset (contrast SetSceneInformation's scale-change path, which\r\n * sets the flag WITHOUT resetting the offset - cpp:398-402). */\r\n @impl.implemented\r\n MarkLightmapDirty(dirty)\r\n {\r\n this.lightmapDirty = !!dirty;\r\n this.lightmapDirtyOffset = 0;\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetLights (cpp:732-746): display gate only (no\r\n * hasUpdated gate, unlike EveChildContainer), average world-basis-row-length\r\n * scaling (Carbon LengthEst; exact hypot is the accepted divergence - single\r\n * matrix reads, no composition), each light submitted with the world\r\n * transform through the duck-typed manager. Inside Tr2Light::AddLight\r\n * Carbon composes boneTransform * transform (Tr2Light.cpp:132) - that swap\r\n * belongs to the Tr2Light port, not here. */\r\n @impl.implemented\r\n GetLights(lightManager)\r\n {\r\n if (!this.display)\r\n {\r\n return;\r\n }\r\n const m = this.worldTransform;\r\n const scaling = (\r\n Math.hypot(m[0], m[1], m[2]) +\r\n Math.hypot(m[4], m[5], m[6]) +\r\n Math.hypot(m[8], m[9], m[10])\r\n ) / 3;\r\n for (const light of this.lights)\r\n {\r\n light?.AddLight?.(lightManager, m, scaling);\r\n }\r\n }\r\n\r\n /** Carbon's two GetSortValue overloads, dispatched on argument presence:\r\n * the ITr2VolumetricRenderable frustum form (cpp:237-242) - view distance\r\n * minus |authored local scaling| * sortingModifier, consumed by the\r\n * volumetric renderer's DESCENDING stable sort (farthest first,\r\n * Tr2VolumetricsRenderer.cpp:276-287) - and the ITr2Renderable zero-arg\r\n * form (cpp:914-917) - float32 max (finite, NOT Infinity), so the\r\n * transparent reflection pass sorts the cloud to draw first. */\r\n @impl.implemented\r\n GetSortValue(frustum = null)\r\n {\r\n if (!frustum)\r\n {\r\n return FLOAT32_MAX;\r\n }\r\n const viewPos = frustum.viewPos ?? frustum.m_viewPos;\r\n const w = this.worldTransform;\r\n const dx = viewPos[0] - w[12];\r\n const dy = viewPos[1] - w[13];\r\n const dz = viewPos[2] - w[14];\r\n return Math.hypot(dx, dy, dz) - vec3.length(this.scaling) * this.sortingModifier;\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetVolumetricBatches (cpp:244-284), exact gate\r\n * order: quality (cpp:246), display+hasUpdated+frustum sphere (cpp:250),\r\n * Sphere-duck pixel size vs the adjusted min screen size (cpp:256-260),\r\n * HasValidTransform (cpp:262), unit-cube buffers + effect shader\r\n * (cpp:267-274), then ONE transparent volumetric batch with the real\r\n * screenSize per-object data and Carbon's 36-index draw (cpp:276-281).\r\n * Stamps renderedLastFrame (cpp:283) - the texture-animation keep-alive.\r\n * Returns whether a batch was committed (JS addition; Carbon returns void). */\r\n @impl.adapted\r\n @impl.reason(\"The procedural unit-cube vertex/index buffers and declaration (OnPrepareResources cpp:453-532) are engine-realized, so the buffer-validity gate (cpp:267-270) and shader-state gate (cpp:271-274) reduce to the effect presence check; the batch records the effect, per-object data and draw arguments for the engine to bind the cube.\")\r\n GetVolumetricBatches(frustum, batches)\r\n {\r\n if (this.currentQuality < this.minVisibleQuality)\r\n {\r\n return false;\r\n }\r\n const sphere = this.boundingSphere;\r\n const isVisible = this.display && this.hasUpdated &&\r\n frustum?.IsSphereVisible?.(sphere.center, sphere.radius) === true;\r\n if (!isVisible)\r\n {\r\n return false;\r\n }\r\n\r\n // Sphere duck routes to the Est estimator, matching Carbon's Sphere\r\n // overload (cpp:256; TriFrustum cpp:295-298).\r\n const screenSize = frustum.GetPixelSizeAccross(sphere);\r\n if (screenSize < this.adjustedMinScreenSize)\r\n {\r\n return false;\r\n }\r\n if (!this.HasValidTransform())\r\n {\r\n return false;\r\n }\r\n if (!this.effect)\r\n {\r\n return false;\r\n }\r\n\r\n const batch = new Tr2RenderBatch();\r\n batch.SetMaterial(this.effect);\r\n batch.SetPerObjectData(this.GetPerObjectData(batches, screenSize));\r\n batch.SetDrawIndexedInstanced(12 * 3, 1, 0, 0, 0);\r\n const committed = batches?.Commit?.(batch) === true;\r\n\r\n this.renderedLastFrame = true;\r\n return committed;\r\n }\r\n\r\n /** Carbon EveChildCloud2::UpdateVolumetricLightmap (cpp:319-382): the\r\n * scene-facing contract is the gates and the bool return - true means \"this\r\n * cloud consumed the frame's single scene-wide lightmap budget\"\r\n * (Tr2VolumetricsRenderer::ProcessComponentsUntil stops at the FIRST true,\r\n * cpp:219-221). Slice budget: VOXELS_PER_UPDATE = 6400000 * scale^3;\r\n * slices = max(VOXELS / (scaledHeight * scaledDepth), 1) (cpp:354-355).\r\n * QUIRK verbatim: the dispatch group Y/Z counts use the UNSCALED dims while\r\n * the slice count uses the scaled ones (cpp:359-361). Success advances\r\n * lightmapDirtyOffset by slices; reaching scaledWidth completes the map\r\n * (dirty false, offset 0); failure resets the offset and returns false. */\r\n @impl.adapted\r\n @impl.reason(\"The 3D lightmap texture lifecycle, per-object upload and LightMap variable swaps (cpp:327-352, 363-372) are engine-owned; the GenerateLightmap dispatch is delegated to a renderContext.RunComputeShader duck and fail-closes to false when absent.\")\r\n UpdateVolumetricLightmap(renderContext)\r\n {\r\n if (this.currentQuality < this.minVisibleQuality || !this.hasUpdated)\r\n {\r\n return false;\r\n }\r\n if (this.lightmapDirty && this.effect && this.lightmapWidth > 0 && this.HasValidTransform())\r\n {\r\n const scaledWidth = Math.max(1, Math.floor(this.lightmapWidth * this.lightmapSizeScale));\r\n const scaledHeight = Math.max(1, Math.floor(this.lightmapHeight * this.lightmapSizeScale));\r\n const scaledDepth = Math.max(1, Math.floor(this.lightmapDepth * this.lightmapSizeScale));\r\n\r\n const VOXELS_PER_UPDATE = Math.floor(6400000 * this.lightmapSizeScale ** 3);\r\n const slices = Math.max(Math.floor(VOXELS_PER_UPDATE / (scaledHeight * scaledDepth)), 1);\r\n const success = renderContext?.RunComputeShader?.(\r\n this.effect,\r\n \"GenerateLightmap\",\r\n slices,\r\n Math.floor((this.lightmapHeight + 7) / 8),\r\n Math.floor((this.lightmapDepth + 7) / 8)\r\n ) === true;\r\n if (success)\r\n {\r\n this.lightmapDirtyOffset += slices;\r\n if (this.lightmapDirtyOffset >= scaledWidth)\r\n {\r\n this.lightmapDirty = false;\r\n this.lightmapDirtyOffset = 0;\r\n }\r\n return true;\r\n }\r\n this.lightmapDirtyOffset = 0;\r\n }\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildCloud2::SetSceneInformation (cpp:384-424): quality maps to\r\n * lightmapSizeScale (Low 0.1 / Medium 0.15 / default 0.25, cpp:386-397); a\r\n * scale change sets lightmapDirty WITHOUT resetting the dirty offset\r\n * (cpp:398-402 - asymmetric vs MarkLightmapDirty, preserved); copies the 4\r\n * depth slices; localSunDirection = Normalize(TransformNormal(sunDir,\r\n * Inverse(world))) (cpp:407 - single-matrix inverse + basis transform, no\r\n * composition); re-dirties the lightmap when the sun moved past\r\n * cos(5/180) - QUIRK verbatim: Carbon omits the degree conversion, so the\r\n * threshold is ~1.59 degrees, not 5 (cpp:408); stamps target dims; flips\r\n * the two cloud-shadow effect options (cpp:417-423). */\r\n @impl.adapted\r\n @impl.reason(\"Carbon dereferences m_effect with no null guard (cpp:417); the JS option writes are optional-chained. Everything else is verbatim, including the missing degree conversion in the sun-motion threshold.\")\r\n SetSceneInformation(sceneInformation)\r\n {\r\n let lightmapSizeScale;\r\n switch (sceneInformation.quality)\r\n {\r\n case EveChildCloud2.Tr2VolumerticQuality.Low:\r\n lightmapSizeScale = 0.1;\r\n break;\r\n case EveChildCloud2.Tr2VolumerticQuality.Medium:\r\n lightmapSizeScale = 0.15;\r\n break;\r\n default:\r\n lightmapSizeScale = 0.25;\r\n }\r\n if (lightmapSizeScale !== this.lightmapSizeScale)\r\n {\r\n this.lightmapSizeScale = lightmapSizeScale;\r\n this.lightmapDirty = true;\r\n }\r\n this.currentQuality = sceneInformation.quality;\r\n\r\n for (let i = 0; i < 4; ++i)\r\n {\r\n this.depthSlices[i] = sceneInformation.depthSlices?.[i] ?? 0;\r\n }\r\n\r\n // Carbon's one-arg Inverse returns the INPUT unchanged on a singular\r\n // matrix (math Matrix.cpp:12-16) and the recompute still runs - mirrored.\r\n const inverse = mat4.invert(INV_SCRATCH, this.worldTransform) ?? this.worldTransform;\r\n TransformNormal(SUN_SCRATCH, sceneInformation.sunDirection, inverse);\r\n vec3.normalize(this.localSunDirection, SUN_SCRATCH);\r\n if (vec3.dot(this.prevSunDirection, this.localSunDirection) < Math.cos(5.0 / 180.0))\r\n {\r\n vec3.copy(this.prevSunDirection, this.localSunDirection);\r\n this.MarkLightmapDirty(true);\r\n }\r\n\r\n this.targetWidth = sceneInformation.targetWidth;\r\n this.targetHeight = sceneInformation.targetHeight;\r\n\r\n const receive = !!sceneInformation.receiveShadows && !!this.receiveShadows;\r\n this.effect?.SetOption?.(\r\n \"CLOUD_SHADOWS\",\r\n receive ? \"CLOUD_SHADOWS_RECEIVE\" : \"CLOUD_SHADOWS_NONE\"\r\n );\r\n this.effect?.SetOption?.(\r\n \"CLOUD_SHADOW_ALGORITHM\",\r\n receive && sceneInformation.raytracedShadows ? \"CLOUD_SHADOWS_RAYTRACED\" : \"CLOUD_SHADOWS_CASCADED\"\r\n );\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetVolumetricShadowBatches (cpp:759-785): gated on\r\n * display + effect + castShadows, then the \"Shadow\" technique presence\r\n * (cpp:766-776); emits ONE alpha, declaration-less (NULL_DECLARATION,\r\n * cpp:782), non-indexed single-triangle batch with screenSize-1 per-object\r\n * data (cpp:778-784). Does NOT stamp renderedLastFrame. Returns whether the\r\n * batch was committed (JS addition). */\r\n @impl.adapted\r\n @impl.reason(\"The 'Shadow' technique gate applies only when a shader-state interface is realized - in GPU-free collection the engine drops the batch at realization otherwise; NULL_DECLARATION maps to declaration 0.\")\r\n GetVolumetricShadowBatches(batches)\r\n {\r\n if (!this.display || !this.effect || !this.castShadows)\r\n {\r\n return false;\r\n }\r\n // cpp:766-776 - the \"Shadow\" technique must exist. The JS shader duck\r\n // (Tr2Shader.GetTechniqueIndex) returns an INDEX: -1 for missing, 0..n\r\n // for found - 0 is a valid technique (compare < 0, never truthiness).\r\n const shader = this.effect.GetShaderStateInterface?.();\r\n if (shader?.GetTechniqueIndex)\r\n {\r\n const technique = shader.GetTechniqueIndex(\"Shadow\");\r\n if (technique === null || technique === undefined || technique < 0)\r\n {\r\n return false;\r\n }\r\n }\r\n\r\n const batch = new Tr2RenderBatch();\r\n batch.SetMaterial(this.effect);\r\n batch.SetPerObjectData(this.GetPerObjectData(batches, 1));\r\n batch.SetRenderingMode(RenderingMode.RM_ALPHA);\r\n batch.SetVertexDeclaration(0);\r\n batch.SetDrawInstanced(3, 1, 0, 0);\r\n return batches?.Commit?.(batch) === true;\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetVolumetricShadowInfo (cpp:787-790): pure\r\n * delegation to SetupShadowFrustum. The scene calls this to build the\r\n * shadow-camera package before rendering casters into the cloud shadow map\r\n * (EveSpaceScene.cpp:2355-2371). */\r\n @impl.implemented\r\n GetVolumetricShadowInfo(shadowInfo, sunDir)\r\n {\r\n return this.SetupShadowFrustum(shadowInfo, sunDir);\r\n }\r\n\r\n /** Carbon EveChildCloud2::SetupShadowFrustum (cpp:886-907):\r\n * lightView = Inverse(OrthoNormalBasisZ(-sunDir)) (cpp:889 - single-matrix\r\n * build + invert); the unit-cube AABB transformed by worldTransform *\r\n * lightView - COMPOSITION, world applies first, so the gl-matrix operands\r\n * swap (cpp:893; all 8 corners, math AxisAlignedBox.cpp:9-33); max.z\r\n * extended by the 2,500,000 sun-ray magic constant (cpp:895); lightViewProj\r\n * = lightView * OrthoOffCenterMatrix(...) - COMPOSITION, lightView first,\r\n * operands swap (cpp:897), with Carbon's deliberately mirrored argument\r\n * order (max.x, min.x, max.y, min.y, -max.z, -min.z) and D3D z-in-[0,1]\r\n * formula both preserved; DeriveFrustum(lightView, aabb.min, aabb.max)\r\n * (cpp:900-901); outputs aabbMax / lightViewProj copy / shadowFrustum /\r\n * shadowMapSize (cpp:903-906). */\r\n @impl.implemented\r\n SetupShadowFrustum(shadowInfo, sunDir)\r\n {\r\n vec3.set(SUN_SCRATCH, -sunDir[0], -sunDir[1], -sunDir[2]);\r\n OrthoNormalBasisZ(BASIS_SCRATCH, SUN_SCRATCH);\r\n if (!mat4.invert(LIGHT_VIEW_SCRATCH, BASIS_SCRATCH))\r\n {\r\n mat4.identity(LIGHT_VIEW_SCRATCH);\r\n }\r\n\r\n // Carbon (row-vector): m_worldTransform * lightView - world first.\r\n mat4.multiply(WORLD_LIGHT_SCRATCH, LIGHT_VIEW_SCRATCH, this.worldTransform);\r\n let minX = Infinity, minY = Infinity, minZ = Infinity;\r\n let maxX = -Infinity, maxY = -Infinity, maxZ = -Infinity;\r\n for (let corner = 0; corner < 8; ++corner)\r\n {\r\n CORNER_SCRATCH[0] = (corner & 1) ? 0.5 : -0.5;\r\n CORNER_SCRATCH[1] = (corner & 2) ? 0.5 : -0.5;\r\n CORNER_SCRATCH[2] = (corner & 4) ? 0.5 : -0.5;\r\n vec3.transformMat4(CORNER_SCRATCH, CORNER_SCRATCH, WORLD_LIGHT_SCRATCH);\r\n minX = Math.min(minX, CORNER_SCRATCH[0]);\r\n minY = Math.min(minY, CORNER_SCRATCH[1]);\r\n minZ = Math.min(minZ, CORNER_SCRATCH[2]);\r\n maxX = Math.max(maxX, CORNER_SCRATCH[0]);\r\n maxY = Math.max(maxY, CORNER_SCRATCH[1]);\r\n maxZ = Math.max(maxZ, CORNER_SCRATCH[2]);\r\n }\r\n maxZ += 2500000;\r\n\r\n OrthoOffCenterMatrix(ORTHO_SCRATCH, maxX, minX, maxY, minY, -maxZ, -minZ);\r\n // Carbon (row-vector): lightView * ortho - lightView first.\r\n mat4.multiply(this.lightViewProj, ORTHO_SCRATCH, LIGHT_VIEW_SCRATCH);\r\n\r\n const shadowFrustum = new TriFrustumOrtho();\r\n vec3.set(BOUNDS_MIN_SCRATCH, minX, minY, minZ);\r\n vec3.set(BOUNDS_MAX_SCRATCH, maxX, maxY, maxZ);\r\n shadowFrustum.DeriveFrustum(LIGHT_VIEW_SCRATCH, BOUNDS_MIN_SCRATCH, BOUNDS_MAX_SCRATCH);\r\n\r\n shadowInfo.aabbMax = vec3.fromValues(maxX, maxY, maxZ);\r\n shadowInfo.lightViewProj = mat4.clone(this.lightViewProj);\r\n shadowInfo.shadowFrustum = shadowFrustum;\r\n shadowInfo.shadowMapSize = this.shadowMapSize;\r\n return shadowInfo;\r\n }\r\n\r\n /** Carbon EveChildCloud2::PrepareCloudShadowMap (cpp:792-826): the CPU\r\n * contract is the receiveShadows gate (cpp:796-799) and the bool return -\r\n * the scene calls SetCloudShadowMapHandle ONLY after a true return\r\n * (EveSpaceScene.cpp:2365-2368), which is what makes Carbon's unguarded\r\n * m_shadowMapDS dereference there safe. */\r\n @impl.adapted\r\n @impl.reason(\"Depth-stencil creation and the viewport/render-target pushes (cpp:801-823) are engine-owned, delegated to a renderContext duck; the gate and return contract are ported.\")\r\n PrepareCloudShadowMap(renderContext)\r\n {\r\n if (!this.receiveShadows)\r\n {\r\n return false;\r\n }\r\n renderContext?.PrepareCloudShadowMap?.(this);\r\n return true;\r\n }\r\n\r\n /** Carbon EveChildCloud2::SetCloudShadowMapHandle (cpp:829-835): publish the\r\n * shadow depth-stencil into the global \"DepthShadowMap\" variable handle\r\n * (registered in the Carbon ctor, cpp:115). QUIRK: Carbon dereferences\r\n * m_shadowMapDS with no null guard - safe only via the\r\n * PrepareCloudShadowMap-first call order (see above). */\r\n @impl.adapted\r\n @impl.reason(\"The variable store is engine-owned (depthShadowMapHandle is an injected duck); Carbon's unguarded m_shadowMapDS dereference is optional-chained.\")\r\n SetCloudShadowMapHandle()\r\n {\r\n if (this.shadowMapDS?.IsValid?.())\r\n {\r\n this.depthShadowMapHandle?.SetValue?.(this.shadowMapDS);\r\n }\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetBatches (cpp:854-884): quality gate, then ONLY\r\n * the (REFLECTION, TRANSPARENT) type/reason pair produces anything\r\n * (cpp:860) - every other combination is a silent no-op; HasValidTransform\r\n * + unit-cube buffers + reflectionEffect gates (cpp:862-874); one alpha\r\n * batch with the hardcoded 10000 screen size forcing max lodFactor\r\n * (cpp:878). QUIRK: unlike GetVolumetricBatches this does NOT stamp\r\n * renderedLastFrame - reflection-only rendering does not keep texture\r\n * animations alive. Returns whether a batch was committed (JS addition). */\r\n @impl.adapted\r\n @impl.reason(\"Unit-cube buffers/declaration are engine-realized (as GetVolumetricBatches); the perObjectData parameter is unused because Carbon allocates the cloud's own with screenSize 10000 (cpp:878).\")\r\n GetBatches(batches, batchType, _perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\r\n {\r\n if (this.currentQuality < this.minVisibleQuality)\r\n {\r\n return false;\r\n }\r\n if (reason !== Tr2RenderReason.TR2RENDERREASON_REFLECTION || batchType !== TriBatchType.TRIBATCHTYPE_TRANSPARENT)\r\n {\r\n return false;\r\n }\r\n if (!this.HasValidTransform())\r\n {\r\n return false;\r\n }\r\n if (!this.reflectionEffect)\r\n {\r\n return false;\r\n }\r\n\r\n const batch = new Tr2RenderBatch();\r\n batch.SetMaterial(this.reflectionEffect);\r\n batch.SetPerObjectData(this.GetPerObjectData(batches, 10000));\r\n batch.SetDrawIndexedInstanced(12 * 3, 1, 0, 0, 0);\r\n batch.SetRenderingMode(RenderingMode.RM_ALPHA);\r\n return batches?.Commit?.(batch) === true;\r\n }\r\n\r\n /** Carbon EveChildCloud2::HasTransparentBatches (cpp:909-912):\r\n * unconditionally true - the reflection gather always routes the cloud\r\n * through the transparent leg that feeds GetBatches' type/reason filter. */\r\n @impl.implemented\r\n HasTransparentBatches()\r\n {\r\n return true;\r\n }\r\n\r\n /** Carbon's two GetPerObjectData overloads (public, screenSize 1:\r\n * cpp:919-927; private, caller screenSize: cpp:534-542): allocate from the\r\n * accumulator and populate. The GPU-free record carries the live object\r\n * reference plus the CPU-populated field block (cloudData); view-dependent\r\n * members are refreshed by the engine calling PopulatePerObjectData again\r\n * with its render context at realization (screenSize is stamped for that). */\r\n @impl.adapted\r\n @impl.reason(\"EveChildCloudPerObjectData's device constant buffers are engine-owned; the record carries the object reference, the collection-time screenSize and the CPU field block.\")\r\n GetPerObjectData(accumulator = null, screenSize = 1)\r\n {\r\n const data = typeof accumulator?.Allocate === \"function\"\r\n ? accumulator.Allocate(Tr2PerObjectData)\r\n : new Tr2PerObjectData();\r\n if (!data)\r\n {\r\n return null;\r\n }\r\n data.object = this;\r\n data.screenSize = screenSize;\r\n data.cloudData = this.PopulatePerObjectData({}, screenSize);\r\n return data;\r\n }\r\n\r\n /** Carbon EveChildCloud2::PopulatePerObjectData (cpp:544-619) against the\r\n * PerObjectData block (EveChildCloud2.h:125-145). Compositions (Carbon\r\n * row-vector -> gl-matrix operands swap):\r\n * - cpp:548/567 worldTransform * viewTransform (world first) ->\r\n * mat4.multiply(WV, view, world); the cpp:567 transpose is folded into\r\n * explicit element reads: viewDirection = TransformNormal((0,0,-1),\r\n * worldViewT) = (-WV[2], -WV[6], -WV[10]); depthSliceN =\r\n * -WV[14] - slice * WV[15].\r\n * Single-matrix sites (NO swap): the cpp:546/547/551 HLSL packing\r\n * transposes, cpp:550 TransformCoord with the inverted world, cpp:578\r\n * Decompose (mat4.getScaling). */\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer's view/projection globals relocate onto the optional renderContext duck (identity/zero fallbacks when absent - the engine repopulates at realization); rand() maps to Math.random with a zero-size guard Carbon's UB-free ctor default (32) never needed; the Tr2Light Perlin flicker inside GetLight awaits the frame-clock seam.\")\r\n PopulatePerObjectData(data, screenSize = 1, renderContext = null)\r\n {\r\n const w = this.worldTransform;\r\n // cpp:546 - packing transpose of a single matrix.\r\n data.world = mat4.transpose(mat4.create(), w);\r\n\r\n // cpp:547 - Transpose(Inverse(reversed-depth projection)); renderer\r\n // global (identity when the context duck is absent; a singular input\r\n // mirrors Carbon's Inverse-returns-input).\r\n data.projectionInv = mat4.create();\r\n const projection = renderContext?.GetReversedDepthProjectionTransform?.();\r\n if (projection)\r\n {\r\n if (!mat4.invert(data.projectionInv, projection))\r\n {\r\n mat4.copy(data.projectionInv, projection);\r\n }\r\n mat4.transpose(data.projectionInv, data.projectionInv);\r\n }\r\n\r\n // cpp:548-549 - Inverse(world * view), COMPOSITION: operands swap.\r\n // Singular product: Carbon's Inverse returns the input unchanged\r\n // (math Matrix.cpp:12-16) - mirrored.\r\n const view = renderContext?.GetViewTransform?.() ?? IDENTITY;\r\n mat4.multiply(WV_SCRATCH, view, w);\r\n data.worldViewInv = mat4.create();\r\n if (!mat4.invert(data.worldViewInv, WV_SCRATCH))\r\n {\r\n mat4.copy(data.worldViewInv, WV_SCRATCH);\r\n }\r\n mat4.transpose(data.worldViewInv, data.worldViewInv);\r\n\r\n // cpp:550 - TransformCoord(viewPosition, Inverse(world)) - single matrix;\r\n // same singular-input mirror.\r\n data.viewPosition = vec3.create();\r\n const viewPosition = renderContext?.GetViewPosition?.();\r\n if (viewPosition)\r\n {\r\n const inverseWorld = mat4.invert(INV_SCRATCH, w) ?? w;\r\n vec3.transformMat4(data.viewPosition, viewPosition, inverseWorld);\r\n }\r\n\r\n // cpp:551 - packing transpose (stamped by SetupShadowFrustum).\r\n data.lightViewProj = mat4.transpose(mat4.create(), this.lightViewProj);\r\n\r\n // cpp:553-560 - scaled lightmap dims + dirty offset.\r\n const scaledWidth = Math.max(1, Math.floor(this.lightmapWidth * this.lightmapSizeScale));\r\n const scaledHeight = Math.max(1, Math.floor(this.lightmapHeight * this.lightmapSizeScale));\r\n const scaledDepth = Math.max(1, Math.floor(this.lightmapDepth * this.lightmapSizeScale));\r\n data.lightmapDimensions = [scaledWidth, scaledHeight, scaledDepth, this.lightmapDirtyOffset];\r\n\r\n // cpp:562-565 - rand() % noiseTextureSize; nondeterministic by design.\r\n // The generated schema default 0 would be modulo-by-zero UB in Carbon\r\n // (its ctor default is 32) - guarded here.\r\n const noiseSize = this.noiseTextureSize >>> 0;\r\n data.noiseConfig = [\r\n noiseSize > 0 ? Math.floor(Math.random() * noiseSize) : 0,\r\n noiseSize > 0 ? Math.floor(Math.random() * noiseSize) : 0,\r\n noiseSize,\r\n noiseSize,\r\n ];\r\n\r\n // cpp:567-571 - Transpose(world * view) consumed by row-vector transforms;\r\n // ported as explicit element reads of the (already swapped) WV product.\r\n const wv = WV_SCRATCH;\r\n data.viewDirection = vec3.fromValues(-wv[2], -wv[6], -wv[10]);\r\n data.depthSlice0 = -wv[14] - this.depthSlices[0] * wv[15];\r\n data.depthSlice1 = -wv[14] - this.depthSlices[1] * wv[15];\r\n data.depthSlice2 = -wv[14] - this.depthSlices[2] * wv[15];\r\n\r\n // cpp:573.\r\n data.sunDirection = vec3.fromValues(\r\n -this.localSunDirection[0],\r\n -this.localSunDirection[1],\r\n -this.localSunDirection[2]\r\n );\r\n\r\n // cpp:575-580 - Decompose scale, normalized by the largest component\r\n // (pure decomposition - no composition, no swap).\r\n mat4.getScaling(SCALE_SCRATCH, w);\r\n const maxScale = Math.max(SCALE_SCRATCH[0], SCALE_SCRATCH[1], SCALE_SCRATCH[2]);\r\n data.relativeScaling = vec3.fromValues(\r\n SCALE_SCRATCH[0] / maxScale,\r\n SCALE_SCRATCH[1] / maxScale,\r\n SCALE_SCRATCH[2] / maxScale\r\n );\r\n\r\n // cpp:581.\r\n data.lodFactor = Math.max(0, screenSize / Math.max(1, this.minScreenSize) - 1);\r\n\r\n // cpp:583 - Infinity when target dims are unset, matching Carbon's float\r\n // division semantics.\r\n data.targetInvSize = [2 / this.targetWidth, 2 / this.targetHeight];\r\n\r\n // cpp:585-614 - up to 4 lights via Tr2Light::GetLight; radius > 0 scales\r\n // the color by brightnessMultiplier * (innerRadius*2 + 1)^3; remaining\r\n // slots zero-filled (cpp:611-614).\r\n data.lights = [];\r\n for (const light of this.lights)\r\n {\r\n if (data.lights.length >= 4)\r\n {\r\n break;\r\n }\r\n const record = { position: vec3.create(), radius: 0, color: vec3.create(), innerRadius: 0 };\r\n if (light?.GetLight?.(LIGHT_SCRATCH))\r\n {\r\n vec3.copy(record.position, LIGHT_SCRATCH.position);\r\n record.radius = LIGHT_SCRATCH.radius;\r\n if (record.radius > 0)\r\n {\r\n const lightData = light.GetLightData?.();\r\n record.innerRadius = Math.max(Math.min((lightData?.innerRadius ?? 0) / record.radius, 1), 0);\r\n const multiplier = light.GetBrightnessMultiplier?.() ?? 1;\r\n const boost = (record.innerRadius * 2 + 1) ** 3;\r\n record.color[0] = LIGHT_SCRATCH.color[0] * multiplier * boost;\r\n record.color[1] = LIGHT_SCRATCH.color[1] * multiplier * boost;\r\n record.color[2] = LIGHT_SCRATCH.color[2] * multiplier * boost;\r\n }\r\n }\r\n data.lights.push(record);\r\n }\r\n while (data.lights.length < 4)\r\n {\r\n data.lights.push({ position: vec3.create(), radius: 0, color: vec3.create(), innerRadius: 0 });\r\n }\r\n\r\n // cpp:616-618.\r\n data.mapOffsets = [\r\n [this.mapOffset0[0], this.mapOffset0[1], this.mapOffset0[2], 0],\r\n [this.mapOffset1[0], this.mapOffset1[1], this.mapOffset1[2], 0],\r\n [this.mapOffset2[0], this.mapOffset2[1], this.mapOffset2[2], 0],\r\n ];\r\n return data;\r\n }\r\n\r\n static ReflectionMode = Object.freeze({\r\n REFLECT_HIGH: 0,\r\n REFLECT_MEDIUM_AND_HIGH: 1,\r\n REFLECT_LOW_MEDIUM_HIGH: 2,\r\n REFLECT_NEVER: 3,\r\n });\r\n\r\n static Tr2VolumerticQuality = Object.freeze({\r\n Low: 0,\r\n Medium: 1,\r\n High: 2,\r\n Ultra: 3,\r\n });\r\n\r\n}\r\n"],"names":["FLOAT32_MAX","IDENTITY","mat4","create","INV_SCRATCH","WV_SCRATCH","BASIS_SCRATCH","LIGHT_VIEW_SCRATCH","WORLD_LIGHT_SCRATCH","ORTHO_SCRATCH","CORNER_MIN_SCRATCH","vec3","CORNER_MAX_SCRATCH","CORNER_SCRATCH","SHIFT_SCRATCH","SUN_SCRATCH","SCALE_SCRATCH","BOUNDS_MIN_SCRATCH","BOUNDS_MAX_SCRATCH","LIGHT_SCRATCH","position","radius","color","OrthoNormalBasisZ","out","z","identity","zl","Math","hypot","zx","zy","zz","xx","abs","xy","yx","yy","yz","yl","OrthoOffCenterMatrix","l","r","b","t","zn","zf","TransformNormal","v","m","x","y","_EveChildCloud","_identity","EveChildCloud2","EveEntity","e","_init_reflectionMode","_init_extra_reflectionMode","_init_minVisibleQuality","_init_extra_minVisibleQuality","_init_sortingModifier","_init_extra_sortingModifier","_init_animation","_init_extra_animation","_init_shadowMapDS","_init_extra_shadowMapDS","_init_lightmap","_init_extra_lightmap","_init_lightmapSizeScale","_init_extra_lightmapSizeScale","_init_lights","_init_extra_lights","_init_minScreenSize","_init_extra_minScreenSize","_init_rotation","_init_extra_rotation","_init_translation","_init_extra_translation","_init_scaling","_init_extra_scaling","_init_reflectionEffect","_init_extra_reflectionEffect","_init_effect","_init_extra_effect","_init_noiseTextureSize","_init_extra_noiseTextureSize","_init_mapOffset","_init_extra_mapOffset","_init_mapOffset2","_init_extra_mapOffset2","_init_mapOffset3","_init_extra_mapOffset3","_init_castShadows","_init_extra_castShadows","_init_receiveShadows","_init_extra_receiveShadows","_init_name","_init_extra_name","_init_detailTiling","_init_extra_detailTiling","_init_detailTiling2","_init_extra_detailTiling2","_init_textureTiling","_init_extra_textureTiling","_init_display","_init_extra_display","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","schema","enum","float32","model","readwrite","objectRef","read","list","quat","uint32","boolean","string","impl","implemented","adapted","reason","reflectionMode","minVisibleQuality","sortingModifier","animation","shadowMapDS","lightmap","lightmapSizeScale","lights","minScreenSize","rotation","translation","scaling","reflectionEffect","effect","noiseTextureSize","mapOffset0","mapOffset1","mapOffset2","castShadows","receiveShadows","name","detailTiling1","detailTiling2","textureTiling","display","localTransform","worldTransform","boundingSphere","center","hasUpdated","adjustedMinScreenSize","currentQuality","lightmapDirty","renderedLastFrame","effectHash","lightmapWidth","lightmapHeight","lightmapDepth","lightmapDirtyOffset","prevSunDirection","localSunDirection","depthSlices","Float32Array","targetWidth","targetHeight","lightViewProj","shadowMapSize","depthShadowMapHandle","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","VolumetricRenderable","ShouldReflect","ReflectionRenderable","UpdateSyncronous","updateContext","_params","hash","GetHashValue","UpdateOnlyWhenRendered","AdvanceTime","GetDeltaT","UpdateAsyncronous","params","fromRotationTranslationScale","parent","localToWorldTransform","w","prevX","prevY","prevZ","multiply","set","transformMat4","distance","originShift","GetOriginShift","inverse","invert","offsets","tilings","i","offset","tiling","GetLodFactor","GetBoundingSphere","_query","GetLocalToWorldTransform","copy","IsVisible","frustum","GetFrustum","sphere","IsSphereVisible","screenSize","GetPixelSizeAccross","HasValidTransform","det","determinant","Number","isFinite","IsLightmapDirty","MarkLightmapDirty","dirty","GetLights","lightManager","light","AddLight","GetSortValue","viewPos","m_viewPos","dx","dy","dz","GetVolumetricBatches","batches","isVisible","batch","Tr2RenderBatch","SetMaterial","SetPerObjectData","GetPerObjectData","SetDrawIndexedInstanced","committed","Commit","UpdateVolumetricLightmap","renderContext","scaledWidth","max","floor","scaledHeight","scaledDepth","VOXELS_PER_UPDATE","slices","success","RunComputeShader","SetSceneInformation","sceneInformation","quality","Tr2VolumerticQuality","Low","Medium","sunDirection","normalize","dot","cos","receive","SetOption","raytracedShadows","GetVolumetricShadowBatches","shader","GetShaderStateInterface","GetTechniqueIndex","technique","undefined","SetRenderingMode","RenderingMode","RM_ALPHA","SetVertexDeclaration","SetDrawInstanced","GetVolumetricShadowInfo","shadowInfo","sunDir","SetupShadowFrustum","minX","Infinity","minY","minZ","maxX","maxY","maxZ","corner","min","shadowFrustum","TriFrustumOrtho","DeriveFrustum","aabbMax","fromValues","clone","PrepareCloudShadowMap","SetCloudShadowMapHandle","IsValid","SetValue","GetBatches","batchType","_perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","TR2RENDERREASON_REFLECTION","TriBatchType","TRIBATCHTYPE_TRANSPARENT","HasTransparentBatches","accumulator","data","Allocate","Tr2PerObjectData","object","cloudData","PopulatePerObjectData","world","transpose","projectionInv","projection","GetReversedDepthProjectionTransform","view","GetViewTransform","worldViewInv","viewPosition","GetViewPosition","inverseWorld","lightmapDimensions","noiseSize","noiseConfig","random","wv","viewDirection","depthSlice0","depthSlice1","depthSlice2","getScaling","maxScale","relativeScaling","lodFactor","targetInvSize","record","innerRadius","GetLight","lightData","GetLightData","multiplier","GetBrightnessMultiplier","boost","push","mapOffsets","ReflectionMode","Object","freeze","REFLECT_HIGH","REFLECT_MEDIUM_AND_HIGH","REFLECT_LOW_MEDIUM_HIGH","REFLECT_NEVER","High","Ultra","constructor"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { sph3 } from '@carbonenginejs/runtime-utils/sph3';
|
|
|
6
6
|
import { vec3 } from '@carbonenginejs/runtime-utils/vec3';
|
|
7
7
|
import { vec4 } from '@carbonenginejs/runtime-utils/vec4';
|
|
8
8
|
import { TriBatchType } from '@carbonenginejs/runtime-utils/graphics';
|
|
9
|
-
import { Tr2Lod } from '
|
|
9
|
+
import { Tr2Lod } from '@carbonenginejs/runtime-utils/const/trinity';
|
|
10
10
|
import { ShouldReflect, EveComponentType } from '../../../eve/EveComponentTypes.js';
|
|
11
11
|
|
|
12
12
|
let _initProto, _initClass, _init_reflectionMode, _init_extra_reflectionMode, _init_particleEmitters, _init_extra_particleEmitters, _init_particleSystems, _init_extra_particleSystems, _init_transformModifiers, _init_extra_transformModifiers, _init_display, _init_extra_display, _init_name, _init_extra_name, _init_mesh, _init_extra_mesh, _init_lodClampLow, _init_extra_lodClampLow, _init_lodSphereRadius, _init_extra_lodSphereRadius, _init_useDynamicLod, _init_extra_useDynamicLod, _init_lodFactorLow, _init_extra_lodFactorLow, _init_lodFactorMedium, _init_extra_lodFactorMedium, _init_minScreenSize, _init_extra_minScreenSize, _init_currentScreenSize, _init_extra_currentScreenSize;
|
|
@@ -22,7 +22,7 @@ new class extends _identity {
|
|
|
22
22
|
} = _applyDecs2311(this, [type.define({
|
|
23
23
|
className: "EveChildParticleSystem",
|
|
24
24
|
family: "eve/child"
|
|
25
|
-
})], [[[io, io.notify, io, io.persist, type, type.int32, void 0, schema.enum("ReflectionMode")], 16, "reflectionMode"], [[io, io.persist, void 0, type.list("ITr2GenericEmitter")], 16, "particleEmitters"], [[io, io.persist, void 0, type.list("Tr2ParticleSystem")], 16, "particleSystems"], [[io, io.persist, void 0, type.list("IEveChildTransformModifier")], 16, "transformModifiers"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, void 0, type.model("Tr2InstancedMesh")], 16, "mesh"], [[io, io.persist, type, type.uint32], 16, "lodClampLow"], [[io, io.persist, type, type.float32], 16, "lodSphereRadius"], [[io, io.persist, type, type.boolean], 16, "useDynamicLod"], [[io, io.persist, type, type.float32], 16, "lodFactorLow"], [[io, io.persist, type, type.float32], 16, "lodFactorMedium"], [[io, io.persist, type, type.float32], 16, "minScreenSize"], [[io, io.read, type, type.float32], 16, "currentScreenSize"], [[carbon, carbon.method, impl, impl.implemented], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon re-registers on m_reflectionMode/m_display Var edits; JS forwards every OnModified to the EveEntity ReRegister lifecycle.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetName"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetName"], [[carbon, carbon.method, impl, impl.implemented], 18, "Setup"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Frustum and LOD factor are read from the explicit update context; a missing frustum is treated as visible.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Frustum and LOD factor are read from the explicit update context; a missing frustum is treated as visible.")], 18, "IsVisible"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.implemented], 18, "HasTransparentBatches"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "GetBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.")], 18, "GetSortValue"], [[carbon, carbon.method, impl, impl.
|
|
25
|
+
})], [[[io, io.notify, io, io.persist, type, type.int32, void 0, schema.enum("ReflectionMode")], 16, "reflectionMode"], [[io, io.persist, void 0, type.list("ITr2GenericEmitter")], 16, "particleEmitters"], [[io, io.persist, void 0, type.list("Tr2ParticleSystem")], 16, "particleSystems"], [[io, io.persist, void 0, type.list("IEveChildTransformModifier")], 16, "transformModifiers"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, void 0, type.model("Tr2InstancedMesh")], 16, "mesh"], [[io, io.persist, type, type.uint32], 16, "lodClampLow"], [[io, io.persist, type, type.float32], 16, "lodSphereRadius"], [[io, io.persist, type, type.boolean], 16, "useDynamicLod"], [[io, io.persist, type, type.float32], 16, "lodFactorLow"], [[io, io.persist, type, type.float32], 16, "lodFactorMedium"], [[io, io.persist, type, type.float32], 16, "minScreenSize"], [[io, io.read, type, type.float32], 16, "currentScreenSize"], [[carbon, carbon.method, impl, impl.implemented], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon re-registers on m_reflectionMode/m_display Var edits; JS forwards every OnModified to the EveEntity ReRegister lifecycle.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetName"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetName"], [[carbon, carbon.method, impl, impl.implemented], 18, "Setup"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Frustum and LOD factor are read from the explicit update context; a missing frustum is treated as visible.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Frustum and LOD factor are read from the explicit update context; a missing frustum is treated as visible.")], 18, "IsVisible"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.implemented], 18, "HasTransparentBatches"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "GetBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.")], 18, "GetSortValue"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's transient EveBasicPerObjectData fill (cpp:182-194): world/worldLast transposed, worldInverse = Inverse(world). Trinity Allocs the record from the accumulator's store and Sets logical values by name (the store transposes per the engine layout).")], 18, "GetPerObjectData"], [[carbon, carbon.method, impl, impl.noop], 18, "UpdateSyncronous"], [[carbon, carbon.method, void 0, carbon.contextual(["camera"]), impl, impl.adapted, void 0, impl.reason("Renderer-global frustum state is read from the update context, and emitter/system updates use the backend-neutral argument record.")], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CarbonEngineJS uses an out-last signature and returns the matrix when no output is supplied.")], 18, "GetLocalToWorldTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "ChangeLOD"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddTransformModifier"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"]], 0, void 0, _EveChildTransform));
|
|
26
26
|
}
|
|
27
27
|
/** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */
|
|
28
28
|
reflectionMode = (_initProto(this), _init_reflectionMode(this, 3));
|
|
@@ -186,8 +186,14 @@ new class extends _identity {
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
/** Carbon method GetPerObjectData (EveChildParticleSystem.cpp:180-195). */
|
|
189
|
-
GetPerObjectData(
|
|
190
|
-
|
|
189
|
+
GetPerObjectData(accumulator) {
|
|
190
|
+
const data = accumulator.Alloc("EveBasicPerObjectData");
|
|
191
|
+
data.SetAndTranspose("world", this.worldTransform);
|
|
192
|
+
data.SetAndTranspose("worldLast", this.#worldTransformLast);
|
|
193
|
+
const inverse = mat4.create();
|
|
194
|
+
if (!mat4.invert(inverse, this.worldTransform)) mat4.identity(inverse);
|
|
195
|
+
data.SetAndTranspose("worldInverse", inverse);
|
|
196
|
+
return data;
|
|
191
197
|
}
|
|
192
198
|
|
|
193
199
|
/** Carbon's synchronous pass is empty (EveChildParticleSystem.cpp:197-199). */
|