@zephyr3d/editor 0.3.4 → 0.3.5

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 (64) hide show
  1. package/dist/assets/{index-DzQzWsCG.js → index-DlnbO59X.js} +2 -2
  2. package/dist/assistant/zephyr-types-index.json +9 -10
  3. package/dist/index.html +1 -1
  4. package/dist/modules/zephyr3d_backend-webgpu.js +13 -12
  5. package/dist/modules/zephyr3d_backend-webgpu.js.map +1 -1
  6. package/dist/modules/zephyr3d_base.js +152 -152
  7. package/dist/modules/zephyr3d_base.js.map +1 -1
  8. package/dist/modules/zephyr3d_device.js +15 -15
  9. package/dist/modules/zephyr3d_device.js.map +1 -1
  10. package/dist/modules/zephyr3d_loaders.js +6 -6
  11. package/dist/modules/zephyr3d_loaders.js.map +1 -1
  12. package/dist/modules/zephyr3d_scene.js +1382 -1385
  13. package/dist/modules/zephyr3d_scene.js.map +1 -1
  14. package/dist/vendor/zephyr3d/backend-webgpu/dist/capabilities_webgpu.js +7 -6
  15. package/dist/vendor/zephyr3d/backend-webgpu/dist/capabilities_webgpu.js.map +1 -1
  16. package/dist/vendor/zephyr3d/backend-webgpu/dist/renderpass_webgpu.js +6 -6
  17. package/dist/vendor/zephyr3d/backend-webgpu/dist/renderpass_webgpu.js.map +1 -1
  18. package/dist/vendor/zephyr3d/base/dist/vfs/common.js +152 -152
  19. package/dist/vendor/zephyr3d/base/dist/vfs/common.js.map +1 -1
  20. package/dist/vendor/zephyr3d/device/dist/device.js +15 -15
  21. package/dist/vendor/zephyr3d/device/dist/device.js.map +1 -1
  22. package/dist/vendor/zephyr3d/loaders/dist/gltf/gltf_importer.js +6 -6
  23. package/dist/vendor/zephyr3d/loaders/dist/gltf/gltf_importer.js.map +1 -1
  24. package/dist/vendor/zephyr3d/scene/dist/animation/animationset.js +191 -194
  25. package/dist/vendor/zephyr3d/scene/dist/animation/animationset.js.map +1 -1
  26. package/dist/vendor/zephyr3d/scene/dist/animation/joint_dynamics_modifier.js +19 -19
  27. package/dist/vendor/zephyr3d/scene/dist/animation/joint_dynamics_modifier.js.map +1 -1
  28. package/dist/vendor/zephyr3d/scene/dist/app/engine.js +131 -131
  29. package/dist/vendor/zephyr3d/scene/dist/app/engine.js.map +1 -1
  30. package/dist/vendor/zephyr3d/scene/dist/app/scriptregistry.js +119 -119
  31. package/dist/vendor/zephyr3d/scene/dist/app/scriptregistry.js.map +1 -1
  32. package/dist/vendor/zephyr3d/scene/dist/asset/model.js +62 -62
  33. package/dist/vendor/zephyr3d/scene/dist/asset/model.js.map +1 -1
  34. package/dist/vendor/zephyr3d/scene/dist/avatar/wardrobe.js +13 -13
  35. package/dist/vendor/zephyr3d/scene/dist/avatar/wardrobe.js.map +1 -1
  36. package/dist/vendor/zephyr3d/scene/dist/camera/camera.js +201 -201
  37. package/dist/vendor/zephyr3d/scene/dist/camera/camera.js.map +1 -1
  38. package/dist/vendor/zephyr3d/scene/dist/index.d.ts +1 -1
  39. package/dist/vendor/zephyr3d/scene/dist/material/mixins/lightmodel/pbrmetallicroughness.js +5 -5
  40. package/dist/vendor/zephyr3d/scene/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
  41. package/dist/vendor/zephyr3d/scene/dist/material/mtoon.js +4 -4
  42. package/dist/vendor/zephyr3d/scene/dist/material/mtoon.js.map +1 -1
  43. package/dist/vendor/zephyr3d/scene/dist/material/pbrblueprint.js +11 -11
  44. package/dist/vendor/zephyr3d/scene/dist/material/pbrblueprint.js.map +1 -1
  45. package/dist/vendor/zephyr3d/scene/dist/material/shader/helper.js +284 -284
  46. package/dist/vendor/zephyr3d/scene/dist/material/shader/helper.js.map +1 -1
  47. package/dist/vendor/zephyr3d/scene/dist/posteffect/ssr.js +9 -9
  48. package/dist/vendor/zephyr3d/scene/dist/posteffect/ssr.js.map +1 -1
  49. package/dist/vendor/zephyr3d/scene/dist/render/lightpass.js +5 -5
  50. package/dist/vendor/zephyr3d/scene/dist/render/lightpass.js.map +1 -1
  51. package/dist/vendor/zephyr3d/scene/dist/render/renderer.js +7 -7
  52. package/dist/vendor/zephyr3d/scene/dist/render/renderer.js.map +1 -1
  53. package/dist/vendor/zephyr3d/scene/dist/shadow/esm.js +1 -1
  54. package/dist/vendor/zephyr3d/scene/dist/shadow/esm.js.map +1 -1
  55. package/dist/vendor/zephyr3d/scene/dist/shadow/shadow_region.js +45 -45
  56. package/dist/vendor/zephyr3d/scene/dist/shadow/shadow_region.js.map +1 -1
  57. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/manager.js +275 -275
  58. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/manager.js.map +1 -1
  59. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/camera.js.map +1 -1
  60. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/mesh.js.map +1 -1
  61. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/sprite.js.map +1 -1
  62. package/package.json +3 -3
  63. package/dist/vendor/zephyr3d/scene/dist/animation/joint_dynamics/convex_collider.js +0 -320
  64. package/dist/vendor/zephyr3d/scene/dist/animation/joint_dynamics/convex_collider.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"camera.js","sources":["../../../../src/utility/serialization/scene/camera.ts"],"sourcesContent":["import { defineProps, type SerializableClass } from '../types';\nimport { Camera, OrthoCamera, PerspectiveCamera } from '../../../camera';\nimport type { CameraOITMode, SSSDebugView, SSSQualityPreset } from '../../../camera';\nimport { SceneNode } from '../../../scene';\nimport {\n TAA_DEBUG_ALAPH,\n TAA_DEBUG_CURRENT_COLOR,\n TAA_DEBUG_EDGE,\n TAA_DEBUG_HISTORY_COLOR,\n TAA_DEBUG_MOTION_VECTOR,\n TAA_DEBUG_NONE,\n TAA_DEBUG_STRENGTH,\n TAA_DEBUG_VELOCITY\n} from '../../../shaders';\n\n/** @internal */\nexport function getCameraClass(): SerializableClass {\n return {\n ctor: Camera,\n name: 'Camera',\n parent: SceneNode,\n createFunc(ctx: SceneNode) {\n const node = new Camera(ctx.scene);\n node.parent = ctx;\n return { obj: node };\n },\n getProps() {\n return defineProps([\n {\n name: 'UseScreenSettings',\n type: 'bool',\n default: false,\n get(this: Camera, value) {\n value.bool[0] = this.adapted;\n },\n set(this: Camera, value) {\n this.adapted = value.bool[0];\n }\n },\n {\n name: 'DesignWidth',\n type: 'int',\n options: { minValue: 1 },\n default: 1280,\n isHidden(this: Camera) {\n return !this.adapted;\n },\n get(this: Camera, value) {\n value.num[0] = this.screenConfig.designWidth;\n },\n set(this: Camera, value) {\n this.screenConfig = { ...this.screenConfig, designWidth: value.num[0] };\n }\n },\n {\n name: 'DesignHeight',\n type: 'int',\n options: { minValue: 1 },\n default: 720,\n isHidden(this: Camera) {\n return !this.adapted;\n },\n get(this: Camera, value) {\n value.num[0] = this.screenConfig.designHeight;\n },\n set(this: Camera, value) {\n this.screenConfig = { ...this.screenConfig, designHeight: value.num[0] };\n }\n },\n {\n name: 'ScreenScaleMode',\n type: 'string',\n default: 'cover',\n options: {\n enum: {\n labels: ['ShowAll', 'NoBorder', 'ExactFit', 'FixedWidth', 'FixedHeight'],\n values: ['fit', 'cover', 'stretch', 'fit-width', 'fit-height']\n }\n },\n isHidden(this: Camera) {\n return !this.adapted;\n },\n get(this: Camera, value) {\n value.str[0] = this.screenConfig.scaleMode;\n },\n set(this: Camera, value) {\n this.screenConfig = { ...this.screenConfig, scaleMode: value.str[0] as any };\n }\n },\n {\n name: 'HDR',\n type: 'bool',\n default: false,\n get(this: Camera, value) {\n value.bool[0] = this.HDR;\n },\n set(this: Camera, value) {\n this.HDR = value.bool[0];\n }\n },\n {\n name: 'HiZ',\n type: 'bool',\n default: false,\n get(this: Camera, value) {\n value.bool[0] = this.HiZ;\n },\n set(this: Camera, value) {\n this.HiZ = value.bool[0];\n }\n },\n {\n name: 'OITMode',\n type: 'string',\n default: 'none',\n options: {\n label: 'OIT',\n group: 'Rendering',\n enum: {\n labels: ['None', 'Weighted', 'ABuffer'],\n values: ['none', 'weighted', 'abuffer']\n }\n },\n get(this: Camera, value) {\n value.str[0] = this.oitMode;\n },\n set(this: Camera, value) {\n this.oitMode = value.str[0] as CameraOITMode;\n }\n },\n {\n name: 'ABufferLayers',\n type: 'int',\n default: 20,\n options: {\n label: 'ABuffer Layers',\n group: 'Rendering',\n minValue: 1\n },\n get(this: Camera, value) {\n value.num[0] = this.oitABufferLayers;\n },\n set(this: Camera, value) {\n this.oitABufferLayers = value.num[0];\n },\n isValid(this: Camera) {\n return this.oitMode === 'abuffer';\n }\n },\n {\n name: 'ToneMapEnabled',\n type: 'bool',\n phase: 0,\n default: true,\n options: {\n label: 'Enabled',\n group: 'PostProcessing/ToneMap'\n },\n get(this: Camera, value) {\n value.bool[0] = this.toneMap;\n },\n set(this: Camera, value) {\n this.toneMap = value.bool[0];\n }\n },\n {\n name: 'ToneMapExposure',\n type: 'float',\n options: { minValue: 0, maxValue: 8, label: 'Exposure', group: 'PostProcessing/ToneMap' },\n phase: 0,\n default: 1,\n get(this: Camera, value) {\n value.num[0] = this.toneMapExposure;\n },\n set(this: Camera, value) {\n this.toneMapExposure = value.num[0];\n }\n },\n {\n name: 'ColorAdjustEnabled',\n type: 'bool',\n phase: 0,\n default: false,\n options: {\n label: 'Enabled',\n group: 'PostProcessing/ColorAdjust'\n },\n get(this: Camera, value) {\n value.bool[0] = this.colorAdjust;\n },\n set(this: Camera, value) {\n this.colorAdjust = value.bool[0];\n }\n },\n {\n name: 'ColorAdjustSaturation',\n type: 'float',\n phase: 1,\n default: 1,\n options: {\n label: 'Saturation',\n group: 'PostProcessing/ColorAdjust',\n minValue: 0,\n maxValue: 2,\n animatable: true\n },\n get(this: Camera, value) {\n value.num[0] = this.colorAdjustSaturation;\n },\n set(this: Camera, value) {\n this.colorAdjustSaturation = value.num[0];\n },\n isValid(this: Camera) {\n return this.colorAdjust;\n }\n },\n {\n name: 'ColorAdjustContrast',\n type: 'float',\n phase: 1,\n default: 1,\n options: {\n label: 'Contrast',\n group: 'PostProcessing/ColorAdjust',\n minValue: 0,\n maxValue: 2,\n animatable: true\n },\n get(this: Camera, value) {\n value.num[0] = this.colorAdjustContrast;\n },\n set(this: Camera, value) {\n this.colorAdjustContrast = value.num[0];\n },\n isValid(this: Camera) {\n return this.colorAdjust;\n }\n },\n {\n name: 'ColorAdjustHue',\n type: 'float',\n phase: 1,\n default: 0,\n options: {\n label: 'Hue',\n group: 'PostProcessing/ColorAdjust',\n minValue: -1,\n maxValue: 1,\n animatable: true\n },\n get(this: Camera, value) {\n value.num[0] = this.colorAdjustHue / 180;\n },\n set(this: Camera, value) {\n this.colorAdjustHue = value.num[0] * 180;\n },\n isValid(this: Camera) {\n return this.colorAdjust;\n }\n },\n {\n name: 'Sharpen',\n type: 'float',\n phase: 1,\n default: 0,\n options: {\n label: 'Sharpen',\n group: 'PostProcessing/ColorAdjust',\n minValue: 0,\n maxValue: 2,\n animatable: true\n },\n get(this: Camera, value) {\n value.num[0] = this.colorAdjustSharpen;\n },\n set(this: Camera, value) {\n this.colorAdjustSharpen = value.num[0];\n },\n isValid(this: Camera) {\n return this.colorAdjust;\n }\n },\n {\n name: 'BloomEnabled',\n type: 'bool',\n phase: 0,\n default: true,\n options: {\n label: 'Enabled',\n group: 'PostProcessing/Bloom'\n },\n get(this: Camera, value) {\n value.bool[0] = this.bloom;\n },\n set(this: Camera, value) {\n this.bloom = value.bool[0];\n }\n },\n {\n name: 'BloomMaxDownsampleLevels',\n type: 'int',\n options: { minValue: 0, maxValue: 8, label: 'MaxDownsampleLevels', group: 'PostProcessing/Bloom' },\n phase: 0,\n default: 4,\n get(this: Camera, value) {\n value.num[0] = this.bloomMaxDownsampleLevels;\n },\n set(this: Camera, value) {\n this.bloomMaxDownsampleLevels = value.num[0];\n }\n },\n {\n name: 'BloomDownsampleLimit',\n type: 'int',\n options: { minValue: 2, maxValue: 64, label: 'DownsampleLimit', group: 'PostProcessing/Bloom' },\n phase: 0,\n default: 32,\n get(this: Camera, value) {\n value.num[0] = this.bloomDownsampleLimit;\n },\n set(this: Camera, value) {\n this.bloomDownsampleLimit = value.num[0];\n }\n },\n {\n name: 'BloomThreshold',\n type: 'float',\n options: {\n animatable: true,\n minValue: 0,\n maxValue: 1,\n label: 'Threshold',\n group: 'PostProcessing/Bloom'\n },\n phase: 0,\n default: 0.8,\n get(this: Camera, value) {\n value.num[0] = this.bloomThreshold;\n },\n set(this: Camera, value) {\n this.bloomThreshold = value.num[0];\n }\n },\n {\n name: 'BloomThresholdKnee',\n type: 'float',\n options: {\n animatable: true,\n minValue: 0,\n maxValue: 1,\n label: 'ThresholdKnee',\n group: 'PostProcessing/Bloom'\n },\n phase: 0,\n default: 0,\n get(this: Camera, value) {\n value.num[0] = this.bloomThresholdKnee;\n },\n set(this: Camera, value) {\n this.bloomThresholdKnee = value.num[0];\n }\n },\n {\n name: 'BloomIntensity',\n type: 'float',\n options: {\n animatable: true,\n minValue: 0,\n maxValue: 8,\n label: 'Intensity',\n group: 'PostProcessing/Bloom'\n },\n phase: 0,\n default: 1,\n get(this: Camera, value) {\n value.num[0] = this.bloomIntensity;\n },\n set(this: Camera, value) {\n this.bloomIntensity = value.num[0];\n }\n },\n {\n name: 'FXAAEnabled',\n type: 'bool',\n phase: 0,\n default: true,\n options: {\n label: 'Enabled',\n group: 'PostProcessing/FXAA'\n },\n get(this: Camera, value) {\n value.bool[0] = this.FXAA;\n },\n set(this: Camera, value) {\n this.FXAA = value.bool[0];\n }\n },\n {\n name: 'TAAEnabled',\n type: 'bool',\n phase: 0,\n default: false,\n options: {\n label: 'Enabled',\n group: 'PostProcessing/TAA'\n },\n get(this: Camera, value) {\n value.bool[0] = this.TAA;\n },\n set(this: Camera, value) {\n this.TAA = value.bool[0];\n }\n },\n {\n name: 'TAADebug',\n type: 'int',\n phase: 1,\n options: {\n label: 'Debug',\n group: 'PostProcessing/TAA',\n enum: {\n labels: [\n 'None',\n 'Current Color',\n 'History Color',\n 'Velocity',\n 'Edge',\n 'Alpha',\n 'Motion Vector',\n 'Strength'\n ],\n values: [\n TAA_DEBUG_NONE,\n TAA_DEBUG_CURRENT_COLOR,\n TAA_DEBUG_HISTORY_COLOR,\n TAA_DEBUG_VELOCITY,\n TAA_DEBUG_EDGE,\n TAA_DEBUG_ALAPH,\n TAA_DEBUG_MOTION_VECTOR,\n TAA_DEBUG_STRENGTH\n ]\n }\n },\n default: TAA_DEBUG_NONE,\n get(this: Camera, value) {\n value.num[0] = this.TAADebug;\n },\n set(this: Camera, value) {\n this.TAADebug = value.num[0];\n },\n isValid() {\n return !!this.TAA;\n }\n },\n {\n name: 'MotionBlurEnabled',\n type: 'bool',\n phase: 0,\n default: false,\n options: {\n label: 'Enabled',\n group: 'PostProcessing/MotionBlur'\n },\n get(this: Camera, value) {\n value.bool[0] = this.motionBlur;\n },\n set(this: Camera, value) {\n this.motionBlur = value.bool[0];\n }\n },\n {\n name: 'MotionBlurStrength',\n type: 'float',\n phase: 1,\n default: 1,\n options: {\n label: 'Strength',\n group: 'PostProcessing/MotionBlur',\n animatable: true,\n minValue: 0,\n maxValue: 10\n },\n get(this: Camera, value) {\n value.num[0] = this.motionBlurStrength;\n },\n set(this: Camera, value) {\n this.motionBlurStrength = value.num[0];\n },\n isValid(this: Camera) {\n return this.motionBlur;\n }\n },\n {\n name: 'SSREnabled',\n type: 'bool',\n phase: 0,\n default: false,\n options: {\n label: 'Enabled',\n group: 'PostProcessing/SSR'\n },\n get(this: Camera, value) {\n value.bool[0] = this.SSR;\n },\n set(this: Camera, value) {\n this.SSR = value.bool[0];\n }\n },\n {\n name: 'SSRMaxRoughness',\n type: 'float',\n phase: 1,\n default: 0.8,\n options: {\n label: 'RoughnessThreshold',\n group: 'PostProcessing/SSR',\n minValue: 0,\n maxValue: 1\n },\n get(this: Camera, value) {\n value.num[0] = this.ssrMaxRoughness;\n },\n set(this: Camera, value) {\n this.ssrMaxRoughness = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSR;\n }\n },\n {\n name: 'SSRRoughnessFactor',\n type: 'float',\n phase: 1,\n default: 1.0,\n options: {\n label: 'RoughnessFactor',\n group: 'PostProcessing/SSR',\n minValue: 0,\n maxValue: 1\n },\n get(this: Camera, value) {\n value.num[0] = this.ssrRoughnessFactor;\n },\n set(this: Camera, value) {\n this.ssrRoughnessFactor = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSR;\n }\n },\n {\n name: 'SSRStride',\n type: 'int',\n phase: 1,\n default: 2,\n options: {\n label: 'Stride',\n group: 'PostProcessing/SSR',\n minValue: 1,\n maxValue: 32\n },\n get(this: Camera, value) {\n value.num[0] = this.ssrStride;\n },\n set(this: Camera, value) {\n this.ssrStride = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSR && !this.HiZ;\n }\n },\n {\n name: 'SSRMaxDistance',\n type: 'float',\n phase: 1,\n default: 100,\n options: {\n label: 'MaxDistance',\n group: 'PostProcessing/SSR',\n minValue: 0,\n maxValue: 9999\n },\n get(this: Camera, value) {\n value.num[0] = this.ssrMaxDistance;\n },\n set(this: Camera, value) {\n this.ssrMaxDistance = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSR;\n }\n },\n {\n name: 'SSRMaxSteps',\n type: 'int',\n phase: 1,\n default: 120,\n options: {\n label: 'MaxSteps',\n group: 'PostProcessing/SSR',\n minValue: 1,\n maxValue: 2000\n },\n get(this: Camera, value) {\n value.num[0] = this.ssrIterations;\n },\n set(this: Camera, value) {\n this.ssrIterations = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSR;\n }\n },\n {\n name: 'SSRThickness',\n type: 'float',\n phase: 1,\n default: 0.5,\n options: {\n label: 'Thickness',\n group: 'PostProcessing/SSR',\n minValue: 0,\n maxValue: 8\n },\n get(this: Camera, value) {\n value.num[0] = this.ssrThickness;\n },\n set(this: Camera, value) {\n this.ssrThickness = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSR;\n }\n },\n {\n name: 'SSRBlurScale',\n phase: 1,\n type: 'float',\n default: 0.01,\n options: {\n label: 'BlurScale',\n group: 'PostProcessing/SSR',\n minValue: 0,\n maxValue: 1\n },\n get(this: Camera, value) {\n value.num[0] = this.ssrBlurScale;\n },\n set(this: Camera, value) {\n this.ssrBlurScale = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSR;\n }\n },\n {\n name: 'SSRBlurDepthCutoff',\n phase: 1,\n type: 'float',\n default: 2,\n options: {\n label: 'BlurDepthCutoff',\n group: 'PostProcessing/SSR',\n minValue: 0,\n maxValue: 8\n },\n get(this: Camera, value) {\n value.num[0] = this.ssrBlurDepthCutoff;\n },\n set(this: Camera, value) {\n this.ssrBlurDepthCutoff = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSR;\n }\n },\n {\n name: 'SSRBlurKernelSize',\n type: 'int',\n phase: 1,\n default: 10,\n options: {\n label: 'BlurKernelSize',\n group: 'PostProcessing/SSR',\n minValue: 1,\n maxValue: 65\n },\n get(this: Camera, value) {\n value.num[0] = this.ssrBlurKernelSize;\n },\n set(this: Camera, value) {\n this.ssrBlurKernelSize = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSR;\n }\n },\n {\n name: 'SSRBlurStdDev',\n type: 'float',\n phase: 1,\n default: 10,\n options: {\n label: 'BlurStdDev',\n group: 'PostProcessing/SSR',\n minValue: 0,\n maxValue: 100\n },\n get(this: Camera, value) {\n value.num[0] = this.ssrBlurStdDev;\n },\n set(this: Camera, value) {\n this.ssrBlurStdDev = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSR;\n }\n },\n {\n name: 'SSRCalcThickness',\n type: 'bool',\n phase: 1,\n default: false,\n options: {\n label: 'CalcThickness',\n group: 'PostProcessing/SSR'\n },\n get(this: Camera, value) {\n value.bool[0] = this.ssrCalcThickness;\n },\n set(this: Camera, value) {\n this.ssrCalcThickness = value.bool[0];\n },\n isValid(this: Camera) {\n return this.SSR;\n }\n },\n {\n name: 'SSRTemporal',\n type: 'bool',\n phase: 1,\n default: true,\n options: {\n label: 'Temporal',\n group: 'PostProcessing/SSR'\n },\n get(this: Camera, value) {\n value.bool[0] = this.ssrTemporal;\n },\n set(this: Camera, value) {\n this.ssrTemporal = value.bool[0];\n },\n isValid(this: Camera) {\n return this.SSR;\n }\n },\n {\n name: 'SSRTemporalWeight',\n type: 'float',\n phase: 1,\n default: 0.85,\n options: {\n label: 'TemporalWeight',\n group: 'PostProcessing/SSR',\n minValue: 0,\n maxValue: 1\n },\n get(this: Camera, value) {\n value.num[0] = this.ssrTemporalWeight;\n },\n set(this: Camera, value) {\n this.ssrTemporalWeight = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSR && this.ssrTemporal;\n }\n },\n {\n name: 'SSSEnabled',\n type: 'bool',\n phase: 0,\n default: false,\n options: {\n label: 'Enabled',\n group: 'PostProcessing/SSS'\n },\n get(this: Camera, value) {\n value.bool[0] = this.SSS;\n },\n set(this: Camera, value) {\n this.SSS = value.bool[0];\n }\n },\n {\n name: 'SSSQualityPreset',\n type: 'string',\n phase: 0,\n default: 'balanced',\n options: {\n label: 'QualityPreset',\n group: 'PostProcessing/SSS',\n enum: {\n labels: ['Quality', 'Balanced', 'Performance'],\n values: ['quality', 'balanced', 'performance']\n }\n },\n get(this: Camera, value) {\n value.str[0] = this.sssQualityPreset;\n },\n set(this: Camera, value) {\n this.sssQualityPreset = value.str[0] as SSSQualityPreset;\n },\n isValid(this: Camera) {\n return this.SSS;\n }\n },\n {\n name: 'SSSBlurScale',\n type: 'float',\n phase: 0,\n default: 11,\n options: {\n label: 'BlurScale',\n group: 'PostProcessing/SSS',\n minValue: 0,\n maxValue: 64\n },\n get(this: Camera, value) {\n value.num[0] = this.sssBlurScale;\n },\n set(this: Camera, value) {\n this.sssBlurScale = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSS;\n }\n },\n {\n name: 'SSSStrength',\n type: 'float',\n phase: 0,\n default: 0.65,\n options: {\n label: 'Strength',\n group: 'PostProcessing/SSS',\n minValue: 0,\n maxValue: 4\n },\n get(this: Camera, value) {\n value.num[0] = this.sssStrength;\n },\n set(this: Camera, value) {\n this.sssStrength = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSS;\n }\n },\n {\n name: 'SSSTransmissionStrength',\n type: 'float',\n phase: 0,\n default: 0.18,\n options: {\n label: 'Transmission',\n group: 'PostProcessing/SSS',\n minValue: 0,\n maxValue: 4\n },\n get(this: Camera, value) {\n value.num[0] = this.sssTransmissionStrength;\n },\n set(this: Camera, value) {\n this.sssTransmissionStrength = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSS;\n }\n },\n {\n name: 'SSSTransmissionPower',\n type: 'float',\n phase: 0,\n default: 2.1,\n options: {\n label: 'TransmissionPower',\n group: 'PostProcessing/SSS',\n minValue: 0.1,\n maxValue: 8\n },\n get(this: Camera, value) {\n value.num[0] = this.sssTransmissionPower;\n },\n set(this: Camera, value) {\n this.sssTransmissionPower = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSS;\n }\n },\n {\n name: 'SSSMultiScatter',\n type: 'float',\n phase: 0,\n default: 0.08,\n options: {\n label: 'MultiScatter',\n group: 'PostProcessing/SSS',\n minValue: 0,\n maxValue: 2\n },\n get(this: Camera, value) {\n value.num[0] = this.sssMultiScatter;\n },\n set(this: Camera, value) {\n this.sssMultiScatter = value.num[0];\n },\n isValid(this: Camera) {\n return this.SSS;\n }\n },\n {\n name: 'SSSDebugView',\n type: 'string',\n phase: 0,\n default: 'none',\n options: {\n label: 'DebugView',\n group: 'PostProcessing/SSS',\n enum: {\n labels: [\n 'None',\n 'ScatterMask',\n 'ScatterSoftness',\n 'ScatterRadius',\n 'ScatterFalloff',\n 'ProfileEnergy',\n 'ProfileTransmission',\n 'ProfileBoundary',\n 'Diffuse',\n 'Blur',\n 'ScreenThinness',\n 'ThinTransmissionMask',\n 'ThinLighting',\n 'TransmissionShadow'\n ],\n values: [\n 'none',\n 'scatter_mask',\n 'scatter_softness',\n 'scatter_radius',\n 'scatter_falloff',\n 'profile_energy',\n 'profile_transmission',\n 'profile_boundary',\n 'diffuse',\n 'blur',\n 'screen_thinness',\n 'thin_transmission_mask',\n 'thin_lighting',\n 'transmission_shadow'\n ]\n }\n },\n get(this: Camera, value) {\n value.str[0] = this.sssDebugView;\n },\n set(this: Camera, value) {\n this.sssDebugView = value.str[0] as SSSDebugView;\n },\n isValid(this: Camera) {\n return this.SSS;\n }\n },\n {\n name: 'SSAOEnabled',\n type: 'bool',\n phase: 0,\n default: false,\n options: {\n label: 'Enabled',\n group: 'PostProcessing/SSAO'\n },\n get(this: Camera, value) {\n value.bool[0] = this.SSAO;\n },\n set(this: Camera, value) {\n this.SSAO = value.bool[0];\n }\n },\n {\n name: 'SSAOScale',\n type: 'float',\n phase: 0,\n default: 10,\n options: {\n label: 'Scale',\n group: 'PostProcessing/SSAO'\n },\n get(this: Camera, value) {\n value.num[0] = this.SSAOScale;\n },\n set(this: Camera, value) {\n this.SSAOScale = value.num[0];\n }\n },\n {\n name: 'SSAOBias',\n type: 'float',\n phase: 0,\n default: 1,\n options: {\n label: 'Bias',\n group: 'PostProcessing/SSAO'\n },\n get(this: Camera, value) {\n value.num[0] = this.SSAOBias;\n },\n set(this: Camera, value) {\n this.SSAOBias = value.num[0];\n }\n },\n {\n name: 'SSAORadius',\n type: 'float',\n phase: 0,\n default: 100,\n options: {\n label: 'Radius',\n group: 'PostProcessing/SSAO'\n },\n get(this: Camera, value) {\n value.num[0] = this.SSAORadius;\n },\n set(this: Camera, value) {\n this.SSAORadius = value.num[0];\n }\n },\n {\n name: 'SSAOIntensity',\n type: 'float',\n phase: 0,\n default: 2.5,\n options: {\n label: 'Intensity',\n group: 'PostProcessing/SSAO'\n },\n get(this: Camera, value) {\n value.num[0] = this.SSAOIntensity * 100;\n },\n set(this: Camera, value) {\n this.SSAOIntensity = value.num[0] * 0.01;\n }\n }\n ]);\n }\n };\n}\n\n/** @internal */\nexport function getPerspectiveCameraClass(): SerializableClass {\n return {\n ctor: PerspectiveCamera,\n parent: Camera,\n name: 'PerspectiveCamera',\n createFunc(ctx: SceneNode) {\n const node = new PerspectiveCamera(ctx.scene);\n node.parent = ctx;\n return { obj: node };\n },\n getProps() {\n return defineProps([\n {\n name: 'FovVertical',\n type: 'float',\n default: Math.PI / 3,\n options: {\n minValue: 0,\n maxValue: Math.PI\n },\n get(this: PerspectiveCamera, value) {\n value.num[0] = this.fovY;\n },\n set(this: PerspectiveCamera, value) {\n this.fovY = value.num[0];\n }\n },\n {\n name: 'Near',\n type: 'float',\n default: 1,\n get(this: PerspectiveCamera, value) {\n value.num[0] = this.near;\n },\n set(this: PerspectiveCamera, value) {\n this.near = value.num[0];\n }\n },\n {\n name: 'Far',\n type: 'float',\n default: 1000,\n get(this: PerspectiveCamera, value) {\n value.num[0] = this.far;\n },\n set(this: PerspectiveCamera, value) {\n this.far = value.num[0];\n }\n },\n {\n name: 'AutoAspect',\n type: 'bool',\n default: true,\n get(this: PerspectiveCamera, value) {\n value.bool[0] = this.autoAspect;\n },\n set(this: PerspectiveCamera, value) {\n this.autoAspect = value.bool[0];\n }\n }\n ]);\n }\n };\n}\n\n/** @internal */\nexport function getOrthoCameraClass(): SerializableClass {\n return {\n ctor: OrthoCamera,\n parent: Camera,\n name: 'OrthoCamera',\n createFunc(ctx: SceneNode) {\n const node = new OrthoCamera(ctx.scene!);\n node.parent = ctx;\n return { obj: node };\n },\n getProps() {\n return defineProps([\n {\n name: 'Left',\n type: 'float',\n default: -1,\n get(this: OrthoCamera, value) {\n value.num[0] = this.left;\n },\n set(this: OrthoCamera, value) {\n this.left = value.num[0];\n }\n },\n {\n name: 'Right',\n type: 'float',\n default: 1,\n get(this: OrthoCamera, value) {\n value.num[0] = this.right;\n },\n set(this: OrthoCamera, value) {\n this.right = value.num[0];\n }\n },\n {\n name: 'Bottom',\n type: 'float',\n default: -1,\n get(this: OrthoCamera, value) {\n value.num[0] = this.bottom;\n },\n set(this: OrthoCamera, value) {\n this.bottom = value.num[0];\n }\n },\n {\n name: 'Top',\n type: 'float',\n default: 1,\n get(this: OrthoCamera, value) {\n value.num[0] = this.top;\n },\n set(this: OrthoCamera, value) {\n this.top = value.num[0];\n }\n },\n {\n name: 'Near',\n type: 'float',\n default: -1,\n get(this: OrthoCamera, value) {\n value.num[0] = this.near;\n },\n set(this: OrthoCamera, value) {\n this.near = value.num[0];\n }\n },\n {\n name: 'Far',\n type: 'float',\n default: 1,\n get(this: OrthoCamera, value) {\n value.num[0] = this.far;\n },\n set(this: OrthoCamera, value) {\n this.far = value.num[0];\n }\n }\n ]);\n }\n };\n}\n"],"names":["getCameraClass","ctor","Camera","name","parent","SceneNode","createFunc","ctx","node","scene","obj","getProps","defineProps","type","default","get","value","bool","adapted","set","options","minValue","isHidden","num","screenConfig","designWidth","designHeight","enum","labels","values","str","scaleMode","HDR","HiZ","label","group","oitMode","oitABufferLayers","isValid","phase","toneMap","maxValue","toneMapExposure","colorAdjust","animatable","colorAdjustSaturation","colorAdjustContrast","colorAdjustHue","colorAdjustSharpen","bloom","bloomMaxDownsampleLevels","bloomDownsampleLimit","bloomThreshold","bloomThresholdKnee","bloomIntensity","FXAA","TAA","TAA_DEBUG_NONE","TAA_DEBUG_CURRENT_COLOR","TAA_DEBUG_HISTORY_COLOR","TAA_DEBUG_VELOCITY","TAA_DEBUG_EDGE","TAA_DEBUG_ALAPH","TAA_DEBUG_MOTION_VECTOR","TAA_DEBUG_STRENGTH","TAADebug","motionBlur","motionBlurStrength","SSR","ssrMaxRoughness","ssrRoughnessFactor","ssrStride","ssrMaxDistance","ssrIterations","ssrThickness","ssrBlurScale","ssrBlurDepthCutoff","ssrBlurKernelSize","ssrBlurStdDev","ssrCalcThickness","ssrTemporal","ssrTemporalWeight","SSS","sssQualityPreset","sssBlurScale","sssStrength","sssTransmissionStrength","sssTransmissionPower","sssMultiScatter","sssDebugView","SSAO","SSAOScale","SSAOBias","SSAORadius","SSAOIntensity","getPerspectiveCameraClass","PerspectiveCamera","Math","PI","fovY","near","far","autoAspect","getOrthoCameraClass","OrthoCamera","left","right","bottom","top"],"mappings":"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"}
1
+ {"version":3,"file":"camera.js","sources":["../../../../src/utility/serialization/scene/camera.ts"],"sourcesContent":["import { defineProps, type SerializableClass } from '../types';\r\nimport { Camera, OrthoCamera, PerspectiveCamera } from '../../../camera';\r\nimport type { CameraOITMode, SSSDebugView, SSSQualityPreset } from '../../../camera';\r\nimport { SceneNode } from '../../../scene';\r\nimport {\r\n TAA_DEBUG_ALAPH,\r\n TAA_DEBUG_CURRENT_COLOR,\r\n TAA_DEBUG_EDGE,\r\n TAA_DEBUG_HISTORY_COLOR,\r\n TAA_DEBUG_MOTION_VECTOR,\r\n TAA_DEBUG_NONE,\r\n TAA_DEBUG_STRENGTH,\r\n TAA_DEBUG_VELOCITY\r\n} from '../../../shaders';\r\n\r\n/** @internal */\r\nexport function getCameraClass(): SerializableClass {\r\n return {\r\n ctor: Camera,\r\n name: 'Camera',\r\n parent: SceneNode,\r\n createFunc(ctx: SceneNode) {\r\n const node = new Camera(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: 'UseScreenSettings',\r\n type: 'bool',\r\n default: false,\r\n get(this: Camera, value) {\r\n value.bool[0] = this.adapted;\r\n },\r\n set(this: Camera, value) {\r\n this.adapted = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'DesignWidth',\r\n type: 'int',\r\n options: { minValue: 1 },\r\n default: 1280,\r\n isHidden(this: Camera) {\r\n return !this.adapted;\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.screenConfig.designWidth;\r\n },\r\n set(this: Camera, value) {\r\n this.screenConfig = { ...this.screenConfig, designWidth: value.num[0] };\r\n }\r\n },\r\n {\r\n name: 'DesignHeight',\r\n type: 'int',\r\n options: { minValue: 1 },\r\n default: 720,\r\n isHidden(this: Camera) {\r\n return !this.adapted;\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.screenConfig.designHeight;\r\n },\r\n set(this: Camera, value) {\r\n this.screenConfig = { ...this.screenConfig, designHeight: value.num[0] };\r\n }\r\n },\r\n {\r\n name: 'ScreenScaleMode',\r\n type: 'string',\r\n default: 'cover',\r\n options: {\r\n enum: {\r\n labels: ['ShowAll', 'NoBorder', 'ExactFit', 'FixedWidth', 'FixedHeight'],\r\n values: ['fit', 'cover', 'stretch', 'fit-width', 'fit-height']\r\n }\r\n },\r\n isHidden(this: Camera) {\r\n return !this.adapted;\r\n },\r\n get(this: Camera, value) {\r\n value.str[0] = this.screenConfig.scaleMode;\r\n },\r\n set(this: Camera, value) {\r\n this.screenConfig = { ...this.screenConfig, scaleMode: value.str[0] as any };\r\n }\r\n },\r\n {\r\n name: 'HDR',\r\n type: 'bool',\r\n default: false,\r\n get(this: Camera, value) {\r\n value.bool[0] = this.HDR;\r\n },\r\n set(this: Camera, value) {\r\n this.HDR = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'HiZ',\r\n type: 'bool',\r\n default: false,\r\n get(this: Camera, value) {\r\n value.bool[0] = this.HiZ;\r\n },\r\n set(this: Camera, value) {\r\n this.HiZ = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'OITMode',\r\n type: 'string',\r\n default: 'none',\r\n options: {\r\n label: 'OIT',\r\n group: 'Rendering',\r\n enum: {\r\n labels: ['None', 'Weighted', 'ABuffer'],\r\n values: ['none', 'weighted', 'abuffer']\r\n }\r\n },\r\n get(this: Camera, value) {\r\n value.str[0] = this.oitMode;\r\n },\r\n set(this: Camera, value) {\r\n this.oitMode = value.str[0] as CameraOITMode;\r\n }\r\n },\r\n {\r\n name: 'ABufferLayers',\r\n type: 'int',\r\n default: 20,\r\n options: {\r\n label: 'ABuffer Layers',\r\n group: 'Rendering',\r\n minValue: 1\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.oitABufferLayers;\r\n },\r\n set(this: Camera, value) {\r\n this.oitABufferLayers = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.oitMode === 'abuffer';\r\n }\r\n },\r\n {\r\n name: 'ToneMapEnabled',\r\n type: 'bool',\r\n phase: 0,\r\n default: true,\r\n options: {\r\n label: 'Enabled',\r\n group: 'PostProcessing/ToneMap'\r\n },\r\n get(this: Camera, value) {\r\n value.bool[0] = this.toneMap;\r\n },\r\n set(this: Camera, value) {\r\n this.toneMap = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'ToneMapExposure',\r\n type: 'float',\r\n options: { minValue: 0, maxValue: 8, label: 'Exposure', group: 'PostProcessing/ToneMap' },\r\n phase: 0,\r\n default: 1,\r\n get(this: Camera, value) {\r\n value.num[0] = this.toneMapExposure;\r\n },\r\n set(this: Camera, value) {\r\n this.toneMapExposure = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ColorAdjustEnabled',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n options: {\r\n label: 'Enabled',\r\n group: 'PostProcessing/ColorAdjust'\r\n },\r\n get(this: Camera, value) {\r\n value.bool[0] = this.colorAdjust;\r\n },\r\n set(this: Camera, value) {\r\n this.colorAdjust = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'ColorAdjustSaturation',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n label: 'Saturation',\r\n group: 'PostProcessing/ColorAdjust',\r\n minValue: 0,\r\n maxValue: 2,\r\n animatable: true\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.colorAdjustSaturation;\r\n },\r\n set(this: Camera, value) {\r\n this.colorAdjustSaturation = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.colorAdjust;\r\n }\r\n },\r\n {\r\n name: 'ColorAdjustContrast',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n label: 'Contrast',\r\n group: 'PostProcessing/ColorAdjust',\r\n minValue: 0,\r\n maxValue: 2,\r\n animatable: true\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.colorAdjustContrast;\r\n },\r\n set(this: Camera, value) {\r\n this.colorAdjustContrast = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.colorAdjust;\r\n }\r\n },\r\n {\r\n name: 'ColorAdjustHue',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n label: 'Hue',\r\n group: 'PostProcessing/ColorAdjust',\r\n minValue: -1,\r\n maxValue: 1,\r\n animatable: true\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.colorAdjustHue / 180;\r\n },\r\n set(this: Camera, value) {\r\n this.colorAdjustHue = value.num[0] * 180;\r\n },\r\n isValid(this: Camera) {\r\n return this.colorAdjust;\r\n }\r\n },\r\n {\r\n name: 'Sharpen',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n label: 'Sharpen',\r\n group: 'PostProcessing/ColorAdjust',\r\n minValue: 0,\r\n maxValue: 2,\r\n animatable: true\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.colorAdjustSharpen;\r\n },\r\n set(this: Camera, value) {\r\n this.colorAdjustSharpen = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.colorAdjust;\r\n }\r\n },\r\n {\r\n name: 'BloomEnabled',\r\n type: 'bool',\r\n phase: 0,\r\n default: true,\r\n options: {\r\n label: 'Enabled',\r\n group: 'PostProcessing/Bloom'\r\n },\r\n get(this: Camera, value) {\r\n value.bool[0] = this.bloom;\r\n },\r\n set(this: Camera, value) {\r\n this.bloom = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'BloomMaxDownsampleLevels',\r\n type: 'int',\r\n options: { minValue: 0, maxValue: 8, label: 'MaxDownsampleLevels', group: 'PostProcessing/Bloom' },\r\n phase: 0,\r\n default: 4,\r\n get(this: Camera, value) {\r\n value.num[0] = this.bloomMaxDownsampleLevels;\r\n },\r\n set(this: Camera, value) {\r\n this.bloomMaxDownsampleLevels = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'BloomDownsampleLimit',\r\n type: 'int',\r\n options: { minValue: 2, maxValue: 64, label: 'DownsampleLimit', group: 'PostProcessing/Bloom' },\r\n phase: 0,\r\n default: 32,\r\n get(this: Camera, value) {\r\n value.num[0] = this.bloomDownsampleLimit;\r\n },\r\n set(this: Camera, value) {\r\n this.bloomDownsampleLimit = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'BloomThreshold',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n label: 'Threshold',\r\n group: 'PostProcessing/Bloom'\r\n },\r\n phase: 0,\r\n default: 0.8,\r\n get(this: Camera, value) {\r\n value.num[0] = this.bloomThreshold;\r\n },\r\n set(this: Camera, value) {\r\n this.bloomThreshold = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'BloomThresholdKnee',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n label: 'ThresholdKnee',\r\n group: 'PostProcessing/Bloom'\r\n },\r\n phase: 0,\r\n default: 0,\r\n get(this: Camera, value) {\r\n value.num[0] = this.bloomThresholdKnee;\r\n },\r\n set(this: Camera, value) {\r\n this.bloomThresholdKnee = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'BloomIntensity',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8,\r\n label: 'Intensity',\r\n group: 'PostProcessing/Bloom'\r\n },\r\n phase: 0,\r\n default: 1,\r\n get(this: Camera, value) {\r\n value.num[0] = this.bloomIntensity;\r\n },\r\n set(this: Camera, value) {\r\n this.bloomIntensity = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'FXAAEnabled',\r\n type: 'bool',\r\n phase: 0,\r\n default: true,\r\n options: {\r\n label: 'Enabled',\r\n group: 'PostProcessing/FXAA'\r\n },\r\n get(this: Camera, value) {\r\n value.bool[0] = this.FXAA;\r\n },\r\n set(this: Camera, value) {\r\n this.FXAA = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'TAAEnabled',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n options: {\r\n label: 'Enabled',\r\n group: 'PostProcessing/TAA'\r\n },\r\n get(this: Camera, value) {\r\n value.bool[0] = this.TAA;\r\n },\r\n set(this: Camera, value) {\r\n this.TAA = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'TAADebug',\r\n type: 'int',\r\n phase: 1,\r\n options: {\r\n label: 'Debug',\r\n group: 'PostProcessing/TAA',\r\n enum: {\r\n labels: [\r\n 'None',\r\n 'Current Color',\r\n 'History Color',\r\n 'Velocity',\r\n 'Edge',\r\n 'Alpha',\r\n 'Motion Vector',\r\n 'Strength'\r\n ],\r\n values: [\r\n TAA_DEBUG_NONE,\r\n TAA_DEBUG_CURRENT_COLOR,\r\n TAA_DEBUG_HISTORY_COLOR,\r\n TAA_DEBUG_VELOCITY,\r\n TAA_DEBUG_EDGE,\r\n TAA_DEBUG_ALAPH,\r\n TAA_DEBUG_MOTION_VECTOR,\r\n TAA_DEBUG_STRENGTH\r\n ]\r\n }\r\n },\r\n default: TAA_DEBUG_NONE,\r\n get(this: Camera, value) {\r\n value.num[0] = this.TAADebug;\r\n },\r\n set(this: Camera, value) {\r\n this.TAADebug = value.num[0];\r\n },\r\n isValid() {\r\n return !!this.TAA;\r\n }\r\n },\r\n {\r\n name: 'MotionBlurEnabled',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n options: {\r\n label: 'Enabled',\r\n group: 'PostProcessing/MotionBlur'\r\n },\r\n get(this: Camera, value) {\r\n value.bool[0] = this.motionBlur;\r\n },\r\n set(this: Camera, value) {\r\n this.motionBlur = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'MotionBlurStrength',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n label: 'Strength',\r\n group: 'PostProcessing/MotionBlur',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 10\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.motionBlurStrength;\r\n },\r\n set(this: Camera, value) {\r\n this.motionBlurStrength = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.motionBlur;\r\n }\r\n },\r\n {\r\n name: 'SSREnabled',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n options: {\r\n label: 'Enabled',\r\n group: 'PostProcessing/SSR'\r\n },\r\n get(this: Camera, value) {\r\n value.bool[0] = this.SSR;\r\n },\r\n set(this: Camera, value) {\r\n this.SSR = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'SSRMaxRoughness',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.8,\r\n options: {\r\n label: 'RoughnessThreshold',\r\n group: 'PostProcessing/SSR',\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.ssrMaxRoughness;\r\n },\r\n set(this: Camera, value) {\r\n this.ssrMaxRoughness = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSR;\r\n }\r\n },\r\n {\r\n name: 'SSRRoughnessFactor',\r\n type: 'float',\r\n phase: 1,\r\n default: 1.0,\r\n options: {\r\n label: 'RoughnessFactor',\r\n group: 'PostProcessing/SSR',\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.ssrRoughnessFactor;\r\n },\r\n set(this: Camera, value) {\r\n this.ssrRoughnessFactor = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSR;\r\n }\r\n },\r\n {\r\n name: 'SSRStride',\r\n type: 'int',\r\n phase: 1,\r\n default: 2,\r\n options: {\r\n label: 'Stride',\r\n group: 'PostProcessing/SSR',\r\n minValue: 1,\r\n maxValue: 32\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.ssrStride;\r\n },\r\n set(this: Camera, value) {\r\n this.ssrStride = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSR && !this.HiZ;\r\n }\r\n },\r\n {\r\n name: 'SSRMaxDistance',\r\n type: 'float',\r\n phase: 1,\r\n default: 100,\r\n options: {\r\n label: 'MaxDistance',\r\n group: 'PostProcessing/SSR',\r\n minValue: 0,\r\n maxValue: 9999\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.ssrMaxDistance;\r\n },\r\n set(this: Camera, value) {\r\n this.ssrMaxDistance = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSR;\r\n }\r\n },\r\n {\r\n name: 'SSRMaxSteps',\r\n type: 'int',\r\n phase: 1,\r\n default: 120,\r\n options: {\r\n label: 'MaxSteps',\r\n group: 'PostProcessing/SSR',\r\n minValue: 1,\r\n maxValue: 2000\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.ssrIterations;\r\n },\r\n set(this: Camera, value) {\r\n this.ssrIterations = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSR;\r\n }\r\n },\r\n {\r\n name: 'SSRThickness',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.5,\r\n options: {\r\n label: 'Thickness',\r\n group: 'PostProcessing/SSR',\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.ssrThickness;\r\n },\r\n set(this: Camera, value) {\r\n this.ssrThickness = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSR;\r\n }\r\n },\r\n {\r\n name: 'SSRBlurScale',\r\n phase: 1,\r\n type: 'float',\r\n default: 0.01,\r\n options: {\r\n label: 'BlurScale',\r\n group: 'PostProcessing/SSR',\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.ssrBlurScale;\r\n },\r\n set(this: Camera, value) {\r\n this.ssrBlurScale = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSR;\r\n }\r\n },\r\n {\r\n name: 'SSRBlurDepthCutoff',\r\n phase: 1,\r\n type: 'float',\r\n default: 2,\r\n options: {\r\n label: 'BlurDepthCutoff',\r\n group: 'PostProcessing/SSR',\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.ssrBlurDepthCutoff;\r\n },\r\n set(this: Camera, value) {\r\n this.ssrBlurDepthCutoff = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSR;\r\n }\r\n },\r\n {\r\n name: 'SSRBlurKernelSize',\r\n type: 'int',\r\n phase: 1,\r\n default: 10,\r\n options: {\r\n label: 'BlurKernelSize',\r\n group: 'PostProcessing/SSR',\r\n minValue: 1,\r\n maxValue: 65\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.ssrBlurKernelSize;\r\n },\r\n set(this: Camera, value) {\r\n this.ssrBlurKernelSize = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSR;\r\n }\r\n },\r\n {\r\n name: 'SSRBlurStdDev',\r\n type: 'float',\r\n phase: 1,\r\n default: 10,\r\n options: {\r\n label: 'BlurStdDev',\r\n group: 'PostProcessing/SSR',\r\n minValue: 0,\r\n maxValue: 100\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.ssrBlurStdDev;\r\n },\r\n set(this: Camera, value) {\r\n this.ssrBlurStdDev = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSR;\r\n }\r\n },\r\n {\r\n name: 'SSRCalcThickness',\r\n type: 'bool',\r\n phase: 1,\r\n default: false,\r\n options: {\r\n label: 'CalcThickness',\r\n group: 'PostProcessing/SSR'\r\n },\r\n get(this: Camera, value) {\r\n value.bool[0] = this.ssrCalcThickness;\r\n },\r\n set(this: Camera, value) {\r\n this.ssrCalcThickness = value.bool[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSR;\r\n }\r\n },\r\n {\r\n name: 'SSRTemporal',\r\n type: 'bool',\r\n phase: 1,\r\n default: true,\r\n options: {\r\n label: 'Temporal',\r\n group: 'PostProcessing/SSR'\r\n },\r\n get(this: Camera, value) {\r\n value.bool[0] = this.ssrTemporal;\r\n },\r\n set(this: Camera, value) {\r\n this.ssrTemporal = value.bool[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSR;\r\n }\r\n },\r\n {\r\n name: 'SSRTemporalWeight',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.85,\r\n options: {\r\n label: 'TemporalWeight',\r\n group: 'PostProcessing/SSR',\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.ssrTemporalWeight;\r\n },\r\n set(this: Camera, value) {\r\n this.ssrTemporalWeight = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSR && this.ssrTemporal;\r\n }\r\n },\r\n {\r\n name: 'SSSEnabled',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n options: {\r\n label: 'Enabled',\r\n group: 'PostProcessing/SSS'\r\n },\r\n get(this: Camera, value) {\r\n value.bool[0] = this.SSS;\r\n },\r\n set(this: Camera, value) {\r\n this.SSS = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'SSSQualityPreset',\r\n type: 'string',\r\n phase: 0,\r\n default: 'balanced',\r\n options: {\r\n label: 'QualityPreset',\r\n group: 'PostProcessing/SSS',\r\n enum: {\r\n labels: ['Quality', 'Balanced', 'Performance'],\r\n values: ['quality', 'balanced', 'performance']\r\n }\r\n },\r\n get(this: Camera, value) {\r\n value.str[0] = this.sssQualityPreset;\r\n },\r\n set(this: Camera, value) {\r\n this.sssQualityPreset = value.str[0] as SSSQualityPreset;\r\n },\r\n isValid(this: Camera) {\r\n return this.SSS;\r\n }\r\n },\r\n {\r\n name: 'SSSBlurScale',\r\n type: 'float',\r\n phase: 0,\r\n default: 11,\r\n options: {\r\n label: 'BlurScale',\r\n group: 'PostProcessing/SSS',\r\n minValue: 0,\r\n maxValue: 64\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.sssBlurScale;\r\n },\r\n set(this: Camera, value) {\r\n this.sssBlurScale = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSS;\r\n }\r\n },\r\n {\r\n name: 'SSSStrength',\r\n type: 'float',\r\n phase: 0,\r\n default: 0.65,\r\n options: {\r\n label: 'Strength',\r\n group: 'PostProcessing/SSS',\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.sssStrength;\r\n },\r\n set(this: Camera, value) {\r\n this.sssStrength = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSS;\r\n }\r\n },\r\n {\r\n name: 'SSSTransmissionStrength',\r\n type: 'float',\r\n phase: 0,\r\n default: 0.18,\r\n options: {\r\n label: 'Transmission',\r\n group: 'PostProcessing/SSS',\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.sssTransmissionStrength;\r\n },\r\n set(this: Camera, value) {\r\n this.sssTransmissionStrength = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSS;\r\n }\r\n },\r\n {\r\n name: 'SSSTransmissionPower',\r\n type: 'float',\r\n phase: 0,\r\n default: 2.1,\r\n options: {\r\n label: 'TransmissionPower',\r\n group: 'PostProcessing/SSS',\r\n minValue: 0.1,\r\n maxValue: 8\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.sssTransmissionPower;\r\n },\r\n set(this: Camera, value) {\r\n this.sssTransmissionPower = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSS;\r\n }\r\n },\r\n {\r\n name: 'SSSMultiScatter',\r\n type: 'float',\r\n phase: 0,\r\n default: 0.08,\r\n options: {\r\n label: 'MultiScatter',\r\n group: 'PostProcessing/SSS',\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.sssMultiScatter;\r\n },\r\n set(this: Camera, value) {\r\n this.sssMultiScatter = value.num[0];\r\n },\r\n isValid(this: Camera) {\r\n return this.SSS;\r\n }\r\n },\r\n {\r\n name: 'SSSDebugView',\r\n type: 'string',\r\n phase: 0,\r\n default: 'none',\r\n options: {\r\n label: 'DebugView',\r\n group: 'PostProcessing/SSS',\r\n enum: {\r\n labels: [\r\n 'None',\r\n 'ScatterMask',\r\n 'ScatterSoftness',\r\n 'ScatterRadius',\r\n 'ScatterFalloff',\r\n 'ProfileEnergy',\r\n 'ProfileTransmission',\r\n 'ProfileBoundary',\r\n 'Diffuse',\r\n 'Blur',\r\n 'ScreenThinness',\r\n 'ThinTransmissionMask',\r\n 'ThinLighting',\r\n 'TransmissionShadow'\r\n ],\r\n values: [\r\n 'none',\r\n 'scatter_mask',\r\n 'scatter_softness',\r\n 'scatter_radius',\r\n 'scatter_falloff',\r\n 'profile_energy',\r\n 'profile_transmission',\r\n 'profile_boundary',\r\n 'diffuse',\r\n 'blur',\r\n 'screen_thinness',\r\n 'thin_transmission_mask',\r\n 'thin_lighting',\r\n 'transmission_shadow'\r\n ]\r\n }\r\n },\r\n get(this: Camera, value) {\r\n value.str[0] = this.sssDebugView;\r\n },\r\n set(this: Camera, value) {\r\n this.sssDebugView = value.str[0] as SSSDebugView;\r\n },\r\n isValid(this: Camera) {\r\n return this.SSS;\r\n }\r\n },\r\n {\r\n name: 'SSAOEnabled',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n options: {\r\n label: 'Enabled',\r\n group: 'PostProcessing/SSAO'\r\n },\r\n get(this: Camera, value) {\r\n value.bool[0] = this.SSAO;\r\n },\r\n set(this: Camera, value) {\r\n this.SSAO = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'SSAOScale',\r\n type: 'float',\r\n phase: 0,\r\n default: 10,\r\n options: {\r\n label: 'Scale',\r\n group: 'PostProcessing/SSAO'\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.SSAOScale;\r\n },\r\n set(this: Camera, value) {\r\n this.SSAOScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'SSAOBias',\r\n type: 'float',\r\n phase: 0,\r\n default: 1,\r\n options: {\r\n label: 'Bias',\r\n group: 'PostProcessing/SSAO'\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.SSAOBias;\r\n },\r\n set(this: Camera, value) {\r\n this.SSAOBias = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'SSAORadius',\r\n type: 'float',\r\n phase: 0,\r\n default: 100,\r\n options: {\r\n label: 'Radius',\r\n group: 'PostProcessing/SSAO'\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.SSAORadius;\r\n },\r\n set(this: Camera, value) {\r\n this.SSAORadius = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'SSAOIntensity',\r\n type: 'float',\r\n phase: 0,\r\n default: 2.5,\r\n options: {\r\n label: 'Intensity',\r\n group: 'PostProcessing/SSAO'\r\n },\r\n get(this: Camera, value) {\r\n value.num[0] = this.SSAOIntensity * 100;\r\n },\r\n set(this: Camera, value) {\r\n this.SSAOIntensity = value.num[0] * 0.01;\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getPerspectiveCameraClass(): SerializableClass {\r\n return {\r\n ctor: PerspectiveCamera,\r\n parent: Camera,\r\n name: 'PerspectiveCamera',\r\n createFunc(ctx: SceneNode) {\r\n const node = new PerspectiveCamera(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: 'FovVertical',\r\n type: 'float',\r\n default: Math.PI / 3,\r\n options: {\r\n minValue: 0,\r\n maxValue: Math.PI\r\n },\r\n get(this: PerspectiveCamera, value) {\r\n value.num[0] = this.fovY;\r\n },\r\n set(this: PerspectiveCamera, value) {\r\n this.fovY = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Near',\r\n type: 'float',\r\n default: 1,\r\n get(this: PerspectiveCamera, value) {\r\n value.num[0] = this.near;\r\n },\r\n set(this: PerspectiveCamera, value) {\r\n this.near = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Far',\r\n type: 'float',\r\n default: 1000,\r\n get(this: PerspectiveCamera, value) {\r\n value.num[0] = this.far;\r\n },\r\n set(this: PerspectiveCamera, value) {\r\n this.far = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'AutoAspect',\r\n type: 'bool',\r\n default: true,\r\n get(this: PerspectiveCamera, value) {\r\n value.bool[0] = this.autoAspect;\r\n },\r\n set(this: PerspectiveCamera, value) {\r\n this.autoAspect = value.bool[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getOrthoCameraClass(): SerializableClass {\r\n return {\r\n ctor: OrthoCamera,\r\n parent: Camera,\r\n name: 'OrthoCamera',\r\n createFunc(ctx: SceneNode) {\r\n const node = new OrthoCamera(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: 'Left',\r\n type: 'float',\r\n default: -1,\r\n get(this: OrthoCamera, value) {\r\n value.num[0] = this.left;\r\n },\r\n set(this: OrthoCamera, value) {\r\n this.left = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Right',\r\n type: 'float',\r\n default: 1,\r\n get(this: OrthoCamera, value) {\r\n value.num[0] = this.right;\r\n },\r\n set(this: OrthoCamera, value) {\r\n this.right = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Bottom',\r\n type: 'float',\r\n default: -1,\r\n get(this: OrthoCamera, value) {\r\n value.num[0] = this.bottom;\r\n },\r\n set(this: OrthoCamera, value) {\r\n this.bottom = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Top',\r\n type: 'float',\r\n default: 1,\r\n get(this: OrthoCamera, value) {\r\n value.num[0] = this.top;\r\n },\r\n set(this: OrthoCamera, value) {\r\n this.top = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Near',\r\n type: 'float',\r\n default: -1,\r\n get(this: OrthoCamera, value) {\r\n value.num[0] = this.near;\r\n },\r\n set(this: OrthoCamera, value) {\r\n this.near = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Far',\r\n type: 'float',\r\n default: 1,\r\n get(this: OrthoCamera, value) {\r\n value.num[0] = this.far;\r\n },\r\n set(this: OrthoCamera, value) {\r\n this.far = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getCameraClass","ctor","Camera","name","parent","SceneNode","createFunc","ctx","node","scene","obj","getProps","defineProps","type","default","get","value","bool","adapted","set","options","minValue","isHidden","num","screenConfig","designWidth","designHeight","enum","labels","values","str","scaleMode","HDR","HiZ","label","group","oitMode","oitABufferLayers","isValid","phase","toneMap","maxValue","toneMapExposure","colorAdjust","animatable","colorAdjustSaturation","colorAdjustContrast","colorAdjustHue","colorAdjustSharpen","bloom","bloomMaxDownsampleLevels","bloomDownsampleLimit","bloomThreshold","bloomThresholdKnee","bloomIntensity","FXAA","TAA","TAA_DEBUG_NONE","TAA_DEBUG_CURRENT_COLOR","TAA_DEBUG_HISTORY_COLOR","TAA_DEBUG_VELOCITY","TAA_DEBUG_EDGE","TAA_DEBUG_ALAPH","TAA_DEBUG_MOTION_VECTOR","TAA_DEBUG_STRENGTH","TAADebug","motionBlur","motionBlurStrength","SSR","ssrMaxRoughness","ssrRoughnessFactor","ssrStride","ssrMaxDistance","ssrIterations","ssrThickness","ssrBlurScale","ssrBlurDepthCutoff","ssrBlurKernelSize","ssrBlurStdDev","ssrCalcThickness","ssrTemporal","ssrTemporalWeight","SSS","sssQualityPreset","sssBlurScale","sssStrength","sssTransmissionStrength","sssTransmissionPower","sssMultiScatter","sssDebugView","SSAO","SSAOScale","SSAOBias","SSAORadius","SSAOIntensity","getPerspectiveCameraClass","PerspectiveCamera","Math","PI","fovY","near","far","autoAspect","getOrthoCameraClass","OrthoCamera","left","right","bottom","top"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mesh.js","sources":["../../../../src/utility/serialization/scene/mesh.ts"],"sourcesContent":["import { base64ToUint8Array, uint8ArrayToBase64, Vector3, mimeTypeOf } from '@zephyr3d/base';\nimport { getEngine } from '../../../app/api';\nimport type { MeshMaterial } from '../../../material/meshmaterial';\nimport { GraphNode, Mesh, type SceneNode } from '../../../scene';\nimport { defineProps, type SerializableClass } from '../types';\nimport { BoundingBox } from '../../bounding_volume';\nimport { meshInstanceClsMap } from './common';\nimport { JSONData } from '../json';\n\nfunction serializeBoundingBox(box: BoundingBox): number[] {\n return [...box.minPoint, ...box.maxPoint];\n}\n\nfunction deserializeBoundingBox(data: unknown): BoundingBox | null {\n if (!Array.isArray(data) || data.length < 6 || !data.every((v) => typeof v === 'number')) {\n return null;\n }\n return new BoundingBox(new Vector3(data.slice(0, 3)), new Vector3(data.slice(3, 6)));\n}\n\n/** @internal */\nexport function getMeshClass(): SerializableClass {\n return {\n ctor: Mesh,\n name: 'Mesh',\n parent: GraphNode,\n noTitle: true,\n createFunc(ctx: SceneNode) {\n const node = new Mesh(ctx.scene!);\n node.parent = ctx;\n return { obj: node };\n },\n getProps() {\n return defineProps([\n {\n name: 'CastShadow',\n description: 'If true, the mesh can cast shadows',\n type: 'bool',\n default: false,\n get(this: Mesh, value) {\n value.bool[0] = this.castShadow;\n },\n set(this: Mesh, value) {\n this.castShadow = value.bool[0];\n }\n },\n {\n name: 'SkinnedBoundingInfo',\n description: 'Serialized skinned bounding data for the mesh',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: Mesh, value) {\n if (this.skinnedBoundingInfo) {\n const arr = new Float32Array(24 + 24 + 6 * 3);\n arr.set(this.skinnedBoundingInfo.boundingVertexBlendIndices, 0);\n arr.set(this.skinnedBoundingInfo.boundingVertexJointWeights, 24);\n for (let i = 0; i < 6; i++) {\n arr.set(this.skinnedBoundingInfo.boundingVertices[i], 24 + 24 + i * 3);\n }\n value.str[0] = uint8ArrayToBase64(new Uint8Array(arr.buffer));\n } else {\n value.str[0] = '';\n }\n },\n set(this: Mesh, value) {\n if (value.str[0]) {\n const buf = new Float32Array(base64ToUint8Array(value.str[0]).buffer);\n const boundingVertexBlendIndices = buf.subarray(0, 24);\n const boundingVertexJointWeights = buf.subarray(24, 48);\n const boundingVertices: Vector3[] = [];\n for (let i = 0; i < 6; i++) {\n boundingVertices.push(new Vector3(buf.subarray(48 + i * 3, 48 + (i + 1) * 3)));\n }\n this.setSkinnedBoundingInfo({\n boundingVertexBlendIndices,\n boundingVertexJointWeights,\n boundingVertices,\n boundingBox: new BoundingBox()\n });\n } else {\n this.setSkinnedBoundingInfo(null);\n }\n }\n },\n {\n name: 'SkinBinding',\n description: 'Persistent ID of the skin binding bound to this mesh',\n type: 'string',\n isHidden() {\n return false;\n },\n get(this: Mesh, value) {\n value.str[0] = this.skinBindingName;\n },\n set(this: Mesh, value) {\n this.skinBindingName = value.str[0];\n }\n },\n {\n name: 'Skeleton',\n description: 'Legacy persistent ID of the skin binding bound to this mesh',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: Mesh, value) {\n value.str[0] = '';\n },\n set(this: Mesh, value) {\n if (value.str[0]) {\n this.skeletonName = value.str[0];\n }\n }\n },\n {\n name: 'MorphData',\n description: 'Serialized morph-target vertex data',\n type: 'string',\n isHidden() {\n return true;\n },\n async get(this: Mesh, value) {\n const morphData = this.getMorphData();\n if (morphData) {\n const buffer = new ArrayBuffer(4 + 4 + 4 * 4 * morphData.width * morphData.height);\n const dataView = new DataView(buffer);\n dataView.setUint32(0, morphData.width, true);\n dataView.setUint32(4, morphData.height, true);\n new Float32Array(buffer, 8, 4 * morphData.width * morphData.height).set(morphData.data);\n value.str[0] = uint8ArrayToBase64(new Uint8Array(buffer));\n } else {\n value.str[0] = '';\n }\n },\n set(this: Mesh, value) {\n if (value.str[0]) {\n const data = base64ToUint8Array(value.str[0]);\n const dataView = new DataView(data.buffer);\n const width = dataView.getUint32(0, true);\n const height = dataView.getUint32(4, true);\n const pixels = new Float32Array(data.buffer, 8, 4 * width * height);\n this.setMorphData({ width, height, data: pixels });\n } else {\n this.setMorphData(null);\n }\n }\n },\n {\n name: 'MorphTargets',\n description: 'Named morph-target weights for this mesh',\n type: 'object',\n options: { objectTypes: [JSONData] },\n isPersistent() {\n return false;\n },\n isHidden(this: Mesh) {\n return !this.getMorphInfo();\n },\n get(this: Mesh, value) {\n const morphInfo = this.getMorphInfo()!;\n const numTargets = morphInfo.data[3];\n const data: Record<string, number> = {};\n for (let i = 0; i < numTargets; i++) {\n const name = Object.keys(morphInfo.names).find((key) => morphInfo.names![key] === i);\n if (name) {\n Object.defineProperty(data, name, {\n enumerable: true,\n configurable: true,\n get: () => this.getMorphWeight(name),\n set: (v) => this.setMorphWeight(name, v)\n });\n }\n }\n value.object[0] = new JSONData(null, data);\n }\n },\n {\n name: 'MorphInfo',\n description: 'Serialized morph-target layout and metadata',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: Mesh, value) {\n const morphInfo = this.getMorphInfo();\n if (morphInfo) {\n const data = new Uint8Array(\n morphInfo.data.buffer,\n morphInfo.data.byteOffset,\n morphInfo.data.byteLength\n );\n value.str[0] = JSON.stringify({ data: uint8ArrayToBase64(data), names: morphInfo.names });\n } else {\n value.str[0] = '';\n }\n },\n set(this: Mesh, value) {\n if (value.str[0]) {\n try {\n const info = JSON.parse(value.str[0]);\n const data = new Float32Array(base64ToUint8Array(info.data).buffer);\n const names = info.names;\n this.setMorphInfo({ data, names });\n } catch {\n const data = new Float32Array(base64ToUint8Array(value.str[0]).buffer);\n const names: Record<string, number> = {};\n for (let i = 0; i < data[3]; i++) {\n names[`Target${i}`] = i;\n }\n this.setMorphInfo({ data, names });\n }\n } else {\n this.setMorphInfo(null);\n }\n }\n },\n {\n name: 'MorphBoundingBox',\n description: 'Serialized bounding box for morphed geometry',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: Mesh, value) {\n value.str[0] = '';\n if (this.getMorphData()) {\n const box = this.getAnimatedBoundingBox();\n if (box) {\n const data = new Float32Array([...box.minPoint, ...box.maxPoint]);\n value.str[0] = uint8ArrayToBase64(new Uint8Array(data.buffer));\n }\n }\n },\n set(this: Mesh, value) {\n if (value.str[0]) {\n const data = new Float32Array(base64ToUint8Array(value.str[0]).buffer);\n const bbox = new BoundingBox();\n bbox.minPoint.setXYZ(data[0], data[1], data[2]);\n bbox.maxPoint.setXYZ(data[3], data[4], data[5]);\n this.setAnimatedBoundingBox(bbox);\n } else {\n this.setAnimatedBoundingBox(null);\n }\n }\n },\n {\n name: 'MorphBoundingInfo',\n description: 'Serialized morph-target bounding data',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: Mesh, value) {\n const info = this.getMorphBoundingInfo();\n value.str[0] = info\n ? JSON.stringify({\n originBox: serializeBoundingBox(info.originBox),\n targetBoxes: info.targetBoxes.map((box) => serializeBoundingBox(box))\n })\n : '';\n },\n set(this: Mesh, value) {\n if (!value.str[0]) {\n this.setMorphBoundingInfo(null);\n return;\n }\n try {\n const data = JSON.parse(value.str[0]);\n const originBox = deserializeBoundingBox(data.originBox);\n const targetBoxes = Array.isArray(data.targetBoxes)\n ? data.targetBoxes\n .map((item: unknown) => deserializeBoundingBox(item))\n .filter((box: BoundingBox | null): box is BoundingBox => !!box)\n : [];\n this.setMorphBoundingInfo(\n originBox && targetBoxes.length > 0 ? { originBox, targetBoxes } : null\n );\n } catch {\n this.setMorphBoundingInfo(null);\n }\n }\n },\n {\n name: 'Primitive',\n description: 'Primitive object of this mesh',\n type: 'object',\n options: {\n mimeTypes: [mimeTypeOf('.zmsh')]\n },\n get(this: Mesh, value) {\n value.str[0] = this.primitive\n ? (getEngine().resourceManager.getAssetId(this.primitive) ?? '')\n : '';\n },\n async set(this: Mesh, value) {\n if (value?.str[0]) {\n const primitive = await getEngine().resourceManager.fetchPrimitive(value.str[0]);\n if (primitive) {\n this.primitive = primitive;\n } else {\n console.error(`Primitive not found: ${value.str[0]}`);\n }\n }\n }\n },\n {\n name: 'Material',\n description: 'Material object of this mesh',\n type: 'object',\n options: {\n mimeTypes: [mimeTypeOf('.zmtl')]\n },\n get(this: Mesh, value) {\n const m = this.material?.coreMaterial;\n value.str[0] = getEngine().resourceManager.getAssetId(m) ?? '';\n },\n async set(this: Mesh, value) {\n if (value?.str[0]) {\n const material = await getEngine().resourceManager.fetchMaterial<MeshMaterial>(value.str[0]);\n if (material) {\n this.material = material;\n } else {\n console.error(`Material not found: ${value.str[0]}`);\n }\n }\n }\n },\n {\n name: 'Geometry Instance',\n description: 'If true, geometry instancing is enabled for this mesh',\n type: 'bool',\n get(this: Mesh, value) {\n value.bool[0] = !!this.material?.$isInstance;\n },\n set(this: Mesh, value) {\n this.material = value.bool[0]\n ? (this.material?.createInstance() ?? null)\n : (this.material?.coreMaterial ?? null);\n }\n },\n {\n name: 'MaterialInstanceUniforms',\n description: 'Per-instance material uniform properties',\n type: 'object',\n phase: 1,\n options: {\n objectTypes: []\n },\n isHidden(this: Mesh) {\n return !!this.material && !this.material?.$isInstance;\n },\n isNullable() {\n return true;\n },\n get(this: Mesh, value) {\n const C = this.material?.$isInstance\n ? meshInstanceClsMap.get(this.material.coreMaterial.constructor as typeof MeshMaterial)\n : null;\n value.object[0] = C ? new C.C(this.material!) : null;\n },\n set(this: Mesh, value) {\n if (value.object[0]) {\n this.material = (value.object[0] as any)?.material;\n }\n }\n }\n ]);\n }\n };\n}\n"],"names":["serializeBoundingBox","box","minPoint","maxPoint","deserializeBoundingBox","data","Array","isArray","length","every","v","BoundingBox","Vector3","slice","getMeshClass","ctor","Mesh","name","parent","GraphNode","noTitle","createFunc","ctx","node","scene","obj","getProps","defineProps","description","type","default","get","value","bool","castShadow","set","isHidden","skinnedBoundingInfo","arr","Float32Array","boundingVertexBlendIndices","boundingVertexJointWeights","i","boundingVertices","str","uint8ArrayToBase64","Uint8Array","buffer","buf","base64ToUint8Array","subarray","push","setSkinnedBoundingInfo","boundingBox","skinBindingName","skeletonName","morphData","getMorphData","ArrayBuffer","width","height","dataView","DataView","setUint32","getUint32","pixels","setMorphData","options","objectTypes","JSONData","isPersistent","getMorphInfo","morphInfo","numTargets","Object","keys","names","find","key","defineProperty","enumerable","configurable","getMorphWeight","setMorphWeight","object","byteOffset","byteLength","JSON","stringify","info","parse","setMorphInfo","getAnimatedBoundingBox","bbox","setXYZ","setAnimatedBoundingBox","getMorphBoundingInfo","originBox","targetBoxes","map","setMorphBoundingInfo","item","filter","mimeTypes","mimeTypeOf","primitive","getEngine","resourceManager","getAssetId","fetchPrimitive","console","error","m","material","coreMaterial","fetchMaterial","$isInstance","createInstance","phase","isNullable","C","meshInstanceClsMap"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,SAASA,qBAAqBC,GAAgB,EAAA;IAC5C,OAAO;AAAIA,QAAAA,GAAAA,GAAAA,CAAIC,QAAQ;AAAKD,QAAAA,GAAAA,GAAAA,CAAIE;AAAS,KAAA;AAC3C;AAEA,SAASC,uBAAuBC,IAAa,EAAA;AAC3C,IAAA,IAAI,CAACC,KAAMC,CAAAA,OAAO,CAACF,IAAAA,CAAAA,IAASA,KAAKG,MAAM,GAAG,CAAK,IAAA,CAACH,KAAKI,KAAK,CAAC,CAACC,CAAM,GAAA,OAAOA,MAAM,QAAW,CAAA,EAAA;QACxF,OAAO,IAAA;AACT;AACA,IAAA,OAAO,IAAIC,WAAAA,CAAY,IAAIC,OAAAA,CAAQP,KAAKQ,KAAK,CAAC,CAAG,EAAA,CAAA,CAAA,CAAA,EAAK,IAAID,OAAAA,CAAQP,IAAKQ,CAAAA,KAAK,CAAC,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA;AAClF;AAEA,iBACO,SAASC,YAAAA,GAAAA;IACd,OAAO;QACLC,IAAMC,EAAAA,IAAAA;QACNC,IAAM,EAAA,MAAA;QACNC,MAAQC,EAAAA,SAAAA;QACRC,OAAS,EAAA,IAAA;AACTC,QAAAA,UAAAA,CAAAA,CAAWC,GAAc,EAAA;AACvB,YAAA,MAAMC,IAAO,GAAA,IAAIP,IAAKM,CAAAA,GAAAA,CAAIE,KAAK,CAAA;AAC/BD,YAAAA,IAAAA,CAAKL,MAAM,GAAGI,GAAAA;YACd,OAAO;gBAAEG,GAAKF,EAAAA;AAAK,aAAA;AACrB,SAAA;AACAG,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACEV,IAAM,EAAA,YAAA;oBACNW,WAAa,EAAA,oCAAA;oBACbC,IAAM,EAAA,MAAA;oBACNC,OAAS,EAAA,KAAA;AACTC,oBAAAA,GAAAA,CAAAA,CAAgBC,KAAK,EAAA;AACnBA,wBAAAA,KAAAA,CAAMC,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,UAAU;AACjC,qBAAA;AACAC,oBAAAA,GAAAA,CAAAA,CAAgBH,KAAK,EAAA;AACnB,wBAAA,IAAI,CAACE,UAAU,GAAGF,KAAMC,CAAAA,IAAI,CAAC,CAAE,CAAA;AACjC;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,qBAAA;oBACNW,WAAa,EAAA,+CAAA;oBACbC,IAAM,EAAA,QAAA;AACNO,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAL,oBAAAA,GAAAA,CAAAA,CAAgBC,KAAK,EAAA;wBACnB,IAAI,IAAI,CAACK,mBAAmB,EAAE;AAC5B,4BAAA,MAAMC,GAAM,GAAA,IAAIC,YAAa,CAAA,EAAA,GAAK,KAAK,CAAI,GAAA,CAAA,CAAA;AAC3CD,4BAAAA,GAAAA,CAAIH,GAAG,CAAC,IAAI,CAACE,mBAAmB,CAACG,0BAA0B,EAAE,CAAA,CAAA;AAC7DF,4BAAAA,GAAAA,CAAIH,GAAG,CAAC,IAAI,CAACE,mBAAmB,CAACI,0BAA0B,EAAE,EAAA,CAAA;AAC7D,4BAAA,IAAK,IAAIC,CAAAA,GAAI,CAAGA,EAAAA,CAAAA,GAAI,GAAGA,CAAK,EAAA,CAAA;AAC1BJ,gCAAAA,GAAAA,CAAIH,GAAG,CAAC,IAAI,CAACE,mBAAmB,CAACM,gBAAgB,CAACD,CAAE,CAAA,EAAE,EAAK,GAAA,EAAA,GAAKA,CAAI,GAAA,CAAA,CAAA;AACtE;4BACAV,KAAMY,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAGC,mBAAmB,IAAIC,UAAAA,CAAWR,IAAIS,MAAM,CAAA,CAAA;yBACtD,MAAA;4BACLf,KAAMY,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,EAAA;AACjB;AACF,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAgBH,KAAK,EAAA;AACnB,wBAAA,IAAIA,KAAMY,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAE;4BAChB,MAAMI,GAAAA,GAAM,IAAIT,YAAaU,CAAAA,kBAAAA,CAAmBjB,MAAMY,GAAG,CAAC,CAAE,CAAA,CAAA,CAAEG,MAAM,CAAA;AACpE,4BAAA,MAAMP,0BAA6BQ,GAAAA,GAAAA,CAAIE,QAAQ,CAAC,CAAG,EAAA,EAAA,CAAA;AACnD,4BAAA,MAAMT,0BAA6BO,GAAAA,GAAAA,CAAIE,QAAQ,CAAC,EAAI,EAAA,EAAA,CAAA;AACpD,4BAAA,MAAMP,mBAA8B,EAAE;AACtC,4BAAA,IAAK,IAAID,CAAAA,GAAI,CAAGA,EAAAA,CAAAA,GAAI,GAAGA,CAAK,EAAA,CAAA;AAC1BC,gCAAAA,gBAAAA,CAAiBQ,IAAI,CAAC,IAAIvC,OAAAA,CAAQoC,IAAIE,QAAQ,CAAC,EAAKR,GAAAA,CAAAA,GAAI,GAAG,EAAK,GAACA,CAAAA,CAAAA,GAAI,CAAA,IAAK,CAAA,CAAA,CAAA,CAAA;AAC5E;4BACA,IAAI,CAACU,sBAAsB,CAAC;AAC1BZ,gCAAAA,0BAAAA;AACAC,gCAAAA,0BAAAA;AACAE,gCAAAA,gBAAAA;AACAU,gCAAAA,WAAAA,EAAa,IAAI1C,WAAAA;AACnB,6BAAA,CAAA;yBACK,MAAA;4BACL,IAAI,CAACyC,sBAAsB,CAAC,IAAA,CAAA;AAC9B;AACF;AACF,iBAAA;AACA,gBAAA;oBACEnC,IAAM,EAAA,aAAA;oBACNW,WAAa,EAAA,sDAAA;oBACbC,IAAM,EAAA,QAAA;AACNO,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,KAAA;AACT,qBAAA;AACAL,oBAAAA,GAAAA,CAAAA,CAAgBC,KAAK,EAAA;AACnBA,wBAAAA,KAAAA,CAAMY,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACU,eAAe;AACrC,qBAAA;AACAnB,oBAAAA,GAAAA,CAAAA,CAAgBH,KAAK,EAAA;AACnB,wBAAA,IAAI,CAACsB,eAAe,GAAGtB,KAAMY,CAAAA,GAAG,CAAC,CAAE,CAAA;AACrC;AACF,iBAAA;AACA,gBAAA;oBACE3B,IAAM,EAAA,UAAA;oBACNW,WAAa,EAAA,6DAAA;oBACbC,IAAM,EAAA,QAAA;AACNO,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAL,oBAAAA,GAAAA,CAAAA,CAAgBC,KAAK,EAAA;wBACnBA,KAAMY,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,EAAA;AACjB,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAgBH,KAAK,EAAA;AACnB,wBAAA,IAAIA,KAAMY,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAE;AAChB,4BAAA,IAAI,CAACW,YAAY,GAAGvB,KAAMY,CAAAA,GAAG,CAAC,CAAE,CAAA;AAClC;AACF;AACF,iBAAA;AACA,gBAAA;oBACE3B,IAAM,EAAA,WAAA;oBACNW,WAAa,EAAA,qCAAA;oBACbC,IAAM,EAAA,QAAA;AACNO,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACA,oBAAA,MAAML,KAAgBC,KAAK,EAAA;wBACzB,MAAMwB,SAAAA,GAAY,IAAI,CAACC,YAAY,EAAA;AACnC,wBAAA,IAAID,SAAW,EAAA;4BACb,MAAMT,MAAAA,GAAS,IAAIW,WAAAA,CAAY,CAAI,GAAA,CAAA,GAAI,CAAI,GAAA,CAAA,GAAIF,SAAUG,CAAAA,KAAK,GAAGH,SAAAA,CAAUI,MAAM,CAAA;4BACjF,MAAMC,QAAAA,GAAW,IAAIC,QAASf,CAAAA,MAAAA,CAAAA;AAC9Bc,4BAAAA,QAAAA,CAASE,SAAS,CAAC,CAAGP,EAAAA,SAAAA,CAAUG,KAAK,EAAE,IAAA,CAAA;AACvCE,4BAAAA,QAAAA,CAASE,SAAS,CAAC,CAAGP,EAAAA,SAAAA,CAAUI,MAAM,EAAE,IAAA,CAAA;AACxC,4BAAA,IAAIrB,YAAaQ,CAAAA,MAAAA,EAAQ,CAAG,EAAA,CAAA,GAAIS,SAAUG,CAAAA,KAAK,GAAGH,SAAAA,CAAUI,MAAM,CAAA,CAAEzB,GAAG,CAACqB,UAAUnD,IAAI,CAAA;AACtF2B,4BAAAA,KAAAA,CAAMY,GAAG,CAAC,CAAA,CAAE,GAAGC,kBAAAA,CAAmB,IAAIC,UAAWC,CAAAA,MAAAA,CAAAA,CAAAA;yBAC5C,MAAA;4BACLf,KAAMY,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,EAAA;AACjB;AACF,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAgBH,KAAK,EAAA;AACnB,wBAAA,IAAIA,KAAMY,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAE;AAChB,4BAAA,MAAMvC,IAAO4C,GAAAA,kBAAAA,CAAmBjB,KAAMY,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAC5C,4BAAA,MAAMiB,QAAW,GAAA,IAAIC,QAASzD,CAAAA,IAAAA,CAAK0C,MAAM,CAAA;AACzC,4BAAA,MAAMY,KAAQE,GAAAA,QAAAA,CAASG,SAAS,CAAC,CAAG,EAAA,IAAA,CAAA;AACpC,4BAAA,MAAMJ,MAASC,GAAAA,QAAAA,CAASG,SAAS,CAAC,CAAG,EAAA,IAAA,CAAA;4BACrC,MAAMC,MAAAA,GAAS,IAAI1B,YAAalC,CAAAA,IAAAA,CAAK0C,MAAM,EAAE,CAAA,EAAG,IAAIY,KAAQC,GAAAA,MAAAA,CAAAA;4BAC5D,IAAI,CAACM,YAAY,CAAC;AAAEP,gCAAAA,KAAAA;AAAOC,gCAAAA,MAAAA;gCAAQvD,IAAM4D,EAAAA;AAAO,6BAAA,CAAA;yBAC3C,MAAA;4BACL,IAAI,CAACC,YAAY,CAAC,IAAA,CAAA;AACpB;AACF;AACF,iBAAA;AACA,gBAAA;oBACEjD,IAAM,EAAA,cAAA;oBACNW,WAAa,EAAA,0CAAA;oBACbC,IAAM,EAAA,QAAA;oBACNsC,OAAS,EAAA;wBAAEC,WAAa,EAAA;AAACC,4BAAAA;AAAS;AAAC,qBAAA;AACnCC,oBAAAA,YAAAA,CAAAA,GAAAA;wBACE,OAAO,KAAA;AACT,qBAAA;AACAlC,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,CAAC,IAAI,CAACmC,YAAY,EAAA;AAC3B,qBAAA;AACAxC,oBAAAA,GAAAA,CAAAA,CAAgBC,KAAK,EAAA;wBACnB,MAAMwC,SAAAA,GAAY,IAAI,CAACD,YAAY,EAAA;AACnC,wBAAA,MAAME,UAAaD,GAAAA,SAAAA,CAAUnE,IAAI,CAAC,CAAE,CAAA;AACpC,wBAAA,MAAMA,OAA+B,EAAC;AACtC,wBAAA,IAAK,IAAIqC,CAAAA,GAAI,CAAGA,EAAAA,CAAAA,GAAI+B,YAAY/B,CAAK,EAAA,CAAA;AACnC,4BAAA,MAAMzB,OAAOyD,MAAOC,CAAAA,IAAI,CAACH,SAAAA,CAAUI,KAAK,CAAEC,CAAAA,IAAI,CAAC,CAACC,MAAQN,SAAUI,CAAAA,KAAK,CAAEE,IAAI,KAAKpC,CAAAA,CAAAA;AAClF,4BAAA,IAAIzB,IAAM,EAAA;gCACRyD,MAAOK,CAAAA,cAAc,CAAC1E,IAAAA,EAAMY,IAAM,EAAA;oCAChC+D,UAAY,EAAA,IAAA;oCACZC,YAAc,EAAA,IAAA;AACdlD,oCAAAA,GAAAA,EAAK,IAAM,IAAI,CAACmD,cAAc,CAACjE,IAAAA,CAAAA;AAC/BkB,oCAAAA,GAAAA,EAAK,CAACzB,CAAM,GAAA,IAAI,CAACyE,cAAc,CAAClE,IAAMP,EAAAA,CAAAA;AACxC,iCAAA,CAAA;AACF;AACF;AACAsB,wBAAAA,KAAAA,CAAMoD,MAAM,CAAC,CAAA,CAAE,GAAG,IAAIf,SAAS,IAAMhE,EAAAA,IAAAA,CAAAA;AACvC;AACF,iBAAA;AACA,gBAAA;oBACEY,IAAM,EAAA,WAAA;oBACNW,WAAa,EAAA,6CAAA;oBACbC,IAAM,EAAA,QAAA;AACNO,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAL,oBAAAA,GAAAA,CAAAA,CAAgBC,KAAK,EAAA;wBACnB,MAAMwC,SAAAA,GAAY,IAAI,CAACD,YAAY,EAAA;AACnC,wBAAA,IAAIC,SAAW,EAAA;AACb,4BAAA,MAAMnE,OAAO,IAAIyC,UAAAA,CACf0B,SAAUnE,CAAAA,IAAI,CAAC0C,MAAM,EACrByB,SAAUnE,CAAAA,IAAI,CAACgF,UAAU,EACzBb,SAAUnE,CAAAA,IAAI,CAACiF,UAAU,CAAA;AAE3BtD,4BAAAA,KAAAA,CAAMY,GAAG,CAAC,CAAA,CAAE,GAAG2C,IAAAA,CAAKC,SAAS,CAAC;AAAEnF,gCAAAA,IAAAA,EAAMwC,kBAAmBxC,CAAAA,IAAAA,CAAAA;AAAOuE,gCAAAA,KAAAA,EAAOJ,UAAUI;AAAM,6BAAA,CAAA;yBAClF,MAAA;4BACL5C,KAAMY,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,EAAA;AACjB;AACF,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAgBH,KAAK,EAAA;AACnB,wBAAA,IAAIA,KAAMY,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAE;4BAChB,IAAI;AACF,gCAAA,MAAM6C,OAAOF,IAAKG,CAAAA,KAAK,CAAC1D,KAAMY,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACpC,gCAAA,MAAMvC,OAAO,IAAIkC,YAAAA,CAAaU,mBAAmBwC,IAAKpF,CAAAA,IAAI,EAAE0C,MAAM,CAAA;gCAClE,MAAM6B,KAAAA,GAAQa,KAAKb,KAAK;gCACxB,IAAI,CAACe,YAAY,CAAC;AAAEtF,oCAAAA,IAAAA;AAAMuE,oCAAAA;AAAM,iCAAA,CAAA;AAClC,6BAAA,CAAE,OAAM;gCACN,MAAMvE,IAAAA,GAAO,IAAIkC,YAAaU,CAAAA,kBAAAA,CAAmBjB,MAAMY,GAAG,CAAC,CAAE,CAAA,CAAA,CAAEG,MAAM,CAAA;AACrE,gCAAA,MAAM6B,QAAgC,EAAC;gCACvC,IAAK,IAAIlC,IAAI,CAAGA,EAAAA,CAAAA,GAAIrC,IAAI,CAAC,CAAA,CAAE,EAAEqC,CAAK,EAAA,CAAA;AAChCkC,oCAAAA,KAAK,CAAC,CAAC,MAAM,EAAElC,CAAAA,CAAAA,CAAG,CAAC,GAAGA,CAAAA;AACxB;gCACA,IAAI,CAACiD,YAAY,CAAC;AAAEtF,oCAAAA,IAAAA;AAAMuE,oCAAAA;AAAM,iCAAA,CAAA;AAClC;yBACK,MAAA;4BACL,IAAI,CAACe,YAAY,CAAC,IAAA,CAAA;AACpB;AACF;AACF,iBAAA;AACA,gBAAA;oBACE1E,IAAM,EAAA,kBAAA;oBACNW,WAAa,EAAA,8CAAA;oBACbC,IAAM,EAAA,QAAA;AACNO,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAL,oBAAAA,GAAAA,CAAAA,CAAgBC,KAAK,EAAA;wBACnBA,KAAMY,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,EAAA;wBACf,IAAI,IAAI,CAACa,YAAY,EAAI,EAAA;4BACvB,MAAMxD,GAAAA,GAAM,IAAI,CAAC2F,sBAAsB,EAAA;AACvC,4BAAA,IAAI3F,GAAK,EAAA;gCACP,MAAMI,IAAAA,GAAO,IAAIkC,YAAa,CAAA;AAAItC,oCAAAA,GAAAA,GAAAA,CAAIC,QAAQ;AAAKD,oCAAAA,GAAAA,GAAAA,CAAIE;AAAS,iCAAA,CAAA;gCAChE6B,KAAMY,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAGC,mBAAmB,IAAIC,UAAAA,CAAWzC,KAAK0C,MAAM,CAAA,CAAA;AAC9D;AACF;AACF,qBAAA;AACAZ,oBAAAA,GAAAA,CAAAA,CAAgBH,KAAK,EAAA;AACnB,wBAAA,IAAIA,KAAMY,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAE;4BAChB,MAAMvC,IAAAA,GAAO,IAAIkC,YAAaU,CAAAA,kBAAAA,CAAmBjB,MAAMY,GAAG,CAAC,CAAE,CAAA,CAAA,CAAEG,MAAM,CAAA;AACrE,4BAAA,MAAM8C,OAAO,IAAIlF,WAAAA,EAAAA;AACjBkF,4BAAAA,IAAAA,CAAK3F,QAAQ,CAAC4F,MAAM,CAACzF,IAAI,CAAC,CAAA,CAAE,EAAEA,IAAI,CAAC,CAAA,CAAE,EAAEA,IAAI,CAAC,CAAE,CAAA,CAAA;AAC9CwF,4BAAAA,IAAAA,CAAK1F,QAAQ,CAAC2F,MAAM,CAACzF,IAAI,CAAC,CAAA,CAAE,EAAEA,IAAI,CAAC,CAAA,CAAE,EAAEA,IAAI,CAAC,CAAE,CAAA,CAAA;4BAC9C,IAAI,CAAC0F,sBAAsB,CAACF,IAAAA,CAAAA;yBACvB,MAAA;4BACL,IAAI,CAACE,sBAAsB,CAAC,IAAA,CAAA;AAC9B;AACF;AACF,iBAAA;AACA,gBAAA;oBACE9E,IAAM,EAAA,mBAAA;oBACNW,WAAa,EAAA,uCAAA;oBACbC,IAAM,EAAA,QAAA;AACNO,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAL,oBAAAA,GAAAA,CAAAA,CAAgBC,KAAK,EAAA;wBACnB,MAAMyD,IAAAA,GAAO,IAAI,CAACO,oBAAoB,EAAA;AACtChE,wBAAAA,KAAAA,CAAMY,GAAG,CAAC,CAAA,CAAE,GAAG6C,IACXF,GAAAA,IAAAA,CAAKC,SAAS,CAAC;4BACbS,SAAWjG,EAAAA,oBAAAA,CAAqByF,KAAKQ,SAAS,CAAA;AAC9CC,4BAAAA,WAAAA,EAAaT,KAAKS,WAAW,CAACC,GAAG,CAAC,CAAClG,MAAQD,oBAAqBC,CAAAA,GAAAA,CAAAA;yBAElE,CAAA,GAAA,EAAA;AACN,qBAAA;AACAkC,oBAAAA,GAAAA,CAAAA,CAAgBH,KAAK,EAAA;AACnB,wBAAA,IAAI,CAACA,KAAAA,CAAMY,GAAG,CAAC,EAAE,EAAE;4BACjB,IAAI,CAACwD,oBAAoB,CAAC,IAAA,CAAA;AAC1B,4BAAA;AACF;wBACA,IAAI;AACF,4BAAA,MAAM/F,OAAOkF,IAAKG,CAAAA,KAAK,CAAC1D,KAAMY,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;4BACpC,MAAMqD,SAAAA,GAAY7F,sBAAuBC,CAAAA,IAAAA,CAAK4F,SAAS,CAAA;4BACvD,MAAMC,WAAAA,GAAc5F,MAAMC,OAAO,CAACF,KAAK6F,WAAW,CAAA,GAC9C7F,IAAK6F,CAAAA,WAAW,CACbC,GAAG,CAAC,CAACE,IAAAA,GAAkBjG,sBAAuBiG,CAAAA,IAAAA,CAAAA,CAAAA,CAC9CC,MAAM,CAAC,CAACrG,GAAgD,GAAA,CAAC,CAACA,GAAAA,CAAAA,GAC7D,EAAE;AACN,4BAAA,IAAI,CAACmG,oBAAoB,CACvBH,aAAaC,WAAY1F,CAAAA,MAAM,GAAG,CAAI,GAAA;AAAEyF,gCAAAA,SAAAA;AAAWC,gCAAAA;6BAAgB,GAAA,IAAA,CAAA;AAEvE,yBAAA,CAAE,OAAM;4BACN,IAAI,CAACE,oBAAoB,CAAC,IAAA,CAAA;AAC5B;AACF;AACF,iBAAA;AACA,gBAAA;oBACEnF,IAAM,EAAA,WAAA;oBACNW,WAAa,EAAA,+BAAA;oBACbC,IAAM,EAAA,QAAA;oBACNsC,OAAS,EAAA;wBACPoC,SAAW,EAAA;4BAACC,UAAW,CAAA,OAAA;AAAS;AAClC,qBAAA;AACAzE,oBAAAA,GAAAA,CAAAA,CAAgBC,KAAK,EAAA;AACnBA,wBAAAA,KAAAA,CAAMY,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC6D,SAAS,GACxBC,SAAYC,EAAAA,CAAAA,eAAe,CAACC,UAAU,CAAC,IAAI,CAACH,SAAS,KAAK,EAC3D,GAAA,EAAA;AACN,qBAAA;AACA,oBAAA,MAAMtE,KAAgBH,KAAK,EAAA;AACzB,wBAAA,IAAIA,KAAOY,EAAAA,GAAG,CAAC,CAAA,CAAE,EAAE;4BACjB,MAAM6D,SAAAA,GAAY,MAAMC,SAAAA,EAAAA,CAAYC,eAAe,CAACE,cAAc,CAAC7E,KAAAA,CAAMY,GAAG,CAAC,CAAE,CAAA,CAAA;AAC/E,4BAAA,IAAI6D,SAAW,EAAA;gCACb,IAAI,CAACA,SAAS,GAAGA,SAAAA;6BACZ,MAAA;gCACLK,OAAQC,CAAAA,KAAK,CAAC,CAAC,qBAAqB,EAAE/E,KAAMY,CAAAA,GAAG,CAAC,CAAA,CAAE,CAAE,CAAA,CAAA;AACtD;AACF;AACF;AACF,iBAAA;AACA,gBAAA;oBACE3B,IAAM,EAAA,UAAA;oBACNW,WAAa,EAAA,8BAAA;oBACbC,IAAM,EAAA,QAAA;oBACNsC,OAAS,EAAA;wBACPoC,SAAW,EAAA;4BAACC,UAAW,CAAA,OAAA;AAAS;AAClC,qBAAA;AACAzE,oBAAAA,GAAAA,CAAAA,CAAgBC,KAAK,EAAA;AACnB,wBAAA,MAAMgF,CAAI,GAAA,IAAI,CAACC,QAAQ,EAAEC,YAAAA;wBACzBlF,KAAMY,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG8D,YAAYC,eAAe,CAACC,UAAU,CAACI,CAAM,CAAA,IAAA,EAAA;AAC9D,qBAAA;AACA,oBAAA,MAAM7E,KAAgBH,KAAK,EAAA;AACzB,wBAAA,IAAIA,KAAOY,EAAAA,GAAG,CAAC,CAAA,CAAE,EAAE;4BACjB,MAAMqE,QAAAA,GAAW,MAAMP,SAAAA,EAAAA,CAAYC,eAAe,CAACQ,aAAa,CAAenF,KAAAA,CAAMY,GAAG,CAAC,CAAE,CAAA,CAAA;AAC3F,4BAAA,IAAIqE,QAAU,EAAA;gCACZ,IAAI,CAACA,QAAQ,GAAGA,QAAAA;6BACX,MAAA;gCACLH,OAAQC,CAAAA,KAAK,CAAC,CAAC,oBAAoB,EAAE/E,KAAMY,CAAAA,GAAG,CAAC,CAAA,CAAE,CAAE,CAAA,CAAA;AACrD;AACF;AACF;AACF,iBAAA;AACA,gBAAA;oBACE3B,IAAM,EAAA,mBAAA;oBACNW,WAAa,EAAA,uDAAA;oBACbC,IAAM,EAAA,MAAA;AACNE,oBAAAA,GAAAA,CAAAA,CAAgBC,KAAK,EAAA;wBACnBA,KAAMC,CAAAA,IAAI,CAAC,CAAE,CAAA,GAAG,CAAC,CAAC,IAAI,CAACgF,QAAQ,EAAEG,WAAAA;AACnC,qBAAA;AACAjF,oBAAAA,GAAAA,CAAAA,CAAgBH,KAAK,EAAA;AACnB,wBAAA,IAAI,CAACiF,QAAQ,GAAGjF,MAAMC,IAAI,CAAC,EAAE,GACxB,IAAI,CAACgF,QAAQ,EAAEI,cAAoB,EAAA,IAAA,IAAA,GACnC,IAAI,CAACJ,QAAQ,EAAEC,YAAgB,IAAA,IAAA;AACtC;AACF,iBAAA;AACA,gBAAA;oBACEjG,IAAM,EAAA,0BAAA;oBACNW,WAAa,EAAA,0CAAA;oBACbC,IAAM,EAAA,QAAA;oBACNyF,KAAO,EAAA,CAAA;oBACPnD,OAAS,EAAA;AACPC,wBAAAA,WAAAA,EAAa;AACf,qBAAA;AACAhC,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,CAAC,CAAC,IAAI,CAAC6E,QAAQ,IAAI,CAAC,IAAI,CAACA,QAAQ,EAAEG,WAAAA;AAC5C,qBAAA;AACAG,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAxF,oBAAAA,GAAAA,CAAAA,CAAgBC,KAAK,EAAA;AACnB,wBAAA,MAAMwF,IAAI,IAAI,CAACP,QAAQ,EAAEG,cACrBK,kBAAmB1F,CAAAA,GAAG,CAAC,IAAI,CAACkF,QAAQ,CAACC,YAAY,CAAC,WAAW,CAC7D,GAAA,IAAA;AACJlF,wBAAAA,KAAAA,CAAMoD,MAAM,CAAC,CAAE,CAAA,GAAGoC,CAAI,GAAA,IAAIA,CAAEA,CAAAA,CAAC,CAAC,IAAI,CAACP,QAAQ,CAAK,GAAA,IAAA;AAClD,qBAAA;AACA9E,oBAAAA,GAAAA,CAAAA,CAAgBH,KAAK,EAAA;AACnB,wBAAA,IAAIA,KAAMoD,CAAAA,MAAM,CAAC,CAAA,CAAE,EAAE;AACnB,4BAAA,IAAI,CAAC6B,QAAQ,GAAIjF,MAAMoD,MAAM,CAAC,EAAE,EAAU6B,QAAAA;AAC5C;AACF;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"mesh.js","sources":["../../../../src/utility/serialization/scene/mesh.ts"],"sourcesContent":["import { base64ToUint8Array, uint8ArrayToBase64, Vector3, mimeTypeOf } from '@zephyr3d/base';\r\nimport { getEngine } from '../../../app/api';\r\nimport type { MeshMaterial } from '../../../material/meshmaterial';\r\nimport { GraphNode, Mesh, type SceneNode } from '../../../scene';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport { BoundingBox } from '../../bounding_volume';\r\nimport { meshInstanceClsMap } from './common';\r\nimport { JSONData } from '../json';\r\n\r\nfunction serializeBoundingBox(box: BoundingBox): number[] {\r\n return [...box.minPoint, ...box.maxPoint];\r\n}\r\n\r\nfunction deserializeBoundingBox(data: unknown): BoundingBox | null {\r\n if (!Array.isArray(data) || data.length < 6 || !data.every((v) => typeof v === 'number')) {\r\n return null;\r\n }\r\n return new BoundingBox(new Vector3(data.slice(0, 3)), new Vector3(data.slice(3, 6)));\r\n}\r\n\r\n/** @internal */\r\nexport function getMeshClass(): SerializableClass {\r\n return {\r\n ctor: Mesh,\r\n name: 'Mesh',\r\n parent: GraphNode,\r\n noTitle: true,\r\n createFunc(ctx: SceneNode) {\r\n const node = new Mesh(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: 'CastShadow',\r\n description: 'If true, the mesh can cast shadows',\r\n type: 'bool',\r\n default: false,\r\n get(this: Mesh, value) {\r\n value.bool[0] = this.castShadow;\r\n },\r\n set(this: Mesh, value) {\r\n this.castShadow = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'SkinnedBoundingInfo',\r\n description: 'Serialized skinned bounding data for the mesh',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: Mesh, value) {\r\n if (this.skinnedBoundingInfo) {\r\n const arr = new Float32Array(24 + 24 + 6 * 3);\r\n arr.set(this.skinnedBoundingInfo.boundingVertexBlendIndices, 0);\r\n arr.set(this.skinnedBoundingInfo.boundingVertexJointWeights, 24);\r\n for (let i = 0; i < 6; i++) {\r\n arr.set(this.skinnedBoundingInfo.boundingVertices[i], 24 + 24 + i * 3);\r\n }\r\n value.str[0] = uint8ArrayToBase64(new Uint8Array(arr.buffer));\r\n } else {\r\n value.str[0] = '';\r\n }\r\n },\r\n set(this: Mesh, value) {\r\n if (value.str[0]) {\r\n const buf = new Float32Array(base64ToUint8Array(value.str[0]).buffer);\r\n const boundingVertexBlendIndices = buf.subarray(0, 24);\r\n const boundingVertexJointWeights = buf.subarray(24, 48);\r\n const boundingVertices: Vector3[] = [];\r\n for (let i = 0; i < 6; i++) {\r\n boundingVertices.push(new Vector3(buf.subarray(48 + i * 3, 48 + (i + 1) * 3)));\r\n }\r\n this.setSkinnedBoundingInfo({\r\n boundingVertexBlendIndices,\r\n boundingVertexJointWeights,\r\n boundingVertices,\r\n boundingBox: new BoundingBox()\r\n });\r\n } else {\r\n this.setSkinnedBoundingInfo(null);\r\n }\r\n }\r\n },\r\n {\r\n name: 'SkinBinding',\r\n description: 'Persistent ID of the skin binding bound to this mesh',\r\n type: 'string',\r\n isHidden() {\r\n return false;\r\n },\r\n get(this: Mesh, value) {\r\n value.str[0] = this.skinBindingName;\r\n },\r\n set(this: Mesh, value) {\r\n this.skinBindingName = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Skeleton',\r\n description: 'Legacy persistent ID of the skin binding bound to this mesh',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: Mesh, value) {\r\n value.str[0] = '';\r\n },\r\n set(this: Mesh, value) {\r\n if (value.str[0]) {\r\n this.skeletonName = value.str[0];\r\n }\r\n }\r\n },\r\n {\r\n name: 'MorphData',\r\n description: 'Serialized morph-target vertex data',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n async get(this: Mesh, value) {\r\n const morphData = this.getMorphData();\r\n if (morphData) {\r\n const buffer = new ArrayBuffer(4 + 4 + 4 * 4 * morphData.width * morphData.height);\r\n const dataView = new DataView(buffer);\r\n dataView.setUint32(0, morphData.width, true);\r\n dataView.setUint32(4, morphData.height, true);\r\n new Float32Array(buffer, 8, 4 * morphData.width * morphData.height).set(morphData.data);\r\n value.str[0] = uint8ArrayToBase64(new Uint8Array(buffer));\r\n } else {\r\n value.str[0] = '';\r\n }\r\n },\r\n set(this: Mesh, value) {\r\n if (value.str[0]) {\r\n const data = base64ToUint8Array(value.str[0]);\r\n const dataView = new DataView(data.buffer);\r\n const width = dataView.getUint32(0, true);\r\n const height = dataView.getUint32(4, true);\r\n const pixels = new Float32Array(data.buffer, 8, 4 * width * height);\r\n this.setMorphData({ width, height, data: pixels });\r\n } else {\r\n this.setMorphData(null);\r\n }\r\n }\r\n },\r\n {\r\n name: 'MorphTargets',\r\n description: 'Named morph-target weights for this mesh',\r\n type: 'object',\r\n options: { objectTypes: [JSONData] },\r\n isPersistent() {\r\n return false;\r\n },\r\n isHidden(this: Mesh) {\r\n return !this.getMorphInfo();\r\n },\r\n get(this: Mesh, value) {\r\n const morphInfo = this.getMorphInfo()!;\r\n const numTargets = morphInfo.data[3];\r\n const data: Record<string, number> = {};\r\n for (let i = 0; i < numTargets; i++) {\r\n const name = Object.keys(morphInfo.names).find((key) => morphInfo.names![key] === i);\r\n if (name) {\r\n Object.defineProperty(data, name, {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => this.getMorphWeight(name),\r\n set: (v) => this.setMorphWeight(name, v)\r\n });\r\n }\r\n }\r\n value.object[0] = new JSONData(null, data);\r\n }\r\n },\r\n {\r\n name: 'MorphInfo',\r\n description: 'Serialized morph-target layout and metadata',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: Mesh, value) {\r\n const morphInfo = this.getMorphInfo();\r\n if (morphInfo) {\r\n const data = new Uint8Array(\r\n morphInfo.data.buffer,\r\n morphInfo.data.byteOffset,\r\n morphInfo.data.byteLength\r\n );\r\n value.str[0] = JSON.stringify({ data: uint8ArrayToBase64(data), names: morphInfo.names });\r\n } else {\r\n value.str[0] = '';\r\n }\r\n },\r\n set(this: Mesh, value) {\r\n if (value.str[0]) {\r\n try {\r\n const info = JSON.parse(value.str[0]);\r\n const data = new Float32Array(base64ToUint8Array(info.data).buffer);\r\n const names = info.names;\r\n this.setMorphInfo({ data, names });\r\n } catch {\r\n const data = new Float32Array(base64ToUint8Array(value.str[0]).buffer);\r\n const names: Record<string, number> = {};\r\n for (let i = 0; i < data[3]; i++) {\r\n names[`Target${i}`] = i;\r\n }\r\n this.setMorphInfo({ data, names });\r\n }\r\n } else {\r\n this.setMorphInfo(null);\r\n }\r\n }\r\n },\r\n {\r\n name: 'MorphBoundingBox',\r\n description: 'Serialized bounding box for morphed geometry',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: Mesh, value) {\r\n value.str[0] = '';\r\n if (this.getMorphData()) {\r\n const box = this.getAnimatedBoundingBox();\r\n if (box) {\r\n const data = new Float32Array([...box.minPoint, ...box.maxPoint]);\r\n value.str[0] = uint8ArrayToBase64(new Uint8Array(data.buffer));\r\n }\r\n }\r\n },\r\n set(this: Mesh, value) {\r\n if (value.str[0]) {\r\n const data = new Float32Array(base64ToUint8Array(value.str[0]).buffer);\r\n const bbox = new BoundingBox();\r\n bbox.minPoint.setXYZ(data[0], data[1], data[2]);\r\n bbox.maxPoint.setXYZ(data[3], data[4], data[5]);\r\n this.setAnimatedBoundingBox(bbox);\r\n } else {\r\n this.setAnimatedBoundingBox(null);\r\n }\r\n }\r\n },\r\n {\r\n name: 'MorphBoundingInfo',\r\n description: 'Serialized morph-target bounding data',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: Mesh, value) {\r\n const info = this.getMorphBoundingInfo();\r\n value.str[0] = info\r\n ? JSON.stringify({\r\n originBox: serializeBoundingBox(info.originBox),\r\n targetBoxes: info.targetBoxes.map((box) => serializeBoundingBox(box))\r\n })\r\n : '';\r\n },\r\n set(this: Mesh, value) {\r\n if (!value.str[0]) {\r\n this.setMorphBoundingInfo(null);\r\n return;\r\n }\r\n try {\r\n const data = JSON.parse(value.str[0]);\r\n const originBox = deserializeBoundingBox(data.originBox);\r\n const targetBoxes = Array.isArray(data.targetBoxes)\r\n ? data.targetBoxes\r\n .map((item: unknown) => deserializeBoundingBox(item))\r\n .filter((box: BoundingBox | null): box is BoundingBox => !!box)\r\n : [];\r\n this.setMorphBoundingInfo(\r\n originBox && targetBoxes.length > 0 ? { originBox, targetBoxes } : null\r\n );\r\n } catch {\r\n this.setMorphBoundingInfo(null);\r\n }\r\n }\r\n },\r\n {\r\n name: 'Primitive',\r\n description: 'Primitive object of this mesh',\r\n type: 'object',\r\n options: {\r\n mimeTypes: [mimeTypeOf('.zmsh')]\r\n },\r\n get(this: Mesh, value) {\r\n value.str[0] = this.primitive\r\n ? (getEngine().resourceManager.getAssetId(this.primitive) ?? '')\r\n : '';\r\n },\r\n async set(this: Mesh, value) {\r\n if (value?.str[0]) {\r\n const primitive = await getEngine().resourceManager.fetchPrimitive(value.str[0]);\r\n if (primitive) {\r\n this.primitive = primitive;\r\n } else {\r\n console.error(`Primitive not found: ${value.str[0]}`);\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'Material',\r\n description: 'Material object of this mesh',\r\n type: 'object',\r\n options: {\r\n mimeTypes: [mimeTypeOf('.zmtl')]\r\n },\r\n get(this: Mesh, value) {\r\n const m = this.material?.coreMaterial;\r\n value.str[0] = getEngine().resourceManager.getAssetId(m) ?? '';\r\n },\r\n async set(this: Mesh, value) {\r\n if (value?.str[0]) {\r\n const material = await getEngine().resourceManager.fetchMaterial<MeshMaterial>(value.str[0]);\r\n if (material) {\r\n this.material = material;\r\n } else {\r\n console.error(`Material not found: ${value.str[0]}`);\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'Geometry Instance',\r\n description: 'If true, geometry instancing is enabled for this mesh',\r\n type: 'bool',\r\n get(this: Mesh, value) {\r\n value.bool[0] = !!this.material?.$isInstance;\r\n },\r\n set(this: Mesh, value) {\r\n this.material = value.bool[0]\r\n ? (this.material?.createInstance() ?? null)\r\n : (this.material?.coreMaterial ?? null);\r\n }\r\n },\r\n {\r\n name: 'MaterialInstanceUniforms',\r\n description: 'Per-instance material uniform properties',\r\n type: 'object',\r\n phase: 1,\r\n options: {\r\n objectTypes: []\r\n },\r\n isHidden(this: Mesh) {\r\n return !!this.material && !this.material?.$isInstance;\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Mesh, value) {\r\n const C = this.material?.$isInstance\r\n ? meshInstanceClsMap.get(this.material.coreMaterial.constructor as typeof MeshMaterial)\r\n : null;\r\n value.object[0] = C ? new C.C(this.material!) : null;\r\n },\r\n set(this: Mesh, value) {\r\n if (value.object[0]) {\r\n this.material = (value.object[0] as any)?.material;\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["serializeBoundingBox","box","minPoint","maxPoint","deserializeBoundingBox","data","Array","isArray","length","every","v","BoundingBox","Vector3","slice","getMeshClass","ctor","Mesh","name","parent","GraphNode","noTitle","createFunc","ctx","node","scene","obj","getProps","defineProps","description","type","default","get","value","bool","castShadow","set","isHidden","skinnedBoundingInfo","arr","Float32Array","boundingVertexBlendIndices","boundingVertexJointWeights","i","boundingVertices","str","uint8ArrayToBase64","Uint8Array","buffer","buf","base64ToUint8Array","subarray","push","setSkinnedBoundingInfo","boundingBox","skinBindingName","skeletonName","morphData","getMorphData","ArrayBuffer","width","height","dataView","DataView","setUint32","getUint32","pixels","setMorphData","options","objectTypes","JSONData","isPersistent","getMorphInfo","morphInfo","numTargets","Object","keys","names","find","key","defineProperty","enumerable","configurable","getMorphWeight","setMorphWeight","object","byteOffset","byteLength","JSON","stringify","info","parse","setMorphInfo","getAnimatedBoundingBox","bbox","setXYZ","setAnimatedBoundingBox","getMorphBoundingInfo","originBox","targetBoxes","map","setMorphBoundingInfo","item","filter","mimeTypes","mimeTypeOf","primitive","getEngine","resourceManager","getAssetId","fetchPrimitive","console","error","m","material","coreMaterial","fetchMaterial","$isInstance","createInstance","phase","isNullable","C","meshInstanceClsMap"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sprite.js","sources":["../../../../src/utility/serialization/scene/sprite.ts"],"sourcesContent":["import { getEngine } from '../../../app/api';\nimport type { MeshMaterial } from '../../../material/meshmaterial';\nimport { GraphNode, type SceneNode } from '../../../scene';\nimport { defineProps, type SerializableClass } from '../types';\nimport { meshInstanceClsMap } from './common';\nimport { Sprite } from '../../../scene/sprite';\nimport { SpriteMaterial } from '../../../material/sprite';\nimport { mimeTypeOf, Vector2 } from '@zephyr3d/base';\n\n/** @internal */\nexport function getSpriteClass(): SerializableClass {\n return {\n ctor: Sprite,\n name: 'Sprite',\n parent: GraphNode,\n noTitle: true,\n createFunc(ctx: SceneNode) {\n const node = new Sprite(ctx.scene!);\n node.parent = ctx;\n return { obj: node };\n },\n getProps() {\n return defineProps([\n {\n name: 'Anchor',\n description: 'Sprite pivot in normalized UV space',\n type: 'vec2',\n default: [0.5, 0.5],\n get(this: Sprite, value) {\n value.num[0] = this.anchorX;\n value.num[1] = this.anchorY;\n },\n set(this: Sprite, value) {\n this.anchorX = value.num[0];\n this.anchorY = value.num[1];\n }\n },\n {\n name: 'UVTopLeft',\n description: 'Top-left UV coordinate of the sprite image',\n type: 'vec2',\n default: [0, 0],\n get(this: Sprite, value) {\n const lt = this.uvTopLeft;\n value.num[0] = lt.x;\n value.num[1] = lt.y;\n },\n set(this: Sprite, value) {\n this.uvTopLeft = new Vector2(value.num[0], value.num[1]);\n }\n },\n {\n name: 'UVBottomRight',\n description: 'Bottom-right UV coordinate of the sprite image',\n type: 'vec2',\n default: [1, 1],\n get(this: Sprite, value) {\n const rb = this.uvBottomRight;\n value.num[0] = rb.x;\n value.num[1] = rb.y;\n },\n set(this: Sprite, value) {\n this.uvBottomRight = new Vector2(value.num[0], value.num[1]);\n }\n },\n {\n name: 'Material',\n description: 'Sprite material object',\n type: 'object',\n options: {\n mimeTypes: [mimeTypeOf('.zmtl')]\n },\n get(this: Sprite, value) {\n const m = this.material?.coreMaterial;\n value.str[0] = getEngine().resourceManager.getAssetId(m) ?? '';\n },\n async set(this: Sprite, value) {\n if (value?.str[0]) {\n const material = await getEngine().resourceManager.fetchMaterial<MeshMaterial>(value.str[0]);\n if (material && material instanceof SpriteMaterial) {\n this.material = material;\n } else {\n console.error(\n material ? `Not a sprite material: ${value.str[0]}` : `Material not found: ${value.str[0]}`\n );\n }\n }\n }\n },\n {\n name: 'Geometry Instance',\n description: 'If true, the sprite uses a material instance',\n type: 'bool',\n get(this: Sprite, value) {\n value.bool[0] = !!this.material?.$isInstance;\n },\n set(this: Sprite, value) {\n this.material =\n (value.bool[0] ? this.material?.createInstance() : this.material?.coreMaterial) ?? null;\n }\n },\n {\n name: 'MaterialInstanceUniforms',\n description: 'Per-instance overrides for sprite material uniforms',\n type: 'object',\n phase: 1,\n options: {\n objectTypes: []\n },\n isHidden(this: Sprite) {\n return this.material && !this.material?.$isInstance;\n },\n isNullable() {\n return true;\n },\n get(this: Sprite, value) {\n const C = this.material?.$isInstance\n ? meshInstanceClsMap.get(this.material.coreMaterial.constructor as typeof MeshMaterial)\n : null;\n value.object[0] = C ? new C.C(this.material) : null;\n },\n set(this: Sprite, value) {\n if (value.object[0]) {\n this.material = (value.object[0] as any)?.material;\n }\n }\n }\n ]);\n }\n };\n}\n"],"names":["getSpriteClass","ctor","Sprite","name","parent","GraphNode","noTitle","createFunc","ctx","node","scene","obj","getProps","defineProps","description","type","default","get","value","num","anchorX","anchorY","set","lt","uvTopLeft","x","y","Vector2","rb","uvBottomRight","options","mimeTypes","mimeTypeOf","m","material","coreMaterial","str","getEngine","resourceManager","getAssetId","fetchMaterial","SpriteMaterial","console","error","bool","$isInstance","createInstance","phase","objectTypes","isHidden","isNullable","C","meshInstanceClsMap","object"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,iBACO,SAASA,cAAAA,GAAAA;IACd,OAAO;QACLC,IAAMC,EAAAA,MAAAA;QACNC,IAAM,EAAA,QAAA;QACNC,MAAQC,EAAAA,SAAAA;QACRC,OAAS,EAAA,IAAA;AACTC,QAAAA,UAAAA,CAAAA,CAAWC,GAAc,EAAA;AACvB,YAAA,MAAMC,IAAO,GAAA,IAAIP,MAAOM,CAAAA,GAAAA,CAAIE,KAAK,CAAA;AACjCD,YAAAA,IAAAA,CAAKL,MAAM,GAAGI,GAAAA;YACd,OAAO;gBAAEG,GAAKF,EAAAA;AAAK,aAAA;AACrB,SAAA;AACAG,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACEV,IAAM,EAAA,QAAA;oBACNW,WAAa,EAAA,qCAAA;oBACbC,IAAM,EAAA,MAAA;oBACNC,OAAS,EAAA;AAAC,wBAAA,GAAA;AAAK,wBAAA;AAAI,qBAAA;AACnBC,oBAAAA,GAAAA,CAAAA,CAAkBC,KAAK,EAAA;AACrBA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,OAAO;AAC3BF,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACE,OAAO;AAC7B,qBAAA;AACAC,oBAAAA,GAAAA,CAAAA,CAAkBJ,KAAK,EAAA;AACrB,wBAAA,IAAI,CAACE,OAAO,GAAGF,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC3B,wBAAA,IAAI,CAACE,OAAO,GAAGH,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC7B;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,WAAA;oBACNW,WAAa,EAAA,4CAAA;oBACbC,IAAM,EAAA,MAAA;oBACNC,OAAS,EAAA;AAAC,wBAAA,CAAA;AAAG,wBAAA;AAAE,qBAAA;AACfC,oBAAAA,GAAAA,CAAAA,CAAkBC,KAAK,EAAA;wBACrB,MAAMK,EAAAA,GAAK,IAAI,CAACC,SAAS;AACzBN,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,GAAGI,GAAGE,CAAC;AACnBP,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,GAAGI,GAAGG,CAAC;AACrB,qBAAA;AACAJ,oBAAAA,GAAAA,CAAAA,CAAkBJ,KAAK,EAAA;AACrB,wBAAA,IAAI,CAACM,SAAS,GAAG,IAAIG,OAAQT,CAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,EAAED,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACzD;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,eAAA;oBACNW,WAAa,EAAA,gDAAA;oBACbC,IAAM,EAAA,MAAA;oBACNC,OAAS,EAAA;AAAC,wBAAA,CAAA;AAAG,wBAAA;AAAE,qBAAA;AACfC,oBAAAA,GAAAA,CAAAA,CAAkBC,KAAK,EAAA;wBACrB,MAAMU,EAAAA,GAAK,IAAI,CAACC,aAAa;AAC7BX,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,GAAGS,GAAGH,CAAC;AACnBP,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,GAAGS,GAAGF,CAAC;AACrB,qBAAA;AACAJ,oBAAAA,GAAAA,CAAAA,CAAkBJ,KAAK,EAAA;AACrB,wBAAA,IAAI,CAACW,aAAa,GAAG,IAAIF,OAAQT,CAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,EAAED,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAC7D;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,UAAA;oBACNW,WAAa,EAAA,wBAAA;oBACbC,IAAM,EAAA,QAAA;oBACNe,OAAS,EAAA;wBACPC,SAAW,EAAA;4BAACC,UAAW,CAAA,OAAA;AAAS;AAClC,qBAAA;AACAf,oBAAAA,GAAAA,CAAAA,CAAkBC,KAAK,EAAA;AACrB,wBAAA,MAAMe,CAAI,GAAA,IAAI,CAACC,QAAQ,EAAEC,YAAAA;wBACzBjB,KAAMkB,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAGC,YAAYC,eAAe,CAACC,UAAU,CAACN,CAAM,CAAA,IAAA,EAAA;AAC9D,qBAAA;AACA,oBAAA,MAAMX,KAAkBJ,KAAK,EAAA;AAC3B,wBAAA,IAAIA,KAAOkB,EAAAA,GAAG,CAAC,CAAA,CAAE,EAAE;4BACjB,MAAMF,QAAAA,GAAW,MAAMG,SAAAA,EAAAA,CAAYC,eAAe,CAACE,aAAa,CAAetB,KAAAA,CAAMkB,GAAG,CAAC,CAAE,CAAA,CAAA;4BAC3F,IAAIF,QAAAA,IAAYA,oBAAoBO,cAAgB,EAAA;gCAClD,IAAI,CAACP,QAAQ,GAAGA,QAAAA;6BACX,MAAA;AACLQ,gCAAAA,OAAAA,CAAQC,KAAK,CACXT,QAAAA,GAAW,CAAC,uBAAuB,EAAEhB,MAAMkB,GAAG,CAAC,EAAE,CAAE,CAAA,GAAG,CAAC,oBAAoB,EAAElB,MAAMkB,GAAG,CAAC,EAAE,CAAE,CAAA,CAAA;AAE/F;AACF;AACF;AACF,iBAAA;AACA,gBAAA;oBACEjC,IAAM,EAAA,mBAAA;oBACNW,WAAa,EAAA,8CAAA;oBACbC,IAAM,EAAA,MAAA;AACNE,oBAAAA,GAAAA,CAAAA,CAAkBC,KAAK,EAAA;wBACrBA,KAAM0B,CAAAA,IAAI,CAAC,CAAE,CAAA,GAAG,CAAC,CAAC,IAAI,CAACV,QAAQ,EAAEW,WAAAA;AACnC,qBAAA;AACAvB,oBAAAA,GAAAA,CAAAA,CAAkBJ,KAAK,EAAA;wBACrB,IAAI,CAACgB,QAAQ,GACVhB,CAAAA,KAAM0B,CAAAA,IAAI,CAAC,CAAE,CAAA,GAAG,IAAI,CAACV,QAAQ,EAAEY,cAAmB,EAAA,GAAA,IAAI,CAACZ,QAAQ,EAAEC,YAAW,KAAM,IAAA;AACvF;AACF,iBAAA;AACA,gBAAA;oBACEhC,IAAM,EAAA,0BAAA;oBACNW,WAAa,EAAA,qDAAA;oBACbC,IAAM,EAAA,QAAA;oBACNgC,KAAO,EAAA,CAAA;oBACPjB,OAAS,EAAA;AACPkB,wBAAAA,WAAAA,EAAa;AACf,qBAAA;AACAC,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAI,CAACf,QAAQ,IAAI,CAAC,IAAI,CAACA,QAAQ,EAAEW,WAAAA;AAC1C,qBAAA;AACAK,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAjC,oBAAAA,GAAAA,CAAAA,CAAkBC,KAAK,EAAA;AACrB,wBAAA,MAAMiC,IAAI,IAAI,CAACjB,QAAQ,EAAEW,cACrBO,kBAAmBnC,CAAAA,GAAG,CAAC,IAAI,CAACiB,QAAQ,CAACC,YAAY,CAAC,WAAW,CAC7D,GAAA,IAAA;AACJjB,wBAAAA,KAAAA,CAAMmC,MAAM,CAAC,CAAE,CAAA,GAAGF,CAAI,GAAA,IAAIA,CAAEA,CAAAA,CAAC,CAAC,IAAI,CAACjB,QAAQ,CAAI,GAAA,IAAA;AACjD,qBAAA;AACAZ,oBAAAA,GAAAA,CAAAA,CAAkBJ,KAAK,EAAA;AACrB,wBAAA,IAAIA,KAAMmC,CAAAA,MAAM,CAAC,CAAA,CAAE,EAAE;AACnB,4BAAA,IAAI,CAACnB,QAAQ,GAAIhB,MAAMmC,MAAM,CAAC,EAAE,EAAUnB,QAAAA;AAC5C;AACF;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"sprite.js","sources":["../../../../src/utility/serialization/scene/sprite.ts"],"sourcesContent":["import { getEngine } from '../../../app/api';\r\nimport type { MeshMaterial } from '../../../material/meshmaterial';\r\nimport { GraphNode, type SceneNode } from '../../../scene';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport { meshInstanceClsMap } from './common';\r\nimport { Sprite } from '../../../scene/sprite';\r\nimport { SpriteMaterial } from '../../../material/sprite';\r\nimport { mimeTypeOf, Vector2 } from '@zephyr3d/base';\r\n\r\n/** @internal */\r\nexport function getSpriteClass(): SerializableClass {\r\n return {\r\n ctor: Sprite,\r\n name: 'Sprite',\r\n parent: GraphNode,\r\n noTitle: true,\r\n createFunc(ctx: SceneNode) {\r\n const node = new Sprite(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: Sprite, value) {\r\n value.num[0] = this.anchorX;\r\n value.num[1] = this.anchorY;\r\n },\r\n set(this: Sprite, value) {\r\n this.anchorX = value.num[0];\r\n this.anchorY = value.num[1];\r\n }\r\n },\r\n {\r\n name: 'UVTopLeft',\r\n description: 'Top-left UV coordinate of the sprite image',\r\n type: 'vec2',\r\n default: [0, 0],\r\n get(this: Sprite, value) {\r\n const lt = this.uvTopLeft;\r\n value.num[0] = lt.x;\r\n value.num[1] = lt.y;\r\n },\r\n set(this: Sprite, value) {\r\n this.uvTopLeft = new Vector2(value.num[0], value.num[1]);\r\n }\r\n },\r\n {\r\n name: 'UVBottomRight',\r\n description: 'Bottom-right UV coordinate of the sprite image',\r\n type: 'vec2',\r\n default: [1, 1],\r\n get(this: Sprite, value) {\r\n const rb = this.uvBottomRight;\r\n value.num[0] = rb.x;\r\n value.num[1] = rb.y;\r\n },\r\n set(this: Sprite, value) {\r\n this.uvBottomRight = new Vector2(value.num[0], value.num[1]);\r\n }\r\n },\r\n {\r\n name: 'Material',\r\n description: 'Sprite material object',\r\n type: 'object',\r\n options: {\r\n mimeTypes: [mimeTypeOf('.zmtl')]\r\n },\r\n get(this: Sprite, value) {\r\n const m = this.material?.coreMaterial;\r\n value.str[0] = getEngine().resourceManager.getAssetId(m) ?? '';\r\n },\r\n async set(this: Sprite, value) {\r\n if (value?.str[0]) {\r\n const material = await getEngine().resourceManager.fetchMaterial<MeshMaterial>(value.str[0]);\r\n if (material && material instanceof SpriteMaterial) {\r\n this.material = material;\r\n } else {\r\n console.error(\r\n material ? `Not a sprite material: ${value.str[0]}` : `Material not found: ${value.str[0]}`\r\n );\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'Geometry Instance',\r\n description: 'If true, the sprite uses a material instance',\r\n type: 'bool',\r\n get(this: Sprite, value) {\r\n value.bool[0] = !!this.material?.$isInstance;\r\n },\r\n set(this: Sprite, value) {\r\n this.material =\r\n (value.bool[0] ? this.material?.createInstance() : this.material?.coreMaterial) ?? null;\r\n }\r\n },\r\n {\r\n name: 'MaterialInstanceUniforms',\r\n description: 'Per-instance overrides for sprite material uniforms',\r\n type: 'object',\r\n phase: 1,\r\n options: {\r\n objectTypes: []\r\n },\r\n isHidden(this: Sprite) {\r\n return this.material && !this.material?.$isInstance;\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Sprite, value) {\r\n const C = this.material?.$isInstance\r\n ? meshInstanceClsMap.get(this.material.coreMaterial.constructor as typeof MeshMaterial)\r\n : null;\r\n value.object[0] = C ? new C.C(this.material) : null;\r\n },\r\n set(this: Sprite, value) {\r\n if (value.object[0]) {\r\n this.material = (value.object[0] as any)?.material;\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getSpriteClass","ctor","Sprite","name","parent","GraphNode","noTitle","createFunc","ctx","node","scene","obj","getProps","defineProps","description","type","default","get","value","num","anchorX","anchorY","set","lt","uvTopLeft","x","y","Vector2","rb","uvBottomRight","options","mimeTypes","mimeTypeOf","m","material","coreMaterial","str","getEngine","resourceManager","getAssetId","fetchMaterial","SpriteMaterial","console","error","bool","$isInstance","createInstance","phase","objectTypes","isHidden","isNullable","C","meshInstanceClsMap","object"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,iBACO,SAASA,cAAAA,GAAAA;IACd,OAAO;QACLC,IAAMC,EAAAA,MAAAA;QACNC,IAAM,EAAA,QAAA;QACNC,MAAQC,EAAAA,SAAAA;QACRC,OAAS,EAAA,IAAA;AACTC,QAAAA,UAAAA,CAAAA,CAAWC,GAAc,EAAA;AACvB,YAAA,MAAMC,IAAO,GAAA,IAAIP,MAAOM,CAAAA,GAAAA,CAAIE,KAAK,CAAA;AACjCD,YAAAA,IAAAA,CAAKL,MAAM,GAAGI,GAAAA;YACd,OAAO;gBAAEG,GAAKF,EAAAA;AAAK,aAAA;AACrB,SAAA;AACAG,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACEV,IAAM,EAAA,QAAA;oBACNW,WAAa,EAAA,qCAAA;oBACbC,IAAM,EAAA,MAAA;oBACNC,OAAS,EAAA;AAAC,wBAAA,GAAA;AAAK,wBAAA;AAAI,qBAAA;AACnBC,oBAAAA,GAAAA,CAAAA,CAAkBC,KAAK,EAAA;AACrBA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,OAAO;AAC3BF,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACE,OAAO;AAC7B,qBAAA;AACAC,oBAAAA,GAAAA,CAAAA,CAAkBJ,KAAK,EAAA;AACrB,wBAAA,IAAI,CAACE,OAAO,GAAGF,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC3B,wBAAA,IAAI,CAACE,OAAO,GAAGH,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC7B;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,WAAA;oBACNW,WAAa,EAAA,4CAAA;oBACbC,IAAM,EAAA,MAAA;oBACNC,OAAS,EAAA;AAAC,wBAAA,CAAA;AAAG,wBAAA;AAAE,qBAAA;AACfC,oBAAAA,GAAAA,CAAAA,CAAkBC,KAAK,EAAA;wBACrB,MAAMK,EAAAA,GAAK,IAAI,CAACC,SAAS;AACzBN,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,GAAGI,GAAGE,CAAC;AACnBP,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,GAAGI,GAAGG,CAAC;AACrB,qBAAA;AACAJ,oBAAAA,GAAAA,CAAAA,CAAkBJ,KAAK,EAAA;AACrB,wBAAA,IAAI,CAACM,SAAS,GAAG,IAAIG,OAAQT,CAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,EAAED,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACzD;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,eAAA;oBACNW,WAAa,EAAA,gDAAA;oBACbC,IAAM,EAAA,MAAA;oBACNC,OAAS,EAAA;AAAC,wBAAA,CAAA;AAAG,wBAAA;AAAE,qBAAA;AACfC,oBAAAA,GAAAA,CAAAA,CAAkBC,KAAK,EAAA;wBACrB,MAAMU,EAAAA,GAAK,IAAI,CAACC,aAAa;AAC7BX,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,GAAGS,GAAGH,CAAC;AACnBP,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,GAAGS,GAAGF,CAAC;AACrB,qBAAA;AACAJ,oBAAAA,GAAAA,CAAAA,CAAkBJ,KAAK,EAAA;AACrB,wBAAA,IAAI,CAACW,aAAa,GAAG,IAAIF,OAAQT,CAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,EAAED,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAC7D;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,UAAA;oBACNW,WAAa,EAAA,wBAAA;oBACbC,IAAM,EAAA,QAAA;oBACNe,OAAS,EAAA;wBACPC,SAAW,EAAA;4BAACC,UAAW,CAAA,OAAA;AAAS;AAClC,qBAAA;AACAf,oBAAAA,GAAAA,CAAAA,CAAkBC,KAAK,EAAA;AACrB,wBAAA,MAAMe,CAAI,GAAA,IAAI,CAACC,QAAQ,EAAEC,YAAAA;wBACzBjB,KAAMkB,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAGC,YAAYC,eAAe,CAACC,UAAU,CAACN,CAAM,CAAA,IAAA,EAAA;AAC9D,qBAAA;AACA,oBAAA,MAAMX,KAAkBJ,KAAK,EAAA;AAC3B,wBAAA,IAAIA,KAAOkB,EAAAA,GAAG,CAAC,CAAA,CAAE,EAAE;4BACjB,MAAMF,QAAAA,GAAW,MAAMG,SAAAA,EAAAA,CAAYC,eAAe,CAACE,aAAa,CAAetB,KAAAA,CAAMkB,GAAG,CAAC,CAAE,CAAA,CAAA;4BAC3F,IAAIF,QAAAA,IAAYA,oBAAoBO,cAAgB,EAAA;gCAClD,IAAI,CAACP,QAAQ,GAAGA,QAAAA;6BACX,MAAA;AACLQ,gCAAAA,OAAAA,CAAQC,KAAK,CACXT,QAAAA,GAAW,CAAC,uBAAuB,EAAEhB,MAAMkB,GAAG,CAAC,EAAE,CAAE,CAAA,GAAG,CAAC,oBAAoB,EAAElB,MAAMkB,GAAG,CAAC,EAAE,CAAE,CAAA,CAAA;AAE/F;AACF;AACF;AACF,iBAAA;AACA,gBAAA;oBACEjC,IAAM,EAAA,mBAAA;oBACNW,WAAa,EAAA,8CAAA;oBACbC,IAAM,EAAA,MAAA;AACNE,oBAAAA,GAAAA,CAAAA,CAAkBC,KAAK,EAAA;wBACrBA,KAAM0B,CAAAA,IAAI,CAAC,CAAE,CAAA,GAAG,CAAC,CAAC,IAAI,CAACV,QAAQ,EAAEW,WAAAA;AACnC,qBAAA;AACAvB,oBAAAA,GAAAA,CAAAA,CAAkBJ,KAAK,EAAA;wBACrB,IAAI,CAACgB,QAAQ,GACVhB,CAAAA,KAAM0B,CAAAA,IAAI,CAAC,CAAE,CAAA,GAAG,IAAI,CAACV,QAAQ,EAAEY,cAAmB,EAAA,GAAA,IAAI,CAACZ,QAAQ,EAAEC,YAAW,KAAM,IAAA;AACvF;AACF,iBAAA;AACA,gBAAA;oBACEhC,IAAM,EAAA,0BAAA;oBACNW,WAAa,EAAA,qDAAA;oBACbC,IAAM,EAAA,QAAA;oBACNgC,KAAO,EAAA,CAAA;oBACPjB,OAAS,EAAA;AACPkB,wBAAAA,WAAAA,EAAa;AACf,qBAAA;AACAC,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAI,CAACf,QAAQ,IAAI,CAAC,IAAI,CAACA,QAAQ,EAAEW,WAAAA;AAC1C,qBAAA;AACAK,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAjC,oBAAAA,GAAAA,CAAAA,CAAkBC,KAAK,EAAA;AACrB,wBAAA,MAAMiC,IAAI,IAAI,CAACjB,QAAQ,EAAEW,cACrBO,kBAAmBnC,CAAAA,GAAG,CAAC,IAAI,CAACiB,QAAQ,CAACC,YAAY,CAAC,WAAW,CAC7D,GAAA,IAAA;AACJjB,wBAAAA,KAAAA,CAAMmC,MAAM,CAAC,CAAE,CAAA,GAAGF,CAAI,GAAA,IAAIA,CAAEA,CAAAA,CAAC,CAAC,IAAI,CAACjB,QAAQ,CAAI,GAAA,IAAA;AACjD,qBAAA;AACAZ,oBAAAA,GAAAA,CAAAA,CAAkBJ,KAAK,EAAA;AACrB,wBAAA,IAAIA,KAAMmC,CAAAA,MAAM,CAAC,CAAA,CAAE,EAAE;AACnB,4BAAA,IAAI,CAACnB,QAAQ,GAAIhB,MAAMmC,MAAM,CAAC,EAAE,EAAUnB,QAAAA;AAC5C;AACF;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zephyr3d/editor",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "zephyr3d studio",
5
5
  "homepage": "https://github.com/gavinyork/zephyr3d#readme",
6
6
  "main": "electron/main.cjs",
@@ -84,11 +84,11 @@
84
84
  "@jridgewell/trace-mapping": "^0.3.25",
85
85
  "@zephyr3d/base": "^0.2.7",
86
86
  "@zephyr3d/device": "^0.2.10",
87
- "@zephyr3d/scene": "^0.9.7",
87
+ "@zephyr3d/scene": "^0.9.9",
88
88
  "@zephyr3d/loaders": "^0.1.2",
89
89
  "@zephyr3d/imgui": "^0.2.4",
90
90
  "@zephyr3d/backend-webgl": "^0.1.12",
91
- "@zephyr3d/backend-webgpu": "^0.1.13",
91
+ "@zephyr3d/backend-webgpu": "^0.1.14",
92
92
  "@rollup/browser": "^4.46.2",
93
93
  "es-module-lexer": "^1.7.0",
94
94
  "typescript": "^5.7.3",