cmpt
Version:
A TypeScript library for parsing and building B3DM (Batched 3D Model) files
33 lines (31 loc) • 1.36 kB
text/typescript
/** B3DM 文件头结构(共28字节) */
export interface B3dmHeader {
magic: string; // 4字节,固定为"b3dm"
version: number; // 4字节,版本号(通常为1)
byteLength: number; // 4字节,文件总长度
featureTableJSONByteLength: number; // 4字节,特征表JSON长度
featureTableBinaryByteLength: number; // 4字节,特征表二进制长度
batchTableJSONByteLength: number; // 4字节,批量表JSON长度
batchTableBinaryByteLength: number; // 4字节,批量表二进制长度
}
/** B3DM 完整数据结构 */
export interface B3dmData {
header: B3dmHeader;
featureTable: { // 特征表(地理信息等)
json: Record<string, any>;
binary?: Uint8Array;
};
batchTable?: { // 批量表(模型属性等,可选)
json: Record<string, any>;
binary?: Uint8Array;
};
glbData: Uint8Array; // 内嵌的GLB模型数据
}
/** 构建B3DM的选项 */
export interface B3dmBuildOptions {
glbData: Uint8Array; // 输入的GLB二进制数据
featureTableJSON?: Record<string, any>; // 特征表JSON
featureTableBinary?: Uint8Array; // 特征表二进制
batchTableJSON?: Record<string, any>; // 批量表JSON
batchTableBinary?: Uint8Array; // 批量表二进制
}