Files
3d-guiding-demo/src/types/map.types.ts
2025-12-09 16:07:11 +08:00

45 lines
985 B
TypeScript

// 地圖元素相關型別
export type MapElementType = 'aisle' | 'cashier' | 'entrance' | 'storage' | 'curved' | 'promo'
export interface Position3D {
x: number
y: number
z: number
}
export interface Dimensions3D {
width: number
height: number
depth: number
}
export interface MapElement {
id: string
type: MapElementType
floorIndex: number
position: Position3D
rotation: number // Y 軸旋轉角度(弧度)
dimensions: Dimensions3D
categoryId?: string // 指派的類別 ID
label?: string // 顯示標籤
}
export interface CurvedElement extends MapElement {
type: 'curved'
curvePoints: Position3D[] // 曲線控制點
curveType: 'arc' | 'bezier'
}
export interface StoreMap {
storeId: string
elements: MapElement[]
curvedElements: CurvedElement[]
}
// 編輯器模式
export type EditorMode = 'select' | 'move' | 'scale' | 'rotate' | 'add'
// 新增元素類型
export type AddElementType = MapElementType