import type { ParseOptions } from './work'; import type { TilesetHeader } from "../model/tile3d/header"; export interface LooseWorkVideo { source: string; matrix: number[]; size: number[]; } export interface LooseWorkPanorama { active?: boolean; loadable?: boolean; index?: number; right?: string; left?: string; up?: string; down?: string; front?: string; back?: string; video?: LooseWorkVideo; tiles?: number[]; size_list?: number[]; derived_id?: number | string; derived_id_str?: string; } export interface LooseWorkInitial { mode?: string; pano_index?: number; panoIndex?: number; pano?: number; longitude?: number; latitude?: number; fov?: number; distance?: number; offset?: number[] | { x: number; y: number; z: number; }; heading?: number; } export interface LooseWorkModel { file_url?: string; material_textures?: string[]; material_base_url?: string; up_axis?: string; coordinate?: NonNullable['coordinate']; tiles?: { type?: 'point_cloud' | 'mesh' | 'gaussian_splatting' | string; name?: string; up_axis?: string; tileset_url: string; }; layers?: [ { type?: 'point_cloud' | 'mesh' | 'gaussian_splatting' | string; name?: string; up_axis?: string; tileset_url: string; } ]; } export interface LooseWorkObserver { active?: boolean; loadable?: boolean; index?: number; visible_nodes?: number[]; visibleNodes?: number[]; accessible_nodes?: number[]; accessibleNodes?: number[]; quaternion?: { y: number; x: number; z: number; w: number; }; standing_position?: number[]; standingPosition?: number[]; position?: number[]; floor?: number; floor_index?: number; floorIndex?: number; derived_id?: number | string; derived_id_str?: string; } export interface LooseWork { work_code?: string; code?: string; resource_code?: string; basic_code?: string; vr_code?: string; workCode?: string; project_id?: string; name?: string; modelAsync?: boolean; initial?: LooseWorkInitial; base_url?: string; model?: LooseWorkModel; panorama?: { base_url?: string; pano_high_cube_base_url?: string; pano_cube_base_url?: string; pattern?: LooseWorkPanorama; info?: LooseWorkPanorama[]; list?: LooseWorkPanorama[]; }; observers?: LooseWorkObserver[]; } export interface LooseWorkWithExtrinsics extends ParseOptions { /** work 数据 */ work: LooseWork; } export interface LoosePanoWork { name?: string; code?: string; up: string; down: string; right: string; left: string; front: string; back: string; size: number; }