vis-core 0.33.16 → 0.33.18
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 +12 -16
- package/dist/dist-CurDDdRW.js +58 -0
- package/dist/e-DpK8xI-B.js +1 -0
- package/dist/index.d.ts +183 -127
- package/dist/index.js +1 -46
- package/dist/io.d.ts +253 -0
- package/dist/io.js +1 -1
- package/dist/runtimeImages-BFvQYajK.js +1 -0
- package/dist/schema-B2o51seO.js +1 -0
- package/dist/sha2-DroCzeNH.js +1 -0
- package/dist/validation-BGRVMCXQ.js +1 -0
- package/package.json +5 -3
- package/dist/jsonFetch-BQr9Uqag.js +0 -1
package/README.md
CHANGED
|
@@ -1,25 +1,21 @@
|
|
|
1
1
|
# vis-core
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
运行时使用 ZIP 分包:`manifest.json` 引用场景 JSON 和独立资源文件,场景沿用 Three.js 的 `images`、`textures`、`materials` 结构;`images[].url` 直接写相对文件路径(立方体贴图为路径数组),纹理保留原生采样参数。SHA-256、MIME、文件大小及 HDR/像素解码信息统一放在 `manifest.assets`。平台预览使用同一分包结构,资源文件保存在 IndexedDB。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
平台导出明确选择用途,默认“固定场景展示”:使用保存的地图和城市几何,不重复打包行政边界或建筑、道路、河流、绿地源数据;支持已保存场景之间的 `switchScene`,禁止运行时切换区域或重建。含区域切换交互的项目需要改选动态模式或移除该交互。未完成几何创建的对象仍会收集初始化所需资源。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
“支持运行时区域切换”需要配置根区域、最深层级,以及各层级使用的地图场景模板;同一模板可以用于多个层级。导出按照这份配置枚举目标区域,收集所选模板重建需要的行政边界和城市数据;未选作模板的场景仍按固定场景保存。数据可随 ZIP 打包,或显式选择由宿主部署共享目录。
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
const manager = new SceneManager({ container });
|
|
11
|
-
void manager.prewarmRuntime().catch(error => {
|
|
12
|
-
// 预热是可选优化;正式加载仍可重新尝试初始化。
|
|
13
|
-
console.debug('GPU 预热未完成', error);
|
|
14
|
-
});
|
|
9
|
+
配置保存在 `manifest.json` 的 `runtimeAssets.mapNavigation`,`runtimeAssets.regions` 列出每个模板允许切换的行政区。宿主调用 `manager.switchMapRegion(templateSceneId, adcode)`、`loadMapRegion` 或 `requestMapRegion` 时必须使用配置内的模板和区域;超出范围会在创建场景前报错,`strictBundleAssets: false` 也不会放开范围。SDK 不会根据未来的宿主调用自动扩大导出范围。预览沿用同一配置,自定义脚本也不能突破该范围,脚本额外请求的文件仍需登记。重新导出会移除旧包中不再需要的原始地理数据。
|
|
15
10
|
|
|
16
|
-
|
|
17
|
-
await manager.load(templateUrl);
|
|
11
|
+
平台上传的普通图片直接编码为 WebP 文件;HDR/TGA 保留原文件,加载时解码。模型贴图使用无损 PNG,程序生成或修改后的数据纹理保存原类型的二进制像素文件。保存、撤销重做、预览和 ZIP 导出均保留文件字节,不再把新图片转换为 Base64。视频同样保留 MP4/WebM 等原文件,JSON 仅保存文件引用和采样参数;ZIP 使用 `assets/video-<sha256>.<ext>`,相同内容只存一份。播放时按文件引用创建临时 Blob URL,在最后一个使用者释放视频时回收,支持后续定位和循环播放。
|
|
18
12
|
|
|
19
|
-
|
|
20
|
-
manager.dispose();
|
|
21
|
-
```
|
|
13
|
+
平台内部的历史快照和增量保存快照使用原生资源路径;文件字节与解码元数据由每个编辑器的 `ProjectResourceRepository` 仓库管理。当前文档、撤销栈和重做栈共同决定资源保留,事务完成后才回收无引用文件;历史容量也计入保留的资源字节。排队保存与草稿持有独立文件引用,清空历史或关闭编辑器不会破坏已捕获的保存任务。渲染适配器及独立 SDK 导入/导出文档仍可使用临时 `ArrayBuffer` 解码描述,不能直接 `JSON.stringify` 当作项目存档。平台项目使用 `ProjectBundleWriter` 拆分 JSON 和资源,保存为 `vis-project` schema 3;运行时导出使用 `splitSceneDocument(document)`,将返回的 `manifest`、`scenes` 和 `assets` 一起写入 ZIP。SDK 使用 `SceneManager.load(zip)` 加载。
|
|
22
14
|
|
|
23
|
-
|
|
15
|
+
旧大 JSON/gzip 项目由平台导入入口转换。新 ZIP 中的二进制纹理描述需要新版 gl-draw 与 vis-core;部署时同步更新 SDK。
|
|
24
16
|
|
|
25
|
-
|
|
17
|
+
例如场景图片为 `{ "uuid": "image-uuid", "url": "assets/image-<sha256>.webp" }`;manifest 5 中对应 `assets["assets/image-<sha256>.webp"] = { "sha256": "<sha256>", "bytes": 12345, "mimeType": "image/webp", "kind": "image" }`。普通图片路径可由 Three.js 原生 ObjectLoader 配合资源目录直接加载。HDR/TGA 和原始数据纹理由 SDK 根据 manifest 解码;解码描述仅供加载和运行时适配使用,不进入平台历史快照或保存的场景 JSON。相同像素字节有不同宽高/类型时使用不同路径描述布局,底层云端文件仍按 SHA-256 共享。
|
|
18
|
+
|
|
19
|
+
SDK 仅接受当前场景 schema 6 和运行清单 schema 5,旧资源池和旧清单的迁移只在平台导入入口执行。`packSceneDocumentResources`、`expandSceneDocumentResources` 和 `ScenePackingCache` 已移除。普通所有权拷贝使用 `cloneSceneDocument`。
|
|
20
|
+
|
|
21
|
+
平台模板、物体库和跨项目复制均使用含 `manifest.json` 与 `files/<sha256>` 的可编辑 ZIP;模板包括静态资源包和项目设置,复制包只携带选中资产的依赖。`ProjectResourceRepository` 统一管理媒体、地图数据、长脚本与静态资源包,历史差异仅持有路径。
|