Files
frontend-miniapp/src/domain/guideModel.ts

41 lines
849 B
TypeScript

export interface GuideRenderPoi {
id: string
name: string
floorId: string
primaryCategory: string
primaryCategoryZh: string
iconType: string
positionGltf?: [number, number, number]
}
export interface GuideModelFloorAsset {
floorId: string
label: string
order: number
modelUrl: string
}
export interface GuideModelRenderPackage {
overviewModelUrl: string
floors: GuideModelFloorAsset[]
}
export interface GuideModelSource {
loadPackage(): Promise<GuideModelRenderPackage>
loadFloorPois(floorId: string): Promise<GuideRenderPoi[]>
}
export interface AutoSwitchConfig {
enabled: boolean
thresholdLowFactor: number
thresholdHighFactor: number
cooldownMs: number
}
export interface AutoSwitchEvent {
from: 'overview' | 'floor'
to: 'overview' | 'floor'
trigger: 'zoom-in' | 'zoom-out'
distance: number
}