@realsee/dnalogel
Version:
36 lines (35 loc) • 1.56 kB
TypeScript
import type PanoTagPluginController from '..';
import type { Tag, TagContentType, Tag as TagData, TagInstance } from '../..';
import { BaseTag } from './BaseTag';
import type { PartialObjectDeep } from '../../../typings/typings';
import type { Vector3 } from 'three';
import { Rectangle } from '../../../Sculpt/Objects/Rectangle';
export type PlaneTagInterface<C extends TagContentType = TagContentType> = TagInstance<C, 'Plane'>;
export declare class PlaneTag<C extends TagContentType = TagContentType> extends BaseTag<C, 'Plane'> {
rectanglePlane?: Rectangle;
private _floorIndex?;
private _floorIndexDirty;
private _opacity?;
constructor(plugin: PanoTagPluginController, tagData: TagData);
/** 获取透明度 */
get opacity(): number;
/** 设置透明度 (0-1) */
set opacity(value: number);
/** 获取楼层索引(惰性计算 + 缓存) */
get floorIndex(): number | undefined;
/** 标记 floorIndex 需要重新计算(在位置等相关数据变化时调用) */
invalidateFloorIndex(): void;
applyVisible(): void;
set(tag: PartialObjectDeep<Tag<C, 'Plane'>>, deepMerge?: boolean): void;
setData(...data: Parameters<InstanceType<typeof BaseTag<C, 'Plane'>>['setData']>): void;
/** 计算楼层索引 */
private computeFloorIndex;
private loadModel;
private initialSculpt;
editorEnable(): void;
editorDisable(position?: Vector3[]): void;
private renderVideoPlane;
private renderImagePlane;
private renderEmptyPlane;
computeNormal(): Vector3;
}