/** * Billboard * * A 2D billboard element that always faces the camera. * Used for sprites, UI elements, and always-visible markers. */ import { OutlinerElement, OutlinerElementData } from './outliner_element'; import { BillboardFace, BillboardFaceData } from './billboard_face'; import { Vector3 } from '../modeling/transform'; export interface BillboardData extends OutlinerElementData { position?: Vector3; size?: [number, number]; offset?: [number, number]; color?: number; visibility?: boolean; shade?: boolean; autouv?: number; facing_mode?: 'lookat' | 'lookat_y' | 'rotate' | 'rotate_y'; faces?: { front?: BillboardFaceData; }; } export declare class Billboard extends OutlinerElement { position: Vector3; size: [number, number]; offset: [number, number]; color: number; shade: boolean; autouv: number; facing_mode: 'lookat' | 'lookat_y' | 'rotate' | 'rotate_y'; private _faces; constructor(data?: BillboardData, uuid?: string); get origin(): Vector3; get faces(): { front: BillboardFace; }; extend(object: BillboardData): this; getUndoCopy(aspects?: number): BillboardData; getSaveCopy(): BillboardData; /** * Flip billboard along axis */ flip(axis: 0 | 1 | 2): this; /** * Get world center position * Framework adapters should override this for their coordinate system */ getWorldCenter(): Vector3; /** * Set color index */ setColor(index: number): this; /** * Apply texture to billboard */ applyTexture(texture: any): void; /** * Move billboard by vector */ moveVector(arr: Vector3 | number, axis?: number, update?: boolean): this; /** * Resize billboard */ resize(val: number | ((n: number) => number), axis: 0 | 1, negative?: boolean): this; /** * Map auto UV based on size * Framework adapters should override this for texture size handling */ mapAutoUV(): void; static behavior: { select_faces: boolean; cube_faces: boolean; movable: boolean; resizable: boolean; unique_name: boolean; }; } //# sourceMappingURL=billboard.d.ts.map