BlockHolder Class

Description

持有并管理场景中的Block和Annotation。


Properties

blocks

typescript

public get blocks: BlockController[];

储存所有被持有的Block

annotations

typescript

public get annotations(): BlockAnnotationController[];

返回场景中所有的Annotation组件。

blockRoot

typescript

public get blockRoot(): BlockRootController;

public set blockRoot(value: BlockRootController): void;

场景中的BlockRootController组件。

currentTrackedBlock

typescript

public get currentTrackedBlock(): BlockController[];

当前已定位到的block。

xrShadow

typescript

public get xrShadow(): XrFrame.XRShadow;

public set xrShadow(value: XrFrame.XRShadow): void;

用于动态生成Block和Annotation的XRShadow节点。


Methods

getRoot

typescript

public getRoot(): BlockRootController;

获取场景中的BlockRootController组件。

holdEma

typescript

public holdEma(ema: IEmaData, option?: any): BlockHolder

持有一个ema数据,并在场景中创建对应的BlockController以及BlockAnnotationController

holdBlocks

typescript

public holdBlocks(blocks: IEmaBlockData[]): void;

持有一组block,并在场景中创建对应的BlockController

holdBlock

typescript

public holdBlock(blocks: IEmaBlockData): BlockController;

持有一个block,创建并返回场景中对应的BlockController

blockExist

typescript

public blockExist(id: string): boolean;

判断block是否存在。

getBlockById

typescript

public getBlockById(id: string): BlockController | null;

通过id获取一个block,不存在时返回null。

holdAnnotations

typescript

public holdAnnotations(blocks: IEmaAnnotationNodeData[]): BlockAnnotationController[];

持有一组annotation,并在场景中创建对应的BlockAnnotationController

holdAnnotation

typescript

public holdAnnotation(blocks: IEmaAnnotationNodeData): BlockAnnotationController;

持有一个annotation,创建并返回场景中对应的BlockAnnotationController

annotationExist

typescript

public annotationExist(id: string): boolean;

判断annotation是否存在。

getAnnotationById

typescript

public getAnnotationById(id: string): BlockAnnotationController | null;

通过id获取一个annotation,不存在时返回null。

onTracked

typescript

public onTracked(value: any): void;

改变定位状态,内部调用。

reset

typescript

public reset(): void;

重置BlockHolder,清空并删除所有的block和annotation; 注意:会释放所有的block和annotation及其所有子节点。

resetShadowRoot

typescript

public resetShadowRoot(): void;

重置blockRoot和shadowRoot的关系,内部调用。

release

typescript

public release(sceneExit?: boolean): void;

释放blockHolder,释放之后不可继续使用。