UNPKG

@realsee/dnalogel

Version:
103 lines (102 loc) 4 kB
import type { Five } from '@realsee/five'; import * as BasePlugin from '../base/BasePlugin'; import type * as PluginType from './typings'; export declare class CurrentPanoImagePluginController extends BasePlugin.Controller<PluginType.State, PluginType.EventMap> { /** 插件当前状态 */ state: PluginType.State; /** 插件配置项 */ get config(): { width: number; yOffset: number; yRotate: number; imageURL: string; staticPrefix?: string; i18n?: (key: string) => string; /** 插件当前状态 */ }; /** 是否已经被销毁 */ get disposed(): boolean; /** 查询问题使用的调试对象 */ checkMsg: { /** mesh 隐藏的原因 */ meshHidden: string; /** 插件 enabled 校验信息 */ pluginDisabled: string; /** 插件 visible 校验信息 */ pluginHidden: string; }; private group; private mesh; private textureLoadingPromise?; private opacityAnimeTween?; /** 是否正在走点动画中 */ private isInPanoMoveAnime; /** 上一次走点的全景图索引 */ private lastArrivedPanoIndex; /** config 的原始值 */ private _config; /** disposed 的原始值 */ private _disposed; constructor(five: Five, params?: PluginType.Params); /** * 启用插件,响应用户操作并展示UI * @param options */ enable(options?: BasePlugin.BaseOptions): void; /** 禁用插件 * @param `options` `<Option> | <undefined>` * @param `options.userAction` `<boolean> | <undefined>` 是否是用户操作。默认是 true。 */ disable(options?: BasePlugin.BaseOptions): void; /** 插件内容整体展示 * @param `options` `<Partial<BaseOptions>> | <undefined>` * @param `options.userAction` `<boolean> | <undefined>` 是否是用户操作。默认是 true。 */ show(options?: Partial<PluginType.ShowHideOptions>): Promise<void>; /** 插件内容整体隐藏 * @param `options` `<Partial<BaseOptions>> | <undefined>` * @param `options.userAction` `<boolean> | <undefined>` 是否是用户操作。默认是 true。 */ hide(options?: Partial<PluginType.ShowHideOptions>): Promise<void>; /** 更改插件 State * @param `state` `<Partial<Plugin.State>>` 插件属性 `state` 的子集。 * @param `options` `<Option> | <undefined>` * @param `options.userAction` `<boolean> | <undefined>` 是否是用户操作。默认是 true。 */ setState(state: Partial<PluginType.State>, options?: BasePlugin.BaseOptions): void; /** 更改插件 Config * @param `config` `<Partial<Plugin.Config>>` 插件属性 `config` 的子集。 * @param `options` `<Option> | <undefined>` */ updateConfig(config: Partial<PluginType.Config>, options?: BasePlugin.BaseOptions): void; /** * 销毁插件 * @todo 销毁贴图时,最好还是直接销毁贴图吧,this.mesh?.material.map 这种都是很深层的引用了。THREE 的建议我看也是自己去管理和销毁公共贴图。 */ dispose: () => void; /** 问什么看不到模型 */ __whyCantSeeMesh(): string; private updateState; /** 根据各种条件更新 Mesh 的可见性 */ private updateMeshVisible; /** 根据点位更新 Mesh 坐标 */ private updateMeshPosition; /** 重新加载贴图,调用时会先清除已有的贴图 */ private reloadTexture; /** north_rad 变化时,需要更新模型的旋转角度 */ private updateMeshQuaternion; private checkMeshVisible; private _enable; private _disable; private _show; private _hide; /** 贴图加载完成的回调 */ private onTextureLoaded; /** Five load Work 后 */ private onFiveWillLoad; /** 走点前 */ private onFivePanoWillArrive; /** 走点后 */ private onFivePanoArrived; private onMeshVisibleChange; private onFiveModeChange; }