cmpt
Version:
A TypeScript library for parsing and building B3DM (Batched 3D Model) files
24 lines (23 loc) • 903 B
text/typescript
import { parseB3dm, buildB3dm } from '../src';
import { readFileSync, writeFileSync } from 'fs';
import { expect, test } from 'vitest'
// 测试:读取GLB文件 → 构建B3DM → 解析B3DM → 验证一致性
test('build and parse b3dm', () => {
// 读取本地GLB文件(需自行准备测试文件)
const glbData = readFileSync('./test/test.glb');
// 构建B3DM
const b3dmBuffer = buildB3dm({
glbData,
featureTableJSON: {
RTC_CENTER: [120.0, 30.0, 0.0], // 地理坐标(示例)
},
});
// 写入B3DM文件
writeFileSync('./test/output.b3dm', new Uint8Array(b3dmBuffer));
// 解析B3DM
const parsed = parseB3dm(b3dmBuffer);
// 验证解析结果
expect(parsed.header.magic).toBe('b3dm');
expect(parsed.featureTable.json.RTC_CENTER).toEqual([120.0, 30.0, 0.0]);
expect(parsed.glbData.byteLength).toBe(glbData.byteLength);
});