UNPKG

@realsee/dnalogel

Version:
79 lines (78 loc) 4.74 kB
import type { TagInstance, TagContentType, StickType, TagId, TagConfig, PlaneTag, MediaStore } from '../typings'; import * as THREE from 'three'; import type { Tag, Tags, PointTagInstance, Point3DTag } from '../typings'; import { TagCache } from './TagCache'; import type { CSS3DRenderPluginExportType } from '../../CSS3DRenderPlugin'; import { Five } from '@realsee/five'; import type { State as FiveState } from '@realsee/five'; import type { Mode } from '@realsee/five'; import { FiveDomEvents } from '../../shared-utils/five/FiveDomEvents'; import { WorkUtil } from '../../shared-utils/Utils/WorkUtil'; export declare abstract class TagUtil extends TagCache { tags: TagInstance[]; config: Pick<Tags, 'globalConfig' | 'contentTypeConfig'>; set workCode(workCode: string); get workCode(): string; workUtil: WorkUtil; protected mediaStore: MediaStore; /** css3DRenderPlugin */ protected css3DRenderPlugin?: CSS3DRenderPluginExportType; protected store: { /** 清理函数数组 */ disposers: (() => void)[]; visibleWithAnimation?: boolean; css3DRenderDisposer: Map<TagId, (() => void)[]>; eventListenerDisposer?: () => void; resizeObserverDisposer?: () => void; resizeObserverDisposerAdding: boolean; disposed: boolean; }; protected domEvents: FiveDomEvents; protected constructor(five: Five); getTagById<C extends TagContentType = TagContentType, S extends StickType = StickType>(id: TagId): TagInstance<C, S> | undefined; /** 暂停当前标签内进行的所有多媒体 */ pauseCurrentMedia(): void; /** * @description: 获取标签配置 */ getTagConfig(tag: Tag, params?: { useCache?: boolean; fiveMode?: Mode; }): TagConfig<"Panorama" | "Model" | "Custom" | "Audio" | "Text" | "ImageText" | "Image" | "Video" | "Link" | "Sticker" | "VRLink" | "PanoLink" | "Marketing" | "MediaPlane" | "MediaModel" | "Unknown">; /** * @description 获取标签当前状态 */ getCurrentVisibleState(tag: TagInstance): boolean; protected loadVideoFirstFrame: () => void; protected updateTagConfig(): void; protected can<T extends Tag>(action: 'show' | 'hide' | 'fold' | 'unfold', paramsTag: T): boolean; protected getRenderType(tag: TagInstance): 'Dom' | 'Mesh' | 'BehindDom'; /** * @description: 获取角度 */ protected getAngle(tag: Point3DTag | PlaneTag, panoIndex?: number): number; /** * @description: 获取距离 */ protected getDistance(tag: TagInstance, fiveState?: Partial<FiveState>): number; protected getPositions(tag: TagInstance): [THREE.Vector3, THREE.Vector3, THREE.Vector3, THREE.Vector3] | [import("../typings").ArrayPosition, import("../typings").ArrayPosition, import("../typings").ArrayPosition, import("../typings").ArrayPosition]; protected addObjectClickHandler(tag: TagInstance, object: THREE.Object3D | undefined, handler: (event: Event) => any): () => void; protected getTagNormal(tag: TagInstance): THREE.Vector3 | undefined; protected get filterPointTag(): PointTagInstance[]; protected get filter2DPointTag(): TagInstance<"Panorama" | "Model" | "Custom" | "Audio" | "Text" | "ImageText" | "Image" | "Video" | "Link" | "Sticker" | "VRLink" | "PanoLink" | "Marketing" | "MediaPlane" | "MediaModel" | "Unknown", "2DPoint">[]; protected get filterImagePlane(): TagInstance<"MediaPlane", "Plane">[]; protected get filterMediaModel(): TagInstance<"MediaModel", "Model">[]; protected get filterCSS3DTag(): (TagInstance<"Panorama" | "Model" | "Custom" | "Audio" | "Text" | "ImageText" | "Image" | "Video" | "Link" | "Sticker" | "VRLink" | "PanoLink" | "Marketing" | "MediaPlane" | "MediaModel" | "Unknown", "Plane"> | TagInstance<"Panorama" | "Model" | "Custom" | "Audio" | "Text" | "ImageText" | "Image" | "Video" | "Link" | "Sticker" | "VRLink" | "PanoLink" | "Marketing" | "MediaPlane" | "MediaModel" | "Unknown", "Model"> | TagInstance<"Panorama" | "Model" | "Custom" | "Audio" | "Text" | "ImageText" | "Image" | "Video" | "Link" | "Sticker" | "VRLink" | "PanoLink" | "Marketing" | "MediaPlane" | "MediaModel" | "Unknown", "3DPoint">)[]; protected getTransformedPostion(position: Tag['position']): THREE.Vector3 | [THREE.Vector3, THREE.Vector3, THREE.Vector3, THREE.Vector3]; /** * @description 检查是否已经销毁 * @returns isDisposed; 已经销毁返回 true,否则返回 false */ protected checkDisposed(): boolean; /** * @description: 获取merge后的配置 */ protected calculateTagConfig(tag: Tag | TagInstance, params?: { useCache?: boolean; }): TagInstance['computedConfig']; }