@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":"EveChildInstancedMeshes.js","sources":["../../../../src/eve/child/EveChildInstancedMeshes.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildInstancedMeshes.h\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildInstancedMeshes.cpp\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildInstancedMeshes_Blue.cpp\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\nimport { CjsModel } from \"@carbonenginejs/core-types/model\";\nimport { carbon, impl, io, type } from \"@carbonenginejs/core-types/schema\";\nimport { EveEntity } from \"../../generated/eve/EveEntity.js\";\n\n\n@type.define({ className: \"EveChildInstancedMeshArea\", family: \"eve/child\" })\nexport class EveChildInstancedMeshArea extends CjsModel\n{\n @io.rebuild(\"instanceBuffer\")\n @io.persist\n @type.objectRef(\"Tr2Effect\")\n effect = null;\n\n @io.rebuild(\"instanceBuffer\")\n @io.persist\n @type.uint32\n batchType = 0;\n\n @io.rebuild(\"instanceBuffer\")\n @io.persist\n @type.uint32\n areaIndex = 0;\n\n @io.rebuild(\"instanceBuffer\")\n @io.persist\n @type.uint32\n areaCount = 1;\n\n @io.read\n @type.float32\n effectHash = 0;\n}\n\n\n@type.define({ className: \"EveChildInstancedMeshInstance\", family: \"eve/child\" })\nexport class EveChildInstancedMeshInstance extends CjsModel\n{\n @io.rebuild(\"instanceBuffer\")\n @io.persist\n @type.mat4\n transform = mat4.create();\n\n @io.rebuild(\"instanceBuffer\")\n @io.persist\n @type.uint32\n sphereIndex = 0;\n}\n\n\n@type.define({ className: \"EveChildInstancedMesh\", family: \"eve/child\" })\nexport class EveChildInstancedMesh extends CjsModel\n{\n @io.persist\n @type.string\n geometryPath = \"\";\n\n @io.persist\n @type.boolean\n castsShadow = false;\n\n @io.persist\n @type.int32\n reflectionMode = 3;\n\n @io.persist\n @type.uint32\n meshIndex = 0;\n\n @io.persist\n @type.list(\"EveChildInstancedMeshArea\")\n areas = [];\n\n @io.persist\n @type.list(\"EveChildInstancedMeshInstance\")\n instances = [];\n\n @io.persist\n @type.string\n sofHullName = \"\";\n\n @io.persist\n @type.string\n sofLocatorSetName = \"\";\n\n @io.persist\n @type.boolean\n display = true;\n\n #geometry = null;\n\n GetGeometryResource()\n {\n return this.#geometry;\n }\n\n SetGeometryResource(resource)\n {\n this.#geometry = resource ?? null;\n }\n}\n\n\n@type.define({ className: \"EveChildInstancedMeshes\", family: \"eve/child\" })\nexport class EveChildInstancedMeshes extends EveEntity\n{\n @io.persist\n @type.string\n name = \"\";\n\n @io.read\n @type.mat4\n worldTransform = mat4.create();\n\n @io.read\n @type.boolean\n hasUpdated = false;\n\n @io.persist\n @type.list(\"EveChildInstancedMesh\")\n meshes = [];\n\n #revision = 0;\n\n @carbon.method\n @impl.implemented\n GetName()\n {\n return this.name;\n }\n\n @carbon.method\n @impl.implemented\n SetName(name)\n {\n this.name = String(name ?? \"\");\n }\n\n @carbon.method\n @impl.adapted\n UpdateVisibility()\n {\n }\n\n @carbon.method\n @impl.implemented\n GetRenderables(renderables = [])\n {\n return renderables;\n }\n\n @carbon.method\n @impl.implemented\n GetBoundingSphere()\n {\n return false;\n }\n\n @carbon.method\n @impl.implemented\n UpdateSyncronous(_updateContext, params)\n {\n if (params?.localToWorldTransform?.length === 16)\n {\n mat4.copy(this.worldTransform, params.localToWorldTransform);\n }\n }\n\n @carbon.method\n @impl.adapted\n UpdateAsyncronous()\n {\n this.hasUpdated = true;\n }\n\n @carbon.method\n @impl.implemented\n GetLocalToWorldTransform(out = null)\n {\n if (out)\n {\n return mat4.copy(out, this.worldTransform);\n }\n return this.worldTransform;\n }\n\n @carbon.method\n @impl.implemented\n Setup()\n {\n }\n\n @carbon.method\n @impl.implemented\n ChangeLOD()\n {\n }\n\n @carbon.method\n @impl.adapted\n SetOrigin()\n {\n }\n\n @carbon.method\n @impl.implemented\n IsAlwaysOn()\n {\n return false;\n }\n\n @carbon.method\n @impl.adapted\n SetShaderOption(name, value)\n {\n for (const mesh of this.meshes)\n {\n for (const area of mesh.areas)\n {\n area.effect?.SetOption?.(name, value);\n area.effectHash = EveChildInstancedMeshes.#GetEffectHash(area.effect);\n }\n }\n this.#revision++;\n }\n\n @carbon.method\n @impl.adapted\n AddMesh(\n geometryPath,\n castsShadow,\n reflectionMode,\n meshIndex,\n areas,\n instanceTransforms,\n sofHullName = \"\",\n sofLocatorSetName = \"\"\n )\n {\n const sourceAreas = Array.from(areas ?? []);\n const sourceTransforms = Array.from(instanceTransforms ?? []);\n if (!sourceAreas.length || !sourceTransforms.length)\n {\n return false;\n }\n\n const normalizedAreas = sourceAreas.map(area => EveChildInstancedMeshes.#CreateArea(area));\n const instances = sourceTransforms.map((transform, sphereIndex) =>\n {\n if (!transform || transform.length !== 16)\n {\n throw new TypeError(\"EveChildInstancedMeshes instance transforms must contain 16 values\");\n }\n const instance = new EveChildInstancedMeshInstance();\n mat4.copy(instance.transform, transform);\n instance.sphereIndex = sphereIndex;\n return instance;\n });\n\n const mesh = new EveChildInstancedMesh();\n mesh.geometryPath = String(geometryPath ?? \"\");\n mesh.castsShadow = !!castsShadow;\n mesh.reflectionMode = reflectionMode === undefined ? 3 : Number(reflectionMode) | 0;\n mesh.meshIndex = Number(meshIndex) >>> 0;\n mesh.areas = normalizedAreas;\n mesh.instances = instances;\n mesh.sofHullName = String(sofHullName ?? \"\");\n mesh.sofLocatorSetName = String(sofLocatorSetName ?? \"\");\n this.meshes.push(mesh);\n this.#revision++;\n return true;\n }\n\n @carbon.method\n @impl.adapted\n Clear()\n {\n this.meshes.length = 0;\n this.hasUpdated = false;\n this.#revision++;\n }\n\n @carbon.method\n @impl.implemented\n GetSofSourceLocator(areaId)\n {\n const value = Number(areaId) >>> 0;\n const mesh = this.meshes[value >>> 16];\n if (!mesh || !mesh.sofHullName)\n {\n return null;\n }\n return [mesh.sofHullName, mesh.sofLocatorSetName, value & 0xffff];\n }\n\n @carbon.method\n @impl.implemented\n GetMeshCount()\n {\n return this.meshes.length;\n }\n\n @carbon.method\n @impl.adapted\n GetMeshInfo(meshId)\n {\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\n return [\n mesh.geometryPath,\n mesh.GetGeometryResource(),\n mesh.meshIndex,\n mesh.castsShadow,\n mesh.reflectionMode,\n mesh.areas.length,\n mesh.instances.length\n ];\n }\n\n @carbon.method\n @impl.adapted\n GetAreaInfo(meshId, areaId)\n {\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\n const index = Number(areaId) >>> 0;\n if (index >= mesh.areas.length)\n {\n throw new RangeError(`EveChildInstancedMeshes area index ${index} is out of range`);\n }\n const area = mesh.areas[index];\n return [area.effect, area.batchType, area.areaIndex, area.areaCount];\n }\n\n @carbon.method\n @impl.adapted\n GetMeshDisplay(meshId)\n {\n return EveChildInstancedMeshes.#GetMesh(this.meshes, meshId).display;\n }\n\n @carbon.method\n @impl.adapted\n SetMeshDisplay(meshId, display)\n {\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\n const next = !!display;\n if (mesh.display !== next)\n {\n mesh.display = next;\n this.#revision++;\n }\n }\n\n @carbon.method\n @impl.adapted\n SetGeometryResource(meshId, geometry)\n {\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\n if (mesh.GetGeometryResource() !== geometry)\n {\n mesh.SetGeometryResource(geometry);\n this.#revision++;\n }\n }\n\n @carbon.method\n @impl.adapted\n GetMeshData(meshId)\n {\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\n return EveChildInstancedMeshes.#CloneMesh(mesh);\n }\n\n @carbon.method\n @impl.implemented\n GetRevision()\n {\n return this.#revision;\n }\n\n static #GetMesh(meshes, meshId)\n {\n const index = Number(meshId) >>> 0;\n if (index >= meshes.length)\n {\n throw new RangeError(`EveChildInstancedMeshes mesh index ${index} is out of range`);\n }\n return meshes[index];\n }\n\n static #CreateArea(value)\n {\n const source = value ?? {};\n const area = new EveChildInstancedMeshArea();\n area.effect = source.effect ?? null;\n area.batchType = Number(source.batchType) >>> 0;\n area.areaIndex = Number(source.areaIndex) >>> 0;\n area.areaCount = source.areaCount === undefined ? 1 : Number(source.areaCount) >>> 0;\n area.effectHash = EveChildInstancedMeshes.#GetEffectHash(area.effect);\n return area;\n }\n\n static #CloneMesh(mesh)\n {\n return {\n geometryPath: mesh.geometryPath,\n geometry: mesh.GetGeometryResource(),\n castsShadow: mesh.castsShadow,\n reflectionMode: mesh.reflectionMode,\n meshIndex: mesh.meshIndex,\n areas: mesh.areas.map(area => ({ ...area })),\n instances: mesh.instances.map(instance => ({\n transform: mat4.clone(instance.transform),\n sphereIndex: instance.sphereIndex\n })),\n sofHullName: mesh.sofHullName,\n sofLocatorSetName: mesh.sofLocatorSetName,\n display: mesh.display\n };\n }\n\n static #GetEffectHash(effect)\n {\n const hash = effect?.GetHashValue?.() ?? effect?.hash ?? 0;\n return Number(hash) || 0;\n }\n\n}\n"],"names":["_EveChildInstancedMes","EveChildInstancedMeshArea","CjsModel","e","_init_effect","_init_extra_effect","_init_batchType","_init_extra_batchType","_init_areaIndex","_init_extra_areaIndex","_init_areaCount","_init_extra_areaCount","_init_effectHash","_init_extra_effectHash","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","objectRef","uint32","read","float32","constructor","args","effect","batchType","areaIndex","areaCount","effectHash","_EveChildInstancedMes2","EveChildInstancedMeshInstance","_init_transform","_init_extra_transform","_init_sphereIndex","_init_extra_sphereIndex","_initClass2","mat4","transform","create","sphereIndex","_EveChildInstancedMes3","EveChildInstancedMesh","_init_geometryPath","_init_extra_geometryPath","_init_castsShadow","_init_extra_castsShadow","_init_reflectionMode","_init_extra_reflectionMode","_init_meshIndex","_init_extra_meshIndex","_init_areas","_init_extra_areas","_init_instances","_init_extra_instances","_init_sofHullName","_init_extra_sofHullName","_init_sofLocatorSetName","_init_extra_sofLocatorSetName","_init_display","_init_extra_display","_initClass3","string","boolean","int32","list","geometryPath","castsShadow","reflectionMode","meshIndex","areas","instances","sofHullName","sofLocatorSetName","display","GetGeometryResource","SetGeometryResource","resource","_EveChildInstancedMes4","_identity","EveChildInstancedMeshes","EveEntity","_init_name","_init_extra_name","_init_worldTransform","_init_extra_worldTransform","_init_hasUpdated","_init_extra_hasUpdated","_init_meshes","_init_extra_meshes","_initProto","_initClass4","carbon","method","impl","implemented","adapted","name","worldTransform","hasUpdated","meshes","GetName","SetName","String","UpdateVisibility","GetRenderables","renderables","GetBoundingSphere","UpdateSyncronous","_updateContext","params","localToWorldTransform","length","copy","UpdateAsyncronous","GetLocalToWorldTransform","out","Setup","ChangeLOD","SetOrigin","IsAlwaysOn","SetShaderOption","value","mesh","area","SetOption","AddMesh","instanceTransforms","sourceAreas","Array","from","sourceTransforms","normalizedAreas","map","TypeError","instance","undefined","Number","push","Clear","GetSofSourceLocator","areaId","GetMeshCount","GetMeshInfo","meshId","GetAreaInfo","index","RangeError","GetMeshDisplay","SetMeshDisplay","next","geometry","GetMeshData","GetRevision","#GetMesh","#CreateArea","source","#CloneMesh","clone","#GetEffectHash","hash","GetHashValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveChildInstancedMeshes.js","sources":["../../../../src/eve/child/EveChildInstancedMeshes.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildInstancedMeshes.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildInstancedMeshes.cpp\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildInstancedMeshes_Blue.cpp\r\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\r\nimport { CjsModel } from \"@carbonenginejs/core-types/model\";\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/core-types/schema\";\r\nimport { EveEntity } from \"../../generated/eve/EveEntity.js\";\r\nimport { EveComponentType } from \"../EveComponentTypes.js\";\r\n\r\n\r\n@type.define({ className: \"EveChildInstancedMeshArea\", family: \"eve/child\" })\r\nexport class EveChildInstancedMeshArea extends CjsModel\r\n{\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n batchType = 0;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n areaIndex = 0;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n areaCount = 1;\r\n\r\n @io.read\r\n @type.float32\r\n effectHash = 0;\r\n}\r\n\r\n\r\n@type.define({ className: \"EveChildInstancedMeshInstance\", family: \"eve/child\" })\r\nexport class EveChildInstancedMeshInstance extends CjsModel\r\n{\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.mat4\r\n transform = mat4.create();\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n sphereIndex = 0;\r\n}\r\n\r\n\r\n@type.define({ className: \"EveChildInstancedMesh\", family: \"eve/child\" })\r\nexport class EveChildInstancedMesh extends CjsModel\r\n{\r\n @io.persist\r\n @type.string\r\n geometryPath = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n castsShadow = false;\r\n\r\n @io.persist\r\n @type.int32\r\n reflectionMode = 3;\r\n\r\n @io.persist\r\n @type.uint32\r\n meshIndex = 0;\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMeshArea\")\r\n areas = [];\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMeshInstance\")\r\n instances = [];\r\n\r\n @io.persist\r\n @type.string\r\n sofHullName = \"\";\r\n\r\n @io.persist\r\n @type.string\r\n sofLocatorSetName = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n #geometry = null;\r\n\r\n GetGeometryResource()\r\n {\r\n return this.#geometry;\r\n }\r\n\r\n SetGeometryResource(resource)\r\n {\r\n this.#geometry = resource ?? null;\r\n }\r\n}\r\n\r\n\r\n@type.define({ className: \"EveChildInstancedMeshes\", family: \"eve/child\" })\r\nexport class EveChildInstancedMeshes extends EveEntity\r\n{\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.read\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @io.read\r\n @type.boolean\r\n hasUpdated = false;\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMesh\")\r\n meshes = [];\r\n\r\n #revision = 0;\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UpdateVisibility()\r\n {\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(renderables = [])\r\n {\r\n return renderables;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphere()\r\n {\r\n return false;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSyncronous(_updateContext, params)\r\n {\r\n if (params?.localToWorldTransform?.length === 16)\r\n {\r\n mat4.copy(this.worldTransform, params.localToWorldTransform);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UpdateAsyncronous()\r\n {\r\n this.hasUpdated = true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetLocalToWorldTransform(out = null)\r\n {\r\n if (out)\r\n {\r\n return mat4.copy(out, this.worldTransform);\r\n }\r\n return this.worldTransform;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n Setup()\r\n {\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n ChangeLOD()\r\n {\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetOrigin()\r\n {\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n IsAlwaysOn()\r\n {\r\n return false;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n for (const mesh of this.meshes)\r\n {\r\n for (const area of mesh.areas)\r\n {\r\n area.effect?.SetOption?.(name, value);\r\n area.effectHash = EveChildInstancedMeshes.#GetEffectHash(area.effect);\r\n }\r\n }\r\n this.#revision++;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n AddMesh(\r\n geometryPath,\r\n castsShadow,\r\n reflectionMode,\r\n meshIndex,\r\n areas,\r\n instanceTransforms,\r\n sofHullName = \"\",\r\n sofLocatorSetName = \"\"\r\n )\r\n {\r\n const sourceAreas = Array.from(areas ?? []);\r\n const sourceTransforms = Array.from(instanceTransforms ?? []);\r\n if (!sourceAreas.length || !sourceTransforms.length)\r\n {\r\n return false;\r\n }\r\n\r\n const normalizedAreas = sourceAreas.map(area => EveChildInstancedMeshes.#CreateArea(area));\r\n const instances = sourceTransforms.map((transform, sphereIndex) =>\r\n {\r\n if (!transform || transform.length !== 16)\r\n {\r\n throw new TypeError(\"EveChildInstancedMeshes instance transforms must contain 16 values\");\r\n }\r\n const instance = new EveChildInstancedMeshInstance();\r\n mat4.copy(instance.transform, transform);\r\n instance.sphereIndex = sphereIndex;\r\n return instance;\r\n });\r\n\r\n const mesh = new EveChildInstancedMesh();\r\n mesh.geometryPath = String(geometryPath ?? \"\");\r\n mesh.castsShadow = !!castsShadow;\r\n mesh.reflectionMode = reflectionMode === undefined ? 3 : Number(reflectionMode) | 0;\r\n mesh.meshIndex = Number(meshIndex) >>> 0;\r\n mesh.areas = normalizedAreas;\r\n mesh.instances = instances;\r\n mesh.sofHullName = String(sofHullName ?? \"\");\r\n mesh.sofLocatorSetName = String(sofLocatorSetName ?? \"\");\r\n this.meshes.push(mesh);\r\n this.#revision++;\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n Clear()\r\n {\r\n this.meshes.length = 0;\r\n this.hasUpdated = false;\r\n this.#revision++;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetSofSourceLocator(areaId)\r\n {\r\n const value = Number(areaId) >>> 0;\r\n const mesh = this.meshes[value >>> 16];\r\n if (!mesh || !mesh.sofHullName)\r\n {\r\n return null;\r\n }\r\n return [mesh.sofHullName, mesh.sofLocatorSetName, value & 0xffff];\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetMeshCount()\r\n {\r\n return this.meshes.length;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n GetMeshInfo(meshId)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n return [\r\n mesh.geometryPath,\r\n mesh.GetGeometryResource(),\r\n mesh.meshIndex,\r\n mesh.castsShadow,\r\n mesh.reflectionMode,\r\n mesh.areas.length,\r\n mesh.instances.length\r\n ];\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n GetAreaInfo(meshId, areaId)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n const index = Number(areaId) >>> 0;\r\n if (index >= mesh.areas.length)\r\n {\r\n throw new RangeError(`EveChildInstancedMeshes area index ${index} is out of range`);\r\n }\r\n const area = mesh.areas[index];\r\n return [area.effect, area.batchType, area.areaIndex, area.areaCount];\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n GetMeshDisplay(meshId)\r\n {\r\n return EveChildInstancedMeshes.#GetMesh(this.meshes, meshId).display;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetMeshDisplay(meshId, display)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n const next = !!display;\r\n if (mesh.display !== next)\r\n {\r\n mesh.display = next;\r\n this.#revision++;\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetGeometryResource(meshId, geometry)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n if (mesh.GetGeometryResource() !== geometry)\r\n {\r\n mesh.SetGeometryResource(geometry);\r\n this.#revision++;\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n GetMeshData(meshId)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n return EveChildInstancedMeshes.#CloneMesh(mesh);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetRevision()\r\n {\r\n return this.#revision;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::RegisterComponents (cpp:36-43):\r\n * unconditional InstancedMeshProvider + ShadowCaster leaf\r\n * self-registration. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.InstancedMeshProvider, this);\r\n registry.RegisterComponent(EveComponentType.ShadowCaster, this);\r\n }\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::UnRegisterComponents (cpp:45-48) only\r\n * calls UnregisterFromMeshManager (GPU mesh-manager handle cleanup,\r\n * unported); own components were already removed by EveEntity::UnRegister\r\n * (EveEntity.cpp:90). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"UnregisterFromMeshManager releases GPU mesh-group/sphere/per-object handles owned by the engine's EveInstancedMeshManager.\")\r\n UnRegisterComponents()\r\n {\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::AddMeshesToManager (cpp:472-535)\r\n * uploads instance data to the engine-owned EveInstancedMeshManager;\r\n * presence satisfies the \"InstancedMeshProvider\" duck contract. */\r\n @carbon.method\r\n @impl.notImplemented\r\n AddMeshesToManager(..._args)\r\n {\r\n throw new Error(\"EveChildInstancedMeshes.AddMeshesToManager is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::IsCastingShadow (cpp:73-76) always\r\n * returns false (instanced shadows cull per instance group); presence\r\n * satisfies the \"ShadowCaster\" duck contract. */\r\n @carbon.method\r\n @impl.implemented\r\n IsCastingShadow(..._args)\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::GetShadowBatches (cpp:78-80) is an\r\n * intentional no-op (the instanced mesh manager emits the batches). */\r\n @carbon.method\r\n @impl.noop\r\n GetShadowBatches(..._args)\r\n {\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::GetShadowPerObjectData (cpp:82-85)\r\n * returns null (per-object data flows through the mesh manager). */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowPerObjectData(..._args)\r\n {\r\n return null;\r\n }\r\n\r\n static #GetMesh(meshes, meshId)\r\n {\r\n const index = Number(meshId) >>> 0;\r\n if (index >= meshes.length)\r\n {\r\n throw new RangeError(`EveChildInstancedMeshes mesh index ${index} is out of range`);\r\n }\r\n return meshes[index];\r\n }\r\n\r\n static #CreateArea(value)\r\n {\r\n const source = value ?? {};\r\n const area = new EveChildInstancedMeshArea();\r\n area.effect = source.effect ?? null;\r\n area.batchType = Number(source.batchType) >>> 0;\r\n area.areaIndex = Number(source.areaIndex) >>> 0;\r\n area.areaCount = source.areaCount === undefined ? 1 : Number(source.areaCount) >>> 0;\r\n area.effectHash = EveChildInstancedMeshes.#GetEffectHash(area.effect);\r\n return area;\r\n }\r\n\r\n static #CloneMesh(mesh)\r\n {\r\n return {\r\n geometryPath: mesh.geometryPath,\r\n geometry: mesh.GetGeometryResource(),\r\n castsShadow: mesh.castsShadow,\r\n reflectionMode: mesh.reflectionMode,\r\n meshIndex: mesh.meshIndex,\r\n areas: mesh.areas.map(area => ({ ...area })),\r\n instances: mesh.instances.map(instance => ({\r\n transform: mat4.clone(instance.transform),\r\n sphereIndex: instance.sphereIndex\r\n })),\r\n sofHullName: mesh.sofHullName,\r\n sofLocatorSetName: mesh.sofLocatorSetName,\r\n display: mesh.display\r\n };\r\n }\r\n\r\n static #GetEffectHash(effect)\r\n {\r\n const hash = effect?.GetHashValue?.() ?? effect?.hash ?? 0;\r\n return Number(hash) || 0;\r\n }\r\n\r\n}\r\n"],"names":["_EveChildInstancedMes","EveChildInstancedMeshArea","CjsModel","e","_init_effect","_init_extra_effect","_init_batchType","_init_extra_batchType","_init_areaIndex","_init_extra_areaIndex","_init_areaCount","_init_extra_areaCount","_init_effectHash","_init_extra_effectHash","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","objectRef","uint32","read","float32","constructor","args","effect","batchType","areaIndex","areaCount","effectHash","_EveChildInstancedMes2","EveChildInstancedMeshInstance","_init_transform","_init_extra_transform","_init_sphereIndex","_init_extra_sphereIndex","_initClass2","mat4","transform","create","sphereIndex","_EveChildInstancedMes3","EveChildInstancedMesh","_init_geometryPath","_init_extra_geometryPath","_init_castsShadow","_init_extra_castsShadow","_init_reflectionMode","_init_extra_reflectionMode","_init_meshIndex","_init_extra_meshIndex","_init_areas","_init_extra_areas","_init_instances","_init_extra_instances","_init_sofHullName","_init_extra_sofHullName","_init_sofLocatorSetName","_init_extra_sofLocatorSetName","_init_display","_init_extra_display","_initClass3","string","boolean","int32","list","geometryPath","castsShadow","reflectionMode","meshIndex","areas","instances","sofHullName","sofLocatorSetName","display","GetGeometryResource","SetGeometryResource","resource","_EveChildInstancedMes4","_identity","EveChildInstancedMeshes","EveEntity","_init_name","_init_extra_name","_init_worldTransform","_init_extra_worldTransform","_init_hasUpdated","_init_extra_hasUpdated","_init_meshes","_init_extra_meshes","_initProto","_initClass4","carbon","method","impl","implemented","adapted","reason","notImplemented","noop","name","worldTransform","hasUpdated","meshes","GetName","SetName","String","UpdateVisibility","GetRenderables","renderables","GetBoundingSphere","UpdateSyncronous","_updateContext","params","localToWorldTransform","length","copy","UpdateAsyncronous","GetLocalToWorldTransform","out","Setup","ChangeLOD","SetOrigin","IsAlwaysOn","SetShaderOption","value","mesh","area","SetOption","AddMesh","instanceTransforms","sourceAreas","Array","from","sourceTransforms","normalizedAreas","map","TypeError","instance","undefined","Number","push","Clear","GetSofSourceLocator","areaId","GetMeshCount","GetMeshInfo","meshId","GetAreaInfo","index","RangeError","GetMeshDisplay","SetMeshDisplay","next","geometry","GetMeshData","GetRevision","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","InstancedMeshProvider","ShadowCaster","UnRegisterComponents","AddMeshesToManager","_args","Error","IsCastingShadow","GetShadowBatches","GetShadowPerObjectData","#GetMesh","#CreateArea","source","#CloneMesh","clone","#GetEffectHash","hash","GetHashValue"],"mappings":"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"}
|
|
@@ -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, impl, schema } from '@carbonenginejs/core-types/schema';
|
|
6
6
|
import { EveChildTransform as _EveChildTransform } from './EveChildTransform.js';
|
|
7
|
+
import { EveComponentType } from '../EveComponentTypes.js';
|
|
7
8
|
|
|
8
9
|
let _initProto, _initClass, _init_priority, _init_extra_priority, _init_name, _init_extra_name, _init_backgroundIntensity, _init_extra_backgroundIntensity, _init_intensity, _init_extra_intensity, _init_reflectionIntensity, _init_extra_reflectionIntensity, _init_sunIntensity, _init_extra_sunIntensity, _init_sunColor, _init_extra_sunColor, _init_volumes, _init_extra_volumes;
|
|
9
10
|
let _EveChildLightingOver;
|
|
@@ -16,7 +17,7 @@ new class extends _identity {
|
|
|
16
17
|
} = _applyDecs2311(this, [type.define({
|
|
17
18
|
className: "EveChildLightingOverride",
|
|
18
19
|
family: "eve/child"
|
|
19
|
-
})], [[[io, io.persist, type, type.int32, void 0, schema.enum("Priority")], 16, "priority"], [[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, type, type.float32], 16, "backgroundIntensity"], [[io, io.persist, type, type.float32], 16, "intensity"], [[io, io.persist, type, type.float32], 16, "reflectionIntensity"], [[io, io.persist, type, type.float32], 16, "sunIntensity"], [[io, io.persist, type, type.color], 16, "sunColor"], [[io, io.persist, void 0, type.list("IEveVolume")], 16, "volumes"], [[impl, impl.implemented], 18, "GetOverrides"], [[impl, impl.adapted], 18, "GetBoundingSphere"], [[impl, impl.adapted], 18, "UpdateAsyncronous"]], 0, void 0, _EveChildTransform));
|
|
20
|
+
})], [[[io, io.persist, type, type.int32, void 0, schema.enum("Priority")], 16, "priority"], [[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, type, type.float32], 16, "backgroundIntensity"], [[io, io.persist, type, type.float32], 16, "intensity"], [[io, io.persist, type, type.float32], 16, "reflectionIntensity"], [[io, io.persist, type, type.float32], 16, "sunIntensity"], [[io, io.persist, type, type.color], 16, "sunColor"], [[io, io.persist, void 0, type.list("IEveVolume")], 16, "volumes"], [[impl, impl.implemented], 18, "RegisterComponents"], [[impl, impl.implemented], 18, "GetOverrides"], [[impl, impl.adapted], 18, "GetBoundingSphere"], [[impl, impl.adapted], 18, "UpdateAsyncronous"]], 0, void 0, _EveChildTransform));
|
|
20
21
|
}
|
|
21
22
|
constructor(...args) {
|
|
22
23
|
super(...args);
|
|
@@ -36,6 +37,18 @@ new class extends _identity {
|
|
|
36
37
|
sunIntensity = (_init_extra_reflectionIntensity(this), _init_sunIntensity(this, 1));
|
|
37
38
|
sunColor = (_init_extra_sunIntensity(this), _init_sunColor(this, vec4.fromValues(1, 1, 1, 1)));
|
|
38
39
|
volumes = (_init_extra_sunColor(this), _init_volumes(this, []));
|
|
40
|
+
|
|
41
|
+
/** Carbon EveChildLightingOverride::RegisterComponents (cpp:47-50):
|
|
42
|
+
* unconditional EveLightingOverride leaf self-registration. Carbon's
|
|
43
|
+
* UnRegisterComponents (cpp:52-55) only removes this same component, which
|
|
44
|
+
* EveEntity::UnRegister already did via UnRegisterAllComponents
|
|
45
|
+
* (EveEntity.cpp:90), so the JS un-side keeps the base no-op. */
|
|
46
|
+
RegisterComponents() {
|
|
47
|
+
const registry = this.GetComponentRegistry();
|
|
48
|
+
if (registry) {
|
|
49
|
+
registry.RegisterComponent(EveComponentType.EveLightingOverride, this);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
39
52
|
GetOverrides() {
|
|
40
53
|
return {
|
|
41
54
|
priority: this.priority,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveChildLightingOverride.js","sources":["../../../../src/eve/child/EveChildLightingOverride.js"],"sourcesContent":["// Ported/adapted from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/Eve/SpaceObject/Children/EveChildLightingOverride.h\n// trinity/trinity/Eve/SpaceObject/Children/EveChildLightingOverride.cpp\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\nimport { vec3 } from \"@carbonenginejs/core-math/vec3\";\nimport { vec4 } from \"@carbonenginejs/core-math/vec4\";\nimport { impl, io, schema, type } from \"@carbonenginejs/core-types/schema\";\nimport { EveChildTransform } from \"./EveChildTransform.js\";\n\n\n@type.define({ className: \"EveChildLightingOverride\", family: \"eve/child\" })\nexport class EveChildLightingOverride extends EveChildTransform\n{\n #overrideIntensity = 0;\n #boundingSphere = { center: vec3.create(), radius: 0, initialized: false };\n\n @io.persist\n @type.int32\n @schema.enum(\"Priority\")\n priority = 2;\n\n @io.persist\n @type.string\n name = \"\";\n\n @io.persist\n @type.float32\n backgroundIntensity = 1;\n\n @io.persist\n @type.float32\n intensity = 1;\n\n @io.persist\n @type.float32\n reflectionIntensity = 1;\n\n @io.persist\n @type.float32\n sunIntensity = 1;\n\n @io.persist\n @type.color\n sunColor = vec4.fromValues(1, 1, 1, 1);\n\n @io.persist\n @type.list(\"IEveVolume\")\n volumes = [];\n\n @impl.implemented\n GetOverrides()\n {\n return {\n priority: this.priority,\n intensity: this.#overrideIntensity,\n value: {\n sunColor: vec4.clone(this.sunColor),\n sunIntensity: this.sunIntensity,\n backgroundIntensity: this.backgroundIntensity,\n reflectionIntensity: this.reflectionIntensity\n }\n };\n }\n\n GetName()\n {\n return this.name;\n }\n\n SetName(name)\n {\n this.name = String(name ?? \"\");\n }\n\n @impl.adapted\n GetBoundingSphere(out = vec4.create())\n {\n vec4.set(out, this.#boundingSphere.center[0], this.#boundingSphere.center[1], this.#boundingSphere.center[2], this.#boundingSphere.radius);\n return true;\n }\n\n UpdateSyncronous(_updateContext, _params)\n {\n }\n\n @impl.adapted\n UpdateAsyncronous(updateContext, params = {})\n {\n this.UpdateTransform(params.localToWorldTransform ?? mat4.create());\n this.#RebuildBoundingSphere();\n\n if (this.volumes.length === 0)\n {\n this.#overrideIntensity = this.intensity;\n return;\n }\n\n this.#overrideIntensity = 0;\n const viewPosition = updateContext?.renderContext?.GetViewPosition?.();\n const inverse = mat4.invert(mat4.create(), this.worldTransform);\n if (!viewPosition || !inverse || !this.#boundingSphere.initialized) return;\n const localView = vec3.transformMat4(vec3.create(), viewPosition, inverse);\n if (vec3.distance(localView, this.#boundingSphere.center) > this.#boundingSphere.radius) return;\n\n for (const volume of this.volumes)\n {\n this.#overrideIntensity = Math.max(this.#overrideIntensity, Number(volume?.GetIntensity?.(localView)) || 0);\n if (this.#overrideIntensity >= 1) break;\n }\n this.#overrideIntensity *= this.intensity;\n }\n\n GetLocalToWorldTransform(out = mat4.create())\n {\n return mat4.copy(out, this.worldTransform);\n }\n\n Setup(scale, rotation, translation, lowestLodVisible)\n {\n return super.Setup(scale, rotation, translation, lowestLodVisible);\n }\n\n IsAlwaysOn()\n {\n return true;\n }\n\n Initialize()\n {\n this.#RebuildBoundingSphere();\n return true;\n }\n\n UpdateVisibility(_updateContext, _parentTransform, _parentLod)\n {\n }\n\n GetRenderables(_renderables)\n {\n }\n\n ChangeLOD(_lod)\n {\n }\n\n static Priority = Object.freeze({\n SCENE_DEFAULT_PRIORITY: 0,\n LOW_PRIORITY: 1,\n MEDIUM_PRIORITY: 2,\n HIGH_PRIORITY: 3,\n UI_PRIORITY: 4,\n PRIORITY_COUNT: 5\n });\n\n #RebuildBoundingSphere()\n {\n const target = this.#boundingSphere;\n vec3.set(target.center, 0, 0, 0);\n target.radius = 0;\n target.initialized = false;\n\n for (const volume of this.volumes)\n {\n const sphere = volume?.GetBoundingSphere?.();\n if (!sphere?.center || !Number.isFinite(sphere.radius) || sphere.radius < 0) continue;\n if (!target.initialized)\n {\n vec3.copy(target.center, sphere.center);\n target.radius = sphere.radius;\n target.initialized = true;\n continue;\n }\n EveChildLightingOverride.#UnionSphere(target, sphere);\n }\n }\n\n static #UnionSphere(target, sphere)\n {\n const delta = vec3.subtract(vec3.create(), sphere.center, target.center);\n const distance = vec3.length(delta);\n if (distance + sphere.radius <= target.radius) return;\n if (distance + target.radius <= sphere.radius)\n {\n vec3.copy(target.center, sphere.center);\n target.radius = sphere.radius;\n return;\n }\n if (distance === 0)\n {\n target.radius = Math.max(target.radius, sphere.radius);\n return;\n }\n const radius = (target.radius + sphere.radius + distance) * 0.5;\n vec3.scaleAndAdd(target.center, target.center, delta, (radius - target.radius) / distance);\n target.radius = radius;\n }\n}\n"],"names":["_EveChildLightingOver","_identity","EveChildLightingOverride","EveChildTransform","e","_init_priority","_init_extra_priority","_init_name","_init_extra_name","_init_backgroundIntensity","_init_extra_backgroundIntensity","_init_intensity","_init_extra_intensity","_init_reflectionIntensity","_init_extra_reflectionIntensity","_init_sunIntensity","_init_extra_sunIntensity","_init_sunColor","_init_extra_sunColor","_init_volumes","_init_extra_volumes","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","int32","schema","enum","string","float32","color","list","impl","implemented","adapted","constructor","args","center","vec3","create","radius","initialized","priority","name","backgroundIntensity","intensity","reflectionIntensity","sunIntensity","sunColor","vec4","fromValues","volumes","GetOverrides","value","clone","GetName","SetName","String","GetBoundingSphere","out","set","UpdateSyncronous","_updateContext","_params","UpdateAsyncronous","updateContext","params","UpdateTransform","localToWorldTransform","mat4","length","viewPosition","renderContext","GetViewPosition","inverse","invert","worldTransform","localView","transformMat4","distance","volume","Math","max","Number","GetIntensity","GetLocalToWorldTransform","copy","Setup","scale","rotation","translation","lowestLodVisible","IsAlwaysOn","Initialize","UpdateVisibility","_parentTransform","_parentLod","GetRenderables","_renderables","ChangeLOD","_lod","#RebuildBoundingSphere","target","sphere","isFinite","Priority","Object","freeze","SCENE_DEFAULT_PRIORITY","LOW_PRIORITY","MEDIUM_PRIORITY","HIGH_PRIORITY","UI_PRIORITY","PRIORITY_COUNT","#UnionSphere","delta","subtract","scaleAndAdd"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveChildLightingOverride.js","sources":["../../../../src/eve/child/EveChildLightingOverride.js"],"sourcesContent":["// Ported/adapted from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildLightingOverride.h\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildLightingOverride.cpp\r\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\r\nimport { vec3 } from \"@carbonenginejs/core-math/vec3\";\r\nimport { vec4 } from \"@carbonenginejs/core-math/vec4\";\r\nimport { impl, io, schema, type } from \"@carbonenginejs/core-types/schema\";\r\nimport { EveChildTransform } from \"./EveChildTransform.js\";\r\nimport { EveComponentType } from \"../EveComponentTypes.js\";\r\n\r\n\r\n@type.define({ className: \"EveChildLightingOverride\", family: \"eve/child\" })\r\nexport class EveChildLightingOverride extends EveChildTransform\r\n{\r\n #overrideIntensity = 0;\r\n #boundingSphere = { center: vec3.create(), radius: 0, initialized: false };\r\n\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"Priority\")\r\n priority = 2;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.float32\r\n backgroundIntensity = 1;\r\n\r\n @io.persist\r\n @type.float32\r\n intensity = 1;\r\n\r\n @io.persist\r\n @type.float32\r\n reflectionIntensity = 1;\r\n\r\n @io.persist\r\n @type.float32\r\n sunIntensity = 1;\r\n\r\n @io.persist\r\n @type.color\r\n sunColor = vec4.fromValues(1, 1, 1, 1);\r\n\r\n @io.persist\r\n @type.list(\"IEveVolume\")\r\n volumes = [];\r\n\r\n /** Carbon EveChildLightingOverride::RegisterComponents (cpp:47-50):\r\n * unconditional EveLightingOverride leaf self-registration. Carbon's\r\n * UnRegisterComponents (cpp:52-55) only removes this same component, which\r\n * EveEntity::UnRegister already did via UnRegisterAllComponents\r\n * (EveEntity.cpp:90), so the JS un-side keeps the base no-op. */\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.EveLightingOverride, this);\r\n }\r\n }\r\n\r\n @impl.implemented\r\n GetOverrides()\r\n {\r\n return {\r\n priority: this.priority,\r\n intensity: this.#overrideIntensity,\r\n value: {\r\n sunColor: vec4.clone(this.sunColor),\r\n sunIntensity: this.sunIntensity,\r\n backgroundIntensity: this.backgroundIntensity,\r\n reflectionIntensity: this.reflectionIntensity\r\n }\r\n };\r\n }\r\n\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n @impl.adapted\r\n GetBoundingSphere(out = vec4.create())\r\n {\r\n vec4.set(out, this.#boundingSphere.center[0], this.#boundingSphere.center[1], this.#boundingSphere.center[2], this.#boundingSphere.radius);\r\n return true;\r\n }\r\n\r\n UpdateSyncronous(_updateContext, _params)\r\n {\r\n }\r\n\r\n @impl.adapted\r\n UpdateAsyncronous(updateContext, params = {})\r\n {\r\n this.UpdateTransform(params.localToWorldTransform ?? mat4.create());\r\n this.#RebuildBoundingSphere();\r\n\r\n if (this.volumes.length === 0)\r\n {\r\n this.#overrideIntensity = this.intensity;\r\n return;\r\n }\r\n\r\n this.#overrideIntensity = 0;\r\n const viewPosition = updateContext?.renderContext?.GetViewPosition?.();\r\n const inverse = mat4.invert(mat4.create(), this.worldTransform);\r\n if (!viewPosition || !inverse || !this.#boundingSphere.initialized) return;\r\n const localView = vec3.transformMat4(vec3.create(), viewPosition, inverse);\r\n if (vec3.distance(localView, this.#boundingSphere.center) > this.#boundingSphere.radius) return;\r\n\r\n for (const volume of this.volumes)\r\n {\r\n this.#overrideIntensity = Math.max(this.#overrideIntensity, Number(volume?.GetIntensity?.(localView)) || 0);\r\n if (this.#overrideIntensity >= 1) break;\r\n }\r\n this.#overrideIntensity *= this.intensity;\r\n }\r\n\r\n GetLocalToWorldTransform(out = mat4.create())\r\n {\r\n return mat4.copy(out, this.worldTransform);\r\n }\r\n\r\n Setup(scale, rotation, translation, lowestLodVisible)\r\n {\r\n return super.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n IsAlwaysOn()\r\n {\r\n return true;\r\n }\r\n\r\n Initialize()\r\n {\r\n this.#RebuildBoundingSphere();\r\n return true;\r\n }\r\n\r\n UpdateVisibility(_updateContext, _parentTransform, _parentLod)\r\n {\r\n }\r\n\r\n GetRenderables(_renderables)\r\n {\r\n }\r\n\r\n ChangeLOD(_lod)\r\n {\r\n }\r\n\r\n static Priority = Object.freeze({\r\n SCENE_DEFAULT_PRIORITY: 0,\r\n LOW_PRIORITY: 1,\r\n MEDIUM_PRIORITY: 2,\r\n HIGH_PRIORITY: 3,\r\n UI_PRIORITY: 4,\r\n PRIORITY_COUNT: 5\r\n });\r\n\r\n #RebuildBoundingSphere()\r\n {\r\n const target = this.#boundingSphere;\r\n vec3.set(target.center, 0, 0, 0);\r\n target.radius = 0;\r\n target.initialized = false;\r\n\r\n for (const volume of this.volumes)\r\n {\r\n const sphere = volume?.GetBoundingSphere?.();\r\n if (!sphere?.center || !Number.isFinite(sphere.radius) || sphere.radius < 0) continue;\r\n if (!target.initialized)\r\n {\r\n vec3.copy(target.center, sphere.center);\r\n target.radius = sphere.radius;\r\n target.initialized = true;\r\n continue;\r\n }\r\n EveChildLightingOverride.#UnionSphere(target, sphere);\r\n }\r\n }\r\n\r\n static #UnionSphere(target, sphere)\r\n {\r\n const delta = vec3.subtract(vec3.create(), sphere.center, target.center);\r\n const distance = vec3.length(delta);\r\n if (distance + sphere.radius <= target.radius) return;\r\n if (distance + target.radius <= sphere.radius)\r\n {\r\n vec3.copy(target.center, sphere.center);\r\n target.radius = sphere.radius;\r\n return;\r\n }\r\n if (distance === 0)\r\n {\r\n target.radius = Math.max(target.radius, sphere.radius);\r\n return;\r\n }\r\n const radius = (target.radius + sphere.radius + distance) * 0.5;\r\n vec3.scaleAndAdd(target.center, target.center, delta, (radius - target.radius) / distance);\r\n target.radius = radius;\r\n }\r\n}\r\n"],"names":["_EveChildLightingOver","_identity","EveChildLightingOverride","EveChildTransform","e","_init_priority","_init_extra_priority","_init_name","_init_extra_name","_init_backgroundIntensity","_init_extra_backgroundIntensity","_init_intensity","_init_extra_intensity","_init_reflectionIntensity","_init_extra_reflectionIntensity","_init_sunIntensity","_init_extra_sunIntensity","_init_sunColor","_init_extra_sunColor","_init_volumes","_init_extra_volumes","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","int32","schema","enum","string","float32","color","list","impl","implemented","adapted","constructor","args","center","vec3","create","radius","initialized","priority","name","backgroundIntensity","intensity","reflectionIntensity","sunIntensity","sunColor","vec4","fromValues","volumes","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","EveLightingOverride","GetOverrides","value","clone","GetName","SetName","String","GetBoundingSphere","out","set","UpdateSyncronous","_updateContext","_params","UpdateAsyncronous","updateContext","params","UpdateTransform","localToWorldTransform","mat4","length","viewPosition","renderContext","GetViewPosition","inverse","invert","worldTransform","localView","transformMat4","distance","volume","Math","max","Number","GetIntensity","GetLocalToWorldTransform","copy","Setup","scale","rotation","translation","lowestLodVisible","IsAlwaysOn","Initialize","UpdateVisibility","_parentTransform","_parentLod","GetRenderables","_renderables","ChangeLOD","_lod","#RebuildBoundingSphere","target","sphere","isFinite","Priority","Object","freeze","SCENE_DEFAULT_PRIORITY","LOW_PRIORITY","MEDIUM_PRIORITY","HIGH_PRIORITY","UI_PRIORITY","PRIORITY_COUNT","#UnionSphere","delta","subtract","scaleAndAdd"],"mappings":"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"}
|