@carbonenginejs/runtime-trinity 0.5.0 → 0.7.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 +12 -2
- package/dist/controllers/Tr2ActionAnimateCurveSet.js.map +1 -1
- package/dist/controllers/Tr2ActionAnimateValue.js +28 -2
- package/dist/controllers/Tr2ActionAnimateValue.js.map +1 -1
- package/dist/controllers/Tr2ActionBindRTPC.js +13 -2
- package/dist/controllers/Tr2ActionBindRTPC.js.map +1 -1
- package/dist/controllers/Tr2ActionCallback.js +7 -2
- package/dist/controllers/Tr2ActionCallback.js.map +1 -1
- package/dist/controllers/Tr2ActionChildEffect.js +65 -2
- package/dist/controllers/Tr2ActionChildEffect.js.map +1 -1
- package/dist/controllers/Tr2ActionOverlay.js +70 -2
- package/dist/controllers/Tr2ActionOverlay.js.map +1 -1
- package/dist/controllers/Tr2ActionPlayCurveSet.js +18 -2
- package/dist/controllers/Tr2ActionPlayCurveSet.js.map +1 -1
- package/dist/controllers/Tr2ActionPlayMeshAnimation.js +31 -2
- package/dist/controllers/Tr2ActionPlayMeshAnimation.js.map +1 -1
- package/dist/controllers/Tr2ActionPlaySound.js +13 -2
- package/dist/controllers/Tr2ActionPlaySound.js.map +1 -1
- package/dist/controllers/Tr2ActionPython.js +13 -2
- package/dist/controllers/Tr2ActionPython.js.map +1 -1
- package/dist/controllers/Tr2ActionResetClipSphereCenter.js +21 -4
- package/dist/controllers/Tr2ActionResetClipSphereCenter.js.map +1 -1
- package/dist/controllers/Tr2ActionSetAttenuationScaling.js +7 -2
- package/dist/controllers/Tr2ActionSetAttenuationScaling.js.map +1 -1
- package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js +7 -2
- package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
- package/dist/controllers/Tr2ActionSetAudioSwitch.js +7 -2
- package/dist/controllers/Tr2ActionSetAudioSwitch.js.map +1 -1
- package/dist/controllers/Tr2ActionSetExternalControllerVariable.js +25 -2
- package/dist/controllers/Tr2ActionSetExternalControllerVariable.js.map +1 -1
- package/dist/controllers/Tr2ActionSetShaderOption.js +7 -2
- package/dist/controllers/Tr2ActionSetShaderOption.js.map +1 -1
- package/dist/controllers/Tr2ActionSetValue.js +37 -2
- package/dist/controllers/Tr2ActionSetValue.js.map +1 -1
- package/dist/controllers/Tr2ActionSpawnParticles.js +12 -2
- package/dist/controllers/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/controllers/Tr2BindingPoint.js +71 -4
- package/dist/controllers/Tr2BindingPoint.js.map +1 -1
- package/dist/controllers/Tr2Controller.js +39 -2
- package/dist/controllers/Tr2Controller.js.map +1 -1
- package/dist/controllers/Tr2ControllerEventHandler.js +12 -2
- package/dist/controllers/Tr2ControllerEventHandler.js.map +1 -1
- package/dist/controllers/Tr2ControllerExpression.js +19 -2
- package/dist/controllers/Tr2ControllerExpression.js.map +1 -1
- package/dist/controllers/Tr2ControllerFloatVariable.js +8 -2
- package/dist/controllers/Tr2ControllerFloatVariable.js.map +1 -1
- package/dist/controllers/Tr2ControllerReference.js +13 -2
- package/dist/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/controllers/Tr2StateMachine.js +19 -2
- package/dist/controllers/Tr2StateMachine.js.map +1 -1
- package/dist/controllers/Tr2StateMachineState.js +49 -2
- package/dist/controllers/Tr2StateMachineState.js.map +1 -1
- package/dist/controllers/Tr2StateMachineTransition.js +31 -2
- package/dist/controllers/Tr2StateMachineTransition.js.map +1 -1
- package/dist/controllers/Tr2SyncToAnimation.js +7 -2
- package/dist/controllers/Tr2SyncToAnimation.js.map +1 -1
- package/dist/controllers/Tr2TimelineController.js +63 -2
- package/dist/controllers/Tr2TimelineController.js.map +1 -1
- package/dist/controllers/Tr2TimelineEntry.js +2 -2
- package/dist/controllers/Tr2TimelineEntry.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 +151 -1
- package/dist/curves/CjsGrannyCurves.js.map +1 -1
- package/dist/curves/Tr2BoneMatrixCurve.js +27 -4
- package/dist/curves/Tr2BoneMatrixCurve.js.map +1 -1
- package/dist/curves/Tr2CameraFollowCurveKey.js +9 -3
- package/dist/curves/Tr2CameraFollowCurveKey.js.map +1 -1
- package/dist/curves/Tr2CurveColor.js +10 -4
- package/dist/curves/Tr2CurveColor.js.map +1 -1
- package/dist/curves/Tr2CurveColorMixer.js +10 -4
- package/dist/curves/Tr2CurveColorMixer.js.map +1 -1
- package/dist/curves/Tr2CurveCombiner.js +8 -3
- package/dist/curves/Tr2CurveCombiner.js.map +1 -1
- package/dist/curves/Tr2CurveConstant.js +22 -6
- package/dist/curves/Tr2CurveConstant.js.map +1 -1
- package/dist/curves/Tr2CurveEulerRotation.js +8 -3
- package/dist/curves/Tr2CurveEulerRotation.js.map +1 -1
- package/dist/curves/Tr2CurveEulerRotationExpression.js +69 -3
- package/dist/curves/Tr2CurveEulerRotationExpression.js.map +1 -1
- package/dist/curves/Tr2CurveQuaternion.js +8 -3
- package/dist/curves/Tr2CurveQuaternion.js.map +1 -1
- package/dist/curves/Tr2CurveQuaternionKey.js +8 -3
- package/dist/curves/Tr2CurveQuaternionKey.js.map +1 -1
- package/dist/curves/Tr2CurveRandomAxisRotation.js +31 -3
- package/dist/curves/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/curves/Tr2CurveScalar.js +40 -5
- package/dist/curves/Tr2CurveScalar.js.map +1 -1
- package/dist/curves/Tr2CurveScalarExpression.js +13 -2
- package/dist/curves/Tr2CurveScalarExpression.js.map +1 -1
- package/dist/curves/Tr2CurveScalarKey.js +8 -2
- package/dist/curves/Tr2CurveScalarKey.js.map +1 -1
- package/dist/curves/Tr2CurveSetRange.js +7 -2
- package/dist/curves/Tr2CurveSetRange.js.map +1 -1
- package/dist/curves/Tr2CurveVector2.js +8 -3
- package/dist/curves/Tr2CurveVector2.js.map +1 -1
- package/dist/curves/Tr2CurveVector3.js +8 -3
- package/dist/curves/Tr2CurveVector3.js.map +1 -1
- package/dist/curves/Tr2CurveVector3Expression.js +74 -3
- package/dist/curves/Tr2CurveVector3Expression.js.map +1 -1
- package/dist/curves/Tr2CurveVector3Lerp.js +9 -3
- package/dist/curves/Tr2CurveVector3Lerp.js.map +1 -1
- package/dist/curves/Tr2DistanceTracker.js +9 -3
- package/dist/curves/Tr2DistanceTracker.js.map +1 -1
- package/dist/curves/Tr2FollowCurve.js +9 -3
- package/dist/curves/Tr2FollowCurve.js.map +1 -1
- package/dist/curves/Tr2GrannyEventTrack.js +6 -1
- package/dist/curves/Tr2GrannyEventTrack.js.map +1 -1
- package/dist/curves/Tr2GrannyTrack.js +8 -2
- package/dist/curves/Tr2GrannyTrack.js.map +1 -1
- package/dist/curves/Tr2GrannyTransformTrack.js +9 -3
- package/dist/curves/Tr2GrannyTransformTrack.js.map +1 -1
- package/dist/curves/Tr2GrannyVectorTrack.js +6 -1
- package/dist/curves/Tr2GrannyVectorTrack.js.map +1 -1
- package/dist/curves/Tr2MatrixKey.js +8 -3
- package/dist/curves/Tr2MatrixKey.js.map +1 -1
- package/dist/curves/Tr2ObjectFollowCurveKey.js +10 -4
- package/dist/curves/Tr2ObjectFollowCurveKey.js.map +1 -1
- package/dist/curves/Tr2QuaternionLerpCurve.js +10 -4
- package/dist/curves/Tr2QuaternionLerpCurve.js.map +1 -1
- package/dist/curves/Tr2RotationAdapter.js +9 -3
- package/dist/curves/Tr2RotationAdapter.js.map +1 -1
- package/dist/curves/Tr2ScalarExprKey.js +21 -3
- package/dist/curves/Tr2ScalarExprKey.js.map +1 -1
- package/dist/curves/Tr2ScalarExprKeyCurve.js +27 -4
- package/dist/curves/Tr2ScalarExprKeyCurve.js.map +1 -1
- package/dist/curves/Tr2ScalarFader.js +14 -3
- package/dist/curves/Tr2ScalarFader.js.map +1 -1
- package/dist/curves/Tr2TranslationAdapter.js +10 -4
- package/dist/curves/Tr2TranslationAdapter.js.map +1 -1
- package/dist/curves/TriColorSequencer.js +10 -4
- package/dist/curves/TriColorSequencer.js.map +1 -1
- package/dist/curves/TriCurveSet.js +25 -2
- package/dist/curves/TriCurveSet.js.map +1 -1
- package/dist/curves/TriEventCurve.js +25 -2
- package/dist/curves/TriEventCurve.js.map +1 -1
- package/dist/curves/TriEventKey.js +7 -2
- package/dist/curves/TriEventKey.js.map +1 -1
- package/dist/curves/TriPerlinCurve.js +33 -3
- package/dist/curves/TriPerlinCurve.js.map +1 -1
- package/dist/curves/TriVectorSequencer.js +10 -4
- package/dist/curves/TriVectorSequencer.js.map +1 -1
- package/dist/eve/AudioGameObject.js +95 -7
- package/dist/eve/AudioGameObject.js.map +1 -1
- package/dist/eve/BackAndForthData.js +10 -3
- 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 +11 -4
- package/dist/eve/EveChildUpdateParams.js.map +1 -1
- package/dist/eve/EveComponentTypes.js.map +1 -1
- package/dist/eve/EveCustomMask.js +64 -33
- package/dist/eve/EveCustomMask.js.map +1 -1
- package/dist/eve/EveDistanceField.js +87 -3
- 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 +64 -3
- 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 +6 -4
- package/dist/eve/EveLineData.js.map +1 -1
- package/dist/eve/EveThrottleable.js +13 -2
- package/dist/eve/EveThrottleable.js.map +1 -1
- package/dist/eve/EveUpdateContext.js +3 -3
- package/dist/eve/EveUpdateContext.js.map +1 -1
- package/dist/eve/FollowASplineData.js +9 -2
- package/dist/eve/FollowASplineData.js.map +1 -1
- package/dist/eve/FormationData.js +8 -2
- package/dist/eve/FormationData.js.map +1 -1
- package/dist/eve/InertiaData.js +10 -3
- package/dist/eve/InertiaData.js.map +1 -1
- package/dist/eve/PlacementDataWithIdentifier.js +11 -4
- package/dist/eve/PlacementDataWithIdentifier.js.map +1 -1
- package/dist/eve/PlayFXData.js +10 -3
- package/dist/eve/PlayFXData.js.map +1 -1
- package/dist/eve/SeekTargetData.js +10 -3
- package/dist/eve/SeekTargetData.js.map +1 -1
- package/dist/eve/attachment/EveSpaceObjectAttachmentUtils.js +105 -0
- 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} +16 -5
- 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} +267 -46
- package/dist/eve/attachment/booster/EveBoosterSet2.js.map +1 -0
- package/dist/eve/{EveBoosterSet2Renderable.js → attachment/booster/EveBoosterSet2Renderable.js} +216 -15
- package/dist/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -0
- package/dist/eve/{EveTrailsSet.js → attachment/booster/EveTrailsSet.js} +52 -4
- package/dist/eve/attachment/booster/EveTrailsSet.js.map +1 -0
- package/dist/eve/attachment/decal/DecalMeshCache.js +2 -2
- package/dist/eve/attachment/decal/DecalMeshCache.js.map +1 -1
- package/dist/eve/attachment/decal/EveSpaceObjectDecal.js +512 -0
- package/dist/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -0
- package/dist/eve/attachment/haze/EveHazeSet.js +187 -0
- 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} +16 -5
- 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} +17 -5
- package/dist/eve/attachment/plane/EvePlaneLight.js.map +1 -0
- package/dist/eve/attachment/plane/EvePlaneSet.js +303 -0
- 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} +16 -5
- package/dist/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -0
- package/dist/eve/attachment/spotlight/EveSpotlightSet.js +235 -0
- 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} +17 -5
- package/dist/eve/attachment/sprite/EveSpriteLight.js.map +1 -0
- package/dist/eve/attachment/sprite/EveSpriteLineSet.js +192 -0
- package/dist/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -0
- package/dist/eve/{EveSpriteLineSetItem.js → attachment/sprite/EveSpriteLineSetItem.js} +34 -9
- package/dist/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -0
- package/dist/eve/attachment/sprite/EveSpriteSet.js +255 -0
- package/dist/eve/attachment/sprite/EveSpriteSet.js.map +1 -0
- package/dist/{generated/eve/attachment/sprites → eve/attachment/sprite}/EveSpriteSetItem.js +28 -31
- package/dist/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -0
- package/dist/eve/attachment/turrets/EveTurretFiringFX.js +187 -5
- package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
- package/dist/eve/attachment/turrets/EveTurretSet.js +333 -19
- package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/eve/attachment/turrets/EveTurretTarget.js +115 -3
- 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 +67 -4
- 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 +46 -8
- package/dist/eve/child/EveChildBulletStorm.js.map +1 -0
- package/dist/eve/child/EveChildContainer.js +181 -22
- package/dist/eve/child/EveChildContainer.js.map +1 -1
- package/dist/eve/child/EveChildEffectPropagator.js +5 -5
- package/dist/eve/child/EveChildEffectPropagator.js.map +1 -1
- package/dist/eve/child/EveChildFogVolume.js +76 -4
- package/dist/eve/child/EveChildFogVolume.js.map +1 -1
- package/dist/eve/child/EveChildInheritProperties.js +20 -3
- package/dist/eve/child/EveChildInheritProperties.js.map +1 -1
- package/dist/eve/child/EveChildInstanceTransform.js +4 -4
- package/dist/eve/child/EveChildInstanceTransform.js.map +1 -1
- package/dist/eve/child/EveChildInstancedMeshes.js +485 -23
- package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
- package/dist/eve/child/EveChildLightingOverride.js +78 -4
- package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
- package/dist/{generated/eve → eve}/child/EveChildLink.js +23 -22
- package/dist/eve/child/EveChildLink.js.map +1 -0
- package/dist/eve/child/EveChildMesh.js +366 -111
- 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 +48 -5
- package/dist/eve/child/EveChildTransform.js.map +1 -1
- package/dist/eve/child/EveCloudVolumeBall.js +4 -4
- package/dist/eve/child/EveCloudVolumeBall.js.map +1 -1
- package/dist/eve/child/IEveSpaceObjectChild.js +7 -2
- 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/DroneAgent.js +5 -5
- package/dist/eve/child/behaviors/DroneAgent.js.map +1 -1
- 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} +10 -4
- package/dist/eve/child/behaviors/lifecycle/ProcessLifetimeData.js.map +1 -0
- package/dist/eve/child/behaviors/{SplineTunnel.js → tunnels/SplineTunnel.js} +11 -9
- 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} +6 -6
- package/dist/eve/child/behaviors/tunnels/SplineTunnelPoint.js.map +1 -0
- package/dist/eve/child/lineSetPaths/EveBezierCurve.js +82 -8
- package/dist/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
- package/dist/eve/child/lineSetPaths/EveCircle.js +82 -8
- package/dist/eve/child/lineSetPaths/EveCircle.js.map +1 -1
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierAttachToBone.js +27 -19
- package/dist/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -0
- package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js +8 -3
- package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js.map +1 -1
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierBillboard3D.js +26 -23
- package/dist/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -0
- package/dist/eve/child/modifiers/EveChildModifierBooster.js +10 -4
- package/dist/eve/child/modifiers/EveChildModifierBooster.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js +12 -6
- package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierHalo.js +9 -4
- package/dist/eve/child/modifiers/EveChildModifierHalo.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js +10 -4
- package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierSRT.js +10 -5
- package/dist/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierStretch.js +36 -22
- package/dist/eve/child/modifiers/EveChildModifierStretch.js.map +1 -0
- package/dist/eve/child/modifiers/EveChildModifierTransformCommon.js +2 -2
- package/dist/eve/child/modifiers/EveChildModifierTransformCommon.js.map +1 -1
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierTranslateWithCamera.js +19 -17
- package/dist/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/EveChildProceduralContainer.js +15 -8
- package/dist/eve/child/procedural/EveChildProceduralContainer.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMap.js +14 -14
- package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +8 -8
- package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCycling.js +14 -14
- package/dist/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCyclingParameter.js +10 -10
- package/dist/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandom.js +19 -19
- package/dist/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandomParameter.js +9 -9
- package/dist/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholdParameter.js +9 -9
- package/dist/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholds.js +19 -19
- package/dist/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/EveBaseDistributionMethod.js +136 -7
- package/dist/eve/distribution/EveBaseDistributionMethod.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +14 -3
- package/dist/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +13 -5
- package/dist/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +16 -5
- package/dist/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -0
- package/dist/eve/distribution/attributeModifiers/InitialPlacement.js +2 -2
- package/dist/eve/distribution/attributeModifiers/InitialPlacement.js.map +1 -1
- package/dist/eve/distribution/attributeModifiers/enums.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorLocators.js +18 -5
- package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +33 -5
- package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorVolume.js +38 -7
- package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +16 -4
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +16 -5
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +17 -6
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +16 -5
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerBurst.js +21 -3
- package/dist/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +27 -3
- package/dist/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerInterval.js +19 -3
- package/dist/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +24 -5
- package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +23 -4
- package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +23 -4
- package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -0
- package/dist/{generated/eve/effect → eve/effect/lensflare}/EveLensflare.js +81 -9
- 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 +118 -46
- package/dist/eve/index.js.map +1 -1
- package/dist/eve/lights/CjsLightData.js +12 -5
- package/dist/eve/lights/CjsLightData.js.map +1 -1
- package/dist/eve/lights/LightFeatures.js +2 -2
- package/dist/eve/lights/LightFeatures.js.map +1 -1
- package/dist/eve/lights/Tr2Light.js +130 -4
- package/dist/eve/lights/Tr2Light.js.map +1 -1
- package/dist/eve/lights/Tr2PointLight.js +9 -4
- package/dist/eve/lights/Tr2PointLight.js.map +1 -1
- package/dist/eve/lights/Tr2SpotLight.js +9 -4
- package/dist/eve/lights/Tr2SpotLight.js.map +1 -1
- package/dist/eve/lights/Tr2TexturedPointLight.js +11 -1
- package/dist/eve/lights/Tr2TexturedPointLight.js.map +1 -1
- package/dist/eve/lights/lightConversion.js +196 -0
- package/dist/eve/lights/lightConversion.js.map +1 -0
- package/dist/eve/{EveLocator2.js → locator/EveLocator2.js} +23 -4
- package/dist/eve/locator/EveLocator2.js.map +1 -0
- package/dist/eve/{EveLocatorSets.js → locator/EveLocatorSets.js} +46 -4
- package/dist/eve/locator/EveLocatorSets.js.map +1 -0
- package/dist/eve/{Locator.js → locator/Locator.js} +10 -5
- package/dist/eve/locator/Locator.js.map +1 -0
- package/dist/eve/{LocatorData.js → locator/LocatorData.js} +7 -5
- 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} +6 -6
- package/dist/eve/particles/force/EveParticleDirectForce.js.map +1 -0
- package/dist/eve/{EveParticleDragForce.js → particles/force/EveParticleDragForce.js} +6 -6
- package/dist/eve/particles/force/EveParticleDragForce.js.map +1 -0
- package/dist/eve/{EveParticleSpring.js → particles/force/EveParticleSpring.js} +7 -7
- package/dist/eve/particles/force/EveParticleSpring.js.map +1 -0
- package/dist/eve/particles/static/EveSceneStaticParticles.js +326 -0
- 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 +78 -2
- package/dist/eve/renderable/stretch/CjsStretchRuntime.js.map +1 -1
- package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +88 -4
- package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
- package/dist/eve/renderable/stretch/EveLocalPositionCurve.js +95 -4
- package/dist/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
- package/dist/eve/renderable/stretch/EveRemotePositionCurve.js +40 -4
- package/dist/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch.js +162 -13
- package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch2.js +125 -16
- package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch3.js +265 -12
- package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/eve/scene/EveSpaceScene.js +62 -12
- package/dist/eve/scene/EveSpaceScene.js.map +1 -1
- package/dist/{generated/eve/scene → eve/scene/components}/EveComponentCollection.js +26 -3
- package/dist/eve/scene/components/EveComponentCollection.js.map +1 -0
- package/dist/{generated/eve/scene → eve/scene/components}/EveComponentRegistry.js +76 -4
- 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 +20 -20
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +21 -21
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +14 -14
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +13 -13
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +32 -32
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +11 -11
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +25 -25
- 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 +28 -3
- package/dist/eve/socket/EveSocketParameterBindingBase.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterBool.js +18 -2
- package/dist/eve/socket/EveSocketParameterBool.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterColor.js +23 -7
- package/dist/eve/socket/EveSocketParameterColor.js.map +1 -0
- package/dist/eve/socket/EveSocketParameterFilePath.js +6 -6
- package/dist/eve/socket/EveSocketParameterFilePath.js.map +1 -1
- package/dist/{generated/eve → eve}/socket/EveSocketParameterFloat.js +18 -2
- package/dist/eve/socket/EveSocketParameterFloat.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterInt.js +18 -2
- package/dist/eve/socket/EveSocketParameterInt.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterString.js +44 -4
- package/dist/eve/socket/EveSocketParameterString.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterVector2.js +19 -3
- package/dist/eve/socket/EveSocketParameterVector2.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterVector3.js +19 -3
- package/dist/eve/socket/EveSocketParameterVector3.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterVector4.js +19 -3
- package/dist/eve/socket/EveSocketParameterVector4.js.map +1 -0
- package/dist/eve/spaceObject/EveEffectRoot2.js +69 -33
- package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
- package/dist/eve/spaceObject/EveMissile.js +55 -7
- package/dist/eve/spaceObject/EveMissile.js.map +1 -1
- package/dist/eve/spaceObject/EveMissileWarhead.js +112 -16
- package/dist/eve/spaceObject/EveMissileWarhead.js.map +1 -1
- package/dist/eve/spaceObject/EveMobile.js +107 -3
- package/dist/eve/spaceObject/EveMobile.js.map +1 -1
- package/dist/eve/spaceObject/EveRootTransform.js +21 -4
- package/dist/eve/spaceObject/EveRootTransform.js.map +1 -1
- package/dist/{generated/eve → eve}/spaceObject/EveShip2.js +34 -14
- package/dist/eve/spaceObject/EveShip2.js.map +1 -0
- package/dist/eve/spaceObject/EveSpaceObject2.js +747 -205
- package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/eve/spaceObject/EveStation2.js +1 -1
- package/dist/eve/spaceObject/EveStation2.js.map +1 -1
- package/dist/eve/spaceObject/EveTransform.js +124 -24
- 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/eve/spaceObject/planet/EvePlanet.js +63 -0
- package/dist/eve/spaceObject/planet/EvePlanet.js.map +1 -0
- package/dist/eve/spaceObject/swarm/EveSwarmRenderable.js +225 -0
- package/dist/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -0
- package/dist/eve/spaceObject/swarm/SwarmVehicle.js +4 -4
- package/dist/eve/spaceObject/swarm/SwarmVehicle.js.map +1 -1
- package/dist/eve/spaceObject/swarm/SwarmVehicleDebug.js +3 -3
- package/dist/eve/spaceObject/swarm/SwarmVehicleDebug.js.map +1 -1
- package/dist/eve/ui/EveEllipseDefinition.js +18 -3
- package/dist/eve/ui/EveEllipseDefinition.js.map +1 -1
- package/dist/eve/ui/EveEllipseSet.js +44 -2
- package/dist/eve/ui/EveEllipseSet.js.map +1 -1
- package/dist/eve/ui/EveSpherePin.js +159 -0
- package/dist/eve/ui/EveSpherePin.js.map +1 -0
- package/dist/eve/ui/EveSprite2dBracket.js +9 -4
- package/dist/eve/ui/EveSprite2dBracket.js.map +1 -1
- package/dist/eve/ui/EveUiObject.js +12 -1
- package/dist/eve/ui/EveUiObject.js.map +1 -1
- package/dist/{generated/eve/ui → eve/ui/lines}/EveLineSet.js +71 -10
- 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 +24 -4
- package/dist/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -0
- package/dist/eve/virtualCamera/EveVirtualCamera.js +158 -6
- package/dist/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
- package/dist/eve/virtualCamera/EveVirtualCameraSystem.js +67 -2
- package/dist/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +18 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +21 -2
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +18 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +30 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +16 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +42 -4
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +19 -2
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +20 -2
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +22 -2
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +22 -2
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js +13 -2
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js +16 -2
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +18 -2
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +23 -3
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +38 -2
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js +38 -2
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js.map +1 -1
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js +12 -1
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js.map +1 -1
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +39 -2
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
- package/dist/eve/volume/EveBoxVolume.js +63 -4
- package/dist/eve/volume/EveBoxVolume.js.map +1 -1
- package/dist/eve/volume/EveEllipsoidVolume.js +58 -4
- package/dist/eve/volume/EveEllipsoidVolume.js.map +1 -1
- package/dist/eve/volume/EveSphereVolume.js +37 -3
- package/dist/eve/volume/EveSphereVolume.js.map +1 -1
- package/dist/generated/curves/Tr2VectorFunctionModifier.js +3 -3
- package/dist/generated/curves/Tr2VectorFunctionModifier.js.map +1 -1
- package/dist/generated/eve/child/EveChildCloud.js +5 -5
- package/dist/generated/eve/child/EveChildCloud.js.map +1 -1
- package/dist/generated/eve/child/EveChildCloud2.js +759 -48
- package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/generated/eve/child/EveChildExplosion.js +4 -4
- package/dist/generated/eve/child/EveChildExplosion.js.map +1 -1
- package/dist/generated/eve/child/EveChildInstanceContainer.js +1 -1
- package/dist/generated/eve/child/EveChildInstanceContainer.js.map +1 -1
- package/dist/generated/eve/child/EveChildInstanceMeshRenderer.js +3 -3
- package/dist/generated/eve/child/EveChildInstanceMeshRenderer.js.map +1 -1
- package/dist/generated/eve/child/EveChildLineSet.js +2 -2
- package/dist/generated/eve/child/EveChildLineSet.js.map +1 -1
- package/dist/generated/eve/child/EveChildParticleSphere.js +3 -3
- package/dist/generated/eve/child/EveChildParticleSphere.js.map +1 -1
- package/dist/generated/eve/child/EveChildParticleSystem.js +16 -10
- package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/generated/eve/child/EveChildPlug.js +1 -1
- package/dist/generated/eve/child/EveChildPlug.js.map +1 -1
- package/dist/generated/eve/child/EveChildPostProcessVolume.js +4 -4
- package/dist/generated/eve/child/EveChildPostProcessVolume.js.map +1 -1
- package/dist/generated/eve/child/EveChildQuad.js +5 -5
- package/dist/generated/eve/child/EveChildQuad.js.map +1 -1
- package/dist/generated/eve/child/EveChildRef.js +1 -1
- package/dist/generated/eve/child/EveChildRef.js.map +1 -1
- package/dist/generated/eve/child/EveChildSocket.js +2 -2
- package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
- package/dist/generated/eve/child/EveCloudEditableVolume.js +2 -2
- package/dist/generated/eve/child/EveCloudEditableVolume.js.map +1 -1
- package/dist/generated/eve/child/EveCloudVolumeTextureParameter.js +2 -2
- package/dist/generated/eve/child/EveCloudVolumeTextureParameter.js.map +1 -1
- package/dist/generated/eve/child/IEveLightingOverride.js +2 -2
- package/dist/generated/eve/child/IEveLightingOverride.js.map +1 -1
- package/dist/generated/eve/child/behaviors/Allign.js +3 -3
- package/dist/generated/eve/child/behaviors/Allign.js.map +1 -1
- package/dist/generated/eve/child/behaviors/ApproachGroup.js +3 -3
- package/dist/generated/eve/child/behaviors/ApproachGroup.js.map +1 -1
- package/dist/generated/eve/child/behaviors/BackAndForth.js +18 -21
- package/dist/generated/eve/child/behaviors/BackAndForth.js.map +1 -1
- package/dist/generated/eve/child/behaviors/BehaviorGroup.js +7 -7
- package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
- package/dist/generated/eve/child/behaviors/BehaviorGroupBooster.js +5 -5
- package/dist/generated/eve/child/behaviors/BehaviorGroupBooster.js.map +1 -1
- package/dist/generated/eve/child/behaviors/DroneAvoidance.js +3 -3
- package/dist/generated/eve/child/behaviors/DroneAvoidance.js.map +1 -1
- package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js +29 -32
- package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js.map +1 -1
- package/dist/generated/eve/child/behaviors/FollowASpline.js +16 -20
- package/dist/generated/eve/child/behaviors/FollowASpline.js.map +1 -1
- package/dist/generated/eve/child/behaviors/Formation.js +4 -4
- package/dist/generated/eve/child/behaviors/Formation.js.map +1 -1
- package/dist/generated/eve/child/behaviors/Inertia.js +4 -4
- package/dist/generated/eve/child/behaviors/Inertia.js.map +1 -1
- package/dist/generated/eve/child/behaviors/PlayFX.js +16 -16
- package/dist/generated/eve/child/behaviors/PlayFX.js.map +1 -1
- package/dist/generated/eve/child/behaviors/SeekTarget.js +4 -4
- package/dist/generated/eve/child/behaviors/SeekTarget.js.map +1 -1
- package/dist/generated/eve/child/behaviors/SpawnDrones.js +4 -4
- package/dist/generated/eve/child/behaviors/SpawnDrones.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/child/lineSetPaths/EveLineChildContainer.js +1 -1
- package/dist/generated/eve/child/lineSetPaths/EveLineChildContainer.js.map +1 -1
- package/dist/generated/eve/effect/EveOccluder.js +2 -2
- package/dist/generated/eve/effect/EveOccluder.js.map +1 -1
- package/dist/generated/eve/effect/EveStarfield.js +2 -2
- package/dist/generated/eve/effect/EveStarfield.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/lights/Tr2FactionLight.js +4 -4
- package/dist/generated/eve/lights/Tr2FactionLight.js.map +1 -1
- package/dist/generated/eve/scene/EvePendingPickingReadback.js +2 -2
- package/dist/generated/eve/scene/EvePendingPickingReadback.js.map +1 -1
- package/dist/generated/eve/scene/EveSpaceSceneRenderDriver.js +3 -3
- package/dist/generated/eve/scene/EveSpaceSceneRenderDriver.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/EveChildSmartLightSet.js +2 -2
- package/dist/generated/eve/smartLights/EveChildSmartLightSet.js.map +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightBaseGroup.js +3 -3
- package/dist/generated/eve/smartLights/EveSmartLightBaseGroup.js.map +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js +23 -23
- package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightMesh.js +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightMesh.js.map +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +6 -6
- package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightQuad.js +6 -6
- package/dist/generated/eve/smartLights/EveSmartLightQuad.js.map +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightSpotLight.js +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightSpotLight.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 +194 -173
- 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/EveConnector.js +4 -4
- package/dist/generated/eve/ui/EveConnector.js.map +1 -1
- package/dist/generated/eve/ui/EveCurveLineSet.js +2 -2
- package/dist/generated/eve/ui/EveCurveLineSet.js.map +1 -1
- package/dist/generated/eve/ui/EveLineContainer.js +2 -2
- package/dist/generated/eve/ui/EveLineContainer.js.map +1 -1
- package/dist/generated/eve/ui/EveProjectBracket.js +4 -4
- package/dist/generated/eve/ui/EveProjectBracket.js.map +1 -1
- package/dist/generated/eve/ui/EveSprite2dBracketRenderer.js +2 -2
- package/dist/generated/eve/ui/EveSprite2dBracketRenderer.js.map +1 -1
- package/dist/generated/eve/ui/EveTacticalOverlay.js +4 -4
- package/dist/generated/eve/ui/EveTacticalOverlay.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/font/Tr2FontManager.js +2 -2
- package/dist/generated/font/Tr2FontManager.js.map +1 -1
- package/dist/generated/font/Tr2FontMeasurer.js +2 -2
- package/dist/generated/font/Tr2FontMeasurer.js.map +1 -1
- package/dist/generated/font/Tr2SBitWrapper.js +2 -2
- package/dist/generated/font/Tr2SBitWrapper.js.map +1 -1
- package/dist/generated/index.js +0 -93
- package/dist/generated/index.js.map +1 -1
- package/dist/generated/particle/ITr2GenericEmitter.js +4 -4
- package/dist/generated/particle/ITr2GenericEmitter.js.map +1 -1
- package/dist/generated/particle/Tr2CapsuleShapeAttributeGenerator.js +4 -4
- package/dist/generated/particle/Tr2CapsuleShapeAttributeGenerator.js.map +1 -1
- package/dist/generated/particle/Tr2ConsecutiveIntegerAttributeGenerator.js +3 -3
- package/dist/generated/particle/Tr2ConsecutiveIntegerAttributeGenerator.js.map +1 -1
- package/dist/generated/particle/Tr2DynamicEmitter.js +2 -2
- package/dist/generated/particle/Tr2DynamicEmitter.js.map +1 -1
- package/dist/generated/particle/Tr2ElementBlendConstraint.js +3 -3
- package/dist/generated/particle/Tr2ElementBlendConstraint.js.map +1 -1
- package/dist/generated/particle/Tr2ForceSphereVolume.js +3 -3
- package/dist/generated/particle/Tr2ForceSphereVolume.js.map +1 -1
- package/dist/generated/particle/Tr2GpuParticleSystem.js +2 -2
- package/dist/generated/particle/Tr2GpuParticleSystem.js.map +1 -1
- package/dist/generated/particle/Tr2ParticleSystem.js +3 -3
- package/dist/generated/particle/Tr2ParticleSystem.js.map +1 -1
- package/dist/generated/particle/Tr2ParticleTurbulenceForce.js +5 -5
- package/dist/generated/particle/Tr2ParticleTurbulenceForce.js.map +1 -1
- package/dist/generated/particle/Tr2PlaneConstraint.js +4 -4
- package/dist/generated/particle/Tr2PlaneConstraint.js.map +1 -1
- package/dist/generated/particle/Tr2RandomDirectionAttributeGenerator.js +2 -2
- package/dist/generated/particle/Tr2RandomDirectionAttributeGenerator.js.map +1 -1
- package/dist/generated/particle/Tr2RandomIntegerAttributeGenerator.js +3 -3
- package/dist/generated/particle/Tr2RandomIntegerAttributeGenerator.js.map +1 -1
- package/dist/generated/particle/Tr2RandomUniformAttributeGenerator.js +3 -3
- package/dist/generated/particle/Tr2RandomUniformAttributeGenerator.js.map +1 -1
- package/dist/generated/particle/Tr2SphereConstraint.js +4 -4
- package/dist/generated/particle/Tr2SphereConstraint.js.map +1 -1
- package/dist/generated/particle/Tr2SphereShapeAttributeGenerator.js +4 -4
- package/dist/generated/particle/Tr2SphereShapeAttributeGenerator.js.map +1 -1
- package/dist/generated/particle/Tr2StaticEmitter.js +2 -2
- package/dist/generated/particle/Tr2StaticEmitter.js.map +1 -1
- package/dist/generated/postProcess/Tr2PostProcessRenderer.js +2 -2
- package/dist/generated/postProcess/Tr2PostProcessRenderer.js.map +1 -1
- package/dist/generated/raytracing/Tr2RaytracingGeometry.js +3 -3
- package/dist/generated/raytracing/Tr2RaytracingGeometry.js.map +1 -1
- package/dist/generated/raytracing/Tr2RaytracingManager.js +2 -2
- package/dist/generated/raytracing/Tr2RaytracingManager.js.map +1 -1
- package/dist/generated/raytracing/Tr2RaytracingMesh.js +2 -2
- package/dist/generated/raytracing/Tr2RaytracingMesh.js.map +1 -1
- package/dist/generated/raytracing/Tr2RaytracingPipelineStateManager.js +2 -2
- package/dist/generated/raytracing/Tr2RaytracingPipelineStateManager.js.map +1 -1
- package/dist/generated/renderJob/Tr2RenderNodeEffect.js +2 -2
- package/dist/generated/renderJob/Tr2RenderNodeEffect.js.map +1 -1
- package/dist/generated/renderJob/Tr2RenderNodeSprite2dScene.js +2 -2
- package/dist/generated/renderJob/Tr2RenderNodeSprite2dScene.js.map +1 -1
- package/dist/generated/renderJob/Tr2StepExecuteRenderNode.js +1 -1
- package/dist/generated/renderJob/Tr2StepExecuteRenderNode.js.map +1 -1
- package/dist/generated/renderJob/TriStepClearUav.js +2 -2
- package/dist/generated/renderJob/TriStepClearUav.js.map +1 -1
- package/dist/generated/renderJob/TriStepFilterVisibilityResults.js +1 -1
- package/dist/generated/renderJob/TriStepFilterVisibilityResults.js.map +1 -1
- package/dist/generated/renderJob/TriStepPythonCB.js +1 -1
- package/dist/generated/renderJob/TriStepPythonCB.js.map +1 -1
- package/dist/generated/renderJob/TriStepRemoteUpdate.js +1 -1
- package/dist/generated/renderJob/TriStepRemoteUpdate.js.map +1 -1
- package/dist/generated/renderJob/TriStepRenderAtlas.js +3 -3
- package/dist/generated/renderJob/TriStepRenderAtlas.js.map +1 -1
- package/dist/generated/renderJob/TriStepRenderDebug.js +2 -2
- package/dist/generated/renderJob/TriStepRenderDebug.js.map +1 -1
- package/dist/generated/renderJob/TriStepRenderEffect.js +2 -2
- package/dist/generated/renderJob/TriStepRenderEffect.js.map +1 -1
- package/dist/generated/renderJob/TriStepRenderFps.js +1 -1
- package/dist/generated/renderJob/TriStepRenderFps.js.map +1 -1
- package/dist/generated/renderJob/TriStepRenderLineGraph.js +1 -1
- package/dist/generated/renderJob/TriStepRenderLineGraph.js.map +1 -1
- package/dist/generated/renderJob/TriStepRenderObject.js +1 -1
- package/dist/generated/renderJob/TriStepRenderObject.js.map +1 -1
- package/dist/generated/renderJob/TriStepRenderPass.js +1 -1
- package/dist/generated/renderJob/TriStepRenderPass.js.map +1 -1
- package/dist/generated/renderJob/TriStepRenderScene.js +1 -1
- package/dist/generated/renderJob/TriStepRenderScene.js.map +1 -1
- package/dist/generated/renderJob/TriStepRenderSceneDebug.js +1 -1
- package/dist/generated/renderJob/TriStepRenderSceneDebug.js.map +1 -1
- package/dist/generated/renderJob/TriStepRenderTexture.js +2 -2
- package/dist/generated/renderJob/TriStepRenderTexture.js.map +1 -1
- package/dist/generated/renderJob/TriStepRunComputeShader.js +1 -1
- package/dist/generated/renderJob/TriStepRunComputeShader.js.map +1 -1
- package/dist/generated/renderJob/TriStepSetDebugRenderer.js +1 -1
- package/dist/generated/renderJob/TriStepSetDebugRenderer.js.map +1 -1
- package/dist/generated/renderJob/TriStepSetUpscalingContextID.js +1 -1
- package/dist/generated/renderJob/TriStepSetUpscalingContextID.js.map +1 -1
- package/dist/generated/renderJob/TriStepSetVariableStore.js +1 -1
- package/dist/generated/renderJob/TriStepSetVariableStore.js.map +1 -1
- package/dist/generated/renderJob/TriStepTestBlocking.js +1 -1
- package/dist/generated/renderJob/TriStepTestBlocking.js.map +1 -1
- package/dist/generated/renderJob/TriStepToggleCubemap.js +1 -1
- package/dist/generated/renderJob/TriStepToggleCubemap.js.map +1 -1
- package/dist/generated/renderJob/TriStepUpdate.js +1 -1
- package/dist/generated/renderJob/TriStepUpdate.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2d.js +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2d.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dArc.js +2 -2
- package/dist/generated/sprite2d/Tr2Sprite2dArc.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dContainer.js +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dContainer.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dContainerBase.js +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dContainerBase.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dDisplayList.js +4 -4
- package/dist/generated/sprite2d/Tr2Sprite2dDisplayList.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dFrame.js +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dFrame.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dLayer.js +2 -2
- package/dist/generated/sprite2d/Tr2Sprite2dLayer.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dLine.js +3 -3
- package/dist/generated/sprite2d/Tr2Sprite2dLine.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dLineTrace.js +3 -3
- package/dist/generated/sprite2d/Tr2Sprite2dLineTrace.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dPickingMask.js +2 -2
- package/dist/generated/sprite2d/Tr2Sprite2dPickingMask.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dPolygon.js +4 -4
- package/dist/generated/sprite2d/Tr2Sprite2dPolygon.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dRenderJob.js +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dRenderJob.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dScene.js +6 -6
- package/dist/generated/sprite2d/Tr2Sprite2dScene.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dStretch.js +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dStretch.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dStretchVertical.js +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dStretchVertical.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dTextObject.js +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dTextObject.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dTexture.js +3 -3
- package/dist/generated/sprite2d/Tr2Sprite2dTexture.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dTransform.js +2 -2
- package/dist/generated/sprite2d/Tr2Sprite2dTransform.js.map +1 -1
- package/dist/generated/sprite2d/Tr2Sprite2dVertex.js +2 -2
- package/dist/generated/sprite2d/Tr2Sprite2dVertex.js.map +1 -1
- package/dist/generated/sprite2d/Tr2SpriteObject.js +3 -3
- package/dist/generated/sprite2d/Tr2SpriteObject.js.map +1 -1
- package/dist/generated/sprite2d/Tr2SpriteObjectBase.js +2 -2
- package/dist/generated/sprite2d/Tr2SpriteObjectBase.js.map +1 -1
- package/dist/generated/sprite2d/Tr2TexturedSpriteObject.js +1 -1
- package/dist/generated/sprite2d/Tr2TexturedSpriteObject.js.map +1 -1
- package/dist/generated/trinityCore/ITr2FroxelFogSettings.js +2 -2
- package/dist/generated/trinityCore/ITr2FroxelFogSettings.js.map +1 -1
- package/dist/generated/trinityCore/ITr2ImpostorSource.js +3 -3
- package/dist/generated/trinityCore/ITr2ImpostorSource.js.map +1 -1
- package/dist/generated/trinityCore/ITr2InstanceData.js +2 -2
- package/dist/generated/trinityCore/ITr2InstanceData.js.map +1 -1
- package/dist/generated/trinityCore/Tr2AtlasTexture.js +2 -2
- package/dist/generated/trinityCore/Tr2AtlasTexture.js.map +1 -1
- package/dist/generated/trinityCore/Tr2BoundingLineSet.js +2 -2
- package/dist/generated/trinityCore/Tr2BoundingLineSet.js.map +1 -1
- package/dist/generated/trinityCore/Tr2CurveLineSet.js +5 -5
- package/dist/generated/trinityCore/Tr2CurveLineSet.js.map +1 -1
- package/dist/generated/trinityCore/Tr2DebugRenderer.js +4 -4
- package/dist/generated/trinityCore/Tr2DebugRenderer.js.map +1 -1
- package/dist/generated/trinityCore/Tr2Denoiser.js +2 -2
- package/dist/generated/trinityCore/Tr2Denoiser.js.map +1 -1
- package/dist/generated/trinityCore/Tr2GpuProfiler.js +2 -2
- package/dist/generated/trinityCore/Tr2GpuProfiler.js.map +1 -1
- package/dist/generated/trinityCore/Tr2GpuStructuredBuffer.js +2 -2
- package/dist/generated/trinityCore/Tr2GpuStructuredBuffer.js.map +1 -1
- package/dist/generated/trinityCore/Tr2GrannyPrimitiveSet.js +1 -1
- package/dist/generated/trinityCore/Tr2GrannyPrimitiveSet.js.map +1 -1
- package/dist/generated/trinityCore/Tr2HostBitmap.js +3 -3
- package/dist/generated/trinityCore/Tr2HostBitmap.js.map +1 -1
- package/dist/generated/trinityCore/Tr2ImpostorManager.js +2 -2
- package/dist/generated/trinityCore/Tr2ImpostorManager.js.map +1 -1
- package/dist/generated/trinityCore/Tr2KelvinColor.js +2 -2
- package/dist/generated/trinityCore/Tr2KelvinColor.js.map +1 -1
- package/dist/generated/trinityCore/Tr2LineGraph.js +3 -3
- package/dist/generated/trinityCore/Tr2LineGraph.js.map +1 -1
- package/dist/generated/trinityCore/Tr2LineSet.js +3 -3
- package/dist/generated/trinityCore/Tr2LineSet.js.map +1 -1
- package/dist/generated/trinityCore/Tr2ManipulationTool.js +5 -5
- package/dist/generated/trinityCore/Tr2ManipulationTool.js.map +1 -1
- package/dist/generated/trinityCore/Tr2PrimitiveScene.js +2 -2
- package/dist/generated/trinityCore/Tr2PrimitiveScene.js.map +1 -1
- package/dist/generated/trinityCore/Tr2PrimitiveSet.js +4 -4
- package/dist/generated/trinityCore/Tr2PrimitiveSet.js.map +1 -1
- package/dist/generated/trinityCore/Tr2PrimitiveText.js +3 -3
- package/dist/generated/trinityCore/Tr2PrimitiveText.js.map +1 -1
- package/dist/generated/trinityCore/Tr2ProjectBoundingBoxBracket.js +2 -2
- package/dist/generated/trinityCore/Tr2ProjectBoundingBoxBracket.js.map +1 -1
- package/dist/generated/trinityCore/Tr2QuadRenderer.js +2 -2
- package/dist/generated/trinityCore/Tr2QuadRenderer.js.map +1 -1
- package/dist/generated/trinityCore/Tr2ReflectionProbe.js +4 -4
- package/dist/generated/trinityCore/Tr2ReflectionProbe.js.map +1 -1
- package/dist/generated/trinityCore/Tr2RingBuffer.js +2 -2
- package/dist/generated/trinityCore/Tr2RingBuffer.js.map +1 -1
- package/dist/generated/trinityCore/Tr2RotationTool.js +2 -2
- package/dist/generated/trinityCore/Tr2RotationTool.js.map +1 -1
- package/dist/generated/trinityCore/Tr2SSAO.js +2 -2
- package/dist/generated/trinityCore/Tr2SSAO.js.map +1 -1
- package/dist/generated/trinityCore/Tr2SSSSS.js +3 -3
- package/dist/generated/trinityCore/Tr2SSSSS.js.map +1 -1
- package/dist/generated/trinityCore/Tr2ScalingTool.js +3 -3
- package/dist/generated/trinityCore/Tr2ScalingTool.js.map +1 -1
- package/dist/generated/trinityCore/Tr2ShadowMap.js +2 -2
- package/dist/generated/trinityCore/Tr2ShadowMap.js.map +1 -1
- package/dist/generated/trinityCore/Tr2SolidSet.js +3 -3
- package/dist/generated/trinityCore/Tr2SolidSet.js.map +1 -1
- package/dist/generated/trinityCore/Tr2StreamingBitmapSaver.js +3 -3
- package/dist/generated/trinityCore/Tr2StreamingBitmapSaver.js.map +1 -1
- package/dist/generated/trinityCore/Tr2TextureAnimation.js +2 -2
- package/dist/generated/trinityCore/Tr2TextureAnimation.js.map +1 -1
- package/dist/generated/trinityCore/Tr2TextureArray.js +3 -3
- package/dist/generated/trinityCore/Tr2TextureArray.js.map +1 -1
- package/dist/generated/trinityCore/Tr2TextureAtlas.js +3 -3
- package/dist/generated/trinityCore/Tr2TextureAtlas.js.map +1 -1
- package/dist/generated/trinityCore/Tr2TextureAtlasMan.js +2 -2
- package/dist/generated/trinityCore/Tr2TextureAtlasMan.js.map +1 -1
- package/dist/generated/trinityCore/Tr2TextureReference.js +2 -2
- package/dist/generated/trinityCore/Tr2TextureReference.js.map +1 -1
- package/dist/generated/trinityCore/Tr2Transform.js +5 -5
- package/dist/generated/trinityCore/Tr2Transform.js.map +1 -1
- package/dist/generated/trinityCore/Tr2TransientTextureReference.js +2 -2
- package/dist/generated/trinityCore/Tr2TransientTextureReference.js.map +1 -1
- package/dist/generated/trinityCore/Tr2TranslationTool.js +2 -2
- package/dist/generated/trinityCore/Tr2TranslationTool.js.map +1 -1
- package/dist/generated/trinityCore/Tr2VolumetricsRenderer.js +2 -2
- package/dist/generated/trinityCore/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/generated/trinityCore/TriLineSet.js +4 -4
- package/dist/generated/trinityCore/TriLineSet.js.map +1 -1
- package/dist/generated/trinityCore/TriRigidOrientation.js +4 -4
- package/dist/generated/trinityCore/TriRigidOrientation.js.map +1 -1
- package/dist/generated/trinityCore/index.js +0 -5
- package/dist/generated/trinityCore/index.js.map +1 -1
- package/dist/generated/utilities/Float4x3.js +2 -2
- package/dist/generated/utilities/Float4x3.js.map +1 -1
- package/dist/generated/utilities/Obb.js +3 -3
- package/dist/generated/utilities/Obb.js.map +1 -1
- package/dist/generated/utilities/Tr2MaterialBoundsAdjustment.js +2 -2
- package/dist/generated/utilities/Tr2MaterialBoundsAdjustment.js.map +1 -1
- package/dist/index.js +131 -152
- package/dist/index.js.map +1 -1
- package/dist/particle/Tr2GpuSharedEmitter.js +43 -4
- package/dist/particle/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/particle/Tr2GpuUniqueEmitter.js +7 -2
- package/dist/particle/Tr2GpuUniqueEmitter.js.map +1 -1
- package/dist/particle/Tr2ParticleAttractorForce.js +13 -3
- package/dist/particle/Tr2ParticleAttractorForce.js.map +1 -1
- package/dist/particle/Tr2ParticleDirectForce.js +10 -3
- package/dist/particle/Tr2ParticleDirectForce.js.map +1 -1
- package/dist/particle/Tr2ParticleDragForce.js +10 -3
- package/dist/particle/Tr2ParticleDragForce.js.map +1 -1
- package/dist/particle/Tr2ParticleElementData.js +2 -2
- package/dist/particle/Tr2ParticleElementData.js.map +1 -1
- package/dist/particle/Tr2ParticleElementDeclaration.js +7 -2
- package/dist/particle/Tr2ParticleElementDeclaration.js.map +1 -1
- package/dist/particle/Tr2ParticleElementDeclarationName.js +2 -2
- package/dist/particle/Tr2ParticleElementDeclarationName.js.map +1 -1
- package/dist/particle/Tr2ParticleFluidDragForce.js +13 -3
- package/dist/particle/Tr2ParticleFluidDragForce.js.map +1 -1
- package/dist/particle/Tr2ParticleSpring.js +13 -3
- package/dist/particle/Tr2ParticleSpring.js.map +1 -1
- package/dist/particle/Tr2ParticleVortexForce.js +13 -3
- 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/BlurContext.js +2 -2
- package/dist/postProcess/BlurContext.js.map +1 -1
- package/dist/postProcess/GaussianData.js +4 -4
- package/dist/postProcess/GaussianData.js.map +1 -1
- package/dist/postProcess/Tr2PPBloomEffect.js +8 -2
- package/dist/postProcess/Tr2PPBloomEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPColorCorrectionEffect.js +2 -2
- package/dist/postProcess/Tr2PPColorCorrectionEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPDepthOfFieldEffect.js +17 -1
- package/dist/postProcess/Tr2PPDepthOfFieldEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPDesaturateEffect.js +1 -1
- package/dist/postProcess/Tr2PPDesaturateEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPDynamicExposureEffect.js +1 -1
- package/dist/postProcess/Tr2PPDynamicExposureEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPEffect.js +2 -2
- package/dist/postProcess/Tr2PPEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPFadeEffect.js +2 -2
- package/dist/postProcess/Tr2PPFadeEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPFilmGrainEffect.js +1 -1
- package/dist/postProcess/Tr2PPFilmGrainEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPFogEffect.js +4 -4
- package/dist/postProcess/Tr2PPFogEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPGenericEffect.js +8 -1
- package/dist/postProcess/Tr2PPGenericEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPGodRaysEffect.js +2 -2
- package/dist/postProcess/Tr2PPGodRaysEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPLutEffect.js +1 -1
- package/dist/postProcess/Tr2PPLutEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPSignalLossEffect.js +1 -1
- package/dist/postProcess/Tr2PPSignalLossEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPTaaEffect.js +11 -1
- package/dist/postProcess/Tr2PPTaaEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPTonemappingEffect.js +6 -1
- package/dist/postProcess/Tr2PPTonemappingEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPVignetteEffect.js +3 -3
- package/dist/postProcess/Tr2PPVignetteEffect.js.map +1 -1
- package/dist/postProcess/Tr2PostProcess.js +7 -2
- package/dist/postProcess/Tr2PostProcess.js.map +1 -1
- package/dist/postProcess/Tr2PostProcess2.js +149 -2
- package/dist/postProcess/Tr2PostProcess2.js.map +1 -1
- package/dist/postProcess/Tr2PostProcessAttributes.js +94 -5
- package/dist/postProcess/Tr2PostProcessAttributes.js.map +1 -1
- package/dist/renderJob/Tr2RenderJobs.js +36 -2
- package/dist/renderJob/Tr2RenderJobs.js.map +1 -1
- package/dist/renderJob/TriRenderJob.js +61 -2
- package/dist/renderJob/TriRenderJob.js.map +1 -1
- package/dist/renderJob/TriRenderStep.js +22 -2
- package/dist/renderJob/TriRenderStep.js.map +1 -1
- package/dist/renderJob/TriStepClear.js +20 -2
- package/dist/renderJob/TriStepClear.js.map +1 -1
- package/dist/renderJob/TriStepCopyRenderTarget.js +52 -1
- package/dist/renderJob/TriStepCopyRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepEnableWireframeMode.js +10 -1
- package/dist/renderJob/TriStepEnableWireframeMode.js.map +1 -1
- package/dist/renderJob/TriStepGenerateMipMaps.js +10 -1
- package/dist/renderJob/TriStepGenerateMipMaps.js.map +1 -1
- package/dist/renderJob/TriStepPopDepthStencil.js +7 -1
- package/dist/renderJob/TriStepPopDepthStencil.js.map +1 -1
- package/dist/renderJob/TriStepPopProjection.js +7 -1
- package/dist/renderJob/TriStepPopProjection.js.map +1 -1
- package/dist/renderJob/TriStepPopRenderTarget.js +13 -1
- package/dist/renderJob/TriStepPopRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepPopViewTransform.js +7 -1
- package/dist/renderJob/TriStepPopViewTransform.js.map +1 -1
- package/dist/renderJob/TriStepPopViewport.js +7 -1
- package/dist/renderJob/TriStepPopViewport.js.map +1 -1
- package/dist/renderJob/TriStepPresentSwapChain.js +13 -1
- package/dist/renderJob/TriStepPresentSwapChain.js.map +1 -1
- package/dist/renderJob/TriStepPushDepthStencil.js +18 -1
- package/dist/renderJob/TriStepPushDepthStencil.js.map +1 -1
- package/dist/renderJob/TriStepPushProjection.js +7 -1
- package/dist/renderJob/TriStepPushProjection.js.map +1 -1
- package/dist/renderJob/TriStepPushRenderTarget.js +10 -1
- package/dist/renderJob/TriStepPushRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepPushViewTransform.js +7 -1
- package/dist/renderJob/TriStepPushViewTransform.js.map +1 -1
- package/dist/renderJob/TriStepPushViewport.js +7 -1
- package/dist/renderJob/TriStepPushViewport.js.map +1 -1
- package/dist/renderJob/TriStepRemoteSync.js +18 -1
- package/dist/renderJob/TriStepRemoteSync.js.map +1 -1
- package/dist/renderJob/TriStepResolve.js +14 -1
- package/dist/renderJob/TriStepResolve.js.map +1 -1
- package/dist/renderJob/TriStepRunJob.js +13 -1
- package/dist/renderJob/TriStepRunJob.js.map +1 -1
- package/dist/renderJob/TriStepSetDepthStencil.js +13 -1
- package/dist/renderJob/TriStepSetDepthStencil.js.map +1 -1
- package/dist/renderJob/TriStepSetProjection.js +15 -1
- package/dist/renderJob/TriStepSetProjection.js.map +1 -1
- package/dist/renderJob/TriStepSetRenderState.js +22 -2
- package/dist/renderJob/TriStepSetRenderState.js.map +1 -1
- package/dist/renderJob/TriStepSetRenderTarget.js +13 -1
- package/dist/renderJob/TriStepSetRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepSetStdRndStates.js +19 -1
- package/dist/renderJob/TriStepSetStdRndStates.js.map +1 -1
- package/dist/renderJob/TriStepSetView.js +30 -3
- package/dist/renderJob/TriStepSetView.js.map +1 -1
- package/dist/renderJob/TriStepSetViewport.js +18 -1
- package/dist/renderJob/TriStepSetViewport.js.map +1 -1
- package/dist/renderJob/TriStepSetVisualizationMode.js +20 -1
- package/dist/renderJob/TriStepSetVisualizationMode.js.map +1 -1
- package/dist/shader/Tr2Effect.js +219 -4
- package/dist/shader/Tr2Effect.js.map +1 -1
- package/dist/shader/Tr2Material.js +43 -2
- 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 +9 -2
- package/dist/shader/material/Tr2EffectLibraryParameters.js.map +1 -1
- package/dist/shader/material/Tr2EffectParam.js +2 -2
- package/dist/shader/material/Tr2EffectParam.js.map +1 -1
- package/dist/shader/material/Tr2EffectPassParameters.js +25 -2
- package/dist/shader/material/Tr2EffectPassParameters.js.map +1 -1
- package/dist/shader/material/Tr2EffectTechniqueInputs.js +2 -2
- package/dist/shader/material/Tr2EffectTechniqueInputs.js.map +1 -1
- package/dist/shader/material/Tr2MaterialStageInput.js +17 -2
- package/dist/shader/material/Tr2MaterialStageInput.js.map +1 -1
- package/dist/shader/material/Tr2SharedConstantBuffers.js +2 -2
- package/dist/shader/material/Tr2SharedConstantBuffers.js.map +1 -1
- package/dist/shader/parameter/CjsParameter.js +95 -1
- 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/Tr2ConstantEffectParameter.js +2 -2
- package/dist/shader/parameter/Tr2ConstantEffectParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2FloatParameter.js +54 -1
- package/dist/shader/parameter/Tr2FloatParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2GeometryBufferParameter.js +41 -2
- package/dist/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Matrix4Parameter.js +56 -2
- package/dist/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
- package/dist/shader/parameter/Tr2RuntimeTextureParameter.js +55 -1
- package/dist/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2TextureAnimationParameter.js +36 -1
- package/dist/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Vector2Parameter.js +89 -3
- package/dist/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Vector3Parameter.js +98 -3
- package/dist/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Vector4Parameter.js +108 -3
- package/dist/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
- package/dist/shader/parameter/TriFloatArrayParameter.js +27 -1
- package/dist/shader/parameter/TriFloatArrayParameter.js.map +1 -1
- package/dist/shader/parameter/TriTextureParameter.js +86 -2
- package/dist/shader/parameter/TriTextureParameter.js.map +1 -1
- package/dist/shader/parameter/TriTransformParameter.js +29 -6
- package/dist/shader/parameter/TriTransformParameter.js.map +1 -1
- package/dist/shader/parameter/TriVariableParameter.js +40 -2
- package/dist/shader/parameter/TriVariableParameter.js.map +1 -1
- package/dist/shader/parameter/TriVector4.js +5 -3
- package/dist/shader/parameter/TriVector4.js.map +1 -1
- package/dist/shader/reflection/Tr2ShaderOption.js +8 -3
- package/dist/shader/reflection/Tr2ShaderOption.js.map +1 -1
- package/dist/shader/sampler/Tr2SamplerOverride.js +2 -2
- package/dist/shader/sampler/Tr2SamplerOverride.js.map +1 -1
- package/dist/shader/sampler/Tr2SamplerOverrideData.js +2 -2
- package/dist/shader/sampler/Tr2SamplerOverrideData.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/Tr2DataTextureManager.js +2 -2
- package/dist/shader/support/Tr2DataTextureManager.js.map +1 -1
- package/dist/shader/support/Tr2EffectStateManager.js +2 -2
- package/dist/shader/support/Tr2EffectStateManager.js.map +1 -1
- package/dist/shader/support/Tr2ShaderBuffer.js +17 -2
- package/dist/shader/support/Tr2ShaderBuffer.js.map +1 -1
- package/dist/sprite2d/Tr2Sprite2dClipRect.js +2 -2
- package/dist/sprite2d/Tr2Sprite2dClipRect.js.map +1 -1
- package/dist/sprite2d/Tr2Sprite2dD3DVertex.js +2 -2
- package/dist/sprite2d/Tr2Sprite2dD3DVertex.js.map +1 -1
- package/dist/sprite2d/Tr2Sprite2dLineTraceVertex.js +4 -4
- package/dist/sprite2d/Tr2Sprite2dLineTraceVertex.js.map +1 -1
- package/dist/sprite2d/Tr2Sprite2dTriangle.js +2 -2
- package/dist/sprite2d/Tr2Sprite2dTriangle.js.map +1 -1
- package/dist/sprite2d/Tr2Sprite2dVertexBase.js +5 -5
- package/dist/sprite2d/Tr2Sprite2dVertexBase.js.map +1 -1
- package/dist/trinityCore/CjsBatchManager.js +67 -1
- package/dist/trinityCore/CjsBatchManager.js.map +1 -1
- package/dist/trinityCore/GrannyBoneOffset.js +56 -5
- package/dist/trinityCore/GrannyBoneOffset.js.map +1 -1
- package/dist/trinityCore/ITriRenderBatchAccumulator.js +90 -2
- package/dist/trinityCore/ITriRenderBatchAccumulator.js.map +1 -1
- package/dist/trinityCore/Tr2DepthStencil.js +3 -3
- package/dist/trinityCore/Tr2DepthStencil.js.map +1 -1
- package/dist/trinityCore/Tr2DirectInstanceData.js +22 -3
- package/dist/trinityCore/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinityCore/Tr2ExpressionTermInfo.js +23 -2
- package/dist/trinityCore/Tr2ExpressionTermInfo.js.map +1 -1
- package/dist/trinityCore/Tr2GpuBuffer.js +8 -3
- package/dist/trinityCore/Tr2GpuBuffer.js.map +1 -1
- package/dist/{generated/trinityCore → trinityCore}/Tr2GrannyAnimation.js +143 -14
- package/dist/trinityCore/Tr2GrannyAnimation.js.map +1 -0
- package/dist/trinityCore/Tr2InstancedMesh.js +54 -2
- package/dist/trinityCore/Tr2InstancedMesh.js.map +1 -1
- package/dist/trinityCore/Tr2MaterialParameterStore.js +7 -2
- package/dist/trinityCore/Tr2MaterialParameterStore.js.map +1 -1
- package/dist/trinityCore/Tr2Mesh.js +38 -1
- package/dist/trinityCore/Tr2Mesh.js.map +1 -1
- package/dist/trinityCore/Tr2MeshArea.js +80 -2
- package/dist/trinityCore/Tr2MeshArea.js.map +1 -1
- package/dist/trinityCore/Tr2MeshBase.js +101 -5
- 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/Tr2PrimaryRenderContext.js +2 -2
- package/dist/trinityCore/Tr2PrimaryRenderContext.js.map +1 -1
- package/dist/trinityCore/Tr2RenderBatch.js +139 -2
- package/dist/trinityCore/Tr2RenderBatch.js.map +1 -1
- package/dist/trinityCore/Tr2RenderContext.js +275 -4
- package/dist/trinityCore/Tr2RenderContext.js.map +1 -1
- package/dist/trinityCore/Tr2RenderTarget.js +3 -3
- package/dist/trinityCore/Tr2RenderTarget.js.map +1 -1
- package/dist/trinityCore/Tr2RuntimeGpuBuffer.js +2 -2
- package/dist/trinityCore/Tr2RuntimeGpuBuffer.js.map +1 -1
- package/dist/trinityCore/Tr2RuntimeInstanceData.js +182 -3
- package/dist/trinityCore/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinityCore/Tr2SerializedMorphAnimation.js +2 -2
- package/dist/trinityCore/Tr2SerializedMorphAnimation.js.map +1 -1
- package/dist/trinityCore/Tr2ShLightingManager.js +397 -0
- package/dist/trinityCore/Tr2ShLightingManager.js.map +1 -0
- package/dist/trinityCore/Tr2SwapChain.js +2 -2
- package/dist/trinityCore/Tr2SwapChain.js.map +1 -1
- package/dist/trinityCore/Tr2VariableStore.js +28 -2
- package/dist/trinityCore/Tr2VariableStore.js.map +1 -1
- package/dist/trinityCore/Tr2VisibilityResults.js +9 -4
- package/dist/trinityCore/Tr2VisibilityResults.js.map +1 -1
- package/dist/trinityCore/TriDevice.js +8 -3
- package/dist/trinityCore/TriDevice.js.map +1 -1
- package/dist/trinityCore/TriFloat.js +2 -2
- package/dist/trinityCore/TriFloat.js.map +1 -1
- package/dist/trinityCore/TriFrustum.js +24 -17
- package/dist/trinityCore/TriFrustum.js.map +1 -1
- package/dist/trinityCore/TriFrustumOrtho.js +2 -2
- package/dist/trinityCore/TriFrustumOrtho.js.map +1 -1
- package/dist/trinityCore/TriObserverLocal.js +46 -3
- package/dist/trinityCore/TriObserverLocal.js.map +1 -1
- package/dist/trinityCore/TriProjection.js +88 -34
- package/dist/trinityCore/TriProjection.js.map +1 -1
- package/dist/trinityCore/TriRect.js +14 -2
- package/dist/trinityCore/TriRect.js.map +1 -1
- package/dist/trinityCore/TriRenderBatchAccumulator.js +48 -2
- package/dist/trinityCore/TriRenderBatchAccumulator.js.map +1 -1
- package/dist/trinityCore/TriRenderBatchMap.js +47 -1
- package/dist/trinityCore/TriRenderBatchMap.js.map +1 -1
- package/dist/trinityCore/TriSettings.js +40 -2
- package/dist/trinityCore/TriSettings.js.map +1 -1
- package/dist/trinityCore/TriTorque.js +4 -4
- package/dist/trinityCore/TriTorque.js.map +1 -1
- package/dist/trinityCore/TriVariable.js +32 -2
- package/dist/trinityCore/TriVariable.js.map +1 -1
- package/dist/trinityCore/TriView.js +19 -4
- package/dist/trinityCore/TriView.js.map +1 -1
- package/dist/trinityCore/TriViewport.js +14 -2
- package/dist/trinityCore/TriViewport.js.map +1 -1
- package/dist/trinityCore/{Tr2BindingVector3.js → binding/Tr2BindingVector3.js} +4 -4
- 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} +31 -7
- 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 -2
- 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/CjsPerObjectLayouts.js +931 -0
- package/dist/trinityCore/rawData/CjsPerObjectLayouts.js.map +1 -0
- package/dist/trinityCore/rawData/RawData.js +434 -0
- package/dist/trinityCore/rawData/RawData.js.map +1 -0
- package/dist/trinityCore/rawData/TriPoolAllocator.js +357 -0
- package/dist/trinityCore/rawData/TriPoolAllocator.js.map +1 -0
- package/dist/ui/Tr2PresentParameters.js +2 -2
- package/dist/ui/Tr2PresentParameters.js.map +1 -1
- package/dist/utilities/Range.js +55 -2
- 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 +33 -26
- 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 -109
- 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 +0 -72
- 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 +0 -104
- 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/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 +0 -98
- package/dist/eve/EveSpotlightSet.js.map +0 -1
- package/dist/eve/EveSpriteLight.js.map +0 -1
- package/dist/eve/EveSpriteLineSet.js +0 -74
- package/dist/eve/EveSpriteLineSet.js.map +0 -1
- package/dist/eve/EveSpriteLineSetItem.js.map +0 -1
- package/dist/eve/EveSpriteSet.js +0 -115
- 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 +0 -173
- 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 +0 -47
- 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 +0 -129
- 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 +0 -94
- 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/{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":"EveChildInstancedMeshes.js","sources":["../../../../src/eve/child/EveChildInstancedMeshes.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildInstancedMeshes.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildInstancedMeshes.cpp\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildInstancedMeshes_Blue.cpp\r\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\r\nimport { CjsModel } from \"@carbonenginejs/core-types/model\";\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/core-types/schema\";\r\nimport { EveEntity } from \"../../generated/eve/EveEntity.js\";\r\nimport { EveComponentType } from \"../EveComponentTypes.js\";\r\n\r\n\r\n@type.define({ className: \"EveChildInstancedMeshArea\", family: \"eve/child\" })\r\nexport class EveChildInstancedMeshArea extends CjsModel\r\n{\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n batchType = 0;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n areaIndex = 0;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n areaCount = 1;\r\n\r\n @io.read\r\n @type.float32\r\n effectHash = 0;\r\n}\r\n\r\n\r\n@type.define({ className: \"EveChildInstancedMeshInstance\", family: \"eve/child\" })\r\nexport class EveChildInstancedMeshInstance extends CjsModel\r\n{\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.mat4\r\n transform = mat4.create();\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n sphereIndex = 0;\r\n}\r\n\r\n\r\n@type.define({ className: \"EveChildInstancedMesh\", family: \"eve/child\" })\r\nexport class EveChildInstancedMesh extends CjsModel\r\n{\r\n @io.persist\r\n @type.string\r\n geometryPath = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n castsShadow = false;\r\n\r\n @io.persist\r\n @type.int32\r\n reflectionMode = 3;\r\n\r\n @io.persist\r\n @type.uint32\r\n meshIndex = 0;\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMeshArea\")\r\n areas = [];\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMeshInstance\")\r\n instances = [];\r\n\r\n @io.persist\r\n @type.string\r\n sofHullName = \"\";\r\n\r\n @io.persist\r\n @type.string\r\n sofLocatorSetName = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n #geometry = null;\r\n\r\n GetGeometryResource()\r\n {\r\n return this.#geometry;\r\n }\r\n\r\n SetGeometryResource(resource)\r\n {\r\n this.#geometry = resource ?? null;\r\n }\r\n}\r\n\r\n\r\n@type.define({ className: \"EveChildInstancedMeshes\", family: \"eve/child\" })\r\nexport class EveChildInstancedMeshes extends EveEntity\r\n{\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.read\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @io.read\r\n @type.boolean\r\n hasUpdated = false;\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMesh\")\r\n meshes = [];\r\n\r\n #revision = 0;\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UpdateVisibility()\r\n {\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(renderables = [])\r\n {\r\n return renderables;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphere()\r\n {\r\n return false;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSyncronous(_updateContext, params)\r\n {\r\n if (params?.localToWorldTransform?.length === 16)\r\n {\r\n mat4.copy(this.worldTransform, params.localToWorldTransform);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UpdateAsyncronous()\r\n {\r\n this.hasUpdated = true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetLocalToWorldTransform(out = null)\r\n {\r\n if (out)\r\n {\r\n return mat4.copy(out, this.worldTransform);\r\n }\r\n return this.worldTransform;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n Setup()\r\n {\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n ChangeLOD()\r\n {\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetOrigin()\r\n {\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n IsAlwaysOn()\r\n {\r\n return false;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n for (const mesh of this.meshes)\r\n {\r\n for (const area of mesh.areas)\r\n {\r\n area.effect?.SetOption?.(name, value);\r\n area.effectHash = EveChildInstancedMeshes.#GetEffectHash(area.effect);\r\n }\r\n }\r\n this.#revision++;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n AddMesh(\r\n geometryPath,\r\n castsShadow,\r\n reflectionMode,\r\n meshIndex,\r\n areas,\r\n instanceTransforms,\r\n sofHullName = \"\",\r\n sofLocatorSetName = \"\"\r\n )\r\n {\r\n const sourceAreas = Array.from(areas ?? []);\r\n const sourceTransforms = Array.from(instanceTransforms ?? []);\r\n if (!sourceAreas.length || !sourceTransforms.length)\r\n {\r\n return false;\r\n }\r\n\r\n const normalizedAreas = sourceAreas.map(area => EveChildInstancedMeshes.#CreateArea(area));\r\n const instances = sourceTransforms.map((transform, sphereIndex) =>\r\n {\r\n if (!transform || transform.length !== 16)\r\n {\r\n throw new TypeError(\"EveChildInstancedMeshes instance transforms must contain 16 values\");\r\n }\r\n const instance = new EveChildInstancedMeshInstance();\r\n mat4.copy(instance.transform, transform);\r\n instance.sphereIndex = sphereIndex;\r\n return instance;\r\n });\r\n\r\n const mesh = new EveChildInstancedMesh();\r\n mesh.geometryPath = String(geometryPath ?? \"\");\r\n mesh.castsShadow = !!castsShadow;\r\n mesh.reflectionMode = reflectionMode === undefined ? 3 : Number(reflectionMode) | 0;\r\n mesh.meshIndex = Number(meshIndex) >>> 0;\r\n mesh.areas = normalizedAreas;\r\n mesh.instances = instances;\r\n mesh.sofHullName = String(sofHullName ?? \"\");\r\n mesh.sofLocatorSetName = String(sofLocatorSetName ?? \"\");\r\n this.meshes.push(mesh);\r\n this.#revision++;\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n Clear()\r\n {\r\n this.meshes.length = 0;\r\n this.hasUpdated = false;\r\n this.#revision++;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetSofSourceLocator(areaId)\r\n {\r\n const value = Number(areaId) >>> 0;\r\n const mesh = this.meshes[value >>> 16];\r\n if (!mesh || !mesh.sofHullName)\r\n {\r\n return null;\r\n }\r\n return [mesh.sofHullName, mesh.sofLocatorSetName, value & 0xffff];\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetMeshCount()\r\n {\r\n return this.meshes.length;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n GetMeshInfo(meshId)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n return [\r\n mesh.geometryPath,\r\n mesh.GetGeometryResource(),\r\n mesh.meshIndex,\r\n mesh.castsShadow,\r\n mesh.reflectionMode,\r\n mesh.areas.length,\r\n mesh.instances.length\r\n ];\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n GetAreaInfo(meshId, areaId)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n const index = Number(areaId) >>> 0;\r\n if (index >= mesh.areas.length)\r\n {\r\n throw new RangeError(`EveChildInstancedMeshes area index ${index} is out of range`);\r\n }\r\n const area = mesh.areas[index];\r\n return [area.effect, area.batchType, area.areaIndex, area.areaCount];\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n GetMeshDisplay(meshId)\r\n {\r\n return EveChildInstancedMeshes.#GetMesh(this.meshes, meshId).display;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetMeshDisplay(meshId, display)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n const next = !!display;\r\n if (mesh.display !== next)\r\n {\r\n mesh.display = next;\r\n this.#revision++;\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetGeometryResource(meshId, geometry)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n if (mesh.GetGeometryResource() !== geometry)\r\n {\r\n mesh.SetGeometryResource(geometry);\r\n this.#revision++;\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n GetMeshData(meshId)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n return EveChildInstancedMeshes.#CloneMesh(mesh);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetRevision()\r\n {\r\n return this.#revision;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::RegisterComponents (cpp:36-43):\r\n * unconditional InstancedMeshProvider + ShadowCaster leaf\r\n * self-registration. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.InstancedMeshProvider, this);\r\n registry.RegisterComponent(EveComponentType.ShadowCaster, this);\r\n }\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::UnRegisterComponents (cpp:45-48) only\r\n * calls UnregisterFromMeshManager (GPU mesh-manager handle cleanup,\r\n * unported); own components were already removed by EveEntity::UnRegister\r\n * (EveEntity.cpp:90). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"UnregisterFromMeshManager releases GPU mesh-group/sphere/per-object handles owned by the engine's EveInstancedMeshManager.\")\r\n UnRegisterComponents()\r\n {\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::AddMeshesToManager (cpp:472-535)\r\n * uploads instance data to the engine-owned EveInstancedMeshManager;\r\n * presence satisfies the \"InstancedMeshProvider\" duck contract. */\r\n @carbon.method\r\n @impl.notImplemented\r\n AddMeshesToManager(..._args)\r\n {\r\n throw new Error(\"EveChildInstancedMeshes.AddMeshesToManager is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::IsCastingShadow (cpp:73-76) always\r\n * returns false (instanced shadows cull per instance group); presence\r\n * satisfies the \"ShadowCaster\" duck contract. */\r\n @carbon.method\r\n @impl.implemented\r\n IsCastingShadow(..._args)\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::GetShadowBatches (cpp:78-80) is an\r\n * intentional no-op (the instanced mesh manager emits the batches). */\r\n @carbon.method\r\n @impl.noop\r\n GetShadowBatches(..._args)\r\n {\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::GetShadowPerObjectData (cpp:82-85)\r\n * returns null (per-object data flows through the mesh manager). */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowPerObjectData(..._args)\r\n {\r\n return null;\r\n }\r\n\r\n static #GetMesh(meshes, meshId)\r\n {\r\n const index = Number(meshId) >>> 0;\r\n if (index >= meshes.length)\r\n {\r\n throw new RangeError(`EveChildInstancedMeshes mesh index ${index} is out of range`);\r\n }\r\n return meshes[index];\r\n }\r\n\r\n static #CreateArea(value)\r\n {\r\n const source = value ?? {};\r\n const area = new EveChildInstancedMeshArea();\r\n area.effect = source.effect ?? null;\r\n area.batchType = Number(source.batchType) >>> 0;\r\n area.areaIndex = Number(source.areaIndex) >>> 0;\r\n area.areaCount = source.areaCount === undefined ? 1 : Number(source.areaCount) >>> 0;\r\n area.effectHash = EveChildInstancedMeshes.#GetEffectHash(area.effect);\r\n return area;\r\n }\r\n\r\n static #CloneMesh(mesh)\r\n {\r\n return {\r\n geometryPath: mesh.geometryPath,\r\n geometry: mesh.GetGeometryResource(),\r\n castsShadow: mesh.castsShadow,\r\n reflectionMode: mesh.reflectionMode,\r\n meshIndex: mesh.meshIndex,\r\n areas: mesh.areas.map(area => ({ ...area })),\r\n instances: mesh.instances.map(instance => ({\r\n transform: mat4.clone(instance.transform),\r\n sphereIndex: instance.sphereIndex\r\n })),\r\n sofHullName: mesh.sofHullName,\r\n sofLocatorSetName: mesh.sofLocatorSetName,\r\n display: mesh.display\r\n };\r\n }\r\n\r\n static #GetEffectHash(effect)\r\n {\r\n const hash = effect?.GetHashValue?.() ?? effect?.hash ?? 0;\r\n return Number(hash) || 0;\r\n }\r\n\r\n}\r\n"],"names":["_EveChildInstancedMes","EveChildInstancedMeshArea","CjsModel","e","_init_effect","_init_extra_effect","_init_batchType","_init_extra_batchType","_init_areaIndex","_init_extra_areaIndex","_init_areaCount","_init_extra_areaCount","_init_effectHash","_init_extra_effectHash","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","objectRef","uint32","read","float32","constructor","args","effect","batchType","areaIndex","areaCount","effectHash","_EveChildInstancedMes2","EveChildInstancedMeshInstance","_init_transform","_init_extra_transform","_init_sphereIndex","_init_extra_sphereIndex","_initClass2","mat4","transform","create","sphereIndex","_EveChildInstancedMes3","EveChildInstancedMesh","_init_geometryPath","_init_extra_geometryPath","_init_castsShadow","_init_extra_castsShadow","_init_reflectionMode","_init_extra_reflectionMode","_init_meshIndex","_init_extra_meshIndex","_init_areas","_init_extra_areas","_init_instances","_init_extra_instances","_init_sofHullName","_init_extra_sofHullName","_init_sofLocatorSetName","_init_extra_sofLocatorSetName","_init_display","_init_extra_display","_initClass3","string","boolean","int32","list","geometryPath","castsShadow","reflectionMode","meshIndex","areas","instances","sofHullName","sofLocatorSetName","display","GetGeometryResource","SetGeometryResource","resource","_EveChildInstancedMes4","_identity","EveChildInstancedMeshes","EveEntity","_init_name","_init_extra_name","_init_worldTransform","_init_extra_worldTransform","_init_hasUpdated","_init_extra_hasUpdated","_init_meshes","_init_extra_meshes","_initProto","_initClass4","carbon","method","impl","implemented","adapted","reason","notImplemented","noop","name","worldTransform","hasUpdated","meshes","GetName","SetName","String","UpdateVisibility","GetRenderables","renderables","GetBoundingSphere","UpdateSyncronous","_updateContext","params","localToWorldTransform","length","copy","UpdateAsyncronous","GetLocalToWorldTransform","out","Setup","ChangeLOD","SetOrigin","IsAlwaysOn","SetShaderOption","value","mesh","area","SetOption","AddMesh","instanceTransforms","sourceAreas","Array","from","sourceTransforms","normalizedAreas","map","TypeError","instance","undefined","Number","push","Clear","GetSofSourceLocator","areaId","GetMeshCount","GetMeshInfo","meshId","GetAreaInfo","index","RangeError","GetMeshDisplay","SetMeshDisplay","next","geometry","GetMeshData","GetRevision","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","InstancedMeshProvider","ShadowCaster","UnRegisterComponents","AddMeshesToManager","_args","Error","IsCastingShadow","GetShadowBatches","GetShadowPerObjectData","#GetMesh","#CreateArea","source","#CloneMesh","clone","#GetEffectHash","hash","GetHashValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveChildInstancedMeshes.js","sources":["../../../../src/eve/child/EveChildInstancedMeshes.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildInstancedMeshes.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildInstancedMeshes.cpp\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildInstancedMeshes_Blue.cpp\r\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { EveEntity } from \"../EveEntity.js\";\r\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\r\nimport { RawData } from \"../../trinityCore/rawData/RawData.js\";\r\n\r\n/** Carbon EveInstancedMeshManager::InstanceFlags (EveInstancedMeshManager.h:\r\n * 13-26, cpp:998-1048): a uint32 bitfield - bit (1 << batchType) per present\r\n * batch type, CASTS_SHADOW = 1 << 30, RENDER_IN_REFLECTION = 1 << 31. */\r\nexport const INSTANCE_FLAG_CASTS_SHADOW = 0x40000000;\r\nexport const INSTANCE_FLAG_RENDER_IN_REFLECTION = 0x80000000;\r\n\r\nconst POSITION_SCRATCH = vec3.create();\r\n\r\n\r\n/**\r\n * One shader area of an instanced mesh: the effect, its batch type, the area\r\n * range within the mesh, its cached effect hash and the mesh-group handle it is\r\n * registered under.\r\n */\r\n@type.define({ className: \"EveChildInstancedMeshArea\", family: \"eve/child\" })\r\nexport class EveChildInstancedMeshArea extends CjsModel\r\n{\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n batchType = 0;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n areaIndex = 0;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n areaCount = 1;\r\n\r\n @io.read\r\n @type.float32\r\n effectHash = 0;\r\n\r\n /** Carbon MeshArea::meshGroupHandle (EveChildInstancedMeshes.h:72) - the\r\n * manager registration handle; runtime state, not persisted. Truthy handles\r\n * carry .owner for the removal routing (EveInstancedMeshManager.h:41-72). */\r\n meshGroupHandle = null;\r\n}\r\n\r\n\r\n/**\r\n * A single placement of an instanced mesh: its transform and the index of its\r\n * cull sphere in the owning mesh's instance sphere list.\r\n */\r\n@type.define({ className: \"EveChildInstancedMeshInstance\", family: \"eve/child\" })\r\nexport class EveChildInstancedMeshInstance extends CjsModel\r\n{\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.mat4\r\n transform = mat4.create();\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n sphereIndex = 0;\r\n}\r\n\r\n\r\n/**\r\n * One geometry-and-areas record inside an EveChildInstancedMeshes child, holding\r\n * its instance placements, per-instance world cull spheres, instance flags and\r\n * manager registration handles.\r\n */\r\n@type.define({ className: \"EveChildInstancedMesh\", family: \"eve/child\" })\r\nexport class EveChildInstancedMesh extends CjsModel\r\n{\r\n @io.persist\r\n @type.string\r\n geometryPath = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n castsShadow = false;\r\n\r\n @io.persist\r\n @type.int32\r\n reflectionMode = 3;\r\n\r\n @io.persist\r\n @type.uint32\r\n meshIndex = 0;\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMeshArea\")\r\n areas = [];\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMeshInstance\")\r\n instances = [];\r\n\r\n @io.persist\r\n @type.string\r\n sofHullName = \"\";\r\n\r\n @io.persist\r\n @type.string\r\n sofLocatorSetName = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n /** Carbon Mesh::sphereHandle (h:110) - manager registration handle;\r\n * runtime state, not persisted. */\r\n sphereHandle = null;\r\n\r\n /** Carbon Mesh::worldBoundingSphere - stamped by UpdateAsyncronous\r\n * (cpp:270); the TriFrustum sphere-duck shape. */\r\n worldBoundingSphere = { center: vec3.create(), radius: 0 };\r\n\r\n /** Carbon Mesh::instanceSpheres - per-instance world cull spheres, stamped\r\n * by UpdateAsyncronous (cpp:259-269). */\r\n instanceSpheres = [];\r\n\r\n /** Carbon Mesh::flags (InstanceFlags uint32) - batch-type bits stamped at\r\n * AddMesh (cpp:422-425), CASTS_SHADOW at AddMesh (cpp:418-421),\r\n * RENDER_IN_REFLECTION refreshed each async pass (cpp:251). */\r\n flags = 0;\r\n\r\n #geometry = null;\r\n\r\n /**\r\n * Returns the geometry resource backing this mesh, or null while none has been\r\n * assigned; the mesh does not register with the manager until it is present\r\n * and good.\r\n */\r\n GetGeometryResource()\r\n {\r\n return this.#geometry;\r\n }\r\n\r\n /**\r\n * Assigns the geometry resource this mesh renders from; a nullish value clears\r\n * it. Runtime state, deliberately not persisted.\r\n */\r\n SetGeometryResource(resource)\r\n {\r\n this.#geometry = resource ?? null;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Space-object child that hands batches of instanced meshes to the engine's\r\n * instanced mesh manager, owning their registration handles, instance flags and\r\n * world cull bounds.\r\n */\r\n@type.define({ className: \"EveChildInstancedMeshes\", family: \"eve/child\" })\r\nexport class EveChildInstancedMeshes extends EveEntity\r\n{\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.read\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @io.read\r\n @type.boolean\r\n hasUpdated = false;\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMesh\")\r\n meshes = [];\r\n\r\n #revision = 0;\r\n\r\n /** Carbon m_perObjectDataHandle (h:143) - manager registration handle. */\r\n #perObjectDataHandle = null;\r\n\r\n /**\r\n * Carbon m_perObjectData (EveSpacePerObjectData): the PERSISTENT per-instance\r\n * record the mesh manager uploads into its structured buffer.\r\n */\r\n #perObjectData = RawData.create(\"EveSpacePerObjectData\");\r\n\r\n static #inverseScratch = mat4.create();\n\n /** EVE_SPACEOBJECT_CUSTOWMASK_MAX (EveSpaceObject2.h:49). */\n static CUSTOM_MASK_COUNT = 2;\r\n\r\n /** Carbon m_allRegistered (h:147) - the AddMeshesToManager retry latch:\r\n * set optimistically each pass, cleared by ANY not-ready mesh/area so the\r\n * per-frame CollectMeshes retries until geometry streams in. */\r\n #allRegistered = false;\r\n\r\n /**\r\n * The authored name, persisted with the child and used to identify it in the\r\n * parent graph.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Sets the authored child name, coercing nullish to the empty string. */\r\n @carbon.method\r\n @impl.implemented\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /**\r\n * Carbon EveChildInstancedMeshes::UpdateVisibility (cpp:183-186) only caches\r\n * the frame's camera frustum for later use; the JS port has no consumer for\r\n * that cache, so the frame hook does nothing.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n UpdateVisibility()\r\n {\r\n }\r\n\r\n /**\r\n * Carbon EveChildInstancedMeshes::GetRenderables (cpp:188-190) collects\r\n * nothing: the instanced mesh manager emits the draws, so the accumulator\r\n * comes back unchanged.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(renderables = [])\r\n {\r\n return renderables;\r\n }\r\n\r\n /**\r\n * Carbon EveChildInstancedMeshes::GetBoundingSphere (cpp:192-195) always\r\n * returns false - the child publishes no bounds of its own, because each mesh\r\n * registers its own sphere group with the manager.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphere()\r\n {\r\n return false;\r\n }\r\n\r\n /**\r\n * Carbon EveChildInstancedMeshes::UpdateAsyncronous (cpp:204-238): the\r\n * per-instance record is this child's own transforms plus the hull values it\r\n * inherits, flattened into ONE struct - EveSpacePerObjectData carries both\r\n * the VS and PS halves because the manager uploads it as a single instance.\r\n * @param {Object} parent - the space-object parent, when there is one\r\n */\r\n #UpdatePerObjectData(parent)\r\n {\r\n const record = this.#perObjectData;\r\n\r\n // cpp:211: the STORED (already transposed) transform rolls into last.\r\n record.SetAndTranspose(\"worldTransformLast\", record.GetTransposed(\"worldTransform\"));\r\n record.SetAndTranspose(\"worldTransform\", this.worldTransform);\r\n\r\n // cpp:214 inverts the transposed matrix; by carbon-math-conventions F2 that\r\n // equals the transpose of the logical inverse, which is what this produces.\r\n const inverse = EveChildInstancedMeshes.#inverseScratch;\r\n if (!mat4.invert(inverse, this.worldTransform))\r\n {\r\n mat4.identity(inverse);\r\n }\r\n record.SetAndTranspose(\"invWorldTransform\", inverse);\r\n\r\n if (typeof parent?.GetPerObjectStructs !== \"function\")\r\n {\r\n return;\r\n }\r\n\r\n const { vs, ps } = parent.GetPerObjectStructs();\r\n\r\n for (const name of [ \"shipData\", \"clipSphereCenter\", \"clipRadiusSq\", \"clipRadius2Sq\",\r\n \"impactDataOffset\", \"clipSphereFactor2\", \"clipSphereFactor\" ])\r\n {\r\n record.Set(name, ps.Get(name));\r\n }\r\n for (const name of [ \"ellpsoidRadii\", \"ellpsoidCenter\", \"customData\" ])\r\n {\r\n record.Set(name, vs.Get(name));\r\n }\r\n record.Set(\"customMaskClamps\", ps.Get(\"customMaskClamps\"));\r\n record.Set(\"boneOffsets\", vs.Get(\"boneOffsets\"));\r\n\r\n for (let slot = 0; slot < EveChildInstancedMeshes.CUSTOM_MASK_COUNT; slot++)\r\n {\r\n record.SetAndTransposeIndex(\"customMaskMatrix\", slot, vs.GetTransposedIndex(\"customMaskMatrix\", slot));\r\n record.SetIndex(\"customMaskData\", slot, vs.GetIndex(\"customMaskData\", slot));\r\n record.SetIndex(\"customMaskMaterialIDs\", slot, ps.GetIndex(\"customMaskMaterialIDs\", slot));\r\n record.SetIndex(\"customMaskTargets\", slot, ps.GetIndex(\"customMaskTargets\", slot));\r\n }\r\n\r\n // cpp:238: the PS record's coefficients land in the record's shLighting.\r\n record.Set(\"shLighting\", ps.Get(\"shLightingCoefficients\"));\r\n }\r\n\r\n /**\r\n * Stamps the child's world transform from the parent's localToWorldTransform\r\n * (Carbon cpp:197-200); every per-instance cull sphere the async pass builds\r\n * is derived from it.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSyncronous(_updateContext, params)\r\n {\r\n if (params?.localToWorldTransform?.length === 16)\r\n {\r\n mat4.copy(this.worldTransform, params.localToWorldTransform);\r\n }\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::UpdateAsyncronous (cpp:202-328), the CPU\r\n * half: per-mesh RENDER_IN_REFLECTION refresh (cpp:251), the mesh-local\r\n * bounds sphere radius = |center| + radius (cpp:254-255), per-instance\r\n * world cull spheres - position from the instance translation (Carbon reads\r\n * the packed rows' w = _41.._43, i.e. the transform translation) moved\r\n * through the child world transform, radius scaled by the instance's max\r\n * basis length times the child worldScale (cpp:259-269; NOTE Carbon's two\r\n * scale extractions deliberately differ - worldScale uses the world\r\n * transform's basis ROWS while the instance scale uses the packed rows'\r\n * xyz = the transpose's rows; equal under rotation + uniform scale,\r\n * ported exactly) - the world bounding sphere over all instance spheres\r\n * (cpp:257-270), a live SetSphereGroupBounds refresh on registered handles\r\n * (cpp:272-278), and the hasUpdated stamp (cpp:281). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The EveSpaceObjectVS/PSData per-object constant copy (cpp:204-238) and the raytracing mesh build (cpp:283-327) are engine-owned; mesh bounds come from a GetMeshData duck ({minBounds, maxBounds}) and meshes without one are skipped fail-closed.\")\r\n UpdateAsyncronous(_updateContext, _params)\r\n {\r\n const w = this.worldTransform;\r\n // cpp:240-242 - worldScale from the world transform's basis rows.\r\n const worldScale = Math.max(\r\n Math.hypot(w[0], w[1], w[2]),\r\n Math.hypot(w[4], w[5], w[6]),\r\n Math.hypot(w[8], w[9], w[10])\r\n );\r\n\r\n for (const mesh of this.meshes)\r\n {\r\n const geometry = mesh.GetGeometryResource();\r\n if (!geometry || geometry.IsGood?.() === false)\r\n {\r\n continue;\r\n }\r\n\r\n // cpp:251 - refreshed every pass (set OR cleared).\r\n mesh.flags = ShouldReflect(mesh.reflectionMode)\r\n ? (mesh.flags | INSTANCE_FLAG_RENDER_IN_REFLECTION) >>> 0\r\n : (mesh.flags & ~INSTANCE_FLAG_RENDER_IN_REFLECTION) >>> 0;\r\n\r\n const meshData = geometry.GetMeshData?.(mesh.meshIndex);\r\n const minBounds = meshData?.minBounds ?? meshData?.m_minBounds;\r\n const maxBounds = meshData?.maxBounds ?? meshData?.m_maxBounds;\r\n if (!minBounds || !maxBounds)\r\n {\r\n continue;\r\n }\r\n // cpp:254-255 - Sphere(AABB): center (min+max)/2, radius |max-min|/2;\r\n // then radius = sphere.radius + |sphere.center| (origin-inclusive).\r\n const centerX = (minBounds[0] + maxBounds[0]) * 0.5;\r\n const centerY = (minBounds[1] + maxBounds[1]) * 0.5;\r\n const centerZ = (minBounds[2] + maxBounds[2]) * 0.5;\r\n const localRadius =\r\n Math.hypot(maxBounds[0] - minBounds[0], maxBounds[1] - minBounds[1], maxBounds[2] - minBounds[2]) * 0.5 +\r\n Math.hypot(centerX, centerY, centerZ);\r\n\r\n mesh.instanceSpheres.length = mesh.instances.length;\r\n let boundsMinX = Infinity, boundsMinY = Infinity, boundsMinZ = Infinity;\r\n let boundsMaxX = -Infinity, boundsMaxY = -Infinity, boundsMaxZ = -Infinity;\r\n for (let index = 0; index < mesh.instances.length; index++)\r\n {\r\n const transform = mesh.instances[index].transform;\r\n // cpp:261 - packed rows' w = the transform translation (gl [12..14]).\r\n POSITION_SCRATCH[0] = transform[12];\r\n POSITION_SCRATCH[1] = transform[13];\r\n POSITION_SCRATCH[2] = transform[14];\r\n // cpp:262-264 - instance scale from the packed rows' xyz (the\r\n // transpose's rows: gl (t[0],t[4],t[8]) / (t[1],t[5],t[9]) /\r\n // (t[2],t[6],t[10])) - deliberately NOT the same extraction as\r\n // worldScale above.\r\n const scale = Math.max(\r\n Math.hypot(transform[0], transform[4], transform[8]),\r\n Math.hypot(transform[1], transform[5], transform[9]),\r\n Math.hypot(transform[2], transform[6], transform[10])\r\n ) * worldScale;\r\n vec3.transformMat4(POSITION_SCRATCH, POSITION_SCRATCH, w);\r\n\r\n const radius = localRadius * scale;\r\n const sphere = mesh.instanceSpheres[index] ??= { center: vec3.create(), radius: 0 };\r\n vec3.copy(sphere.center, POSITION_SCRATCH);\r\n sphere.radius = radius;\r\n\r\n boundsMinX = Math.min(boundsMinX, POSITION_SCRATCH[0] - radius);\r\n boundsMinY = Math.min(boundsMinY, POSITION_SCRATCH[1] - radius);\r\n boundsMinZ = Math.min(boundsMinZ, POSITION_SCRATCH[2] - radius);\r\n boundsMaxX = Math.max(boundsMaxX, POSITION_SCRATCH[0] + radius);\r\n boundsMaxY = Math.max(boundsMaxY, POSITION_SCRATCH[1] + radius);\r\n boundsMaxZ = Math.max(boundsMaxZ, POSITION_SCRATCH[2] + radius);\r\n }\r\n if (mesh.instances.length)\r\n {\r\n // cpp:270 - Sphere(worldBounds).\r\n const sphereCenter = mesh.worldBoundingSphere.center;\r\n sphereCenter[0] = (boundsMinX + boundsMaxX) * 0.5;\r\n sphereCenter[1] = (boundsMinY + boundsMaxY) * 0.5;\r\n sphereCenter[2] = (boundsMinZ + boundsMaxZ) * 0.5;\r\n mesh.worldBoundingSphere.radius =\r\n Math.hypot(boundsMaxX - boundsMinX, boundsMaxY - boundsMinY, boundsMaxZ - boundsMinZ) * 0.5;\r\n\r\n // cpp:272-278 - live refresh of a registered sphere group.\r\n if (mesh.sphereHandle)\r\n {\r\n mesh.sphereHandle.owner?.SetSphereGroupBounds?.(mesh.sphereHandle, mesh.worldBoundingSphere, mesh.flags);\r\n }\r\n }\r\n }\r\n\r\n this.hasUpdated = true;\r\n }\r\n\r\n /**\r\n * Returns the child's world transform as stamped by the last sync update.\r\n * @param {Float32Array} [out] - caller-owned; when given, receives a copy and is returned instead of the live matrix\r\n * @returns {Float32Array} out when supplied, otherwise the live internal matrix\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocalToWorldTransform(out = null)\r\n {\r\n if (out)\r\n {\r\n return mat4.copy(out, this.worldTransform);\r\n }\r\n return this.worldTransform;\r\n }\r\n\r\n /**\r\n * Carbon EveChildInstancedMeshes::Setup (cpp:335-337) is an intentional no-op:\r\n * placement comes from the authored per-instance transforms, not from an SRT\r\n * setup.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Setup()\r\n {\r\n }\r\n\r\n /**\r\n * Carbon EveChildInstancedMeshes::ChangeLOD (cpp:339-341) is an intentional\r\n * no-op; the child keeps no LOD state.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ChangeLOD()\r\n {\r\n }\r\n\r\n /**\r\n * Accepts and discards the placement origin; this child has no Carbon origin\r\n * field and stores none.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetOrigin()\r\n {\r\n }\r\n\r\n /**\r\n * Returns false, so owners treat this child as subject to normal activation\r\n * gating.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n IsAlwaysOn()\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::SetShaderOption (cpp:343-359): flips the\r\n * option and refreshes the effect hash on every area, then removes any\r\n * registered mesh-group handle and clears the latch - so the groups\r\n * re-register with the NEW effectHash on the next AddMeshesToManager pass.\r\n * Sphere/per-object handles deliberately stay registered. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon dereferences area.effect unguarded; the JS option write is optional-chained. Handle removal + latch clear are ported.\")\r\n SetShaderOption(name, value)\r\n {\r\n for (const mesh of this.meshes)\r\n {\r\n for (const area of mesh.areas)\r\n {\r\n area.effect?.SetOption?.(name, value);\r\n area.effectHash = EveChildInstancedMeshes.#GetEffectHash(area.effect);\r\n if (area.meshGroupHandle)\r\n {\r\n area.meshGroupHandle.owner?.RemoveMeshGroup?.(area.meshGroupHandle);\r\n area.meshGroupHandle = null;\r\n this.#allRegistered = false;\r\n }\r\n }\r\n }\r\n this.#revision++;\r\n }\r\n\r\n /**\r\n * Appends one instanced mesh: normalizes the area ducks, copies the instance transforms, stamps CASTS_SHADOW plus one flag bit per area batch type (Carbon cpp:418-425), and clears the registration latch so the next AddMeshesToManager pass picks it up.\r\n * @param {Iterable} areas - area ducks ({effect, batchType, areaIndex, areaCount})\r\n * @param {Iterable<Float32Array>} instanceTransforms - 16-value matrices; copied, not retained\r\n * @returns {Boolean} false when no areas or no instances were supplied (nothing is added)\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddMesh(\r\n geometryPath,\r\n castsShadow,\r\n reflectionMode,\r\n meshIndex,\r\n areas,\r\n instanceTransforms,\r\n sofHullName = \"\",\r\n sofLocatorSetName = \"\"\r\n )\r\n {\r\n const sourceAreas = Array.from(areas ?? []);\r\n const sourceTransforms = Array.from(instanceTransforms ?? []);\r\n if (!sourceAreas.length || !sourceTransforms.length)\r\n {\r\n return false;\r\n }\r\n\r\n const normalizedAreas = sourceAreas.map(area => EveChildInstancedMeshes.#CreateArea(area));\r\n const instances = sourceTransforms.map((transform, sphereIndex) =>\r\n {\r\n if (!transform || transform.length !== 16)\r\n {\r\n throw new TypeError(\"EveChildInstancedMeshes instance transforms must contain 16 values\");\r\n }\r\n const instance = new EveChildInstancedMeshInstance();\r\n mat4.copy(instance.transform, transform);\r\n instance.sphereIndex = sphereIndex;\r\n return instance;\r\n });\r\n\r\n const mesh = new EveChildInstancedMesh();\r\n mesh.geometryPath = String(geometryPath ?? \"\");\r\n mesh.castsShadow = !!castsShadow;\r\n mesh.reflectionMode = reflectionMode === undefined ? 3 : Number(reflectionMode) | 0;\r\n mesh.meshIndex = Number(meshIndex) >>> 0;\r\n mesh.areas = normalizedAreas;\r\n mesh.instances = instances;\r\n mesh.sofHullName = String(sofHullName ?? \"\");\r\n mesh.sofLocatorSetName = String(sofLocatorSetName ?? \"\");\r\n // Carbon (cpp:418-425): the CASTS_SHADOW flag and one bit per area batch\r\n // type are stamped at add time; RENDER_IN_REFLECTION is refreshed each\r\n // async pass. cpp:428 clears the registration latch.\r\n if (mesh.castsShadow)\r\n {\r\n mesh.flags = (mesh.flags | INSTANCE_FLAG_CASTS_SHADOW) >>> 0;\r\n }\r\n for (const area of mesh.areas)\r\n {\r\n mesh.flags = (mesh.flags | (1 << area.batchType)) >>> 0;\r\n }\r\n this.meshes.push(mesh);\r\n this.#allRegistered = false;\r\n this.#revision++;\r\n return true;\r\n }\r\n\r\n /**\r\n * Drops every mesh and clears the hasUpdated stamp so nothing re-registers\r\n * until another update pass runs; registration handles are NOT released here,\r\n * so call UnregisterFromMeshManager first when a manager still holds them.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Clear()\r\n {\r\n this.meshes.length = 0;\r\n this.hasUpdated = false;\r\n this.#revision++;\r\n }\r\n\r\n /**\r\n * Decodes a picking area id back to the SOF locator it came from.\r\n * @param {Number} areaId - mesh ordinal in the high 16 bits, locator index in the low 16 (the pairing AddMeshesToManager registers)\r\n * @returns {Array|null} [sofHullName, sofLocatorSetName, locatorIndex], or null when the mesh is unknown or carries no SOF hull name\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetSofSourceLocator(areaId)\r\n {\r\n const value = Number(areaId) >>> 0;\r\n const mesh = this.meshes[value >>> 16];\r\n if (!mesh || !mesh.sofHullName)\r\n {\r\n return null;\r\n }\r\n return [mesh.sofHullName, mesh.sofLocatorSetName, value & 0xffff];\r\n }\r\n\r\n /** Number of meshes currently held. */\r\n @carbon.method\r\n @impl.implemented\r\n GetMeshCount()\r\n {\r\n return this.meshes.length;\r\n }\r\n\r\n /**\r\n * Reports one mesh's authoring state as a positional tuple (Carbon's multiple out-params).\r\n * @param {Number} meshId - mesh index; RangeError when out of range\r\n * @returns {Array} [geometryPath, geometryResource, meshIndex, castsShadow, reflectionMode, areaCount, instanceCount]\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetMeshInfo(meshId)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n return [\r\n mesh.geometryPath,\r\n mesh.GetGeometryResource(),\r\n mesh.meshIndex,\r\n mesh.castsShadow,\r\n mesh.reflectionMode,\r\n mesh.areas.length,\r\n mesh.instances.length\r\n ];\r\n }\r\n\r\n /**\r\n * Reports one area of one mesh as a positional tuple (Carbon's multiple out-params).\r\n * @param {Number} meshId - mesh index; RangeError when out of range\r\n * @param {Number} areaId - area index within that mesh; RangeError when out of range\r\n * @returns {Array} [effect, batchType, areaIndex, areaCount] - the effect is the live reference\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetAreaInfo(meshId, areaId)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n const index = Number(areaId) >>> 0;\r\n if (index >= mesh.areas.length)\r\n {\r\n throw new RangeError(`EveChildInstancedMeshes area index ${index} is out of range`);\r\n }\r\n const area = mesh.areas[index];\r\n return [area.effect, area.batchType, area.areaIndex, area.areaCount];\r\n }\r\n\r\n /**\r\n * Whether the given mesh is currently displayed; throws RangeError for an\r\n * unknown mesh index.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetMeshDisplay(meshId)\r\n {\r\n return EveChildInstancedMeshes.#GetMesh(this.meshes, meshId).display;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::SetMeshDisplay (cpp:663-691): a toggle\r\n * clears the latch; turning a mesh OFF eagerly removes its sphere and\r\n * mesh-group handles - which is why AddMeshesToManager's display-off skip\r\n * does NOT clear the latch (the handles are already gone). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Handle invalidation after removal is explicit (Carbon's DataHandle is invalidated by the manager by reference).\")\r\n SetMeshDisplay(meshId, display)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n const next = !!display;\r\n if (mesh.display !== next)\r\n {\r\n mesh.display = next;\r\n this.#allRegistered = false;\r\n if (!next)\r\n {\r\n if (mesh.sphereHandle)\r\n {\r\n mesh.sphereHandle.owner?.RemoveBoundingSphereGroup?.(mesh.sphereHandle);\r\n mesh.sphereHandle = null;\r\n }\r\n for (const area of mesh.areas)\r\n {\r\n if (area.meshGroupHandle)\r\n {\r\n area.meshGroupHandle.owner?.RemoveMeshGroup?.(area.meshGroupHandle);\r\n area.meshGroupHandle = null;\r\n }\r\n }\r\n }\r\n this.#revision++;\r\n }\r\n }\r\n\r\n /**\r\n * Assigns one mesh's geometry resource, bumping the revision only when it\r\n * actually changes; registration waits for the next AddMeshesToManager pass.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetGeometryResource(meshId, geometry)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n if (mesh.GetGeometryResource() !== geometry)\r\n {\r\n mesh.SetGeometryResource(geometry);\r\n this.#revision++;\r\n }\r\n }\r\n\r\n /**\r\n * Returns a detached snapshot of one mesh - instance transforms cloned, areas\r\n * shallow-copied, geometry resource shared by reference - so callers can read\r\n * it without touching live registration state.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetMeshData(meshId)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n return EveChildInstancedMeshes.#CloneMesh(mesh);\r\n }\r\n\r\n /**\r\n * Monotonic counter bumped by every structural change (AddMesh, Clear,\r\n * SetMeshDisplay, SetGeometryResource, SetShaderOption), for consumers caching\r\n * derived data.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetRevision()\r\n {\r\n return this.#revision;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::RegisterComponents (cpp:36-43):\r\n * unconditional InstancedMeshProvider + ShadowCaster leaf\r\n * self-registration. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.InstancedMeshProvider, this);\r\n registry.RegisterComponent(EveComponentType.ShadowCaster, this);\r\n }\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::UnRegisterComponents (cpp:45-48) only\r\n * calls UnregisterFromMeshManager; own components were already removed by\r\n * EveEntity::UnRegister (EveEntity.cpp:90). */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n this.UnregisterFromMeshManager();\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::UnregisterFromMeshManager (cpp:50-71):\r\n * every registered mesh-group / sphere-group / per-object handle is removed\r\n * through ITS OWN handle.owner (handles may span managers after a switch),\r\n * then the latch clears. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Handle invalidation after removal is explicit (Carbon's DataHandle is invalidated by the manager by reference).\")\r\n UnregisterFromMeshManager()\r\n {\r\n for (const mesh of this.meshes)\r\n {\r\n for (const area of mesh.areas)\r\n {\r\n if (area.meshGroupHandle)\r\n {\r\n area.meshGroupHandle.owner?.RemoveMeshGroup?.(area.meshGroupHandle);\r\n area.meshGroupHandle = null;\r\n }\r\n }\r\n if (mesh.sphereHandle)\r\n {\r\n mesh.sphereHandle.owner?.RemoveBoundingSphereGroup?.(mesh.sphereHandle);\r\n mesh.sphereHandle = null;\r\n }\r\n }\r\n if (this.#perObjectDataHandle)\r\n {\r\n this.#perObjectDataHandle.owner?.RemovePerObjectData?.(this.#perObjectDataHandle);\r\n this.#perObjectDataHandle = null;\r\n }\r\n this.#allRegistered = false;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::AddMeshesToManager (cpp:472-553), the\r\n * InstancedMeshProvider entry the engine's CollectMeshes drives\r\n * (EveInstancedMeshManager.cpp:45-56; scene EveSpaceScene.cpp:1516).\r\n * Contract quirks preserved: nothing registers before the first update\r\n * pass (cpp:474); switching managers tears EVERYTHING down BEFORE the\r\n * latch early-out (cpp:478-481); the latch is set optimistically and\r\n * cleared by ANY not-ready mesh/area so the per-frame caller retries until\r\n * geometry streams in - EXCEPT display-off meshes, which skip WITHOUT\r\n * clearing it (their handles were already removed by SetMeshDisplay);\r\n * handles are add-once (partial re-registration after SetShaderOption /\r\n * display toggles); an area-level effect failure clears the latch while\r\n * the mesh's sphere group STAYS registered (Carbon's asymmetry);\r\n * pickingOwnerIndex is the mesh ordinal (pairs with GetSofSourceLocator's\r\n * meshIndex<<16 decode). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The manager is an injected engine duck returning handles (out-params become returns; .owner is stamped when the duck omits it); Carbon's combinedVertexDeclaration gate (cpp:499, a D3D declaration handle rebuilt in RebuildCachedData cpp:435-457) reduces to geometry presence + IsGood, and the declaration argument is passed as 0 for the engine to rebuild; GetRawRoot() becomes the object itself as picking owner.\")\r\n AddMeshesToManager(manager)\r\n {\r\n if (!this.hasUpdated)\r\n {\r\n return;\r\n }\r\n if (this.#perObjectDataHandle && this.#perObjectDataHandle.owner !== manager)\r\n {\r\n this.UnregisterFromMeshManager();\r\n }\r\n if (this.#allRegistered)\r\n {\r\n return;\r\n }\r\n\r\n if (!this.#perObjectDataHandle)\r\n {\r\n const handle = manager?.AddPerObjectData?.(this) ?? null;\r\n if (handle && typeof handle === \"object\" && !handle.owner)\r\n {\r\n handle.owner = manager;\r\n }\r\n this.#perObjectDataHandle = handle;\r\n }\r\n\r\n this.#allRegistered = true;\r\n for (let meshIndex = 0; meshIndex < this.meshes.length; meshIndex++)\r\n {\r\n const mesh = this.meshes[meshIndex];\r\n if (!mesh.display)\r\n {\r\n continue;\r\n }\r\n const geometry = mesh.GetGeometryResource();\r\n if (!geometry || geometry.IsGood?.() === false)\r\n {\r\n this.#allRegistered = false;\r\n continue;\r\n }\r\n if (!mesh.instances.length)\r\n {\r\n this.#allRegistered = false;\r\n continue;\r\n }\r\n if (mesh.instances.length !== mesh.instanceSpheres.length)\r\n {\r\n this.#allRegistered = false;\r\n continue;\r\n }\r\n\r\n if (!mesh.sphereHandle)\r\n {\r\n const handle = manager?.AddBoundingSphereGroup?.(\r\n mesh.worldBoundingSphere,\r\n mesh.flags,\r\n mesh.instanceSpheres,\r\n mesh.instanceSpheres.length\r\n ) ?? null;\r\n if (handle && typeof handle === \"object\" && !handle.owner)\r\n {\r\n handle.owner = manager;\r\n }\r\n mesh.sphereHandle = handle;\r\n }\r\n\r\n for (const area of mesh.areas)\r\n {\r\n if (area.meshGroupHandle)\r\n {\r\n continue;\r\n }\r\n if (!area.effect)\r\n {\r\n this.#allRegistered = false;\r\n continue;\r\n }\r\n const handle = manager?.AddMeshGroup?.(\r\n geometry,\r\n 0,\r\n area.batchType,\r\n mesh.meshIndex,\r\n area.areaIndex,\r\n area.areaCount,\r\n area.effect,\r\n area.effectHash,\r\n this.#perObjectDataHandle,\r\n mesh.sphereHandle,\r\n mesh.instances,\r\n mesh.instances.length,\r\n this,\r\n meshIndex\r\n ) ?? null;\r\n if (handle && typeof handle === \"object\" && !handle.owner)\r\n {\r\n handle.owner = manager;\r\n }\r\n area.meshGroupHandle = handle;\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::IsCastingShadow (cpp:73-76) always\r\n * returns false (instanced shadows cull per instance group); presence\r\n * satisfies the \"ShadowCaster\" duck contract. */\r\n @carbon.method\r\n @impl.implemented\r\n IsCastingShadow(..._args)\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::GetShadowBatches (cpp:78-80) is an\r\n * intentional no-op (the instanced mesh manager emits the batches). */\r\n @carbon.method\r\n @impl.noop\r\n GetShadowBatches(..._args)\r\n {\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::GetShadowPerObjectData (cpp:82-85)\r\n * returns null (per-object data flows through the mesh manager). */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowPerObjectData(..._args)\r\n {\r\n return null;\r\n }\r\n\r\n /**\r\n * Resolves a mesh index against the list, throwing RangeError rather than\r\n * returning undefined so every public accessor fails loudly.\r\n */\r\n static #GetMesh(meshes, meshId)\r\n {\r\n const index = Number(meshId) >>> 0;\r\n if (index >= meshes.length)\r\n {\r\n throw new RangeError(`EveChildInstancedMeshes mesh index ${index} is out of range`);\r\n }\r\n return meshes[index];\r\n }\r\n\r\n /**\r\n * Builds an area record from a plain duck, defaulting areaCount to 1 and\r\n * caching the effect hash the manager registers the mesh group under.\r\n */\r\n static #CreateArea(value)\r\n {\r\n const source = value ?? {};\r\n const area = new EveChildInstancedMeshArea();\r\n area.effect = source.effect ?? null;\r\n area.batchType = Number(source.batchType) >>> 0;\r\n area.areaIndex = Number(source.areaIndex) >>> 0;\r\n area.areaCount = source.areaCount === undefined ? 1 : Number(source.areaCount) >>> 0;\r\n area.effectHash = EveChildInstancedMeshes.#GetEffectHash(area.effect);\r\n return area;\r\n }\r\n\r\n /**\r\n * Deep-copies a mesh into a plain object for GetMeshData: instance transforms\r\n * cloned, areas spread-copied, the geometry resource shared by reference.\r\n */\r\n static #CloneMesh(mesh)\r\n {\r\n return {\r\n geometryPath: mesh.geometryPath,\r\n geometry: mesh.GetGeometryResource(),\r\n castsShadow: mesh.castsShadow,\r\n reflectionMode: mesh.reflectionMode,\r\n meshIndex: mesh.meshIndex,\r\n areas: mesh.areas.map(area => ({ ...area })),\r\n instances: mesh.instances.map(instance => ({\r\n transform: mat4.clone(instance.transform),\r\n sphereIndex: instance.sphereIndex\r\n })),\r\n sofHullName: mesh.sofHullName,\r\n sofLocatorSetName: mesh.sofLocatorSetName,\r\n display: mesh.display\r\n };\r\n }\r\n\r\n /**\r\n * Reads an effect's hash through GetHashValue() or a .hash field, yielding 0\r\n * when neither is available so a hashless effect still registers\r\n * deterministically.\r\n */\r\n static #GetEffectHash(effect)\r\n {\r\n const hash = effect?.GetHashValue?.() ?? effect?.hash ?? 0;\r\n return Number(hash) || 0;\r\n }\r\n\r\n}\r\n"],"names":["INSTANCE_FLAG_CASTS_SHADOW","INSTANCE_FLAG_RENDER_IN_REFLECTION","POSITION_SCRATCH","vec3","create","_EveChildInstancedMes","EveChildInstancedMeshArea","CjsModel","e","_init_effect","_init_extra_effect","_init_batchType","_init_extra_batchType","_init_areaIndex","_init_extra_areaIndex","_init_areaCount","_init_extra_areaCount","_init_effectHash","_init_extra_effectHash","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","objectRef","uint32","read","float32","effect","batchType","areaIndex","areaCount","effectHash","meshGroupHandle","_EveChildInstancedMes2","EveChildInstancedMeshInstance","_init_transform","_init_extra_transform","_init_sphereIndex","_init_extra_sphereIndex","_initClass2","mat4","constructor","args","transform","sphereIndex","_EveChildInstancedMes3","EveChildInstancedMesh","_init_geometryPath","_init_extra_geometryPath","_init_castsShadow","_init_extra_castsShadow","_init_reflectionMode","_init_extra_reflectionMode","_init_meshIndex","_init_extra_meshIndex","_init_areas","_init_extra_areas","_init_instances","_init_extra_instances","_init_sofHullName","_init_extra_sofHullName","_init_sofLocatorSetName","_init_extra_sofLocatorSetName","_init_display","_init_extra_display","_initClass3","string","boolean","int32","list","geometryPath","castsShadow","reflectionMode","meshIndex","areas","instances","sofHullName","sofLocatorSetName","display","sphereHandle","worldBoundingSphere","center","radius","instanceSpheres","flags","GetGeometryResource","SetGeometryResource","resource","_EveChildInstancedMes4","_identity","EveChildInstancedMeshes","EveEntity","_init_name","_init_extra_name","_init_worldTransform","_init_extra_worldTransform","_init_hasUpdated","_init_extra_hasUpdated","_init_meshes","_init_extra_meshes","_initProto","_initClass4","carbon","method","impl","implemented","adapted","reason","noop","name","worldTransform","hasUpdated","meshes","RawData","GetName","SetName","String","UpdateVisibility","GetRenderables","renderables","GetBoundingSphere","#UpdatePerObjectData","parent","record","SetAndTranspose","GetTransposed","inverse","invert","identity","GetPerObjectStructs","vs","ps","Set","Get","slot","CUSTOM_MASK_COUNT","SetAndTransposeIndex","GetTransposedIndex","SetIndex","GetIndex","UpdateSyncronous","_updateContext","params","localToWorldTransform","length","copy","UpdateAsyncronous","_params","w","worldScale","Math","max","hypot","mesh","geometry","IsGood","ShouldReflect","meshData","GetMeshData","minBounds","m_minBounds","maxBounds","m_maxBounds","centerX","centerY","centerZ","localRadius","boundsMinX","Infinity","boundsMinY","boundsMinZ","boundsMaxX","boundsMaxY","boundsMaxZ","index","scale","transformMat4","sphere","min","sphereCenter","owner","SetSphereGroupBounds","GetLocalToWorldTransform","out","Setup","ChangeLOD","SetOrigin","IsAlwaysOn","SetShaderOption","value","area","SetOption","RemoveMeshGroup","AddMesh","instanceTransforms","sourceAreas","Array","from","sourceTransforms","normalizedAreas","map","TypeError","instance","undefined","Number","push","Clear","GetSofSourceLocator","areaId","GetMeshCount","GetMeshInfo","meshId","GetAreaInfo","RangeError","GetMeshDisplay","SetMeshDisplay","next","RemoveBoundingSphereGroup","GetRevision","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","InstancedMeshProvider","ShadowCaster","UnRegisterComponents","UnregisterFromMeshManager","RemovePerObjectData","AddMeshesToManager","manager","handle","AddPerObjectData","AddBoundingSphereGroup","AddMeshGroup","IsCastingShadow","_args","GetShadowBatches","GetShadowPerObjectData","#GetMesh","#CreateArea","source","#CloneMesh","clone","#GetEffectHash","hash","GetHashValue"],"mappings":"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"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import { mat4 } from '@carbonenginejs/
|
|
3
|
-
import { vec3 } from '@carbonenginejs/
|
|
4
|
-
import { vec4 } from '@carbonenginejs/
|
|
5
|
-
import { io, type, impl, schema } from '@carbonenginejs/
|
|
2
|
+
import { mat4 } from '@carbonenginejs/runtime-utils/mat4';
|
|
3
|
+
import { vec3 } from '@carbonenginejs/runtime-utils/vec3';
|
|
4
|
+
import { vec4 } from '@carbonenginejs/runtime-utils/vec4';
|
|
5
|
+
import { io, type, impl, schema } from '@carbonenginejs/runtime-utils/schema';
|
|
6
6
|
import { EveChildTransform as _EveChildTransform } from './EveChildTransform.js';
|
|
7
7
|
import { EveComponentType } from '../EveComponentTypes.js';
|
|
8
8
|
|
|
9
9
|
let _initProto, _initClass, _init_priority, _init_extra_priority, _init_name, _init_extra_name, _init_backgroundIntensity, _init_extra_backgroundIntensity, _init_intensity, _init_extra_intensity, _init_reflectionIntensity, _init_extra_reflectionIntensity, _init_sunIntensity, _init_extra_sunIntensity, _init_sunColor, _init_extra_sunColor, _init_volumes, _init_extra_volumes;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Space-object child that overrides scene sun, background and reflection
|
|
13
|
+
* lighting, its blend strength driven by how deeply the camera sits inside the
|
|
14
|
+
* volumes it owns.
|
|
15
|
+
*/
|
|
10
16
|
let _EveChildLightingOver;
|
|
11
17
|
new class extends _identity {
|
|
12
18
|
static [class EveChildLightingOverride extends _EveChildTransform {
|
|
@@ -49,6 +55,12 @@ new class extends _identity {
|
|
|
49
55
|
registry.RegisterComponent(EveComponentType.EveLightingOverride, this);
|
|
50
56
|
}
|
|
51
57
|
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Returns this child's contribution to the lighting system: its priority, the
|
|
61
|
+
* blend intensity resolved by the last async update, and the sun
|
|
62
|
+
* colour/intensity plus background and reflection intensities to blend toward.
|
|
63
|
+
*/
|
|
52
64
|
GetOverrides() {
|
|
53
65
|
return {
|
|
54
66
|
priority: this.priority,
|
|
@@ -61,17 +73,41 @@ new class extends _identity {
|
|
|
61
73
|
}
|
|
62
74
|
};
|
|
63
75
|
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The authored name, persisted with the override and used to identify it in
|
|
79
|
+
* the parent graph.
|
|
80
|
+
*/
|
|
64
81
|
GetName() {
|
|
65
82
|
return this.name;
|
|
66
83
|
}
|
|
84
|
+
|
|
85
|
+
/** Sets the authored override name, coercing nullish to the empty string. */
|
|
67
86
|
SetName(name) {
|
|
68
87
|
this.name = String(name ?? "");
|
|
69
88
|
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Copies the cached local-space bounding sphere into out and always reports success, even before any volume has contributed.
|
|
92
|
+
* @param {Float32Array} [out] - caller-owned; receives (x, y, z, radius)
|
|
93
|
+
* @returns {Boolean} always true
|
|
94
|
+
*/
|
|
70
95
|
GetBoundingSphere(out = vec4.create()) {
|
|
71
96
|
vec4.set(out, this.#boundingSphere.center[0], this.#boundingSphere.center[1], this.#boundingSphere.center[2], this.#boundingSphere.radius);
|
|
72
97
|
return true;
|
|
73
98
|
}
|
|
99
|
+
|
|
100
|
+
/** No-op: a lighting override carries no sync-side frame work. */
|
|
74
101
|
UpdateSyncronous(_updateContext, _params) {}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Rebuilds the world transform and bounding sphere, then resolves the override
|
|
105
|
+
* strength for the frame: with no volumes the authored intensity applies
|
|
106
|
+
* directly; otherwise the camera is moved into local space and, only while it
|
|
107
|
+
* is inside the bounding sphere, the strongest volume intensity there
|
|
108
|
+
* (short-circuiting at 1) is scaled by the authored intensity - a camera
|
|
109
|
+
* outside leaves the strength at zero.
|
|
110
|
+
*/
|
|
75
111
|
UpdateAsyncronous(updateContext, params = {}) {
|
|
76
112
|
this.UpdateTransform(params.localToWorldTransform ?? mat4.create());
|
|
77
113
|
this.#RebuildBoundingSphere();
|
|
@@ -91,22 +127,54 @@ new class extends _identity {
|
|
|
91
127
|
}
|
|
92
128
|
this.#overrideIntensity *= this.intensity;
|
|
93
129
|
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Copies the child's world transform, as rebuilt by the last async update.
|
|
133
|
+
* @param {Float32Array} [out] - caller-owned; allocated when omitted
|
|
134
|
+
* @returns {Float32Array} out
|
|
135
|
+
*/
|
|
94
136
|
GetLocalToWorldTransform(out = mat4.create()) {
|
|
95
137
|
return mat4.copy(out, this.worldTransform);
|
|
96
138
|
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Applies the authored scale/rotation/translation through the shared child
|
|
142
|
+
* transform setup.
|
|
143
|
+
*/
|
|
97
144
|
Setup(scale, rotation, translation, lowestLodVisible) {
|
|
98
145
|
return super.Setup(scale, rotation, translation, lowestLodVisible);
|
|
99
146
|
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Returns true unconditionally - a lighting override reports itself as always
|
|
150
|
+
* on.
|
|
151
|
+
*/
|
|
100
152
|
IsAlwaysOn() {
|
|
101
153
|
return true;
|
|
102
154
|
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Builds the initial bounding sphere from the authored volumes so the first
|
|
158
|
+
* frame can already reject an outside camera.
|
|
159
|
+
*/
|
|
103
160
|
Initialize() {
|
|
104
161
|
this.#RebuildBoundingSphere();
|
|
105
162
|
return true;
|
|
106
163
|
}
|
|
164
|
+
|
|
165
|
+
/** No-op: a lighting override is not renderable and keeps no visibility state. */
|
|
107
166
|
UpdateVisibility(_updateContext, _parentTransform, _parentLod) {}
|
|
167
|
+
|
|
168
|
+
/** No-op: a lighting override contributes settings, never renderables. */
|
|
108
169
|
GetRenderables(_renderables) {}
|
|
170
|
+
|
|
171
|
+
/** No-op: a lighting override has no LOD levels. */
|
|
109
172
|
ChangeLOD(_lod) {}
|
|
173
|
+
/**
|
|
174
|
+
* Recomputes the cached bounding sphere as the union of the child volumes'
|
|
175
|
+
* spheres, skipping volumes with a missing centre or a non-finite/negative
|
|
176
|
+
* radius, and records whether any volume contributed.
|
|
177
|
+
*/
|
|
110
178
|
#RebuildBoundingSphere() {
|
|
111
179
|
const target = this.#boundingSphere;
|
|
112
180
|
vec3.set(target.center, 0, 0, 0);
|
|
@@ -124,6 +192,12 @@ new class extends _identity {
|
|
|
124
192
|
_EveChildLightingOver.#UnionSphere(target, sphere);
|
|
125
193
|
}
|
|
126
194
|
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Grows the target sphere in place so it also encloses the given sphere,
|
|
198
|
+
* short-circuiting when either already contains the other and handling
|
|
199
|
+
* coincident centres.
|
|
200
|
+
*/
|
|
127
201
|
}];
|
|
128
202
|
Priority = Object.freeze({
|
|
129
203
|
SCENE_DEFAULT_PRIORITY: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveChildLightingOverride.js","sources":["../../../../src/eve/child/EveChildLightingOverride.js"],"sourcesContent":["// Ported/adapted from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildLightingOverride.h\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildLightingOverride.cpp\r\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\r\nimport { vec3 } from \"@carbonenginejs/core-math/vec3\";\r\nimport { vec4 } from \"@carbonenginejs/core-math/vec4\";\r\nimport { impl, io, schema, type } from \"@carbonenginejs/core-types/schema\";\r\nimport { EveChildTransform } from \"./EveChildTransform.js\";\r\nimport { EveComponentType } from \"../EveComponentTypes.js\";\r\n\r\n\r\n@type.define({ className: \"EveChildLightingOverride\", family: \"eve/child\" })\r\nexport class EveChildLightingOverride extends EveChildTransform\r\n{\r\n #overrideIntensity = 0;\r\n #boundingSphere = { center: vec3.create(), radius: 0, initialized: false };\r\n\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"Priority\")\r\n priority = 2;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.float32\r\n backgroundIntensity = 1;\r\n\r\n @io.persist\r\n @type.float32\r\n intensity = 1;\r\n\r\n @io.persist\r\n @type.float32\r\n reflectionIntensity = 1;\r\n\r\n @io.persist\r\n @type.float32\r\n sunIntensity = 1;\r\n\r\n @io.persist\r\n @type.color\r\n sunColor = vec4.fromValues(1, 1, 1, 1);\r\n\r\n @io.persist\r\n @type.list(\"IEveVolume\")\r\n volumes = [];\r\n\r\n /** Carbon EveChildLightingOverride::RegisterComponents (cpp:47-50):\r\n * unconditional EveLightingOverride leaf self-registration. Carbon's\r\n * UnRegisterComponents (cpp:52-55) only removes this same component, which\r\n * EveEntity::UnRegister already did via UnRegisterAllComponents\r\n * (EveEntity.cpp:90), so the JS un-side keeps the base no-op. */\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.EveLightingOverride, this);\r\n }\r\n }\r\n\r\n @impl.implemented\r\n GetOverrides()\r\n {\r\n return {\r\n priority: this.priority,\r\n intensity: this.#overrideIntensity,\r\n value: {\r\n sunColor: vec4.clone(this.sunColor),\r\n sunIntensity: this.sunIntensity,\r\n backgroundIntensity: this.backgroundIntensity,\r\n reflectionIntensity: this.reflectionIntensity\r\n }\r\n };\r\n }\r\n\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n @impl.adapted\r\n GetBoundingSphere(out = vec4.create())\r\n {\r\n vec4.set(out, this.#boundingSphere.center[0], this.#boundingSphere.center[1], this.#boundingSphere.center[2], this.#boundingSphere.radius);\r\n return true;\r\n }\r\n\r\n UpdateSyncronous(_updateContext, _params)\r\n {\r\n }\r\n\r\n @impl.adapted\r\n UpdateAsyncronous(updateContext, params = {})\r\n {\r\n this.UpdateTransform(params.localToWorldTransform ?? mat4.create());\r\n this.#RebuildBoundingSphere();\r\n\r\n if (this.volumes.length === 0)\r\n {\r\n this.#overrideIntensity = this.intensity;\r\n return;\r\n }\r\n\r\n this.#overrideIntensity = 0;\r\n const viewPosition = updateContext?.renderContext?.GetViewPosition?.();\r\n const inverse = mat4.invert(mat4.create(), this.worldTransform);\r\n if (!viewPosition || !inverse || !this.#boundingSphere.initialized) return;\r\n const localView = vec3.transformMat4(vec3.create(), viewPosition, inverse);\r\n if (vec3.distance(localView, this.#boundingSphere.center) > this.#boundingSphere.radius) return;\r\n\r\n for (const volume of this.volumes)\r\n {\r\n this.#overrideIntensity = Math.max(this.#overrideIntensity, Number(volume?.GetIntensity?.(localView)) || 0);\r\n if (this.#overrideIntensity >= 1) break;\r\n }\r\n this.#overrideIntensity *= this.intensity;\r\n }\r\n\r\n GetLocalToWorldTransform(out = mat4.create())\r\n {\r\n return mat4.copy(out, this.worldTransform);\r\n }\r\n\r\n Setup(scale, rotation, translation, lowestLodVisible)\r\n {\r\n return super.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n IsAlwaysOn()\r\n {\r\n return true;\r\n }\r\n\r\n Initialize()\r\n {\r\n this.#RebuildBoundingSphere();\r\n return true;\r\n }\r\n\r\n UpdateVisibility(_updateContext, _parentTransform, _parentLod)\r\n {\r\n }\r\n\r\n GetRenderables(_renderables)\r\n {\r\n }\r\n\r\n ChangeLOD(_lod)\r\n {\r\n }\r\n\r\n static Priority = Object.freeze({\r\n SCENE_DEFAULT_PRIORITY: 0,\r\n LOW_PRIORITY: 1,\r\n MEDIUM_PRIORITY: 2,\r\n HIGH_PRIORITY: 3,\r\n UI_PRIORITY: 4,\r\n PRIORITY_COUNT: 5\r\n });\r\n\r\n #RebuildBoundingSphere()\r\n {\r\n const target = this.#boundingSphere;\r\n vec3.set(target.center, 0, 0, 0);\r\n target.radius = 0;\r\n target.initialized = false;\r\n\r\n for (const volume of this.volumes)\r\n {\r\n const sphere = volume?.GetBoundingSphere?.();\r\n if (!sphere?.center || !Number.isFinite(sphere.radius) || sphere.radius < 0) continue;\r\n if (!target.initialized)\r\n {\r\n vec3.copy(target.center, sphere.center);\r\n target.radius = sphere.radius;\r\n target.initialized = true;\r\n continue;\r\n }\r\n EveChildLightingOverride.#UnionSphere(target, sphere);\r\n }\r\n }\r\n\r\n static #UnionSphere(target, sphere)\r\n {\r\n const delta = vec3.subtract(vec3.create(), sphere.center, target.center);\r\n const distance = vec3.length(delta);\r\n if (distance + sphere.radius <= target.radius) return;\r\n if (distance + target.radius <= sphere.radius)\r\n {\r\n vec3.copy(target.center, sphere.center);\r\n target.radius = sphere.radius;\r\n return;\r\n }\r\n if (distance === 0)\r\n {\r\n target.radius = Math.max(target.radius, sphere.radius);\r\n return;\r\n }\r\n const radius = (target.radius + sphere.radius + distance) * 0.5;\r\n vec3.scaleAndAdd(target.center, target.center, delta, (radius - target.radius) / distance);\r\n target.radius = radius;\r\n }\r\n}\r\n"],"names":["_EveChildLightingOver","_identity","EveChildLightingOverride","EveChildTransform","e","_init_priority","_init_extra_priority","_init_name","_init_extra_name","_init_backgroundIntensity","_init_extra_backgroundIntensity","_init_intensity","_init_extra_intensity","_init_reflectionIntensity","_init_extra_reflectionIntensity","_init_sunIntensity","_init_extra_sunIntensity","_init_sunColor","_init_extra_sunColor","_init_volumes","_init_extra_volumes","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","int32","schema","enum","string","float32","color","list","impl","implemented","adapted","constructor","args","center","vec3","create","radius","initialized","priority","name","backgroundIntensity","intensity","reflectionIntensity","sunIntensity","sunColor","vec4","fromValues","volumes","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","EveLightingOverride","GetOverrides","value","clone","GetName","SetName","String","GetBoundingSphere","out","set","UpdateSyncronous","_updateContext","_params","UpdateAsyncronous","updateContext","params","UpdateTransform","localToWorldTransform","mat4","length","viewPosition","renderContext","GetViewPosition","inverse","invert","worldTransform","localView","transformMat4","distance","volume","Math","max","Number","GetIntensity","GetLocalToWorldTransform","copy","Setup","scale","rotation","translation","lowestLodVisible","IsAlwaysOn","Initialize","UpdateVisibility","_parentTransform","_parentLod","GetRenderables","_renderables","ChangeLOD","_lod","#RebuildBoundingSphere","target","sphere","isFinite","Priority","Object","freeze","SCENE_DEFAULT_PRIORITY","LOW_PRIORITY","MEDIUM_PRIORITY","HIGH_PRIORITY","UI_PRIORITY","PRIORITY_COUNT","#UnionSphere","delta","subtract","scaleAndAdd"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveChildLightingOverride.js","sources":["../../../../src/eve/child/EveChildLightingOverride.js"],"sourcesContent":["// Ported/adapted from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildLightingOverride.h\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildLightingOverride.cpp\r\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\r\nimport { impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { EveChildTransform } from \"./EveChildTransform.js\";\r\nimport { EveComponentType } from \"../EveComponentTypes.js\";\r\n\r\n\r\n/**\r\n * Space-object child that overrides scene sun, background and reflection\r\n * lighting, its blend strength driven by how deeply the camera sits inside the\r\n * volumes it owns.\r\n */\r\n@type.define({ className: \"EveChildLightingOverride\", family: \"eve/child\" })\r\nexport class EveChildLightingOverride extends EveChildTransform\r\n{\r\n #overrideIntensity = 0;\r\n #boundingSphere = { center: vec3.create(), radius: 0, initialized: false };\r\n\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"Priority\")\r\n priority = 2;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.float32\r\n backgroundIntensity = 1;\r\n\r\n @io.persist\r\n @type.float32\r\n intensity = 1;\r\n\r\n @io.persist\r\n @type.float32\r\n reflectionIntensity = 1;\r\n\r\n @io.persist\r\n @type.float32\r\n sunIntensity = 1;\r\n\r\n @io.persist\r\n @type.color\r\n sunColor = vec4.fromValues(1, 1, 1, 1);\r\n\r\n @io.persist\r\n @type.list(\"IEveVolume\")\r\n volumes = [];\r\n\r\n /** Carbon EveChildLightingOverride::RegisterComponents (cpp:47-50):\r\n * unconditional EveLightingOverride leaf self-registration. Carbon's\r\n * UnRegisterComponents (cpp:52-55) only removes this same component, which\r\n * EveEntity::UnRegister already did via UnRegisterAllComponents\r\n * (EveEntity.cpp:90), so the JS un-side keeps the base no-op. */\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.EveLightingOverride, this);\r\n }\r\n }\r\n\r\n /**\r\n * Returns this child's contribution to the lighting system: its priority, the\r\n * blend intensity resolved by the last async update, and the sun\r\n * colour/intensity plus background and reflection intensities to blend toward.\r\n */\r\n @impl.implemented\r\n GetOverrides()\r\n {\r\n return {\r\n priority: this.priority,\r\n intensity: this.#overrideIntensity,\r\n value: {\r\n sunColor: vec4.clone(this.sunColor),\r\n sunIntensity: this.sunIntensity,\r\n backgroundIntensity: this.backgroundIntensity,\r\n reflectionIntensity: this.reflectionIntensity\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * The authored name, persisted with the override and used to identify it in\r\n * the parent graph.\r\n */\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Sets the authored override name, coercing nullish to the empty string. */\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /**\r\n * Copies the cached local-space bounding sphere into out and always reports success, even before any volume has contributed.\r\n * @param {Float32Array} [out] - caller-owned; receives (x, y, z, radius)\r\n * @returns {Boolean} always true\r\n */\r\n @impl.adapted\r\n GetBoundingSphere(out = vec4.create())\r\n {\r\n vec4.set(out, this.#boundingSphere.center[0], this.#boundingSphere.center[1], this.#boundingSphere.center[2], this.#boundingSphere.radius);\r\n return true;\r\n }\r\n\r\n /** No-op: a lighting override carries no sync-side frame work. */\r\n UpdateSyncronous(_updateContext, _params)\r\n {\r\n }\r\n\r\n /**\r\n * Rebuilds the world transform and bounding sphere, then resolves the override\r\n * strength for the frame: with no volumes the authored intensity applies\r\n * directly; otherwise the camera is moved into local space and, only while it\r\n * is inside the bounding sphere, the strongest volume intensity there\r\n * (short-circuiting at 1) is scaled by the authored intensity - a camera\r\n * outside leaves the strength at zero.\r\n */\r\n @impl.adapted\r\n UpdateAsyncronous(updateContext, params = {})\r\n {\r\n this.UpdateTransform(params.localToWorldTransform ?? mat4.create());\r\n this.#RebuildBoundingSphere();\r\n\r\n if (this.volumes.length === 0)\r\n {\r\n this.#overrideIntensity = this.intensity;\r\n return;\r\n }\r\n\r\n this.#overrideIntensity = 0;\r\n const viewPosition = updateContext?.renderContext?.GetViewPosition?.();\r\n const inverse = mat4.invert(mat4.create(), this.worldTransform);\r\n if (!viewPosition || !inverse || !this.#boundingSphere.initialized) return;\r\n const localView = vec3.transformMat4(vec3.create(), viewPosition, inverse);\r\n if (vec3.distance(localView, this.#boundingSphere.center) > this.#boundingSphere.radius) return;\r\n\r\n for (const volume of this.volumes)\r\n {\r\n this.#overrideIntensity = Math.max(this.#overrideIntensity, Number(volume?.GetIntensity?.(localView)) || 0);\r\n if (this.#overrideIntensity >= 1) break;\r\n }\r\n this.#overrideIntensity *= this.intensity;\r\n }\r\n\r\n /**\r\n * Copies the child's world transform, as rebuilt by the last async update.\r\n * @param {Float32Array} [out] - caller-owned; allocated when omitted\r\n * @returns {Float32Array} out\r\n */\r\n GetLocalToWorldTransform(out = mat4.create())\r\n {\r\n return mat4.copy(out, this.worldTransform);\r\n }\r\n\r\n /**\r\n * Applies the authored scale/rotation/translation through the shared child\r\n * transform setup.\r\n */\r\n Setup(scale, rotation, translation, lowestLodVisible)\r\n {\r\n return super.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n /**\r\n * Returns true unconditionally - a lighting override reports itself as always\r\n * on.\r\n */\r\n IsAlwaysOn()\r\n {\r\n return true;\r\n }\r\n\r\n /**\r\n * Builds the initial bounding sphere from the authored volumes so the first\r\n * frame can already reject an outside camera.\r\n */\r\n Initialize()\r\n {\r\n this.#RebuildBoundingSphere();\r\n return true;\r\n }\r\n\r\n /** No-op: a lighting override is not renderable and keeps no visibility state. */\r\n UpdateVisibility(_updateContext, _parentTransform, _parentLod)\r\n {\r\n }\r\n\r\n /** No-op: a lighting override contributes settings, never renderables. */\r\n GetRenderables(_renderables)\r\n {\r\n }\r\n\r\n /** No-op: a lighting override has no LOD levels. */\r\n ChangeLOD(_lod)\r\n {\r\n }\r\n\r\n static Priority = Object.freeze({\r\n SCENE_DEFAULT_PRIORITY: 0,\r\n LOW_PRIORITY: 1,\r\n MEDIUM_PRIORITY: 2,\r\n HIGH_PRIORITY: 3,\r\n UI_PRIORITY: 4,\r\n PRIORITY_COUNT: 5\r\n });\r\n\r\n /**\r\n * Recomputes the cached bounding sphere as the union of the child volumes'\r\n * spheres, skipping volumes with a missing centre or a non-finite/negative\r\n * radius, and records whether any volume contributed.\r\n */\r\n #RebuildBoundingSphere()\r\n {\r\n const target = this.#boundingSphere;\r\n vec3.set(target.center, 0, 0, 0);\r\n target.radius = 0;\r\n target.initialized = false;\r\n\r\n for (const volume of this.volumes)\r\n {\r\n const sphere = volume?.GetBoundingSphere?.();\r\n if (!sphere?.center || !Number.isFinite(sphere.radius) || sphere.radius < 0) continue;\r\n if (!target.initialized)\r\n {\r\n vec3.copy(target.center, sphere.center);\r\n target.radius = sphere.radius;\r\n target.initialized = true;\r\n continue;\r\n }\r\n EveChildLightingOverride.#UnionSphere(target, sphere);\r\n }\r\n }\r\n\r\n /**\r\n * Grows the target sphere in place so it also encloses the given sphere,\r\n * short-circuiting when either already contains the other and handling\r\n * coincident centres.\r\n */\r\n static #UnionSphere(target, sphere)\r\n {\r\n const delta = vec3.subtract(vec3.create(), sphere.center, target.center);\r\n const distance = vec3.length(delta);\r\n if (distance + sphere.radius <= target.radius) return;\r\n if (distance + target.radius <= sphere.radius)\r\n {\r\n vec3.copy(target.center, sphere.center);\r\n target.radius = sphere.radius;\r\n return;\r\n }\r\n if (distance === 0)\r\n {\r\n target.radius = Math.max(target.radius, sphere.radius);\r\n return;\r\n }\r\n const radius = (target.radius + sphere.radius + distance) * 0.5;\r\n vec3.scaleAndAdd(target.center, target.center, delta, (radius - target.radius) / distance);\r\n target.radius = radius;\r\n }\r\n}\r\n"],"names":["_EveChildLightingOver","_identity","EveChildLightingOverride","EveChildTransform","e","_init_priority","_init_extra_priority","_init_name","_init_extra_name","_init_backgroundIntensity","_init_extra_backgroundIntensity","_init_intensity","_init_extra_intensity","_init_reflectionIntensity","_init_extra_reflectionIntensity","_init_sunIntensity","_init_extra_sunIntensity","_init_sunColor","_init_extra_sunColor","_init_volumes","_init_extra_volumes","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","int32","schema","enum","string","float32","color","list","impl","implemented","adapted","constructor","args","center","vec3","create","radius","initialized","priority","name","backgroundIntensity","intensity","reflectionIntensity","sunIntensity","sunColor","vec4","fromValues","volumes","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","EveLightingOverride","GetOverrides","value","clone","GetName","SetName","String","GetBoundingSphere","out","set","UpdateSyncronous","_updateContext","_params","UpdateAsyncronous","updateContext","params","UpdateTransform","localToWorldTransform","mat4","length","viewPosition","renderContext","GetViewPosition","inverse","invert","worldTransform","localView","transformMat4","distance","volume","Math","max","Number","GetIntensity","GetLocalToWorldTransform","copy","Setup","scale","rotation","translation","lowestLodVisible","IsAlwaysOn","Initialize","UpdateVisibility","_parentTransform","_parentLod","GetRenderables","_renderables","ChangeLOD","_lod","#RebuildBoundingSphere","target","sphere","isFinite","Priority","Object","freeze","SCENE_DEFAULT_PRIORITY","LOW_PRIORITY","MEDIUM_PRIORITY","HIGH_PRIORITY","UI_PRIORITY","PRIORITY_COUNT","#UnionSphere","delta","subtract","scaleAndAdd"],"mappings":"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"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '
|
|
2
|
-
import { io, type, carbon, impl } from '@carbonenginejs/
|
|
3
|
-
import { EveChildMesh as _EveChildMesh } from '
|
|
4
|
-
import { mat4 } from '@carbonenginejs/
|
|
5
|
-
import { quat } from '@carbonenginejs/
|
|
6
|
-
import { sph3 } from '@carbonenginejs/
|
|
7
|
-
import { vec3 } from '@carbonenginejs/
|
|
8
|
-
import { vec4 } from '@carbonenginejs/
|
|
9
|
-
import { EveSpaceObjectPSData as _EveSpaceObjectPSData } from '../../../eve/EveSpaceObjectPSData.js';
|
|
10
|
-
import { EveSpaceObjectVSData as _EveSpaceObjectVSData } from '../../../eve/EveSpaceObjectVSData.js';
|
|
1
|
+
import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { io, type, carbon, impl } from '@carbonenginejs/runtime-utils/schema';
|
|
3
|
+
import { EveChildMesh as _EveChildMesh } from './EveChildMesh.js';
|
|
4
|
+
import { mat4 } from '@carbonenginejs/runtime-utils/mat4';
|
|
5
|
+
import { quat } from '@carbonenginejs/runtime-utils/quat';
|
|
6
|
+
import { sph3 } from '@carbonenginejs/runtime-utils/sph3';
|
|
7
|
+
import { vec3 } from '@carbonenginejs/runtime-utils/vec3';
|
|
8
|
+
import { vec4 } from '@carbonenginejs/runtime-utils/vec4';
|
|
11
9
|
|
|
12
10
|
let _initProto, _initClass, _init_linkStrengthCurves, _init_extra_linkStrengthCurves, _init_linkStrengthBindings, _init_extra_linkStrengthBindings, _init_linkBarrier, _init_extra_linkBarrier, _init_currentDistance, _init_extra_currentDistance, _init_currentDirection, _init_extra_currentDirection, _init_target, _init_extra_target, _init_linkStrength, _init_extra_linkStrength, _init_targetRadius, _init_extra_targetRadius;
|
|
13
11
|
|
|
14
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* A stretched link between a shield hull and an arc target: it orients itself
|
|
14
|
+
* along the arc, keeps its own final world placement, and inherits the hull per-object values.
|
|
15
|
+
*/
|
|
15
16
|
let _EveChildLink;
|
|
16
17
|
new class extends _identity {
|
|
17
18
|
static [class EveChildLink extends _EveChildMesh {
|
|
@@ -51,12 +52,6 @@ new class extends _identity {
|
|
|
51
52
|
/** m_isVisible (bool, EveChildMesh) - result of the last UpdateVisibility pass. */
|
|
52
53
|
#isVisible = (_init_extra_targetRadius(this), false);
|
|
53
54
|
|
|
54
|
-
/** m_vsData (EveSpaceObjectVSData, EveChildMesh) - CPU record for the per-object VS constants. */
|
|
55
|
-
#vsData = new _EveSpaceObjectVSData();
|
|
56
|
-
|
|
57
|
-
/** m_psData (EveSpaceObjectPSData, EveChildMesh) - CPU record for the per-object PS constants. */
|
|
58
|
-
#psData = new _EveSpaceObjectPSData();
|
|
59
|
-
|
|
60
55
|
/**
|
|
61
56
|
* Resolves the link direction and distance from the parent's model center to
|
|
62
57
|
* the target function (EveChildLink.cpp:40-68).
|
|
@@ -159,11 +154,17 @@ new class extends _identity {
|
|
|
159
154
|
const finalWorld = _EveChildLink.#finalWorld;
|
|
160
155
|
mat4.translate(finalWorld, this.worldTransform, shieldEllipsoidCenter);
|
|
161
156
|
|
|
162
|
-
//
|
|
163
|
-
//
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
157
|
+
// Carbon cpp:143-151: invalidate, inherit the hull's structs, then stamp
|
|
158
|
+
// the link's own placement into the records EveChildMesh owns - Carbon
|
|
159
|
+
// inherits the same pair. worldTransformLast deliberately carries the LINK
|
|
160
|
+
// ROTATION rather than the previous transform, so a stretched link resolves
|
|
161
|
+
// its motion vector along the arc.
|
|
162
|
+
const records = this.GetPerObjectRecords();
|
|
163
|
+
records.vs.Invalidate();
|
|
164
|
+
records.ps.Invalidate();
|
|
165
|
+
params.spaceObjectParent?.GetPerObjectStructs?.(records.vs, records.ps);
|
|
166
|
+
records.vs.SetAndTranspose("worldTransform", finalWorld);
|
|
167
|
+
records.vs.SetAndTranspose("worldTransformLast", linkRotation);
|
|
167
168
|
}
|
|
168
169
|
|
|
169
170
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EveChildLink.js","sources":["../../../../src/eve/child/EveChildLink.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/Eve/SpaceObject/Children/EveChildLink.h\n// Generated by format-carbon carbon-class --emit. Verify against eve/child/EveChildLink.json.\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { EveChildMesh } from \"./EveChildMesh.js\";\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\nimport { sph3 } from \"@carbonenginejs/runtime-utils/sph3\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\n\n/**\n * A stretched link between a shield hull and an arc target: it orients itself\n * along the arc, keeps its own final world placement, and inherits the hull per-object values.\n */\n@type.define({ className: \"EveChildLink\", family: \"eve/child\" })\nexport class EveChildLink extends EveChildMesh\n{\n\n /** m_linkStrengthCurves (PITriFunctionVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"ITriFunction\")\n linkStrengthCurves = [];\n\n /** m_linkStrengthBindings (PITr2ValueBindingVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"ITr2ValueBinding\")\n linkStrengthBindings = [];\n\n /** m_linkBarrier (float) [READWRITE] */\n @io.readwrite\n @type.float32\n linkBarrier = 1;\n\n /** m_currentDistance (float) [READ] */\n @io.read\n @type.float32\n currentDistance = 0;\n\n /** m_currentDirection (Vector3) [READ] */\n @io.read\n @type.vec3\n currentDirection = vec3.fromValues(0, 0, 1);\n\n /** m_target (ITriVectorFunctionPtr) [READWRITE] */\n @io.readwrite\n @type.objectRef(\"ITriVectorFunction\")\n target = null;\n\n /** m_linkStrength (float) [READ] */\n @io.read\n @type.float32\n linkStrength = 0;\n\n /** m_targetRadius (float) [READWRITE] */\n @io.readwrite\n @type.float32\n targetRadius = 0.5;\n\n /** m_isVisible (bool, EveChildMesh) - result of the last UpdateVisibility pass. */\n #isVisible = false;\n\n /**\n * Resolves the link direction and distance from the parent's model center to\n * the target function (EveChildLink.cpp:40-68).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"EveChildMesh::UpdateSyncronous (animation/audio bookkeeping, EveChildMesh.cpp:1002) is not yet ported on the JS base, so only the link targeting runs; collaborators are duck-typed.\")\n UpdateSyncronous(updateContext, params)\n {\n // Carbon first calls EveChildMesh::UpdateSyncronous (EveChildLink.cpp:42);\n // the JS base class does not implement it yet - see the class reason.\n if (!this.target)\n {\n return;\n }\n const time = Number(updateContext?.GetTime?.() ?? updateContext?.currentTime ?? 0);\n const targetPosition = EveChildLink.#targetPosition;\n vec3.set(targetPosition, 0, 0, 0);\n const targetResult = this.target.GetValueAt?.(time, targetPosition);\n if (targetResult && targetResult !== targetPosition && targetResult.length >= 3)\n {\n vec3.copy(targetPosition, targetResult);\n }\n if (!params?.spaceObjectParent)\n {\n // EveChildLink.cpp:57-60: without a source parent there is no direction.\n return;\n }\n const sourcePosition = EveChildLink.#sourcePosition;\n vec3.set(sourcePosition, 0, 0, 0);\n const sourceResult = params.spaceObjectParent.GetModelCenterWorldPosition?.(sourcePosition);\n if (sourceResult && sourceResult !== sourcePosition && sourceResult.length >= 3)\n {\n vec3.copy(sourcePosition, sourceResult);\n }\n vec3.subtract(this.currentDirection, targetPosition, sourcePosition);\n this.currentDistance = vec3.length(this.currentDirection);\n vec3.normalize(this.currentDirection, this.currentDirection);\n }\n\n /**\n * Evaluates the link-strength curves/bindings, then composes the link\n * placement matrices and the per-object VS record\n * (EveChildLink.cpp:74-152). Replaces (does not call) the EveChildMesh\n * async update, as Carbon does.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Per-object GPU buffer invalidation (cpp:143-144) is engine-owned; parents and curves are duck-typed and the vs/ps records are the backend-neutral value classes.\")\n UpdateAsyncronous(_updateContext, params)\n {\n // Update the special link curves with last frame's strength, then copy\n // the bound values (EveChildLink.cpp:76-85).\n for (const curve of this.linkStrengthCurves)\n {\n curve?.UpdateValue?.(this.linkStrength);\n }\n for (const binding of this.linkStrengthBindings)\n {\n binding?.CopyValue?.();\n }\n\n // Parent world matrix and the parent's shield ellipsoid offset\n // (EveChildLink.cpp:87-106).\n const shieldEllipsoidCenter = EveChildLink.#shieldEllipsoidCenter;\n vec3.set(shieldEllipsoidCenter, 0, 0, 0);\n if (params?.childParent)\n {\n EveChildLink.#CopyLocalToWorld(this.worldTransform, params.childParent);\n }\n else if (params?.spaceObjectParent)\n {\n EveChildLink.#CopyLocalToWorld(this.worldTransform, params.spaceObjectParent);\n // Carbon queries the EveSpaceObject2 interface for GetShapeEllipsoid\n // (EveChildLink.cpp:96-101); parents without the duck-typed accessor\n // keep the zero center.\n params.spaceObjectParent.GetShapeEllipsoid?.(shieldEllipsoidCenter, EveChildLink.#shieldEllipsoidRadii);\n }\n else\n {\n return;\n }\n\n // Link rotation arcs the authored +Y mesh axis onto the current direction\n // (EveChildLink.cpp:108-111, TriMatrixRotationArc).\n const linkRotation = EveChildLink.#linkRotation;\n quat.rotationTo(EveChildLink.#arcQuat, EveChildLink.#meshDirection, this.currentDirection);\n mat4.fromQuat(linkRotation, EveChildLink.#arcQuat);\n\n if (this.currentDistance <= this.targetRadius)\n {\n // Always at 100% within the target radius (EveChildLink.cpp:113-117).\n this.linkStrength = 1;\n }\n else\n {\n // Strength from distance vs. barrier (EveChildLink.cpp:119-123).\n const div = Math.abs(this.linkBarrier - this.targetRadius);\n this.linkStrength = Math.min(1, Math.max(0, 1 - (this.currentDistance - this.targetRadius) / div));\n }\n\n // Inverse rotation-only world matrix (EveChildLink.cpp:125-128).\n const inverseRotationWorld = EveChildLink.#inverseRotationWorld;\n mat4.copy(inverseRotationWorld, this.worldTransform);\n inverseRotationWorld[12] = 0;\n inverseRotationWorld[13] = 0;\n inverseRotationWorld[14] = 0;\n if (!mat4.invert(inverseRotationWorld, inverseRotationWorld))\n {\n // JS-only guard: Carbon inverts unconditionally.\n mat4.identity(inverseRotationWorld);\n }\n\n // Carbon (row-vector): linkRotationMat * invRotationWorldMat - linkRotationMat first. (EveChildLink.cpp:131)\n mat4.multiply(linkRotation, inverseRotationWorld, linkRotation);\n\n // Stamp the offset to the target into the translation row\n // (EveChildLink.cpp:133-135, TriMatrixOverwriteTranslation).\n linkRotation[12] = this.currentDistance * this.currentDirection[0];\n linkRotation[13] = this.currentDistance * this.currentDirection[1];\n linkRotation[14] = this.currentDistance * this.currentDirection[2];\n\n // Carbon (row-vector): TranslationMatrix(shieldEllipsoidCenter) * m_worldTransform - translate first. (EveChildLink.cpp:138-140)\n const finalWorld = EveChildLink.#finalWorld;\n mat4.translate(finalWorld, this.worldTransform, shieldEllipsoidCenter);\n\n // Carbon cpp:143-151: invalidate, inherit the hull's structs, then stamp\n // the link's own placement into the records EveChildMesh owns - Carbon\n // inherits the same pair. worldTransformLast deliberately carries the LINK\n // ROTATION rather than the previous transform, so a stretched link resolves\n // its motion vector along the arc.\n const records = this.GetPerObjectRecords();\n records.vs.Invalidate();\n records.ps.Invalidate();\n params.spaceObjectParent?.GetPerObjectStructs?.(records.vs, records.ps);\n records.vs.SetAndTranspose(\"worldTransform\", finalWorld);\n records.vs.SetAndTranspose(\"worldTransformLast\", linkRotation);\n }\n\n /**\n * HOTFIX visibility from Carbon: never LOD out the tethering effect - a\n * present mesh is always visible (EveChildLink.cpp:154-169).\n */\n @carbon.method\n @impl.implemented\n UpdateVisibility(_updateContext, _parentTransform, _parentLod)\n {\n if (!this.display)\n {\n return;\n }\n this.#isVisible = false;\n this.currentScreenSize = -1;\n if (this.mesh)\n {\n this.#isVisible = true;\n }\n }\n\n /**\n * Sphere at the center of the link: (direction, 1) * distance / 2\n * transformed by the world matrix (EveChildLink.cpp:171-178).\n */\n @carbon.method\n @impl.implemented\n GetBoundingSphere(out = vec4.create(), _query = 0)\n {\n const halfDistance = this.currentDistance / 2;\n vec4.set(\n out,\n this.currentDirection[0] * halfDistance,\n this.currentDirection[1] * halfDistance,\n this.currentDirection[2] * halfDistance,\n halfDistance\n );\n sph3.transformMat4(out, out, this.worldTransform);\n return true;\n }\n\n /** Links never cast shadows (EveChildLink.cpp:180-183). */\n @carbon.method\n @impl.implemented\n IsCastingShadow(_cameraFrustum, _shadowFrustum, _renderReason, _sizeInShadow)\n {\n return false;\n }\n\n /** Returns the local-to-world matrix (EveChildLink.cpp:189-192). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"CarbonEngineJS uses an out-last signature and returns the matrix when no output is supplied.\")\n GetLocalToWorldTransform(out = null)\n {\n if (out)\n {\n return mat4.copy(out, this.worldTransform);\n }\n return this.worldTransform;\n }\n\n /**\n * Copies a parent's local-to-world matrix into out, tolerating both the\n * out-parameter and the return-the-matrix JS signatures.\n */\n static #CopyLocalToWorld(out, parent)\n {\n const source = parent.GetLocalToWorldTransform?.(out);\n if (source && source !== out && source.length === 16)\n {\n mat4.copy(out, source);\n }\n return out;\n }\n\n static #meshDirection = vec3.fromValues(0, 1, 0);\n\n static #arcQuat = quat.create();\n\n static #linkRotation = mat4.create();\n\n static #inverseRotationWorld = mat4.create();\n\n static #finalWorld = mat4.create();\n\n static #shieldEllipsoidCenter = vec3.create();\n\n static #shieldEllipsoidRadii = vec3.create();\n\n static #targetPosition = vec3.create();\n\n static #sourcePosition = vec3.create();\n\n}\n"],"names":["_EveChildLink","_identity","EveChildLink","EveChildMesh","e","_init_linkStrengthCurves","_init_extra_linkStrengthCurves","_init_linkStrengthBindings","_init_extra_linkStrengthBindings","_init_linkBarrier","_init_extra_linkBarrier","_init_currentDistance","_init_extra_currentDistance","_init_currentDirection","_init_extra_currentDirection","_init_target","_init_extra_target","_init_linkStrength","_init_extra_linkStrength","_init_targetRadius","_init_extra_targetRadius","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","list","readwrite","float32","read","vec3","objectRef","carbon","method","impl","adapted","reason","implemented","linkStrengthCurves","linkStrengthBindings","linkBarrier","currentDistance","currentDirection","fromValues","target","linkStrength","targetRadius","UpdateSyncronous","updateContext","params","time","Number","GetTime","currentTime","targetPosition","set","targetResult","GetValueAt","length","copy","spaceObjectParent","sourcePosition","sourceResult","GetModelCenterWorldPosition","subtract","normalize","UpdateAsyncronous","_updateContext","curve","UpdateValue","binding","CopyValue","shieldEllipsoidCenter","childParent","worldTransform","GetShapeEllipsoid","linkRotation","quat","rotationTo","mat4","fromQuat","div","Math","abs","min","max","inverseRotationWorld","invert","identity","multiply","finalWorld","translate","records","GetPerObjectRecords","vs","Invalidate","ps","GetPerObjectStructs","SetAndTranspose","UpdateVisibility","_parentTransform","_parentLod","display","currentScreenSize","mesh","GetBoundingSphere","out","vec4","create","_query","halfDistance","sph3","transformMat4","IsCastingShadow","_cameraFrustum","_shadowFrustum","_renderReason","_sizeInShadow","GetLocalToWorldTransform","#CopyLocalToWorld","parent","source","constructor"],"mappings":";;;;;;;;;;;AAWA;AACA;AACA;AACA;AAHA,IAAAA;AAAA,IAAA,cAAAC,SAAA,CAAA;AAAA,EAAA,QAIA,MAAAC,YAAA,SACkCC,aAAY,CAC9C;AAAA,IAAA;AAAA,MAAA,CAAA;AAAAC,QAAAA,CAAA,EAAA,CAAAC,wBAAA,EAAAC,8BAAA,EAAAC,0BAAA,EAAAC,gCAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,qBAAA,EAAAC,2BAAA,EAAAC,sBAAA,EAAAC,4BAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,wBAAA,EAAAC,kBAAA,EAAAC,wBAAA,EAAAC,UAAA,CAAA;QAAAC,CAAA,EAAA,CAAAtB,aAAA,EAAAuB,UAAA;AAAA,OAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,QAAAA,SAAS,EAAE,cAAc;AAAEC,QAAAA,MAAM,EAAE;OAAa,CAAC,MAK7DC,EAAE,EAAFA,EAAE,CAACC,OAAO,UACVL,IAAI,CAACM,IAAI,CAAC,cAAc,CAAC,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAIzBF,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAA,MAAA,EACVL,IAAI,CAACM,IAAI,CAAC,kBAAkB,CAAC,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAI7BF,EAAE,EAAFA,EAAE,CAACG,SAAS,EACZP,IAAI,EAAJA,IAAI,CAACQ,OAAO,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAIZJ,EAAE,EAAFA,EAAE,CAACK,IAAI,EACPT,IAAI,EAAJA,IAAI,CAACQ,OAAO,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAIZJ,EAAE,EAAFA,EAAE,CAACK,IAAI,EACPT,IAAI,EAAJA,IAAI,CAACU,IAAI,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAITN,EAAE,EAAFA,EAAE,CAACG,SAAS,EAAA,MAAA,EACZP,IAAI,CAACW,SAAS,CAAC,oBAAoB,CAAC,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAIpCP,EAAE,EAAFA,EAAE,CAACK,IAAI,EACPT,IAAI,EAAJA,IAAI,CAACQ,OAAO,CAAA,EAAA,EAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAIZJ,EAAE,EAAFA,EAAE,CAACG,SAAS,EACZP,IAAI,EAAJA,IAAI,CAACQ,OAAO,0BAUZI,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,UACZD,IAAI,CAACE,MAAM,CAAC,sLAAsL,CAAC,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAwCnMJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACE,MAAM,CAAC,kKAAkK,CAAC,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CA+F/KJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACG,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAmBhBL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACG,WAAW,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAgBhBL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACG,WAAW,6BAOhBL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,UACZD,IAAI,CAACE,MAAM,CAAC,8FAA8F,CAAC,CAAA,EAAA,EAAA,EAAA,0BAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EA5O5EtC,aAAY,CAAA;AAAA;AAG5C;AAGAwC,IAAAA,kBAAkB,IAAAtB,UAAA,CAAA,IAAA,CAAA,EAAAhB,wBAAA,OAAG,EAAE,CAAA;;AAEvB;AAGAuC,IAAAA,oBAAoB,IAAAtC,8BAAA,CAAA,IAAA,CAAA,EAAAC,0BAAA,OAAG,EAAE,CAAA;;AAEzB;AAGAsC,IAAAA,WAAW,IAAArC,gCAAA,CAAA,IAAA,CAAA,EAAAC,iBAAA,OAAG,CAAC,CAAA;;AAEf;AAGAqC,IAAAA,eAAe,IAAApC,uBAAA,CAAA,IAAA,CAAA,EAAAC,qBAAA,OAAG,CAAC,CAAA;;AAEnB;AAGAoC,IAAAA,gBAAgB,IAAAnC,2BAAA,CAAA,IAAA,CAAA,EAAAC,sBAAA,OAAGsB,IAAI,CAACa,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;;AAE3C;AAGAC,IAAAA,MAAM,IAAAnC,4BAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,IAAI,CAAA;;AAEb;AAGAmC,IAAAA,YAAY,IAAAlC,kBAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,OAAG,CAAC,CAAA;;AAEhB;AAGAkC,IAAAA,YAAY,IAAAjC,wBAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,OAAG,GAAG,CAAA;;AAElB;AACA,IAAA,UAAU,IAAAC,wBAAA,CAAA,IAAA,CAAA,EAAG,KAAK;;AAElB;AACF;AACA;AACA;AAIEgC,IAAAA,gBAAgBA,CAACC,aAAa,EAAEC,MAAM,EACtC;AACE;AACA;AACA,MAAA,IAAI,CAAC,IAAI,CAACL,MAAM,EAChB;AACE,QAAA;AACF,MAAA;AACA,MAAA,MAAMM,IAAI,GAAGC,MAAM,CAACH,aAAa,EAAEI,OAAO,IAAI,IAAIJ,aAAa,EAAEK,WAAW,IAAI,CAAC,CAAC;AAClF,MAAA,MAAMC,cAAc,GAAGzD,aAAY,CAAC,eAAe;MACnDiC,IAAI,CAACyB,GAAG,CAACD,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACjC,MAAME,YAAY,GAAG,IAAI,CAACZ,MAAM,CAACa,UAAU,GAAGP,IAAI,EAAEI,cAAc,CAAC;MACnE,IAAIE,YAAY,IAAIA,YAAY,KAAKF,cAAc,IAAIE,YAAY,CAACE,MAAM,IAAI,CAAC,EAC/E;AACE5B,QAAAA,IAAI,CAAC6B,IAAI,CAACL,cAAc,EAAEE,YAAY,CAAC;AACzC,MAAA;AACA,MAAA,IAAI,CAACP,MAAM,EAAEW,iBAAiB,EAC9B;AACE;AACA,QAAA;AACF,MAAA;AACA,MAAA,MAAMC,cAAc,GAAGhE,aAAY,CAAC,eAAe;MACnDiC,IAAI,CAACyB,GAAG,CAACM,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACjC,MAAMC,YAAY,GAAGb,MAAM,CAACW,iBAAiB,CAACG,2BAA2B,GAAGF,cAAc,CAAC;MAC3F,IAAIC,YAAY,IAAIA,YAAY,KAAKD,cAAc,IAAIC,YAAY,CAACJ,MAAM,IAAI,CAAC,EAC/E;AACE5B,QAAAA,IAAI,CAAC6B,IAAI,CAACE,cAAc,EAAEC,YAAY,CAAC;AACzC,MAAA;MACAhC,IAAI,CAACkC,QAAQ,CAAC,IAAI,CAACtB,gBAAgB,EAAEY,cAAc,EAAEO,cAAc,CAAC;MACpE,IAAI,CAACpB,eAAe,GAAGX,IAAI,CAAC4B,MAAM,CAAC,IAAI,CAAChB,gBAAgB,CAAC;MACzDZ,IAAI,CAACmC,SAAS,CAAC,IAAI,CAACvB,gBAAgB,EAAE,IAAI,CAACA,gBAAgB,CAAC;AAC9D,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AAIEwB,IAAAA,iBAAiBA,CAACC,cAAc,EAAElB,MAAM,EACxC;AACE;AACA;AACA,MAAA,KAAK,MAAMmB,KAAK,IAAI,IAAI,CAAC9B,kBAAkB,EAC3C;AACE8B,QAAAA,KAAK,EAAEC,WAAW,GAAG,IAAI,CAACxB,YAAY,CAAC;AACzC,MAAA;AACA,MAAA,KAAK,MAAMyB,OAAO,IAAI,IAAI,CAAC/B,oBAAoB,EAC/C;QACE+B,OAAO,EAAEC,SAAS,IAAI;AACxB,MAAA;;AAEA;AACA;AACA,MAAA,MAAMC,qBAAqB,GAAG3E,aAAY,CAAC,sBAAsB;MACjEiC,IAAI,CAACyB,GAAG,CAACiB,qBAAqB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACxC,IAAIvB,MAAM,EAAEwB,WAAW,EACvB;QACE5E,aAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC6E,cAAc,EAAEzB,MAAM,CAACwB,WAAW,CAAC;AACzE,MAAA,CAAC,MACI,IAAIxB,MAAM,EAAEW,iBAAiB,EAClC;QACE/D,aAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC6E,cAAc,EAAEzB,MAAM,CAACW,iBAAiB,CAAC;AAC7E;AACA;AACA;QACAX,MAAM,CAACW,iBAAiB,CAACe,iBAAiB,GAAGH,qBAAqB,EAAE3E,aAAY,CAAC,qBAAqB,CAAC;AACzG,MAAA,CAAC,MAED;AACE,QAAA;AACF,MAAA;;AAEA;AACA;AACA,MAAA,MAAM+E,YAAY,GAAG/E,aAAY,CAAC,aAAa;AAC/CgF,MAAAA,IAAI,CAACC,UAAU,CAACjF,aAAY,CAAC,QAAQ,EAAEA,aAAY,CAAC,cAAc,EAAE,IAAI,CAAC6C,gBAAgB,CAAC;MAC1FqC,IAAI,CAACC,QAAQ,CAACJ,YAAY,EAAE/E,aAAY,CAAC,QAAQ,CAAC;AAElD,MAAA,IAAI,IAAI,CAAC4C,eAAe,IAAI,IAAI,CAACK,YAAY,EAC7C;AACE;QACA,IAAI,CAACD,YAAY,GAAG,CAAC;AACvB,MAAA,CAAC,MAED;AACE;AACA,QAAA,MAAMoC,GAAG,GAAGC,IAAI,CAACC,GAAG,CAAC,IAAI,CAAC3C,WAAW,GAAG,IAAI,CAACM,YAAY,CAAC;AAC1D,QAAA,IAAI,CAACD,YAAY,GAAGqC,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEF,IAAI,CAACG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC5C,eAAe,GAAG,IAAI,CAACK,YAAY,IAAImC,GAAG,CAAC,CAAC;AACpG,MAAA;;AAEA;AACA,MAAA,MAAMK,oBAAoB,GAAGzF,aAAY,CAAC,qBAAqB;MAC/DkF,IAAI,CAACpB,IAAI,CAAC2B,oBAAoB,EAAE,IAAI,CAACZ,cAAc,CAAC;AACpDY,MAAAA,oBAAoB,CAAC,EAAE,CAAC,GAAG,CAAC;AAC5BA,MAAAA,oBAAoB,CAAC,EAAE,CAAC,GAAG,CAAC;AAC5BA,MAAAA,oBAAoB,CAAC,EAAE,CAAC,GAAG,CAAC;MAC5B,IAAI,CAACP,IAAI,CAACQ,MAAM,CAACD,oBAAoB,EAAEA,oBAAoB,CAAC,EAC5D;AACE;AACAP,QAAAA,IAAI,CAACS,QAAQ,CAACF,oBAAoB,CAAC;AACrC,MAAA;;AAEA;MACAP,IAAI,CAACU,QAAQ,CAACb,YAAY,EAAEU,oBAAoB,EAAEV,YAAY,CAAC;;AAE/D;AACA;AACAA,MAAAA,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAACnC,eAAe,GAAG,IAAI,CAACC,gBAAgB,CAAC,CAAC,CAAC;AAClEkC,MAAAA,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAACnC,eAAe,GAAG,IAAI,CAACC,gBAAgB,CAAC,CAAC,CAAC;AAClEkC,MAAAA,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAACnC,eAAe,GAAG,IAAI,CAACC,gBAAgB,CAAC,CAAC,CAAC;;AAElE;AACA,MAAA,MAAMgD,UAAU,GAAG7F,aAAY,CAAC,WAAW;MAC3CkF,IAAI,CAACY,SAAS,CAACD,UAAU,EAAE,IAAI,CAAChB,cAAc,EAAEF,qBAAqB,CAAC;;AAEtE;AACA;AACA;AACA;AACA;AACA,MAAA,MAAMoB,OAAO,GAAG,IAAI,CAACC,mBAAmB,EAAE;AAC1CD,MAAAA,OAAO,CAACE,EAAE,CAACC,UAAU,EAAE;AACvBH,MAAAA,OAAO,CAACI,EAAE,CAACD,UAAU,EAAE;AACvB9C,MAAAA,MAAM,CAACW,iBAAiB,EAAEqC,mBAAmB,GAAGL,OAAO,CAACE,EAAE,EAAEF,OAAO,CAACI,EAAE,CAAC;MACvEJ,OAAO,CAACE,EAAE,CAACI,eAAe,CAAC,gBAAgB,EAAER,UAAU,CAAC;MACxDE,OAAO,CAACE,EAAE,CAACI,eAAe,CAAC,oBAAoB,EAAEtB,YAAY,CAAC;AAChE,IAAA;;AAEA;AACF;AACA;AACA;AAGEuB,IAAAA,gBAAgBA,CAAChC,cAAc,EAAEiC,gBAAgB,EAAEC,UAAU,EAC7D;AACE,MAAA,IAAI,CAAC,IAAI,CAACC,OAAO,EACjB;AACE,QAAA;AACF,MAAA;AACA,MAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,MAAA,IAAI,CAACC,iBAAiB,GAAG,EAAE;MAC3B,IAAI,IAAI,CAACC,IAAI,EACb;AACE,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACxB,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;AAGEC,IAAAA,iBAAiBA,CAACC,GAAG,GAAGC,IAAI,CAACC,MAAM,EAAE,EAAEC,MAAM,GAAG,CAAC,EACjD;AACE,MAAA,MAAMC,YAAY,GAAG,IAAI,CAACrE,eAAe,GAAG,CAAC;AAC7CkE,MAAAA,IAAI,CAACpD,GAAG,CACNmD,GAAG,EACH,IAAI,CAAChE,gBAAgB,CAAC,CAAC,CAAC,GAAGoE,YAAY,EACvC,IAAI,CAACpE,gBAAgB,CAAC,CAAC,CAAC,GAAGoE,YAAY,EACvC,IAAI,CAACpE,gBAAgB,CAAC,CAAC,CAAC,GAAGoE,YAAY,EACvCA,YACF,CAAC;MACDC,IAAI,CAACC,aAAa,CAACN,GAAG,EAAEA,GAAG,EAAE,IAAI,CAAChC,cAAc,CAAC;AACjD,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;IAGAuC,eAAeA,CAACC,cAAc,EAAEC,cAAc,EAAEC,aAAa,EAAEC,aAAa,EAC5E;AACE,MAAA,OAAO,KAAK;AACd,IAAA;;AAEA;AAIAC,IAAAA,wBAAwBA,CAACZ,GAAG,GAAG,IAAI,EACnC;AACE,MAAA,IAAIA,GAAG,EACP;QACE,OAAO3B,IAAI,CAACpB,IAAI,CAAC+C,GAAG,EAAE,IAAI,CAAChC,cAAc,CAAC;AAC5C,MAAA;MACA,OAAO,IAAI,CAACA,cAAc;AAC5B,IAAA;;AAEA;AACF;AACA;AACA;GA6BC;AA5BQ,EAAA,iBAAiB6C,CAACb,GAAG,EAAEc,MAAM,EACpC;AACE,IAAA,MAAMC,MAAM,GAAGD,MAAM,CAACF,wBAAwB,GAAGZ,GAAG,CAAC;IACrD,IAAIe,MAAM,IAAIA,MAAM,KAAKf,GAAG,IAAIe,MAAM,CAAC/D,MAAM,KAAK,EAAE,EACpD;AACEqB,MAAAA,IAAI,CAACpB,IAAI,CAAC+C,GAAG,EAAEe,MAAM,CAAC;AACxB,IAAA;AACA,IAAA,OAAOf,GAAG;AACZ,EAAA;EAEO,cAAc,GAAG5E,IAAI,CAACa,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAEzC,EAAA,QAAQ,GAAGkC,IAAI,CAAC+B,MAAM,EAAE;AAExB,EAAA,aAAa,GAAG7B,IAAI,CAAC6B,MAAM,EAAE;AAE7B,EAAA,qBAAqB,GAAG7B,IAAI,CAAC6B,MAAM,EAAE;AAErC,EAAA,WAAW,GAAG7B,IAAI,CAAC6B,MAAM,EAAE;AAE3B,EAAA,sBAAsB,GAAG9E,IAAI,CAAC8E,MAAM,EAAE;AAEtC,EAAA,qBAAqB,GAAG9E,IAAI,CAAC8E,MAAM,EAAE;AAErC,EAAA,eAAe,GAAG9E,IAAI,CAAC8E,MAAM,EAAE;AAE/B,EAAA,eAAe,GAAG9E,IAAI,CAAC8E,MAAM,EAAE;EAACc,WAAAA,GAAA;IAAA,KAAA,CAAA/H,aAAA,GAAAuB,UAAA,EAAA;AAAA,EAAA;AAAA,CAAA,EAAA;;;;"}
|