hexa-viewer-communicator
Version:
A simple API for <hexa-viewer>
106 lines (105 loc) • 5.18 kB
TypeScript
import "regenerator-runtime/runtime.js";
import { IConfigurator } from "./interfaces/configurator.interface";
import { IEventObservable } from "./interfaces/event-observable.interface";
import { IPostMessage, MaterializeMeshConfig, IViewerCommunicator, MeshData, IViewerCommunicatorOptions, ICreateInstanceFromUrlOptions, Collision, IImagesByTourResponse, ILight, IShadowPlaneOptions, IHdriOptions, IAdjustmentsPresetJson, IBroadcastSceneSummaryOption, ISceneSummary, IMeshProps, JsonToHtmlObject, EventSelector, TutorialType, IExportOptions, IExpotedModel, IGifGenOptions, IMatcapOptions, IApplyTextureOptions, IBoundingBox, IAnimationOptions, ICameraControlsStateAnimation, IMaterialPropsOptions, ISwapMaterialType, IDiamondOptions } from "./interfaces/viewer-communicator.interface";
export declare class ViewerCommunicator implements IViewerCommunicator {
configurator: IConfigurator;
private _hexaViewer;
private _frameID;
private _isViewerLoaded;
private _isModelLoaded;
private _isAnimateEnterEnd;
private _isViewerListening;
private _onMessageBind;
private _meshesData;
private _mesheAnimations;
private _xrSupport;
private _eventObservable;
private _hasDestroyed;
private _onLoadingProgress;
constructor(options?: IViewerCommunicatorOptions);
get hexaViewer(): HTMLElement;
set hexaViewer(hv: HTMLElement);
get eventObservable(): IEventObservable;
get isModelLoaded(): boolean;
get hasDestroyed(): boolean;
get isViewerListening(): boolean;
private set isViewerListening(value);
private set isModelLoaded(value);
private initEventObservable;
private attachInstance;
private initFrameID;
private attachEvents;
private onMessage;
private _checkModelLoaded;
private _onAnimateEnterEnd;
private _onModelLoaded;
private _onViewerFullyLoaded;
private _onMeshesData;
private _onMeshAnimations;
private _updateViewerFullyLoaded;
onModelLoaded(): Promise<unknown>;
onModelReady(): Promise<unknown>;
onViewerListening(): Promise<unknown>;
onAnimateEnterEnd(): Promise<unknown>;
getMeshesData(): Promise<{
[id: string]: MeshData;
}>;
getMeshAnimations(): Promise<{
[id: string]: IAnimationOptions;
}>;
getMaterials(): Promise<{
[id: string]: IAnimationOptions;
}>;
updateMeshAnimations(meshAnimations: {
[id: string]: IAnimationOptions;
}): void;
private safeParse;
private generateUUID;
materializeMesh(meshName: string, config: MaterializeMeshConfig): void;
sendToViewer(msg: IPostMessage): void;
createInstanceFromUrl(viewerURL: string, params?: any, options?: ICreateInstanceFromUrlOptions): Promise<HTMLElement>;
private getUrlParams;
togglePicInPic(state: boolean): void;
toggleWireframe(state: boolean): void;
toggleUvMode(state: boolean): void;
toggleMatcapMode(state: boolean, options?: IMatcapOptions): void;
toggleHideBottom(state: boolean): void;
isWebXrSupported(): Promise<boolean>;
toggleWebXR(state: boolean, invokeWhenReady?: boolean): void;
toggleAR(state: boolean, invokeWhenReady?: boolean): void;
waitForCollisions(): Promise<Array<Collision>>;
toggleCollision(collisionMode: boolean, color?: string): void;
deleteCollision(position: number, count: number): void;
removeAllCollisions(): void;
adjustScene(): Promise<unknown>;
applyPreset(json: IAdjustmentsPresetJson): Promise<unknown>;
applyHDRI(hdri: IHdriOptions): void;
applyShadowPlane(shadowPlane: IShadowPlaneOptions): void;
broadcastSceneSummary(params?: IBroadcastSceneSummaryOption): Promise<ISceneSummary>;
setLightsByJson(lights: {
[id: string]: Array<ILight>;
}): Promise<unknown>;
onCreateImagesByTour(): Promise<IImagesByTourResponse>;
setMeshProps(optins: IMeshProps): void;
appendDynamicElement(obj: JsonToHtmlObject, events: Array<EventSelector>, selectorToAppend?: string): void;
controlsTutorial(types?: Array<TutorialType>): void;
toggleAutoRotate(state: boolean): void;
onModelInteraction(cb?: Function): Promise<string>;
goToInitialCamPos(): void;
getCurrentScreenshot(): Promise<string>;
expotModel(options: IExportOptions): Promise<IExpotedModel>;
getScreenshotsSequence(options?: IGifGenOptions): Promise<Array<string> | Blob>;
applyTexture(options: IApplyTextureOptions): void;
setMaterialProps(options: IMaterialPropsOptions): void;
swapMaterialType(options: ISwapMaterialType): void;
displayFiles(files: Array<Blob>): void;
getBoundingBox(): Promise<IBoundingBox>;
toggleNoDistanceLimit(state: boolean): Promise<void>;
toggleCloseup(state: boolean): Promise<void>;
setCameraPosition(pos: ICameraControlsStateAnimation): Promise<void>;
setDiamonds(state: boolean, meshesNames: Array<string>, options: IDiamondOptions): Promise<void>;
getDiamondsOptions(): Promise<IDiamondOptions>;
registerForLoadingProgress(callback: Function | any): void;
destroy(): void;
}