u-space-mcp 0.0.3 → 0.0.5

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
@@ -1,6 +1,6 @@
1
1
  # u-space-mcp
2
2
 
3
- Model Context Protocol server for the `u-space` documentation, including u-manager semantic floor APIs such as `SemanticLoader`, `BuildingGroup`, and `FloorMesh`.
3
+ Model Context Protocol server for the `u-space` documentation, including u-manager semantic floor APIs such as `SemanticLoader`, `BuildingGroup`, `FloorMesh`, per-kind floor planishing, and core object defaults like `BaseMesh` shadow behavior.
4
4
 
5
5
  ## Usage
6
6
 
@@ -644,20 +644,64 @@ export const docsIndex = [
644
644
  "text": "dispose()"
645
645
  }
646
646
  ],
647
- "content": "# Objects API\n\n`u-space` 提供了若干对象封装类,主要扩展自 Three.js 的基础节点,使 3D 资产的操作和加载更加便捷。\n\n## 基础类\n\n### `BaseMesh`\n\n继承自 `THREE.Mesh`,`u-space` 中所有基础网格类都继承于此。\n\n**关键属性:**\n\n| 属性 | 类型 | 默认值 | 说明 |\n| :--------------------------- | :-------- | :----- | :------------------------------------------------------------- |\n| `ignoreInvisibleWhenRaycast` | `boolean` | `true` | 为 `true` 时,不可见的网格在射线检测时会被跳过(不参与碰撞)。 |\n\n### `BaseGroup`\n\n继承自 `THREE.Group`,`Model` 和 `Topology` 均继承于此。\n\n**关键属性:**\n\n| 属性 | 类型 | 默认值 | 说明 |\n| :--------------------------- | :-------- | :----- | :--------------------------------------------------------------- |\n| `ignoreInvisibleWhenRaycast` | `boolean` | `true` | 为 `true` 时,不可见的组在射线检测时会被跳过(不参与碰撞)。 |\n\n## 模型\n\n`Model` 类继承自 `BaseGroup`(进而继承自 `THREE.Group`),简化了异步加载 `glb`、`gltf` 等外部 3D 模型的流程,内置多层缓存支持。\n\n```typescript\nimport { Model } from 'u-space';\n\nconst myModel = new Model();\n```\n\n### 加载资产\n\n`loadAsync` 方法负责从 URL 加载资产并将其添加到组中。\n\n```typescript\nawait myModel.loadAsync(parameters: ModelParameters)\n```\n\n#### `ModelParameters`\n\n| 属性 | 类型 | 默认值 | 说明 |\n| :----------- | :-------- | :----- | :-------------------------------------------------------------------------------------- |\n| `url` | `string` | — | `.gltf` 或 `.glb` 文件的 URL。 |\n| `cache` | `boolean` | `true` | 启用内存缓存。若模型已加载过,则直接从内存中获取并克隆。 |\n| `persistent` | `boolean` | `true` | 使用浏览器 Cache API 启用持久化磁盘缓存,适合较大的模型。 |\n\n#### 缓存示例\n\n```javascript\n// 默认开启双层缓存,直接加载即可\nconst model1 = new Model();\nmodel1.loadAsync({ url: 'model.glb' });\n\n// 禁用内存缓存(每次都从网络或持久化缓存重新加载)\nconst model2 = new Model();\nmodel2.loadAsync({ url: 'model.glb', cache: false });\n\n// 完全禁用缓存\nconst model3 = new Model();\nmodel3.loadAsync({ url: 'model.glb', cache: false, persistent: false });\n```\n\n### 动画\n\n`Model` 在加载含内置动画的模型(如 glTF/FBX)后,会自动初始化 `AnimationMixer` 并收集 `AnimationClip`。\n\n**属性:**\n\n| 属性 | 类型 | 说明 |\n| :----------- | :-------------------------- | :----------------------------------------- |\n| `mixer` | `AnimationMixer \\| null` | 动画混合器,加载含动画模型后自动创建。 |\n| `animations` | `AnimationClip[]` | 模型内置的动画片段列表。 |\n\n#### `playAnimation(nameOrIndex?, options?)`\n\n播放指定动画。不传参时播放第一个动画。\n\n```typescript\n// 按名称播放\nmodel.playAnimation('Walk');\n\n// 按索引播放\nmodel.playAnimation(0);\n\n// 带选项\nmodel.playAnimation('Run', {\n loop: true, // 是否循环(默认 true)\n repetitions: 3, // 循环次数(默认 Infinity)\n timeScale: 1.5, // 播放速度(默认 1)\n clampWhenFinished: true, // 播放结束后停留在最后一帧(默认 false)\n});\n```\n\n#### `playAllAnimations(options?)`\n\n播放模型所有内置动画。参数同 `playAnimation`。\n\n```typescript\nmodel.playAllAnimations({ timeScale: 2 });\n```\n\n#### `stopAnimation(nameOrIndex?)`\n\n停止指定动画。不传参时停止所有动画。\n\n```typescript\nmodel.stopAnimation('Walk'); // 停止指定动画\nmodel.stopAnimation(); // 停止所有动画\n```\n\n#### `updateAnimation(delta)`\n\n推进动画时间,需在渲染循环中调用。`delta` 为帧间隔时间(秒),可从 Viewer 事件的 `delta` 属性获取。\n\n```typescript\nviewer.addEventListener('beforeRender', (e) => {\n model.updateAnimation(e.delta);\n});\n```\n\n### 空间查询\n\n#### `getBoundingBox()`\n\n获取模型的轴对齐包围盒(AABB)。\n\n```typescript\nconst box = myModel.getBoundingBox();\nconst size = box.getSize(new Vector3());\nconsole.log('模型尺寸:', size);\n```\n\n#### `getCenter()`\n\n获取模型包围盒的中心点。\n\n```typescript\nconst center = myModel.getCenter();\nconsole.log('模型中心:', center);\n```\n\n### 材质操作\n\n#### `setMaterial(material)`\n\n将模型内所有 Mesh 的材质统一替换为指定材质。\n\n```typescript\nimport { MeshStandardMaterial } from 'three/webgpu';\n\nmyModel.setMaterial(new MeshStandardMaterial({ color: 0xff0000 }));\n```\n\n### 清除缓存\n\n可通过 `Model` 类的静态方法手动清除内部缓存:\n\n- `Model.clearMemoryCache()`:清除运行时内存缓存。\n- `await Model.clearPersistentCache()`:完全清除浏览器中 `u-space` 模型的持久化缓存。\n\n## 网格\n\n`u-space` 提供了多种精简的网格类,均继承自 `BaseMesh`。所有类默认使用 `MeshStandardNodeMaterial`,构造函数接受 `{ geometryParameters, materialParameters }` 参数,并支持交互事件分发。\n\n### `SphereMesh`\n\n```typescript\nimport { SphereMesh } from 'u-space';\n\nconst sphere = new SphereMesh({\n geometryParameters: { radius: 1, widthSegments: 32, heightSegments: 32 },\n materialParameters: { color: 0x0077ff },\n});\n```\n\n**`SphereMeshParameters`**\n\n| 属性 | 类型 | 说明 |\n| :-------------------- | :----------------------------------- | :----------------------------------------------- |\n| `geometryParameters` | `SphereGeometry` 构造函数参数 | `radius`、`widthSegments`、`heightSegments` 等。 |\n| `materialParameters` | `MeshStandardNodeMaterialParameters` | 标准材质选项(颜色等)。 |\n\n### `PlaneMesh`\n\n水平平面网格。\n\n```typescript\nimport { PlaneMesh } from 'u-space';\n\nconst plane = new PlaneMesh({\n geometryParameters: { width: 10, height: 10 },\n materialParameters: { color: 0x888888 },\n});\n```\n\n### `CircleMesh`\n\n圆形平面网格。\n\n```typescript\nimport { CircleMesh } from 'u-space';\n\nconst circle = new CircleMesh({\n geometryParameters: { radius: 5, segments: 64 },\n});\n```\n\n### `TubeMesh`\n\n沿指定 `Curve<Vector3>` 曲线生成的管道网格。\n\n```typescript\nimport { TubeMesh } from 'u-space';\nimport { CatmullRomCurve3, Vector3 } from 'three/webgpu';\n\nconst path = new CatmullRomCurve3([new Vector3(0,0,0), new Vector3(5,2,5)]);\nconst tube = new TubeMesh({\n geometryParameters: { path, tubularSegments: 20, radius: 0.2, radialSegments: 8 },\n materialParameters: { color: 0x00ff00 },\n});\n```\n\n### `ShapeMesh`\n\n由 `THREE.Shape` 或 2D 点生成的平面网格。\n\n```typescript\nimport { ShapeMesh } from 'u-space';\n\n// 从显式 Shape 创建\nconst mesh = new ShapeMesh({ geometryParameters: { shape: myShape } });\n\n// 静态辅助方法:从 x/z 点数组创建\nconst mesh2 = ShapeMesh.createFromPoints([{ x: 0, z: 0 }, { x: 5, z: 0 }, { x: 5, z: 5 }]);\n```\n\n### `ExtrudeMesh`\n\n由 `THREE.Shape` 或 2D 点拉伸生成的 3D 实体网格。\n\n```typescript\nimport { ExtrudeMesh } from 'u-space';\n\nconst solid = new ExtrudeMesh({\n geometryParameters: {\n shape: myShape,\n options: { depth: 3, bevelEnabled: false },\n },\n materialParameters: { color: 0xff8800 },\n});\n\n// 静态辅助方法\nconst solid2 = ExtrudeMesh.createFromPoints(\n [{ x: 0, z: 0 }, { x: 5, z: 0 }, { x: 5, z: 5 }],\n { geometryParameters: { options: { depth: 2, bevelEnabled: false } } }\n);\n```\n\n## Poi\n\n`Poi` 是一个基于 canvas 渲染的公告板(精灵),用于在 3D 场景中放置图标和标签,继承自 `BaseSprite`。\n\n```typescript\nimport { Poi } from 'u-space';\n\nconst poi = new Poi({\n img: '/icons/marker.png',\n text: '我的位置',\n fontSize: 28,\n color: '#ffffff',\n backgroundColor: 'rgba(0,0,0,0.6)',\n textPosition: 'right',\n});\n// 构造时会自动调用 updateAsync(),无需手动调用\n// 如需更新参数,可再次调用:\n// await poi.updateAsync({ text: '新文字' });\n\npoi.position.set(10, 5, 10);\nviewer.scene.add(poi);\n```\n\n### `PoiParameters`\n\n| 属性 | 类型 | 默认值 | 说明 |\n| :---------------- | :------------------------------------------ | :----------------------- | :--------------------------------- |\n| `img` | `string \\| CanvasImageSource` | `''` | 图标图片 URL 或元素。 |\n| `text` | `string` | `''` | 标签文字。 |\n| `fontSize` | `number` | `32` | 字体大小(像素)。 |\n| `fontFamily` | `string` | `'Arial'` | 字体族。 |\n| `color` | `string` | `'#ffffff'` | 文字颜色。 |\n| `iconSize` | `number` | `64` | 图标大小(像素)。 |\n| `padding` | `number` | `10` | 内容四周的内边距。 |\n| `backgroundColor` | `string` | `'rgba(0, 0, 0, 0)'` | 背景填充颜色。 |\n| `borderRadius` | `number` | `8` | 背景圆角半径。 |\n| `textPosition` | `'top' \\| 'bottom' \\| 'left' \\| 'right'` | `'right'` | 文字相对图标的位置。 |\n| `scaleFactor` | `number` | `0.01` | canvas 像素到世界单位的缩放系数。 |\n\n### 方法\n\n#### `updateAsync(parameters?)`\n\n使用可选的参数覆盖重新渲染 canvas 纹理。构造时会自动调用一次,后续参数未变化时会跳过重绘。\n\n```typescript\nawait poi.updateAsync({ text: '更新后的标签', color: '#ffff00' });\nviewer.render();\n```\n\n#### `dispose()`\n\n释放 canvas 纹理和材质。\n\n## Topology\n\n`Topology` 是一个带有内置 3D 可视化的图数据结构。它存储节点(位置)和带权重的边,实现了 Dijkstra 最短路径算法,并将图渲染为球体和管道。\n\n```typescript\nimport { Topology } from 'u-space';\n\nconst topo = new Topology({\n nodeColor: 0x0000ff,\n nodeRadius: 0.3,\n edgeColor: 0x00ff00,\n edgeRadius: 0.05,\n});\n\ntopo.addNode('A', new Vector3(0, 0, 0));\ntopo.addNode('B', new Vector3(5, 0, 0));\ntopo.addNode('C', new Vector3(5, 0, 5));\n\ntopo.addEdge('A', 'B');\ntopo.addEdge('B', 'C');\n\ntopo.renderGraph(); // 创建球体 + 管道网格\nviewer.scene.add(topo);\n```\n\n### `TopologyParameters`\n\n| 属性 | 类型 | 默认值 | 说明 |\n| :------------ | :-------------------- | :---------- | :----------------------- |\n| `nodeColor` | `ColorRepresentation` | `0x0000ff` | 节点球体颜色。 |\n| `nodeRadius` | `number` | `0.5` | 节点球体半径。 |\n| `edgeColor` | `ColorRepresentation` | `0x00ff00` | 边管道颜色。 |\n| `edgeRadius` | `number` | `0.1` | 边管道半径。 |\n| `pathColor` | `ColorRepresentation` | `0xff00ff` | 路径可视化颜色。 |\n| `pathRadius` | `number` | `0.2` | 路径管道半径。 |\n\n### 方法\n\n#### `addNode(id, position)`\n\n向图中添加一个节点。\n\n#### `removeNode(id)`\n\n移除一个节点及其关联的边。\n\n#### `addEdge(from, to, weight?, bidirectional?)`\n\n在两个节点之间添加一条边。`weight` 默认为欧氏距离,`bidirectional` 默认为 `true`(双向)。\n\n#### `removeEdge(from, to, bidirectional?)`\n\n移除两个节点之间的边。\n\n#### `getShortestPath(startId, endId): Vector3[]`\n\n使用 Dijkstra 算法返回最短路径(世界坐标位置数组)。若不存在路径则返回 `[]`。\n\n#### `renderGraph()`\n\n根据当前节点和边构建球体/管道场景图。修改图后需调用此方法刷新可视化。\n\n#### `clearGraph()`\n\n移除并释放所有图网格。\n\n#### `renderPath(points, color?): TubeMesh`\n\n将给定点通过 CatmullRomCurve3 平滑处理后渲染为管道网格。\n\n```typescript\nconst path = topo.getShortestPath('A', 'C');\ntopo.renderPath(path, 0xff0000);\nviewer.render();\n```\n\n#### `clearPaths()`\n\n移除并释放所有路径网格。\n\n#### `getNeighbors(id): Map<string, number> | undefined`\n\n返回节点的邻接表(邻居 ID → 边权重)。\n\n#### `exportData(): TopologyData`\n\n将当前拓扑图(节点和边)导出为 JSON 可序列化对象。\n\n```typescript\nconst data = topo.exportData();\n// { nodes: Record<string, {x,y,z}>, edges: Array<{from,to,weight}> }\n```\n\n双向边在导出时会去重,只保留一条记录。\n\n#### `importData(data: TopologyData)`\n\n从 `exportData()` 返回的数据中还原拓扑图,替换当前所有节点、边和路径网格,并重新渲染。\n\n```typescript\ntopo.importData(data);\n```\n\n#### `dispose()`\n\n清除图和路径网格。\n"
647
+ "content": "# Objects API\n\n`u-space` 提供了若干对象封装类,主要扩展自 Three.js 的基础节点,使 3D 资产的操作和加载更加便捷。\n\n## 基础类\n\n### `BaseMesh`\n\n继承自 `THREE.Mesh`,`u-space` 中所有基础网格类都继承于此。\n\n**关键属性:**\n\n| 属性 | 类型 | 默认值 | 说明 |\n| :--------------------------- | :-------- | :----- | :------------------------------------------------------------- |\n| `castShadow` | `boolean` | `true` | 默认参与阴影投射;可在单个对象上改为 `false`。 |\n| `receiveShadow` | `boolean` | `true` | 默认接收阴影;可在不需要阴影的网格上改为 `false`。 |\n| `ignoreInvisibleWhenRaycast` | `boolean` | `true` | 为 `true` 时,不可见的网格在射线检测时会被跳过(不参与碰撞)。 |\n\n### `BaseGroup`\n\n继承自 `THREE.Group`,`Model` 和 `Topology` 均继承于此。\n\n**关键属性:**\n\n| 属性 | 类型 | 默认值 | 说明 |\n| :--------------------------- | :-------- | :----- | :--------------------------------------------------------------- |\n| `ignoreInvisibleWhenRaycast` | `boolean` | `true` | 为 `true` 时,不可见的组在射线检测时会被跳过(不参与碰撞)。 |\n\n## 模型\n\n`Model` 类继承自 `BaseGroup`(进而继承自 `THREE.Group`),简化了异步加载 `glb`、`gltf` 等外部 3D 模型的流程,内置多层缓存支持。\n\n```typescript\nimport { Model } from 'u-space';\n\nconst myModel = new Model();\n```\n\n### 加载资产\n\n`loadAsync` 方法负责从 URL 加载资产并将其添加到组中。\n\n```typescript\nawait myModel.loadAsync(parameters: ModelParameters)\n```\n\n#### `ModelParameters`\n\n| 属性 | 类型 | 默认值 | 说明 |\n| :----------- | :-------- | :----- | :-------------------------------------------------------------------------------------- |\n| `url` | `string` | — | `.gltf` 或 `.glb` 文件的 URL。 |\n| `cache` | `boolean` | `true` | 启用内存缓存。若模型已加载过,则直接从内存中获取并克隆。 |\n| `persistent` | `boolean` | `true` | 使用浏览器 Cache API 启用持久化磁盘缓存,适合较大的模型。 |\n\n#### 缓存示例\n\n```javascript\n// 默认开启双层缓存,直接加载即可\nconst model1 = new Model();\nmodel1.loadAsync({ url: 'model.glb' });\n\n// 禁用内存缓存(每次都从网络或持久化缓存重新加载)\nconst model2 = new Model();\nmodel2.loadAsync({ url: 'model.glb', cache: false });\n\n// 完全禁用缓存\nconst model3 = new Model();\nmodel3.loadAsync({ url: 'model.glb', cache: false, persistent: false });\n```\n\n### 动画\n\n`Model` 在加载含内置动画的模型(如 glTF/FBX)后,会自动初始化 `AnimationMixer` 并收集 `AnimationClip`。\n\n**属性:**\n\n| 属性 | 类型 | 说明 |\n| :----------- | :-------------------------- | :----------------------------------------- |\n| `mixer` | `AnimationMixer \\| null` | 动画混合器,加载含动画模型后自动创建。 |\n| `animations` | `AnimationClip[]` | 模型内置的动画片段列表。 |\n\n#### `playAnimation(nameOrIndex?, options?)`\n\n播放指定动画。不传参时播放第一个动画。\n\n```typescript\n// 按名称播放\nmodel.playAnimation('Walk');\n\n// 按索引播放\nmodel.playAnimation(0);\n\n// 带选项\nmodel.playAnimation('Run', {\n loop: true, // 是否循环(默认 true)\n repetitions: 3, // 循环次数(默认 Infinity)\n timeScale: 1.5, // 播放速度(默认 1)\n clampWhenFinished: true, // 播放结束后停留在最后一帧(默认 false)\n});\n```\n\n#### `playAllAnimations(options?)`\n\n播放模型所有内置动画。参数同 `playAnimation`。\n\n```typescript\nmodel.playAllAnimations({ timeScale: 2 });\n```\n\n#### `stopAnimation(nameOrIndex?)`\n\n停止指定动画。不传参时停止所有动画。\n\n```typescript\nmodel.stopAnimation('Walk'); // 停止指定动画\nmodel.stopAnimation(); // 停止所有动画\n```\n\n#### `updateAnimation(delta)`\n\n推进动画时间,需在渲染循环中调用。`delta` 为帧间隔时间(秒),可从 Viewer 事件的 `delta` 属性获取。\n\n```typescript\nviewer.addEventListener('beforeRender', (e) => {\n model.updateAnimation(e.delta);\n});\n```\n\n### 空间查询\n\n#### `getBoundingBox()`\n\n获取模型的轴对齐包围盒(AABB)。\n\n```typescript\nconst box = myModel.getBoundingBox();\nconst size = box.getSize(new Vector3());\nconsole.log('模型尺寸:', size);\n```\n\n#### `getCenter()`\n\n获取模型包围盒的中心点。\n\n```typescript\nconst center = myModel.getCenter();\nconsole.log('模型中心:', center);\n```\n\n### 材质操作\n\n#### `setMaterial(material)`\n\n将模型内所有 Mesh 的材质统一替换为指定材质。\n\n```typescript\nimport { MeshStandardMaterial } from 'three/webgpu';\n\nmyModel.setMaterial(new MeshStandardMaterial({ color: 0xff0000 }));\n```\n\n### 清除缓存\n\n可通过 `Model` 类的静态方法手动清除内部缓存:\n\n- `Model.clearMemoryCache()`:清除运行时内存缓存。\n- `await Model.clearPersistentCache()`:完全清除浏览器中 `u-space` 模型的持久化缓存。\n\n## 网格\n\n`u-space` 提供了多种精简的网格类,均继承自 `BaseMesh`。所有类默认使用 `MeshStandardNodeMaterial`,构造函数接受 `{ geometryParameters, materialParameters }` 参数,并支持交互事件分发。\n\n### `SphereMesh`\n\n```typescript\nimport { SphereMesh } from 'u-space';\n\nconst sphere = new SphereMesh({\n geometryParameters: { radius: 1, widthSegments: 32, heightSegments: 32 },\n materialParameters: { color: 0x0077ff },\n});\n```\n\n**`SphereMeshParameters`**\n\n| 属性 | 类型 | 说明 |\n| :-------------------- | :----------------------------------- | :----------------------------------------------- |\n| `geometryParameters` | `SphereGeometry` 构造函数参数 | `radius`、`widthSegments`、`heightSegments` 等。 |\n| `materialParameters` | `MeshStandardNodeMaterialParameters` | 标准材质选项(颜色等)。 |\n\n### `PlaneMesh`\n\n水平平面网格。\n\n```typescript\nimport { PlaneMesh } from 'u-space';\n\nconst plane = new PlaneMesh({\n geometryParameters: { width: 10, height: 10 },\n materialParameters: { color: 0x888888 },\n});\n```\n\n### `CircleMesh`\n\n圆形平面网格。\n\n```typescript\nimport { CircleMesh } from 'u-space';\n\nconst circle = new CircleMesh({\n geometryParameters: { radius: 5, segments: 64 },\n});\n```\n\n### `TubeMesh`\n\n沿指定 `Curve<Vector3>` 曲线生成的管道网格。\n\n```typescript\nimport { TubeMesh } from 'u-space';\nimport { CatmullRomCurve3, Vector3 } from 'three/webgpu';\n\nconst path = new CatmullRomCurve3([new Vector3(0,0,0), new Vector3(5,2,5)]);\nconst tube = new TubeMesh({\n geometryParameters: { path, tubularSegments: 20, radius: 0.2, radialSegments: 8 },\n materialParameters: { color: 0x00ff00 },\n});\n```\n\n### `ShapeMesh`\n\n由 `THREE.Shape` 或 2D 点生成的平面网格。\n\n```typescript\nimport { ShapeMesh } from 'u-space';\n\n// 从显式 Shape 创建\nconst mesh = new ShapeMesh({ geometryParameters: { shape: myShape } });\n\n// 静态辅助方法:从 x/z 点数组创建\nconst mesh2 = ShapeMesh.createFromPoints([{ x: 0, z: 0 }, { x: 5, z: 0 }, { x: 5, z: 5 }]);\n```\n\n### `ExtrudeMesh`\n\n由 `THREE.Shape` 或 2D 点拉伸生成的 3D 实体网格。\n\n```typescript\nimport { ExtrudeMesh } from 'u-space';\n\nconst solid = new ExtrudeMesh({\n geometryParameters: {\n shape: myShape,\n options: { depth: 3, bevelEnabled: false },\n },\n materialParameters: { color: 0xff8800 },\n});\n\n// 静态辅助方法\nconst solid2 = ExtrudeMesh.createFromPoints(\n [{ x: 0, z: 0 }, { x: 5, z: 0 }, { x: 5, z: 5 }],\n { geometryParameters: { options: { depth: 2, bevelEnabled: false } } }\n);\n```\n\n## Poi\n\n`Poi` 是一个基于 canvas 渲染的公告板(精灵),用于在 3D 场景中放置图标和标签,继承自 `BaseSprite`。\n\n```typescript\nimport { Poi } from 'u-space';\n\nconst poi = new Poi({\n img: '/icons/marker.png',\n text: '我的位置',\n fontSize: 28,\n color: '#ffffff',\n backgroundColor: 'rgba(0,0,0,0.6)',\n textPosition: 'right',\n});\n// 构造时会自动调用 updateAsync(),无需手动调用\n// 如需更新参数,可再次调用:\n// await poi.updateAsync({ text: '新文字' });\n\npoi.position.set(10, 5, 10);\nviewer.scene.add(poi);\n```\n\n### `PoiParameters`\n\n| 属性 | 类型 | 默认值 | 说明 |\n| :---------------- | :------------------------------------------ | :----------------------- | :--------------------------------- |\n| `img` | `string \\| CanvasImageSource` | `''` | 图标图片 URL 或元素。 |\n| `text` | `string` | `''` | 标签文字。 |\n| `fontSize` | `number` | `32` | 字体大小(像素)。 |\n| `fontFamily` | `string` | `'Arial'` | 字体族。 |\n| `color` | `string` | `'#ffffff'` | 文字颜色。 |\n| `iconSize` | `number` | `64` | 图标大小(像素)。 |\n| `padding` | `number` | `10` | 内容四周的内边距。 |\n| `backgroundColor` | `string` | `'rgba(0, 0, 0, 0)'` | 背景填充颜色。 |\n| `borderRadius` | `number` | `8` | 背景圆角半径。 |\n| `textPosition` | `'top' \\| 'bottom' \\| 'left' \\| 'right'` | `'right'` | 文字相对图标的位置。 |\n| `scaleFactor` | `number` | `0.01` | canvas 像素到世界单位的缩放系数。 |\n\n### 方法\n\n#### `updateAsync(parameters?)`\n\n使用可选的参数覆盖重新渲染 canvas 纹理。构造时会自动调用一次,后续参数未变化时会跳过重绘。\n\n```typescript\nawait poi.updateAsync({ text: '更新后的标签', color: '#ffff00' });\nviewer.render();\n```\n\n#### `dispose()`\n\n释放 canvas 纹理和材质。\n\n## Topology\n\n`Topology` 是一个带有内置 3D 可视化的图数据结构。它存储节点(位置)和带权重的边,实现了 Dijkstra 最短路径算法,并将图渲染为球体和管道。\n\n```typescript\nimport { Topology } from 'u-space';\n\nconst topo = new Topology({\n nodeColor: 0x0000ff,\n nodeRadius: 0.3,\n edgeColor: 0x00ff00,\n edgeRadius: 0.05,\n});\n\ntopo.addNode('A', new Vector3(0, 0, 0));\ntopo.addNode('B', new Vector3(5, 0, 0));\ntopo.addNode('C', new Vector3(5, 0, 5));\n\ntopo.addEdge('A', 'B');\ntopo.addEdge('B', 'C');\n\ntopo.renderGraph(); // 创建球体 + 管道网格\nviewer.scene.add(topo);\n```\n\n### `TopologyParameters`\n\n| 属性 | 类型 | 默认值 | 说明 |\n| :------------ | :-------------------- | :---------- | :----------------------- |\n| `nodeColor` | `ColorRepresentation` | `0x0000ff` | 节点球体颜色。 |\n| `nodeRadius` | `number` | `0.5` | 节点球体半径。 |\n| `edgeColor` | `ColorRepresentation` | `0x00ff00` | 边管道颜色。 |\n| `edgeRadius` | `number` | `0.1` | 边管道半径。 |\n| `pathColor` | `ColorRepresentation` | `0xff00ff` | 路径可视化颜色。 |\n| `pathRadius` | `number` | `0.2` | 路径管道半径。 |\n\n### 方法\n\n#### `addNode(id, position)`\n\n向图中添加一个节点。\n\n#### `removeNode(id)`\n\n移除一个节点及其关联的边。\n\n#### `addEdge(from, to, weight?, bidirectional?)`\n\n在两个节点之间添加一条边。`weight` 默认为欧氏距离,`bidirectional` 默认为 `true`(双向)。\n\n#### `removeEdge(from, to, bidirectional?)`\n\n移除两个节点之间的边。\n\n#### `getShortestPath(startId, endId): Vector3[]`\n\n使用 Dijkstra 算法返回最短路径(世界坐标位置数组)。若不存在路径则返回 `[]`。\n\n#### `renderGraph()`\n\n根据当前节点和边构建球体/管道场景图。修改图后需调用此方法刷新可视化。\n\n#### `clearGraph()`\n\n移除并释放所有图网格。\n\n#### `renderPath(points, color?): TubeMesh`\n\n将给定点通过 CatmullRomCurve3 平滑处理后渲染为管道网格。\n\n```typescript\nconst path = topo.getShortestPath('A', 'C');\ntopo.renderPath(path, 0xff0000);\nviewer.render();\n```\n\n#### `clearPaths()`\n\n移除并释放所有路径网格。\n\n#### `getNeighbors(id): Map<string, number> | undefined`\n\n返回节点的邻接表(邻居 ID → 边权重)。\n\n#### `exportData(): TopologyData`\n\n将当前拓扑图(节点和边)导出为 JSON 可序列化对象。\n\n```typescript\nconst data = topo.exportData();\n// { nodes: Record<string, {x,y,z}>, edges: Array<{from,to,weight}> }\n```\n\n双向边在导出时会去重,只保留一条记录。\n\n#### `importData(data: TopologyData)`\n\n从 `exportData()` 返回的数据中还原拓扑图,替换当前所有节点、边和路径网格,并重新渲染。\n\n```typescript\ntopo.importData(data);\n```\n\n#### `dispose()`\n\n清除图和路径网格。\n"
648
648
  },
649
649
  {
650
650
  "id": "api-plugin-atmosphere",
651
651
  "path": "api-plugin-atmosphere.md",
652
652
  "title": "atmosphere",
653
- "summary": "天空和大气渲染插件。目前为占位实现,`enable()` / `disable()` / `dispose()` 方法可用,但尚未实现具体功能。 ```typescript import { Atmosphere } from 'u-space/plugins/atmosphere';",
653
+ "summary": "天空和大气渲染插件,基于 `@takram/three-atmosphere` 的 WebGPU 节点实现。启用后会接入 Viewer 的 `renderer.contextNode`、`scene.backgroundNode` 和 RenderPipeline 的 output effect/MRT 扩展点,提供天空背景、太阳/月亮方向、aerial perspective 大气透视、lens flare、tone mapping、temporal antialias 和大气方向光阴影。 ```typescript import { Atmosphere } from 'u-space/plugins/atmosphere';",
654
654
  "headings": [
655
655
  {
656
656
  "level": 1,
657
657
  "text": "atmosphere"
658
+ },
659
+ {
660
+ "level": 2,
661
+ "text": "能力"
662
+ },
663
+ {
664
+ "level": 2,
665
+ "text": "API"
666
+ },
667
+ {
668
+ "level": 3,
669
+ "text": "new Atmosphere(viewer)"
670
+ },
671
+ {
672
+ "level": 3,
673
+ "text": "enable(options?)"
674
+ },
675
+ {
676
+ "level": 3,
677
+ "text": "update(options?)"
678
+ },
679
+ {
680
+ "level": 3,
681
+ "text": "setLocation(longitude, latitude, height?)"
682
+ },
683
+ {
684
+ "level": 3,
685
+ "text": "setDate(date)"
686
+ },
687
+ {
688
+ "level": 3,
689
+ "text": "disable()"
690
+ },
691
+ {
692
+ "level": 3,
693
+ "text": "dispose()"
694
+ },
695
+ {
696
+ "level": 2,
697
+ "text": "Options"
698
+ },
699
+ {
700
+ "level": 2,
701
+ "text": "注意事项"
658
702
  }
659
703
  ],
660
- "content": "# atmosphere\n\n天空和大气渲染插件。目前为占位实现,`enable()` / `disable()` / `dispose()` 方法可用,但尚未实现具体功能。\n\n```typescript\nimport { Atmosphere } from 'u-space/plugins/atmosphere';\n\nconst atmosphere = new Atmosphere(viewer);\natmosphere.enable();\n```\n"
704
+ "content": "# atmosphere\n\n天空和大气渲染插件,基于 `@takram/three-atmosphere` 的 WebGPU 节点实现。启用后会接入 Viewer 的 `renderer.contextNode`、`scene.backgroundNode` 和 RenderPipeline 的 output effect/MRT 扩展点,提供天空背景、太阳/月亮方向、aerial perspective 大气透视、lens flare、tone mapping、temporal antialias 和大气方向光阴影。\n\n```typescript\nimport { Atmosphere } from 'u-space/plugins/atmosphere';\n\nconst atmosphere = new Atmosphere(viewer);\natmosphere.enable({\n longitude: 120.002269,\n latitude: 30.284849,\n height: 4,\n});\n```\n\n## 能力\n\n- 使用经纬高将本地场景原点映射到 WGS84/ECEF,用 `date` 计算太阳和月亮方向。\n- 写入 `scene.backgroundNode`,可选写入 `scene.environmentNode`,让天空背景和环境光保持一致。\n- 通过 RenderPipeline output effect 追加大气透视、lens flare、tone mapping、temporal antialias 和 dithering,不占用业务侧的 `setOutputComposer()`。\n- 开启 `temporalAntialias` 时注册独立的 `atmosphereVelocity` MRT 通道,并避免和 RenderPipeline 自带 TRAA 重复运行。\n- 创建 `AtmosphereLight` 作为太阳方向光,并在每帧跟随相机控制器 target 更新阴影目标。\n\n## API\n\n### `new Atmosphere(viewer)`\n\n创建大气插件实例。\n\n### `enable(options?)`\n\n开启大气效果。重复调用时等同于 `update(options)`。\n\n```typescript\natmosphere.enable({\n longitude: 120.002269,\n latitude: 30.284849,\n height: 4,\n date: new Date(),\n showSun: true,\n showMoon: true,\n showStars: true,\n});\n```\n\n### `update(options?)`\n\n更新大气参数,不会重新创建插件实例。\n\n```typescript\natmosphere.update({\n date: new Date('2026-06-16T12:00:00+08:00'),\n showStars: false,\n});\n```\n\n### `setLocation(longitude, latitude, height?)`\n\n更新场景本地原点对应的 WGS84 经纬高。`longitude`、`latitude` 使用角度,`height` 使用米。\n\n### `setDate(date)`\n\n更新太阳和月亮方向。`date` 支持 `Date` 或时间戳。\n\n### `disable()`\n\n关闭大气效果并恢复启用前的 `backgroundNode`、`environmentNode` 和 `renderer.contextNode`。\n\n### `dispose()`\n\n释放插件资源,等同于 `disable()`。\n\n## Options\n\n| 参数 | 类型 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `longitude` | `number` | `0` | 本地场景原点的经度,单位为度 |\n| `latitude` | `number` | `0` | 本地场景原点的纬度,单位为度 |\n| `height` | `number` | `0` | 本地场景原点高度,单位为米 |\n| `date` | `Date \\| number` | 当天本地时间 08:00 | 用于计算太阳和月亮方向 |\n| `showSun` | `boolean` | `true` | 显示太阳 |\n| `showMoon` | `boolean` | `true` | 显示月亮 |\n| `showStars` | `boolean` | `true` | 显示星空 |\n| `showGround` | `boolean` | `false` | 是否渲染大气地面 |\n| `useSkyEnvironment` | `boolean` | `true` | 是否使用天空节点作为 `scene.environmentNode` |\n| `raymarchScattering` | `boolean` | `true` | 是否启用 raymarch scattering |\n| `lighting` | `boolean` | `true` | aerial perspective 是否包含光照 |\n| `transmittance` | `boolean` | `true` | aerial perspective 是否包含透射 |\n| `inscattering` | `boolean` | `true` | aerial perspective 是否包含内散射 |\n| `moonScattering` | `boolean` | `true` | 是否包含月光散射 |\n| `lensFlare` | `boolean` | `true` | 是否在 aerial perspective 后启用 lens flare |\n| `temporalAntialias` | `boolean` | `true` | 是否在大气后处理链中启用 temporal antialias |\n| `dithering` | `boolean` | `true` | 是否在 temporal antialias 后追加 dithering |\n| `toneMapping` | `ToneMapping \\| false` | `AgXPunchyToneMapping` | 大气后处理链使用的 tone mapping;设为 `false` 可跳过 |\n| `toneMappingExposure` | `number` | `3` | 大气 tone mapping 曝光值 |\n| `castShadow` | `boolean` | `true` | 是否让大气太阳光投射阴影 |\n| `shadowMapSize` | `number` | `4096` | 阴影贴图尺寸 |\n| `shadowCameraSize` | `number` | `180` | directional shadow 正交相机覆盖范围,越小越清晰但覆盖范围越窄 |\n| `shadowCameraNear` | `number` | `10` | shadow camera near |\n| `shadowCameraFar` | `number` | `6000` | shadow camera far |\n| `shadowBias` | `number` | `-0.00002` | 阴影深度偏移 |\n| `shadowNormalBias` | `number` | `0.001` | 法线方向阴影偏移,用于缓解 shadow acne;过大会让底部阴影产生脱离感 |\n| `shadowRadius` | `number` | `1.5` | PCF 阴影采样半径,用于柔化轻微锯齿 |\n| `shadowDistance` | `number` | `3000` | 大气方向光与 target 的距离 |\n\n## 注意事项\n\n`Atmosphere` 不会占用 `viewer.renderPipeline.setOutputComposer()`。它通过 output effect 追加大气后处理;开启 `temporalAntialias` 时才会注册独立的 `atmosphereVelocity` MRT 通道,并会避免和 RenderPipeline 自带 TRAA 重复运行。业务设置自定义 composer 时,大气 output effect 和它的输出变换开关都会被 RenderPipeline 跳过,让 composer 保持完整接管输出的原语义。\n\n插件会在 `beforeRender` 中刷新相机 ECEF 位置、太阳/月亮方向和阴影 target,因此相机移动时的大气状态会跟随每一帧更新。`setDate()` 只更新传入的时间,不会自动推进时钟;需要动态昼夜变化时,由业务侧定时调用 `setDate()` 或 `update({ date })`。\n\n如果看到明显的方形阴影边界,通常是 `shadowCameraSize` 小于当前可见场景范围。可以调大该值,或让相机 target 更贴近需要观察的区域。阴影偏糊时优先减小 `shadowCameraSize` 或增大 `shadowMapSize`;底部阴影有脱离感时优先减小 `shadowNormalBias`;边缘仍有轻微锯齿时可略微增大 `shadowRadius`。\n"
661
705
  },
662
706
  {
663
707
  "id": "api-plugin-curve-movement",
@@ -801,7 +845,7 @@ export const docsIndex = [
801
845
  "text": "PropertiesLoader"
802
846
  }
803
847
  ],
804
- "content": "# u-manager\n\n`u-manager` 是一套全面的加载器和解析器,用于从服务器路径流式传输、解密并显示结构化场景数据。支持场景、拓扑、动画、属性、相机视点和楼层语义模型。\n\n所有加载器均继承自 Three.js 的 `Loader`,并提供 `setPath(path)` 方法,在调用 `loadAsync()` 前配置基础数据目录。\n\n## `SemanticLoader`\n\n加载 `db/semantic_model.json` 楼层语义数据,并按建筑返回 `BuildingGroup[]`。每个建筑包含多个 `FloorMesh`,每个楼层把墙、柱、空间等语义对象合并为一个 TSL 材质驱动的网格。\n\n```typescript\nimport { Vector3, Vector4 } from 'three';\nimport { SemanticLoader } from 'u-space/plugins/u-manager';\n\nconst loader = new SemanticLoader(viewer);\nloader.setPath('./scenes/my-scene');\n\nconst buildings = await loader.loadAsync(); // BuildingGroup[]\nviewer.scene.add(...buildings);\n\nconst building = buildings[0];\nconst floor = building.getFloorAt(0);\n\nbuilding.isolateFloor(floor);\nawait viewer.controls.flyToObject(floor);\n\nfloor.addEventListener('click', ({ event }) => {\n const { target, intersect } = event;\n const index = intersect.semanticIndex;\n\n target.setColorAt(index, new Vector4(1, 0, 0, 0.5));\n target.setScaleAt(index, new Vector3(1, 0.1, 1));\n viewer.render();\n});\n```\n\n### `BuildingGroup`\n\n`BuildingGroup` 继承自 `BaseGroup`,用于组织一个建筑下的所有楼层。\n\n| 属性 / 方法 | 说明 |\n| :---------- | :--- |\n| `floorMeshes` | 当前建筑内的 `FloorMesh[]`。 |\n| `addFloor(floor)` | 添加楼层,并同步加入 group。 |\n| `removeFloor(floor)` | 移除楼层,并同步从 group 移除。 |\n| `getFloorAt(index)` | 按楼层下标获取 `FloorMesh`。 |\n| `isolateFloor(floor \\| index)` | 只显示指定楼层,隐藏其他楼层。 |\n| `showAllFloors()` | 显示全部楼层。 |\n| `planishFloors()` | 将所有楼层整体压扁。 |\n| `unplanishFloors()` | 恢复所有楼层整体缩放。 |\n\n### `FloorMesh`\n\n`FloorMesh` 继承自 `BaseMesh`,表示一个楼层。它不是 `BatchedMesh`,而是把同一楼层内的语义对象合并为一份几何,并通过 TSL + `DataTexture` 在 GPU 侧按 `semanticIndex` 控制颜色、透明度、显示隐藏和实例矩阵。\n\n这种结构的目标是让每个楼层通常只占一个主渲染 draw call,同时仍保留实例级控制能力。`xxxAt` 方法全部作用于单个语义实例;没有 `At` 后缀的方法作用于整个楼层 mesh。\n\n| 属性 / 方法 | 说明 |\n| :---------- | :--- |\n| `semanticCount` / `instanceCount` | 当前楼层语义实例数量。 |\n| `semanticInstances` | `Map<string, number>`,从语义对象 ID 映射到实例下标。 |\n| `wallsInstances` / `columnsInstances` / `spacesInstances` / `doorsInstances` / `windowsInstances` | 按语义类型维护的 ID 到实例下标映射。 |\n| `getSemanticIndexById(id)` | 根据语义 ID 获取实例下标。 |\n| `getSemanticIdAt(index)` | 获取实例语义 ID。 |\n| `getSemanticKindAt(index)` | 获取实例类型:`'WALL' \\| 'COLUMN' \\| 'SPACE' \\| 'Doors' \\| 'Windows'`。 |\n| `getSemanticNameAt(index)` | 获取实例名称;当前 `SPACE` 会从语义数据的 `Name` 写入,其他类型可能为 `undefined`。 |\n| `setColorAt(index, color)` / `getColorAt(index, target?)` | 修改或读取实例颜色,支持 `Color`、`Vector3`、`Vector4`。 |\n| `setOpacityAt(index, opacity)` / `getOpacityAt(index)` | 修改或读取实例透明度。 |\n| `setVisibleAt(index, visible)` / `getVisibleAt(index)` | 修改或读取实例显隐状态。 |\n| `setMatrixAt(index, matrix)` / `getMatrixAt(index, target?)` | 设置或读取实例附加矩阵。 |\n| `setScaleAt(index, scale, y?, z?)` | 修改实例缩放,支持 `number` 或 `Vector3`。 |\n| `getFinalMatrixAt(index, target?)` | 读取实例最终矩阵,包含语义对象原始基点矩阵。 |\n| `getBoundingBoxAt(index, target?, world?)` | 获取实例包围盒;`world = true` 时包含 `FloorMesh.matrixWorld`。 |\n| `getBoundingSphereAt(index, target?, world?)` | 获取实例包围球;`world = true` 时包含 `FloorMesh.matrixWorld`。 |\n| `computeBoundingBox()` / `computeBoundingSphere()` | 计算整个楼层的包围体。 |\n| `planish()` / `unplanish()` | 压扁或恢复整个楼层 mesh。 |\n\n### 飞向语义实例\n\n点击、射线检测命中 `FloorMesh` 时,`intersect` 上会附加语义字段:`semanticIndex`、`semanticId`、`semanticKind`。可以直接用 `getBoundingBoxAt()` 获取实例的世界包围盒,然后让相机飞向该实例。\n\n```typescript\nimport { Box3 } from 'three';\n\nconst box = new Box3();\n\nfloor.addEventListener('click', async ({ event }) => {\n const { target, intersect } = event;\n const semanticBox = target.getBoundingBoxAt(intersect.semanticIndex, box, true);\n\n if (semanticBox) {\n await viewer.controls.flyToBox(semanticBox, {\n viewpoint: 'rightFrontTop',\n padding: 0.2,\n });\n }\n});\n```\n\n如果要根据 ID 操作对象,先通过 `getSemanticIndexById(id)` 转为实例下标。\n\n```typescript\nconst index = floor.getSemanticIndexById('SPACE_001');\n\nif (index !== undefined) {\n floor.setVisibleAt(index, false);\n viewer.render();\n}\n```\n\n### 楼层压扁\n\n`planish()` 会缩放整个 `FloorMesh`,适合展示楼层整体。`setScaleAt()` 只缩放单个语义实例,并保留该语义对象自己的基点矩阵,因此压扁墙、柱、房间时不会被压到世界原点。\n\n## `SceneLoader`\n\n从服务端场景包加载完整场景树(模型、组、形状、拉伸区域),并自动将所有已加载对象按 `id` 和 `sid` 注册到 `viewer.objectManager`。\n\n```typescript\nimport { SceneLoader } from 'u-space/plugins/u-manager';\n\nconst sceneLoader = new SceneLoader(viewer);\nsceneLoader.setPath('./scenes/my-scene');\nsceneLoader.setKey('YOUR_LICENSE_KEY'); // 官方授权场景必需\nconst group = await sceneLoader.loadAsync();\nviewer.scene.add(group);\n```\n\n**方法:**\n\n| 方法 | 说明 |\n| :--------------- | :------------------------------------------------------------ |\n| `setKey(key)` | 设置授权场景的 RSA 解密密钥。 |\n| `loadAsync()` | 加载并解析场景,返回包含完整层级的 `Group`。 |\n| `clearCache()` | 从 `objectManager` 中移除此加载器注册的所有 ID。 |\n| `dispose()` | 清除缓存并释放水印叠加层。 |\n\n## `TopologiesLoader` / `TopologyParser`\n\n加载拓扑图数据并将其转换为 `Topology` 对象。\n\n```typescript\nimport { TopologiesLoader } from 'u-space/plugins/u-manager';\n\nconst loader = new TopologiesLoader();\nloader.setPath('./scenes/my-scene');\nconst topologies = await loader.loadAsync(); // Topology[]\nviewer.scene.add(...topologies);\n```\n\n## `VisionsLoader` / `VisionsParser`\n\n加载命名相机视点,并将相机飞行到指定视点。\n\n```typescript\nimport { VisionsLoader, VisionsParser } from 'u-space/plugins/u-manager';\n\nconst visionsLoader = new VisionsLoader();\nvisionsLoader.setPath('./scenes/my-scene');\nconst visionsData = await visionsLoader.loadAsync();\n// visionsData 是 Record<string, IVisions[]>\n\nconst visionsParser = new VisionsParser(viewer);\n\n// 飞行到指定视点\nawait visionsParser.flyTo(visionsData['HOME'][0]);\n\n// 飞行到主(默认)视点\nawait visionsParser.flyToPrimary(visionsData['HOME']);\n```\n\n**`IVisions` 字段:**\n\n| 字段 | 类型 | 说明 |\n| :--------- | :------------ | :------------------------------ |\n| `camera` | `'P' \\| 'O'` | 相机类型:透视或正交。 |\n| `position` | `IVector3` | 相机世界位置。 |\n| `target` | `IVector3` | 相机朝向目标点。 |\n| `zoom` | `number` | 相机缩放级别。 |\n| `primary` | `boolean` | 是否为默认视点。 |\n\n## `AnimationsLoader` / `AnimationsParser`\n\n加载关键帧动画数据,并通过 `tweenAnimation` 驱动 `Object3D` 的变换。\n\n```typescript\nimport { AnimationsLoader, AnimationsParser } from 'u-space/plugins/u-manager';\n\nconst animLoader = new AnimationsLoader();\nanimLoader.setPath('./scenes/my-scene');\nconst animationsData = await animLoader.loadAsync(); // IAnimations[]\n\n// 查找特定对象的动画\nconst data = animationsData.find((a) => a.modelId === myModel.userData.id);\n\nconst parser = new AnimationsParser(viewer, myModel);\nparser.initTransform(); // 保存初始位置/旋转/缩放\n\nawait parser.play(data.keyframes); // 播放动画序列\n\n// 中途停止\nparser.stop();\n\n// 重置到初始变换\nparser.reset();\n```\n\n## `PropertiesLoader`\n\n加载与模型关联的结构化属性元数据(如 BIM 属性)。\n\n```typescript\nimport { PropertiesLoader } from 'u-space/plugins/u-manager';\n\nconst propsLoader = new PropertiesLoader();\npropsLoader.setPath('./scenes/my-scene');\nconst properties = await propsLoader.loadAsync(); // IProperties[]\n\n// 查找模型的属性\nconst modelProps = properties.filter(p => p.modelId === myModel.userData.id);\n```\n\n**`IProperties` 字段:**\n\n| 字段 | 类型 | 说明 |\n| :-------- | :--------------- | :----------------------- |\n| `modelId` | `string` | 关联模型的 ID。 |\n| `group` | `string` | 属性分组/类别名称。 |\n| `key` | `string` | 属性键名。 |\n| `value` | `string \\| null` | 属性值。 |\n| `label` | `string \\| null` | 属性的显示标签。 |\n"
848
+ "content": "# u-manager\n\n`u-manager` 是一套全面的加载器和解析器,用于从服务器路径流式传输、解密并显示结构化场景数据。支持场景、拓扑、动画、属性、相机视点和楼层语义模型。\n\n所有加载器均继承自 Three.js 的 `Loader`,并提供 `setPath(path)` 方法,在调用 `loadAsync()` 前配置基础数据目录。\n\n## `SemanticLoader`\n\n加载 `db/semantic_model.json` 楼层语义数据,并按建筑返回 `BuildingGroup[]`。每个建筑包含多个 `FloorMesh`,每个楼层把墙、柱、空间等语义对象合并为一个 TSL 材质驱动的网格。\n\n```typescript\nimport { Vector3, Vector4 } from 'three';\nimport { SemanticLoader } from 'u-space/plugins/u-manager';\n\nconst loader = new SemanticLoader(viewer);\nloader.setPath('./scenes/my-scene');\n\nconst buildings = await loader.loadAsync(); // BuildingGroup[]\nviewer.scene.add(...buildings);\n\nconst building = buildings[0];\nconst floor = building.getFloorAt(0);\n\nbuilding.isolateFloor(floor);\nawait viewer.controls.flyToObject(floor);\n\nfloor.addEventListener('click', ({ event }) => {\n const { target, intersect } = event;\n const index = intersect.semanticIndex;\n\n target.setColorAt(index, new Vector4(1, 0, 0, 0.5));\n target.setScaleAt(index, new Vector3(1, 0.1, 1));\n viewer.render();\n});\n```\n\n### `BuildingGroup`\n\n`BuildingGroup` 继承自 `BaseGroup`,用于组织一个建筑下的所有楼层。\n\n| 属性 / 方法 | 说明 |\n| :---------- | :--- |\n| `floorMeshes` | 当前建筑内的 `FloorMesh[]`。 |\n| `addFloor(floor)` | 添加楼层,并同步加入 group。 |\n| `removeFloor(floor)` | 移除楼层,并同步从 group 移除。 |\n| `getFloorAt(index)` | 按楼层下标获取 `FloorMesh`。 |\n| `isolateFloor(floor \\| index)` | 只显示指定楼层,隐藏其他楼层。 |\n| `showAllFloors()` | 显示全部楼层。 |\n| `planishFloors(kind?)` | 压扁所有楼层;传入 `kind` 时只压扁该语义类型。 |\n| `unplanishFloors(kind?)` | 恢复所有楼层;传入 `kind` 时只恢复该语义类型。 |\n\n### `FloorMesh`\n\n`FloorMesh` 继承自 `BaseMesh`,表示一个楼层。它不是 `BatchedMesh`,而是把同一楼层内的语义对象合并为一份几何,并通过 TSL + `DataTexture` 在 GPU 侧按 `semanticIndex` 控制颜色、透明度、显示隐藏和实例矩阵。\n\n这种结构的目标是让每个楼层通常只占一个主渲染 draw call,同时仍保留实例级控制能力。`xxxAt` 方法全部作用于单个语义实例;没有 `At` 后缀的方法作用于整个楼层 mesh。\n\n| 属性 / 方法 | 说明 |\n| :---------- | :--- |\n| `semanticCount` / `instanceCount` | 当前楼层语义实例数量。 |\n| `semanticInstances` | `Map<string, number>`,从语义对象 ID 映射到实例下标。 |\n| `wallsInstances` / `columnsInstances` / `spacesInstances` / `doorsInstances` / `windowsInstances` | 按语义类型维护的 ID 到实例下标映射。 |\n| `getSemanticIndexById(id)` | 根据语义 ID 获取实例下标。 |\n| `getSemanticIdAt(index)` | 获取实例语义 ID。 |\n| `getSemanticKindAt(index)` | 获取实例类型:`'Walls' \\| 'Columns' \\| 'Spaces' \\| 'Doors' \\| 'Windows'`。 |\n| `getSemanticNameAt(index)` | 获取实例名称;当前 `Spaces` 会从语义数据的 `Name` 写入,其他类型可能为 `undefined`。 |\n| `setColorAt(index, color)` / `getColorAt(index, target?)` | 修改或读取实例颜色,支持 `Color`、`Vector3`、`Vector4`。 |\n| `setOpacityAt(index, opacity)` / `getOpacityAt(index)` | 修改或读取实例透明度。 |\n| `setVisibleAt(index, visible)` / `getVisibleAt(index)` | 修改或读取实例显隐状态。 |\n| `setMatrixAt(index, matrix)` / `getMatrixAt(index, target?)` | 设置或读取实例附加矩阵。 |\n| `setScaleAt(index, scale, y?, z?)` | 修改实例缩放,支持 `number` 或 `Vector3`。 |\n| `setScaleYAt(index, y)` | 只修改实例 Y 轴缩放,保留 X/Z 缩放和已有位移、旋转。 |\n| `getFinalMatrixAt(index, target?)` | 读取实例最终矩阵,包含语义对象原始基点矩阵。 |\n| `getBoundingBoxAt(index, target?, world?)` | 获取实例包围盒;`world = true` 时包含 `FloorMesh.matrixWorld`。 |\n| `getBoundingSphereAt(index, target?, world?)` | 获取实例包围球;`world = true` 时包含 `FloorMesh.matrixWorld`。 |\n| `computeBoundingBox()` / `computeBoundingSphere()` | 计算整个楼层的包围体。 |\n| `planish(kind?)` / `unplanish(kind?)` | 压扁或恢复楼层语义实例;传入 `kind` 时只作用于该语义类型。 |\n\n### 飞向语义实例\n\n点击、射线检测命中 `FloorMesh` 时,`intersect` 上会附加语义字段:`semanticIndex`、`semanticId`、`semanticKind`。可以直接用 `getBoundingBoxAt()` 获取实例的世界包围盒,然后让相机飞向该实例。\n\n```typescript\nimport { Box3 } from 'three';\n\nconst box = new Box3();\n\nfloor.addEventListener('click', async ({ event }) => {\n const { target, intersect } = event;\n const semanticBox = target.getBoundingBoxAt(intersect.semanticIndex, box, true);\n\n if (semanticBox) {\n await viewer.controls.flyToBox(semanticBox, {\n viewpoint: 'rightFrontTop',\n padding: 0.2,\n });\n }\n});\n```\n\n如果要根据 ID 操作对象,先通过 `getSemanticIndexById(id)` 转为实例下标。\n\n```typescript\nconst index = floor.getSemanticIndexById('SPACE_001');\n\nif (index !== undefined) {\n floor.setVisibleAt(index, false);\n viewer.render();\n}\n```\n\n### 楼层压扁\n\n`planish()` / `unplanish()` 默认作用于当前楼层的全部语义实例;传入 `kind` 时只处理该类型,例如 `floor.planish('Walls')`。如果只想调整单个实例,可以使用 `setScaleAt()` 或 `setScaleYAt()`,它们会保留该语义对象自己的基点矩阵,因此压扁墙、柱、房间时不会被压到世界原点。\n\n## `SceneLoader`\n\n从服务端场景包加载完整场景树(模型、组、形状、拉伸区域),并自动将所有已加载对象按 `id` 和 `sid` 注册到 `viewer.objectManager`。\n\n```typescript\nimport { SceneLoader } from 'u-space/plugins/u-manager';\n\nconst sceneLoader = new SceneLoader(viewer);\nsceneLoader.setPath('./scenes/my-scene');\nsceneLoader.setKey('YOUR_LICENSE_KEY'); // 官方授权场景必需\nconst group = await sceneLoader.loadAsync();\nviewer.scene.add(group);\n```\n\n**方法:**\n\n| 方法 | 说明 |\n| :--------------- | :------------------------------------------------------------ |\n| `setKey(key)` | 设置授权场景的 RSA 解密密钥。 |\n| `loadAsync()` | 加载并解析场景,返回包含完整层级的 `Group`。 |\n| `clearCache()` | 从 `objectManager` 中移除此加载器注册的所有 ID。 |\n| `dispose()` | 清除缓存并释放水印叠加层。 |\n\n## `TopologiesLoader` / `TopologyParser`\n\n加载拓扑图数据并将其转换为 `Topology` 对象。\n\n```typescript\nimport { TopologiesLoader } from 'u-space/plugins/u-manager';\n\nconst loader = new TopologiesLoader();\nloader.setPath('./scenes/my-scene');\nconst topologies = await loader.loadAsync(); // Topology[]\nviewer.scene.add(...topologies);\n```\n\n## `VisionsLoader` / `VisionsParser`\n\n加载命名相机视点,并将相机飞行到指定视点。\n\n```typescript\nimport { VisionsLoader, VisionsParser } from 'u-space/plugins/u-manager';\n\nconst visionsLoader = new VisionsLoader();\nvisionsLoader.setPath('./scenes/my-scene');\nconst visionsData = await visionsLoader.loadAsync();\n// visionsData 是 Record<string, IVisions[]>\n\nconst visionsParser = new VisionsParser(viewer);\n\n// 飞行到指定视点\nawait visionsParser.flyTo(visionsData['HOME'][0]);\n\n// 飞行到主(默认)视点\nawait visionsParser.flyToPrimary(visionsData['HOME']);\n```\n\n**`IVisions` 字段:**\n\n| 字段 | 类型 | 说明 |\n| :--------- | :------------ | :------------------------------ |\n| `camera` | `'P' \\| 'O'` | 相机类型:透视或正交。 |\n| `position` | `IVector3` | 相机世界位置。 |\n| `target` | `IVector3` | 相机朝向目标点。 |\n| `zoom` | `number` | 相机缩放级别。 |\n| `primary` | `boolean` | 是否为默认视点。 |\n\n## `AnimationsLoader` / `AnimationsParser`\n\n加载关键帧动画数据,并通过 `tweenAnimation` 驱动 `Object3D` 的变换。\n\n```typescript\nimport { AnimationsLoader, AnimationsParser } from 'u-space/plugins/u-manager';\n\nconst animLoader = new AnimationsLoader();\nanimLoader.setPath('./scenes/my-scene');\nconst animationsData = await animLoader.loadAsync(); // IAnimations[]\n\n// 查找特定对象的动画\nconst data = animationsData.find((a) => a.modelId === myModel.userData.id);\n\nconst parser = new AnimationsParser(viewer, myModel);\nparser.initTransform(); // 保存初始位置/旋转/缩放\n\nawait parser.play(data.keyframes); // 播放动画序列\n\n// 中途停止\nparser.stop();\n\n// 重置到初始变换\nparser.reset();\n```\n\n## `PropertiesLoader`\n\n加载与模型关联的结构化属性元数据(如 BIM 属性)。\n\n```typescript\nimport { PropertiesLoader } from 'u-space/plugins/u-manager';\n\nconst propsLoader = new PropertiesLoader();\npropsLoader.setPath('./scenes/my-scene');\nconst properties = await propsLoader.loadAsync(); // IProperties[]\n\n// 查找模型的属性\nconst modelProps = properties.filter(p => p.modelId === myModel.userData.id);\n```\n\n**`IProperties` 字段:**\n\n| 字段 | 类型 | 说明 |\n| :-------- | :--------------- | :----------------------- |\n| `modelId` | `string` | 关联模型的 ID。 |\n| `group` | `string` | 属性分组/类别名称。 |\n| `key` | `string` | 属性键名。 |\n| `value` | `string \\| null` | 属性值。 |\n| `label` | `string \\| null` | 属性的显示标签。 |\n"
805
849
  },
806
850
  {
807
851
  "id": "api-render-pipeline",
@@ -845,12 +889,16 @@ export const docsIndex = [
845
889
  "level": 2,
846
890
  "text": "自定义后处理(OutputComposer)"
847
891
  },
892
+ {
893
+ "level": 2,
894
+ "text": "Output Effects"
895
+ },
848
896
  {
849
897
  "level": 2,
850
898
  "text": "Overlay Passes"
851
899
  }
852
900
  ],
853
- "content": "# RenderPipeline API(后处理管线)\n\n`viewer.renderPipeline` 管理渲染后处理链,内置 Bloom、SSGI、TRAA 支持,并提供自定义后处理覆盖机制。\n\n## 渲染节点图\n\n```\nStage 1: pass(scene, camera) + MRT(按需配置 output/emissive/normal/velocity)\n ↓\nStage 2: 后处理链(二选一)\n ├─ 内置模式: SSGI → Bloom(按启用状态组合)\n └─ 自定义模式: outputComposer(scenePass) → Node\n ↓\nStage 3: TRAA 时间抗锯齿\n ↓\nStage 4: Overlay Passes(blendColor 叠加 ViewerHelper 等)\n ↓\noutputNode = 最终结果\n```\n\n## 属性\n\n| 属性 | 类型 | 说明 |\n| :--- | :--- | :--- |\n| `scenePass` | `PassNode` | 场景渲染通道节点,`pass(scene, camera)` 的返回值。 |\n| `needsUpdateOutputNode` | `boolean` | 标记输出节点需要在下一帧重建。 |\n\n## Bloom\n\n基于 emissive MRT 通道的泛光效果。\n\n```typescript\n// 开启 Bloom\nviewer.renderPipeline.enableBloom({ strength: 1.5, radius: 0.4, threshold: 0.2 });\n\n// 运行时更新参数\nviewer.renderPipeline.updateBloom({ strength: 2.0 });\n\n// 关闭 Bloom\nviewer.renderPipeline.disableBloom();\n```\n\n### `BloomConfig`\n\n| 属性 | 类型 | 默认值 | 说明 |\n| :--- | :--- | :----- | :--- |\n| `strength` | `number` | `1` | 泛光强度 |\n| `radius` | `number` | `0` | 泛光扩散半径 |\n| `threshold` | `number` | `0` | 亮度阈值,低于此值不产生泛光 |\n\n## SSGI(屏幕空间全局光照)\n\n> 仅支持 `PerspectiveCamera`,使用 `OrthographicCamera` 时会自动跳过并输出警告。\n\n```typescript\n// 开启 SSGI\nviewer.renderPipeline.enableSSGI({ aoIntensity: 1, giIntensity: 10 });\n\n// 运行时更新参数(直接修改 uniform,不重建节点图)\nviewer.renderPipeline.updateSSGI({ giIntensity: 20, radius: 8 });\n\n// 关闭 SSGI\nviewer.renderPipeline.disableSSGI();\n```\n\n### `SSGIConfig`\n\n| 属性 | 类型 | 默认值 | 范围 | 说明 |\n| :--- | :--- | :----- | :--- | :--- |\n| `sliceCount` | `number` | `1` | 1–4 | 半球切片数 |\n| `stepCount` | `number` | `12` | 1–32 | 每切片采样步数 |\n| `aoIntensity` | `number` | `1` | 0–4 | 环境光遮蔽强度 |\n| `giIntensity` | `number` | `10` | 0–100 | 间接漫反射强度 |\n| `radius` | `number` | `12` | 1–25 | 世界空间采样半径 |\n| `thickness` | `number` | `1` | 0.01–10 | 物体厚度(世界单位) |\n\n## TRAA(时间抗锯齿)\n\n基于运动向量的时间分辨率抗锯齿。\n\n```typescript\n// 开启 TRAA\nviewer.renderPipeline.enableTRAA();\n\n// 关闭 TRAA\nviewer.renderPipeline.disableTRAA();\n```\n\n## 自定义后处理(OutputComposer)\n\n使用 `setOutputComposer` 可完全覆盖内置后处理链,接收 `scenePass` 返回自定义的 TSL 节点。\n\n```typescript\nimport { luminance, vec4 } from 'three/tsl';\n\n// 灰度滤镜\nviewer.renderPipeline.setOutputComposer((scenePass) => {\n const color = scenePass.getTextureNode();\n const gray = luminance(color.rgb);\n return vec4(gray, gray, gray, 1.0);\n});\n\n// 恢复默认(清除自定义后处理)\nviewer.renderPipeline.setOutputComposer(null);\n```\n\n## Overlay Passes\n\n用于叠加辅助渲染层(如 ViewerHelper),始终在后处理链之后执行。\n\n```typescript\nviewer.renderPipeline.addOverlayPass(overlayNode);\nviewer.renderPipeline.removeOverlayPass(overlayNode);\n```\n"
901
+ "content": "# RenderPipeline API(后处理管线)\n\n`viewer.renderPipeline` 管理渲染后处理链,内置 Bloom、SSGI、TRAA 支持,并提供自定义后处理覆盖机制。\n\n## 渲染节点图\n\n```\nStage 1: pass(scene, camera) + MRT(按需配置 output/emissive/normal/velocity)\n ↓\nStage 2: 后处理链\n ├─ 内置模式: SSGI → Bloom(按启用状态组合)\n └─ 自定义模式: outputComposer(scenePass) → Node\n ↓\nStage 3: Output Effects(仅默认/内置模式,插件/扩展追加效果)\n ↓\nStage 4: TRAA 时间抗锯齿\n ↓\nStage 5: Overlay Passes(blendColor 叠加 ViewerHelper 等)\n ↓\noutputNode = 最终结果\n```\n\n## 属性\n\n| 属性 | 类型 | 说明 |\n| :--- | :--- | :--- |\n| `scenePass` | `PassNode` | 场景渲染通道节点,`pass(scene, camera)` 的返回值。 |\n| `needsUpdateOutputNode` | `boolean` | 标记输出节点需要在下一帧重建。 |\n\n## Bloom\n\n基于 emissive MRT 通道的泛光效果。\n\n```typescript\n// 开启 Bloom\nviewer.renderPipeline.enableBloom({ strength: 1.5, radius: 0.4, threshold: 0.2 });\n\n// 运行时更新参数\nviewer.renderPipeline.updateBloom({ strength: 2.0 });\n\n// 关闭 Bloom\nviewer.renderPipeline.disableBloom();\n```\n\n### `BloomConfig`\n\n| 属性 | 类型 | 默认值 | 说明 |\n| :--- | :--- | :----- | :--- |\n| `strength` | `number` | `1` | 泛光强度 |\n| `radius` | `number` | `0` | 泛光扩散半径 |\n| `threshold` | `number` | `0` | 亮度阈值,低于此值不产生泛光 |\n\n## SSGI(屏幕空间全局光照)\n\n> 仅支持 `PerspectiveCamera`,使用 `OrthographicCamera` 时会自动跳过并输出警告。\n\n```typescript\n// 开启 SSGI\nviewer.renderPipeline.enableSSGI({ aoIntensity: 1, giIntensity: 10 });\n\n// 运行时更新参数(直接修改 uniform,不重建节点图)\nviewer.renderPipeline.updateSSGI({ giIntensity: 20, radius: 8 });\n\n// 关闭 SSGI\nviewer.renderPipeline.disableSSGI();\n```\n\n### `SSGIConfig`\n\n| 属性 | 类型 | 默认值 | 范围 | 说明 |\n| :--- | :--- | :----- | :--- | :--- |\n| `sliceCount` | `number` | `1` | 1–4 | 半球切片数 |\n| `stepCount` | `number` | `12` | 1–32 | 每切片采样步数 |\n| `aoIntensity` | `number` | `1` | 0–4 | 环境光遮蔽强度 |\n| `giIntensity` | `number` | `10` | 0–100 | 间接漫反射强度 |\n| `radius` | `number` | `12` | 1–25 | 世界空间采样半径 |\n| `thickness` | `number` | `1` | 0.01–10 | 物体厚度(世界单位) |\n\n## TRAA(时间抗锯齿)\n\n基于运动向量的时间分辨率抗锯齿。\n\n```typescript\n// 开启 TRAA\nviewer.renderPipeline.enableTRAA();\n\n// 关闭 TRAA\nviewer.renderPipeline.disableTRAA();\n```\n\n## 自定义后处理(OutputComposer)\n\n使用 `setOutputComposer` 可完全覆盖内置后处理链,接收 `scenePass` 返回自定义的 TSL 节点。自定义 composer 会保持最终输出语义,不再叠加插件注册的 output effects。\n\n```typescript\nimport { luminance, vec4 } from 'three/tsl';\n\n// 灰度滤镜\nviewer.renderPipeline.setOutputComposer((scenePass) => {\n const color = scenePass.getTextureNode();\n const gray = luminance(color.rgb);\n return vec4(gray, gray, gray, 1.0);\n});\n\n// 恢复默认(清除自定义后处理)\nviewer.renderPipeline.setOutputComposer(null);\n```\n\n## Output Effects\n\n插件可使用 `addOutputEffect` 在默认/内置后处理链之后追加效果,而不占用业务侧的 `setOutputComposer()`。如果业务设置了自定义 composer,output effects 会被跳过,由 composer 自己负责完整输出。\n\n```typescript\nconst effect = (scenePass, inputNode) => inputNode;\nviewer.renderPipeline.addOutputEffect(effect);\nviewer.renderPipeline.removeOutputEffect(effect);\n```\n\n如果 effect 已经调用了 `renderOutput()`,可设置 `effect.includesOutputTransform = true`,管线只会在该 effect 实际生效时关闭默认输出变换。\n\n如需额外 MRT 输出通道,可用 `addMRTChannel` / `removeMRTChannel` 注册,不会污染核心依赖。\n\n## Overlay Passes\n\n用于叠加辅助渲染层(如 ViewerHelper),始终在后处理链之后执行。\n\n```typescript\nviewer.renderPipeline.addOverlayPass(overlayNode);\nviewer.renderPipeline.removeOverlayPass(overlayNode);\n```\n"
854
902
  },
855
903
  {
856
904
  "id": "api-tools",
@@ -1070,12 +1118,44 @@ export const docsIndex = [
1070
1118
  "id": "changelog",
1071
1119
  "path": "changelog.md",
1072
1120
  "title": "更新日志",
1073
- "summary": "- **u-manager semantics** 新增 `SemanticLoader`、`BuildingGroup`、`FloorMesh` 语义楼层 API,支持楼层隔离、实例级颜色/透明度/显隐/matrix/scale 控制,以及实例包围盒/包围球查询。 - **u-space MCP** — 内置文档索引同步语义楼层 API,MCP 客户端可检索 `SemanticLoader`、`BuildingGroup` 和 `FloorMesh` 用法。 - **Viewer** — `resize()`、`screenshot()`、`setBackground()`、`setEnvironment()`、`enableShadow()`/`disableShadow()`、`enableFog()`/`enableFogExp2()`/`disableFog()`",
1121
+ "summary": "- **版本发布**同步发布包含新版大气插件实现、RenderPipeline output effects 和一键 MCP 发布脚本的 npm 包。 - **atmosphere 插件** `Atmosphere.enable(options)` 从占位实现升级为可用的大气渲染:支持 WGS84 经纬高定位、太阳/月亮方向、天空背景、天空环境、aerial perspective、lens flare、tone mapping、temporal antialias、dithering 和 `AtmosphereLight` 阴影。 - **RenderPipeline** — 新增 `addOutputEffect()` / `removeOutputEffect()` 与 `addMRTChannel()` / `removeMRTChannel()`,插件可追加输出后处理和",
1074
1122
  "headings": [
1075
1123
  {
1076
1124
  "level": 1,
1077
1125
  "text": "更新日志"
1078
1126
  },
1127
+ {
1128
+ "level": 2,
1129
+ "text": "0.0.18"
1130
+ },
1131
+ {
1132
+ "level": 3,
1133
+ "text": "变更"
1134
+ },
1135
+ {
1136
+ "level": 2,
1137
+ "text": "0.0.17"
1138
+ },
1139
+ {
1140
+ "level": 3,
1141
+ "text": "新增"
1142
+ },
1143
+ {
1144
+ "level": 3,
1145
+ "text": "变更"
1146
+ },
1147
+ {
1148
+ "level": 2,
1149
+ "text": "0.0.16"
1150
+ },
1151
+ {
1152
+ "level": 3,
1153
+ "text": "新增"
1154
+ },
1155
+ {
1156
+ "level": 3,
1157
+ "text": "变更"
1158
+ },
1079
1159
  {
1080
1160
  "level": 2,
1081
1161
  "text": "0.0.12"
@@ -1149,7 +1229,7 @@ export const docsIndex = [
1149
1229
  "text": "新增"
1150
1230
  }
1151
1231
  ],
1152
- "content": "# 更新日志\n\n## 0.0.12\n\n### 新增\n\n- **u-manager semantics** — 新增 `SemanticLoader`、`BuildingGroup`、`FloorMesh` 语义楼层 API,支持楼层隔离、实例级颜色/透明度/显隐/matrix/scale 控制,以及实例包围盒/包围球查询。\n- **u-space MCP** — 内置文档索引同步语义楼层 API,MCP 客户端可检索 `SemanticLoader`、`BuildingGroup` 和 `FloorMesh` 用法。\n\n## 0.0.8\n\n### 新增\n\n- **Viewer** — `resize()`、`screenshot()`、`setBackground()`、`setEnvironment()`、`enableShadow()`/`disableShadow()`、`enableFog()`/`enableFogExp2()`/`disableFog()`\n- **CameraControls** — `flyTo()`、`getCameraViewpoint()`、`lock()`/`unlock()`、`setViewMode('2d' | '3d')`\n- **ObjectManager** — `show()`/`hide()`、`isolate()`、`showAll()`、`setOpacity()`、`getBoundingBox()`、`forEach()`、`filter()`\n- **InteractionManager** — `enable()`/`disable()`、`setInteractable()`、`addIgnore()`/`removeIgnore()`\n- **Selection** — 新增框选(rubber-band)和单选/多选/切换模块,支持 `select`/`deselect`/`change` 事件\n- **MaterialEffects** — `wireframe()`/`removeWireframe()`、`transparent()`/`removeTransparent()`、`xray()`/`removeXray()`、`fadeIn()`/`fadeOut()`\n- **Model** — `getBoundingBox()`、`getCenter()`、`setMaterial()`\n- **SceneManager** — 新模块,多场景创建、注册、切换与序列化\n- **LightManager** — 新模块,灯光便捷创建、4 种预设(indoor/outdoor/studio/warehouse)、Helper 可视化\n- **MeasureTool** — 新工具,距离/面积/角度测量,结果可视化渲染到场景\n- **ClippingTool** — 新工具,基于 WebGPU `ClippingGroup` 的剖切面与剖切盒\n- **AnnotationManager** — 新工具,3D 引线标注 + HTML 浮动标签\n- **示例** — 新增 8 个交互式示例页面\n\n### 修复\n\n- **Selection** — 框选覆盖层改为挂载到容器元素(而非 canvas),修复框选矩形不可见的问题\n- **ClippingTool** — 从 `renderer.clippingPlanes`(WebGL API)重写为 `ClippingGroup`(WebGPU API),修复剖切无效的问题\n- **MaterialEffects** — fade 动画在对象移除场景后自动停止,避免内存泄漏\n- **InteractionManager** — `dispose()` 中清除 `clickTimer`,避免定时器泄漏\n- **LightManager** — 修复 `removeAll()`/`hideAllHelpers()` 中遍历 Map 同时删除的问题\n- **ObjectManager** — `setOpacity()` 先检查 `isMesh` 再类型转换\n- **ClippingTool** — `PlaneHelper` 颜色使用 `new Color(color).getHex()` 替代直接 `as number`\n- **MeasureTool** — 移除 WebGPU 不支持的 `linewidth` 属性\n\n---\n\n## 0.0.7\n\n### 变更\n\n- 文档拆分:将插件文档拆分为独立文件\n- 新增 CameraControls 独立文档页\n- 修复 getting-started 中的死链\n- 修复 sbmx loader 示例使用新的 MaterialEffects API\n\n---\n\n## 0.0.6\n\n### 新增\n\n- **MaterialEffects** — 可组合的材质特效系统,支持安全共享材质和 remove API\n- **RenderPipeline** — 内置 Bloom、SSGI、TRAA 后处理及 OutputComposer API\n- **CSSRenderer** — CSS2D / CSS2.5D / CSS3D 叠加渲染 HTML 元素\n- 从 `package.json` 导出 `version`,统一示例 importmap\n\n---\n\n## 0.0.5\n\n### 变更\n\n- 版本发布(无重大功能变更)\n\n---\n\n## 0.0.4\n\n### 新增\n\n- **Model** — 动画播放支持(`playAnimation`、`stopAnimation`、`updateAnimation`)\n- **ViewerEventMap** — 事件回调新增 `delta` 时间参数\n\n---\n\n## 0.0.3\n\n### 新增\n\n- **ObjectControls** 插件 — 交互式移动、旋转、缩放 3D 对象\n- **TopologyDrawer** 插件 — 在场景任意表面交互式绘制拓扑路径图\n- **Topology** — `exportData()` / `importData()` 数据序列化\n\n### 变更\n\n- **Interactions** — `contextmenu` 事件替换为 `rightclick`\n- **Poi** — 优化渲染性能,新增 `scaleFactor` 参数\n- 文档全面完善:本地搜索、侧边栏优化、各插件文档页\n\n---\n\n## 0.0.0\n\n### 新增\n\n- 项目初始化:Viewer 核心、WebGPU 渲染器、场景/相机/控制器\n- 模型加载系统:双层缓存(内存 + 持久化)、Draco/KTX2/Meshopt 支持\n- 交互系统:射线检测、事件冒泡、自定义 3D 对象事件\n- 对象系统:Model、Poi、Topology、基础网格(Sphere/Plane/Circle/Tube/Extrude/Shape)\n- ObjectManager 集中式对象注册\n- 补间动画系统\n- u-manager 插件:场景加载、动画、属性、视点管理\n- tiles 插件:ArcGIS 3D 瓦片 / GIS 地球渲染\n- minimap 插件:2D 小地图\n- keyboard-controls 插件:WASD 键盘控制\n- tracking-controls 插件:相机跟随\n- atmosphere 插件:天空/大气渲染\n- curve-movement 插件:曲线路径动画\n"
1232
+ "content": "# 更新日志\n\n## 0.0.18\n\n### 变更\n\n- **版本发布** — 同步发布包含新版大气插件实现、RenderPipeline output effects 和一键 MCP 发布脚本的 npm 包。\n\n## 0.0.17\n\n### 新增\n\n- **atmosphere 插件** — `Atmosphere.enable(options)` 从占位实现升级为可用的大气渲染:支持 WGS84 经纬高定位、太阳/月亮方向、天空背景、天空环境、aerial perspective、lens flare、tone mapping、temporal antialias、dithering 和 `AtmosphereLight` 阴影。\n- **RenderPipeline** — 新增 `addOutputEffect()` / `removeOutputEffect()` 与 `addMRTChannel()` / `removeMRTChannel()`,插件可追加输出后处理和独立 MRT 通道,不再占用业务侧 `setOutputComposer()`。\n\n### 变更\n\n- **大气状态更新** — 大气插件在 `beforeRender` 中刷新相机 ECEF 位置、太阳/月亮方向和阴影 target,相机控制器驱动的移动也能逐帧更新大气状态。\n- **MCP 发布** — 根目录 MCP 发布入口合并为 `pnpm publish:mcp`,命令会先构建 `u-space-mcp` 文档索引,再发布 npm 包。\n\n## 0.0.16\n\n### 新增\n\n- **u-manager semantics** — `FloorMesh.planish(kind?)`、`FloorMesh.unplanish(kind?)`、`BuildingGroup.planishFloors(kind?)` 和 `BuildingGroup.unplanishFloors(kind?)` 支持按 `Walls`、`Columns`、`Spaces`、`Doors`、`Windows` 语义类型压平或恢复;`setScaleYAt(index, y)` 可只调整单个语义实例的 Y 轴缩放。\n- **BaseMesh** — 默认开启 `castShadow` 与 `receiveShadow`,基础网格和继承自 `BaseMesh` 的对象会直接参与阴影投射与接收。\n\n### 变更\n\n- **语义类型命名** — `SemanticKind` 统一为数据源字段风格:`Walls`、`Columns`、`Spaces`、`Doors`、`Windows`。\n- **示例与依赖** — 更新 `load_tiles.html` 示例依赖,新增 `@takram/three-atmosphere`、`postprocessing` peer dependency,并将 Vite 外部依赖边界扩展到所有 `@takram/*` 包。\n\n## 0.0.12\n\n### 新增\n\n- **u-manager semantics** — 新增 `SemanticLoader`、`BuildingGroup`、`FloorMesh` 语义楼层 API,支持楼层隔离、实例级颜色/透明度/显隐/matrix/scale 控制,以及实例包围盒/包围球查询。\n- **u-space MCP** — 内置文档索引同步语义楼层 API,MCP 客户端可检索 `SemanticLoader`、`BuildingGroup` 和 `FloorMesh` 用法。\n\n## 0.0.8\n\n### 新增\n\n- **Viewer** — `resize()`、`screenshot()`、`setBackground()`、`setEnvironment()`、`enableShadow()`/`disableShadow()`、`enableFog()`/`enableFogExp2()`/`disableFog()`\n- **CameraControls** — `flyTo()`、`getCameraViewpoint()`、`lock()`/`unlock()`、`setViewMode('2d' | '3d')`\n- **ObjectManager** — `show()`/`hide()`、`isolate()`、`showAll()`、`setOpacity()`、`getBoundingBox()`、`forEach()`、`filter()`\n- **InteractionManager** — `enable()`/`disable()`、`setInteractable()`、`addIgnore()`/`removeIgnore()`\n- **Selection** — 新增框选(rubber-band)和单选/多选/切换模块,支持 `select`/`deselect`/`change` 事件\n- **MaterialEffects** — `wireframe()`/`removeWireframe()`、`transparent()`/`removeTransparent()`、`xray()`/`removeXray()`、`fadeIn()`/`fadeOut()`\n- **Model** — `getBoundingBox()`、`getCenter()`、`setMaterial()`\n- **SceneManager** — 新模块,多场景创建、注册、切换与序列化\n- **LightManager** — 新模块,灯光便捷创建、4 种预设(indoor/outdoor/studio/warehouse)、Helper 可视化\n- **MeasureTool** — 新工具,距离/面积/角度测量,结果可视化渲染到场景\n- **ClippingTool** — 新工具,基于 WebGPU `ClippingGroup` 的剖切面与剖切盒\n- **AnnotationManager** — 新工具,3D 引线标注 + HTML 浮动标签\n- **示例** — 新增 8 个交互式示例页面\n\n### 修复\n\n- **Selection** — 框选覆盖层改为挂载到容器元素(而非 canvas),修复框选矩形不可见的问题\n- **ClippingTool** — 从 `renderer.clippingPlanes`(WebGL API)重写为 `ClippingGroup`(WebGPU API),修复剖切无效的问题\n- **MaterialEffects** — fade 动画在对象移除场景后自动停止,避免内存泄漏\n- **InteractionManager** — `dispose()` 中清除 `clickTimer`,避免定时器泄漏\n- **LightManager** — 修复 `removeAll()`/`hideAllHelpers()` 中遍历 Map 同时删除的问题\n- **ObjectManager** — `setOpacity()` 先检查 `isMesh` 再类型转换\n- **ClippingTool** — `PlaneHelper` 颜色使用 `new Color(color).getHex()` 替代直接 `as number`\n- **MeasureTool** — 移除 WebGPU 不支持的 `linewidth` 属性\n\n---\n\n## 0.0.7\n\n### 变更\n\n- 文档拆分:将插件文档拆分为独立文件\n- 新增 CameraControls 独立文档页\n- 修复 getting-started 中的死链\n- 修复 sbmx loader 示例使用新的 MaterialEffects API\n\n---\n\n## 0.0.6\n\n### 新增\n\n- **MaterialEffects** — 可组合的材质特效系统,支持安全共享材质和 remove API\n- **RenderPipeline** — 内置 Bloom、SSGI、TRAA 后处理及 OutputComposer API\n- **CSSRenderer** — CSS2D / CSS2.5D / CSS3D 叠加渲染 HTML 元素\n- 从 `package.json` 导出 `version`,统一示例 importmap\n\n---\n\n## 0.0.5\n\n### 变更\n\n- 版本发布(无重大功能变更)\n\n---\n\n## 0.0.4\n\n### 新增\n\n- **Model** — 动画播放支持(`playAnimation`、`stopAnimation`、`updateAnimation`)\n- **ViewerEventMap** — 事件回调新增 `delta` 时间参数\n\n---\n\n## 0.0.3\n\n### 新增\n\n- **ObjectControls** 插件 — 交互式移动、旋转、缩放 3D 对象\n- **TopologyDrawer** 插件 — 在场景任意表面交互式绘制拓扑路径图\n- **Topology** — `exportData()` / `importData()` 数据序列化\n\n### 变更\n\n- **Interactions** — `contextmenu` 事件替换为 `rightclick`\n- **Poi** — 优化渲染性能,新增 `scaleFactor` 参数\n- 文档全面完善:本地搜索、侧边栏优化、各插件文档页\n\n---\n\n## 0.0.0\n\n### 新增\n\n- 项目初始化:Viewer 核心、WebGPU 渲染器、场景/相机/控制器\n- 模型加载系统:双层缓存(内存 + 持久化)、Draco/KTX2/Meshopt 支持\n- 交互系统:射线检测、事件冒泡、自定义 3D 对象事件\n- 对象系统:Model、Poi、Topology、基础网格(Sphere/Plane/Circle/Tube/Extrude/Shape)\n- ObjectManager 集中式对象注册\n- 补间动画系统\n- u-manager 插件:场景加载、动画、属性、视点管理\n- tiles 插件:ArcGIS 3D 瓦片 / GIS 地球渲染\n- minimap 插件:2D 小地图\n- keyboard-controls 插件:WASD 键盘控制\n- tracking-controls 插件:相机跟随\n- atmosphere 插件:天空/大气渲染\n- curve-movement 插件:曲线路径动画\n"
1153
1233
  },
1154
1234
  {
1155
1235
  "id": "examples-guide",
@@ -1360,7 +1440,7 @@ export const docsIndex = [
1360
1440
  "text": "MCP"
1361
1441
  }
1362
1442
  ],
1363
- "content": "---\nlayout: home\n\nhero:\n name: u-space\n text: WebGPU-ready 3D Engine\n tagline: 基于 Three.js 的插件化 3D 可视化库,支持 GIS 瓦片、动画、场景管理与交互系统。\n actions:\n - theme: brand\n text: 快速上手\n link: /getting-started\n - theme: alt\n text: API 文档\n link: /api-viewer\n - theme: alt\n text: 在线示例\n link: /examples/\n target: _self\n\nfeatures:\n - title: WebGPU 优先\n details: 基于 Three.js WebGPU 渲染器,支持 TSL(Three Shading Language)着色器节点,同时保持 WebGL 兼容回退。\n - title: 插件化架构\n details: 核心轻量,通过独立插件按需扩展:GIS 瓦片、小地图、键盘控制、场景管理、曲线动画等。\n - title: 交互系统\n details: 内置射线检测与事件冒泡,像操作 DOM 元素一样为 3D 对象添加 click、pointerenter 等事件。\n---\n\n## 文档目录\n\n### 核心 API\n\n| 文档 | 说明 |\n| :--- | :--- |\n| [Viewer](./api-viewer) | 核心类:渲染器、场景、相机、控制器、事件 |\n| [CameraControls](./api-camera-controls) | 相机控制:飞行、视角切换、视点过渡 |\n| [CSSRenderer](./api-css-renderer) | CSS 渲染器:CSS2D / CSS2.5D / CSS3D 叠加 HTML 元素 |\n| [RenderPipeline](./api-render-pipeline) | 后处理管线:Bloom、SSGI、TRAA、自定义后处理 |\n| [Objects](./api-objects) | 3D 对象:模型加载、基础网格、Poi、Topology |\n| [Interactions](./api-interactions) | 交互管理:射线检测、鼠标/触摸事件、框选 |\n| [Managers](./api-managers) | 对象管理、场景管理、灯光管理 |\n| [Animations](./api-animations) | 补间动画:`tweenAnimation`、`Tween`、缓动模式 |\n| [Effects](./api-effects) | 视觉特效:高亮、呼吸、线框、淡入淡出、流动、流体(TSL) |\n| [Tools](./api-tools) | 工具:测量(距离/面积/角度)、剖切(面/盒)、标注管理 |\n\n### 插件\n\n所有插件从 `u-space/plugins/<name>` 导入。\n\n| 插件 | 说明 |\n| :--- | :--- |\n| [keyboard-controls](./api-plugin-keyboard-controls) | WASD / 方向键控制相机移动与旋转 |\n| [minimap](./api-plugin-minimap) | 2D 小地图叠加层 |\n| [tiles](./api-plugin-tiles) | ArcGIS 3D 瓦片 / GIS 地球渲染 |\n| [u-manager](./api-plugin-u-manager) | 场景加载、语义楼层、拓扑、动画、属性、视点管理 |\n| [curve-movement](./api-plugin-curve-movement) | 沿样条曲线移动相机或对象 |\n| [tracking-controls](./api-plugin-tracking-controls) | 相机跟随移动目标 |\n| [atmosphere](./api-plugin-atmosphere) | 天空/大气渲染(开发中) |\n| [object-controls](./api-plugin-object-controls) | 交互式移动、旋转、缩放 3D 对象 |\n| [topology-drawer](./api-plugin-topology-drawer) | 在场景任意表面交互式绘制拓扑路径图 |\n\n### MCP\n\n| 文档 | 说明 |\n| :--- | :--- |\n| [u-space MCP](./mcp) | 面向 Mastra、Claude Desktop、Cursor 等 MCP 客户端的只读文档检索服务器 |\n"
1443
+ "content": "---\nlayout: home\n\nhero:\n name: u-space\n text: WebGPU-ready 3D Engine\n tagline: 基于 Three.js 的插件化 3D 可视化库,支持 GIS 瓦片、动画、场景管理与交互系统。\n actions:\n - theme: brand\n text: 快速上手\n link: /getting-started\n - theme: alt\n text: API 文档\n link: /api-viewer\n - theme: alt\n text: 在线示例\n link: /examples/\n target: _self\n\nfeatures:\n - title: WebGPU 优先\n details: 基于 Three.js WebGPU 渲染器,支持 TSL(Three Shading Language)着色器节点,同时保持 WebGL 兼容回退。\n - title: 插件化架构\n details: 核心轻量,通过独立插件按需扩展:GIS 瓦片、小地图、键盘控制、场景管理、曲线动画等。\n - title: 交互系统\n details: 内置射线检测与事件冒泡,像操作 DOM 元素一样为 3D 对象添加 click、pointerenter 等事件。\n---\n\n## 文档目录\n\n### 核心 API\n\n| 文档 | 说明 |\n| :--- | :--- |\n| [Viewer](./api-viewer) | 核心类:渲染器、场景、相机、控制器、事件 |\n| [CameraControls](./api-camera-controls) | 相机控制:飞行、视角切换、视点过渡 |\n| [CSSRenderer](./api-css-renderer) | CSS 渲染器:CSS2D / CSS2.5D / CSS3D 叠加 HTML 元素 |\n| [RenderPipeline](./api-render-pipeline) | 后处理管线:Bloom、SSGI、TRAA、自定义后处理 |\n| [Objects](./api-objects) | 3D 对象:模型加载、基础网格、Poi、Topology |\n| [Interactions](./api-interactions) | 交互管理:射线检测、鼠标/触摸事件、框选 |\n| [Managers](./api-managers) | 对象管理、场景管理、灯光管理 |\n| [Animations](./api-animations) | 补间动画:`tweenAnimation`、`Tween`、缓动模式 |\n| [Effects](./api-effects) | 视觉特效:高亮、呼吸、线框、淡入淡出、流动、流体(TSL) |\n| [Tools](./api-tools) | 工具:测量(距离/面积/角度)、剖切(面/盒)、标注管理 |\n\n### 插件\n\n所有插件从 `u-space/plugins/<name>` 导入。\n\n| 插件 | 说明 |\n| :--- | :--- |\n| [keyboard-controls](./api-plugin-keyboard-controls) | WASD / 方向键控制相机移动与旋转 |\n| [minimap](./api-plugin-minimap) | 2D 小地图叠加层 |\n| [tiles](./api-plugin-tiles) | ArcGIS 3D 瓦片 / GIS 地球渲染 |\n| [u-manager](./api-plugin-u-manager) | 场景加载、语义楼层、拓扑、动画、属性、视点管理 |\n| [curve-movement](./api-plugin-curve-movement) | 沿样条曲线移动相机或对象 |\n| [tracking-controls](./api-plugin-tracking-controls) | 相机跟随移动目标 |\n| [atmosphere](./api-plugin-atmosphere) | 天空背景、大气透视、太阳/月亮光照与阴影 |\n| [object-controls](./api-plugin-object-controls) | 交互式移动、旋转、缩放 3D 对象 |\n| [topology-drawer](./api-plugin-topology-drawer) | 在场景任意表面交互式绘制拓扑路径图 |\n\n### MCP\n\n| 文档 | 说明 |\n| :--- | :--- |\n| [u-space MCP](./mcp) | 面向 Mastra、Claude Desktop、Cursor 等 MCP 客户端的只读文档检索服务器 |\n"
1364
1444
  },
1365
1445
  {
1366
1446
  "id": "mcp",
@@ -1389,7 +1469,7 @@ export const docsIndex = [
1389
1469
  "text": "包结构"
1390
1470
  }
1391
1471
  ],
1392
- "content": "# u-space MCP\n\n`u-space-mcp` 是面向 `u-space` 文档的 Model Context Protocol(MCP)服务器。它把当前文档打包成只读 MCP 工具,方便 Mastra、Claude Desktop、Cursor 等 MCP 客户端在回答 `u-space` API、插件和示例问题时直接检索官方文档,包括 `u-manager` 的 `SemanticLoader`、`BuildingGroup` 和 `FloorMesh` 语义楼层 API。\n\n## 安装与启动\n\n推荐通过 `npx` 使用已发布的 npm 包:\n\n```json\n{\n \"mcpServers\": {\n \"uSpace\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"u-space-mcp@latest\"]\n }\n }\n}\n```\n\n本地开发文档时,可以通过 `--docs` 指向仓库里的 docs 目录:\n\n```json\n{\n \"mcpServers\": {\n \"uSpace\": {\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"u-space-mcp@latest\",\n \"--docs\",\n \"/Users/jiangqi/Desktop/xunwei/SoonSpace/u-space/docs\"\n ]\n }\n }\n}\n```\n\n也可以使用环境变量:\n\n```bash\nU_SPACE_DOCS_PATH=/path/to/u-space/docs npx -y u-space-mcp@latest\n```\n\n## Mastra 接入\n\n在 Mastra 中通过 `MCPClient` 使用 stdio 形式接入:\n\n```typescript\nimport { MCPClient } from '@mastra/mcp';\n\nexport const uSpaceMcpClient = new MCPClient({\n id: 'u-space-mcp-client',\n servers: {\n uSpace: {\n command: 'npx',\n args: ['-y', 'u-space-mcp@latest'],\n stderr: 'pipe',\n },\n },\n});\n```\n\n然后把工具挂到 Agent 上:\n\n```typescript\nexport const codingAgent = new Agent({\n // ...\n tools: {\n ...(await uSpaceMcpClient.listTools()),\n },\n});\n```\n\n## 工具列表\n\n`u-space-mcp` 只提供只读工具:\n\n| 工具 | 说明 |\n| :--- | :--- |\n| `list_docs` | 列出可用文档页 |\n| `search_docs` | 按关键词、API 名、插件名或概念检索文档 |\n| `get_doc` | 按 path 或 id 读取单篇文档 |\n| `get_api_reference` | 面向 API / 类 / 方法 / 插件的检索 |\n| `find_examples` | 查找示例和用法相关文档 |\n| `get_changelog` | 读取更新日志 |\n\n## 包结构\n\n源码位于 `packages/u-space-mcp`。构建时会从根目录 `docs/*.md` 生成内置文档索引,并编译成可发布的 npm 包:\n\n```bash\npnpm build:mcp\npnpm publish:mcp\n```\n\n发布后的包不依赖本机绝对路径;只有在传入 `--docs` 或设置 `U_SPACE_DOCS_PATH` 时,才会读取本地文档目录。\n"
1472
+ "content": "# u-space MCP\n\n`u-space-mcp` 是面向 `u-space` 文档的 Model Context Protocol(MCP)服务器。它把当前文档打包成只读 MCP 工具,方便 Mastra、Claude Desktop、Cursor 等 MCP 客户端在回答 `u-space` API、插件和示例问题时直接检索官方文档,包括 `u-manager` 的 `SemanticLoader`、`BuildingGroup` 和 `FloorMesh` 语义楼层 API。\n\n## 安装与启动\n\n推荐通过 `npx` 使用已发布的 npm 包:\n\n```json\n{\n \"mcpServers\": {\n \"uSpace\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"u-space-mcp@latest\"]\n }\n }\n}\n```\n\n本地开发文档时,可以通过 `--docs` 指向仓库里的 docs 目录:\n\n```json\n{\n \"mcpServers\": {\n \"uSpace\": {\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"u-space-mcp@latest\",\n \"--docs\",\n \"/Users/jiangqi/Desktop/xunwei/SoonSpace/u-space/docs\"\n ]\n }\n }\n}\n```\n\n也可以使用环境变量:\n\n```bash\nU_SPACE_DOCS_PATH=/path/to/u-space/docs npx -y u-space-mcp@latest\n```\n\n## Mastra 接入\n\n在 Mastra 中通过 `MCPClient` 使用 stdio 形式接入:\n\n```typescript\nimport { MCPClient } from '@mastra/mcp';\n\nexport const uSpaceMcpClient = new MCPClient({\n id: 'u-space-mcp-client',\n servers: {\n uSpace: {\n command: 'npx',\n args: ['-y', 'u-space-mcp@latest'],\n stderr: 'pipe',\n },\n },\n});\n```\n\n然后把工具挂到 Agent 上:\n\n```typescript\nexport const codingAgent = new Agent({\n // ...\n tools: {\n ...(await uSpaceMcpClient.listTools()),\n },\n});\n```\n\n## 工具列表\n\n`u-space-mcp` 只提供只读工具:\n\n| 工具 | 说明 |\n| :--- | :--- |\n| `list_docs` | 列出可用文档页 |\n| `search_docs` | 按关键词、API 名、插件名或概念检索文档 |\n| `get_doc` | 按 path 或 id 读取单篇文档 |\n| `get_api_reference` | 面向 API / 类 / 方法 / 插件的检索 |\n| `find_examples` | 查找示例和用法相关文档 |\n| `get_changelog` | 读取更新日志 |\n\n## 包结构\n\n源码位于 `packages/u-space-mcp`。根目录只保留一个 MCP 发布入口;执行时会先从 `docs/*.md` 生成内置文档索引,编译 MCP 包,然后发布到 npm:\n\n```bash\npnpm publish:mcp\n```\n\n发布后的包不依赖本机绝对路径;只有在传入 `--docs` 或设置 `U_SPACE_DOCS_PATH` 时,才会读取本地文档目录。\n"
1393
1473
  }
1394
1474
  ];
1395
1475
  //# sourceMappingURL=docs-index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docs-index.js","sourceRoot":"","sources":["../../src/generated/docs-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs-index.js","sourceRoot":"","sources":["../../src/generated/docs-index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "u-space-mcp",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "Model Context Protocol server for u-space documentation.",
5
5
  "type": "module",
6
6
  "bin": {