s3m-three 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +1 -1
  2. package/dist/browser/s3m-three.iife.ext-three.js +163 -15
  3. package/dist/browser/s3m-three.iife.js +190 -42
  4. package/dist/core/AtlasAlpha.d.ts +31 -0
  5. package/dist/core/AtlasAlpha.d.ts.map +1 -0
  6. package/dist/core/AtlasAlpha.js +82 -0
  7. package/dist/core/AtlasAlpha.js.map +1 -0
  8. package/dist/core/AtlasPack.d.ts +57 -0
  9. package/dist/core/AtlasPack.d.ts.map +1 -0
  10. package/dist/core/AtlasPack.js +81 -0
  11. package/dist/core/AtlasPack.js.map +1 -0
  12. package/dist/core/AtlasUpgrade.d.ts +68 -0
  13. package/dist/core/AtlasUpgrade.d.ts.map +1 -0
  14. package/dist/core/AtlasUpgrade.js +154 -0
  15. package/dist/core/AtlasUpgrade.js.map +1 -0
  16. package/dist/core/DXTTextureDecode.d.ts.map +1 -1
  17. package/dist/core/DXTTextureDecode.js +28 -6
  18. package/dist/core/DXTTextureDecode.js.map +1 -1
  19. package/dist/core/Draco.d.ts +52 -0
  20. package/dist/core/Draco.d.ts.map +1 -0
  21. package/dist/core/Draco.js +323 -0
  22. package/dist/core/Draco.js.map +1 -0
  23. package/dist/core/MeshOpt.d.ts +14 -3
  24. package/dist/core/MeshOpt.d.ts.map +1 -1
  25. package/dist/core/MeshOpt.js +101 -18
  26. package/dist/core/MeshOpt.js.map +1 -1
  27. package/dist/core/S3M1Parser.d.ts +16 -0
  28. package/dist/core/S3M1Parser.d.ts.map +1 -0
  29. package/dist/core/S3M1Parser.js +367 -0
  30. package/dist/core/S3M1Parser.js.map +1 -0
  31. package/dist/core/S3MBParser.d.ts +43 -1
  32. package/dist/core/S3MBParser.d.ts.map +1 -1
  33. package/dist/core/S3MBParser.js +101 -23
  34. package/dist/core/S3MBParser.js.map +1 -1
  35. package/dist/core/S3MBlockParser.d.ts +209 -0
  36. package/dist/core/S3MBlockParser.d.ts.map +1 -0
  37. package/dist/core/S3MBlockParser.js +789 -0
  38. package/dist/core/S3MBlockParser.js.map +1 -0
  39. package/dist/core/TextureFormat.d.ts +0 -1
  40. package/dist/core/TextureFormat.d.ts.map +1 -1
  41. package/dist/core/TextureFormat.js +19 -2
  42. package/dist/core/TextureFormat.js.map +1 -1
  43. package/dist/core/types.d.ts +65 -0
  44. package/dist/core/types.d.ts.map +1 -1
  45. package/dist/index.d.ts +3 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +2 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/render/DatasetManager.d.ts +11 -0
  50. package/dist/render/DatasetManager.d.ts.map +1 -1
  51. package/dist/render/DatasetManager.js +68 -3
  52. package/dist/render/DatasetManager.js.map +1 -1
  53. package/dist/render/GeometryBuilder.d.ts +3 -0
  54. package/dist/render/GeometryBuilder.d.ts.map +1 -1
  55. package/dist/render/GeometryBuilder.js +189 -17
  56. package/dist/render/GeometryBuilder.js.map +1 -1
  57. package/dist/render/GroundManager.d.ts +57 -1
  58. package/dist/render/GroundManager.d.ts.map +1 -1
  59. package/dist/render/GroundManager.js +149 -21
  60. package/dist/render/GroundManager.js.map +1 -1
  61. package/dist/render/Picker.d.ts.map +1 -1
  62. package/dist/render/Picker.js +12 -4
  63. package/dist/render/Picker.js.map +1 -1
  64. package/dist/render/PointCloudMaterial.d.ts +36 -0
  65. package/dist/render/PointCloudMaterial.d.ts.map +1 -0
  66. package/dist/render/PointCloudMaterial.js +159 -0
  67. package/dist/render/PointCloudMaterial.js.map +1 -0
  68. package/dist/render/S3MViewer.d.ts +75 -3
  69. package/dist/render/S3MViewer.d.ts.map +1 -1
  70. package/dist/render/S3MViewer.js +284 -54
  71. package/dist/render/S3MViewer.js.map +1 -1
  72. package/dist/render/StyleMaterial.d.ts +6 -0
  73. package/dist/render/StyleMaterial.d.ts.map +1 -1
  74. package/dist/render/StyleMaterial.js +125 -2
  75. package/dist/render/StyleMaterial.js.map +1 -1
  76. package/dist/render/TextureFactory.d.ts.map +1 -1
  77. package/dist/render/TextureFactory.js +64 -10
  78. package/dist/render/TextureFactory.js.map +1 -1
  79. package/dist/tileset/S3MTileset.d.ts +177 -1
  80. package/dist/tileset/S3MTileset.d.ts.map +1 -1
  81. package/dist/tileset/S3MTileset.js +754 -60
  82. package/dist/tileset/S3MTileset.js.map +1 -1
  83. package/dist/vendor/crunch_decoder.module.js +12 -18
  84. package/dist/vendor/draco_decoder.module.js +3178 -0
  85. package/docs/API.md +150 -11
  86. package/package.json +1 -1
  87. package/src/core/AtlasAlpha.ts +82 -0
  88. package/src/core/AtlasPack.ts +127 -0
  89. package/src/core/AtlasUpgrade.ts +182 -0
  90. package/src/core/DXTTextureDecode.ts +28 -6
  91. package/src/core/Draco.ts +409 -0
  92. package/src/core/MeshOpt.ts +124 -18
  93. package/src/core/S3M1Parser.ts +430 -0
  94. package/src/core/S3MBParser.ts +112 -21
  95. package/src/core/S3MBlockParser.ts +953 -0
  96. package/src/core/TextureFormat.ts +20 -2
  97. package/src/core/types.ts +63 -0
  98. package/src/index.ts +3 -1
  99. package/src/render/DatasetManager.ts +70 -5
  100. package/src/render/GeometryBuilder.ts +212 -16
  101. package/src/render/GroundManager.ts +174 -20
  102. package/src/render/Picker.ts +13 -4
  103. package/src/render/PointCloudMaterial.ts +174 -0
  104. package/src/render/S3MViewer.ts +322 -55
  105. package/src/render/StyleMaterial.ts +135 -2
  106. package/src/render/TextureFactory.ts +67 -11
  107. package/src/tileset/S3MTileset.ts +798 -65
  108. package/src/vendor/crunch_decoder.module.js +12 -18
  109. package/src/vendor/draco_decoder.module.d.ts +128 -0
  110. package/src/vendor/draco_decoder.module.js +3178 -0
@@ -7,10 +7,12 @@
7
7
  * 与官方实现的差异:
8
8
  * 1. 不依赖 Cesium —— 输出纯数据对象,几何上传交给渲染层。
9
9
  * 2. 修复了官方 v3 非压缩分支把整个 ArrayBuffer(含文件头)当数据流的缺陷。
10
- * 3. Draco / MeshOpt 几何压缩只做识别,不做解码(需要额外的 wasm 解码器)。
10
+ * 3. Draco 点云 / MeshOpt 几何压缩都用内联 wasm 解码器还原,与标准骨架同路输出。
11
11
  */
12
12
  import { BinaryReader } from './BinaryReader.js';
13
- import { parseMeshOptSkeleton, parseMeshOptIndexPackages } from './MeshOpt.js';
13
+ import { parseDracoGeometry } from './Draco.js';
14
+ import { parseMeshOptGeometry } from './MeshOpt.js';
15
+ import { isS3M1Buffer, parseS3M1 } from './S3M1Parser.js';
14
16
  export const S3M_VERSION = { V1: 1.0, V2: 2.0, V3: 3.0 };
15
17
  export const VertexTag = { UNKNOWN: 0, STANDARD: 1, COMPRESSED: 2, DRACO: 3 };
16
18
  export const VertexTagV3 = { STANDARD: 0, DRACO: 1, MESHOPT: 2 };
@@ -83,8 +85,11 @@ function parsePageLOD(r, version) {
83
85
  r.string(); // 动画 JSON,暂不解析
84
86
  return pageLod;
85
87
  }
86
- function parseGroupNode(r, version) {
87
- r.u32(); // streamSize
88
+ /**
89
+ * pageLOD 条目序列(无 streamSize 前缀)。
90
+ * 经典 s3mb 的 groupNode 与 S3MBLOCK 的 shell 段共用这一段。
91
+ */
92
+ export function parseGroupNodeEntries(r, version) {
88
93
  const count = r.u32();
89
94
  const pageLods = [];
90
95
  for (let i = 0; i < count; i++)
@@ -92,6 +97,10 @@ function parseGroupNode(r, version) {
92
97
  r.align4();
93
98
  return { pageLods };
94
99
  }
100
+ export function parseGroupNode(r, version) {
101
+ r.u32(); // streamSize
102
+ return parseGroupNodeEntries(r, version);
103
+ }
95
104
  /* ------------------------------------------------------------ 顶点数据包 */
96
105
  function parseVertex(r, vp) {
97
106
  const count = r.u32();
@@ -273,22 +282,34 @@ function parseIndexPackages(r, version) {
273
282
  return packs;
274
283
  }
275
284
  /* ------------------------------------------------------------------ 骨架 */
285
+ /** v3 骨架条目末尾的包围盒大小:center + xExtent/yExtent/zExtent 各 3 个 float64 */
286
+ const OBB_V3_SIZE = 96;
276
287
  /**
277
288
  * v3 骨架末尾的包围盒。
278
289
  *
279
290
  * v3.01 的实际数据在索引包之后、包围盒之前多了一个 4 字节字段(实测恒为 0,
280
- * 推测是线框几何的长度)。规范里没有写,标准骨架是否也有无法验证,
281
- * 所以这里做一次「读一遍看像不像包围盒」的判断,不像就跳 4 字节重读。
291
+ * 推测是线框几何的长度)。规范里没有写,标准骨架是否也有无法验证。
292
+ *
293
+ * 首选路径是 parseSkeletonEntries 里按 skeletonStreamSize 直接定位到「条目末尾
294
+ * 96 字节」——那是生产端写死的权威边界,不用猜。这里只保留 streamSize 不可用时
295
+ * (S3MBLOCK 内层、末条越界)的启发式兜底:读一遍看像不像包围盒,不像就跳 4 字节重读。
296
+ *
297
+ * 注意「不像」的判定必须只针对垃圾值(非有限 / 超出地球量级):
298
+ * 点云叶子瓦片只有一个点,extent 合法地为 0,退化包围盒是正常数据,
299
+ * 不能因为 extent≈0 就认定错位 —— 否则流会整体偏 4 字节,
300
+ * 下一个骨架的名字长度会读到 ASCII 数字上(如 858992690 = "2033"),
301
+ * 直接 RangeError。
282
302
  */
283
303
  function readV3BoundingBox(r) {
284
304
  const start = r.offset;
285
305
  const box = r.boundingBox();
286
- if (isPlausibleBox(box))
287
- return;
306
+ if (isFiniteBox(box))
307
+ return box;
288
308
  r.offset = start + 4;
289
- r.boundingBox();
309
+ return r.boundingBox();
290
310
  }
291
- function isPlausibleBox(box) {
311
+ /** 只排除垃圾值; extent 为 0 的退化包围盒(单点点云)是合法数据 */
312
+ function isFiniteBox(box) {
292
313
  const all = [box.center, box.xExtent, box.yExtent, box.zExtent];
293
314
  for (const v of all) {
294
315
  if (!Number.isFinite(v.x) || !Number.isFinite(v.y) || !Number.isFinite(v.z))
@@ -296,16 +317,27 @@ function isPlausibleBox(box) {
296
317
  if (Math.abs(v.x) > 1e7 || Math.abs(v.y) > 1e7 || Math.abs(v.z) > 1e7)
297
318
  return false;
298
319
  }
299
- const len = (v) => Math.hypot(v.x, v.y, v.z);
300
- return len(box.xExtent) > 1e-6 && len(box.yExtent) > 1e-6 && len(box.zExtent) > 1e-6;
320
+ return true;
301
321
  }
302
- async function parseSkeletons(r, version, trace) {
303
- r.u32(); // streamSize
322
+ /**
323
+ * 骨架条目序列(count 已由调用方语境决定是否读过)。
324
+ * 经典 s3mb 与 S3MBLOCK 的骨架段都长这样,区别只是外层有没有 streamSize / 附加流。
325
+ */
326
+ export async function parseSkeletonEntries(r, version, trace) {
304
327
  const count = r.u32();
305
328
  const geoPackage = {};
306
329
  for (let i = 0; i < count; i++) {
307
- if (version >= 3)
308
- r.u32(); // skeletonStreamSize
330
+ // v3 起每块骨架自带 streamSize,覆盖「本字段之后 → 下一条记录开头」整段。
331
+ // 这是唯一可靠的条目边界:几何段与末尾 OBB 之间可能还有对齐填充
332
+ // (实测高斯泼溅/点云的多块瓦片里,第 3 块就比别块多 4 字节 pad),
333
+ // 靠「读够固定长度」往后推会整条流错位。
334
+ let entryEnd = -1;
335
+ if (version >= 3) {
336
+ const streamSize = r.u32();
337
+ const end = r.offset + streamSize;
338
+ if (streamSize >= OBB_V3_SIZE && end <= r.view.byteLength)
339
+ entryEnd = end;
340
+ }
309
341
  const name = r.string();
310
342
  r.align4();
311
343
  let tag = r.u32();
@@ -324,8 +356,8 @@ async function parseSkeletons(r, version, trace) {
324
356
  }
325
357
  else if (tag === VertexTag.COMPRESSED) {
326
358
  if (version >= 3) {
327
- await parseMeshOptSkeleton(r, vp);
328
- indexPackages = await parseMeshOptIndexPackages(r);
359
+ // 索引包夹在块之间,不能拆成「先骨架后索引」两步读
360
+ indexPackages = (await parseMeshOptGeometry(r, vp)).indexPackages;
329
361
  }
330
362
  else {
331
363
  parseCompressedSkeleton(r, vp, version);
@@ -333,20 +365,42 @@ async function parseSkeletons(r, version, trace) {
333
365
  }
334
366
  }
335
367
  else if (tag === VertexTag.DRACO) {
336
- throw new Error(`[s3m] 骨架 "${name}" 使用 Draco 几何压缩,需接入 draco3d 解码器`);
368
+ // 点云分支:容器自带属性 uid 表,解出来的顶点即点,索引包由解析器合成
369
+ indexPackages = await parseDracoGeometry(r, vp);
337
370
  }
338
371
  else {
339
372
  throw new Error(`[s3m] 未知骨架标记 ${tag}(${name})`);
340
373
  }
341
- if (version >= 3)
342
- readV3BoundingBox(r);
374
+ let obb;
375
+ if (version >= 3) {
376
+ if (entryEnd >= 0 && entryEnd - r.offset >= OBB_V3_SIZE) {
377
+ // OBB 恒定在条目末尾 96 字节:中间多出来的按填充丢掉,
378
+ // 这样即使几何段里还有个我们没认出来的字段,也不会波及后面的记录
379
+ const pad = entryEnd - r.offset - OBB_V3_SIZE;
380
+ if (pad > 0)
381
+ trace?.(' skelPad', pad, r.offset);
382
+ r.offset = entryEnd - OBB_V3_SIZE;
383
+ obb = readV3BoundingBox(r);
384
+ r.offset = entryEnd;
385
+ }
386
+ else {
387
+ // 没有可用的 streamSize(S3MBLOCK 内层、或末条越界),只能按启发式读
388
+ obb = readV3BoundingBox(r);
389
+ }
390
+ }
343
391
  trace?.(' skel', name, r.offset);
344
- geoPackage[name] = { name, vertexPackage: vp, indexPackages };
392
+ geoPackage[name] = { name, vertexPackage: vp, indexPackages, obb };
345
393
  }
394
+ return geoPackage;
395
+ }
396
+ export async function parseSkeletons(r, version, trace) {
397
+ r.u32(); // streamSize
398
+ const geoPackage = await parseSkeletonEntries(r, version, trace);
346
399
  // v1/v2 在骨架数组之后还有一段附加流。官方写法是
347
400
  // bytesOffset += secColorSize; bytesOffset += 4;
348
401
  // 其中读取 secColorSize 时不推进指针,等价于「起点 + 长度 + 4」。
349
402
  // 此时 r.offset 已在长度字段之后,所以只补长度即可。
403
+ // (S3MBLOCK 没有这一段——secondColor 在段目录里是独立条目)
350
404
  if (version < 3) {
351
405
  const extra = r.u32();
352
406
  r.skip(extra);
@@ -385,7 +439,7 @@ function parseMaterials(r) {
385
439
  * 单体化信息。非实例化数据里每个单体对应一段连续的顶点区间,
386
440
  * 这里把它展开成逐顶点的 batchId 属性,渲染层可直接做 GPU picking。
387
441
  */
388
- function parsePickInfo(r, options, geoPackage, version) {
442
+ export function parsePickInfo(r, options, geoPackage, version) {
389
443
  let flags = options;
390
444
  if ((flags & 1) !== 1)
391
445
  return null;
@@ -394,6 +448,13 @@ function parsePickInfo(r, options, geoPackage, version) {
394
448
  if ((flags & 1) !== 1)
395
449
  return null;
396
450
  r.u32(); // streamSize
451
+ return parsePickInfoEntries(r, geoPackage, version);
452
+ }
453
+ /**
454
+ * 单体化条目序列(无 flags / streamSize 前缀)。
455
+ * 经典 s3mb 在流内自带 streamSize;S3MBLOCK 的段目录里没有,由调用方按目录切好传入。
456
+ */
457
+ export function parsePickInfoEntries(r, geoPackage, version) {
397
458
  const count = r.u32();
398
459
  const result = {};
399
460
  for (let i = 0; i < count; i++) {
@@ -449,7 +510,24 @@ function parsePickInfo(r, options, geoPackage, version) {
449
510
  return result;
450
511
  }
451
512
  /* ------------------------------------------------------------------ 入口 */
513
+ /**
514
+ * 容器层面的永久错误(格式不认识、重试一万次也不会变好)。
515
+ * 瓦片调度看到 permanent 就不再退避重试,免得反复重下一整块瓦片。
516
+ */
517
+ export class S3MFormatError extends Error {
518
+ permanent = true;
519
+ constructor(message) {
520
+ super(message);
521
+ this.name = 'S3MFormatError';
522
+ }
523
+ }
452
524
  export async function parseS3MB(arrayBuffer, options = {}) {
525
+ // S3M 1.x(SuperMapCache,.s3m)不是「float32 版本号开头」的容器:头 4 字节是魔数
526
+ // s3m\0,紧接 zlib。不当场分流的话,这 4 字节会被读成 1e-38 的「版本号」,再把 zlib
527
+ // 头当压缩长度,最后报出 RangeError: Invalid typed array length 这种看不出根因的错。
528
+ // 容器与结构标定见 S3M1Parser.ts。
529
+ if (isS3M1Buffer(arrayBuffer))
530
+ return parseS3M1(arrayBuffer, options);
453
531
  const inflate = options.inflate ?? defaultInflate;
454
532
  const trace = options.trace;
455
533
  const r = new BinaryReader(arrayBuffer);
@@ -1 +1 @@
1
- {"version":3,"file":"S3MBParser.js","sourceRoot":"","sources":["../../src/core/S3MBParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"S3MBParser.js","sourceRoot":"","sources":["../../src/core/S3MBParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,209 @@
1
+ import type { InflateFn } from './S3MBParser.js';
2
+ import type { ParsedTile } from './types.js';
3
+ /** 图集子区域,以及它绑定的几何顶点区间 */
4
+ export interface S3MSubTextureBinding {
5
+ geoName: string;
6
+ vertexOffset: number;
7
+ vertexCount: number;
8
+ /** 0 → uv,1 → uv2 */
9
+ texUnitIndex: number;
10
+ }
11
+ export interface S3MSubTexture {
12
+ subName: string;
13
+ offsetX: number;
14
+ offsetY: number;
15
+ width: number;
16
+ height: number;
17
+ bindings: S3MSubTextureBinding[];
18
+ }
19
+ /** 一张共享图集。data 为空表示数据在别的块里(requestNames 列出要去取的文件) */
20
+ export interface S3MBlockTexture {
21
+ id: string;
22
+ level: number;
23
+ width: number;
24
+ height: number;
25
+ compressType: number;
26
+ pixelFormat: number;
27
+ data: Uint8Array | null;
28
+ childTexNames: string[];
29
+ requestNames: string[];
30
+ subTexInfos: S3MSubTexture[];
31
+ /** 拼图后为 false(数据自上而下),原始 DXT 图集为 true */
32
+ flipY?: boolean;
33
+ /** 已被 packAtlases 合并进一张大图 */
34
+ packed?: boolean;
35
+ /** 拼图集合签名,纹理缓存 key 用 */
36
+ packKey?: string;
37
+ /**
38
+ * `subTexInfos` 的像素坐标相对于**当前**像素的倍数(默认 1)。
39
+ * 换成整数倍高清图后置为倍数:rect 是归一化的,但 offset/width 是像素,
40
+ * 不换算就会落在一半的位置上,平铺时逐格漂移。
41
+ */
42
+ rectScale?: number;
43
+ /**
44
+ * leaf 模式:像素是按 `subTexInfos` 把多张精灵贴出来的**自上而下 RGBA 画布**。
45
+ * 与 `packed` 独立(可能只有一张图集、没进拼图),但行序/关 mip 的要求相同。
46
+ */
47
+ composed?: boolean;
48
+ /** 组合画布的内容签名(`源#精灵名` 排序拼接);拼进大图后并入 packKey 区分同 id 不同内容 */
49
+ leafSig?: string;
50
+ }
51
+ export interface S3MBlockPageLod {
52
+ rangeValue: number;
53
+ rangeMode: number;
54
+ boundingSphere: {
55
+ center: {
56
+ x: number;
57
+ y: number;
58
+ z: number;
59
+ };
60
+ radius: number;
61
+ };
62
+ childTile: string;
63
+ }
64
+ export interface S3MBlockTile extends ParsedTile {
65
+ /** 容器版本的原始 float(2.1) */
66
+ blockVersion: number;
67
+ /** 块文件名(去掉 .s3mblock 后缀) */
68
+ blockName: string;
69
+ texturePackage: Record<string, S3MBlockTexture>;
70
+ }
71
+ export interface ParseBlockOptions {
72
+ inflate?: InflateFn;
73
+ }
74
+ /**
75
+ * 把拼图退回原始图集(`_fillExternalAtlases` 换高清图之前调用)。
76
+ *
77
+ * ★ 调用后 `tile.textures` / `tile.atlasRects` 会被清空 —— 它们描述的是**拼图**坐标系,
78
+ * 而此刻像素已经退回单张图集,两者不再自洽。必须紧接着调用
79
+ * `rebuildBlockTextureState` 才能拿去渲染。清空而不是留着旧值,是为了让「忘了重拼」
80
+ * 立刻表现为无贴图,而不是画面上莫名其妙的错位。
81
+ */
82
+ export declare function unpackBlockTextures(tile: S3MBlockTile): boolean;
83
+ /**
84
+ * 重算「纹理表 + 逐顶点矩形」。
85
+ *
86
+ * 调用时机:拼图状态刚变化过(首次解析、或换完高清图重拼)。两者必须一起重算 ——
87
+ * `atlasRects` 是拼图坐标系,`textures` 是喂给渲染侧的 map,**不同步就是满屏雪花**
88
+ * (见第十一轮事故)。
89
+ */
90
+ export declare function rebuildBlockTextureState(tile: S3MBlockTile): void;
91
+ /** `.texblock` 里的一张图集图像(同一套排布的清晰版,没有自己的 subTexInfos) */
92
+ export interface S3MBlockAtlasImage {
93
+ id: string;
94
+ width: number;
95
+ height: number;
96
+ compressType: number;
97
+ pixelFormat: number;
98
+ data: Uint8Array;
99
+ }
100
+ /**
101
+ * 解析独立的 `.texblock` 文件,返回**按段分组**的全部图像记录。
102
+ *
103
+ * 实测三种外层格式(判定顺序即优先级):
104
+ *
105
+ * 1. **动态 pack(kMi 协议)**:`u32 count | u32 zippedLength[count] | 段[count]`,
106
+ * 每段 = 普通容器。这是 TextureSharing leaf 模式引擎真正会拉的响应:
107
+ * `GET Tex_0_<code>.texblock?extratiles=Tex_0_000;Tex_0_009;…` —— extratiles 是
108
+ * **去扩展名**的 quadKey(带 `.texblock` 会被服务端解成别的内容),段顺序与之
109
+ * 一一对应,官方 `kMi(buffer, quadKeyIndex)` 就是取第 i 段。
110
+ * 守卫:count ≤ 256(官方 kMi 同限)且头部算术严丝合缝。
111
+ * 2. **静态 pack**:`u32 count | (offset,length)[count] | 段`,段 = 单条
112
+ * `{nameLen|name|unzip|zip|zlib}` 条目(没有段头 count)。`Tex_0.texblock`
113
+ * (275 段)是这个格式 —— 但它只是离线索引,引擎并不请求它。
114
+ * 3. **普通容器**:`u32 count | {nameLen|name|unzip|zip|zlib} × count`。
115
+ * `Tile_6_000000.texblock`(16 条记录)、`911305599.texblock`(1 条)属于这类。
116
+ *
117
+ * 段语义:pack 的第 i 段对应第 i 个请求名;容器整体算一段。
118
+ * 记录 `id` = 条目名(如 `117_0.texblock`),leaf 组合时用它对 `subTexInfos.subName`。
119
+ *
120
+ * 容器不再只读第一条:旧实现把 `count` 之外的条目全扔了,多记录容器
121
+ * (`Tile_6_000000` 这类)只能拿到第一张精灵。
122
+ */
123
+ export declare function parseTexblockSegments(arrayBuffer: ArrayBuffer, options?: ParseBlockOptions): Promise<S3MBlockAtlasImage[][]>;
124
+ /**
125
+ * 解析独立的 `.texblock` 子图集文件,扁平返回全部记录(`id` = 条目名)。
126
+ *
127
+ * 外层格式判定见 `parseTexblockSegments`;单记录文件与旧行为完全一致。
128
+ */
129
+ export declare function parseS3MBlockTextureFile(arrayBuffer: ArrayBuffer, options?: ParseBlockOptions): Promise<S3MBlockAtlasImage[]>;
130
+ /** leaf 请求计划:把 `requestNames` 展开成官方 `_subRequestNames` 那样的子请求名 */
131
+ export interface TexblockRequestPlan {
132
+ /** pack 基名(`Tex_0`)→ 该组子请求名(`Tex_0_000`…,保持出现顺序、组内去重) */
133
+ packGroups: Map<string, string[]>;
134
+ /** 普通文件名(去扩展名,如 `Tile_6_000000`) */
135
+ plain: string[];
136
+ /** 全部子请求名(packGroups 展开 + plain,整体去重) */
137
+ names: string[];
138
+ }
139
+ /**
140
+ * 展开 `requestNames` —— 逐字对应官方 `lM.prototype.createTexture` 里的 `_subRequestNames` 构造:
141
+ *
142
+ * - `yke(s)` = 第一个 `.` 之前的部分(`Tex_0.texblock#…` → `Tex_0`,`Tile_6_000000.texblock` → `Tile_6_000000`);
143
+ * - stem 首段是 `Tex` → 按 `#` 后的 3 位码展开成 `Tex_0_<code>`(**无 `#` 的 Tex 名不产生子请求**,官方如此);
144
+ * - 其它 → 直接用去扩展名的名字。
145
+ *
146
+ * 这些名字就是 pack 请求的 quadKey:`extratiles` 用 `;` 连接、**不带扩展名**。
147
+ */
148
+ export declare function expandTexblockRequestNames(requestNames: readonly string[] | undefined): TexblockRequestPlan;
149
+ /** leaf 组合用的精灵:来自哪个子请求 + 记录本身 */
150
+ export interface LeafSprite {
151
+ /** 子请求名(`Tex_0_000` / `Tile_6_000000`),内容签名用它区分「同名不同文件」 */
152
+ source: string;
153
+ image: S3MBlockAtlasImage;
154
+ }
155
+ export interface ComposedLeafAtlas {
156
+ width: number;
157
+ height: number;
158
+ /** 自上而下 RGBA(v=0 顶行);compressType=0 / pixelFormat=28 由调用方写回 */
159
+ data: Uint8Array;
160
+ /** 贴上了像素的 subName(按 subTexInfos 顺序) */
161
+ matched: string[];
162
+ /** 没拿到精灵的 subName —— 官方同样跳过(`S<0 && isLeaf → continue`),留透明 */
163
+ missing: string[];
164
+ /** 精灵尺寸与 rect 不一致的 subName(官方照样贴,记录供排查) */
165
+ mismatched: string[];
166
+ /** 内容签名:`源#记录名` 排序拼接,拼图 packKey 用它区分「同 id 不同内容」 */
167
+ sig: string;
168
+ }
169
+ /**
170
+ * leaf 组合:把多张精灵按 `subTexInfos` 的 offset 贴成整张图集画布。
171
+ *
172
+ * 与官方 `requestSubTextures` 的 leaf 分支等价:
173
+ * - 记录按 `subName` 匹配 `subTexInfos`,没匹配上的精灵忽略、没精灵的 rect 留透明;
174
+ * - 贴图用**精灵自己的宽高**(官方 `width:D= C.width`),rect 仍按 subTexInfos 的
175
+ * sub 宽高(渲染侧照旧),实测两者相等(比例 1.00×1.00);
176
+ * - 精灵是「左 2/3 base + 右 1/3 内联 mip 金字塔」的完整小图,原样整张贴入,
177
+ * StyleMaterial 的 `s3mAtlasLod` 2/3 采样公式直接适用(见 render/StyleMaterial.ts);
178
+ * - DXT 解码缓冲底朝上,逐行倒序贴入(与 `packAtlases` 同一约定),画布行 0 = 源图顶行。
179
+ *
180
+ * 返回 null = 没有任何 subName 命中 / 全部解码失败。
181
+ */
182
+ export declare function composeLeafAtlas(tex: Pick<S3MBlockTexture, 'width' | 'height' | 'subTexInfos'>, sprites: ReadonlyMap<string, LeafSprite>): ComposedLeafAtlas | null;
183
+ export declare function parseS3MBlock(arrayBuffer: ArrayBuffer, options?: ParseBlockOptions): Promise<S3MBlockTile>;
184
+ export interface S3MBlockGroupSet {
185
+ /** 每组 = 一层 LOD 瓦片(最粗在前) */
186
+ tiles: S3MBlockTile[];
187
+ /** 每组的瓦片名(去掉 .s3mblock 后缀),与 tiles 一一对应 */
188
+ names: string[];
189
+ }
190
+ /**
191
+ * 解析 S3MBLOCK 容器里的**全部**组。
192
+ *
193
+ * 一个 `.s3mblock` 文件不是"一块瓦片",而是**一整棵 LOD 子树的打包**。实测
194
+ * `6_01.s3mblock`(549 KB)里有 5 组:
195
+ *
196
+ * ```
197
+ * 组0 6_01.s3mblock rv=586.8 r=293.4 child=6_0100.s3mblock
198
+ * 组1 6_0100.s3mblock rv=1024.0 r=293.4 child=6_010000.s3mblock
199
+ * 组2 6_010000.s3mblock rv=1024.0 r=338.2 child=6_01000000.s3mblock / 6_01000001.s3mblock
200
+ * 组3 6_01000000.s3mblock rv=1024.0 r=278.2
201
+ * 组4 6_01000001.s3mblock rv=1024.0 r=278.2
202
+ * ```
203
+ *
204
+ * childTile 指向的下一层**就在同一个文件里**,不是独立文件。只取第 0 组的话,
205
+ * 4/5 的几何与它们那份精细图集全被丢掉 —— 画面上永远只有最粗一层的
206
+ * "整栋楼缩略图"图集,这正是"官方是窗格立面、我们是整楼照片重复"的根源。
207
+ */
208
+ export declare function parseS3MBlockGroups(arrayBuffer: ArrayBuffer, options?: ParseBlockOptions): Promise<S3MBlockGroupSet>;
209
+ //# sourceMappingURL=S3MBlockParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3MBlockParser.d.ts","sourceRoot":"","sources":["../../src/core/S3MBlockParser.ts"],"names":[],"mappings":"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"}