@carbonenginejs/runtime-trinity 0.4.3 → 0.5.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/dist/curves/CjsGrannyCurves.js +12 -13
- package/dist/curves/CjsGrannyCurves.js.map +1 -1
- package/dist/eve/EveBannerSet.js +20 -1
- package/dist/eve/EveBannerSet.js.map +1 -1
- package/dist/eve/EveBoosterSet2.js +19 -1
- package/dist/eve/EveBoosterSet2.js.map +1 -1
- package/dist/eve/EveComponentTypes.js +116 -0
- package/dist/eve/EveComponentTypes.js.map +1 -0
- package/dist/eve/EveHazeSet.js +18 -1
- package/dist/eve/EveHazeSet.js.map +1 -1
- package/dist/eve/EvePlaneSet.js +19 -1
- package/dist/eve/EvePlaneSet.js.map +1 -1
- package/dist/eve/EveSpotlightSet.js +18 -1
- package/dist/eve/EveSpotlightSet.js.map +1 -1
- package/dist/eve/EveSpriteLineSet.js +18 -1
- package/dist/eve/EveSpriteLineSet.js.map +1 -1
- package/dist/eve/EveSpriteSet.js +18 -1
- package/dist/eve/EveSpriteSet.js.map +1 -1
- package/dist/eve/EveUpdateContext.js +195 -31
- package/dist/eve/EveUpdateContext.js.map +1 -1
- package/dist/eve/attachment/turrets/EveTurretFiringFX.js +23 -1
- package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
- package/dist/eve/attachment/turrets/EveTurretSet.js +43 -1
- package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/eve/child/EveChildContainer.js +95 -60
- package/dist/eve/child/EveChildContainer.js.map +1 -1
- package/dist/eve/child/EveChildFogVolume.js +14 -1
- package/dist/eve/child/EveChildFogVolume.js.map +1 -1
- package/dist/eve/child/EveChildInstancedMeshes.js +43 -1
- package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
- package/dist/eve/child/EveChildLightingOverride.js +14 -1
- package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
- package/dist/eve/child/EveChildMesh.js +121 -80
- package/dist/eve/child/EveChildMesh.js.map +1 -1
- package/dist/eve/child/EveChildTransform.js +27 -17
- package/dist/eve/child/EveChildTransform.js.map +1 -1
- package/dist/eve/index.js +2 -0
- package/dist/eve/index.js.map +1 -1
- package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +14 -1
- package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch.js +11 -1
- package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch2.js +14 -1
- package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch3.js +24 -1
- package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/eve/scene/EveSpaceScene.js +443 -16
- package/dist/eve/scene/EveSpaceScene.js.map +1 -1
- package/dist/eve/spaceObject/EveEffectRoot2.js +28 -1
- package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
- package/dist/eve/spaceObject/EveMobile.js +25 -1
- package/dist/eve/spaceObject/EveMobile.js.map +1 -1
- package/dist/eve/spaceObject/EveSpaceObject2.js +59 -1
- package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/generated/eve/child/EveChildCloud2.js +88 -5
- package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/generated/eve/child/EveChildExplosion.js +17 -1
- package/dist/generated/eve/child/EveChildExplosion.js.map +1 -1
- package/dist/generated/eve/child/EveChildInstanceContainer.js +29 -1
- package/dist/generated/eve/child/EveChildInstanceContainer.js.map +1 -1
- package/dist/generated/eve/child/EveChildParticleSystem.js +32 -24
- package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/generated/eve/child/EveChildPlug.js +23 -1
- package/dist/generated/eve/child/EveChildPlug.js.map +1 -1
- package/dist/generated/eve/child/EveChildPostProcessVolume.js +27 -14
- package/dist/generated/eve/child/EveChildPostProcessVolume.js.map +1 -1
- package/dist/generated/eve/child/EveChildRef.js +17 -1
- package/dist/generated/eve/child/EveChildRef.js.map +1 -1
- package/dist/generated/eve/child/EveChildSocket.js +17 -1
- package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
- package/dist/generated/eve/child/behaviors/BehaviorGroup.js +43 -40
- package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
- package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js +53 -49
- package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +1 -1
- package/dist/generated/eve/scene/EveComponentRegistry.js +11 -0
- package/dist/generated/eve/scene/EveComponentRegistry.js.map +1 -1
- package/dist/generated/eve/scene/TriShadowFrustum.js +74 -22
- package/dist/generated/eve/scene/TriShadowFrustum.js.map +1 -1
- package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +128 -26
- package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +1 -1
- package/dist/generated/eve/smartLights/EveChildSmartLightSet.js +37 -24
- package/dist/generated/eve/smartLights/EveChildSmartLightSet.js.map +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +29 -28
- package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
- package/dist/generated/eve/spaceObject/EveShip2.js +39 -19
- package/dist/generated/eve/spaceObject/EveShip2.js.map +1 -1
- package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +28 -1
- package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
- package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js +28 -1
- package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/trinityCore/TriFrustum.js +374 -0
- package/dist/trinityCore/TriFrustum.js.map +1 -0
- package/dist/trinityCore/TriFrustumOrtho.js +158 -0
- package/dist/trinityCore/TriFrustumOrtho.js.map +1 -0
- package/dist/trinityCore/index.js +2 -0
- package/dist/trinityCore/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveFiringEffectElementContainer.js","sources":["../../../../../src/eve/renderable/stretch/EveFiringEffectElementContainer.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Renderable\\Stretch\\EveFiringEffectElementContainer.h\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Renderable\\Stretch\\EveFiringEffectElementContainer.cpp\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\nimport { vec3 } from \"@carbonenginejs/core-math/vec3\";\nimport { carbon, impl, io, type } from \"@carbonenginejs/core-types/schema\";\nimport { EveEntity } from \"../../../generated/eve/EveEntity.js\";\nimport { collectRenderables, updateChildAsync, updateChildSync } from \"./CjsStretchRuntime.js\";\n\n\n@type.define({ className: \"EveFiringEffectElementContainer\", family: \"eve/renderable/stretch\" })\nexport class EveFiringEffectElementContainer extends EveEntity\n{\n @io.persistOnly @type.model(\"IEveFiringEffectElement\") element = null;\n @io.readwrite @type.vec3 source = vec3.create();\n @io.persist @type.mat4 sourceTransform = mat4.create();\n @io.persist @type.vec3 destination = vec3.create();\n @io.persist @type.boolean useSourceTransform = false;\n @io.persist @type.boolean displayDestination = true;\n @io.persist @type.boolean displaySource = true;\n @io.persist @type.boolean display = true;\n @io.persist @type.float32 destinationScale = 1;\n\n #active = false;\n\n @carbon.method @impl.adapted\n @impl.reason(\"JavaScript uses duck-typed firing elements rather than Carbon QueryInterface dispatch.\")\n UpdateSynchronous(context)\n {\n if (!this.element) return true;\n const source = this.useSourceTransform ? this.sourceTransform : this.source;\n this.element.SetFiringTransform?.(source, this.destination);\n this.element.SetDestObjectScale?.(this.destinationScale);\n this.element.DisplayEndPoints?.(this.displaySource, this.displayDestination);\n if (this.#active)\n {\n if (typeof this.element.Update === \"function\") this.element.Update(context);\n else\n {\n updateChildSync(this.element, context);\n updateChildAsync(this.element, context);\n }\n }\n return true;\n }\n\n UpdateSyncronous(context)\n {\n return this.UpdateSynchronous(context);\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"The browser runtime forwards lifecycle calls directly to the hydrated element.\")\n UpdateAsynchronous(context)\n {\n void context;\n return true;\n }\n\n UpdateAsyncronous(context)\n {\n return this.UpdateAsynchronous(context);\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"Visibility is graph-owned; the renderer consumes the collected element later.\")\n UpdateVisibility(context, transform)\n {\n if (this.display) this.element?.UpdateVisibility?.(context, transform);\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"Renderable collection is backend-neutral and leaves batch realization to the engine package.\")\n GetRenderables(out = [])\n {\n if (this.display) collectRenderables(this.element, out);\n return out;\n }\n\n @carbon.method @impl.implemented\n StartFiring(delay = 0)\n {\n this.element?.StartFiring?.(delay);\n this.#active = true;\n }\n\n @carbon.method @impl.implemented\n StopFiring()\n {\n this.element?.StopFiring?.();\n this.#active = false;\n }\n\n @carbon.method @impl.implemented\n SetActive(active)\n {\n if (!!active === this.#active) return;\n if (active) this.StartFiring(0);\n else this.StopFiring();\n }\n\n @carbon.method @impl.implemented\n GetActive()\n {\n return this.#active;\n }\n\n @carbon.method @impl.implemented\n SetElement(element)\n {\n this.element = element ?? null;\n }\n\n @carbon.method @impl.implemented\n GetElement()\n {\n return this.element;\n }\n\n @carbon.method @impl.implemented\n SetFiringTransform(source, destination)\n {\n if (source?.length === 16)\n {\n mat4.copy(this.sourceTransform, source);\n mat4.getTranslation(this.source, source);\n this.useSourceTransform = true;\n }\n else\n {\n vec3.copy(this.source, source ?? EveFiringEffectElementContainer.#zero);\n this.useSourceTransform = false;\n }\n vec3.copy(this.destination, destination);\n }\n\n @carbon.method @impl.implemented\n SetDestObjectScale(scale)\n {\n this.destinationScale = Number(scale);\n }\n\n @carbon.method @impl.implemented\n DisplayEndPoints(displaySource, displayDestination)\n {\n this.displaySource = !!displaySource;\n this.displayDestination = !!displayDestination;\n }\n\n @carbon.method @impl.implemented\n SetDisplay(display)\n {\n this.display = !!display;\n }\n\n @carbon.method @impl.implemented\n GetCurveDuration()\n {\n return Number(this.element?.GetCurveDuration?.() ?? 0);\n }\n\n static #zero = vec3.create();\n}\n"],"names":["_EveFiringEffectEleme","_identity","EveFiringEffectElementContainer","EveEntity","e","_init_element","_init_extra_element","_init_source","_init_extra_source","_init_sourceTransform","_init_extra_sourceTransform","_init_destination","_init_extra_destination","_init_useSourceTransform","_init_extra_useSourceTransform","_init_displayDestination","_init_extra_displayDestination","_init_displaySource","_init_extra_displaySource","_init_display","_init_extra_display","_init_destinationScale","_init_extra_destinationScale","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persistOnly","model","readwrite","vec3","persist","mat4","boolean","float32","carbon","method","impl","adapted","reason","implemented","element","source","create","sourceTransform","destination","useSourceTransform","displayDestination","displaySource","display","destinationScale","UpdateSynchronous","context","SetFiringTransform","SetDestObjectScale","DisplayEndPoints","Update","updateChildSync","updateChildAsync","UpdateSyncronous","UpdateAsynchronous","UpdateAsyncronous","UpdateVisibility","transform","GetRenderables","out","collectRenderables","StartFiring","delay","StopFiring","SetActive","active","GetActive","SetElement","GetElement","length","copy","getTranslation","scale","Number","SetDisplay","GetCurveDuration","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveFiringEffectElementContainer.js","sources":["../../../../../src/eve/renderable/stretch/EveFiringEffectElementContainer.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Renderable\\Stretch\\EveFiringEffectElementContainer.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Renderable\\Stretch\\EveFiringEffectElementContainer.cpp\r\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\r\nimport { vec3 } from \"@carbonenginejs/core-math/vec3\";\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/core-types/schema\";\r\nimport { EveEntity } from \"../../../generated/eve/EveEntity.js\";\r\nimport { collectRenderables, updateChildAsync, updateChildSync } from \"./CjsStretchRuntime.js\";\r\n\r\n\r\n@type.define({ className: \"EveFiringEffectElementContainer\", family: \"eve/renderable/stretch\" })\r\nexport class EveFiringEffectElementContainer extends EveEntity\r\n{\r\n @io.persistOnly @type.model(\"IEveFiringEffectElement\") element = null;\r\n @io.readwrite @type.vec3 source = vec3.create();\r\n @io.persist @type.mat4 sourceTransform = mat4.create();\r\n @io.persist @type.vec3 destination = vec3.create();\r\n @io.persist @type.boolean useSourceTransform = false;\r\n @io.persist @type.boolean displayDestination = true;\r\n @io.persist @type.boolean displaySource = true;\r\n @io.persist @type.boolean display = true;\r\n @io.persist @type.float32 destinationScale = 1;\r\n\r\n #active = false;\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"JavaScript uses duck-typed firing elements rather than Carbon QueryInterface dispatch.\")\r\n UpdateSynchronous(context)\r\n {\r\n if (!this.element) return true;\r\n const source = this.useSourceTransform ? this.sourceTransform : this.source;\r\n this.element.SetFiringTransform?.(source, this.destination);\r\n this.element.SetDestObjectScale?.(this.destinationScale);\r\n this.element.DisplayEndPoints?.(this.displaySource, this.displayDestination);\r\n if (this.#active)\r\n {\r\n if (typeof this.element.Update === \"function\") this.element.Update(context);\r\n else\r\n {\r\n updateChildSync(this.element, context);\r\n updateChildAsync(this.element, context);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n UpdateSyncronous(context)\r\n {\r\n return this.UpdateSynchronous(context);\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"The browser runtime forwards lifecycle calls directly to the hydrated element.\")\r\n UpdateAsynchronous(context)\r\n {\r\n void context;\r\n return true;\r\n }\r\n\r\n UpdateAsyncronous(context)\r\n {\r\n return this.UpdateAsynchronous(context);\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Visibility is graph-owned; the renderer consumes the collected element later.\")\r\n UpdateVisibility(context, transform)\r\n {\r\n if (this.display) this.element?.UpdateVisibility?.(context, transform);\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Renderable collection is backend-neutral and leaves batch realization to the engine package.\")\r\n GetRenderables(out = [])\r\n {\r\n if (this.display) collectRenderables(this.element, out);\r\n return out;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n StartFiring(delay = 0)\r\n {\r\n this.element?.StartFiring?.(delay);\r\n this.#active = true;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n StopFiring()\r\n {\r\n this.element?.StopFiring?.();\r\n this.#active = false;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetActive(active)\r\n {\r\n if (!!active === this.#active) return;\r\n if (active) this.StartFiring(0);\r\n else this.StopFiring();\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n GetActive()\r\n {\r\n return this.#active;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetElement(element)\r\n {\r\n this.element = element ?? null;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n GetElement()\r\n {\r\n return this.element;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetFiringTransform(source, destination)\r\n {\r\n if (source?.length === 16)\r\n {\r\n mat4.copy(this.sourceTransform, source);\r\n mat4.getTranslation(this.source, source);\r\n this.useSourceTransform = true;\r\n }\r\n else\r\n {\r\n vec3.copy(this.source, source ?? EveFiringEffectElementContainer.#zero);\r\n this.useSourceTransform = false;\r\n }\r\n vec3.copy(this.destination, destination);\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetDestObjectScale(scale)\r\n {\r\n this.destinationScale = Number(scale);\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n DisplayEndPoints(displaySource, displayDestination)\r\n {\r\n this.displaySource = !!displaySource;\r\n this.displayDestination = !!displayDestination;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetDisplay(display)\r\n {\r\n this.display = !!display;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n GetCurveDuration()\r\n {\r\n return Number(this.element?.GetCurveDuration?.() ?? 0);\r\n }\r\n\r\n /** Carbon EveFiringEffectElementContainer::RegisterComponents\r\n * (cpp:140-146): forwards the wrapped element (no gates; EveEntity.Register\r\n * tolerates a null registry). */\r\n @carbon.method @impl.implemented\r\n RegisterComponents()\r\n {\r\n this.element?.Register?.(this.GetComponentRegistry());\r\n }\r\n\r\n /** Carbon EveFiringEffectElementContainer::UnRegisterComponents\r\n * (cpp:148-154): forwards the wrapped element. */\r\n @carbon.method @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n this.element?.UnRegister?.(this.GetComponentRegistry());\r\n }\r\n\r\n static #zero = vec3.create();\r\n}\r\n"],"names":["_EveFiringEffectEleme","_identity","EveFiringEffectElementContainer","EveEntity","e","_init_element","_init_extra_element","_init_source","_init_extra_source","_init_sourceTransform","_init_extra_sourceTransform","_init_destination","_init_extra_destination","_init_useSourceTransform","_init_extra_useSourceTransform","_init_displayDestination","_init_extra_displayDestination","_init_displaySource","_init_extra_displaySource","_init_display","_init_extra_display","_init_destinationScale","_init_extra_destinationScale","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persistOnly","model","readwrite","vec3","persist","mat4","boolean","float32","carbon","method","impl","adapted","reason","implemented","element","source","create","sourceTransform","destination","useSourceTransform","displayDestination","displaySource","display","destinationScale","UpdateSynchronous","context","SetFiringTransform","SetDestObjectScale","DisplayEndPoints","Update","updateChildSync","updateChildAsync","UpdateSyncronous","UpdateAsynchronous","UpdateAsyncronous","UpdateVisibility","transform","GetRenderables","out","collectRenderables","StartFiring","delay","StopFiring","SetActive","active","GetActive","SetElement","GetElement","length","copy","getTranslation","scale","Number","SetDisplay","GetCurveDuration","RegisterComponents","Register","GetComponentRegistry","UnRegisterComponents","UnRegister","constructor"],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { vec3 } from '@carbonenginejs/core-math/vec3';
|
|
|
4
4
|
import { vec4 } from '@carbonenginejs/core-math/vec4';
|
|
5
5
|
import { io, type, carbon, impl, schema } from '@carbonenginejs/core-types/schema';
|
|
6
6
|
import { EveEntity as _EveEntity } from '../../../generated/eve/EveEntity.js';
|
|
7
|
+
import { EveComponentType } from '../../EveComponentTypes.js';
|
|
7
8
|
import { TriFloat as _TriFloat } from '../../../trinityCore/TriFloat.js';
|
|
8
9
|
import { getTime, sampleVector, updateChildAsync, updateCurveSet, makeEndpointTransforms, updateChildVisibility, makeStretchTransform, translationMatrix, collectRenderables, getCurveDuration, mergeSphere } from './CjsStretchRuntime.js';
|
|
9
10
|
|
|
@@ -18,7 +19,7 @@ new class extends _identity {
|
|
|
18
19
|
} = _applyDecs2311(this, [type.define({
|
|
19
20
|
className: "EveStretch",
|
|
20
21
|
family: "eve/renderable/stretch"
|
|
21
|
-
})], [[[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, void 0, type.model("ITriVectorFunction")], 16, "source"], [[io, io.persist, void 0, type.model("ITriVectorFunction")], 16, "dest"], [[io, io.persist, void 0, type.model("IStretchAudio")], 16, "stretchAudio"], [[io, io.read, type, type.int32, void 0, schema.enum("Tr2Lod")], 16, "lodLevel"], [[io, io.persist, void 0, type.model("ITriScalarFunction")], 16, "progressCurve"], [[io, io.persist, void 0, type.model("TriCurveSet")], 16, "moveCompletion"], [[io, io.persist, void 0, type.list("TriCurveSet")], 16, "curveSets"], [[io, io.persist, void 0, type.model("TriFloat")], 16, "length"], [[io, io.readwrite, type, type.boolean], 16, "moving"], [[io, io.readwrite, type, type.boolean], 16, "moveCompleted"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, type, type.boolean], 16, "update"], [[io, io.persist, void 0, type.list("Tr2Light")], 16, "destLights"], [[io, io.persist, void 0, type.list("Tr2Light")], 16, "sourceLights"], [[io, io.persist, void 0, type.model("EveTransform")], 16, "destObject"], [[io, io.persist, void 0, type.model("EveTransform")], 16, "sourceObject"], [[io, io.persist, void 0, type.model("EveTransform")], 16, "stretchObject"], [[io, io.persist, type, type.boolean], 16, "useCurveLod"], [[io, io.read, type, type.float64], 16, "startTime"], [[io, io.persist, void 0, type.model("ITr2Audio")], 16, "audio"], [[io, io.persist, void 0, type.model("EveTransform")], 16, "moveObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSynchronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon splits synchronous and asynchronous work; the browser graph keeps both phases but executes child calls serially.")], 18, "UpdateAsynchronous"], [[carbon, carbon.method, impl, impl.implemented], 18, "Update"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Curve LOD is renderer policy in Carbon; runtime-trinity retains the authored gate and updates graph curves without device globals.")], 18, "UpdateCurves"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The transforms are computed in Trinity, while child render realization remains backend-owned.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Renderable collection is backend-neutral; runtime-engine turns the returned objects into draw batches.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.implemented], 18, "StartMoving"], [[carbon, carbon.method, impl, impl.implemented], 18, "Start"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDisplay"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetSourcePosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDestinationPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetSourceTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDestinationTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetIsNegZForward"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCurveDuration"], [[carbon, carbon.method, impl, impl.implemented], 18, "StartFiring"], [[carbon, carbon.method, impl, impl.implemented], 18, "StopFiring"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetFiringTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "DisplayEndPoints"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetSourceObjectScale"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDestObjectScale"], [[carbon, carbon.method, impl, impl.noop], 18, "SetIntensity"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Bounds are merged from graph children without Carbon's native BoundingSphere helper.")], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Light ownership is forwarded to browser light objects; device light-manager registration stays outside Trinity.")], 18, "GetLights"]], 0, void 0, _EveEntity));
|
|
22
|
+
})], [[[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, void 0, type.model("ITriVectorFunction")], 16, "source"], [[io, io.persist, void 0, type.model("ITriVectorFunction")], 16, "dest"], [[io, io.persist, void 0, type.model("IStretchAudio")], 16, "stretchAudio"], [[io, io.read, type, type.int32, void 0, schema.enum("Tr2Lod")], 16, "lodLevel"], [[io, io.persist, void 0, type.model("ITriScalarFunction")], 16, "progressCurve"], [[io, io.persist, void 0, type.model("TriCurveSet")], 16, "moveCompletion"], [[io, io.persist, void 0, type.list("TriCurveSet")], 16, "curveSets"], [[io, io.persist, void 0, type.model("TriFloat")], 16, "length"], [[io, io.readwrite, type, type.boolean], 16, "moving"], [[io, io.readwrite, type, type.boolean], 16, "moveCompleted"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, type, type.boolean], 16, "update"], [[io, io.persist, void 0, type.list("Tr2Light")], 16, "destLights"], [[io, io.persist, void 0, type.list("Tr2Light")], 16, "sourceLights"], [[io, io.persist, void 0, type.model("EveTransform")], 16, "destObject"], [[io, io.persist, void 0, type.model("EveTransform")], 16, "sourceObject"], [[io, io.persist, void 0, type.model("EveTransform")], 16, "stretchObject"], [[io, io.persist, type, type.boolean], 16, "useCurveLod"], [[io, io.read, type, type.float64], 16, "startTime"], [[io, io.persist, void 0, type.model("ITr2Audio")], 16, "audio"], [[io, io.persist, void 0, type.model("EveTransform")], 16, "moveObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSynchronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon splits synchronous and asynchronous work; the browser graph keeps both phases but executes child calls serially.")], 18, "UpdateAsynchronous"], [[carbon, carbon.method, impl, impl.implemented], 18, "Update"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Curve LOD is renderer policy in Carbon; runtime-trinity retains the authored gate and updates graph curves without device globals.")], 18, "UpdateCurves"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The transforms are computed in Trinity, while child render realization remains backend-owned.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Renderable collection is backend-neutral; runtime-engine turns the returned objects into draw batches.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.implemented], 18, "StartMoving"], [[carbon, carbon.method, impl, impl.implemented], 18, "Start"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDisplay"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetSourcePosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDestinationPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetSourceTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDestinationTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetIsNegZForward"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCurveDuration"], [[carbon, carbon.method, impl, impl.implemented], 18, "StartFiring"], [[carbon, carbon.method, impl, impl.implemented], 18, "StopFiring"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetFiringTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "DisplayEndPoints"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetSourceObjectScale"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDestObjectScale"], [[carbon, carbon.method, impl, impl.noop], 18, "SetIntensity"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Bounds are merged from graph children without Carbon's native BoundingSphere helper.")], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Light ownership is forwarded to browser light objects; device light-manager registration stays outside Trinity.")], 18, "GetLights"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"]], 0, void 0, _EveEntity));
|
|
22
23
|
}
|
|
23
24
|
name = (_initProto(this), _init_name(this, ""));
|
|
24
25
|
source = (_init_extra_name(this), _init_source(this, null));
|
|
@@ -255,6 +256,15 @@ new class extends _identity {
|
|
|
255
256
|
if (this.#displaySource) for (const light of this.sourceLights) light?.AddLight?.(lightManager, source, this.#sourceScale);
|
|
256
257
|
if (this.#displayDestination) for (const light of this.destLights) light?.AddLight?.(lightManager, destination, this.#destinationScale);
|
|
257
258
|
}
|
|
259
|
+
|
|
260
|
+
/** Carbon EveStretch::RegisterComponents (cpp:606-613): LightOwner leaf
|
|
261
|
+
* self-registration. Gate m_display. */
|
|
262
|
+
RegisterComponents() {
|
|
263
|
+
const registry = this.GetComponentRegistry();
|
|
264
|
+
if (registry && this.display) {
|
|
265
|
+
registry.RegisterComponent(EveComponentType.LightOwner, this);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
258
268
|
}];
|
|
259
269
|
Tr2Lod = Object.freeze({
|
|
260
270
|
TR2_LOD_UNSPECIFIED: -1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveStretch.js","sources":["../../../../../src/eve/renderable/stretch/EveStretch.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Renderable\\Stretch\\EveStretch.h\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Renderable\\Stretch\\EveStretch.cpp\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\nimport { vec3 } from \"@carbonenginejs/core-math/vec3\";\nimport { vec4 } from \"@carbonenginejs/core-math/vec4\";\nimport { carbon, impl, io, schema, type } from \"@carbonenginejs/core-types/schema\";\nimport { EveEntity } from \"../../../generated/eve/EveEntity.js\";\nimport { TriFloat } from \"../../../trinityCore/TriFloat.js\";\nimport {\n collectRenderables,\n getCurveDuration,\n getDeltaTime,\n getTime,\n makeEndpointTransforms,\n makeStretchTransform,\n mergeSphere,\n sampleVector,\n translationMatrix,\n updateChildAsync,\n updateChildSync,\n updateChildVisibility,\n updateCurveSet\n} from \"./CjsStretchRuntime.js\";\n\n\n@type.define({ className: \"EveStretch\", family: \"eve/renderable/stretch\" })\nexport class EveStretch extends EveEntity\n{\n @io.persist @type.string name = \"\";\n @io.persist @type.model(\"ITriVectorFunction\") source = null;\n @io.persist @type.model(\"ITriVectorFunction\") dest = null;\n @io.persist @type.model(\"IStretchAudio\") stretchAudio = null;\n @io.read @type.int32 @schema.enum(\"Tr2Lod\") lodLevel = 0;\n @io.persist @type.model(\"ITriScalarFunction\") progressCurve = null;\n @io.persist @type.model(\"TriCurveSet\") moveCompletion = null;\n @io.persist @type.list(\"TriCurveSet\") curveSets = [];\n @io.persist @type.model(\"TriFloat\") length = new TriFloat();\n @io.readwrite @type.boolean moving = false;\n @io.readwrite @type.boolean moveCompleted = false;\n @io.notify @io.persist @type.boolean display = true;\n @io.persist @type.boolean update = true;\n @io.persist @type.list(\"Tr2Light\") destLights = [];\n @io.persist @type.list(\"Tr2Light\") sourceLights = [];\n @io.persist @type.model(\"EveTransform\") destObject = null;\n @io.persist @type.model(\"EveTransform\") sourceObject = null;\n @io.persist @type.model(\"EveTransform\") stretchObject = null;\n @io.persist @type.boolean useCurveLod = true;\n @io.read @type.float64 startTime = -1;\n @io.persist @type.model(\"ITr2Audio\") audio = null;\n @io.persist @type.model(\"EveTransform\") moveObject = null;\n\n #sourcePosition = vec3.create();\n #destinationPosition = vec3.create();\n #sourceTransform = mat4.create();\n #destinationTransform = mat4.create();\n #useTransforms = false;\n #displaySource = true;\n #displayDestination = true;\n #sourceScale = 1;\n #destinationScale = 1;\n #negativeZ = false;\n\n @carbon.method @impl.implemented\n UpdateSynchronous(context)\n {\n if (!this.update) return true;\n const time = getTime(context);\n if (this.source) sampleVector(this.source, time, this.#sourcePosition);\n else if (this.#useTransforms) mat4.getTranslation(this.#sourcePosition, this.#sourceTransform);\n if (this.dest) sampleVector(this.dest, time, this.#destinationPosition);\n return true;\n }\n\n UpdateSyncronous(context)\n {\n return this.UpdateSynchronous(context);\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"Carbon splits synchronous and asynchronous work; the browser graph keeps both phases but executes child calls serially.\")\n UpdateAsynchronous(context)\n {\n if (!this.update) return true;\n this.UpdateCurves(context);\n this.length.value = vec3.distance(this.#sourcePosition, this.#destinationPosition);\n if (this.#displaySource) updateChildAsync(this.sourceObject, context);\n if (this.#displayDestination) updateChildAsync(this.destObject, context);\n updateChildAsync(this.stretchObject, context);\n updateChildAsync(this.moveObject, context);\n this.audio?.Update?.(this.#sourcePosition, this.#destinationPosition);\n this.stretchAudio?.Update?.(this.#sourcePosition, this.#destinationPosition);\n return true;\n }\n\n UpdateAsyncronous(context)\n {\n return this.UpdateAsynchronous(context);\n }\n\n UpdateEffectSync(context)\n {\n void context;\n return true;\n }\n\n UpdateEffectAsync(context)\n {\n return this.Update(context);\n }\n\n @carbon.method @impl.implemented\n Update(context)\n {\n this.UpdateSynchronous(context);\n this.UpdateAsynchronous(context);\n return true;\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"Curve LOD is renderer policy in Carbon; runtime-trinity retains the authored gate and updates graph curves without device globals.\")\n UpdateCurves(context)\n {\n const time = getTime(context);\n if (this.startTime < 0 && this.moving) this.startTime = time;\n const relative = this.startTime >= 0 ? time - this.startTime : time;\n for (const curveSet of this.curveSets) updateCurveSet(curveSet, relative);\n if (this.progressCurve)\n {\n if (typeof this.progressCurve.UpdateValue === \"function\") this.progressCurve.UpdateValue(relative);\n else this.progressCurve.Update?.(relative);\n }\n updateCurveSet(this.moveCompletion, relative);\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"The transforms are computed in Trinity, while child render realization remains backend-owned.\")\n UpdateVisibility(context, parentTransform = EveStretch.#identity)\n {\n if (!this.display) return;\n const sourceTransform = EveStretch.#sourceMatrix;\n const destinationTransform = EveStretch.#destinationMatrix;\n if (this.#useTransforms)\n {\n mat4.multiply(sourceTransform, this.#sourceTransform, EveStretch.#sourceCorrection);\n mat4.copy(destinationTransform, this.#destinationTransform);\n destinationTransform[0] *= this.#destinationScale;\n destinationTransform[1] *= this.#destinationScale;\n destinationTransform[2] *= this.#destinationScale;\n destinationTransform[4] *= this.#destinationScale;\n destinationTransform[5] *= this.#destinationScale;\n destinationTransform[6] *= this.#destinationScale;\n destinationTransform[8] *= this.#destinationScale;\n destinationTransform[9] *= this.#destinationScale;\n destinationTransform[10] *= this.#destinationScale;\n }\n else\n {\n makeEndpointTransforms(this.#sourcePosition, this.#destinationPosition, sourceTransform, destinationTransform);\n for (const index of [0, 1, 2, 4, 5, 6, 8, 9, 10])\n {\n sourceTransform[index] *= this.#sourceScale;\n destinationTransform[index] *= this.#destinationScale;\n }\n if (parentTransform?.length === 16)\n {\n mat4.multiply(sourceTransform, parentTransform, sourceTransform);\n mat4.multiply(destinationTransform, parentTransform, destinationTransform);\n }\n }\n\n if (this.#displaySource) updateChildVisibility(this.sourceObject, context, sourceTransform);\n if (this.#displayDestination) updateChildVisibility(this.destObject, context, destinationTransform);\n\n const stretchTransform = EveStretch.#stretchMatrix;\n if (this.#useTransforms)\n {\n mat4.copy(stretchTransform, this.#sourceTransform);\n const stretchLength = this.length.value * (this.#negativeZ ? -1 : 1);\n stretchTransform[8] *= stretchLength;\n stretchTransform[9] *= stretchLength;\n stretchTransform[10] *= stretchLength;\n }\n else\n {\n makeStretchTransform(this.#sourcePosition, this.#destinationPosition, stretchTransform, this.#negativeZ);\n if (parentTransform?.length === 16) mat4.multiply(stretchTransform, parentTransform, stretchTransform);\n }\n updateChildVisibility(this.stretchObject, context, stretchTransform);\n\n if (this.moveObject)\n {\n const progression = Number(this.progressCurve?.value ?? this.progressCurve?.GetValue?.() ?? 0);\n vec3.lerp(EveStretch.#movePosition, this.#sourcePosition, this.#destinationPosition, progression);\n updateChildVisibility(this.moveObject, context, translationMatrix(EveStretch.#movePosition, EveStretch.#moveMatrix));\n if (progression >= 1 && !this.moveCompleted)\n {\n this.moveCompleted = true;\n this.moveObject.SetDisplay?.(false);\n this.moveCompletion?.Play?.();\n }\n }\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"Renderable collection is backend-neutral; runtime-engine turns the returned objects into draw batches.\")\n GetRenderables(out = [])\n {\n if (!this.display) return out;\n if (this.#displaySource) collectRenderables(this.sourceObject, out);\n if (this.#displayDestination) collectRenderables(this.destObject, out);\n collectRenderables(this.stretchObject, out);\n collectRenderables(this.moveObject, out);\n return out;\n }\n\n @carbon.method @impl.implemented\n StartMoving()\n {\n this.startTime = -1;\n this.moving = true;\n this.moveCompleted = false;\n this.moveObject?.SetDisplay?.(true);\n if (typeof this.audio?.TriggerStretchEvent === \"function\") this.audio.TriggerStretchEvent();\n else this.audio?.SendEvent?.(\"wise:/msg_fx_play_stretch\");\n }\n\n @carbon.method @impl.implemented\n Start()\n {\n this.StartMoving();\n this.curveSets[0]?.Play?.();\n }\n\n @carbon.method @impl.implemented\n SetDisplay(display)\n {\n this.display = !!display;\n }\n\n @carbon.method @impl.implemented\n SetSourcePosition(value)\n {\n this.#useTransforms = false;\n vec3.copy(this.#sourcePosition, value);\n }\n\n @carbon.method @impl.implemented\n SetDestinationPosition(value)\n {\n vec3.copy(this.#destinationPosition, value);\n translationMatrix(value, this.#destinationTransform);\n }\n\n @carbon.method @impl.implemented\n SetSourceTransform(value)\n {\n this.#useTransforms = true;\n mat4.copy(this.#sourceTransform, value);\n mat4.getTranslation(this.#sourcePosition, value);\n }\n\n @carbon.method @impl.implemented\n SetDestinationTransform(value)\n {\n mat4.copy(this.#destinationTransform, value);\n mat4.getTranslation(this.#destinationPosition, value);\n }\n\n @carbon.method @impl.implemented\n SetIsNegZForward(value)\n {\n this.#negativeZ = !!value;\n }\n\n @carbon.method @impl.implemented\n GetCurveDuration()\n {\n let duration = 0;\n for (const curveSet of this.curveSets)\n {\n const timeScale = Number(curveSet?.GetTimeScale?.() ?? curveSet?.timeScale ?? 1) || 1;\n duration = Math.max(duration, getCurveDuration(curveSet) / timeScale);\n }\n return duration;\n }\n\n @carbon.method @impl.implemented\n StartFiring(delay = 0)\n {\n for (const curveSet of this.curveSets)\n {\n const name = curveSet?.GetName?.() ?? curveSet?.name;\n if (name === \"play_start\")\n {\n curveSet.PlayFrom?.(-delay);\n this.StartMoving();\n }\n else if (name === \"play_loop\") curveSet.PlayFrom?.(-delay);\n else if (name === \"play_end\") curveSet.Stop?.();\n }\n this.stretchAudio?.Start?.();\n this.audio?.TriggerOutburstEvent?.();\n this.audio?.TriggerImpactEvent?.();\n this.audio?.TriggerStretchEvent?.();\n }\n\n @carbon.method @impl.implemented\n StopFiring()\n {\n for (const curveSet of this.curveSets)\n {\n const name = curveSet?.GetName?.() ?? curveSet?.name;\n if (name === \"play_start\")\n {\n curveSet.Stop?.();\n this.StartMoving();\n }\n else if (name === \"play_loop\") curveSet.Stop?.();\n else if (name === \"play_end\") curveSet.Play?.();\n }\n this.stretchAudio?.Stop?.();\n }\n\n @carbon.method @impl.implemented\n SetFiringTransform(source, destination)\n {\n if (source?.length === 16) this.SetSourceTransform(source);\n else this.SetSourcePosition(source);\n this.SetDestinationPosition(destination);\n this.SetIsNegZForward(true);\n }\n\n @carbon.method @impl.implemented\n DisplayEndPoints(displaySource, displayDestination)\n {\n this.#displaySource = !!displaySource;\n this.#displayDestination = !!displayDestination;\n }\n\n @carbon.method @impl.implemented\n SetSourceObjectScale(scale)\n {\n this.#sourceScale = Number(scale);\n }\n\n @carbon.method @impl.implemented\n SetDestObjectScale(scale)\n {\n this.#destinationScale = Number(scale);\n }\n\n @carbon.method @impl.noop\n SetIntensity(_intensity)\n {\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"Bounds are merged from graph children without Carbon's native BoundingSphere helper.\")\n GetBoundingSphere(out = vec4.create())\n {\n vec4.set(out, 0, 0, 0, 0);\n for (const child of [this.sourceObject, this.destObject, this.stretchObject])\n {\n if (typeof child?.GetBoundingSphere === \"function\" && child.GetBoundingSphere(EveStretch.#sphere) !== false)\n {\n mergeSphere(out, EveStretch.#sphere);\n }\n }\n return out[3] > 0;\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"Light ownership is forwarded to browser light objects; device light-manager registration stays outside Trinity.\")\n GetLights(lightManager)\n {\n if (!this.display) return;\n const source = translationMatrix(this.#sourcePosition, EveStretch.#lightSource, this.#sourceScale);\n const destination = translationMatrix(this.#destinationPosition, EveStretch.#lightDestination, this.#destinationScale);\n if (this.#displaySource) for (const light of this.sourceLights) light?.AddLight?.(lightManager, source, this.#sourceScale);\n if (this.#displayDestination) for (const light of this.destLights) light?.AddLight?.(lightManager, destination, this.#destinationScale);\n }\n\n static Tr2Lod = Object.freeze({ TR2_LOD_UNSPECIFIED: -1, TR2_LOD_LOW: 0, TR2_LOD_MEDIUM: 1, TR2_LOD_HIGH: 2, TR2_LOD_ULTRA: 3, TR2_LOD_COUNT: 4 });\n static #identity = mat4.create();\n static #sourceMatrix = mat4.create();\n static #destinationMatrix = mat4.create();\n static #stretchMatrix = mat4.create();\n static #moveMatrix = mat4.create();\n static #movePosition = vec3.create();\n static #sphere = vec4.create();\n static #lightSource = mat4.create();\n static #lightDestination = mat4.create();\n static #sourceCorrection = mat4.fromXRotation(mat4.create(), -Math.PI * 0.5);\n}\n"],"names":["_EveStretch","_identity","EveStretch","EveEntity","e","_init_name","_init_extra_name","_init_source","_init_extra_source","_init_dest","_init_extra_dest","_init_stretchAudio","_init_extra_stretchAudio","_init_lodLevel","_init_extra_lodLevel","_init_progressCurve","_init_extra_progressCurve","_init_moveCompletion","_init_extra_moveCompletion","_init_curveSets","_init_extra_curveSets","_init_length","_init_extra_length","_init_moving","_init_extra_moving","_init_moveCompleted","_init_extra_moveCompleted","_init_display","_init_extra_display","_init_update","_init_extra_update","_init_destLights","_init_extra_destLights","_init_sourceLights","_init_extra_sourceLights","_init_destObject","_init_extra_destObject","_init_sourceObject","_init_extra_sourceObject","_init_stretchObject","_init_extra_stretchObject","_init_useCurveLod","_init_extra_useCurveLod","_init_startTime","_init_extra_startTime","_init_audio","_init_extra_audio","_init_moveObject","_init_extra_moveObject","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","model","read","int32","schema","enum","list","readwrite","boolean","notify","float64","carbon","method","impl","implemented","adapted","reason","noop","name","source","dest","stretchAudio","lodLevel","progressCurve","moveCompletion","curveSets","length","TriFloat","moving","moveCompleted","display","update","destLights","sourceLights","destObject","sourceObject","stretchObject","useCurveLod","startTime","audio","moveObject","vec3","create","mat4","UpdateSynchronous","context","time","getTime","sampleVector","getTranslation","UpdateSyncronous","UpdateAsynchronous","UpdateCurves","value","distance","updateChildAsync","Update","UpdateAsyncronous","UpdateEffectSync","UpdateEffectAsync","relative","curveSet","updateCurveSet","UpdateValue","UpdateVisibility","parentTransform","sourceTransform","destinationTransform","multiply","copy","makeEndpointTransforms","index","updateChildVisibility","stretchTransform","stretchLength","makeStretchTransform","progression","Number","GetValue","lerp","translationMatrix","SetDisplay","Play","GetRenderables","out","collectRenderables","StartMoving","TriggerStretchEvent","SendEvent","Start","SetSourcePosition","SetDestinationPosition","SetSourceTransform","SetDestinationTransform","SetIsNegZForward","GetCurveDuration","duration","timeScale","GetTimeScale","Math","max","getCurveDuration","StartFiring","delay","GetName","PlayFrom","Stop","TriggerOutburstEvent","TriggerImpactEvent","StopFiring","SetFiringTransform","destination","DisplayEndPoints","displaySource","displayDestination","SetSourceObjectScale","scale","SetDestObjectScale","SetIntensity","_intensity","GetBoundingSphere","vec4","set","child","mergeSphere","GetLights","lightManager","light","AddLight","Tr2Lod","Object","freeze","TR2_LOD_UNSPECIFIED","TR2_LOD_LOW","TR2_LOD_MEDIUM","TR2_LOD_HIGH","TR2_LOD_ULTRA","TR2_LOD_COUNT","fromXRotation","PI","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveStretch.js","sources":["../../../../../src/eve/renderable/stretch/EveStretch.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Renderable\\Stretch\\EveStretch.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Renderable\\Stretch\\EveStretch.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 { carbon, impl, io, schema, type } from \"@carbonenginejs/core-types/schema\";\r\nimport { EveEntity } from \"../../../generated/eve/EveEntity.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { TriFloat } from \"../../../trinityCore/TriFloat.js\";\r\nimport {\r\n collectRenderables,\r\n getCurveDuration,\r\n getDeltaTime,\r\n getTime,\r\n makeEndpointTransforms,\r\n makeStretchTransform,\r\n mergeSphere,\r\n sampleVector,\r\n translationMatrix,\r\n updateChildAsync,\r\n updateChildSync,\r\n updateChildVisibility,\r\n updateCurveSet\r\n} from \"./CjsStretchRuntime.js\";\r\n\r\n\r\n@type.define({ className: \"EveStretch\", family: \"eve/renderable/stretch\" })\r\nexport class EveStretch extends EveEntity\r\n{\r\n @io.persist @type.string name = \"\";\r\n @io.persist @type.model(\"ITriVectorFunction\") source = null;\r\n @io.persist @type.model(\"ITriVectorFunction\") dest = null;\r\n @io.persist @type.model(\"IStretchAudio\") stretchAudio = null;\r\n @io.read @type.int32 @schema.enum(\"Tr2Lod\") lodLevel = 0;\r\n @io.persist @type.model(\"ITriScalarFunction\") progressCurve = null;\r\n @io.persist @type.model(\"TriCurveSet\") moveCompletion = null;\r\n @io.persist @type.list(\"TriCurveSet\") curveSets = [];\r\n @io.persist @type.model(\"TriFloat\") length = new TriFloat();\r\n @io.readwrite @type.boolean moving = false;\r\n @io.readwrite @type.boolean moveCompleted = false;\r\n @io.notify @io.persist @type.boolean display = true;\r\n @io.persist @type.boolean update = true;\r\n @io.persist @type.list(\"Tr2Light\") destLights = [];\r\n @io.persist @type.list(\"Tr2Light\") sourceLights = [];\r\n @io.persist @type.model(\"EveTransform\") destObject = null;\r\n @io.persist @type.model(\"EveTransform\") sourceObject = null;\r\n @io.persist @type.model(\"EveTransform\") stretchObject = null;\r\n @io.persist @type.boolean useCurveLod = true;\r\n @io.read @type.float64 startTime = -1;\r\n @io.persist @type.model(\"ITr2Audio\") audio = null;\r\n @io.persist @type.model(\"EveTransform\") moveObject = null;\r\n\r\n #sourcePosition = vec3.create();\r\n #destinationPosition = vec3.create();\r\n #sourceTransform = mat4.create();\r\n #destinationTransform = mat4.create();\r\n #useTransforms = false;\r\n #displaySource = true;\r\n #displayDestination = true;\r\n #sourceScale = 1;\r\n #destinationScale = 1;\r\n #negativeZ = false;\r\n\r\n @carbon.method @impl.implemented\r\n UpdateSynchronous(context)\r\n {\r\n if (!this.update) return true;\r\n const time = getTime(context);\r\n if (this.source) sampleVector(this.source, time, this.#sourcePosition);\r\n else if (this.#useTransforms) mat4.getTranslation(this.#sourcePosition, this.#sourceTransform);\r\n if (this.dest) sampleVector(this.dest, time, this.#destinationPosition);\r\n return true;\r\n }\r\n\r\n UpdateSyncronous(context)\r\n {\r\n return this.UpdateSynchronous(context);\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Carbon splits synchronous and asynchronous work; the browser graph keeps both phases but executes child calls serially.\")\r\n UpdateAsynchronous(context)\r\n {\r\n if (!this.update) return true;\r\n this.UpdateCurves(context);\r\n this.length.value = vec3.distance(this.#sourcePosition, this.#destinationPosition);\r\n if (this.#displaySource) updateChildAsync(this.sourceObject, context);\r\n if (this.#displayDestination) updateChildAsync(this.destObject, context);\r\n updateChildAsync(this.stretchObject, context);\r\n updateChildAsync(this.moveObject, context);\r\n this.audio?.Update?.(this.#sourcePosition, this.#destinationPosition);\r\n this.stretchAudio?.Update?.(this.#sourcePosition, this.#destinationPosition);\r\n return true;\r\n }\r\n\r\n UpdateAsyncronous(context)\r\n {\r\n return this.UpdateAsynchronous(context);\r\n }\r\n\r\n UpdateEffectSync(context)\r\n {\r\n void context;\r\n return true;\r\n }\r\n\r\n UpdateEffectAsync(context)\r\n {\r\n return this.Update(context);\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n Update(context)\r\n {\r\n this.UpdateSynchronous(context);\r\n this.UpdateAsynchronous(context);\r\n return true;\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Curve LOD is renderer policy in Carbon; runtime-trinity retains the authored gate and updates graph curves without device globals.\")\r\n UpdateCurves(context)\r\n {\r\n const time = getTime(context);\r\n if (this.startTime < 0 && this.moving) this.startTime = time;\r\n const relative = this.startTime >= 0 ? time - this.startTime : time;\r\n for (const curveSet of this.curveSets) updateCurveSet(curveSet, relative);\r\n if (this.progressCurve)\r\n {\r\n if (typeof this.progressCurve.UpdateValue === \"function\") this.progressCurve.UpdateValue(relative);\r\n else this.progressCurve.Update?.(relative);\r\n }\r\n updateCurveSet(this.moveCompletion, relative);\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"The transforms are computed in Trinity, while child render realization remains backend-owned.\")\r\n UpdateVisibility(context, parentTransform = EveStretch.#identity)\r\n {\r\n if (!this.display) return;\r\n const sourceTransform = EveStretch.#sourceMatrix;\r\n const destinationTransform = EveStretch.#destinationMatrix;\r\n if (this.#useTransforms)\r\n {\r\n mat4.multiply(sourceTransform, this.#sourceTransform, EveStretch.#sourceCorrection);\r\n mat4.copy(destinationTransform, this.#destinationTransform);\r\n destinationTransform[0] *= this.#destinationScale;\r\n destinationTransform[1] *= this.#destinationScale;\r\n destinationTransform[2] *= this.#destinationScale;\r\n destinationTransform[4] *= this.#destinationScale;\r\n destinationTransform[5] *= this.#destinationScale;\r\n destinationTransform[6] *= this.#destinationScale;\r\n destinationTransform[8] *= this.#destinationScale;\r\n destinationTransform[9] *= this.#destinationScale;\r\n destinationTransform[10] *= this.#destinationScale;\r\n }\r\n else\r\n {\r\n makeEndpointTransforms(this.#sourcePosition, this.#destinationPosition, sourceTransform, destinationTransform);\r\n for (const index of [0, 1, 2, 4, 5, 6, 8, 9, 10])\r\n {\r\n sourceTransform[index] *= this.#sourceScale;\r\n destinationTransform[index] *= this.#destinationScale;\r\n }\r\n if (parentTransform?.length === 16)\r\n {\r\n mat4.multiply(sourceTransform, parentTransform, sourceTransform);\r\n mat4.multiply(destinationTransform, parentTransform, destinationTransform);\r\n }\r\n }\r\n\r\n if (this.#displaySource) updateChildVisibility(this.sourceObject, context, sourceTransform);\r\n if (this.#displayDestination) updateChildVisibility(this.destObject, context, destinationTransform);\r\n\r\n const stretchTransform = EveStretch.#stretchMatrix;\r\n if (this.#useTransforms)\r\n {\r\n mat4.copy(stretchTransform, this.#sourceTransform);\r\n const stretchLength = this.length.value * (this.#negativeZ ? -1 : 1);\r\n stretchTransform[8] *= stretchLength;\r\n stretchTransform[9] *= stretchLength;\r\n stretchTransform[10] *= stretchLength;\r\n }\r\n else\r\n {\r\n makeStretchTransform(this.#sourcePosition, this.#destinationPosition, stretchTransform, this.#negativeZ);\r\n if (parentTransform?.length === 16) mat4.multiply(stretchTransform, parentTransform, stretchTransform);\r\n }\r\n updateChildVisibility(this.stretchObject, context, stretchTransform);\r\n\r\n if (this.moveObject)\r\n {\r\n const progression = Number(this.progressCurve?.value ?? this.progressCurve?.GetValue?.() ?? 0);\r\n vec3.lerp(EveStretch.#movePosition, this.#sourcePosition, this.#destinationPosition, progression);\r\n updateChildVisibility(this.moveObject, context, translationMatrix(EveStretch.#movePosition, EveStretch.#moveMatrix));\r\n if (progression >= 1 && !this.moveCompleted)\r\n {\r\n this.moveCompleted = true;\r\n this.moveObject.SetDisplay?.(false);\r\n this.moveCompletion?.Play?.();\r\n }\r\n }\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Renderable collection is backend-neutral; runtime-engine turns the returned objects into draw batches.\")\r\n GetRenderables(out = [])\r\n {\r\n if (!this.display) return out;\r\n if (this.#displaySource) collectRenderables(this.sourceObject, out);\r\n if (this.#displayDestination) collectRenderables(this.destObject, out);\r\n collectRenderables(this.stretchObject, out);\r\n collectRenderables(this.moveObject, out);\r\n return out;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n StartMoving()\r\n {\r\n this.startTime = -1;\r\n this.moving = true;\r\n this.moveCompleted = false;\r\n this.moveObject?.SetDisplay?.(true);\r\n if (typeof this.audio?.TriggerStretchEvent === \"function\") this.audio.TriggerStretchEvent();\r\n else this.audio?.SendEvent?.(\"wise:/msg_fx_play_stretch\");\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n Start()\r\n {\r\n this.StartMoving();\r\n this.curveSets[0]?.Play?.();\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetDisplay(display)\r\n {\r\n this.display = !!display;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetSourcePosition(value)\r\n {\r\n this.#useTransforms = false;\r\n vec3.copy(this.#sourcePosition, value);\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetDestinationPosition(value)\r\n {\r\n vec3.copy(this.#destinationPosition, value);\r\n translationMatrix(value, this.#destinationTransform);\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetSourceTransform(value)\r\n {\r\n this.#useTransforms = true;\r\n mat4.copy(this.#sourceTransform, value);\r\n mat4.getTranslation(this.#sourcePosition, value);\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetDestinationTransform(value)\r\n {\r\n mat4.copy(this.#destinationTransform, value);\r\n mat4.getTranslation(this.#destinationPosition, value);\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetIsNegZForward(value)\r\n {\r\n this.#negativeZ = !!value;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n GetCurveDuration()\r\n {\r\n let duration = 0;\r\n for (const curveSet of this.curveSets)\r\n {\r\n const timeScale = Number(curveSet?.GetTimeScale?.() ?? curveSet?.timeScale ?? 1) || 1;\r\n duration = Math.max(duration, getCurveDuration(curveSet) / timeScale);\r\n }\r\n return duration;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n StartFiring(delay = 0)\r\n {\r\n for (const curveSet of this.curveSets)\r\n {\r\n const name = curveSet?.GetName?.() ?? curveSet?.name;\r\n if (name === \"play_start\")\r\n {\r\n curveSet.PlayFrom?.(-delay);\r\n this.StartMoving();\r\n }\r\n else if (name === \"play_loop\") curveSet.PlayFrom?.(-delay);\r\n else if (name === \"play_end\") curveSet.Stop?.();\r\n }\r\n this.stretchAudio?.Start?.();\r\n this.audio?.TriggerOutburstEvent?.();\r\n this.audio?.TriggerImpactEvent?.();\r\n this.audio?.TriggerStretchEvent?.();\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n StopFiring()\r\n {\r\n for (const curveSet of this.curveSets)\r\n {\r\n const name = curveSet?.GetName?.() ?? curveSet?.name;\r\n if (name === \"play_start\")\r\n {\r\n curveSet.Stop?.();\r\n this.StartMoving();\r\n }\r\n else if (name === \"play_loop\") curveSet.Stop?.();\r\n else if (name === \"play_end\") curveSet.Play?.();\r\n }\r\n this.stretchAudio?.Stop?.();\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetFiringTransform(source, destination)\r\n {\r\n if (source?.length === 16) this.SetSourceTransform(source);\r\n else this.SetSourcePosition(source);\r\n this.SetDestinationPosition(destination);\r\n this.SetIsNegZForward(true);\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n DisplayEndPoints(displaySource, displayDestination)\r\n {\r\n this.#displaySource = !!displaySource;\r\n this.#displayDestination = !!displayDestination;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetSourceObjectScale(scale)\r\n {\r\n this.#sourceScale = Number(scale);\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetDestObjectScale(scale)\r\n {\r\n this.#destinationScale = Number(scale);\r\n }\r\n\r\n @carbon.method @impl.noop\r\n SetIntensity(_intensity)\r\n {\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Bounds are merged from graph children without Carbon's native BoundingSphere helper.\")\r\n GetBoundingSphere(out = vec4.create())\r\n {\r\n vec4.set(out, 0, 0, 0, 0);\r\n for (const child of [this.sourceObject, this.destObject, this.stretchObject])\r\n {\r\n if (typeof child?.GetBoundingSphere === \"function\" && child.GetBoundingSphere(EveStretch.#sphere) !== false)\r\n {\r\n mergeSphere(out, EveStretch.#sphere);\r\n }\r\n }\r\n return out[3] > 0;\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Light ownership is forwarded to browser light objects; device light-manager registration stays outside Trinity.\")\r\n GetLights(lightManager)\r\n {\r\n if (!this.display) return;\r\n const source = translationMatrix(this.#sourcePosition, EveStretch.#lightSource, this.#sourceScale);\r\n const destination = translationMatrix(this.#destinationPosition, EveStretch.#lightDestination, this.#destinationScale);\r\n if (this.#displaySource) for (const light of this.sourceLights) light?.AddLight?.(lightManager, source, this.#sourceScale);\r\n if (this.#displayDestination) for (const light of this.destLights) light?.AddLight?.(lightManager, destination, this.#destinationScale);\r\n }\r\n\r\n /** Carbon EveStretch::RegisterComponents (cpp:606-613): LightOwner leaf\r\n * self-registration. Gate m_display. */\r\n @carbon.method @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.display)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n static Tr2Lod = Object.freeze({ TR2_LOD_UNSPECIFIED: -1, TR2_LOD_LOW: 0, TR2_LOD_MEDIUM: 1, TR2_LOD_HIGH: 2, TR2_LOD_ULTRA: 3, TR2_LOD_COUNT: 4 });\r\n static #identity = mat4.create();\r\n static #sourceMatrix = mat4.create();\r\n static #destinationMatrix = mat4.create();\r\n static #stretchMatrix = mat4.create();\r\n static #moveMatrix = mat4.create();\r\n static #movePosition = vec3.create();\r\n static #sphere = vec4.create();\r\n static #lightSource = mat4.create();\r\n static #lightDestination = mat4.create();\r\n static #sourceCorrection = mat4.fromXRotation(mat4.create(), -Math.PI * 0.5);\r\n}\r\n"],"names":["_EveStretch","_identity","EveStretch","EveEntity","e","_init_name","_init_extra_name","_init_source","_init_extra_source","_init_dest","_init_extra_dest","_init_stretchAudio","_init_extra_stretchAudio","_init_lodLevel","_init_extra_lodLevel","_init_progressCurve","_init_extra_progressCurve","_init_moveCompletion","_init_extra_moveCompletion","_init_curveSets","_init_extra_curveSets","_init_length","_init_extra_length","_init_moving","_init_extra_moving","_init_moveCompleted","_init_extra_moveCompleted","_init_display","_init_extra_display","_init_update","_init_extra_update","_init_destLights","_init_extra_destLights","_init_sourceLights","_init_extra_sourceLights","_init_destObject","_init_extra_destObject","_init_sourceObject","_init_extra_sourceObject","_init_stretchObject","_init_extra_stretchObject","_init_useCurveLod","_init_extra_useCurveLod","_init_startTime","_init_extra_startTime","_init_audio","_init_extra_audio","_init_moveObject","_init_extra_moveObject","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","model","read","int32","schema","enum","list","readwrite","boolean","notify","float64","carbon","method","impl","implemented","adapted","reason","noop","name","source","dest","stretchAudio","lodLevel","progressCurve","moveCompletion","curveSets","length","TriFloat","moving","moveCompleted","display","update","destLights","sourceLights","destObject","sourceObject","stretchObject","useCurveLod","startTime","audio","moveObject","vec3","create","mat4","UpdateSynchronous","context","time","getTime","sampleVector","getTranslation","UpdateSyncronous","UpdateAsynchronous","UpdateCurves","value","distance","updateChildAsync","Update","UpdateAsyncronous","UpdateEffectSync","UpdateEffectAsync","relative","curveSet","updateCurveSet","UpdateValue","UpdateVisibility","parentTransform","sourceTransform","destinationTransform","multiply","copy","makeEndpointTransforms","index","updateChildVisibility","stretchTransform","stretchLength","makeStretchTransform","progression","Number","GetValue","lerp","translationMatrix","SetDisplay","Play","GetRenderables","out","collectRenderables","StartMoving","TriggerStretchEvent","SendEvent","Start","SetSourcePosition","SetDestinationPosition","SetSourceTransform","SetDestinationTransform","SetIsNegZForward","GetCurveDuration","duration","timeScale","GetTimeScale","Math","max","getCurveDuration","StartFiring","delay","GetName","PlayFrom","Stop","TriggerOutburstEvent","TriggerImpactEvent","StopFiring","SetFiringTransform","destination","DisplayEndPoints","displaySource","displayDestination","SetSourceObjectScale","scale","SetDestObjectScale","SetIntensity","_intensity","GetBoundingSphere","vec4","set","child","mergeSphere","GetLights","lightManager","light","AddLight","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","Tr2Lod","Object","freeze","TR2_LOD_UNSPECIFIED","TR2_LOD_LOW","TR2_LOD_MEDIUM","TR2_LOD_HIGH","TR2_LOD_ULTRA","TR2_LOD_COUNT","fromXRotation","PI","constructor"],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { vec3 } from '@carbonenginejs/core-math/vec3';
|
|
|
4
4
|
import { vec4 } from '@carbonenginejs/core-math/vec4';
|
|
5
5
|
import { io, type, carbon, impl } from '@carbonenginejs/core-types/schema';
|
|
6
6
|
import { EveEntity as _EveEntity } from '../../../generated/eve/EveEntity.js';
|
|
7
|
+
import { EveComponentType } from '../../EveComponentTypes.js';
|
|
7
8
|
import { getCurveDuration, getTime, updateCurveSet, makeEndpointTransforms, getOriginShift } from './CjsStretchRuntime.js';
|
|
8
9
|
|
|
9
10
|
let _initProto, _initClass, _init_name, _init_extra_name, _init_loop, _init_extra_loop, _init_start, _init_extra_start, _init_end, _init_extra_end, _init_effect, _init_extra_effect, _init_destinationEmitter, _init_extra_destinationEmitter, _init_sourceEmitter, _init_extra_sourceEmitter, _init_quadCount, _init_extra_quadCount, _init_destinationObserver, _init_extra_destinationObserver, _init_sourceObserver, _init_extra_sourceObserver, _init_destinationLight, _init_extra_destinationLight, _init_sourceLight, _init_extra_sourceLight, _init_boundingRadius, _init_extra_boundingRadius;
|
|
@@ -17,7 +18,7 @@ new class extends _identity {
|
|
|
17
18
|
} = _applyDecs2311(this, [type.define({
|
|
18
19
|
className: "EveStretch2",
|
|
19
20
|
family: "eve/renderable/stretch"
|
|
20
|
-
})], [[[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, void 0, type.model("TriCurveSet")], 16, "loop"], [[io, io.persist, void 0, type.model("TriCurveSet")], 16, "start"], [[io, io.persist, void 0, type.model("TriCurveSet")], 16, "end"], [[io, io.persist, void 0, type.model("Tr2Effect")], 16, "effect"], [[io, io.persist, void 0, type.model("Tr2GpuSharedEmitter")], 16, "destinationEmitter"], [[io, io.persist, void 0, type.model("Tr2GpuSharedEmitter")], 16, "sourceEmitter"], [[io, io.notify, io, io.persist, type, type.uint32], 16, "quadCount"], [[io, io.persist, void 0, type.model("TriObserverLocal")], 16, "destinationObserver"], [[io, io.persist, void 0, type.model("TriObserverLocal")], 16, "sourceObserver"], [[io, io.persist, void 0, type.model("Tr2PointLight")], 16, "destinationLight"], [[io, io.persist, void 0, type.model("Tr2PointLight")], 16, "sourceLight"], [[io, io.persist, type, type.float32], 16, "boundingRadius"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("GPU buffer preparation belongs to runtime-engine; initialization validates the graph-owned quad count.")], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon rebuilds procedural GPU buffers here; runtime-trinity only enforces the authored 128-quad contract.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDestObjectScale"], [[carbon, carbon.method, impl, impl.noop], 18, "StartMoving"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCurveDuration"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon uses rand(); the browser uses Math.random for the per-shot shader seed.")], 18, "StartFiring"], [[carbon, carbon.method, impl, impl.implemented], 18, "StopFiring"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetFiringTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "DisplayEndPoints"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDisplay"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetIntensity"], [[carbon, carbon.method, impl, impl.noop], 18, "UpdateEffectSync"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateEffectAsync"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Generic emitters receive a plain update descriptor instead of Carbon's native UpdateArguments structure.")], 18, "Update"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The browser frustum is duck-typed and receives a portable axis-aligned box descriptor.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The class is collected as a renderable; GPU batch realization remains runtime-engine work.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Returns portable constant data rather than allocating Carbon renderer constant buffers.")], 18, "GetPerObjectData"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Light objects are forwarded without registering against Carbon's native light manager component registry.")], 18, "GetLights"]], 0, void 0, _EveEntity));
|
|
21
|
+
})], [[[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, void 0, type.model("TriCurveSet")], 16, "loop"], [[io, io.persist, void 0, type.model("TriCurveSet")], 16, "start"], [[io, io.persist, void 0, type.model("TriCurveSet")], 16, "end"], [[io, io.persist, void 0, type.model("Tr2Effect")], 16, "effect"], [[io, io.persist, void 0, type.model("Tr2GpuSharedEmitter")], 16, "destinationEmitter"], [[io, io.persist, void 0, type.model("Tr2GpuSharedEmitter")], 16, "sourceEmitter"], [[io, io.notify, io, io.persist, type, type.uint32], 16, "quadCount"], [[io, io.persist, void 0, type.model("TriObserverLocal")], 16, "destinationObserver"], [[io, io.persist, void 0, type.model("TriObserverLocal")], 16, "sourceObserver"], [[io, io.persist, void 0, type.model("Tr2PointLight")], 16, "destinationLight"], [[io, io.persist, void 0, type.model("Tr2PointLight")], 16, "sourceLight"], [[io, io.persist, type, type.float32], 16, "boundingRadius"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("GPU buffer preparation belongs to runtime-engine; initialization validates the graph-owned quad count.")], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon rebuilds procedural GPU buffers here; runtime-trinity only enforces the authored 128-quad contract.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDestObjectScale"], [[carbon, carbon.method, impl, impl.noop], 18, "StartMoving"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCurveDuration"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon uses rand(); the browser uses Math.random for the per-shot shader seed.")], 18, "StartFiring"], [[carbon, carbon.method, impl, impl.implemented], 18, "StopFiring"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetFiringTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "DisplayEndPoints"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDisplay"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetIntensity"], [[carbon, carbon.method, impl, impl.noop], 18, "UpdateEffectSync"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateEffectAsync"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Generic emitters receive a plain update descriptor instead of Carbon's native UpdateArguments structure.")], 18, "Update"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The browser frustum is duck-typed and receives a portable axis-aligned box descriptor.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The class is collected as a renderable; GPU batch realization remains runtime-engine work.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Returns portable constant data rather than allocating Carbon renderer constant buffers.")], 18, "GetPerObjectData"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Light objects are forwarded without registering against Carbon's native light manager component registry.")], 18, "GetLights"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"]], 0, void 0, _EveEntity));
|
|
21
22
|
}
|
|
22
23
|
name = (_initProto(this), _init_name(this, ""));
|
|
23
24
|
loop = (_init_extra_name(this), _init_loop(this, null));
|
|
@@ -152,6 +153,18 @@ new class extends _identity {
|
|
|
152
153
|
this.sourceLight?.AddLight?.(lightManager, this.#sourceTransform, 1);
|
|
153
154
|
this.destinationLight?.AddLight?.(lightManager, this.#destinationTransform, this.#currentDestinationScale);
|
|
154
155
|
}
|
|
156
|
+
|
|
157
|
+
/** Carbon EveStretch2::RegisterComponents (cpp:389-398): LightOwner leaf
|
|
158
|
+
* self-registration. Gate (m_visible && m_intensity > 0) && a source or
|
|
159
|
+
* destination light. */
|
|
160
|
+
RegisterComponents() {
|
|
161
|
+
const registry = this.GetComponentRegistry();
|
|
162
|
+
const isActive = this.#visible && this.#intensity > 0;
|
|
163
|
+
const hasLights = this.sourceLight || this.destinationLight;
|
|
164
|
+
if (registry && isActive && hasLights) {
|
|
165
|
+
registry.RegisterComponent(EveComponentType.LightOwner, this);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
155
168
|
GetSourcePosition(out = vec3.create()) {
|
|
156
169
|
return vec3.copy(out, this.#source);
|
|
157
170
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveStretch2.js","sources":["../../../../../src/eve/renderable/stretch/EveStretch2.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Renderable\\Stretch\\EveStretch2.h\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Renderable\\Stretch\\EveStretch2.cpp\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\nimport { vec3 } from \"@carbonenginejs/core-math/vec3\";\nimport { vec4 } from \"@carbonenginejs/core-math/vec4\";\nimport { carbon, impl, io, type } from \"@carbonenginejs/core-types/schema\";\nimport { EveEntity } from \"../../../generated/eve/EveEntity.js\";\nimport { getCurveDuration, getOriginShift, getTime, makeEndpointTransforms, updateCurveSet } from \"./CjsStretchRuntime.js\";\n\n\n@type.define({ className: \"EveStretch2\", family: \"eve/renderable/stretch\" })\nexport class EveStretch2 extends EveEntity\n{\n static MAX_QUAD_COUNT = 128;\n\n @io.persist @type.string name = \"\";\n @io.persist @type.model(\"TriCurveSet\") loop = null;\n @io.persist @type.model(\"TriCurveSet\") start = null;\n @io.persist @type.model(\"TriCurveSet\") end = null;\n @io.persist @type.model(\"Tr2Effect\") effect = null;\n @io.persist @type.model(\"Tr2GpuSharedEmitter\") destinationEmitter = null;\n @io.persist @type.model(\"Tr2GpuSharedEmitter\") sourceEmitter = null;\n @io.notify @io.persist @type.uint32 quadCount = 0;\n @io.persist @type.model(\"TriObserverLocal\") destinationObserver = null;\n @io.persist @type.model(\"TriObserverLocal\") sourceObserver = null;\n @io.persist @type.model(\"Tr2PointLight\") destinationLight = null;\n @io.persist @type.model(\"Tr2PointLight\") sourceLight = null;\n @io.persist @type.float32 boundingRadius = 100;\n\n #source = vec3.create();\n #destination = vec3.create();\n #sourceTransform = mat4.create();\n #destinationTransform = mat4.create();\n #destinationScale = 1;\n #currentDestinationScale = 1;\n #visible = true;\n #inFrustum = true;\n #startTime = 0;\n #intensity = 1;\n #effectData = [vec4.fromValues(0, 0, 0, Math.random()), vec4.fromValues(1, 0, 0, 0)];\n\n @carbon.method @impl.adapted\n @impl.reason(\"GPU buffer preparation belongs to runtime-engine; initialization validates the graph-owned quad count.\")\n Initialize()\n {\n return this.OnModified();\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"Carbon rebuilds procedural GPU buffers here; runtime-trinity only enforces the authored 128-quad contract.\")\n OnModified()\n {\n if (this.quadCount > EveStretch2.MAX_QUAD_COUNT)\n {\n throw new RangeError(`EveStretch2.quadCount must be <= ${EveStretch2.MAX_QUAD_COUNT}`);\n }\n return true;\n }\n\n @carbon.method @impl.implemented\n SetDestObjectScale(scale)\n {\n this.#destinationScale = this.#currentDestinationScale = Number(scale);\n }\n\n @carbon.method @impl.noop\n StartMoving()\n {\n }\n\n @carbon.method @impl.implemented\n GetCurveDuration()\n {\n return Math.max(getCurveDuration(this.start), getCurveDuration(this.loop));\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"Carbon uses rand(); the browser uses Math.random for the per-shot shader seed.\")\n StartFiring(delay = 0)\n {\n this.#effectData[0][3] = Math.random();\n this.start?.PlayFrom?.(-delay);\n this.loop?.PlayFrom?.(-delay);\n this.end?.Stop?.();\n }\n\n @carbon.method @impl.implemented\n StopFiring()\n {\n this.start?.Stop?.();\n this.loop?.Stop?.();\n this.end?.Play?.();\n }\n\n @carbon.method @impl.implemented\n SetFiringTransform(source, destination)\n {\n if (source?.length === 16) mat4.getTranslation(this.#source, source);\n else vec3.copy(this.#source, source);\n vec3.copy(this.#destination, destination);\n }\n\n @carbon.method @impl.implemented\n DisplayEndPoints(_displaySource, displayDestination)\n {\n this.#currentDestinationScale = displayDestination ? this.#destinationScale : 0;\n }\n\n @carbon.method @impl.implemented\n SetDisplay(display)\n {\n this.#visible = !!display;\n }\n\n @carbon.method @impl.implemented\n SetIntensity(intensity)\n {\n this.#intensity = Math.max(0, Number(intensity));\n }\n\n @carbon.method @impl.noop\n UpdateEffectSync(_context)\n {\n return true;\n }\n\n @carbon.method @impl.implemented\n UpdateEffectAsync(context)\n {\n return this.Update(context);\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"Generic emitters receive a plain update descriptor instead of Carbon's native UpdateArguments structure.\")\n Update(context)\n {\n const time = getTime(context);\n if (this.#startTime === 0) this.#startTime = time;\n const relative = time - this.#startTime;\n const sets = [this.start, this.loop, this.end];\n for (let index = 0; index < sets.length; index++)\n {\n updateCurveSet(sets[index], relative);\n this.#effectData[0][index] = Number(sets[index]?.GetScaledTime?.() ?? sets[index]?.scaledTime ?? 0);\n }\n makeEndpointTransforms(this.#source, this.#destination, this.#sourceTransform, this.#destinationTransform);\n this.sourceObserver?.Update?.(this.#sourceTransform);\n this.destinationObserver?.Update?.(this.#destinationTransform);\n const gpuParticleSystem = context?.GetGpuParticleSystem?.() ?? context?.gpuParticleSystem ?? null;\n const originShift = getOriginShift(context);\n this.sourceEmitter?.Update?.({ time, gpuParticleSystem, transform: this.#sourceTransform, originShift });\n this.destinationEmitter?.Update?.({ time, gpuParticleSystem, transform: this.#destinationTransform, originShift });\n return true;\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"The browser frustum is duck-typed and receives a portable axis-aligned box descriptor.\")\n UpdateVisibility(context)\n {\n if (!(this.#visible && this.#intensity > 0))\n {\n this.#inFrustum = false;\n return false;\n }\n const frustum = context?.GetFrustum?.() ?? context?.frustum;\n const bounds = {\n min: vec3.fromValues(-this.boundingRadius, -this.boundingRadius, -this.boundingRadius),\n max: vec3.fromValues(this.boundingRadius, this.boundingRadius, vec3.distance(this.#source, this.#destination) + this.boundingRadius),\n transform: this.#sourceTransform\n };\n this.#inFrustum = frustum?.IsBoxVisible ? !!frustum.IsBoxVisible(bounds) : true;\n return this.#inFrustum;\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"The class is collected as a renderable; GPU batch realization remains runtime-engine work.\")\n GetRenderables(out = [])\n {\n if (this.#visible && this.#intensity > 0 && this.#inFrustum) out.push(this);\n return out;\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"Returns portable constant data rather than allocating Carbon renderer constant buffers.\")\n GetPerObjectData()\n {\n this.#effectData[1][0] = this.#intensity;\n return {\n source: vec3.clone(this.#source),\n currentDestinationScale: this.#currentDestinationScale,\n destination: vec3.clone(this.#destination),\n destinationScale: this.#destinationScale,\n effectData: this.#effectData.map(value => vec4.clone(value)),\n quadCount: this.quadCount,\n effect: this.effect\n };\n }\n\n @carbon.method @impl.adapted\n @impl.reason(\"Light objects are forwarded without registering against Carbon's native light manager component registry.\")\n GetLights(lightManager)\n {\n if (!(this.#visible && this.#intensity > 0)) return;\n this.sourceLight?.AddLight?.(lightManager, this.#sourceTransform, 1);\n this.destinationLight?.AddLight?.(lightManager, this.#destinationTransform, this.#currentDestinationScale);\n }\n\n GetSourcePosition(out = vec3.create())\n {\n return vec3.copy(out, this.#source);\n }\n\n GetDestinationPosition(out = vec3.create())\n {\n return vec3.copy(out, this.#destination);\n }\n\n GetSourceTransform(out = mat4.create())\n {\n return mat4.copy(out, this.#sourceTransform);\n }\n\n GetDestinationTransform(out = mat4.create())\n {\n return mat4.copy(out, this.#destinationTransform);\n }\n}\n"],"names":["_EveStretch","_identity","EveStretch2","EveEntity","e","_init_name","_init_extra_name","_init_loop","_init_extra_loop","_init_start","_init_extra_start","_init_end","_init_extra_end","_init_effect","_init_extra_effect","_init_destinationEmitter","_init_extra_destinationEmitter","_init_sourceEmitter","_init_extra_sourceEmitter","_init_quadCount","_init_extra_quadCount","_init_destinationObserver","_init_extra_destinationObserver","_init_sourceObserver","_init_extra_sourceObserver","_init_destinationLight","_init_extra_destinationLight","_init_sourceLight","_init_extra_sourceLight","_init_boundingRadius","_init_extra_boundingRadius","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","model","notify","uint32","float32","carbon","method","impl","adapted","reason","implemented","noop","name","loop","start","end","effect","destinationEmitter","sourceEmitter","quadCount","destinationObserver","sourceObserver","destinationLight","sourceLight","boundingRadius","vec3","create","mat4","vec4","fromValues","Math","random","Initialize","OnModified","MAX_QUAD_COUNT","RangeError","SetDestObjectScale","scale","Number","StartMoving","GetCurveDuration","max","getCurveDuration","StartFiring","delay","PlayFrom","Stop","StopFiring","Play","SetFiringTransform","source","destination","length","getTranslation","copy","DisplayEndPoints","_displaySource","displayDestination","SetDisplay","display","SetIntensity","intensity","UpdateEffectSync","_context","UpdateEffectAsync","context","Update","time","getTime","relative","sets","index","updateCurveSet","GetScaledTime","scaledTime","makeEndpointTransforms","gpuParticleSystem","GetGpuParticleSystem","originShift","getOriginShift","transform","UpdateVisibility","frustum","GetFrustum","bounds","min","distance","IsBoxVisible","GetRenderables","out","push","GetPerObjectData","clone","currentDestinationScale","destinationScale","effectData","map","value","GetLights","lightManager","AddLight","GetSourcePosition","GetDestinationPosition","GetSourceTransform","GetDestinationTransform","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveStretch2.js","sources":["../../../../../src/eve/renderable/stretch/EveStretch2.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Renderable\\Stretch\\EveStretch2.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Renderable\\Stretch\\EveStretch2.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 { carbon, impl, io, type } from \"@carbonenginejs/core-types/schema\";\r\nimport { EveEntity } from \"../../../generated/eve/EveEntity.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { getCurveDuration, getOriginShift, getTime, makeEndpointTransforms, updateCurveSet } from \"./CjsStretchRuntime.js\";\r\n\r\n\r\n@type.define({ className: \"EveStretch2\", family: \"eve/renderable/stretch\" })\r\nexport class EveStretch2 extends EveEntity\r\n{\r\n static MAX_QUAD_COUNT = 128;\r\n\r\n @io.persist @type.string name = \"\";\r\n @io.persist @type.model(\"TriCurveSet\") loop = null;\r\n @io.persist @type.model(\"TriCurveSet\") start = null;\r\n @io.persist @type.model(\"TriCurveSet\") end = null;\r\n @io.persist @type.model(\"Tr2Effect\") effect = null;\r\n @io.persist @type.model(\"Tr2GpuSharedEmitter\") destinationEmitter = null;\r\n @io.persist @type.model(\"Tr2GpuSharedEmitter\") sourceEmitter = null;\r\n @io.notify @io.persist @type.uint32 quadCount = 0;\r\n @io.persist @type.model(\"TriObserverLocal\") destinationObserver = null;\r\n @io.persist @type.model(\"TriObserverLocal\") sourceObserver = null;\r\n @io.persist @type.model(\"Tr2PointLight\") destinationLight = null;\r\n @io.persist @type.model(\"Tr2PointLight\") sourceLight = null;\r\n @io.persist @type.float32 boundingRadius = 100;\r\n\r\n #source = vec3.create();\r\n #destination = vec3.create();\r\n #sourceTransform = mat4.create();\r\n #destinationTransform = mat4.create();\r\n #destinationScale = 1;\r\n #currentDestinationScale = 1;\r\n #visible = true;\r\n #inFrustum = true;\r\n #startTime = 0;\r\n #intensity = 1;\r\n #effectData = [vec4.fromValues(0, 0, 0, Math.random()), vec4.fromValues(1, 0, 0, 0)];\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"GPU buffer preparation belongs to runtime-engine; initialization validates the graph-owned quad count.\")\r\n Initialize()\r\n {\r\n return this.OnModified();\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Carbon rebuilds procedural GPU buffers here; runtime-trinity only enforces the authored 128-quad contract.\")\r\n OnModified()\r\n {\r\n if (this.quadCount > EveStretch2.MAX_QUAD_COUNT)\r\n {\r\n throw new RangeError(`EveStretch2.quadCount must be <= ${EveStretch2.MAX_QUAD_COUNT}`);\r\n }\r\n return true;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetDestObjectScale(scale)\r\n {\r\n this.#destinationScale = this.#currentDestinationScale = Number(scale);\r\n }\r\n\r\n @carbon.method @impl.noop\r\n StartMoving()\r\n {\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n GetCurveDuration()\r\n {\r\n return Math.max(getCurveDuration(this.start), getCurveDuration(this.loop));\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Carbon uses rand(); the browser uses Math.random for the per-shot shader seed.\")\r\n StartFiring(delay = 0)\r\n {\r\n this.#effectData[0][3] = Math.random();\r\n this.start?.PlayFrom?.(-delay);\r\n this.loop?.PlayFrom?.(-delay);\r\n this.end?.Stop?.();\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n StopFiring()\r\n {\r\n this.start?.Stop?.();\r\n this.loop?.Stop?.();\r\n this.end?.Play?.();\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetFiringTransform(source, destination)\r\n {\r\n if (source?.length === 16) mat4.getTranslation(this.#source, source);\r\n else vec3.copy(this.#source, source);\r\n vec3.copy(this.#destination, destination);\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n DisplayEndPoints(_displaySource, displayDestination)\r\n {\r\n this.#currentDestinationScale = displayDestination ? this.#destinationScale : 0;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetDisplay(display)\r\n {\r\n this.#visible = !!display;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n SetIntensity(intensity)\r\n {\r\n this.#intensity = Math.max(0, Number(intensity));\r\n }\r\n\r\n @carbon.method @impl.noop\r\n UpdateEffectSync(_context)\r\n {\r\n return true;\r\n }\r\n\r\n @carbon.method @impl.implemented\r\n UpdateEffectAsync(context)\r\n {\r\n return this.Update(context);\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Generic emitters receive a plain update descriptor instead of Carbon's native UpdateArguments structure.\")\r\n Update(context)\r\n {\r\n const time = getTime(context);\r\n if (this.#startTime === 0) this.#startTime = time;\r\n const relative = time - this.#startTime;\r\n const sets = [this.start, this.loop, this.end];\r\n for (let index = 0; index < sets.length; index++)\r\n {\r\n updateCurveSet(sets[index], relative);\r\n this.#effectData[0][index] = Number(sets[index]?.GetScaledTime?.() ?? sets[index]?.scaledTime ?? 0);\r\n }\r\n makeEndpointTransforms(this.#source, this.#destination, this.#sourceTransform, this.#destinationTransform);\r\n this.sourceObserver?.Update?.(this.#sourceTransform);\r\n this.destinationObserver?.Update?.(this.#destinationTransform);\r\n const gpuParticleSystem = context?.GetGpuParticleSystem?.() ?? context?.gpuParticleSystem ?? null;\r\n const originShift = getOriginShift(context);\r\n this.sourceEmitter?.Update?.({ time, gpuParticleSystem, transform: this.#sourceTransform, originShift });\r\n this.destinationEmitter?.Update?.({ time, gpuParticleSystem, transform: this.#destinationTransform, originShift });\r\n return true;\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"The browser frustum is duck-typed and receives a portable axis-aligned box descriptor.\")\r\n UpdateVisibility(context)\r\n {\r\n if (!(this.#visible && this.#intensity > 0))\r\n {\r\n this.#inFrustum = false;\r\n return false;\r\n }\r\n const frustum = context?.GetFrustum?.() ?? context?.frustum;\r\n const bounds = {\r\n min: vec3.fromValues(-this.boundingRadius, -this.boundingRadius, -this.boundingRadius),\r\n max: vec3.fromValues(this.boundingRadius, this.boundingRadius, vec3.distance(this.#source, this.#destination) + this.boundingRadius),\r\n transform: this.#sourceTransform\r\n };\r\n this.#inFrustum = frustum?.IsBoxVisible ? !!frustum.IsBoxVisible(bounds) : true;\r\n return this.#inFrustum;\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"The class is collected as a renderable; GPU batch realization remains runtime-engine work.\")\r\n GetRenderables(out = [])\r\n {\r\n if (this.#visible && this.#intensity > 0 && this.#inFrustum) out.push(this);\r\n return out;\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Returns portable constant data rather than allocating Carbon renderer constant buffers.\")\r\n GetPerObjectData()\r\n {\r\n this.#effectData[1][0] = this.#intensity;\r\n return {\r\n source: vec3.clone(this.#source),\r\n currentDestinationScale: this.#currentDestinationScale,\r\n destination: vec3.clone(this.#destination),\r\n destinationScale: this.#destinationScale,\r\n effectData: this.#effectData.map(value => vec4.clone(value)),\r\n quadCount: this.quadCount,\r\n effect: this.effect\r\n };\r\n }\r\n\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Light objects are forwarded without registering against Carbon's native light manager component registry.\")\r\n GetLights(lightManager)\r\n {\r\n if (!(this.#visible && this.#intensity > 0)) return;\r\n this.sourceLight?.AddLight?.(lightManager, this.#sourceTransform, 1);\r\n this.destinationLight?.AddLight?.(lightManager, this.#destinationTransform, this.#currentDestinationScale);\r\n }\r\n\r\n /** Carbon EveStretch2::RegisterComponents (cpp:389-398): LightOwner leaf\r\n * self-registration. Gate (m_visible && m_intensity > 0) && a source or\r\n * destination light. */\r\n @carbon.method @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n const isActive = this.#visible && this.#intensity > 0;\r\n const hasLights = this.sourceLight || this.destinationLight;\r\n if (registry && isActive && hasLights)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n GetSourcePosition(out = vec3.create())\r\n {\r\n return vec3.copy(out, this.#source);\r\n }\r\n\r\n GetDestinationPosition(out = vec3.create())\r\n {\r\n return vec3.copy(out, this.#destination);\r\n }\r\n\r\n GetSourceTransform(out = mat4.create())\r\n {\r\n return mat4.copy(out, this.#sourceTransform);\r\n }\r\n\r\n GetDestinationTransform(out = mat4.create())\r\n {\r\n return mat4.copy(out, this.#destinationTransform);\r\n }\r\n}\r\n"],"names":["_EveStretch","_identity","EveStretch2","EveEntity","e","_init_name","_init_extra_name","_init_loop","_init_extra_loop","_init_start","_init_extra_start","_init_end","_init_extra_end","_init_effect","_init_extra_effect","_init_destinationEmitter","_init_extra_destinationEmitter","_init_sourceEmitter","_init_extra_sourceEmitter","_init_quadCount","_init_extra_quadCount","_init_destinationObserver","_init_extra_destinationObserver","_init_sourceObserver","_init_extra_sourceObserver","_init_destinationLight","_init_extra_destinationLight","_init_sourceLight","_init_extra_sourceLight","_init_boundingRadius","_init_extra_boundingRadius","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","model","notify","uint32","float32","carbon","method","impl","adapted","reason","implemented","noop","name","loop","start","end","effect","destinationEmitter","sourceEmitter","quadCount","destinationObserver","sourceObserver","destinationLight","sourceLight","boundingRadius","vec3","create","mat4","vec4","fromValues","Math","random","Initialize","OnModified","MAX_QUAD_COUNT","RangeError","SetDestObjectScale","scale","Number","StartMoving","GetCurveDuration","max","getCurveDuration","StartFiring","delay","PlayFrom","Stop","StopFiring","Play","SetFiringTransform","source","destination","length","getTranslation","copy","DisplayEndPoints","_displaySource","displayDestination","SetDisplay","display","SetIntensity","intensity","UpdateEffectSync","_context","UpdateEffectAsync","context","Update","time","getTime","relative","sets","index","updateCurveSet","GetScaledTime","scaledTime","makeEndpointTransforms","gpuParticleSystem","GetGpuParticleSystem","originShift","getOriginShift","transform","UpdateVisibility","frustum","GetFrustum","bounds","min","distance","IsBoxVisible","GetRenderables","out","push","GetPerObjectData","clone","currentDestinationScale","destinationScale","effectData","map","value","GetLights","lightManager","AddLight","RegisterComponents","registry","GetComponentRegistry","isActive","hasLights","RegisterComponent","EveComponentType","LightOwner","GetSourcePosition","GetDestinationPosition","GetSourceTransform","GetDestinationTransform","constructor"],"mappings":";;;;;;;;;;AAQ2H,IAAAA;AAAA,IAAA,cAAAC,SAAA,CAAA;AAAA,EAAA,QAG3H,MAAAC,WAAA,SACiCC,UAAS,CAC1C;AAAA,IAAA;AAAA,MAAA,CAAA;QAAAC,CAAA,EAAA,CAAAC,UAAA,EAAAC,gBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,SAAA,EAAAC,eAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,wBAAA,EAAAC,8BAAA,EAAAC,mBAAA,EAAAC,yBAAA,EAAAC,eAAA,EAAAC,qBAAA,EAAAC,yBAAA,EAAAC,+BAAA,EAAAC,oBAAA,EAAAC,0BAAA,EAAAC,sBAAA,EAAAC,4BAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,oBAAA,EAAAC,0BAAA,EAAAC,UAAA,CAAA;QAAAC,CAAA,EAAA,CAAAhC,WAAA,EAAAiC,UAAA;AAAA,OAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,QAAAA,SAAS,EAAE,aAAa;AAAEC,QAAAA,MAAM,EAAE;OAA0B,CAAC,CAAA,EAAA,CAAA,CAAA,CAKzEC,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAEL,IAAI,EAAJA,IAAI,CAACM,MAAM,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CACvBF,EAAE,EAAFA,EAAE,CAACC,OAAO,UAAEL,IAAI,CAACO,KAAK,CAAC,aAAa,CAAC,kBACrCH,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAA,MAAA,EAAEL,IAAI,CAACO,KAAK,CAAC,aAAa,CAAC,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CACrCH,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAA,MAAA,EAAEL,IAAI,CAACO,KAAK,CAAC,aAAa,CAAC,CAAA,EAAA,EAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CACrCH,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAA,MAAA,EAAEL,IAAI,CAACO,KAAK,CAAC,WAAW,CAAC,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CACnCH,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAA,MAAA,EAAEL,IAAI,CAACO,KAAK,CAAC,qBAAqB,CAAC,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAC7CH,EAAE,EAAFA,EAAE,CAACC,OAAO,UAAEL,IAAI,CAACO,KAAK,CAAC,qBAAqB,CAAC,2BAC7CH,EAAE,EAAFA,EAAE,CAACI,MAAM,EAAEJ,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAEL,IAAI,EAAJA,IAAI,CAACS,MAAM,CAAA,EAAA,EAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAClCL,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAA,MAAA,EAAEL,IAAI,CAACO,KAAK,CAAC,kBAAkB,CAAC,CAAA,EAAA,EAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAC1CH,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAA,MAAA,EAAEL,IAAI,CAACO,KAAK,CAAC,kBAAkB,CAAC,CAAA,EAAA,EAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAC1CH,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAA,MAAA,EAAEL,IAAI,CAACO,KAAK,CAAC,eAAe,CAAC,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CACvCH,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAA,MAAA,EAAEL,IAAI,CAACO,KAAK,CAAC,eAAe,CAAC,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CACvCH,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAEL,IAAI,EAAJA,IAAI,CAACU,OAAO,CAAA,EAAA,EAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAcxBC,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACC,OAAO,UAC3BD,IAAI,CAACE,MAAM,CAAC,wGAAwG,CAAC,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAMrHJ,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EAC3BD,IAAI,CAACE,MAAM,CAAC,4GAA4G,CAAC,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAUzHJ,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACG,WAAW,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAM/BL,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACI,IAAI,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAKxBN,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACG,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAM/BL,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EAC3BD,IAAI,CAACE,MAAM,CAAC,gFAAgF,CAAC,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAS7FJ,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACG,WAAW,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAQ/BL,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACG,WAAW,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAQ/BL,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACG,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAM/BL,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACG,WAAW,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAM/BL,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACG,WAAW,CAAA,EAAA,EAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAM/BL,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACI,IAAI,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAMxBN,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACG,WAAW,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAM/BL,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EAC3BD,IAAI,CAACE,MAAM,CAAC,0GAA0G,CAAC,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAsBvHJ,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EAC3BD,IAAI,CAACE,MAAM,CAAC,wFAAwF,CAAC,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAkBrGJ,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EAC3BD,IAAI,CAACE,MAAM,CAAC,4FAA4F,CAAC,CAAA,EAAA,EAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAOzGJ,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EAC3BD,IAAI,CAACE,MAAM,CAAC,yFAAyF,CAAC,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAetGJ,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACC,OAAO,UAC3BD,IAAI,CAACE,MAAM,CAAC,2GAA2G,CAAC,uBAWxHJ,MAAM,EAANA,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAJA,IAAI,CAACG,WAAW,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAvMDhD,UAAS,CAAA;AAAA;AAIfkD,IAAAA,IAAI,IAAAtB,UAAA,CAAA,IAAA,CAAA,EAAA1B,UAAA,OAAG,EAAE,CAAA;AACKiD,IAAAA,IAAI,IAAAhD,gBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,IAAI,CAAA;AACXgD,IAAAA,KAAK,IAAA/C,gBAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAG,IAAI,CAAA;AACZ+C,IAAAA,GAAG,IAAA9C,iBAAA,CAAA,IAAA,CAAA,EAAAC,SAAA,OAAG,IAAI,CAAA;AACZ8C,IAAAA,MAAM,IAAA7C,eAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,IAAI,CAAA;AACH6C,IAAAA,kBAAkB,IAAA5C,kBAAA,CAAA,IAAA,CAAA,EAAAC,wBAAA,OAAG,IAAI,CAAA;AACzB4C,IAAAA,aAAa,IAAA3C,8BAAA,CAAA,IAAA,CAAA,EAAAC,mBAAA,OAAG,IAAI,CAAA;AAC/B2C,IAAAA,SAAS,IAAA1C,yBAAA,CAAA,IAAA,CAAA,EAAAC,eAAA,OAAG,CAAC,CAAA;AACL0C,IAAAA,mBAAmB,IAAAzC,qBAAA,CAAA,IAAA,CAAA,EAAAC,yBAAA,OAAG,IAAI,CAAA;AAC1ByC,IAAAA,cAAc,IAAAxC,+BAAA,CAAA,IAAA,CAAA,EAAAC,oBAAA,OAAG,IAAI,CAAA;AACxBwC,IAAAA,gBAAgB,IAAAvC,0BAAA,CAAA,IAAA,CAAA,EAAAC,sBAAA,OAAG,IAAI,CAAA;AACvBuC,IAAAA,WAAW,IAAAtC,4BAAA,CAAA,IAAA,CAAA,EAAAC,iBAAA,OAAG,IAAI,CAAA;AACjCsC,IAAAA,cAAc,IAAArC,uBAAA,CAAA,IAAA,CAAA,EAAAC,oBAAA,OAAG,GAAG,CAAA;IAE9C,OAAO,IAAAC,0BAAA,CAAA,IAAA,CAAA,EAAGoC,IAAI,CAACC,MAAM,EAAE;AACvB,IAAA,YAAY,GAAGD,IAAI,CAACC,MAAM,EAAE;AAC5B,IAAA,gBAAgB,GAAGC,IAAI,CAACD,MAAM,EAAE;AAChC,IAAA,qBAAqB,GAAGC,IAAI,CAACD,MAAM,EAAE;IACrC,iBAAiB,GAAG,CAAC;IACrB,wBAAwB,GAAG,CAAC;IAC5B,QAAQ,GAAG,IAAI;IACf,UAAU,GAAG,IAAI;IACjB,UAAU,GAAG,CAAC;IACd,UAAU,GAAG,CAAC;AACd,IAAA,WAAW,GAAG,CAACE,IAAI,CAACC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAEC,IAAI,CAACC,MAAM,EAAE,CAAC,EAAEH,IAAI,CAACC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAIpFG,IAAAA,UAAUA,GACV;AACE,MAAA,OAAO,IAAI,CAACC,UAAU,EAAE;AAC1B,IAAA;AAIAA,IAAAA,UAAUA,GACV;AACE,MAAA,IAAI,IAAI,CAACd,SAAS,GAAG1D,WAAW,CAACyE,cAAc,EAC/C;QACE,MAAM,IAAIC,UAAU,CAAC,CAAA,iCAAA,EAAoC1E,WAAW,CAACyE,cAAc,EAAE,CAAC;AACxF,MAAA;AACA,MAAA,OAAO,IAAI;AACb,IAAA;IAGAE,kBAAkBA,CAACC,KAAK,EACxB;AACE,MAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,GAAGC,MAAM,CAACD,KAAK,CAAC;AACxE,IAAA;IAGAE,WAAWA,GACX,CACA;AAGAC,IAAAA,gBAAgBA,GAChB;AACE,MAAA,OAAOV,IAAI,CAACW,GAAG,CAACC,gBAAgB,CAAC,IAAI,CAAC5B,KAAK,CAAC,EAAE4B,gBAAgB,CAAC,IAAI,CAAC7B,IAAI,CAAC,CAAC;AAC5E,IAAA;AAIA8B,IAAAA,WAAWA,CAACC,KAAK,GAAG,CAAC,EACrB;AACE,MAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGd,IAAI,CAACC,MAAM,EAAE;AACtC,MAAA,IAAI,CAACjB,KAAK,EAAE+B,QAAQ,GAAG,CAACD,KAAK,CAAC;AAC9B,MAAA,IAAI,CAAC/B,IAAI,EAAEgC,QAAQ,GAAG,CAACD,KAAK,CAAC;AAC7B,MAAA,IAAI,CAAC7B,GAAG,EAAE+B,IAAI,IAAI;AACpB,IAAA;AAGAC,IAAAA,UAAUA,GACV;AACE,MAAA,IAAI,CAACjC,KAAK,EAAEgC,IAAI,IAAI;AACpB,MAAA,IAAI,CAACjC,IAAI,EAAEiC,IAAI,IAAI;AACnB,MAAA,IAAI,CAAC/B,GAAG,EAAEiC,IAAI,IAAI;AACpB,IAAA;AAGAC,IAAAA,kBAAkBA,CAACC,MAAM,EAAEC,WAAW,EACtC;AACE,MAAA,IAAID,MAAM,EAAEE,MAAM,KAAK,EAAE,EAAEzB,IAAI,CAAC0B,cAAc,CAAC,IAAI,CAAC,OAAO,EAAEH,MAAM,CAAC,CAAC,KAChEzB,IAAI,CAAC6B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAEJ,MAAM,CAAC;MACpCzB,IAAI,CAAC6B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAEH,WAAW,CAAC;AAC3C,IAAA;AAGAI,IAAAA,gBAAgBA,CAACC,cAAc,EAAEC,kBAAkB,EACnD;MACE,IAAI,CAAC,wBAAwB,GAAGA,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC;AACjF,IAAA;IAGAC,UAAUA,CAACC,OAAO,EAClB;AACE,MAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAACA,OAAO;AAC3B,IAAA;IAGAC,YAAYA,CAACC,SAAS,EACtB;AACE,MAAA,IAAI,CAAC,UAAU,GAAG/B,IAAI,CAACW,GAAG,CAAC,CAAC,EAAEH,MAAM,CAACuB,SAAS,CAAC,CAAC;AAClD,IAAA;IAGAC,gBAAgBA,CAACC,QAAQ,EACzB;AACE,MAAA,OAAO,IAAI;AACb,IAAA;IAGAC,iBAAiBA,CAACC,OAAO,EACzB;AACE,MAAA,OAAO,IAAI,CAACC,MAAM,CAACD,OAAO,CAAC;AAC7B,IAAA;IAIAC,MAAMA,CAACD,OAAO,EACd;AACE,MAAA,MAAME,IAAI,GAAGC,OAAO,CAACH,OAAO,CAAC;AAC7B,MAAA,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,IAAI,CAAC,UAAU,GAAGE,IAAI;AACjD,MAAA,MAAME,QAAQ,GAAGF,IAAI,GAAG,IAAI,CAAC,UAAU;AACvC,MAAA,MAAMG,IAAI,GAAG,CAAC,IAAI,CAACxD,KAAK,EAAE,IAAI,CAACD,IAAI,EAAE,IAAI,CAACE,GAAG,CAAC;AAC9C,MAAA,KAAK,IAAIwD,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGD,IAAI,CAAClB,MAAM,EAAEmB,KAAK,EAAE,EAChD;AACEC,QAAAA,cAAc,CAACF,IAAI,CAACC,KAAK,CAAC,EAAEF,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAACE,KAAK,CAAC,GAAGjC,MAAM,CAACgC,IAAI,CAACC,KAAK,CAAC,EAAEE,aAAa,IAAI,IAAIH,IAAI,CAACC,KAAK,CAAC,EAAEG,UAAU,IAAI,CAAC,CAAC;AACrG,MAAA;MACAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC;MAC1G,IAAI,CAACtD,cAAc,EAAE6C,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;MACpD,IAAI,CAAC9C,mBAAmB,EAAE8C,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC;AAC9D,MAAA,MAAMU,iBAAiB,GAAGX,OAAO,EAAEY,oBAAoB,IAAI,IAAIZ,OAAO,EAAEW,iBAAiB,IAAI,IAAI;AACjG,MAAA,MAAME,WAAW,GAAGC,cAAc,CAACd,OAAO,CAAC;AAC3C,MAAA,IAAI,CAAC/C,aAAa,EAAEgD,MAAM,GAAG;QAAEC,IAAI;QAAES,iBAAiB;AAAEI,QAAAA,SAAS,EAAE,IAAI,CAAC,gBAAgB;AAAEF,QAAAA;AAAY,OAAC,CAAC;AACxG,MAAA,IAAI,CAAC7D,kBAAkB,EAAEiD,MAAM,GAAG;QAAEC,IAAI;QAAES,iBAAiB;AAAEI,QAAAA,SAAS,EAAE,IAAI,CAAC,qBAAqB;AAAEF,QAAAA;AAAY,OAAC,CAAC;AAClH,MAAA,OAAO,IAAI;AACb,IAAA;IAIAG,gBAAgBA,CAAChB,OAAO,EACxB;AACE,MAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,EAC3C;AACE,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,OAAO,KAAK;AACd,MAAA;MACA,MAAMiB,OAAO,GAAGjB,OAAO,EAAEkB,UAAU,IAAI,IAAIlB,OAAO,EAAEiB,OAAO;AAC3D,MAAA,MAAME,MAAM,GAAG;AACbC,QAAAA,GAAG,EAAE5D,IAAI,CAACI,UAAU,CAAC,CAAC,IAAI,CAACL,cAAc,EAAE,CAAC,IAAI,CAACA,cAAc,EAAE,CAAC,IAAI,CAACA,cAAc,CAAC;AACtFiB,QAAAA,GAAG,EAAEhB,IAAI,CAACI,UAAU,CAAC,IAAI,CAACL,cAAc,EAAE,IAAI,CAACA,cAAc,EAAEC,IAAI,CAAC6D,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC9D,cAAc,CAAC;QACpIwD,SAAS,EAAE,IAAI,CAAC;OACjB;AACD,MAAA,IAAI,CAAC,UAAU,GAAGE,OAAO,EAAEK,YAAY,GAAG,CAAC,CAACL,OAAO,CAACK,YAAY,CAACH,MAAM,CAAC,GAAG,IAAI;MAC/E,OAAO,IAAI,CAAC,UAAU;AACxB,IAAA;AAIAI,IAAAA,cAAcA,CAACC,GAAG,GAAG,EAAE,EACvB;MACE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,EAAEA,GAAG,CAACC,IAAI,CAAC,IAAI,CAAC;AAC3E,MAAA,OAAOD,GAAG;AACZ,IAAA;AAIAE,IAAAA,gBAAgBA,GAChB;AACE,MAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU;MACxC,OAAO;QACLzC,MAAM,EAAEzB,IAAI,CAACmE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAChCC,QAAAA,uBAAuB,EAAE,IAAI,CAAC,wBAAwB;QACtD1C,WAAW,EAAE1B,IAAI,CAACmE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1CE,QAAAA,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;AACxCC,QAAAA,UAAU,EAAE,IAAI,CAAC,WAAW,CAACC,GAAG,CAACC,KAAK,IAAIrE,IAAI,CAACgE,KAAK,CAACK,KAAK,CAAC,CAAC;QAC5D9E,SAAS,EAAE,IAAI,CAACA,SAAS;QACzBH,MAAM,EAAE,IAAI,CAACA;OACd;AACH,IAAA;IAIAkF,SAASA,CAACC,YAAY,EACtB;AACE,MAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE;AAC7C,MAAA,IAAI,CAAC5E,WAAW,EAAE6E,QAAQ,GAAGD,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACpE,MAAA,IAAI,CAAC7E,gBAAgB,EAAE8E,QAAQ,GAAGD,YAAY,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,wBAAwB,CAAC;AAC5G,IAAA;;AAEA;AACF;AACA;AAEEE,IAAAA,kBAAkBA,GAClB;AACE,MAAA,MAAMC,QAAQ,GAAG,IAAI,CAACC,oBAAoB,EAAE;AAC5C,MAAA,MAAMC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC;MACrD,MAAMC,SAAS,GAAG,IAAI,CAAClF,WAAW,IAAI,IAAI,CAACD,gBAAgB;AAC3D,MAAA,IAAIgF,QAAQ,IAAIE,QAAQ,IAAIC,SAAS,EACrC;QACEH,QAAQ,CAACI,iBAAiB,CAACC,gBAAgB,CAACC,UAAU,EAAE,IAAI,CAAC;AAC/D,MAAA;AACF,IAAA;IAEAC,iBAAiBA,CAACpB,GAAG,GAAGhE,IAAI,CAACC,MAAM,EAAE,EACrC;MACE,OAAOD,IAAI,CAAC6B,IAAI,CAACmC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;AACrC,IAAA;IAEAqB,sBAAsBA,CAACrB,GAAG,GAAGhE,IAAI,CAACC,MAAM,EAAE,EAC1C;MACE,OAAOD,IAAI,CAAC6B,IAAI,CAACmC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC;AAC1C,IAAA;IAEAsB,kBAAkBA,CAACtB,GAAG,GAAG9D,IAAI,CAACD,MAAM,EAAE,EACtC;MACE,OAAOC,IAAI,CAAC2B,IAAI,CAACmC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC;AAC9C,IAAA;IAEAuB,uBAAuBA,CAACvB,GAAG,GAAG9D,IAAI,CAACD,MAAM,EAAE,EAC3C;MACE,OAAOC,IAAI,CAAC2B,IAAI,CAACmC,GAAG,EAAE,IAAI,CAAC,qBAAqB,CAAC;AACnD,IAAA;GACD;AApOQvD,EAAAA,cAAc,GAAG,GAAG;EAAC+E,WAAAA,GAAA;IAAA,KAAA,CAAA1J,WAAA,GAAAiC,UAAA,EAAA;AAAA,EAAA;AAAA,CAAA,EAAA;;;;"}
|
|
@@ -19,7 +19,7 @@ new class extends _identity {
|
|
|
19
19
|
} = _applyDecs2311(this, [type.define({
|
|
20
20
|
className: "EveStretch3",
|
|
21
21
|
family: "eve/renderable/stretch"
|
|
22
|
-
})], [[[io, io.read, type, type.vec3], 16, "sourcePosition"], [[io, io.read, type, type.vec3], 16, "destinationPosition"], [[io, io.notify, io, io.persist, void 0, type.model("ITriVectorFunction")], 16, "source"], [[io, io.notify, io, io.persist, void 0, type.model("ITriVectorFunction")], 16, "dest"], [[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, void 0, type.model("TriFloat")], 16, "moveProgression"], [[io, io.persist, void 0, type.model("IStretchAudio")], 16, "stretchAudio"], [[io, io.persist, void 0, type.list("ITr2Controller")], 16, "controllers"], [[io, io.persist, void 0, type.list("TriCurveSet")], 16, "curveSets"], [[io, io.persist, void 0, type.model("TriFloat")], 16, "length"], [[io, io.persist, void 0, type.list("Tr2DynamicBinding")], 16, "dynamicBindings"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, type, type.boolean], 16, "update"], [[io, io.persistOnly, void 0, type.model("IEveSpaceObjectChild")], 16, "destObject"], [[io, io.persistOnly, void 0, type.model("IEveSpaceObjectChild")], 16, "sourceObject"], [[io, io.persistOnly, void 0, type.model("IEveSpaceObjectChild")], 16, "stretchObject"], [[io, io.read, type, type.float64], 16, "startTime"], [[io, io.persist, void 0, type.model("ITr2Audio")], 16, "audio"], [[io, io.persistOnly, void 0, type.model("IEveSpaceObjectChild")], 16, "moveObject"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Dynamic bindings are linked directly because JavaScript has no Carbon owner-interface registry.")], 18, "Initialize"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetSourceSpaceObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetSourceSpaceObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDestSpaceObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDestSpaceObject"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Bindings receive this object and invoke their portable Link/Rebind hooks without a native Blue parameter map.")], 18, "Rebind"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's synchronous task phase is retained as a serial graph update in the browser runtime.")], 18, "UpdateSynchronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's asynchronous task phase is retained as a serial graph update in the browser runtime.")], 18, "UpdateAsynchronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Visibility transforms are computed here; renderer-specific LOD realization stays in runtime-engine.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Renderable collection is backend-neutral; draw-batch construction remains runtime-engine work.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDisplay"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Bounds are merged from child graph objects without Carbon's native BoundingSphere helper.")], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCurveDuration"], [[carbon, carbon.method, impl, impl.implemented], 18, "StartFiring"], [[carbon, carbon.method, impl, impl.implemented], 18, "StopFiring"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetFiringTransform"], [[carbon, carbon.method, impl, impl.noop], 18, "DisplayEndPoints"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDestObjectScale"], [[carbon, carbon.method, impl, impl.noop], 18, "SetIntensity"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct child/controller method forwarding.")], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct child/controller method forwarding.")], 18, "HandleControllerEvent"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct child/controller method forwarding.")], 18, "StartControllers"]], 0, void 0, _EveEntity));
|
|
22
|
+
})], [[[io, io.read, type, type.vec3], 16, "sourcePosition"], [[io, io.read, type, type.vec3], 16, "destinationPosition"], [[io, io.notify, io, io.persist, void 0, type.model("ITriVectorFunction")], 16, "source"], [[io, io.notify, io, io.persist, void 0, type.model("ITriVectorFunction")], 16, "dest"], [[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, void 0, type.model("TriFloat")], 16, "moveProgression"], [[io, io.persist, void 0, type.model("IStretchAudio")], 16, "stretchAudio"], [[io, io.persist, void 0, type.list("ITr2Controller")], 16, "controllers"], [[io, io.persist, void 0, type.list("TriCurveSet")], 16, "curveSets"], [[io, io.persist, void 0, type.model("TriFloat")], 16, "length"], [[io, io.persist, void 0, type.list("Tr2DynamicBinding")], 16, "dynamicBindings"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, type, type.boolean], 16, "update"], [[io, io.persistOnly, void 0, type.model("IEveSpaceObjectChild")], 16, "destObject"], [[io, io.persistOnly, void 0, type.model("IEveSpaceObjectChild")], 16, "sourceObject"], [[io, io.persistOnly, void 0, type.model("IEveSpaceObjectChild")], 16, "stretchObject"], [[io, io.read, type, type.float64], 16, "startTime"], [[io, io.persist, void 0, type.model("ITr2Audio")], 16, "audio"], [[io, io.persistOnly, void 0, type.model("IEveSpaceObjectChild")], 16, "moveObject"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Dynamic bindings are linked directly because JavaScript has no Carbon owner-interface registry.")], 18, "Initialize"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetSourceSpaceObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetSourceSpaceObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDestSpaceObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDestSpaceObject"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Bindings receive this object and invoke their portable Link/Rebind hooks without a native Blue parameter map.")], 18, "Rebind"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's synchronous task phase is retained as a serial graph update in the browser runtime.")], 18, "UpdateSynchronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's asynchronous task phase is retained as a serial graph update in the browser runtime.")], 18, "UpdateAsynchronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Visibility transforms are computed here; renderer-specific LOD realization stays in runtime-engine.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Renderable collection is backend-neutral; draw-batch construction remains runtime-engine work.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDisplay"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Bounds are merged from child graph objects without Carbon's native BoundingSphere helper.")], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCurveDuration"], [[carbon, carbon.method, impl, impl.implemented], 18, "StartFiring"], [[carbon, carbon.method, impl, impl.implemented], 18, "StopFiring"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetFiringTransform"], [[carbon, carbon.method, impl, impl.noop], 18, "DisplayEndPoints"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDestObjectScale"], [[carbon, carbon.method, impl, impl.noop], 18, "SetIntensity"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct child/controller method forwarding.")], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct child/controller method forwarding.")], 18, "HandleControllerEvent"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct child/controller method forwarding.")], 18, "StartControllers"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "UnRegisterComponents"]], 0, void 0, _EveEntity));
|
|
23
23
|
}
|
|
24
24
|
sourcePosition = (_initProto(this), _init_sourcePosition(this, vec3.create()));
|
|
25
25
|
destinationPosition = (_init_extra_sourcePosition(this), _init_destinationPosition(this, vec3.create()));
|
|
@@ -277,6 +277,29 @@ new class extends _identity {
|
|
|
277
277
|
FindSoundEmitter(name) {
|
|
278
278
|
return this.audio?.FindEmitterByName?.(name) ?? this.stretchAudio?.FindEmitterByName?.(name) ?? null;
|
|
279
279
|
}
|
|
280
|
+
|
|
281
|
+
/** Carbon EveStretch3::RegisterComponents (cpp:721-734): forwards the
|
|
282
|
+
* source/dest/stretch children via RunOnComponents (cpp:126-141; the move
|
|
283
|
+
* object is NOT part of that fan-out). Gate m_display. */
|
|
284
|
+
RegisterComponents() {
|
|
285
|
+
const registry = this.GetComponentRegistry();
|
|
286
|
+
if (registry && this.display) {
|
|
287
|
+
this.sourceObject?.Register?.(registry);
|
|
288
|
+
this.destObject?.Register?.(registry);
|
|
289
|
+
this.stretchObject?.Register?.(registry);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/** Carbon EveStretch3::UnRegisterComponents (cpp:736-749): forwards the
|
|
294
|
+
* same RunOnComponents children; no display re-check. */
|
|
295
|
+
UnRegisterComponents() {
|
|
296
|
+
const registry = this.GetComponentRegistry();
|
|
297
|
+
if (registry) {
|
|
298
|
+
this.sourceObject?.UnRegister?.(registry);
|
|
299
|
+
this.destObject?.UnRegister?.(registry);
|
|
300
|
+
this.stretchObject?.UnRegister?.(registry);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
280
303
|
#components() {
|
|
281
304
|
return [this.sourceObject, this.destObject, this.stretchObject, this.moveObject].filter(Boolean);
|
|
282
305
|
}
|