@zephyr3d/editor 0.3.0 → 0.3.1

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 (48) hide show
  1. package/README.md +143 -0
  2. package/dist/assets/{index-BaUzUcND.js → index-IISR7uQv.js} +1 -1
  3. package/dist/assistant/zephyr-types-index.json +1 -1
  4. package/dist/index.html +2 -2
  5. package/dist/modules/zephyr3d_backend-webgpu.js.map +1 -1
  6. package/dist/modules/zephyr3d_imgui.js +3 -3
  7. package/dist/modules/zephyr3d_imgui.js.map +1 -1
  8. package/dist/modules/zephyr3d_scene.js +1439 -1439
  9. package/dist/modules/zephyr3d_scene.js.map +1 -1
  10. package/dist/vendor/zephyr3d/backend-webgpu/dist/bindgroup_webgpu.js.map +1 -1
  11. package/dist/vendor/zephyr3d/backend-webgpu/dist/buffer_webgpu.js.map +1 -1
  12. package/dist/vendor/zephyr3d/backend-webgpu/dist/commandqueue.js.map +1 -1
  13. package/dist/vendor/zephyr3d/backend-webgpu/dist/uploadringbuffer.js.map +1 -1
  14. package/dist/vendor/zephyr3d/imgui/dist/imgui_impl.js.map +1 -1
  15. package/dist/vendor/zephyr3d/imgui/dist/renderer.js +3 -3
  16. package/dist/vendor/zephyr3d/imgui/dist/renderer.js.map +1 -1
  17. package/dist/vendor/zephyr3d/scene/dist/animation/animationset.js +135 -135
  18. package/dist/vendor/zephyr3d/scene/dist/animation/animationset.js.map +1 -1
  19. package/dist/vendor/zephyr3d/scene/dist/animation/joint_dynamics/controller.js +146 -146
  20. package/dist/vendor/zephyr3d/scene/dist/animation/joint_dynamics/controller.js.map +1 -1
  21. package/dist/vendor/zephyr3d/scene/dist/animation/spring/spring_system.js +75 -75
  22. package/dist/vendor/zephyr3d/scene/dist/animation/spring/spring_system.js.map +1 -1
  23. package/dist/vendor/zephyr3d/scene/dist/camera/camera.js +184 -184
  24. package/dist/vendor/zephyr3d/scene/dist/camera/camera.js.map +1 -1
  25. package/dist/vendor/zephyr3d/scene/dist/material/material.js +288 -288
  26. package/dist/vendor/zephyr3d/scene/dist/material/material.js.map +1 -1
  27. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/history_resource_manager.js +93 -93
  28. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/history_resource_manager.js.map +1 -1
  29. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/history_resources.js +3 -3
  30. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/history_resources.js.map +1 -1
  31. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/types.js +22 -22
  32. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/types.js.map +1 -1
  33. package/dist/vendor/zephyr3d/scene/dist/utility/blueprint/material/ir.js +489 -489
  34. package/dist/vendor/zephyr3d/scene/dist/utility/blueprint/material/ir.js.map +1 -1
  35. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/animation.js.map +1 -1
  36. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/camera.js.map +1 -1
  37. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/common.js.map +1 -1
  38. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/light.js.map +1 -1
  39. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/material.js.map +1 -1
  40. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/mesh.js.map +1 -1
  41. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/node.js.map +1 -1
  42. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/particle.js.map +1 -1
  43. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/primitive.js.map +1 -1
  44. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/scene.js.map +1 -1
  45. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/terrain.js.map +1 -1
  46. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/types.js +4 -4
  47. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/types.js.map +1 -1
  48. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"animation.js","sources":["../../../../src/utility/serialization/scene/animation.ts"],"sourcesContent":["import type { InterpolationMode, InterpolationTarget } from '@zephyr3d/base';\nimport { AABB, Quaternion } from '@zephyr3d/base';\nimport { base64ToUint8Array, Matrix4x4, uint8ArrayToBase64 } from '@zephyr3d/base';\nimport { Interpolator, Vector3 } from '@zephyr3d/base';\nimport { AnimationTrack, Skeleton } from '../../../animation';\nimport {\n AnimationClip,\n FixedGeometryCacheTrack,\n PCAGeometryCacheTrack,\n MorphTargetTrack,\n NodeEulerRotationTrack,\n NodeRotationTrack,\n NodeScaleTrack,\n NodeTranslationTrack,\n PropertyTrack\n} from '../../../animation';\nimport type { ResourceManager } from '../manager';\nimport { defineProps, type SerializableClass } from '../types';\nimport { SceneNode } from '../../../scene';\nimport { BoundingBox } from '../../bounding_volume';\n\n/** @internal */\nexport function getInterpolatorClass(): SerializableClass {\n return {\n ctor: Interpolator,\n name: 'Interpolator',\n createFunc(\n ctx,\n init: { mode: InterpolationMode; target: InterpolationTarget; inputs: string; outputs: string }\n ) {\n const inputs = init.inputs\n ? new Float32Array(base64ToUint8Array(init.inputs).buffer)\n : new Float32Array();\n const outputs = init.outputs\n ? new Float32Array(base64ToUint8Array(init.outputs).buffer)\n : new Float32Array();\n return { obj: new Interpolator(init.mode, init.target, inputs, outputs) };\n },\n getInitParams(obj: Interpolator) {\n const inputs: Float32Array<ArrayBuffer> =\n obj.inputs instanceof Float32Array\n ? obj.inputs\n : obj.inputs\n ? new Float32Array(obj.inputs)\n : new Float32Array();\n const outputs: Float32Array<ArrayBuffer> =\n obj.outputs instanceof Float32Array\n ? obj.outputs\n : obj.outputs\n ? new Float32Array(obj.outputs)\n : new Float32Array();\n return {\n mode: obj.mode,\n target: obj.target,\n inputs: uint8ArrayToBase64(new Uint8Array(inputs.buffer, inputs.byteOffset, inputs.byteLength)),\n outputs: uint8ArrayToBase64(new Uint8Array(outputs.buffer, outputs.byteOffset, outputs.byteLength))\n };\n },\n getProps() {\n return defineProps([\n {\n name: 'Mode',\n description:\n 'What kind of method does this interpolator use to interpolate data, possible value is `step` | `linear` | `cubicspline` | `cubicspline-natural`',\n type: 'string',\n get(this: Interpolator, value) {\n value.str[0] = this.mode;\n }\n },\n {\n name: 'Target',\n description:\n 'What type of data this interpolator handles, possible value is `number` | `vec2` | `vec3` | `vec4 | `quat`',\n type: 'string',\n get(this: Interpolator, value) {\n value.str[0] = this.target ?? '';\n }\n }\n ]);\n }\n };\n}\n\n/** @internal */\nexport function getMorphTrackClass(): SerializableClass {\n return {\n ctor: MorphTargetTrack,\n name: 'MorphTargetTrack',\n getProps() {\n return defineProps([\n {\n name: 'TrackName',\n description: 'The track name',\n type: 'string',\n options: {\n label: 'Name'\n },\n get(this: MorphTargetTrack, value) {\n value.str[0] = this.name;\n },\n set(this: MorphTargetTrack, value) {\n this.name = value.str[0];\n }\n },\n {\n name: 'Interpolator',\n description: 'Interpolator object for this track',\n type: 'object',\n options: {\n objectTypes: [Interpolator]\n },\n isHidden() {\n return true;\n },\n get(this: MorphTargetTrack, value) {\n value.object[0] = this.interpolator;\n },\n set(this: MorphTargetTrack, value) {\n this.interpolator = value.object[0] as Interpolator;\n }\n },\n {\n name: 'DefaultWeights',\n description: 'Default weights for this track',\n type: 'object',\n get(this: MorphTargetTrack, value) {\n value.object[0] = this.defaultWeights ?? null;\n },\n set(this: MorphTargetTrack, value) {\n this.defaultWeights = (value.object[0] as number[]) ?? null;\n }\n },\n {\n name: 'OriginBoundingBox',\n description: 'Original bounding box',\n type: 'object',\n get(this: MorphTargetTrack, value) {\n if (!this.originBoundingBox) {\n value.object[0] = null;\n } else {\n const arr = [...this.originBoundingBox.minPoint, ...this.originBoundingBox.maxPoint];\n value.object[0] = arr;\n }\n },\n set(this: MorphTargetTrack, value) {\n if (!value.object[0]) {\n this.originBoundingBox = null;\n } else {\n const bbox = new AABB();\n const values = value.object[0] as number[];\n bbox.minPoint.setXYZ(values[0], values[1], values[2]);\n bbox.maxPoint.setXYZ(values[3], values[4], values[5]);\n this.originBoundingBox = bbox;\n }\n }\n },\n {\n name: 'BoundingBox',\n description: 'Bounding box when this track in action',\n type: 'object',\n get(this: MorphTargetTrack, value) {\n if (!this.boundingBox) {\n value.object[0] = null;\n } else {\n const arr: number[] = [];\n for (const box of this.boundingBox) {\n arr.push(...box.minPoint);\n arr.push(...box.maxPoint);\n }\n value.object[0] = arr;\n }\n },\n set(this: MorphTargetTrack, value) {\n if (!value.object[0]) {\n this.boundingBox = null;\n } else {\n const arr: BoundingBox[] = [];\n const values = value.object[0] as number[];\n for (let i = 0; i < values.length / 6; i++) {\n arr.push(\n new BoundingBox(\n new Vector3(values[i * 6 + 0], values[i * 6 + 1], values[i * 6 + 2]),\n new Vector3(values[i * 6 + 3], values[i * 6 + 4], values[i * 6 + 5])\n )\n );\n }\n this.boundingBox = arr;\n }\n }\n },\n {\n name: 'TrackTarget',\n description: 'Target object this track applys to',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: NodeRotationTrack, value) {\n value.str[0] = this.target;\n },\n set(this: NodeRotationTrack, value) {\n this.target = value.str[0];\n }\n }\n ]);\n }\n };\n}\n\nfunction encodeFloat32Array(values: Float32Array) {\n return uint8ArrayToBase64(new Uint8Array(values.buffer, values.byteOffset, values.byteLength));\n}\n\nfunction decodeFloat32Array(value: string) {\n return new Float32Array(base64ToUint8Array(value).buffer);\n}\n\nexport function getFixedGeometryCacheTrackClass(): SerializableClass {\n return {\n ctor: FixedGeometryCacheTrack,\n name: 'FixedGeometryCacheTrack',\n getProps() {\n return defineProps([\n {\n name: 'TrackName',\n description: 'The track name',\n type: 'string',\n options: {\n label: 'Name'\n },\n get(this: FixedGeometryCacheTrack, value) {\n value.str[0] = this.name;\n },\n set(this: FixedGeometryCacheTrack, value) {\n this.name = value.str[0];\n }\n },\n {\n name: 'TrackTarget',\n description: 'Target object this track applys to',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: FixedGeometryCacheTrack, value) {\n value.str[0] = this.target;\n },\n set(this: FixedGeometryCacheTrack, value) {\n this.target = value.str[0];\n }\n },\n {\n name: 'Times',\n description: 'Keyframe timestamps for this geometry cache track',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: FixedGeometryCacheTrack, value) {\n value.str[0] = encodeFloat32Array(this.times);\n },\n set(this: FixedGeometryCacheTrack, value) {\n this.times = value.str[0] ? decodeFloat32Array(value.str[0]) : new Float32Array();\n }\n },\n {\n name: 'Frames',\n description: 'Serialized geometry cache frames for this track',\n type: 'object',\n isHidden() {\n return true;\n },\n get(this: FixedGeometryCacheTrack, value) {\n value.object[0] = this.frames.map((frame) => ({\n positions: encodeFloat32Array(frame.positions),\n normals: frame.normals ? encodeFloat32Array(frame.normals) : '',\n bounds: [\n frame.boundingBox.minPoint.x,\n frame.boundingBox.minPoint.y,\n frame.boundingBox.minPoint.z,\n frame.boundingBox.maxPoint.x,\n frame.boundingBox.maxPoint.y,\n frame.boundingBox.maxPoint.z\n ]\n }));\n },\n set(this: FixedGeometryCacheTrack, value) {\n this.frames = (\n (value.object[0] as Array<{\n positions: string;\n normals: string;\n bounds: number[];\n }>) ?? []\n ).map((frame) => ({\n positions: decodeFloat32Array(frame.positions),\n normals: frame.normals ? decodeFloat32Array(frame.normals) : null,\n boundingBox: new BoundingBox(\n new Vector3(frame.bounds[0], frame.bounds[1], frame.bounds[2]),\n new Vector3(frame.bounds[3], frame.bounds[4], frame.bounds[5])\n )\n }));\n }\n }\n ]);\n }\n };\n}\n\nexport function getPCAGeometryCacheTrackClass(): SerializableClass {\n return {\n ctor: PCAGeometryCacheTrack,\n name: 'PCAGeometryCacheTrack',\n getProps() {\n return defineProps([\n {\n name: 'TrackName',\n description: 'The track name',\n type: 'string',\n options: {\n label: 'Name'\n },\n get(this: PCAGeometryCacheTrack, value) {\n value.str[0] = this.name;\n },\n set(this: PCAGeometryCacheTrack, value) {\n this.name = value.str[0];\n }\n },\n {\n name: 'TrackTarget',\n description: 'Target object this track applys to',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: PCAGeometryCacheTrack, value) {\n value.str[0] = this.target;\n },\n set(this: PCAGeometryCacheTrack, value) {\n this.target = value.str[0];\n }\n },\n {\n name: 'Times',\n description: 'Keyframe timestamps for this PCA geometry cache track',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: PCAGeometryCacheTrack, value) {\n value.str[0] = encodeFloat32Array(this.times);\n },\n set(this: PCAGeometryCacheTrack, value) {\n this.times = value.str[0] ? decodeFloat32Array(value.str[0]) : new Float32Array();\n }\n },\n {\n name: 'Bounds',\n description: 'Per-frame bounding boxes for the PCA geometry cache',\n type: 'object',\n isHidden() {\n return true;\n },\n get(this: PCAGeometryCacheTrack, value) {\n value.object[0] = this.bounds;\n },\n set(this: PCAGeometryCacheTrack, value) {\n this.bounds = (value.object[0] as [number, number, number, number, number, number][]) ?? [];\n }\n },\n {\n name: 'PositionReference',\n description: 'Reference position data for the PCA geometry cache',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: PCAGeometryCacheTrack, value) {\n value.str[0] = this.positionReference ? encodeFloat32Array(this.positionReference) : '';\n },\n set(this: PCAGeometryCacheTrack, value) {\n this.positionReference = value.str[0] ? decodeFloat32Array(value.str[0]) : null;\n }\n },\n {\n name: 'PositionMean',\n description: 'Mean position data for the PCA geometry cache',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: PCAGeometryCacheTrack, value) {\n value.str[0] = encodeFloat32Array(this.positionMean);\n },\n set(this: PCAGeometryCacheTrack, value) {\n this.positionMean = value.str[0] ? decodeFloat32Array(value.str[0]) : new Float32Array();\n }\n },\n {\n name: 'PositionBases',\n description: 'Principal position basis vectors for the PCA geometry cache',\n type: 'object',\n isHidden() {\n return true;\n },\n get(this: PCAGeometryCacheTrack, value) {\n value.object[0] = this.positionBases.map((item) => encodeFloat32Array(item));\n },\n set(this: PCAGeometryCacheTrack, value) {\n this.positionBases = ((value.object[0] as string[]) ?? []).map((item) =>\n decodeFloat32Array(item)\n );\n }\n },\n {\n name: 'PositionCoefficients',\n description: 'Per-frame position coefficient data for the PCA geometry cache',\n type: 'object',\n isHidden() {\n return true;\n },\n get(this: PCAGeometryCacheTrack, value) {\n value.object[0] = this.positionCoefficients.map((item) => encodeFloat32Array(item));\n },\n set(this: PCAGeometryCacheTrack, value) {\n this.positionCoefficients = ((value.object[0] as string[]) ?? []).map((item) =>\n decodeFloat32Array(item)\n );\n }\n },\n {\n name: 'NormalMean',\n description: 'Mean normal data for the PCA geometry cache',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: PCAGeometryCacheTrack, value) {\n value.str[0] = this.normalMean ? encodeFloat32Array(this.normalMean) : '';\n },\n set(this: PCAGeometryCacheTrack, value) {\n this.normalMean = value.str[0] ? decodeFloat32Array(value.str[0]) : null;\n }\n },\n {\n name: 'NormalBases',\n description: 'Principal normal basis vectors for the PCA geometry cache',\n type: 'object',\n isHidden() {\n return true;\n },\n get(this: PCAGeometryCacheTrack, value) {\n value.object[0] = this.normalBases?.map((item) => encodeFloat32Array(item)) ?? [];\n },\n set(this: PCAGeometryCacheTrack, value) {\n this.normalBases =\n ((value.object[0] as string[]) ?? []).map((item) => decodeFloat32Array(item)) ?? null;\n }\n },\n {\n name: 'NormalCoefficients',\n description: 'Per-frame normal coefficient data for the PCA geometry cache',\n type: 'object',\n isHidden() {\n return true;\n },\n get(this: PCAGeometryCacheTrack, value) {\n value.object[0] = this.normalCoefficients?.map((item) => encodeFloat32Array(item)) ?? [];\n },\n set(this: PCAGeometryCacheTrack, value) {\n this.normalCoefficients =\n ((value.object[0] as string[]) ?? []).map((item) => decodeFloat32Array(item)) ?? null;\n }\n }\n ]);\n }\n };\n}\n\n/** @internal */\nexport function getNodeRotationTrackClass(): SerializableClass {\n return {\n ctor: NodeRotationTrack,\n name: 'NodeRotationTrack',\n getProps() {\n return defineProps([\n {\n name: 'TrackName',\n description: 'The track name',\n type: 'string',\n options: {\n label: 'Name'\n },\n get(this: NodeRotationTrack, value) {\n value.str[0] = this.name;\n },\n set(this: NodeRotationTrack, value) {\n this.name = value.str[0];\n }\n },\n {\n name: 'Interpolator',\n description: 'Interpolator object for this track',\n type: 'object',\n options: {\n objectTypes: [Interpolator]\n },\n isHidden() {\n return true;\n },\n get(this: NodeRotationTrack, value) {\n value.object[0] = this.interpolator;\n },\n set(this: NodeRotationTrack, value) {\n this.interpolator = value.object[0] as Interpolator;\n }\n },\n {\n name: 'TrackTarget',\n description: 'Target object this track applys to',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: NodeRotationTrack, value) {\n value.str[0] = this.target;\n },\n set(this: NodeRotationTrack, value) {\n this.target = value.str[0];\n }\n }\n ]);\n }\n };\n}\n\n/** @internal */\nexport function getNodeEulerRotationTrackClass(): SerializableClass {\n return {\n ctor: NodeEulerRotationTrack,\n name: 'NodeEulerRotationTrack',\n getProps() {\n return defineProps([\n {\n name: 'TrackName',\n description: 'The track name',\n type: 'string',\n options: {\n label: 'Name'\n },\n get(this: NodeEulerRotationTrack, value) {\n value.str[0] = this.name;\n },\n set(this: NodeEulerRotationTrack, value) {\n this.name = value.str[0];\n }\n },\n {\n name: 'Interpolator',\n description: 'Interpolator object for this track',\n type: 'object',\n options: {\n objectTypes: [Interpolator]\n },\n isHidden() {\n return true;\n },\n get(this: NodeEulerRotationTrack, value) {\n value.object[0] = this.interpolator;\n },\n set(this: NodeEulerRotationTrack, value) {\n this.interpolator = value.object[0] as Interpolator;\n }\n },\n {\n name: 'TrackTarget',\n description: 'Target object this track applys to',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: NodeEulerRotationTrack, value) {\n value.str[0] = this.target;\n },\n set(this: NodeEulerRotationTrack, value) {\n this.target = value.str[0];\n }\n }\n ]);\n }\n };\n}\n\n/** @internal */\nexport function getNodeTranslationTrackClass(): SerializableClass {\n return {\n ctor: NodeTranslationTrack,\n name: 'NodeTranslationTrack',\n getProps() {\n return defineProps([\n {\n name: 'TrackName',\n description: 'The track name',\n type: 'string',\n options: {\n label: 'Name'\n },\n get(this: NodeTranslationTrack, value) {\n value.str[0] = this.name;\n },\n set(this: NodeTranslationTrack, value) {\n this.name = value.str[0];\n }\n },\n {\n name: 'Interpolator',\n description: 'Interpolator object for this track',\n type: 'object',\n options: {\n objectTypes: [Interpolator]\n },\n isHidden() {\n return true;\n },\n get(this: NodeTranslationTrack, value) {\n value.object[0] = this.interpolator;\n },\n set(this: NodeTranslationTrack, value) {\n this.interpolator = value.object[0] as Interpolator;\n }\n },\n {\n name: 'TrackTarget',\n description: 'Target object this track applys to',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: NodeTranslationTrack, value) {\n value.str[0] = this.target;\n },\n set(this: NodeTranslationTrack, value) {\n this.target = value.str[0];\n }\n }\n ]);\n }\n };\n}\n\n/** @internal */\nexport function getNodeScaleTrackClass(): SerializableClass {\n return {\n ctor: NodeScaleTrack,\n name: 'NodeScaleTrack',\n getProps() {\n return defineProps([\n {\n name: 'TrackName',\n description: 'The track name',\n type: 'string',\n options: {\n label: 'Name'\n },\n get(this: NodeScaleTrack, value) {\n value.str[0] = this.name;\n },\n set(this: NodeScaleTrack, value) {\n this.name = value.str[0];\n }\n },\n {\n name: 'Interpolator',\n description: 'Interpolator object for this track',\n type: 'object',\n options: {\n objectTypes: [Interpolator]\n },\n isHidden() {\n return true;\n },\n get(this: NodeScaleTrack, value) {\n value.object[0] = this.interpolator;\n },\n set(this: NodeScaleTrack, value) {\n this.interpolator = value.object[0] as Interpolator;\n }\n },\n {\n name: 'TrackTarget',\n description: 'Target object this track applys to',\n type: 'string',\n isHidden() {\n return true;\n },\n get(this: NodeScaleTrack, value) {\n value.str[0] = this.target;\n },\n set(this: NodeScaleTrack, value) {\n this.target = value.str[0];\n }\n }\n ]);\n }\n };\n}\n\n/** @internal */\nexport function getPropTrackClass(manager: ResourceManager): SerializableClass {\n return {\n ctor: PropertyTrack,\n name: 'PropertyTrack',\n createFunc(ctx, init) {\n return { obj: new PropertyTrack(manager.getPropertyByName(init)) };\n },\n getInitParams(obj: PropertyTrack) {\n return manager.getPropertyName(obj.getProp());\n },\n getProps() {\n return defineProps([\n {\n name: 'TrackName',\n description: 'The track name',\n type: 'string',\n options: {\n label: 'Name'\n },\n get(this: PropertyTrack, value) {\n value.str[0] = this.name;\n },\n set(this: PropertyTrack, value) {\n this.name = value.str[0];\n }\n },\n {\n name: 'TrackTarget',\n description: 'Target object this track applys to',\n type: 'string',\n options: {\n label: 'Target'\n },\n get(this: PropertyTrack, value) {\n value.str[0] = this.target;\n },\n set(this: PropertyTrack, value) {\n this.target = value.str[0];\n }\n },\n {\n name: 'TrackProp',\n description: 'Which property of the target object does this track handle',\n type: 'string',\n get(this: PropertyTrack, value) {\n value.str[0] = manager.getPropertyName(this.getProp()) ?? '';\n }\n },\n {\n name: 'TrackData',\n description: 'Interpolator data used by this property track',\n type: 'object_array',\n options: {\n objectTypes: [Interpolator]\n },\n isHidden(this: PropertyTrack, index: number) {\n return index >= 0;\n },\n get(this: PropertyTrack, value) {\n value.object = this.interpolatorAlpha\n ? [this.interpolator, this.interpolatorAlpha]\n : [this.interpolator];\n },\n set(this: PropertyTrack, value) {\n this.interpolator = value.object[0] as Interpolator;\n this.interpolatorAlpha = value.object[1] as Interpolator;\n }\n }\n ]);\n }\n };\n}\n\n/** @internal */\nexport function getSkeletonClass(): SerializableClass {\n return {\n ctor: Skeleton,\n name: 'Skeleton',\n createFunc(\n ctx: SceneNode,\n init: {\n joints: string[];\n inverseBindMatrices: string;\n bindPoseMatrices: string;\n bindPose: string;\n id: string;\n }\n ) {\n const prefabNode = ctx.getPrefabNode() ?? ctx;\n const joints = init.joints\n .map((id) => prefabNode.findNodeById(id)!)\n .map((node) => {\n node!.jointTypeT = 'static';\n node!.jointTypeS = 'static';\n node!.jointTypeR = 'static';\n return node;\n });\n const inverseBindMatricesArray = new Float32Array(base64ToUint8Array(init.inverseBindMatrices).buffer);\n const bindPoseArray = new Float32Array(\n base64ToUint8Array(init.bindPose ?? init.bindPoseMatrices).buffer\n );\n const inverseBindMatrices: Matrix4x4[] = [];\n const bindPose: { rotation: Quaternion; scale: Vector3; position: Vector3 }[] = [];\n for (let i = 0; i < joints.length; i++) {\n inverseBindMatrices.push(new Matrix4x4(inverseBindMatricesArray.slice(i * 16, i * 16 + 16)));\n if (!init.bindPose) {\n const matrix = new Matrix4x4(bindPoseArray.slice(i * 16, i * 16 + 16));\n const trs = {\n position: new Vector3(),\n rotation: new Quaternion(),\n scale: new Vector3()\n };\n matrix.decompose(trs.scale, trs.rotation, trs.position);\n bindPose.push(trs);\n } else {\n bindPose.push({\n position: new Vector3(\n bindPoseArray[i * 10 + 0],\n bindPoseArray[i * 10 + 1],\n bindPoseArray[i * 10 + 2]\n ),\n rotation: new Quaternion(\n bindPoseArray[i * 10 + 3],\n bindPoseArray[i * 10 + 4],\n bindPoseArray[i * 10 + 5],\n bindPoseArray[i * 10 + 6]\n ),\n scale: new Vector3(\n bindPoseArray[i * 10 + 7],\n bindPoseArray[i * 10 + 8],\n bindPoseArray[i * 10 + 9]\n )\n });\n }\n }\n const skeleton = new Skeleton(joints, inverseBindMatrices, bindPose);\n skeleton.persistentId = init.id;\n return {\n obj: skeleton,\n loadProps: false\n };\n },\n getInitParams(obj: Skeleton) {\n const inverseBindMatrices: number[] = obj.inverseBindMatrices\n .map((v) => [...v])\n .reduce((a, b) => [...a, ...b], []);\n const bindPose: number[] = obj.bindPose\n .map((v) => [...v.position, ...v.rotation, ...v.scale])\n .reduce((a, b) => [...a, ...b], []);\n return {\n joints: obj.joints.map((joint) => joint.persistentId),\n inverseBindMatrices: uint8ArrayToBase64(new Uint8Array(new Float32Array(inverseBindMatrices).buffer)),\n bindPose: uint8ArrayToBase64(new Uint8Array(new Float32Array(bindPose).buffer)),\n id: obj.persistentId\n };\n },\n getProps() {\n return [];\n }\n };\n}\n\n/** @internal */\nexport function getAnimationClass(manager: ResourceManager): SerializableClass {\n return {\n ctor: AnimationClip,\n name: 'AnimationClip',\n createFunc(ctx: SceneNode, init: string) {\n return { obj: ctx.animationSet.get(init) ?? ctx.animationSet.createAnimation(init, false) };\n },\n getInitParams(obj: AnimationClip) {\n return obj.name;\n },\n getProps() {\n return defineProps([\n {\n name: 'Name',\n description: 'The animation name, unique in `AnimationSet`',\n type: 'string',\n get(this: AnimationClip, value) {\n value.str[0] = this.name;\n }\n },\n {\n name: 'Duration',\n description: 'Time duration of the animation in seconds',\n type: 'float',\n default: 1,\n get(this: AnimationClip, value) {\n value.num[0] = this.timeDuration;\n },\n set(this: AnimationClip, value) {\n this.timeDuration = value.num[0];\n }\n },\n {\n name: 'Weight',\n description: 'Weight of this animation, used in animation blending',\n type: 'float',\n default: 1,\n get(this: AnimationClip, value) {\n value.num[0] = this.weight;\n },\n set(this: AnimationClip, value) {\n this.weight = value.num[0];\n }\n },\n {\n name: 'AutoPlay',\n description: 'Whether this animation should automatically start playing when model is loaded',\n type: 'bool',\n default: false,\n get(this: AnimationClip, value) {\n value.bool[0] = this.autoPlay;\n },\n set(this: AnimationClip, value) {\n this.autoPlay = value.bool[0];\n }\n },\n {\n name: 'Skeletons',\n description: 'Skeleton references used by this animation clip',\n type: 'object',\n isHidden() {\n return true;\n },\n get(this: AnimationClip, value) {\n value.object[0] = [...this.skeletons];\n },\n set(this: AnimationClip, value) {\n if (!this.skeletons) {\n this.skeletons = new Set();\n }\n for (const val of (value.object[0] as string[]) ?? []) {\n this.skeletons.add(val);\n }\n }\n },\n {\n name: 'Tracks',\n description: 'Animation tracks of this animation clip',\n type: 'object_array',\n options: {\n edit: 'proptrack',\n objectTypes: [PropertyTrack]\n },\n readonly: true,\n isHidden(this: AnimationClip, index: number, obj: unknown) {\n if (index < 0) {\n return false;\n } else {\n return !(obj instanceof PropertyTrack);\n }\n },\n get(this: AnimationClip, value) {\n value.object = [];\n for (const tracks of this.tracks) {\n for (const track of tracks[1]) {\n if (tracks[0] instanceof SceneNode && !(track instanceof PropertyTrack)) {\n track.target = tracks[0].persistentId;\n }\n }\n //value.object.push(...tracks[1].filter((track) => track instanceof PropertyTrack));\n value.object.push(...tracks[1]);\n }\n },\n set(this: AnimationClip, value) {\n for (const track of value.object) {\n if (track instanceof PropertyTrack) {\n const targetObj = manager.findAnimationTarget(this._animationSet.model, track);\n if (targetObj) {\n this.addTrack(targetObj, track);\n }\n } else if (track instanceof AnimationTrack) {\n const prefabNode = this._animationSet.model.getPrefabNode() ?? this._animationSet.model;\n const node = prefabNode.findNodeById(track.target);\n if (node) {\n this.addTrack(node, track);\n } else {\n console.error(`No node found with id = ${track.target}`);\n }\n }\n }\n },\n delete(this: AnimationClip, index) {\n const trackList: AnimationTrack[] = [];\n for (const tracks of this.tracks) {\n trackList.push(...tracks[1].filter((track) => track instanceof PropertyTrack));\n }\n const trackToRemove = trackList[index];\n if (trackToRemove) {\n this.deleteTrack(trackToRemove);\n }\n }\n }\n ]);\n }\n };\n}\n"],"names":["getInterpolatorClass","ctor","Interpolator","name","createFunc","ctx","init","inputs","Float32Array","base64ToUint8Array","buffer","outputs","obj","mode","target","getInitParams","uint8ArrayToBase64","Uint8Array","byteOffset","byteLength","getProps","defineProps","description","type","get","value","str","getMorphTrackClass","MorphTargetTrack","options","label","set","objectTypes","isHidden","object","interpolator","defaultWeights","originBoundingBox","arr","minPoint","maxPoint","bbox","AABB","values","setXYZ","boundingBox","box","push","i","length","BoundingBox","Vector3","encodeFloat32Array","decodeFloat32Array","getFixedGeometryCacheTrackClass","FixedGeometryCacheTrack","times","frames","map","frame","positions","normals","bounds","x","y","z","getPCAGeometryCacheTrackClass","PCAGeometryCacheTrack","positionReference","positionMean","positionBases","item","positionCoefficients","normalMean","normalBases","normalCoefficients","getNodeRotationTrackClass","NodeRotationTrack","getNodeEulerRotationTrackClass","NodeEulerRotationTrack","getNodeTranslationTrackClass","NodeTranslationTrack","getNodeScaleTrackClass","NodeScaleTrack","getPropTrackClass","manager","PropertyTrack","getPropertyByName","getPropertyName","getProp","index","interpolatorAlpha","getSkeletonClass","Skeleton","prefabNode","getPrefabNode","joints","id","findNodeById","node","jointTypeT","jointTypeS","jointTypeR","inverseBindMatricesArray","inverseBindMatrices","bindPoseArray","bindPose","bindPoseMatrices","Matrix4x4","slice","matrix","trs","position","rotation","Quaternion","scale","decompose","skeleton","persistentId","loadProps","v","reduce","a","b","joint","getAnimationClass","AnimationClip","animationSet","createAnimation","default","num","timeDuration","weight","bool","autoPlay","skeletons","Set","val","add","edit","readonly","tracks","track","SceneNode","targetObj","findAnimationTarget","_animationSet","model","addTrack","AnimationTrack","console","error","delete","trackList","filter","trackToRemove","deleteTrack"],"mappings":"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"}
1
+ {"version":3,"file":"animation.js","sources":["../../../../src/utility/serialization/scene/animation.ts"],"sourcesContent":["import type { InterpolationMode, InterpolationTarget } from '@zephyr3d/base';\r\nimport { AABB, Quaternion } from '@zephyr3d/base';\r\nimport { base64ToUint8Array, Matrix4x4, uint8ArrayToBase64 } from '@zephyr3d/base';\r\nimport { Interpolator, Vector3 } from '@zephyr3d/base';\r\nimport { AnimationTrack, Skeleton } from '../../../animation';\r\nimport {\r\n AnimationClip,\r\n FixedGeometryCacheTrack,\r\n PCAGeometryCacheTrack,\r\n MorphTargetTrack,\r\n NodeEulerRotationTrack,\r\n NodeRotationTrack,\r\n NodeScaleTrack,\r\n NodeTranslationTrack,\r\n PropertyTrack\r\n} from '../../../animation';\r\nimport type { ResourceManager } from '../manager';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport { SceneNode } from '../../../scene';\r\nimport { BoundingBox } from '../../bounding_volume';\r\n\r\n/** @internal */\r\nexport function getInterpolatorClass(): SerializableClass {\r\n return {\r\n ctor: Interpolator,\r\n name: 'Interpolator',\r\n createFunc(\r\n ctx,\r\n init: { mode: InterpolationMode; target: InterpolationTarget; inputs: string; outputs: string }\r\n ) {\r\n const inputs = init.inputs\r\n ? new Float32Array(base64ToUint8Array(init.inputs).buffer)\r\n : new Float32Array();\r\n const outputs = init.outputs\r\n ? new Float32Array(base64ToUint8Array(init.outputs).buffer)\r\n : new Float32Array();\r\n return { obj: new Interpolator(init.mode, init.target, inputs, outputs) };\r\n },\r\n getInitParams(obj: Interpolator) {\r\n const inputs: Float32Array<ArrayBuffer> =\r\n obj.inputs instanceof Float32Array\r\n ? obj.inputs\r\n : obj.inputs\r\n ? new Float32Array(obj.inputs)\r\n : new Float32Array();\r\n const outputs: Float32Array<ArrayBuffer> =\r\n obj.outputs instanceof Float32Array\r\n ? obj.outputs\r\n : obj.outputs\r\n ? new Float32Array(obj.outputs)\r\n : new Float32Array();\r\n return {\r\n mode: obj.mode,\r\n target: obj.target,\r\n inputs: uint8ArrayToBase64(new Uint8Array(inputs.buffer, inputs.byteOffset, inputs.byteLength)),\r\n outputs: uint8ArrayToBase64(new Uint8Array(outputs.buffer, outputs.byteOffset, outputs.byteLength))\r\n };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Mode',\r\n description:\r\n 'What kind of method does this interpolator use to interpolate data, possible value is `step` | `linear` | `cubicspline` | `cubicspline-natural`',\r\n type: 'string',\r\n get(this: Interpolator, value) {\r\n value.str[0] = this.mode;\r\n }\r\n },\r\n {\r\n name: 'Target',\r\n description:\r\n 'What type of data this interpolator handles, possible value is `number` | `vec2` | `vec3` | `vec4 | `quat`',\r\n type: 'string',\r\n get(this: Interpolator, value) {\r\n value.str[0] = this.target ?? '';\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getMorphTrackClass(): SerializableClass {\r\n return {\r\n ctor: MorphTargetTrack,\r\n name: 'MorphTargetTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n description: 'The track name',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: MorphTargetTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n description: 'Interpolator object for this track',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: MorphTargetTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'DefaultWeights',\r\n description: 'Default weights for this track',\r\n type: 'object',\r\n get(this: MorphTargetTrack, value) {\r\n value.object[0] = this.defaultWeights ?? null;\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n this.defaultWeights = (value.object[0] as number[]) ?? null;\r\n }\r\n },\r\n {\r\n name: 'OriginBoundingBox',\r\n description: 'Original bounding box',\r\n type: 'object',\r\n get(this: MorphTargetTrack, value) {\r\n if (!this.originBoundingBox) {\r\n value.object[0] = null;\r\n } else {\r\n const arr = [...this.originBoundingBox.minPoint, ...this.originBoundingBox.maxPoint];\r\n value.object[0] = arr;\r\n }\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n if (!value.object[0]) {\r\n this.originBoundingBox = null;\r\n } else {\r\n const bbox = new AABB();\r\n const values = value.object[0] as number[];\r\n bbox.minPoint.setXYZ(values[0], values[1], values[2]);\r\n bbox.maxPoint.setXYZ(values[3], values[4], values[5]);\r\n this.originBoundingBox = bbox;\r\n }\r\n }\r\n },\r\n {\r\n name: 'BoundingBox',\r\n description: 'Bounding box when this track in action',\r\n type: 'object',\r\n get(this: MorphTargetTrack, value) {\r\n if (!this.boundingBox) {\r\n value.object[0] = null;\r\n } else {\r\n const arr: number[] = [];\r\n for (const box of this.boundingBox) {\r\n arr.push(...box.minPoint);\r\n arr.push(...box.maxPoint);\r\n }\r\n value.object[0] = arr;\r\n }\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n if (!value.object[0]) {\r\n this.boundingBox = null;\r\n } else {\r\n const arr: BoundingBox[] = [];\r\n const values = value.object[0] as number[];\r\n for (let i = 0; i < values.length / 6; i++) {\r\n arr.push(\r\n new BoundingBox(\r\n new Vector3(values[i * 6 + 0], values[i * 6 + 1], values[i * 6 + 2]),\r\n new Vector3(values[i * 6 + 3], values[i * 6 + 4], values[i * 6 + 5])\r\n )\r\n );\r\n }\r\n this.boundingBox = arr;\r\n }\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n description: 'Target object this track applys to',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeRotationTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeRotationTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\nfunction encodeFloat32Array(values: Float32Array) {\r\n return uint8ArrayToBase64(new Uint8Array(values.buffer, values.byteOffset, values.byteLength));\r\n}\r\n\r\nfunction decodeFloat32Array(value: string) {\r\n return new Float32Array(base64ToUint8Array(value).buffer);\r\n}\r\n\r\nexport function getFixedGeometryCacheTrackClass(): SerializableClass {\r\n return {\r\n ctor: FixedGeometryCacheTrack,\r\n name: 'FixedGeometryCacheTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n description: 'The track name',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: FixedGeometryCacheTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: FixedGeometryCacheTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n description: 'Target object this track applys to',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: FixedGeometryCacheTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: FixedGeometryCacheTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Times',\r\n description: 'Keyframe timestamps for this geometry cache track',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: FixedGeometryCacheTrack, value) {\r\n value.str[0] = encodeFloat32Array(this.times);\r\n },\r\n set(this: FixedGeometryCacheTrack, value) {\r\n this.times = value.str[0] ? decodeFloat32Array(value.str[0]) : new Float32Array();\r\n }\r\n },\r\n {\r\n name: 'Frames',\r\n description: 'Serialized geometry cache frames for this track',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: FixedGeometryCacheTrack, value) {\r\n value.object[0] = this.frames.map((frame) => ({\r\n positions: encodeFloat32Array(frame.positions),\r\n normals: frame.normals ? encodeFloat32Array(frame.normals) : '',\r\n bounds: [\r\n frame.boundingBox.minPoint.x,\r\n frame.boundingBox.minPoint.y,\r\n frame.boundingBox.minPoint.z,\r\n frame.boundingBox.maxPoint.x,\r\n frame.boundingBox.maxPoint.y,\r\n frame.boundingBox.maxPoint.z\r\n ]\r\n }));\r\n },\r\n set(this: FixedGeometryCacheTrack, value) {\r\n this.frames = (\r\n (value.object[0] as Array<{\r\n positions: string;\r\n normals: string;\r\n bounds: number[];\r\n }>) ?? []\r\n ).map((frame) => ({\r\n positions: decodeFloat32Array(frame.positions),\r\n normals: frame.normals ? decodeFloat32Array(frame.normals) : null,\r\n boundingBox: new BoundingBox(\r\n new Vector3(frame.bounds[0], frame.bounds[1], frame.bounds[2]),\r\n new Vector3(frame.bounds[3], frame.bounds[4], frame.bounds[5])\r\n )\r\n }));\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\nexport function getPCAGeometryCacheTrackClass(): SerializableClass {\r\n return {\r\n ctor: PCAGeometryCacheTrack,\r\n name: 'PCAGeometryCacheTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n description: 'The track name',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n description: 'Target object this track applys to',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Times',\r\n description: 'Keyframe timestamps for this PCA geometry cache track',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.str[0] = encodeFloat32Array(this.times);\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.times = value.str[0] ? decodeFloat32Array(value.str[0]) : new Float32Array();\r\n }\r\n },\r\n {\r\n name: 'Bounds',\r\n description: 'Per-frame bounding boxes for the PCA geometry cache',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.object[0] = this.bounds;\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.bounds = (value.object[0] as [number, number, number, number, number, number][]) ?? [];\r\n }\r\n },\r\n {\r\n name: 'PositionReference',\r\n description: 'Reference position data for the PCA geometry cache',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.str[0] = this.positionReference ? encodeFloat32Array(this.positionReference) : '';\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.positionReference = value.str[0] ? decodeFloat32Array(value.str[0]) : null;\r\n }\r\n },\r\n {\r\n name: 'PositionMean',\r\n description: 'Mean position data for the PCA geometry cache',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.str[0] = encodeFloat32Array(this.positionMean);\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.positionMean = value.str[0] ? decodeFloat32Array(value.str[0]) : new Float32Array();\r\n }\r\n },\r\n {\r\n name: 'PositionBases',\r\n description: 'Principal position basis vectors for the PCA geometry cache',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.object[0] = this.positionBases.map((item) => encodeFloat32Array(item));\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.positionBases = ((value.object[0] as string[]) ?? []).map((item) =>\r\n decodeFloat32Array(item)\r\n );\r\n }\r\n },\r\n {\r\n name: 'PositionCoefficients',\r\n description: 'Per-frame position coefficient data for the PCA geometry cache',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.object[0] = this.positionCoefficients.map((item) => encodeFloat32Array(item));\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.positionCoefficients = ((value.object[0] as string[]) ?? []).map((item) =>\r\n decodeFloat32Array(item)\r\n );\r\n }\r\n },\r\n {\r\n name: 'NormalMean',\r\n description: 'Mean normal data for the PCA geometry cache',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.str[0] = this.normalMean ? encodeFloat32Array(this.normalMean) : '';\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.normalMean = value.str[0] ? decodeFloat32Array(value.str[0]) : null;\r\n }\r\n },\r\n {\r\n name: 'NormalBases',\r\n description: 'Principal normal basis vectors for the PCA geometry cache',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.object[0] = this.normalBases?.map((item) => encodeFloat32Array(item)) ?? [];\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.normalBases =\r\n ((value.object[0] as string[]) ?? []).map((item) => decodeFloat32Array(item)) ?? null;\r\n }\r\n },\r\n {\r\n name: 'NormalCoefficients',\r\n description: 'Per-frame normal coefficient data for the PCA geometry cache',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.object[0] = this.normalCoefficients?.map((item) => encodeFloat32Array(item)) ?? [];\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.normalCoefficients =\r\n ((value.object[0] as string[]) ?? []).map((item) => decodeFloat32Array(item)) ?? null;\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getNodeRotationTrackClass(): SerializableClass {\r\n return {\r\n ctor: NodeRotationTrack,\r\n name: 'NodeRotationTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n description: 'The track name',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: NodeRotationTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: NodeRotationTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n description: 'Interpolator object for this track',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeRotationTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: NodeRotationTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n description: 'Target object this track applys to',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeRotationTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeRotationTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getNodeEulerRotationTrackClass(): SerializableClass {\r\n return {\r\n ctor: NodeEulerRotationTrack,\r\n name: 'NodeEulerRotationTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n description: 'The track name',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: NodeEulerRotationTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: NodeEulerRotationTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n description: 'Interpolator object for this track',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeEulerRotationTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: NodeEulerRotationTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n description: 'Target object this track applys to',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeEulerRotationTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeEulerRotationTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getNodeTranslationTrackClass(): SerializableClass {\r\n return {\r\n ctor: NodeTranslationTrack,\r\n name: 'NodeTranslationTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n description: 'The track name',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: NodeTranslationTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: NodeTranslationTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n description: 'Interpolator object for this track',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeTranslationTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: NodeTranslationTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n description: 'Target object this track applys to',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeTranslationTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeTranslationTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getNodeScaleTrackClass(): SerializableClass {\r\n return {\r\n ctor: NodeScaleTrack,\r\n name: 'NodeScaleTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n description: 'The track name',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: NodeScaleTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: NodeScaleTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n description: 'Interpolator object for this track',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeScaleTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: NodeScaleTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n description: 'Target object this track applys to',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeScaleTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeScaleTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getPropTrackClass(manager: ResourceManager): SerializableClass {\r\n return {\r\n ctor: PropertyTrack,\r\n name: 'PropertyTrack',\r\n createFunc(ctx, init) {\r\n return { obj: new PropertyTrack(manager.getPropertyByName(init)) };\r\n },\r\n getInitParams(obj: PropertyTrack) {\r\n return manager.getPropertyName(obj.getProp());\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n description: 'The track name',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: PropertyTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: PropertyTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n description: 'Target object this track applys to',\r\n type: 'string',\r\n options: {\r\n label: 'Target'\r\n },\r\n get(this: PropertyTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: PropertyTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TrackProp',\r\n description: 'Which property of the target object does this track handle',\r\n type: 'string',\r\n get(this: PropertyTrack, value) {\r\n value.str[0] = manager.getPropertyName(this.getProp()) ?? '';\r\n }\r\n },\r\n {\r\n name: 'TrackData',\r\n description: 'Interpolator data used by this property track',\r\n type: 'object_array',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden(this: PropertyTrack, index: number) {\r\n return index >= 0;\r\n },\r\n get(this: PropertyTrack, value) {\r\n value.object = this.interpolatorAlpha\r\n ? [this.interpolator, this.interpolatorAlpha]\r\n : [this.interpolator];\r\n },\r\n set(this: PropertyTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n this.interpolatorAlpha = value.object[1] as Interpolator;\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getSkeletonClass(): SerializableClass {\r\n return {\r\n ctor: Skeleton,\r\n name: 'Skeleton',\r\n createFunc(\r\n ctx: SceneNode,\r\n init: {\r\n joints: string[];\r\n inverseBindMatrices: string;\r\n bindPoseMatrices: string;\r\n bindPose: string;\r\n id: string;\r\n }\r\n ) {\r\n const prefabNode = ctx.getPrefabNode() ?? ctx;\r\n const joints = init.joints\r\n .map((id) => prefabNode.findNodeById(id)!)\r\n .map((node) => {\r\n node!.jointTypeT = 'static';\r\n node!.jointTypeS = 'static';\r\n node!.jointTypeR = 'static';\r\n return node;\r\n });\r\n const inverseBindMatricesArray = new Float32Array(base64ToUint8Array(init.inverseBindMatrices).buffer);\r\n const bindPoseArray = new Float32Array(\r\n base64ToUint8Array(init.bindPose ?? init.bindPoseMatrices).buffer\r\n );\r\n const inverseBindMatrices: Matrix4x4[] = [];\r\n const bindPose: { rotation: Quaternion; scale: Vector3; position: Vector3 }[] = [];\r\n for (let i = 0; i < joints.length; i++) {\r\n inverseBindMatrices.push(new Matrix4x4(inverseBindMatricesArray.slice(i * 16, i * 16 + 16)));\r\n if (!init.bindPose) {\r\n const matrix = new Matrix4x4(bindPoseArray.slice(i * 16, i * 16 + 16));\r\n const trs = {\r\n position: new Vector3(),\r\n rotation: new Quaternion(),\r\n scale: new Vector3()\r\n };\r\n matrix.decompose(trs.scale, trs.rotation, trs.position);\r\n bindPose.push(trs);\r\n } else {\r\n bindPose.push({\r\n position: new Vector3(\r\n bindPoseArray[i * 10 + 0],\r\n bindPoseArray[i * 10 + 1],\r\n bindPoseArray[i * 10 + 2]\r\n ),\r\n rotation: new Quaternion(\r\n bindPoseArray[i * 10 + 3],\r\n bindPoseArray[i * 10 + 4],\r\n bindPoseArray[i * 10 + 5],\r\n bindPoseArray[i * 10 + 6]\r\n ),\r\n scale: new Vector3(\r\n bindPoseArray[i * 10 + 7],\r\n bindPoseArray[i * 10 + 8],\r\n bindPoseArray[i * 10 + 9]\r\n )\r\n });\r\n }\r\n }\r\n const skeleton = new Skeleton(joints, inverseBindMatrices, bindPose);\r\n skeleton.persistentId = init.id;\r\n return {\r\n obj: skeleton,\r\n loadProps: false\r\n };\r\n },\r\n getInitParams(obj: Skeleton) {\r\n const inverseBindMatrices: number[] = obj.inverseBindMatrices\r\n .map((v) => [...v])\r\n .reduce((a, b) => [...a, ...b], []);\r\n const bindPose: number[] = obj.bindPose\r\n .map((v) => [...v.position, ...v.rotation, ...v.scale])\r\n .reduce((a, b) => [...a, ...b], []);\r\n return {\r\n joints: obj.joints.map((joint) => joint.persistentId),\r\n inverseBindMatrices: uint8ArrayToBase64(new Uint8Array(new Float32Array(inverseBindMatrices).buffer)),\r\n bindPose: uint8ArrayToBase64(new Uint8Array(new Float32Array(bindPose).buffer)),\r\n id: obj.persistentId\r\n };\r\n },\r\n getProps() {\r\n return [];\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getAnimationClass(manager: ResourceManager): SerializableClass {\r\n return {\r\n ctor: AnimationClip,\r\n name: 'AnimationClip',\r\n createFunc(ctx: SceneNode, init: string) {\r\n return { obj: ctx.animationSet.get(init) ?? ctx.animationSet.createAnimation(init, false) };\r\n },\r\n getInitParams(obj: AnimationClip) {\r\n return obj.name;\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Name',\r\n description: 'The animation name, unique in `AnimationSet`',\r\n type: 'string',\r\n get(this: AnimationClip, value) {\r\n value.str[0] = this.name;\r\n }\r\n },\r\n {\r\n name: 'Duration',\r\n description: 'Time duration of the animation in seconds',\r\n type: 'float',\r\n default: 1,\r\n get(this: AnimationClip, value) {\r\n value.num[0] = this.timeDuration;\r\n },\r\n set(this: AnimationClip, value) {\r\n this.timeDuration = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Weight',\r\n description: 'Weight of this animation, used in animation blending',\r\n type: 'float',\r\n default: 1,\r\n get(this: AnimationClip, value) {\r\n value.num[0] = this.weight;\r\n },\r\n set(this: AnimationClip, value) {\r\n this.weight = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'AutoPlay',\r\n description: 'Whether this animation should automatically start playing when model is loaded',\r\n type: 'bool',\r\n default: false,\r\n get(this: AnimationClip, value) {\r\n value.bool[0] = this.autoPlay;\r\n },\r\n set(this: AnimationClip, value) {\r\n this.autoPlay = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'Skeletons',\r\n description: 'Skeleton references used by this animation clip',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: AnimationClip, value) {\r\n value.object[0] = [...this.skeletons];\r\n },\r\n set(this: AnimationClip, value) {\r\n if (!this.skeletons) {\r\n this.skeletons = new Set();\r\n }\r\n for (const val of (value.object[0] as string[]) ?? []) {\r\n this.skeletons.add(val);\r\n }\r\n }\r\n },\r\n {\r\n name: 'Tracks',\r\n description: 'Animation tracks of this animation clip',\r\n type: 'object_array',\r\n options: {\r\n edit: 'proptrack',\r\n objectTypes: [PropertyTrack]\r\n },\r\n readonly: true,\r\n isHidden(this: AnimationClip, index: number, obj: unknown) {\r\n if (index < 0) {\r\n return false;\r\n } else {\r\n return !(obj instanceof PropertyTrack);\r\n }\r\n },\r\n get(this: AnimationClip, value) {\r\n value.object = [];\r\n for (const tracks of this.tracks) {\r\n for (const track of tracks[1]) {\r\n if (tracks[0] instanceof SceneNode && !(track instanceof PropertyTrack)) {\r\n track.target = tracks[0].persistentId;\r\n }\r\n }\r\n //value.object.push(...tracks[1].filter((track) => track instanceof PropertyTrack));\r\n value.object.push(...tracks[1]);\r\n }\r\n },\r\n set(this: AnimationClip, value) {\r\n for (const track of value.object) {\r\n if (track instanceof PropertyTrack) {\r\n const targetObj = manager.findAnimationTarget(this._animationSet.model, track);\r\n if (targetObj) {\r\n this.addTrack(targetObj, track);\r\n }\r\n } else if (track instanceof AnimationTrack) {\r\n const prefabNode = this._animationSet.model.getPrefabNode() ?? this._animationSet.model;\r\n const node = prefabNode.findNodeById(track.target);\r\n if (node) {\r\n this.addTrack(node, track);\r\n } else {\r\n console.error(`No node found with id = ${track.target}`);\r\n }\r\n }\r\n }\r\n },\r\n delete(this: AnimationClip, index) {\r\n const trackList: AnimationTrack[] = [];\r\n for (const tracks of this.tracks) {\r\n trackList.push(...tracks[1].filter((track) => track instanceof PropertyTrack));\r\n }\r\n const trackToRemove = trackList[index];\r\n if (trackToRemove) {\r\n this.deleteTrack(trackToRemove);\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getInterpolatorClass","ctor","Interpolator","name","createFunc","ctx","init","inputs","Float32Array","base64ToUint8Array","buffer","outputs","obj","mode","target","getInitParams","uint8ArrayToBase64","Uint8Array","byteOffset","byteLength","getProps","defineProps","description","type","get","value","str","getMorphTrackClass","MorphTargetTrack","options","label","set","objectTypes","isHidden","object","interpolator","defaultWeights","originBoundingBox","arr","minPoint","maxPoint","bbox","AABB","values","setXYZ","boundingBox","box","push","i","length","BoundingBox","Vector3","encodeFloat32Array","decodeFloat32Array","getFixedGeometryCacheTrackClass","FixedGeometryCacheTrack","times","frames","map","frame","positions","normals","bounds","x","y","z","getPCAGeometryCacheTrackClass","PCAGeometryCacheTrack","positionReference","positionMean","positionBases","item","positionCoefficients","normalMean","normalBases","normalCoefficients","getNodeRotationTrackClass","NodeRotationTrack","getNodeEulerRotationTrackClass","NodeEulerRotationTrack","getNodeTranslationTrackClass","NodeTranslationTrack","getNodeScaleTrackClass","NodeScaleTrack","getPropTrackClass","manager","PropertyTrack","getPropertyByName","getPropertyName","getProp","index","interpolatorAlpha","getSkeletonClass","Skeleton","prefabNode","getPrefabNode","joints","id","findNodeById","node","jointTypeT","jointTypeS","jointTypeR","inverseBindMatricesArray","inverseBindMatrices","bindPoseArray","bindPose","bindPoseMatrices","Matrix4x4","slice","matrix","trs","position","rotation","Quaternion","scale","decompose","skeleton","persistentId","loadProps","v","reduce","a","b","joint","getAnimationClass","AnimationClip","animationSet","createAnimation","default","num","timeDuration","weight","bool","autoPlay","skeletons","Set","val","add","edit","readonly","tracks","track","SceneNode","targetObj","findAnimationTarget","_animationSet","model","addTrack","AnimationTrack","console","error","delete","trackList","filter","trackToRemove","deleteTrack"],"mappings":"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"}