{"version":3,"file":"BaseLayer.cjs","sources":["../../../src/layers/BaseLayer.js"],"sourcesContent":["import { generateId } from '../utils/helpers.js';\r\nimport { LayerType } from '../types/enums.js';\r\n\r\n/**\r\n * 图层基类\r\n */\r\nexport class BaseLayer {\r\n  constructor(config = {}) {\r\n    this.id = generateId('layer');\r\n    this.type = LayerType.ELEMENT;\r\n    this.config = config;\r\n    this.elements = [];\r\n    this.visible = true;\r\n    this.opacity = config.opacity !== undefined ? config.opacity : 1;\r\n    this.zIndex = config.zIndex !== undefined ? config.zIndex : 0;\r\n    this.startTime = config.startTime || 0;\r\n    this.endTime = config.endTime || Infinity;\r\n  }\r\n\r\n  /**\r\n   * 获取图层类型\r\n   */\r\n  getType() {\r\n    return this.type;\r\n  }\r\n\r\n  /**\r\n   * 添加元素\r\n   */\r\n  addElement(element) {\r\n    if (!this.elements.includes(element)) {\r\n      this.elements.push(element);\r\n      element.parent = this;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 移除元素\r\n   */\r\n  removeElement(element) {\r\n    const index = this.elements.indexOf(element);\r\n    if (index > -1) {\r\n      this.elements.splice(index, 1);\r\n      element.parent = null;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 获取所有元素\r\n   */\r\n  getElements() {\r\n    return [...this.elements];\r\n  }\r\n\r\n  /**\r\n   * 清空元素\r\n   */\r\n  clearElements() {\r\n    this.elements.forEach(element => {\r\n      element.parent = null;\r\n    });\r\n    this.elements = [];\r\n  }\r\n\r\n  /**\r\n   * 设置可见性\r\n   */\r\n  setVisible(visible) {\r\n    this.visible = visible;\r\n  }\r\n\r\n  /**\r\n   * 设置透明度\r\n   */\r\n  setOpacity(opacity) {\r\n    this.opacity = Math.max(0, Math.min(1, opacity));\r\n  }\r\n\r\n  /**\r\n   * 设置层级\r\n   */\r\n  setZIndex(zIndex) {\r\n    this.zIndex = zIndex;\r\n  }\r\n\r\n  /**\r\n   * 判断图层在指定时间是否激活\r\n   */\r\n  isActiveAtTime(time) {\r\n    return this.visible && time >= this.startTime && time < this.endTime;\r\n  }\r\n\r\n  /**\r\n   * 渲染图层（子类实现）\r\n   */\r\n  render(scene, time) {\r\n    // 子类实现具体渲染逻辑\r\n    throw new Error('render method must be implemented by subclass');\r\n  }\r\n\r\n  /**\r\n   * 销毁图层\r\n   */\r\n  destroy() {\r\n    this.elements.forEach(element => element.destroy());\r\n    this.elements = [];\r\n  }\r\n}\r\n\r\n"],"names":["generateId","LayerType"],"mappings":"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"}