import { BaseDrawService } from '../../../core/draw/baseDraw'; import type { LetterTracingData } from '../generators/letter-tracing-generator'; import PictureTracingDraw from './pictureTracingDraw'; import CasePairingDraw from './casePairingDraw'; import ColumnCompareDraw from './columnCompareDraw'; import OverviewDraw from './overviewDraw'; /** * 字母描红绘制分发层。 * 根据 data.mode 委托给对应的独立 DrawService 完成实际绘制。 */ export default class LetterTracingDraw extends BaseDrawService { async draw(data: LetterTracingData) { const DrawClass = { 'picture-tracing': PictureTracingDraw, 'case-pairing': CasePairingDraw, 'column-compare': ColumnCompareDraw, overview: OverviewDraw, }[data.mode]; const delegate = new DrawClass(this.canvas, this.ctx, this.options); await delegate.draw(data as any); } }