@realsee/dnalogel
Version:
155 lines (154 loc) • 4.64 kB
TypeScript
/** 房屋数据映射表 */
export declare const ROOM_FETILE_TYPE_MAP: ({
type: number;
floorType: number;
roomType: string;
name: string;
onlySubArea?: undefined;
} | {
type: number;
floorType: number;
roomType: string;
name: string;
onlySubArea: boolean;
})[];
/** 地板信息映射表 */
export declare const FLOOR_TYPE_MAP: {
type: number;
description: string;
}[];
/** 房屋类型映射表 */
export declare const ROOM_TYPE_MAP: {
roomType: string;
description: string;
}[];
/** 户型图坐标,坐标原点时户型图中心点,单位是户型图单位 */
export interface FloorplanServerPosition {
x: number;
y: number;
}
/** 户型图图片坐标,坐标原点是图片左上角,取值范围是 [0, 1],表示距离左上角的相对距离 */
export interface FloorplanServerImagePosition {
x: number;
y: number;
}
/** 户型图线框图 */
export interface FloorplanServerOutlineItem {
url: string;
index: number;
checksum?: string;
svg_url?: string;
}
/** 户型图入户门 */
export interface FloorplanServerEntrance {
/** 入户门角度 */
rad: number;
/** 入户门所在的位置「户型图坐标系」 */
position: FloorplanServerPosition;
/** 入户门在户型图上相对坐标 */
position_in_image: FloorplanServerImagePosition;
/** 入户门与北的朝向 */
north_rad: number;
/** 入户门所在房间 ID */
room_id: string;
/** 入户门所楼层 */
floor_index: number;
}
/** 户型图 FloorplanServerBounding
* @description 坐标都是户型图坐标
*/
export interface FloorplanServerBounding {
/** 户型图在 X 和 Y 轴上的最大值 */
max: FloorplanServerPosition;
/** 户型图在 X 和 Y 轴上的最小值 */
min: FloorplanServerPosition;
/** 户型图的中心位置 */
origin: FloorplanServerPosition;
}
/** 户型图房屋标签 */
export interface FloorplanServerRoomLabelItem {
/** 房间的中心点坐标 */
position: FloorplanServerPosition;
/** 房间的中心在户型图上的相对位置 */
position_in_image: FloorplanServerImagePosition;
}
/** 户型图房间数据 */
export interface FloorplanServerRoomItem {
id: string;
/** 房间面积
* @description 单位是平方毫米
*/
size: number;
/** 房屋类型
* @description 对应关系参考上方 ROOM_DETAILS_TYPE_MAP
*/
type: number;
name: string;
customizedName?: string;
/** 围成房间区域的坐标路径
* @description 坐标类型是户型图坐标
*/
path: FloorplanServerPosition[];
/** 房屋类型
* @description 对应关系参考上方 ROOM_TYPE_MAP
*/
room_type: string;
/** 地板类型
* @description 对应关系参考上方 FLOOR_TYPE_MAP
*/
floor_type: number;
room_label: FloorplanServerRoomLabelItem;
/** 当前房间里的 observer 索引 */
observer_indexs: number[];
/** 当前房间的尺寸 */
dimension?: {
/** 房间宽度 */
width: number;
/** 房间高度 */
height: number;
};
}
export type FloorplanServerRuleLabels = Record<'top' | 'right' | 'bottom' | 'left', FloorplanServerPosition[][]>;
/** 当前楼层的数据 */
export interface FloorplanServerFloorData {
floor_name: string;
floor_index: number;
rooms: FloorplanServerRoomItem[];
rules: FloorplanServerRuleLabels;
/** 是否存在墙线 */
is_has_wall?: boolean;
}
/** 对 observer 做一些样式上的计算
* @description 每一个 FloorplanServer_observer 对应一个 observer
* @description FloorplanServer_observer 和 observer 在自身数组中的索引坐标应该是相同的
*/
export interface FloorplanServerObserver {
index: number;
floor_index: number;
position: FloorplanServerPosition;
position_in_image: FloorplanServerImagePosition;
}
export interface FloorplanServerDoorPosition {
x: number;
y: number;
z: number;
}
export interface FloorplanServerDoorItem {
id: string;
localName: string;
name: string;
position: FloorplanServerDoorPosition;
rad: number;
}
export interface FloorplanServerComputedData {
floor_datas: FloorplanServerFloorData[];
entrance: FloorplanServerEntrance | null;
bounding: FloorplanServerBounding;
observers: FloorplanServerObserver[];
doors: FloorplanServerDoorItem[];
}
/** 原始输入的户型图数据 */
export interface FloorplanServerData {
outlines: FloorplanServerOutlineItem[];
computed_data: FloorplanServerComputedData;
}