@zephyr3d/editor 0.3.8 → 0.3.9

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.
Files changed (137) hide show
  1. package/dist/assets/{index-BZ1L8ggE.js → index-CO6yA4Rj.js} +313 -11
  2. package/dist/assistant/zephyr-types-index.json +13834 -11679
  3. package/dist/index.html +1 -1
  4. package/dist/modules/zephyr3d_backend-webgpu.js +1 -1
  5. package/dist/modules/zephyr3d_backend-webgpu.js.map +1 -1
  6. package/dist/modules/zephyr3d_device.js +2 -2
  7. package/dist/modules/zephyr3d_device.js.map +1 -1
  8. package/dist/modules/zephyr3d_scene.js +2325 -515
  9. package/dist/modules/zephyr3d_scene.js.map +1 -1
  10. package/dist/vendor/zephyr3d/backend-webgpu/dist/renderpass_webgpu.js +1 -1
  11. package/dist/vendor/zephyr3d/backend-webgpu/dist/renderpass_webgpu.js.map +1 -1
  12. package/dist/vendor/zephyr3d/device/dist/device.js +2 -2
  13. package/dist/vendor/zephyr3d/device/dist/device.js.map +1 -1
  14. package/dist/vendor/zephyr3d/scene/dist/app/engine.js +3 -1
  15. package/dist/vendor/zephyr3d/scene/dist/app/engine.js.map +1 -1
  16. package/dist/vendor/zephyr3d/scene/dist/asset/assetmanager.js +1 -0
  17. package/dist/vendor/zephyr3d/scene/dist/asset/assetmanager.js.map +1 -1
  18. package/dist/vendor/zephyr3d/scene/dist/camera/camera.js +87 -0
  19. package/dist/vendor/zephyr3d/scene/dist/camera/camera.js.map +1 -1
  20. package/dist/vendor/zephyr3d/scene/dist/index.d.ts +158 -4
  21. package/dist/vendor/zephyr3d/scene/dist/index.js +3 -0
  22. package/dist/vendor/zephyr3d/scene/dist/index.js.map +1 -1
  23. package/dist/vendor/zephyr3d/scene/dist/material/meshmaterial.js +8 -1
  24. package/dist/vendor/zephyr3d/scene/dist/material/meshmaterial.js.map +1 -1
  25. package/dist/vendor/zephyr3d/scene/dist/material/shader/helper.js +6 -0
  26. package/dist/vendor/zephyr3d/scene/dist/material/shader/helper.js.map +1 -1
  27. package/dist/vendor/zephyr3d/scene/dist/material/skin.js +263 -0
  28. package/dist/vendor/zephyr3d/scene/dist/material/skin.js.map +1 -0
  29. package/dist/vendor/zephyr3d/scene/dist/posteffect/compositor.js +3 -0
  30. package/dist/vendor/zephyr3d/scene/dist/posteffect/compositor.js.map +1 -1
  31. package/dist/vendor/zephyr3d/scene/dist/posteffect/skinsss.js +194 -0
  32. package/dist/vendor/zephyr3d/scene/dist/posteffect/skinsss.js.map +1 -0
  33. package/dist/vendor/zephyr3d/scene/dist/posteffect/ssr.js +26 -49
  34. package/dist/vendor/zephyr3d/scene/dist/posteffect/ssr.js.map +1 -1
  35. package/dist/vendor/zephyr3d/scene/dist/posteffect/sss.js +1 -0
  36. package/dist/vendor/zephyr3d/scene/dist/posteffect/sss.js.map +1 -1
  37. package/dist/vendor/zephyr3d/scene/dist/posteffect/taa.js +2 -40
  38. package/dist/vendor/zephyr3d/scene/dist/posteffect/taa.js.map +1 -1
  39. package/dist/vendor/zephyr3d/scene/dist/render/abuffer_oit.js +1 -0
  40. package/dist/vendor/zephyr3d/scene/dist/render/abuffer_oit.js.map +1 -1
  41. package/dist/vendor/zephyr3d/scene/dist/render/drawable_mixin.js +1 -0
  42. package/dist/vendor/zephyr3d/scene/dist/render/drawable_mixin.js.map +1 -1
  43. package/dist/vendor/zephyr3d/scene/dist/render/fbm_wavegenerator.js +1 -0
  44. package/dist/vendor/zephyr3d/scene/dist/render/fbm_wavegenerator.js.map +1 -1
  45. package/dist/vendor/zephyr3d/scene/dist/render/gerstner_wavegenerator.js +1 -0
  46. package/dist/vendor/zephyr3d/scene/dist/render/gerstner_wavegenerator.js.map +1 -1
  47. package/dist/vendor/zephyr3d/scene/dist/render/globalbindgroup_allocator.js +1 -0
  48. package/dist/vendor/zephyr3d/scene/dist/render/globalbindgroup_allocator.js.map +1 -1
  49. package/dist/vendor/zephyr3d/scene/dist/render/lightpass.js +4 -1
  50. package/dist/vendor/zephyr3d/scene/dist/render/lightpass.js.map +1 -1
  51. package/dist/vendor/zephyr3d/scene/dist/render/render_queue.js +1 -0
  52. package/dist/vendor/zephyr3d/scene/dist/render/render_queue.js.map +1 -1
  53. package/dist/vendor/zephyr3d/scene/dist/render/renderer.js +1 -0
  54. package/dist/vendor/zephyr3d/scene/dist/render/renderer.js.map +1 -1
  55. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/device_pool_allocator.js +12 -5
  56. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/device_pool_allocator.js.map +1 -1
  57. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/forward_plus_builder.js +78 -8
  58. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
  59. package/dist/vendor/zephyr3d/scene/dist/scene/basesprite.js +1 -0
  60. package/dist/vendor/zephyr3d/scene/dist/scene/basesprite.js.map +1 -1
  61. package/dist/vendor/zephyr3d/scene/dist/scene/batchgroup.js +1 -0
  62. package/dist/vendor/zephyr3d/scene/dist/scene/batchgroup.js.map +1 -1
  63. package/dist/vendor/zephyr3d/scene/dist/scene/environment.js +1 -0
  64. package/dist/vendor/zephyr3d/scene/dist/scene/environment.js.map +1 -1
  65. package/dist/vendor/zephyr3d/scene/dist/scene/light.js +158 -154
  66. package/dist/vendor/zephyr3d/scene/dist/scene/light.js.map +1 -1
  67. package/dist/vendor/zephyr3d/scene/dist/scene/mesh.js +1 -0
  68. package/dist/vendor/zephyr3d/scene/dist/scene/mesh.js.map +1 -1
  69. package/dist/vendor/zephyr3d/scene/dist/scene/msdftext.js +1 -0
  70. package/dist/vendor/zephyr3d/scene/dist/scene/msdftext.js.map +1 -1
  71. package/dist/vendor/zephyr3d/scene/dist/scene/msdftextsprite.js +1 -0
  72. package/dist/vendor/zephyr3d/scene/dist/scene/msdftextsprite.js.map +1 -1
  73. package/dist/vendor/zephyr3d/scene/dist/scene/particlesys.js +1 -0
  74. package/dist/vendor/zephyr3d/scene/dist/scene/particlesys.js.map +1 -1
  75. package/dist/vendor/zephyr3d/scene/dist/scene/scene.js +1 -0
  76. package/dist/vendor/zephyr3d/scene/dist/scene/scene.js.map +1 -1
  77. package/dist/vendor/zephyr3d/scene/dist/scene/terrain-cm/grass.js +1 -0
  78. package/dist/vendor/zephyr3d/scene/dist/scene/terrain-cm/grass.js.map +1 -1
  79. package/dist/vendor/zephyr3d/scene/dist/scene/terrain-cm/grassmaterial.js +1 -0
  80. package/dist/vendor/zephyr3d/scene/dist/scene/terrain-cm/grassmaterial.js.map +1 -1
  81. package/dist/vendor/zephyr3d/scene/dist/scene/terrain-cm/terrain-cm.js +1 -0
  82. package/dist/vendor/zephyr3d/scene/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
  83. package/dist/vendor/zephyr3d/scene/dist/scene/water.js +1 -0
  84. package/dist/vendor/zephyr3d/scene/dist/scene/water.js.map +1 -1
  85. package/dist/vendor/zephyr3d/scene/dist/shaders/shadow.js +617 -1
  86. package/dist/vendor/zephyr3d/scene/dist/shaders/shadow.js.map +1 -1
  87. package/dist/vendor/zephyr3d/scene/dist/shadow/esm.js +1 -0
  88. package/dist/vendor/zephyr3d/scene/dist/shadow/esm.js.map +1 -1
  89. package/dist/vendor/zephyr3d/scene/dist/shadow/pcf_opt.js +1 -0
  90. package/dist/vendor/zephyr3d/scene/dist/shadow/pcf_opt.js.map +1 -1
  91. package/dist/vendor/zephyr3d/scene/dist/shadow/pcf_pd.js +1 -0
  92. package/dist/vendor/zephyr3d/scene/dist/shadow/pcf_pd.js.map +1 -1
  93. package/dist/vendor/zephyr3d/scene/dist/shadow/pcss.js +182 -0
  94. package/dist/vendor/zephyr3d/scene/dist/shadow/pcss.js.map +1 -0
  95. package/dist/vendor/zephyr3d/scene/dist/shadow/shader.js +1 -0
  96. package/dist/vendor/zephyr3d/scene/dist/shadow/shader.js.map +1 -1
  97. package/dist/vendor/zephyr3d/scene/dist/shadow/shadow_impl.js.map +1 -1
  98. package/dist/vendor/zephyr3d/scene/dist/shadow/shadowmapper.js +183 -105
  99. package/dist/vendor/zephyr3d/scene/dist/shadow/shadowmapper.js.map +1 -1
  100. package/dist/vendor/zephyr3d/scene/dist/shadow/ssm.js +1 -0
  101. package/dist/vendor/zephyr3d/scene/dist/shadow/ssm.js.map +1 -1
  102. package/dist/vendor/zephyr3d/scene/dist/shadow/vsm.js +1 -0
  103. package/dist/vendor/zephyr3d/scene/dist/shadow/vsm.js.map +1 -1
  104. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/manager.js +3 -1
  105. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/manager.js.map +1 -1
  106. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/animation.js +1 -0
  107. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/animation.js.map +1 -1
  108. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/batch.js +1 -0
  109. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/batch.js.map +1 -1
  110. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/camera.js +122 -0
  111. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/camera.js.map +1 -1
  112. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/common.js +1 -0
  113. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/common.js.map +1 -1
  114. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/light.js +102 -21
  115. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/light.js.map +1 -1
  116. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/material.js +195 -3
  117. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/material.js.map +1 -1
  118. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/mesh.js +1 -0
  119. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/mesh.js.map +1 -1
  120. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/node.js +1 -0
  121. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/node.js.map +1 -1
  122. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/particle.js +1 -0
  123. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/particle.js.map +1 -1
  124. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/primitive.js +1 -0
  125. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/primitive.js.map +1 -1
  126. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/sprite.js +1 -0
  127. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/sprite.js.map +1 -1
  128. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/terrain.js +1 -0
  129. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/terrain.js.map +1 -1
  130. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/text.js +1 -0
  131. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/text.js.map +1 -1
  132. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/water.js +1 -0
  133. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/water.js.map +1 -1
  134. package/dist/vendor/zephyr3d/scene/dist/values.js +1 -0
  135. package/dist/vendor/zephyr3d/scene/dist/values.js.map +1 -1
  136. package/electron/main.cjs +30 -6
  137. package/package.json +4 -4
@@ -11,6 +11,7 @@ import '../../../material/blinn.js';
11
11
  import '../../../material/unlit.js';
12
12
  import '../../../material/particle.js';
13
13
  import '../../../material/subsurfaceprofile.js';
14
+ import '../../../material/skin.js';
14
15
  import '../../../material/meshmaterial.js';
15
16
  import '../../../material/grassmaterial.js';
16
17
  import '../../../material/terrain-cm.js';
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sources":["../../../../src/utility/serialization/scene/text.ts"],"sourcesContent":["import { getEngine } from '../../../app/api';\r\nimport { GraphNode, MSDFText, type SceneNode } from '../../../scene';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport { Vector3 } from '@zephyr3d/base';\r\nimport { TextSprite } from '../../../scene/textsprite';\r\nimport { MSDFTextSprite } from '../../../scene/msdftextsprite';\r\n\r\n/** @internal */\r\nexport function getTextSpriteClass(): SerializableClass {\r\n return {\r\n ctor: TextSprite,\r\n name: 'TextSprite',\r\n parent: GraphNode,\r\n noTitle: true,\r\n createFunc(ctx: SceneNode) {\r\n const node = new TextSprite(ctx.scene!);\r\n node.parent = ctx;\r\n return { obj: node };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Anchor',\r\n description: 'Sprite pivot in normalized UV space',\r\n type: 'vec2',\r\n default: [0.5, 0.5],\r\n get(this: TextSprite, value) {\r\n value.num[0] = this.anchorX;\r\n value.num[1] = this.anchorY;\r\n },\r\n set(this: TextSprite, value) {\r\n this.anchorX = value.num[0];\r\n this.anchorY = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'Resolution',\r\n description: 'Text render target resolution',\r\n type: 'int2',\r\n options: {\r\n minValue: 1,\r\n maxValue: 4096\r\n },\r\n default: [128, 128],\r\n get(this: TextSprite, value) {\r\n value.num[0] = this.resolutionX;\r\n value.num[1] = this.resolutionY;\r\n },\r\n set(this: TextSprite, value) {\r\n this.resolutionX = value.num[0];\r\n this.resolutionY = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'Font',\r\n description: 'Canvas font string (e.g. \"12px arial\")',\r\n type: 'string',\r\n default: '12px arial',\r\n get(this: TextSprite, value) {\r\n value.str[0] = this.font;\r\n },\r\n set(this: TextSprite, value) {\r\n this.font = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Text',\r\n description: 'Displayed text content',\r\n type: 'string',\r\n default: '',\r\n options: {\r\n multiline: true\r\n },\r\n get(this: TextSprite, value) {\r\n value.str[0] = this.text;\r\n },\r\n set(this: TextSprite, value) {\r\n this.text = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TextColor',\r\n description: 'Color of the rendered text',\r\n type: 'rgb',\r\n default: [1, 1, 1],\r\n get(this: TextSprite, value) {\r\n const c = this.textColor;\r\n value.num[0] = c.x;\r\n value.num[1] = c.y;\r\n value.num[2] = c.z;\r\n },\r\n set(this: TextSprite, value) {\r\n this.textColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getMSDFTextSpriteClass(): SerializableClass {\r\n return {\r\n ctor: MSDFTextSprite,\r\n name: 'MSDFTextSprite',\r\n parent: GraphNode,\r\n noTitle: true,\r\n createFunc(ctx: SceneNode) {\r\n const node = new MSDFTextSprite(ctx.scene!);\r\n node.parent = ctx;\r\n return { obj: node };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Anchor',\r\n description: 'Sprite pivot in normalized layout-box space',\r\n type: 'vec2',\r\n default: [0.5, 0.5],\r\n get(this: MSDFTextSprite, value) {\r\n value.num[0] = this.anchorX;\r\n value.num[1] = this.anchorY;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.anchorX = value.num[0];\r\n this.anchorY = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'FontAsset',\r\n description: 'Font asset path used to build the runtime MSDF glyph atlas',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: ['font/ttf', 'font/otf']\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: MSDFTextSprite, value) {\r\n value.str[0] = this.fontAsset\r\n ? (getEngine().resourceManager.getAssetId(this.fontAsset) ?? '')\r\n : '';\r\n },\r\n async set(this: MSDFTextSprite, value) {\r\n this.fontAsset = value.str[0]\r\n ? await getEngine().resourceManager.fetchFontAsset(value.str[0])\r\n : null;\r\n }\r\n },\r\n {\r\n name: 'FontSize',\r\n description: 'Font size in local-space units before node scaling',\r\n type: 'float',\r\n default: 32,\r\n options: {\r\n minValue: 1,\r\n maxValue: 4096\r\n },\r\n get(this: MSDFTextSprite, value) {\r\n value.num[0] = this.fontSize;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.fontSize = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'MaxWidth',\r\n description: 'Maximum layout width in local-space units, 0 disables wrapping',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n minValue: 0,\r\n maxValue: 4096\r\n },\r\n get(this: MSDFTextSprite, value) {\r\n value.num[0] = this.maxWidth;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.maxWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TextAlign',\r\n description: 'Horizontal alignment within the layout width',\r\n type: 'string',\r\n default: 'left',\r\n options: {\r\n enum: {\r\n labels: ['Left', 'Center', 'Right'],\r\n values: ['left', 'center', 'right']\r\n }\r\n },\r\n get(this: MSDFTextSprite, value) {\r\n value.str[0] = this.textAlign;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.textAlign = value.str[0] as 'left' | 'center' | 'right';\r\n }\r\n },\r\n {\r\n name: 'Text',\r\n description: 'Displayed text content',\r\n type: 'string',\r\n default: '',\r\n options: {\r\n multiline: true\r\n },\r\n get(this: MSDFTextSprite, value) {\r\n value.str[0] = this.text;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.text = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TextColor',\r\n description: 'Color of the rendered text',\r\n type: 'rgb',\r\n default: [1, 1, 1],\r\n get(this: MSDFTextSprite, value) {\r\n const c = this.textColor;\r\n value.num[0] = c.x;\r\n value.num[1] = c.y;\r\n value.num[2] = c.z;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.textColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'OutlineColor',\r\n description: 'Color of the SDF outline rendered around the text',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n get(this: MSDFTextSprite, value) {\r\n const c = this.outlineColor;\r\n value.num[0] = c.x;\r\n value.num[1] = c.y;\r\n value.num[2] = c.z;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.outlineColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'OutlineWidth',\r\n description:\r\n 'Outline thickness in text local-space units; it scales with the text when moving closer or farther',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n minValue: 0,\r\n maxValue: 4096\r\n },\r\n get(this: MSDFTextSprite, value) {\r\n value.num[0] = this.outlineWidth;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.outlineWidth = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getMSDFTextClass(): SerializableClass {\r\n return {\r\n ctor: MSDFText,\r\n name: 'MSDFText',\r\n parent: GraphNode,\r\n noTitle: true,\r\n createFunc(ctx: SceneNode) {\r\n const node = new MSDFText(ctx.scene!);\r\n node.parent = ctx;\r\n return { obj: node };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Anchor',\r\n description: 'Sprite pivot in normalized layout-box space',\r\n type: 'vec2',\r\n default: [0.5, 0.5],\r\n get(this: MSDFText, value) {\r\n value.num[0] = this.anchorX;\r\n value.num[1] = this.anchorY;\r\n },\r\n set(this: MSDFText, value) {\r\n this.anchorX = value.num[0];\r\n this.anchorY = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'FontAsset',\r\n description: 'Font asset path used to build the runtime MSDF glyph atlas',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: ['font/ttf', 'font/otf']\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: MSDFText, value) {\r\n value.str[0] = this.fontAsset\r\n ? (getEngine().resourceManager.getAssetId(this.fontAsset) ?? '')\r\n : '';\r\n },\r\n async set(this: MSDFText, value) {\r\n this.fontAsset = value.str[0]\r\n ? await getEngine().resourceManager.fetchFontAsset(value.str[0])\r\n : null;\r\n }\r\n },\r\n {\r\n name: 'FontSize',\r\n description: 'Font size in local-space units before node scaling',\r\n type: 'float',\r\n default: 32,\r\n options: {\r\n minValue: 1,\r\n maxValue: 4096\r\n },\r\n get(this: MSDFText, value) {\r\n value.num[0] = this.fontSize;\r\n },\r\n set(this: MSDFText, value) {\r\n this.fontSize = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'MaxWidth',\r\n description: 'Maximum layout width in local-space units, 0 disables wrapping',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n minValue: 0,\r\n maxValue: 4096\r\n },\r\n get(this: MSDFText, value) {\r\n value.num[0] = this.maxWidth;\r\n },\r\n set(this: MSDFText, value) {\r\n this.maxWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TextAlign',\r\n description: 'Horizontal alignment within the layout width',\r\n type: 'string',\r\n default: 'left',\r\n options: {\r\n enum: {\r\n labels: ['Left', 'Center', 'Right'],\r\n values: ['left', 'center', 'right']\r\n }\r\n },\r\n get(this: MSDFText, value) {\r\n value.str[0] = this.textAlign;\r\n },\r\n set(this: MSDFText, value) {\r\n this.textAlign = value.str[0] as 'left' | 'center' | 'right';\r\n }\r\n },\r\n {\r\n name: 'Text',\r\n description: 'Displayed text content',\r\n type: 'string',\r\n default: '',\r\n options: {\r\n multiline: true\r\n },\r\n get(this: MSDFText, value) {\r\n value.str[0] = this.text;\r\n },\r\n set(this: MSDFText, value) {\r\n this.text = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TextColor',\r\n description: 'Color of the rendered text',\r\n type: 'rgb',\r\n default: [1, 1, 1],\r\n get(this: MSDFText, value) {\r\n const c = this.textColor;\r\n value.num[0] = c.x;\r\n value.num[1] = c.y;\r\n value.num[2] = c.z;\r\n },\r\n set(this: MSDFText, value) {\r\n this.textColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'OutlineColor',\r\n description: 'Color of the SDF outline rendered around the text',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n get(this: MSDFText, value) {\r\n const c = this.outlineColor;\r\n value.num[0] = c.x;\r\n value.num[1] = c.y;\r\n value.num[2] = c.z;\r\n },\r\n set(this: MSDFText, value) {\r\n this.outlineColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'OutlineWidth',\r\n description:\r\n 'Outline thickness in text local-space units; it scales with the text when moving closer or farther',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n minValue: 0,\r\n maxValue: 4096\r\n },\r\n get(this: MSDFText, value) {\r\n value.num[0] = this.outlineWidth;\r\n },\r\n set(this: MSDFText, value) {\r\n this.outlineWidth = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getTextSpriteClass","ctor","TextSprite","name","parent","GraphNode","noTitle","createFunc","ctx","node","scene","obj","getProps","defineProps","description","type","default","get","value","num","anchorX","anchorY","set","options","minValue","maxValue","resolutionX","resolutionY","str","font","multiline","text","c","textColor","x","y","z","Vector3","getMSDFTextSpriteClass","MSDFTextSprite","mimeTypes","isNullable","fontAsset","getEngine","resourceManager","getAssetId","fetchFontAsset","fontSize","maxWidth","enum","labels","values","textAlign","outlineColor","outlineWidth","getMSDFTextClass","MSDFText"],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sources":["../../../../src/utility/serialization/scene/text.ts"],"sourcesContent":["import { getEngine } from '../../../app/api';\r\nimport { GraphNode, MSDFText, type SceneNode } from '../../../scene';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport { Vector3 } from '@zephyr3d/base';\r\nimport { TextSprite } from '../../../scene/textsprite';\r\nimport { MSDFTextSprite } from '../../../scene/msdftextsprite';\r\n\r\n/** @internal */\r\nexport function getTextSpriteClass(): SerializableClass {\r\n return {\r\n ctor: TextSprite,\r\n name: 'TextSprite',\r\n parent: GraphNode,\r\n noTitle: true,\r\n createFunc(ctx: SceneNode) {\r\n const node = new TextSprite(ctx.scene!);\r\n node.parent = ctx;\r\n return { obj: node };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Anchor',\r\n description: 'Sprite pivot in normalized UV space',\r\n type: 'vec2',\r\n default: [0.5, 0.5],\r\n get(this: TextSprite, value) {\r\n value.num[0] = this.anchorX;\r\n value.num[1] = this.anchorY;\r\n },\r\n set(this: TextSprite, value) {\r\n this.anchorX = value.num[0];\r\n this.anchorY = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'Resolution',\r\n description: 'Text render target resolution',\r\n type: 'int2',\r\n options: {\r\n minValue: 1,\r\n maxValue: 4096\r\n },\r\n default: [128, 128],\r\n get(this: TextSprite, value) {\r\n value.num[0] = this.resolutionX;\r\n value.num[1] = this.resolutionY;\r\n },\r\n set(this: TextSprite, value) {\r\n this.resolutionX = value.num[0];\r\n this.resolutionY = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'Font',\r\n description: 'Canvas font string (e.g. \"12px arial\")',\r\n type: 'string',\r\n default: '12px arial',\r\n get(this: TextSprite, value) {\r\n value.str[0] = this.font;\r\n },\r\n set(this: TextSprite, value) {\r\n this.font = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Text',\r\n description: 'Displayed text content',\r\n type: 'string',\r\n default: '',\r\n options: {\r\n multiline: true\r\n },\r\n get(this: TextSprite, value) {\r\n value.str[0] = this.text;\r\n },\r\n set(this: TextSprite, value) {\r\n this.text = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TextColor',\r\n description: 'Color of the rendered text',\r\n type: 'rgb',\r\n default: [1, 1, 1],\r\n get(this: TextSprite, value) {\r\n const c = this.textColor;\r\n value.num[0] = c.x;\r\n value.num[1] = c.y;\r\n value.num[2] = c.z;\r\n },\r\n set(this: TextSprite, value) {\r\n this.textColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getMSDFTextSpriteClass(): SerializableClass {\r\n return {\r\n ctor: MSDFTextSprite,\r\n name: 'MSDFTextSprite',\r\n parent: GraphNode,\r\n noTitle: true,\r\n createFunc(ctx: SceneNode) {\r\n const node = new MSDFTextSprite(ctx.scene!);\r\n node.parent = ctx;\r\n return { obj: node };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Anchor',\r\n description: 'Sprite pivot in normalized layout-box space',\r\n type: 'vec2',\r\n default: [0.5, 0.5],\r\n get(this: MSDFTextSprite, value) {\r\n value.num[0] = this.anchorX;\r\n value.num[1] = this.anchorY;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.anchorX = value.num[0];\r\n this.anchorY = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'FontAsset',\r\n description: 'Font asset path used to build the runtime MSDF glyph atlas',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: ['font/ttf', 'font/otf']\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: MSDFTextSprite, value) {\r\n value.str[0] = this.fontAsset\r\n ? (getEngine().resourceManager.getAssetId(this.fontAsset) ?? '')\r\n : '';\r\n },\r\n async set(this: MSDFTextSprite, value) {\r\n this.fontAsset = value.str[0]\r\n ? await getEngine().resourceManager.fetchFontAsset(value.str[0])\r\n : null;\r\n }\r\n },\r\n {\r\n name: 'FontSize',\r\n description: 'Font size in local-space units before node scaling',\r\n type: 'float',\r\n default: 32,\r\n options: {\r\n minValue: 1,\r\n maxValue: 4096\r\n },\r\n get(this: MSDFTextSprite, value) {\r\n value.num[0] = this.fontSize;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.fontSize = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'MaxWidth',\r\n description: 'Maximum layout width in local-space units, 0 disables wrapping',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n minValue: 0,\r\n maxValue: 4096\r\n },\r\n get(this: MSDFTextSprite, value) {\r\n value.num[0] = this.maxWidth;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.maxWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TextAlign',\r\n description: 'Horizontal alignment within the layout width',\r\n type: 'string',\r\n default: 'left',\r\n options: {\r\n enum: {\r\n labels: ['Left', 'Center', 'Right'],\r\n values: ['left', 'center', 'right']\r\n }\r\n },\r\n get(this: MSDFTextSprite, value) {\r\n value.str[0] = this.textAlign;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.textAlign = value.str[0] as 'left' | 'center' | 'right';\r\n }\r\n },\r\n {\r\n name: 'Text',\r\n description: 'Displayed text content',\r\n type: 'string',\r\n default: '',\r\n options: {\r\n multiline: true\r\n },\r\n get(this: MSDFTextSprite, value) {\r\n value.str[0] = this.text;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.text = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TextColor',\r\n description: 'Color of the rendered text',\r\n type: 'rgb',\r\n default: [1, 1, 1],\r\n get(this: MSDFTextSprite, value) {\r\n const c = this.textColor;\r\n value.num[0] = c.x;\r\n value.num[1] = c.y;\r\n value.num[2] = c.z;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.textColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'OutlineColor',\r\n description: 'Color of the SDF outline rendered around the text',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n get(this: MSDFTextSprite, value) {\r\n const c = this.outlineColor;\r\n value.num[0] = c.x;\r\n value.num[1] = c.y;\r\n value.num[2] = c.z;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.outlineColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'OutlineWidth',\r\n description:\r\n 'Outline thickness in text local-space units; it scales with the text when moving closer or farther',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n minValue: 0,\r\n maxValue: 4096\r\n },\r\n get(this: MSDFTextSprite, value) {\r\n value.num[0] = this.outlineWidth;\r\n },\r\n set(this: MSDFTextSprite, value) {\r\n this.outlineWidth = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getMSDFTextClass(): SerializableClass {\r\n return {\r\n ctor: MSDFText,\r\n name: 'MSDFText',\r\n parent: GraphNode,\r\n noTitle: true,\r\n createFunc(ctx: SceneNode) {\r\n const node = new MSDFText(ctx.scene!);\r\n node.parent = ctx;\r\n return { obj: node };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Anchor',\r\n description: 'Sprite pivot in normalized layout-box space',\r\n type: 'vec2',\r\n default: [0.5, 0.5],\r\n get(this: MSDFText, value) {\r\n value.num[0] = this.anchorX;\r\n value.num[1] = this.anchorY;\r\n },\r\n set(this: MSDFText, value) {\r\n this.anchorX = value.num[0];\r\n this.anchorY = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'FontAsset',\r\n description: 'Font asset path used to build the runtime MSDF glyph atlas',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: ['font/ttf', 'font/otf']\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: MSDFText, value) {\r\n value.str[0] = this.fontAsset\r\n ? (getEngine().resourceManager.getAssetId(this.fontAsset) ?? '')\r\n : '';\r\n },\r\n async set(this: MSDFText, value) {\r\n this.fontAsset = value.str[0]\r\n ? await getEngine().resourceManager.fetchFontAsset(value.str[0])\r\n : null;\r\n }\r\n },\r\n {\r\n name: 'FontSize',\r\n description: 'Font size in local-space units before node scaling',\r\n type: 'float',\r\n default: 32,\r\n options: {\r\n minValue: 1,\r\n maxValue: 4096\r\n },\r\n get(this: MSDFText, value) {\r\n value.num[0] = this.fontSize;\r\n },\r\n set(this: MSDFText, value) {\r\n this.fontSize = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'MaxWidth',\r\n description: 'Maximum layout width in local-space units, 0 disables wrapping',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n minValue: 0,\r\n maxValue: 4096\r\n },\r\n get(this: MSDFText, value) {\r\n value.num[0] = this.maxWidth;\r\n },\r\n set(this: MSDFText, value) {\r\n this.maxWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TextAlign',\r\n description: 'Horizontal alignment within the layout width',\r\n type: 'string',\r\n default: 'left',\r\n options: {\r\n enum: {\r\n labels: ['Left', 'Center', 'Right'],\r\n values: ['left', 'center', 'right']\r\n }\r\n },\r\n get(this: MSDFText, value) {\r\n value.str[0] = this.textAlign;\r\n },\r\n set(this: MSDFText, value) {\r\n this.textAlign = value.str[0] as 'left' | 'center' | 'right';\r\n }\r\n },\r\n {\r\n name: 'Text',\r\n description: 'Displayed text content',\r\n type: 'string',\r\n default: '',\r\n options: {\r\n multiline: true\r\n },\r\n get(this: MSDFText, value) {\r\n value.str[0] = this.text;\r\n },\r\n set(this: MSDFText, value) {\r\n this.text = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TextColor',\r\n description: 'Color of the rendered text',\r\n type: 'rgb',\r\n default: [1, 1, 1],\r\n get(this: MSDFText, value) {\r\n const c = this.textColor;\r\n value.num[0] = c.x;\r\n value.num[1] = c.y;\r\n value.num[2] = c.z;\r\n },\r\n set(this: MSDFText, value) {\r\n this.textColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'OutlineColor',\r\n description: 'Color of the SDF outline rendered around the text',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n get(this: MSDFText, value) {\r\n const c = this.outlineColor;\r\n value.num[0] = c.x;\r\n value.num[1] = c.y;\r\n value.num[2] = c.z;\r\n },\r\n set(this: MSDFText, value) {\r\n this.outlineColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'OutlineWidth',\r\n description:\r\n 'Outline thickness in text local-space units; it scales with the text when moving closer or farther',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n minValue: 0,\r\n maxValue: 4096\r\n },\r\n get(this: MSDFText, value) {\r\n value.num[0] = this.outlineWidth;\r\n },\r\n set(this: MSDFText, value) {\r\n this.outlineWidth = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getTextSpriteClass","ctor","TextSprite","name","parent","GraphNode","noTitle","createFunc","ctx","node","scene","obj","getProps","defineProps","description","type","default","get","value","num","anchorX","anchorY","set","options","minValue","maxValue","resolutionX","resolutionY","str","font","multiline","text","c","textColor","x","y","z","Vector3","getMSDFTextSpriteClass","MSDFTextSprite","mimeTypes","isNullable","fontAsset","getEngine","resourceManager","getAssetId","fetchFontAsset","fontSize","maxWidth","enum","labels","values","textAlign","outlineColor","outlineWidth","getMSDFTextClass","MSDFText"],"mappings":"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"}
@@ -10,6 +10,7 @@ import '../../../material/blinn.js';
10
10
  import '../../../material/unlit.js';
11
11
  import '../../../material/particle.js';
12
12
  import '../../../material/subsurfaceprofile.js';
13
+ import '../../../material/skin.js';
13
14
  import '../../../material/meshmaterial.js';
14
15
  import '../../../material/grassmaterial.js';
15
16
  import '../../../material/terrain-cm.js';
@@ -1 +1 @@
1
- {"version":3,"file":"water.js","sources":["../../../../src/utility/serialization/scene/water.ts"],"sourcesContent":["import type { Nullable } from '@zephyr3d/base';\r\nimport { Vector2 } from '@zephyr3d/base';\r\nimport type { SceneNode } from '../../../scene';\r\nimport { GraphNode } from '../../../scene';\r\nimport { Water } from '../../../scene/water';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport type { WaveGenerator } from '../../../render';\r\nimport { FBMWaveGenerator, FFTWaveGenerator } from '../../../render';\r\nimport type { Texture2D } from '@zephyr3d/device';\r\nimport type { ResourceManager } from '../manager';\r\n\r\n/** @internal */\r\nexport function getFBMWaveGeneratorClass(): SerializableClass {\r\n return {\r\n ctor: FBMWaveGenerator,\r\n name: 'FBMWaveGenerator',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'NumOctaves',\r\n description: 'Number of FBM noise octaves used to build the wave pattern',\r\n type: 'int',\r\n options: { minValue: 1, maxValue: 8 },\r\n default: 4,\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.numOctaves;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.numOctaves = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Wind',\r\n description: 'Wind direction and speed that drive the FBM waves',\r\n type: 'vec2',\r\n default: [0.1, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.wind.x;\r\n value.num[1] = this.wind.y;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.wind = new Vector2(value.num[0], value.num[1]);\r\n }\r\n },\r\n {\r\n name: 'Amplitude',\r\n description: 'Wave height amplitude for the FBM wave generator',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 5 },\r\n default: 0.3,\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.amplitude;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.amplitude = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Frequency',\r\n description: 'Wave frequency for the FBM wave generator',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 16 },\r\n default: 3,\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.frequency;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.frequency = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getFFTWaveGeneratorClass(): SerializableClass {\r\n return {\r\n ctor: FFTWaveGenerator,\r\n name: 'FFTWaveGenerator',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Alignment',\r\n description: 'How strongly FFT waves align with the wind direction',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.alignment;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.alignment = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Wind',\r\n description: 'Wind direction and speed that drive the FFT waves',\r\n type: 'vec2',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.wind.x;\r\n value.num[1] = this.wind.y;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.wind = new Vector2(value.num[0], value.num[1]);\r\n }\r\n },\r\n {\r\n name: 'FoamWidth',\r\n description: 'Width of foam bands generated on the wave crests',\r\n type: 'float',\r\n default: 1.2,\r\n options: { animatable: true, minValue: 0, maxValue: 10 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.foamWidth;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.foamWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'FoamContrast',\r\n description: 'Contrast of the foam pattern on FFT waves',\r\n type: 'float',\r\n default: 7.2,\r\n options: { animatable: true, minValue: 0, maxValue: 10 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.foamContrast;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.foamContrast = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WaveLengthCascades',\r\n description: 'Wavelength values for the three FFT wave cascades',\r\n type: 'vec3',\r\n default: [400, 100, 15],\r\n options: { animatable: true, minValue: 0, maxValue: 1000 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.getWaveLength(0);\r\n value.num[1] = this.getWaveLength(1);\r\n value.num[2] = this.getWaveLength(2);\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.setWaveLength(0, value.num[0]);\r\n this.setWaveLength(1, value.num[1]);\r\n this.setWaveLength(2, value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'WaveStrengthCascades',\r\n description: 'Strength values for the three FFT wave cascades',\r\n type: 'vec3',\r\n default: [0.4, 0.4, 0.2],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.getWaveStrength(0);\r\n value.num[1] = this.getWaveStrength(1);\r\n value.num[2] = this.getWaveStrength(2);\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.setWaveStrength(0, value.num[0]);\r\n this.setWaveStrength(1, value.num[1]);\r\n this.setWaveStrength(2, value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'WaveCroppinessCascades',\r\n description: 'Croppiness values for the three FFT wave cascades',\r\n type: 'vec3',\r\n default: [-1.5, -1.2, -0.5],\r\n options: { animatable: true, minValue: -4, maxValue: 0 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.getWaveCroppiness(0);\r\n value.num[1] = this.getWaveCroppiness(1);\r\n value.num[2] = this.getWaveCroppiness(2);\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.setWaveCroppiness(0, value.num[0]);\r\n this.setWaveCroppiness(1, value.num[1]);\r\n this.setWaveCroppiness(2, value.num[2]);\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getWaterClass(manager: ResourceManager): SerializableClass {\r\n return {\r\n ctor: Water,\r\n name: 'Water',\r\n parent: GraphNode,\r\n createFunc(ctx: SceneNode) {\r\n const node = new Water(ctx.scene!);\r\n node.parent = ctx;\r\n return { obj: node };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'WaveGenerator',\r\n description: 'Wave generator used to drive the water surface',\r\n type: 'object',\r\n default: null,\r\n options: {\r\n objectTypes: [FFTWaveGenerator, FBMWaveGenerator]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Water, value) {\r\n value.object[0] = this.waveGenerator ?? null;\r\n },\r\n set(this: Water, value) {\r\n if (!value.object[0]) {\r\n this.waveGenerator = null;\r\n } else {\r\n this.waveGenerator = value.object[0] as WaveGenerator;\r\n }\r\n }\r\n },\r\n {\r\n name: 'GridScale',\r\n description: 'Scale of the water simulation grid',\r\n type: 'float',\r\n default: 1,\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: Water, value) {\r\n value.num[0] = this.gridScale;\r\n },\r\n set(this: Water, value) {\r\n this.gridScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Wireframe',\r\n description: 'If true, renders the water surface as wireframe',\r\n type: 'bool',\r\n default: false,\r\n get(this: Water, value) {\r\n value.bool[0] = this.wireframe;\r\n },\r\n set(this: Water, value) {\r\n this.wireframe = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'AnimationSpeed',\r\n description: 'Playback speed of wave animation',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 100 },\r\n get(this: Water, value) {\r\n value.num[0] = this.animationSpeed;\r\n },\r\n set(this: Water, value) {\r\n this.animationSpeed = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'DepthScale',\r\n description: 'Depth attenuation scale for the water material',\r\n type: 'float',\r\n default: 10,\r\n options: { animatable: true, minValue: 0, maxValue: 100 },\r\n get(this: Water, value) {\r\n value.num[0] = this.material.depthMulti;\r\n },\r\n set(this: Water, value) {\r\n this.material.depthMulti = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'RefractionStrength',\r\n description: 'Strength of underwater refraction',\r\n type: 'float',\r\n default: 0,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: Water, value) {\r\n value.num[0] = this.material.refractionStrength;\r\n },\r\n set(this: Water, value) {\r\n this.material.refractionStrength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Displace',\r\n description: 'Vertex displacement scale for water waves',\r\n type: 'float',\r\n default: 16,\r\n options: { minValue: 1, maxValue: 256 },\r\n get(this: Water, value) {\r\n value.num[0] = this.material.displace;\r\n },\r\n set(this: Water, value) {\r\n this.material.displace = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TAAStrength',\r\n description: 'Temporal anti-aliasing strength for the water surface',\r\n type: 'float',\r\n default: 0.4,\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: Water, value) {\r\n value.num[0] = this.TAAStrength;\r\n },\r\n set(this: Water, value) {\r\n this.TAAStrength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterRampTexture',\r\n description: 'Ramp texture used for water scatter lighting',\r\n type: 'object',\r\n default: null,\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Water, value) {\r\n value.str[0] = manager.getAssetId(this.material.scatterRampTexture) ?? '';\r\n },\r\n async set(value) {\r\n if (!value) {\r\n this.material.scatterRampTexture = null;\r\n } else {\r\n if (value.str[0]) {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.material.scatterRampTexture = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'AbsorptionRampTexture',\r\n description: 'Ramp texture used for water absorption',\r\n type: 'object',\r\n default: null,\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Water, value) {\r\n value.str[0] = manager.getAssetId(this.material.absorptionRampTexture) ?? '';\r\n },\r\n async set(this: Water, value) {\r\n if (!value) {\r\n this.material.absorptionRampTexture = null;\r\n } else {\r\n if (value.str[0]) {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.material.absorptionRampTexture = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getFBMWaveGeneratorClass","ctor","FBMWaveGenerator","name","getProps","defineProps","description","type","options","minValue","maxValue","default","get","value","num","numOctaves","set","animatable","wind","x","y","Vector2","amplitude","frequency","getFFTWaveGeneratorClass","FFTWaveGenerator","alignment","foamWidth","foamContrast","getWaveLength","setWaveLength","getWaveStrength","setWaveStrength","getWaveCroppiness","setWaveCroppiness","getWaterClass","manager","Water","parent","GraphNode","createFunc","ctx","node","scene","obj","objectTypes","isNullable","object","waveGenerator","gridScale","bool","wireframe","animationSpeed","material","depthMulti","refractionStrength","displace","TAAStrength","str","getAssetId","scatterRampTexture","assetId","tex","fetchTexture","err","console","error","isTexture2D","absorptionRampTexture"],"mappings":"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"}
1
+ {"version":3,"file":"water.js","sources":["../../../../src/utility/serialization/scene/water.ts"],"sourcesContent":["import type { Nullable } from '@zephyr3d/base';\r\nimport { Vector2 } from '@zephyr3d/base';\r\nimport type { SceneNode } from '../../../scene';\r\nimport { GraphNode } from '../../../scene';\r\nimport { Water } from '../../../scene/water';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport type { WaveGenerator } from '../../../render';\r\nimport { FBMWaveGenerator, FFTWaveGenerator } from '../../../render';\r\nimport type { Texture2D } from '@zephyr3d/device';\r\nimport type { ResourceManager } from '../manager';\r\n\r\n/** @internal */\r\nexport function getFBMWaveGeneratorClass(): SerializableClass {\r\n return {\r\n ctor: FBMWaveGenerator,\r\n name: 'FBMWaveGenerator',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'NumOctaves',\r\n description: 'Number of FBM noise octaves used to build the wave pattern',\r\n type: 'int',\r\n options: { minValue: 1, maxValue: 8 },\r\n default: 4,\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.numOctaves;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.numOctaves = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Wind',\r\n description: 'Wind direction and speed that drive the FBM waves',\r\n type: 'vec2',\r\n default: [0.1, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.wind.x;\r\n value.num[1] = this.wind.y;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.wind = new Vector2(value.num[0], value.num[1]);\r\n }\r\n },\r\n {\r\n name: 'Amplitude',\r\n description: 'Wave height amplitude for the FBM wave generator',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 5 },\r\n default: 0.3,\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.amplitude;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.amplitude = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Frequency',\r\n description: 'Wave frequency for the FBM wave generator',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 16 },\r\n default: 3,\r\n get(this: FBMWaveGenerator, value) {\r\n value.num[0] = this.frequency;\r\n },\r\n set(this: FBMWaveGenerator, value) {\r\n this.frequency = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getFFTWaveGeneratorClass(): SerializableClass {\r\n return {\r\n ctor: FFTWaveGenerator,\r\n name: 'FFTWaveGenerator',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Alignment',\r\n description: 'How strongly FFT waves align with the wind direction',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.alignment;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.alignment = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Wind',\r\n description: 'Wind direction and speed that drive the FFT waves',\r\n type: 'vec2',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.wind.x;\r\n value.num[1] = this.wind.y;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.wind = new Vector2(value.num[0], value.num[1]);\r\n }\r\n },\r\n {\r\n name: 'FoamWidth',\r\n description: 'Width of foam bands generated on the wave crests',\r\n type: 'float',\r\n default: 1.2,\r\n options: { animatable: true, minValue: 0, maxValue: 10 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.foamWidth;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.foamWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'FoamContrast',\r\n description: 'Contrast of the foam pattern on FFT waves',\r\n type: 'float',\r\n default: 7.2,\r\n options: { animatable: true, minValue: 0, maxValue: 10 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.foamContrast;\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.foamContrast = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WaveLengthCascades',\r\n description: 'Wavelength values for the three FFT wave cascades',\r\n type: 'vec3',\r\n default: [400, 100, 15],\r\n options: { animatable: true, minValue: 0, maxValue: 1000 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.getWaveLength(0);\r\n value.num[1] = this.getWaveLength(1);\r\n value.num[2] = this.getWaveLength(2);\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.setWaveLength(0, value.num[0]);\r\n this.setWaveLength(1, value.num[1]);\r\n this.setWaveLength(2, value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'WaveStrengthCascades',\r\n description: 'Strength values for the three FFT wave cascades',\r\n type: 'vec3',\r\n default: [0.4, 0.4, 0.2],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.getWaveStrength(0);\r\n value.num[1] = this.getWaveStrength(1);\r\n value.num[2] = this.getWaveStrength(2);\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.setWaveStrength(0, value.num[0]);\r\n this.setWaveStrength(1, value.num[1]);\r\n this.setWaveStrength(2, value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'WaveCroppinessCascades',\r\n description: 'Croppiness values for the three FFT wave cascades',\r\n type: 'vec3',\r\n default: [-1.5, -1.2, -0.5],\r\n options: { animatable: true, minValue: -4, maxValue: 0 },\r\n get(this: FFTWaveGenerator, value) {\r\n value.num[0] = this.getWaveCroppiness(0);\r\n value.num[1] = this.getWaveCroppiness(1);\r\n value.num[2] = this.getWaveCroppiness(2);\r\n },\r\n set(this: FFTWaveGenerator, value) {\r\n this.setWaveCroppiness(0, value.num[0]);\r\n this.setWaveCroppiness(1, value.num[1]);\r\n this.setWaveCroppiness(2, value.num[2]);\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getWaterClass(manager: ResourceManager): SerializableClass {\r\n return {\r\n ctor: Water,\r\n name: 'Water',\r\n parent: GraphNode,\r\n createFunc(ctx: SceneNode) {\r\n const node = new Water(ctx.scene!);\r\n node.parent = ctx;\r\n return { obj: node };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'WaveGenerator',\r\n description: 'Wave generator used to drive the water surface',\r\n type: 'object',\r\n default: null,\r\n options: {\r\n objectTypes: [FFTWaveGenerator, FBMWaveGenerator]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Water, value) {\r\n value.object[0] = this.waveGenerator ?? null;\r\n },\r\n set(this: Water, value) {\r\n if (!value.object[0]) {\r\n this.waveGenerator = null;\r\n } else {\r\n this.waveGenerator = value.object[0] as WaveGenerator;\r\n }\r\n }\r\n },\r\n {\r\n name: 'GridScale',\r\n description: 'Scale of the water simulation grid',\r\n type: 'float',\r\n default: 1,\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: Water, value) {\r\n value.num[0] = this.gridScale;\r\n },\r\n set(this: Water, value) {\r\n this.gridScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Wireframe',\r\n description: 'If true, renders the water surface as wireframe',\r\n type: 'bool',\r\n default: false,\r\n get(this: Water, value) {\r\n value.bool[0] = this.wireframe;\r\n },\r\n set(this: Water, value) {\r\n this.wireframe = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'AnimationSpeed',\r\n description: 'Playback speed of wave animation',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 100 },\r\n get(this: Water, value) {\r\n value.num[0] = this.animationSpeed;\r\n },\r\n set(this: Water, value) {\r\n this.animationSpeed = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'DepthScale',\r\n description: 'Depth attenuation scale for the water material',\r\n type: 'float',\r\n default: 10,\r\n options: { animatable: true, minValue: 0, maxValue: 100 },\r\n get(this: Water, value) {\r\n value.num[0] = this.material.depthMulti;\r\n },\r\n set(this: Water, value) {\r\n this.material.depthMulti = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'RefractionStrength',\r\n description: 'Strength of underwater refraction',\r\n type: 'float',\r\n default: 0,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: Water, value) {\r\n value.num[0] = this.material.refractionStrength;\r\n },\r\n set(this: Water, value) {\r\n this.material.refractionStrength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Displace',\r\n description: 'Vertex displacement scale for water waves',\r\n type: 'float',\r\n default: 16,\r\n options: { minValue: 1, maxValue: 256 },\r\n get(this: Water, value) {\r\n value.num[0] = this.material.displace;\r\n },\r\n set(this: Water, value) {\r\n this.material.displace = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TAAStrength',\r\n description: 'Temporal anti-aliasing strength for the water surface',\r\n type: 'float',\r\n default: 0.4,\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: Water, value) {\r\n value.num[0] = this.TAAStrength;\r\n },\r\n set(this: Water, value) {\r\n this.TAAStrength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterRampTexture',\r\n description: 'Ramp texture used for water scatter lighting',\r\n type: 'object',\r\n default: null,\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Water, value) {\r\n value.str[0] = manager.getAssetId(this.material.scatterRampTexture) ?? '';\r\n },\r\n async set(value) {\r\n if (!value) {\r\n this.material.scatterRampTexture = null;\r\n } else {\r\n if (value.str[0]) {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.material.scatterRampTexture = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'AbsorptionRampTexture',\r\n description: 'Ramp texture used for water absorption',\r\n type: 'object',\r\n default: null,\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Water, value) {\r\n value.str[0] = manager.getAssetId(this.material.absorptionRampTexture) ?? '';\r\n },\r\n async set(this: Water, value) {\r\n if (!value) {\r\n this.material.absorptionRampTexture = null;\r\n } else {\r\n if (value.str[0]) {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.material.absorptionRampTexture = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getFBMWaveGeneratorClass","ctor","FBMWaveGenerator","name","getProps","defineProps","description","type","options","minValue","maxValue","default","get","value","num","numOctaves","set","animatable","wind","x","y","Vector2","amplitude","frequency","getFFTWaveGeneratorClass","FFTWaveGenerator","alignment","foamWidth","foamContrast","getWaveLength","setWaveLength","getWaveStrength","setWaveStrength","getWaveCroppiness","setWaveCroppiness","getWaterClass","manager","Water","parent","GraphNode","createFunc","ctx","node","scene","obj","objectTypes","isNullable","object","waveGenerator","gridScale","bool","wireframe","animationSpeed","material","depthMulti","refractionStrength","displace","TAAStrength","str","getAssetId","scatterRampTexture","assetId","tex","fetchTexture","err","console","error","isTexture2D","absorptionRampTexture"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,iBACO,SAASA,wBAAAA,GAAAA;IACd,OAAO;QACLC,IAAMC,EAAAA,gBAAAA;QACNC,IAAM,EAAA,kBAAA;AACNC,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACEF,IAAM,EAAA,YAAA;oBACNG,WAAa,EAAA,4DAAA;oBACbC,IAAM,EAAA,KAAA;oBACNC,OAAS,EAAA;wBAAEC,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;oBACpCC,OAAS,EAAA,CAAA;AACTC,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,UAAU;AAChC,qBAAA;AACAC,oBAAAA,GAAAA,CAAAA,CAA4BH,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACE,UAAU,GAAGF,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAChC;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,MAAA;oBACNG,WAAa,EAAA,mDAAA;oBACbC,IAAM,EAAA,MAAA;oBACNI,OAAS,EAAA;AAAC,wBAAA,GAAA;AAAK,wBAAA;AAAE,qBAAA;oBACjBH,OAAS,EAAA;wBACPS,UAAY,EAAA;AACd,qBAAA;AACAL,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;wBAC/BA,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACI,IAAI,CAACC,CAAC;wBAC1BN,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACI,IAAI,CAACE,CAAC;AAC5B,qBAAA;AACAJ,oBAAAA,GAAAA,CAAAA,CAA4BH,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACK,IAAI,GAAG,IAAIG,OAAQR,CAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,EAAED,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACpD;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,WAAA;oBACNG,WAAa,EAAA,kDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNC,OAAS,EAAA;wBAAES,UAAY,EAAA,IAAA;wBAAMR,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;oBACtDC,OAAS,EAAA,GAAA;AACTC,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACQ,SAAS;AAC/B,qBAAA;AACAN,oBAAAA,GAAAA,CAAAA,CAA4BH,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACS,SAAS,GAAGT,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC/B;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,WAAA;oBACNG,WAAa,EAAA,2CAAA;oBACbC,IAAM,EAAA,OAAA;oBACNC,OAAS,EAAA;wBAAES,UAAY,EAAA,IAAA;wBAAMR,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAG,qBAAA;oBACvDC,OAAS,EAAA,CAAA;AACTC,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACS,SAAS;AAC/B,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAA4BH,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACU,SAAS,GAAGV,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC/B;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;AAEA,iBACO,SAASU,wBAAAA,GAAAA;IACd,OAAO;QACLvB,IAAMwB,EAAAA,gBAAAA;QACNtB,IAAM,EAAA,kBAAA;AACNC,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACEF,IAAM,EAAA,WAAA;oBACNG,WAAa,EAAA,sDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNC,OAAS,EAAA;wBAAES,UAAY,EAAA,IAAA;wBAAMR,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AACtDE,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACY,SAAS;AAC/B,qBAAA;AACAV,oBAAAA,GAAAA,CAAAA,CAA4BH,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACa,SAAS,GAAGb,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC/B;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,MAAA;oBACNG,WAAa,EAAA,mDAAA;oBACbC,IAAM,EAAA,MAAA;oBACNC,OAAS,EAAA;wBACPS,UAAY,EAAA;AACd,qBAAA;AACAL,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;wBAC/BA,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACI,IAAI,CAACC,CAAC;wBAC1BN,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACI,IAAI,CAACE,CAAC;AAC5B,qBAAA;AACAJ,oBAAAA,GAAAA,CAAAA,CAA4BH,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACK,IAAI,GAAG,IAAIG,OAAQR,CAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,EAAED,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACpD;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,WAAA;oBACNG,WAAa,EAAA,kDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNI,OAAS,EAAA,GAAA;oBACTH,OAAS,EAAA;wBAAES,UAAY,EAAA,IAAA;wBAAMR,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAG,qBAAA;AACvDE,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACa,SAAS;AAC/B,qBAAA;AACAX,oBAAAA,GAAAA,CAAAA,CAA4BH,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACc,SAAS,GAAGd,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC/B;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,cAAA;oBACNG,WAAa,EAAA,2CAAA;oBACbC,IAAM,EAAA,OAAA;oBACNI,OAAS,EAAA,GAAA;oBACTH,OAAS,EAAA;wBAAES,UAAY,EAAA,IAAA;wBAAMR,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAG,qBAAA;AACvDE,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACc,YAAY;AAClC,qBAAA;AACAZ,oBAAAA,GAAAA,CAAAA,CAA4BH,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACe,YAAY,GAAGf,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,oBAAA;oBACNG,WAAa,EAAA,mDAAA;oBACbC,IAAM,EAAA,MAAA;oBACNI,OAAS,EAAA;AAAC,wBAAA,GAAA;AAAK,wBAAA,GAAA;AAAK,wBAAA;AAAG,qBAAA;oBACvBH,OAAS,EAAA;wBAAES,UAAY,EAAA,IAAA;wBAAMR,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAK,qBAAA;AACzDE,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACe,aAAa,CAAC,CAAA,CAAA;AAClChB,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACe,aAAa,CAAC,CAAA,CAAA;AAClChB,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACe,aAAa,CAAC,CAAA,CAAA;AACpC,qBAAA;AACAb,oBAAAA,GAAAA,CAAAA,CAA4BH,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACiB,aAAa,CAAC,GAAGjB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAClC,wBAAA,IAAI,CAACgB,aAAa,CAAC,GAAGjB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAClC,wBAAA,IAAI,CAACgB,aAAa,CAAC,GAAGjB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACpC;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,sBAAA;oBACNG,WAAa,EAAA,iDAAA;oBACbC,IAAM,EAAA,MAAA;oBACNI,OAAS,EAAA;AAAC,wBAAA,GAAA;AAAK,wBAAA,GAAA;AAAK,wBAAA;AAAI,qBAAA;oBACxBH,OAAS,EAAA;wBAAES,UAAY,EAAA,IAAA;wBAAMR,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AACtDE,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACiB,eAAe,CAAC,CAAA,CAAA;AACpClB,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACiB,eAAe,CAAC,CAAA,CAAA;AACpClB,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACiB,eAAe,CAAC,CAAA,CAAA;AACtC,qBAAA;AACAf,oBAAAA,GAAAA,CAAAA,CAA4BH,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACmB,eAAe,CAAC,GAAGnB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACpC,wBAAA,IAAI,CAACkB,eAAe,CAAC,GAAGnB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACpC,wBAAA,IAAI,CAACkB,eAAe,CAAC,GAAGnB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACtC;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,wBAAA;oBACNG,WAAa,EAAA,mDAAA;oBACbC,IAAM,EAAA,MAAA;oBACNI,OAAS,EAAA;wBAAC,IAAC;wBAAK,IAAC;wBAAK;AAAK,qBAAA;oBAC3BH,OAAS,EAAA;wBAAES,UAAY,EAAA,IAAA;AAAMR,wBAAAA,QAAAA,EAAU,EAAC;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AACvDE,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,iBAAiB,CAAC,CAAA,CAAA;AACtCpB,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,iBAAiB,CAAC,CAAA,CAAA;AACtCpB,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,iBAAiB,CAAC,CAAA,CAAA;AACxC,qBAAA;AACAjB,oBAAAA,GAAAA,CAAAA,CAA4BH,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACqB,iBAAiB,CAAC,GAAGrB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACtC,wBAAA,IAAI,CAACoB,iBAAiB,CAAC,GAAGrB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACtC,wBAAA,IAAI,CAACoB,iBAAiB,CAAC,GAAGrB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACxC;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;AAEA,iBACO,SAASqB,aAAAA,CAAcC,OAAwB,EAAA;IACpD,OAAO;QACLnC,IAAMoC,EAAAA,KAAAA;QACNlC,IAAM,EAAA,OAAA;QACNmC,MAAQC,EAAAA,SAAAA;AACRC,QAAAA,UAAAA,CAAAA,CAAWC,GAAc,EAAA;AACvB,YAAA,MAAMC,IAAO,GAAA,IAAIL,KAAMI,CAAAA,GAAAA,CAAIE,KAAK,CAAA;AAChCD,YAAAA,IAAAA,CAAKJ,MAAM,GAAGG,GAAAA;YACd,OAAO;gBAAEG,GAAKF,EAAAA;AAAK,aAAA;AACrB,SAAA;AACAtC,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACEF,IAAM,EAAA,eAAA;oBACNG,WAAa,EAAA,gDAAA;oBACbC,IAAM,EAAA,QAAA;oBACNI,OAAS,EAAA,IAAA;oBACTH,OAAS,EAAA;wBACPqC,WAAa,EAAA;AAACpB,4BAAAA,gBAAAA;AAAkBvB,4BAAAA;AAAiB;AACnD,qBAAA;AACA4C,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAlC,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMkC,MAAM,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,aAAa,IAAI,IAAA;AAC1C,qBAAA;AACAhC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAACA,KAAAA,CAAMkC,MAAM,CAAC,EAAE,EAAE;4BACpB,IAAI,CAACC,aAAa,GAAG,IAAA;yBAChB,MAAA;AACL,4BAAA,IAAI,CAACA,aAAa,GAAGnC,KAAMkC,CAAAA,MAAM,CAAC,CAAE,CAAA;AACtC;AACF;AACF,iBAAA;AACA,gBAAA;oBACE5C,IAAM,EAAA,WAAA;oBACNG,WAAa,EAAA,oCAAA;oBACbC,IAAM,EAAA,OAAA;oBACNI,OAAS,EAAA,CAAA;oBACTH,OAAS,EAAA;wBAAEC,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AACpCE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmC,SAAS;AAC/B,qBAAA;AACAjC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAACoC,SAAS,GAAGpC,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC/B;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,WAAA;oBACNG,WAAa,EAAA,iDAAA;oBACbC,IAAM,EAAA,MAAA;oBACNI,OAAS,EAAA,KAAA;AACTC,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMqC,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,SAAS;AAChC,qBAAA;AACAnC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAACsC,SAAS,GAAGtC,KAAMqC,CAAAA,IAAI,CAAC,CAAE,CAAA;AAChC;AACF,iBAAA;AACA,gBAAA;oBACE/C,IAAM,EAAA,gBAAA;oBACNG,WAAa,EAAA,kCAAA;oBACbC,IAAM,EAAA,OAAA;oBACNI,OAAS,EAAA,CAAA;oBACTH,OAAS,EAAA;wBAAES,UAAY,EAAA,IAAA;wBAAMR,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAI,qBAAA;AACxDE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACsC,cAAc;AACpC,qBAAA;AACApC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAACuC,cAAc,GAAGvC,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AACpC;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,YAAA;oBACNG,WAAa,EAAA,gDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNI,OAAS,EAAA,EAAA;oBACTH,OAAS,EAAA;wBAAES,UAAY,EAAA,IAAA;wBAAMR,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAI,qBAAA;AACxDE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACuC,QAAQ,CAACC,UAAU;AACzC,qBAAA;AACAtC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACwC,QAAQ,CAACC,UAAU,GAAGzC,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AACzC;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,oBAAA;oBACNG,WAAa,EAAA,mCAAA;oBACbC,IAAM,EAAA,OAAA;oBACNI,OAAS,EAAA,CAAA;oBACTH,OAAS,EAAA;wBAAES,UAAY,EAAA,IAAA;wBAAMR,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AACtDE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACuC,QAAQ,CAACE,kBAAkB;AACjD,qBAAA;AACAvC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACwC,QAAQ,CAACE,kBAAkB,GAAG1C,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AACjD;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,UAAA;oBACNG,WAAa,EAAA,2CAAA;oBACbC,IAAM,EAAA,OAAA;oBACNI,OAAS,EAAA,EAAA;oBACTH,OAAS,EAAA;wBAAEC,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAI,qBAAA;AACtCE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACuC,QAAQ,CAACG,QAAQ;AACvC,qBAAA;AACAxC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACwC,QAAQ,CAACG,QAAQ,GAAG3C,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AACvC;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,aAAA;oBACNG,WAAa,EAAA,uDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNI,OAAS,EAAA,GAAA;oBACTH,OAAS,EAAA;wBAAEC,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AACpCE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC2C,WAAW;AACjC,qBAAA;AACAzC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC4C,WAAW,GAAG5C,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AACjC;AACF,iBAAA;AACA,gBAAA;oBACEX,IAAM,EAAA,oBAAA;oBACNG,WAAa,EAAA,8CAAA;oBACbC,IAAM,EAAA,QAAA;oBACNI,OAAS,EAAA,IAAA;AACTmC,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAlC,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAM6C,GAAG,CAAC,CAAE,CAAA,GAAGtB,OAAQuB,CAAAA,UAAU,CAAC,IAAI,CAACN,QAAQ,CAACO,kBAAkB,CAAK,IAAA,EAAA;AACzE,qBAAA;AACA,oBAAA,MAAM5C,KAAIH,KAAK,EAAA;AACb,wBAAA,IAAI,CAACA,KAAO,EAAA;AACV,4BAAA,IAAI,CAACwC,QAAQ,CAACO,kBAAkB,GAAG,IAAA;yBAC9B,MAAA;AACL,4BAAA,IAAI/C,KAAM6C,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAE;AAChB,gCAAA,MAAMG,OAAUhD,GAAAA,KAAAA,CAAM6C,GAAG,CAAC,CAAE,CAAA;gCAC5B,IAAII,GAAAA;gCACJ,IAAI;oCACFA,GAAM,GAAA,MAAM1B,OAAQ2B,CAAAA,YAAY,CAAYF,OAAAA,CAAAA;AAC9C,iCAAA,CAAE,OAAOG,GAAK,EAAA;AACZC,oCAAAA,OAAAA,CAAQC,KAAK,CAAC,CAAC,mBAAmB,EAAErD,KAAAA,CAAM6C,GAAG,CAAC,CAAE,CAAA,CAAC,EAAE,EAAEM,GAAK,CAAA,CAAA,CAAA;oCAC1DF,GAAM,GAAA,IAAA;AACR;AACA,gCAAA,IAAIA,KAAKK,WAAe,EAAA,EAAA;AACtB,oCAAA,IAAI,CAACd,QAAQ,CAACO,kBAAkB,GAAGE,GAAAA;iCAC9B,MAAA;AACLG,oCAAAA,OAAAA,CAAQC,KAAK,CAAC,sBAAA,CAAA;AAChB;AACF;AACF;AACF;AACF,iBAAA;AACA,gBAAA;oBACE/D,IAAM,EAAA,uBAAA;oBACNG,WAAa,EAAA,wCAAA;oBACbC,IAAM,EAAA,QAAA;oBACNI,OAAS,EAAA,IAAA;AACTmC,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAlC,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAM6C,GAAG,CAAC,CAAE,CAAA,GAAGtB,OAAQuB,CAAAA,UAAU,CAAC,IAAI,CAACN,QAAQ,CAACe,qBAAqB,CAAK,IAAA,EAAA;AAC5E,qBAAA;AACA,oBAAA,MAAMpD,KAAiBH,KAAK,EAAA;AAC1B,wBAAA,IAAI,CAACA,KAAO,EAAA;AACV,4BAAA,IAAI,CAACwC,QAAQ,CAACe,qBAAqB,GAAG,IAAA;yBACjC,MAAA;AACL,4BAAA,IAAIvD,KAAM6C,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAE;AAChB,gCAAA,MAAMG,OAAUhD,GAAAA,KAAAA,CAAM6C,GAAG,CAAC,CAAE,CAAA;gCAC5B,IAAII,GAAAA;gCACJ,IAAI;oCACFA,GAAM,GAAA,MAAM1B,OAAQ2B,CAAAA,YAAY,CAAYF,OAAAA,CAAAA;AAC9C,iCAAA,CAAE,OAAOG,GAAK,EAAA;AACZC,oCAAAA,OAAAA,CAAQC,KAAK,CAAC,CAAC,mBAAmB,EAAErD,KAAAA,CAAM6C,GAAG,CAAC,CAAE,CAAA,CAAC,EAAE,EAAEM,GAAK,CAAA,CAAA,CAAA;oCAC1DF,GAAM,GAAA,IAAA;AACR;AACA,gCAAA,IAAIA,KAAKK,WAAe,EAAA,EAAA;AACtB,oCAAA,IAAI,CAACd,QAAQ,CAACe,qBAAqB,GAAGN,GAAAA;iCACjC,MAAA;AACLG,oCAAAA,OAAAA,CAAQC,KAAK,CAAC,sBAAA,CAAA;AAChB;AACF;AACF;AACF;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;;;;"}
@@ -84,6 +84,7 @@ import { Vector3 } from '@zephyr3d/base';
84
84
  MaterialVaryingFlags[MaterialVaryingFlags["SSS_STORE_DIFFUSE"] = 64] = "SSS_STORE_DIFFUSE";
85
85
  MaterialVaryingFlags[MaterialVaryingFlags["SSS_STORE_NORMAL"] = 128] = "SSS_STORE_NORMAL";
86
86
  MaterialVaryingFlags[MaterialVaryingFlags["SSS_STORE_TRANSMISSION"] = 256] = "SSS_STORE_TRANSMISSION";
87
+ MaterialVaryingFlags[MaterialVaryingFlags["SKIN_SSS_STORE"] = 512] = "SKIN_SSS_STORE";
87
88
  return MaterialVaryingFlags;
88
89
  }({});
89
90
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"values.js","sources":["../src/values.ts"],"sourcesContent":["import { Vector3 } from '@zephyr3d/base';\r\n\r\n/**\r\n * Forward render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_LIGHT = 0;\r\n/**\r\n * Shadow map render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_SHADOWMAP = 1;\r\n/**\r\n * Depth only render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_DEPTH = 2;\r\n/**\r\n * Object color render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_OBJECT_COLOR = 3;\r\n\r\n/**\r\n * Builtin texture name for sheen LUT\r\n * @public\r\n */\r\nexport const BUILTIN_ASSET_TEXTURE_SHEEN_LUT = 'LUT_Sheen';\r\n\r\n/**\r\n * Builtin cube texture for test\r\n * @public\r\n */\r\nexport const BUILTIN_ASSET_TEST_CUBEMAP = 'TEST_Cubemap';\r\n\r\n/**\r\n * No light\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_NONE = 0;\r\n\r\n/**\r\n * Directional light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_DIRECTIONAL = 1;\r\n\r\n/**\r\n * Point light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_POINT = 2;\r\n\r\n/**\r\n * Spot light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_SPOT = 3;\r\n/**\r\n * Rectangular area light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_RECT = 4;\r\n\r\n/**\r\n * Max light size for clustered lighting\r\n * @public\r\n */\r\nexport const MAX_CLUSTERED_LIGHTS = 255;\r\n\r\n/**\r\n * Opaque render queue type\r\n * @public\r\n */\r\nexport const QUEUE_OPAQUE = 1;\r\n\r\n/**\r\n * Transparent render queue type\r\n * @public\r\n */\r\nexport const QUEUE_TRANSPARENT = 2;\r\n\r\n// Morph target attributes\r\n\r\n/** @public */\r\nexport const MORPH_TARGET_POSITION = 0;\r\n/** @public */\r\nexport const MORPH_TARGET_NORMAL = 1;\r\n/** @public */\r\nexport const MORPH_TARGET_TANGENT = 2;\r\n/** @public */\r\nexport const MORPH_TARGET_COLOR = 3;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX0 = 4;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX1 = 5;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX2 = 6;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX3 = 7;\r\n/** @public */\r\nexport const MAX_MORPH_ATTRIBUTES = 8;\r\n/** @public */\r\nexport const MAX_MORPH_TARGETS = 256;\r\n/** @public */\r\nexport const MORPH_WEIGHTS_VECTOR_COUNT = (MAX_MORPH_TARGETS + 3) >> 2;\r\n/** @public */\r\nexport const MORPH_ATTRIBUTE_VECTOR_COUNT = (MAX_MORPH_ATTRIBUTES + 3) >> 2;\r\n\r\n/** @public */\r\nexport const MAX_TERRAIN_MIPMAP_LEVELS = 64;\r\n\r\n/** @public */\r\nexport const MAX_GERSTNER_WAVE_COUNT = 16;\r\n\r\n/**\r\n * Material varying flags\r\n * @public\r\n */\r\nexport const enum MaterialVaryingFlags {\r\n MORPH_ANIMATION = 1 << 0,\r\n SKIN_ANIMATION = 1 << 1,\r\n INSTANCING = 1 << 2,\r\n SSR_STORE_ROUGHNESS = 1 << 3,\r\n APPLY_FOG = 1 << 4,\r\n SSS_STORE_PROFILE = 1 << 5,\r\n SSS_STORE_DIFFUSE = 1 << 6,\r\n SSS_STORE_NORMAL = 1 << 7,\r\n SSS_STORE_TRANSMISSION = 1 << 8\r\n}\r\n\r\n/**\r\n * Atmospheric Fog flag\r\n * @public\r\n */\r\nexport const ATMOSPHERIC_FOG_BIT = 1 << 0;\r\n/**\r\n * Exponential Fog flag\r\n * @public\r\n */\r\nexport const HEIGHT_FOG_BIT = 1 << 1;\r\n\r\n/** @internal */\r\nexport const uniformSphereSamples = [\r\n new Vector3(-0.7838, -0.620933, 0.00996137),\r\n new Vector3(0.106751, 0.965982, 0.235549),\r\n new Vector3(-0.215177, -0.687115, -0.693954),\r\n new Vector3(0.318002, 0.0640084, -0.945927),\r\n new Vector3(0.357396, 0.555673, 0.750664),\r\n new Vector3(0.866397, -0.19756, 0.458613),\r\n new Vector3(0.130216, 0.232736, -0.963783),\r\n new Vector3(-0.00174431, 0.376657, 0.926351),\r\n new Vector3(0.663478, 0.704806, -0.251089),\r\n new Vector3(0.0327851, 0.110534, -0.993331),\r\n new Vector3(0.0561973, 0.0234288, 0.998145),\r\n new Vector3(0.0905264, -0.169771, 0.981317),\r\n new Vector3(0.26694, 0.95222, -0.148393),\r\n new Vector3(-0.812874, -0.559051, -0.163393),\r\n new Vector3(-0.323378, -0.25855, -0.910263),\r\n new Vector3(-0.1333, 0.591356, -0.795317),\r\n new Vector3(0.480876, 0.408711, 0.775702),\r\n new Vector3(-0.332263, -0.533895, -0.777533),\r\n new Vector3(-0.0392473, -0.704457, -0.708661),\r\n new Vector3(0.427015, 0.239811, 0.871865),\r\n new Vector3(-0.416624, -0.563856, 0.713085),\r\n new Vector3(0.12793, 0.334479, -0.933679),\r\n new Vector3(-0.0343373, -0.160593, -0.986423),\r\n new Vector3(0.580614, 0.0692947, 0.811225),\r\n new Vector3(-0.459187, 0.43944, 0.772036),\r\n new Vector3(0.215474, -0.539436, -0.81399),\r\n new Vector3(-0.378969, -0.31988, -0.868366),\r\n new Vector3(-0.279978, -0.0109692, 0.959944),\r\n new Vector3(0.692547, 0.690058, 0.210234),\r\n new Vector3(0.53227, -0.123044, -0.837585),\r\n new Vector3(-0.772313, -0.283334, -0.568555),\r\n new Vector3(-0.0311218, 0.995988, -0.0838977),\r\n new Vector3(-0.366931, -0.276531, -0.888196),\r\n new Vector3(0.488778, 0.367878, -0.791051),\r\n new Vector3(-0.885561, -0.453445, 0.100842),\r\n new Vector3(0.71656, 0.443635, 0.538265),\r\n new Vector3(0.645383, -0.152576, -0.748466),\r\n new Vector3(-0.171259, 0.91907, 0.354939),\r\n new Vector3(-0.0031122, 0.9457, 0.325026),\r\n new Vector3(0.731503, 0.623089, -0.276881),\r\n new Vector3(-0.91466, 0.186904, 0.358419),\r\n new Vector3(0.15595, 0.828193, -0.538309),\r\n new Vector3(0.175396, 0.584732, 0.792038),\r\n new Vector3(-0.0838381, -0.943461, 0.320707),\r\n new Vector3(0.305876, 0.727604, 0.614029),\r\n new Vector3(0.754642, -0.197903, -0.62558),\r\n new Vector3(0.217255, -0.0177771, -0.975953),\r\n new Vector3(0.140412, -0.844826, 0.516287),\r\n new Vector3(-0.549042, 0.574859, -0.606705),\r\n new Vector3(0.570057, 0.17459, 0.802841),\r\n new Vector3(-0.0330304, 0.775077, 0.631003),\r\n new Vector3(-0.938091, 0.138937, 0.317304),\r\n new Vector3(0.483197, -0.726405, -0.48873),\r\n new Vector3(0.485263, 0.52926, 0.695991),\r\n new Vector3(0.224189, 0.742282, -0.631472),\r\n new Vector3(-0.322429, 0.662214, -0.676396),\r\n new Vector3(0.625577, -0.12711, 0.769738),\r\n new Vector3(-0.714032, -0.584461, -0.385439),\r\n new Vector3(-0.0652053, -0.892579, -0.446151),\r\n new Vector3(0.408421, -0.912487, 0.0236566),\r\n new Vector3(0.0900381, 0.319983, 0.943135),\r\n new Vector3(-0.708553, 0.483646, 0.513847),\r\n new Vector3(0.803855, -0.0902273, 0.587942),\r\n new Vector3(-0.0555802, -0.374602, -0.925519)\r\n];\r\n\r\n/** @internal */\r\nexport enum Fog {\r\n FOG_TYPE_NONE = 0,\r\n FOG_TYPE_HEIGHT = 4\r\n}\r\n"],"names":["RENDER_PASS_TYPE_LIGHT","RENDER_PASS_TYPE_SHADOWMAP","RENDER_PASS_TYPE_DEPTH","RENDER_PASS_TYPE_OBJECT_COLOR","BUILTIN_ASSET_TEXTURE_SHEEN_LUT","BUILTIN_ASSET_TEST_CUBEMAP","LIGHT_TYPE_NONE","LIGHT_TYPE_DIRECTIONAL","LIGHT_TYPE_POINT","LIGHT_TYPE_SPOT","LIGHT_TYPE_RECT","MAX_CLUSTERED_LIGHTS","QUEUE_OPAQUE","QUEUE_TRANSPARENT","MORPH_TARGET_POSITION","MORPH_TARGET_NORMAL","MORPH_TARGET_TANGENT","MORPH_TARGET_COLOR","MORPH_TARGET_TEX0","MORPH_TARGET_TEX1","MORPH_TARGET_TEX2","MORPH_TARGET_TEX3","MAX_MORPH_ATTRIBUTES","MAX_MORPH_TARGETS","MORPH_WEIGHTS_VECTOR_COUNT","MORPH_ATTRIBUTE_VECTOR_COUNT","MAX_TERRAIN_MIPMAP_LEVELS","MAX_GERSTNER_WAVE_COUNT","MaterialVaryingFlags","ATMOSPHERIC_FOG_BIT","HEIGHT_FOG_BIT","uniformSphereSamples","Vector3","Fog"],"mappings":"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"}
1
+ {"version":3,"file":"values.js","sources":["../src/values.ts"],"sourcesContent":["import { Vector3 } from '@zephyr3d/base';\r\n\r\n/**\r\n * Forward render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_LIGHT = 0;\r\n/**\r\n * Shadow map render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_SHADOWMAP = 1;\r\n/**\r\n * Depth only render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_DEPTH = 2;\r\n/**\r\n * Object color render pass type\r\n * @public\r\n */\r\nexport const RENDER_PASS_TYPE_OBJECT_COLOR = 3;\r\n\r\n/**\r\n * Builtin texture name for sheen LUT\r\n * @public\r\n */\r\nexport const BUILTIN_ASSET_TEXTURE_SHEEN_LUT = 'LUT_Sheen';\r\n\r\n/**\r\n * Builtin cube texture for test\r\n * @public\r\n */\r\nexport const BUILTIN_ASSET_TEST_CUBEMAP = 'TEST_Cubemap';\r\n\r\n/**\r\n * No light\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_NONE = 0;\r\n\r\n/**\r\n * Directional light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_DIRECTIONAL = 1;\r\n\r\n/**\r\n * Point light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_POINT = 2;\r\n\r\n/**\r\n * Spot light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_SPOT = 3;\r\n/**\r\n * Rectangular area light type\r\n * @public\r\n */\r\nexport const LIGHT_TYPE_RECT = 4;\r\n\r\n/**\r\n * Max light size for clustered lighting\r\n * @public\r\n */\r\nexport const MAX_CLUSTERED_LIGHTS = 255;\r\n\r\n/**\r\n * Opaque render queue type\r\n * @public\r\n */\r\nexport const QUEUE_OPAQUE = 1;\r\n\r\n/**\r\n * Transparent render queue type\r\n * @public\r\n */\r\nexport const QUEUE_TRANSPARENT = 2;\r\n\r\n// Morph target attributes\r\n\r\n/** @public */\r\nexport const MORPH_TARGET_POSITION = 0;\r\n/** @public */\r\nexport const MORPH_TARGET_NORMAL = 1;\r\n/** @public */\r\nexport const MORPH_TARGET_TANGENT = 2;\r\n/** @public */\r\nexport const MORPH_TARGET_COLOR = 3;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX0 = 4;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX1 = 5;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX2 = 6;\r\n/** @public */\r\nexport const MORPH_TARGET_TEX3 = 7;\r\n/** @public */\r\nexport const MAX_MORPH_ATTRIBUTES = 8;\r\n/** @public */\r\nexport const MAX_MORPH_TARGETS = 256;\r\n/** @public */\r\nexport const MORPH_WEIGHTS_VECTOR_COUNT = (MAX_MORPH_TARGETS + 3) >> 2;\r\n/** @public */\r\nexport const MORPH_ATTRIBUTE_VECTOR_COUNT = (MAX_MORPH_ATTRIBUTES + 3) >> 2;\r\n\r\n/** @public */\r\nexport const MAX_TERRAIN_MIPMAP_LEVELS = 64;\r\n\r\n/** @public */\r\nexport const MAX_GERSTNER_WAVE_COUNT = 16;\r\n\r\n/**\r\n * Material varying flags\r\n * @public\r\n */\r\nexport const enum MaterialVaryingFlags {\r\n MORPH_ANIMATION = 1 << 0,\r\n SKIN_ANIMATION = 1 << 1,\r\n INSTANCING = 1 << 2,\r\n SSR_STORE_ROUGHNESS = 1 << 3,\r\n APPLY_FOG = 1 << 4,\r\n SSS_STORE_PROFILE = 1 << 5,\r\n SSS_STORE_DIFFUSE = 1 << 6,\r\n SSS_STORE_NORMAL = 1 << 7,\r\n SSS_STORE_TRANSMISSION = 1 << 8,\r\n SKIN_SSS_STORE = 1 << 9\r\n}\r\n\r\n/**\r\n * Atmospheric Fog flag\r\n * @public\r\n */\r\nexport const ATMOSPHERIC_FOG_BIT = 1 << 0;\r\n/**\r\n * Exponential Fog flag\r\n * @public\r\n */\r\nexport const HEIGHT_FOG_BIT = 1 << 1;\r\n\r\n/** @internal */\r\nexport const uniformSphereSamples = [\r\n new Vector3(-0.7838, -0.620933, 0.00996137),\r\n new Vector3(0.106751, 0.965982, 0.235549),\r\n new Vector3(-0.215177, -0.687115, -0.693954),\r\n new Vector3(0.318002, 0.0640084, -0.945927),\r\n new Vector3(0.357396, 0.555673, 0.750664),\r\n new Vector3(0.866397, -0.19756, 0.458613),\r\n new Vector3(0.130216, 0.232736, -0.963783),\r\n new Vector3(-0.00174431, 0.376657, 0.926351),\r\n new Vector3(0.663478, 0.704806, -0.251089),\r\n new Vector3(0.0327851, 0.110534, -0.993331),\r\n new Vector3(0.0561973, 0.0234288, 0.998145),\r\n new Vector3(0.0905264, -0.169771, 0.981317),\r\n new Vector3(0.26694, 0.95222, -0.148393),\r\n new Vector3(-0.812874, -0.559051, -0.163393),\r\n new Vector3(-0.323378, -0.25855, -0.910263),\r\n new Vector3(-0.1333, 0.591356, -0.795317),\r\n new Vector3(0.480876, 0.408711, 0.775702),\r\n new Vector3(-0.332263, -0.533895, -0.777533),\r\n new Vector3(-0.0392473, -0.704457, -0.708661),\r\n new Vector3(0.427015, 0.239811, 0.871865),\r\n new Vector3(-0.416624, -0.563856, 0.713085),\r\n new Vector3(0.12793, 0.334479, -0.933679),\r\n new Vector3(-0.0343373, -0.160593, -0.986423),\r\n new Vector3(0.580614, 0.0692947, 0.811225),\r\n new Vector3(-0.459187, 0.43944, 0.772036),\r\n new Vector3(0.215474, -0.539436, -0.81399),\r\n new Vector3(-0.378969, -0.31988, -0.868366),\r\n new Vector3(-0.279978, -0.0109692, 0.959944),\r\n new Vector3(0.692547, 0.690058, 0.210234),\r\n new Vector3(0.53227, -0.123044, -0.837585),\r\n new Vector3(-0.772313, -0.283334, -0.568555),\r\n new Vector3(-0.0311218, 0.995988, -0.0838977),\r\n new Vector3(-0.366931, -0.276531, -0.888196),\r\n new Vector3(0.488778, 0.367878, -0.791051),\r\n new Vector3(-0.885561, -0.453445, 0.100842),\r\n new Vector3(0.71656, 0.443635, 0.538265),\r\n new Vector3(0.645383, -0.152576, -0.748466),\r\n new Vector3(-0.171259, 0.91907, 0.354939),\r\n new Vector3(-0.0031122, 0.9457, 0.325026),\r\n new Vector3(0.731503, 0.623089, -0.276881),\r\n new Vector3(-0.91466, 0.186904, 0.358419),\r\n new Vector3(0.15595, 0.828193, -0.538309),\r\n new Vector3(0.175396, 0.584732, 0.792038),\r\n new Vector3(-0.0838381, -0.943461, 0.320707),\r\n new Vector3(0.305876, 0.727604, 0.614029),\r\n new Vector3(0.754642, -0.197903, -0.62558),\r\n new Vector3(0.217255, -0.0177771, -0.975953),\r\n new Vector3(0.140412, -0.844826, 0.516287),\r\n new Vector3(-0.549042, 0.574859, -0.606705),\r\n new Vector3(0.570057, 0.17459, 0.802841),\r\n new Vector3(-0.0330304, 0.775077, 0.631003),\r\n new Vector3(-0.938091, 0.138937, 0.317304),\r\n new Vector3(0.483197, -0.726405, -0.48873),\r\n new Vector3(0.485263, 0.52926, 0.695991),\r\n new Vector3(0.224189, 0.742282, -0.631472),\r\n new Vector3(-0.322429, 0.662214, -0.676396),\r\n new Vector3(0.625577, -0.12711, 0.769738),\r\n new Vector3(-0.714032, -0.584461, -0.385439),\r\n new Vector3(-0.0652053, -0.892579, -0.446151),\r\n new Vector3(0.408421, -0.912487, 0.0236566),\r\n new Vector3(0.0900381, 0.319983, 0.943135),\r\n new Vector3(-0.708553, 0.483646, 0.513847),\r\n new Vector3(0.803855, -0.0902273, 0.587942),\r\n new Vector3(-0.0555802, -0.374602, -0.925519)\r\n];\r\n\r\n/** @internal */\r\nexport enum Fog {\r\n FOG_TYPE_NONE = 0,\r\n FOG_TYPE_HEIGHT = 4\r\n}\r\n"],"names":["RENDER_PASS_TYPE_LIGHT","RENDER_PASS_TYPE_SHADOWMAP","RENDER_PASS_TYPE_DEPTH","RENDER_PASS_TYPE_OBJECT_COLOR","BUILTIN_ASSET_TEXTURE_SHEEN_LUT","BUILTIN_ASSET_TEST_CUBEMAP","LIGHT_TYPE_NONE","LIGHT_TYPE_DIRECTIONAL","LIGHT_TYPE_POINT","LIGHT_TYPE_SPOT","LIGHT_TYPE_RECT","MAX_CLUSTERED_LIGHTS","QUEUE_OPAQUE","QUEUE_TRANSPARENT","MORPH_TARGET_POSITION","MORPH_TARGET_NORMAL","MORPH_TARGET_TANGENT","MORPH_TARGET_COLOR","MORPH_TARGET_TEX0","MORPH_TARGET_TEX1","MORPH_TARGET_TEX2","MORPH_TARGET_TEX3","MAX_MORPH_ATTRIBUTES","MAX_MORPH_TARGETS","MORPH_WEIGHTS_VECTOR_COUNT","MORPH_ATTRIBUTE_VECTOR_COUNT","MAX_TERRAIN_MIPMAP_LEVELS","MAX_GERSTNER_WAVE_COUNT","MaterialVaryingFlags","ATMOSPHERIC_FOG_BIT","HEIGHT_FOG_BIT","uniformSphereSamples","Vector3","Fog"],"mappings":"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"}
package/electron/main.cjs CHANGED
@@ -553,6 +553,32 @@ function decryptSecret(payload) {
553
553
  }
554
554
  }
555
555
 
556
+ function findInvalidHttpHeaderValueChar(value) {
557
+ for (let i = 0; i < value.length; i++) {
558
+ const code = value.charCodeAt(i);
559
+ if (code > 255 || code === 0x00 || code === 0x0a || code === 0x0d) {
560
+ return { index: i, code };
561
+ }
562
+ }
563
+ return null;
564
+ }
565
+
566
+ function normalizeLlmApiKey(apiKey) {
567
+ let normalized = typeof apiKey === 'string' ? apiKey.trim() : '';
568
+ normalized = normalized.replace(/^Bearer\s+/i, '').trim();
569
+ if (!normalized) {
570
+ throw new Error('API key must not be empty');
571
+ }
572
+ const invalidChar = findInvalidHttpHeaderValueChar(normalized);
573
+ if (invalidChar) {
574
+ throw new Error(
575
+ `API key contains an unsupported character at index ${invalidChar.index} (code ${invalidChar.code}). ` +
576
+ 'API keys used in HTTP headers must contain only header-safe characters; please paste the raw key only.'
577
+ );
578
+ }
579
+ return normalized;
580
+ }
581
+
556
582
  async function loadLlmSecrets() {
557
583
  const filePath = llmSecretsPath();
558
584
  const loaded = await fs
@@ -577,10 +603,7 @@ function hasLlmApiKeyConfigured(provider) {
577
603
 
578
604
  async function setLlmApiKey(provider, apiKey) {
579
605
  const normalizedProvider = sanitizeLlmProvider(provider);
580
- const normalizedKey = typeof apiKey === 'string' ? apiKey.trim() : '';
581
- if (!normalizedKey) {
582
- throw new Error('API key must not be empty');
583
- }
606
+ const normalizedKey = normalizeLlmApiKey(apiKey);
584
607
  llmSecrets.providers[normalizedProvider] = {
585
608
  apiKey: encryptSecret(normalizedKey),
586
609
  updatedAt: new Date().toISOString()
@@ -1125,10 +1148,11 @@ async function readOpenAiCompatibleChatStream(response, callbacks) {
1125
1148
  }
1126
1149
 
1127
1150
  async function invokeOpenAiCompatibleChat(settings, messages, tools, signal, callbacks) {
1128
- const apiKey = getLlmApiKey(settings.provider);
1129
- if (!apiKey) {
1151
+ const rawApiKey = getLlmApiKey(settings.provider);
1152
+ if (!rawApiKey) {
1130
1153
  throw new Error(`No API key configured for provider ${settings.provider}`);
1131
1154
  }
1155
+ const apiKey = normalizeLlmApiKey(rawApiKey);
1132
1156
  const response = await fetch(getOpenAiCompatibleChatUrl(settings.provider, settings.baseUrl), {
1133
1157
  method: 'POST',
1134
1158
  headers: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zephyr3d/editor",
3
- "version": "0.3.8",
3
+ "version": "0.3.9",
4
4
  "description": "zephyr3d studio",
5
5
  "homepage": "https://github.com/gavinyork/zephyr3d#readme",
6
6
  "main": "electron/main.cjs",
@@ -83,12 +83,12 @@
83
83
  "streamsaver": "^2.0.6",
84
84
  "@jridgewell/trace-mapping": "^0.3.25",
85
85
  "@zephyr3d/base": "^0.2.8",
86
- "@zephyr3d/device": "^0.2.12",
87
- "@zephyr3d/scene": "^0.9.15",
86
+ "@zephyr3d/device": "^0.2.13",
87
+ "@zephyr3d/scene": "^0.9.17",
88
88
  "@zephyr3d/loaders": "^0.1.4",
89
89
  "@zephyr3d/imgui": "^0.2.5",
90
90
  "@zephyr3d/backend-webgl": "^0.1.14",
91
- "@zephyr3d/backend-webgpu": "^0.1.16",
91
+ "@zephyr3d/backend-webgpu": "^0.1.17",
92
92
  "@rollup/browser": "^4.46.2",
93
93
  "es-module-lexer": "^1.7.0",
94
94
  "typescript": "^5.7.3",