/** * 九宫格背景配置 */ export interface NineSliceConfig { enabled: boolean; slice: [number, number, number, number]; width: [number, number, number, number]; repeat: 'stretch' | 'repeat' | 'round'; fill: boolean; radius: number; } /** * 主文本配置 */ export interface TextConfig { value: string; fontSize: number; color: string; fontWeight: 'normal' | 'bold'; fontStyle: 'normal' | 'italic'; offset: [number, number]; align: 'left' | 'center' | 'right'; spacing: number; bgUrl: string; hsl: [number, number, number]; bgNineSlice: NineSliceConfig; bgSlice: [number, number, number, number]; } /** * 内容文本配置 */ export interface ContentConfig { visible: boolean; value: string; fontSize: number; color: string; fontWeight: 'normal' | 'bold'; fontStyle: 'normal' | 'italic'; align: 'left' | 'center' | 'right'; offset: [number, number]; spacing: number; } /** * 面板配置 */ export interface InfoPanelConfig { text: TextConfig; content: ContentConfig; size: [number, number]; scale: number; userScale3: [number, number, number]; pixelLock: boolean; billboard: 'none' | 'yaw' | 'full'; anchor: 'top' | 'center' | 'bottom'; } /** * 面板可更新配置(Partial),用于 update / updateConfig */ export interface InfoPanelUpdateConfig { text?: Partial; content?: Partial; size?: [number, number]; scale?: number | [number, number, number]; pixelLock?: boolean; billboard?: 'none' | 'yaw' | 'full'; anchor?: 'top' | 'center' | 'bottom'; }