@nebula-spatial/cad-loader 0.2.2 → 0.2.4

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to this package are documented in this file.
4
4
 
5
+ ## 0.2.4
6
+
7
+ - Expose `configureCadTextBuilder()` as an explicit pass-through to the package's Troika text builder.
8
+ - Start all sidecar requests required by the initial viewport in parallel.
9
+ - Render the first available external block batch immediately and merge remaining results into one tail batch.
10
+ - Preserve in-flight downloads and incremental rendering during viewport interaction.
11
+ - Reuse the cached main DXB3 parse while preparing staged external block deltas.
12
+
13
+ ## 0.2.3
14
+
15
+ - Render base geometry before external block sidecars finish loading.
16
+ - Defer external variant geometry and append it progressively after sidecar loading.
17
+ - Reuse a geometry Worker across sequential parses within a CAD document session.
18
+ - Retain the main DXB3 buffer in the Worker to avoid retransferring it for variant delta parses.
19
+ - Added CAD session load timing information for initial render and external content readiness.
20
+
5
21
  ## 0.2.2
6
22
 
7
23
  - Fixed INSERT bounding boxes being truncated when external variant delta content arrives incrementally.
package/README.md CHANGED
@@ -39,6 +39,8 @@ session.dispose();
39
39
 
40
40
  `headerReady` 提供文档边界和图层元数据,`initialContentReady` 表示基础内容已可用。
41
41
  通过 `content-appended`、`demand-progress`、`phase-change` 和错误事件可监听后续变化。
42
+ 初始视口所需的外部 block sidecar 会并行请求;首批结果到达后即可增量渲染,剩余结果合并为尾批提交。
43
+ 会话会复用几何 Worker 和主 DXB3 解析缓存,避免连续 delta 解析重复传输和解析主缓冲区。
42
44
 
43
45
  默认几何准备 Worker 从包内的相对资源路径加载。使用非 Vite bundler、CSP 限制环境或自行托管
44
46
  Worker 资源时,可在会话选项中传入 `workerUrl`;需要完全控制 Worker 创建时,可传入优先级更高的
@@ -53,6 +55,26 @@ const session = createCadDocumentSession(source, {
53
55
 
54
56
  `CadRenderNode` 是只读渲染资源。选择状态、属性面板、编辑命令和历史记录由产品层维护。
55
57
 
58
+ ## 全局文字构建配置
59
+
60
+ 需要显式调整 Troika 文字构建参数时,在第一次 CAD 文字请求(包括字体预热)之前调用
61
+ `configureCadTextBuilder()`:
62
+
63
+ ```ts
64
+ import { configureCadTextBuilder } from '@nebula-spatial/cad-loader';
65
+
66
+ configureCadTextBuilder({
67
+ defaultFontURL: '/fonts/cad-fallback.ttf',
68
+ useWorker: true,
69
+ sdfGlyphSize: 64,
70
+ textureWidth: 2048,
71
+ });
72
+ ```
73
+
74
+ 该配置沿用 Troika 的全局、模块级、一次性语义,不是文档会话或 Viewer 实例级配置。调用方
75
+ 负责选择具体字体资源;字符和语言到字体的映射仍通过 `resolveTextFont` 提供。未调用时,
76
+ `cad-loader` 不会设置任何默认值,继续使用 Troika 原有的内置远端资源逻辑。
77
+
56
78
  ## 其他入口
57
79
 
58
80
  - `loadGeo()`:简单的 `GeoNode` 增量加载。适合不需要文档会话的 Three.js 集成。
@@ -9,8 +9,8 @@
9
9
  export { GeoLoaderError, GeoLoaderError as CadPackError } from './errors';
10
10
  export type { GeoLoaderErrorCode, GeoLoaderErrorCode as CadPackErrorCode, } from './errors';
11
11
  export { captureGroupSnapshot, groupLayerEncodingForV3Minor, readGroup, streamGroupChunks, STREAM_VERTEX_WINDOW, } from './parser/bin-group-reader';
12
- export { parseBinBounds, parseBinPayload, parseBinStreaming, parseBinToChunks, readExternalAnnotationManifest, readExternalBlockAnnotations, readExternalVariantDependencyPlan, readExternalVariantGeometrySidecar, readExternalVariantManifest, } from './parser/bin-parser';
13
- export type { ExternalVariantDependencyOptions, ExternalVariantDependencyPlan, ParseBinOptions, } from './parser/bin-parser';
12
+ export { parseBinBounds, parseBinPayload, parseBinStreaming, parseBinStreamingWithCache, parseBinToChunks, readExternalAnnotationManifest, readExternalBlockAnnotations, readExternalVariantDependencyPlan, readExternalVariantGeometrySidecar, readExternalVariantManifest, } from './parser/bin-parser';
13
+ export type { BinDocumentCache, BinStreamingResult, ExternalVariantDependencyOptions, ExternalVariantDependencyPlan, ParseBinOptions, } from './parser/bin-parser';
14
14
  export { getDxbsSection, isDxbsPayload, readBlockAnnotationSidecar, readDxbsContainer, readSceneAnnotationSidecar, } from './parser/dxbs-sidecar';
15
15
  export type { DecodedAnnotationSidecar, DxbsContainer, DxbsSectionEntry, } from './parser/dxbs-sidecar';
16
16
  export { emptyGeometryChunk, expandGeometryChunkMetadata, mergeAdjacentSegments, normalizeGeometrySegments, offsetGeometrySegments, remapGeometrySegmentLayers, sliceGeometrySegments, } from './parser/geometry-segments';