{"version":3,"file":"Transition.cjs","sources":["../../../src/builder/Transition.js"],"sourcesContent":["/**\r\n * 转场效果类 - 使用 gl-transitions\r\n */\r\nimport { TransitionElement } from '../elements/TransitionElement.js';\r\nimport {AllTransitions} from '../utils/transition-renderer.js';\r\n/**\r\n * 转场效果类\r\n */\r\nexport class Transition {\r\n  constructor(config = {}) {\r\n    this.track = config.track;\r\n    this.name = config.name || config.type || 'fade'; // gl-transitions 名称\r\n    this.duration = config.duration || 0.5; // 转场时长（秒）\r\n    this.startTime = config.startTime; // 转场开始时间\r\n    this.fromScene = config.fromScene;\r\n    this.toScene = config.toScene;\r\n    this.fromSceneIndex = config.fromSceneIndex;\r\n    this.toSceneIndex = config.toSceneIndex;\r\n    this.easing = config.easing || 'easeInOutQuad';\r\n    this.params = config.params; // gl-transitions 参数\r\n    // 如果this.name是'random'，则随机选择一个过渡效果\r\n    if (this.name === 'random') {\r\n      const randomIndex = Math.floor(Math.random() * AllTransitions.length);\r\n      this.name = AllTransitions[randomIndex];\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 应用转场效果 - 创建 TransitionElement 并返回\r\n   * @param {VideoMaker} fromSceneComposition - 源场景合成\r\n   * @param {VideoMaker} toSceneComposition - 目标场景合成\r\n   * @param {number} transitionStartTime - 转场开始时间\r\n   * @param {number} width - 宽度\r\n   * @param {number} height - 高度\r\n   * @returns {TransitionElement} 转场元素\r\n   */\r\n  createTransitionElement(fromSceneComposition, toSceneComposition, transitionStartTime, width, height) {\r\n    // 创建转场元素\r\n    const transitionElement = new TransitionElement({\r\n      x: width / 2,\r\n      y: height / 2,\r\n      width: width,\r\n      height: height,\r\n      anchor: [0.5, 0.5],\r\n      fromComposition: fromSceneComposition,\r\n      toComposition: toSceneComposition,\r\n      transitionConfig: {\r\n        name: this.name,\r\n        duration: this.duration,\r\n        easing: this.easing,\r\n        params: this.params,\r\n      },\r\n      startTime: transitionStartTime,\r\n      duration: this.duration,\r\n    });\r\n\r\n    return transitionElement;\r\n  }\r\n}\r\n\r\n"],"names":["AllTransitions","TransitionElement"],"mappings":";;;;;AAAA;AACA;AACA;AAGA;AACA;AACA;AACO,MAAM,UAAU,CAAC;AACxB,EAAE,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE;AAC3B,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC9B,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;AACrD,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;AAC3C,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AACtC,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AACtC,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAClC,IAAI,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAChD,IAAI,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AAC5C,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC;AACnD,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAChC;AACA,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAChC,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAGA,uCAAc,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,IAAI,CAAC,IAAI,GAAGA,uCAAc,CAAC,WAAW,CAAC,CAAC;AAC9C,IAAI,CAAC;AACL,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,uBAAuB,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE;AACxG;AACA,IAAI,MAAM,iBAAiB,GAAG,IAAIC,4CAAiB,CAAC;AACpD,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC;AAClB,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC;AACnB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACxB,MAAM,eAAe,EAAE,oBAAoB;AAC3C,MAAM,aAAa,EAAE,kBAAkB;AACvC,MAAM,gBAAgB,EAAE;AACxB,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI;AACvB,QAAQ,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC/B,QAAQ,MAAM,EAAE,IAAI,CAAC,MAAM;AAC3B,QAAQ,MAAM,EAAE,IAAI,CAAC,MAAM;AAC3B,OAAO;AACP,MAAM,SAAS,EAAE,mBAAmB;AACpC,MAAM,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC7B,KAAK,CAAC,CAAC;AACP;AACA,IAAI,OAAO,iBAAiB,CAAC;AAC7B,EAAE,CAAC;AACH;;;;"}