@flyfish-dev/cad-viewer 0.6.5 → 0.6.6

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/README.md CHANGED
@@ -12,6 +12,12 @@ The project provides a clean loader architecture for **DWG**, **DXF**, **DWF**,
12
12
 
13
13
  > DWG support uses `@mlightcad/libredwg-web` / LibreDWG WebAssembly in a worker. DXF support uses JavaScript parsing plus a built-in fallback parser. DWF, DWFx and XPS support is powered by `dwf-viewer` 0.6.x, including DWF 6+ ZIP containers, WHIP/W2D 2D sheets, W3D/HSF 3D eModel geometry, DWFx/OPC/XPS pages, adaptive CAD line weights and an optional raster WASM fallback.
14
14
 
15
+ ## What changed in 0.6.6
16
+
17
+ - Added automatic initial fitting based on meaningful geometry inside a valid active DWG viewport, preventing remote coordinate clusters from shrinking the main drawing into a dot.
18
+ - Added `fitMode: 'auto' | 'saved-view' | 'extents'` and `viewer.fit(mode)` for automatic content fitting, exact saved-view restoration or complete drawing extents.
19
+ - Unified bounds and fitting behavior across the retained WebGL renderer and Canvas2D fallback.
20
+
15
21
  ## What changed in 0.6.5
16
22
 
17
23
  - Preserved active DWG VPORT/header UCS saved views and applied safe planar scene transforms exactly once across geometry, text, inserts, bounds and interaction coordinates.
@@ -158,6 +164,7 @@ const viewer = new CadViewer({
158
164
  canvasOptions: {
159
165
  background: '#05070d',
160
166
  foreground: '#f8fafc',
167
+ fitMode: 'auto',
161
168
  contrastMode: 'adaptive',
162
169
  minColorContrast: 2.45
163
170
  }
@@ -171,6 +178,8 @@ input.addEventListener('change', async () => {
171
178
  });
172
179
  ```
173
180
 
181
+ `fitMode: 'auto'` is the default. For DWG files with a valid active VPORT, it fits meaningful geometry inside the saved viewport, so remote survey coordinates or auxiliary geometry do not collapse the main sheet into a dot. Use `viewer.fit('saved-view')` to restore the exact saved viewport, or `viewer.fit('extents')` to include every coordinate cluster.
182
+
174
183
 
175
184
  ## WebGL rendering and performance model
176
185
 
@@ -264,6 +273,7 @@ const viewer = new CadViewer({
264
273
  canvasOptions: {
265
274
  background: '#05070d',
266
275
  foreground: '#ffffff',
276
+ fitMode: 'auto', // 'auto' | 'saved-view' | 'extents'
267
277
  contrastMode: 'adaptive', // 'adaptive' | 'preserve'
268
278
  minColorContrast: 2.45,
269
279
  showPageBounds: true,
@@ -294,7 +304,9 @@ const viewer = new CadViewer({
294
304
 
295
305
  await viewer.loadFile(file);
296
306
  await viewer.loadBuffer(arrayBuffer, 'drawing.dxf');
297
- viewer.fit();
307
+ viewer.fit(); // automatic meaningful-content fit
308
+ viewer.fit('saved-view'); // exact active DWG viewport
309
+ viewer.fit('extents'); // all geometry, including remote coordinate clusters
298
310
  viewer.zoomIn();
299
311
  viewer.zoomOut();
300
312
  await viewer.preloadDwg(); // optional DWG worker/WASM warmup
package/README.zh-CN.md CHANGED
@@ -12,6 +12,12 @@
12
12
 
13
13
  > DWG 使用 `@mlightcad/libredwg-web` / LibreDWG WebAssembly,并默认运行在 Worker 中。DXF 使用 JavaScript 解析器并带内置 fallback。DWF、DWFx、XPS 由 `dwf-viewer` 0.6.x 驱动,覆盖 DWF 6+ ZIP 包、WHIP/W2D 2D 图纸、W3D/HSF 3D eModel、DWFx/OPC/XPS 页面、自适应 CAD 线宽和可选 raster WASM fallback。
14
14
 
15
+ ## 0.6.6 变更
16
+
17
+ - 新增基于有效 DWG active VPORT 内有意义几何的自动首屏拟合,避免远距离坐标簇把主图压缩成小黑点。
18
+ - 新增 `fitMode: 'auto' | 'saved-view' | 'extents'` 和 `viewer.fit(mode)`,分别用于智能内容拟合、严格恢复保存视口及查看全部图形范围。
19
+ - 统一 retained WebGL renderer 与 Canvas2D fallback 的边界计算和拟合行为。
20
+
15
21
  ## 0.6.5 变更
16
22
 
17
23
  - 保留 DWG active VPORT/header UCS saved view,并将安全的平面场景变换只应用一次,统一覆盖几何、文字、INSERT、bounds 和交互坐标。
@@ -158,6 +164,7 @@ const viewer = new CadViewer({
158
164
  canvasOptions: {
159
165
  background: '#05070d',
160
166
  foreground: '#f8fafc',
167
+ fitMode: 'auto',
161
168
  contrastMode: 'adaptive',
162
169
  minColorContrast: 2.45
163
170
  }
@@ -171,6 +178,8 @@ input.addEventListener('change', async () => {
171
178
  });
172
179
  ```
173
180
 
181
+ `fitMode: 'auto'` 是默认值。DWG 存在有效 active VPORT 时,会拟合保存视口内有意义的几何内容,避免远距离测绘坐标或辅助实体把主图框压成小黑点。使用 `viewer.fit('saved-view')` 可严格恢复保存视口,使用 `viewer.fit('extents')` 可查看全部坐标簇。
182
+
174
183
 
175
184
  ## WebGL 渲染与性能策略
176
185
 
@@ -264,6 +273,7 @@ const viewer = new CadViewer({
264
273
  canvasOptions: {
265
274
  background: '#05070d',
266
275
  foreground: '#ffffff',
276
+ fitMode: 'auto', // 'auto' | 'saved-view' | 'extents'
267
277
  contrastMode: 'adaptive', // 'adaptive' | 'preserve'
268
278
  minColorContrast: 2.45,
269
279
  showPageBounds: true,
@@ -294,7 +304,9 @@ const viewer = new CadViewer({
294
304
 
295
305
  await viewer.loadFile(file);
296
306
  await viewer.loadBuffer(arrayBuffer, 'drawing.dxf');
297
- viewer.fit();
307
+ viewer.fit(); // 自动拟合有意义的首屏内容
308
+ viewer.fit('saved-view'); // 严格恢复 DWG active viewport
309
+ viewer.fit('extents'); // 查看全部几何,包括远距离坐标簇
298
310
  viewer.zoomIn();
299
311
  viewer.zoomOut();
300
312
  await viewer.preloadDwg(); // 可选 DWG worker/WASM 预热