feat(all): 更新文档
This commit is contained in:
parent
8a1436d3a8
commit
d2329a6854
@ -4,7 +4,7 @@ import App from './App.vue'
|
|||||||
import router from './router'
|
import router from './router'
|
||||||
import {Bus} from "./hooks/Bus.ts";
|
import {Bus} from "./hooks/Bus.ts";
|
||||||
import DisableDevtool from 'disable-devtool';
|
import DisableDevtool from 'disable-devtool';
|
||||||
|
import * as THREE from 'three';
|
||||||
const app = createApp(App)
|
const app = createApp(App)
|
||||||
app.config.globalProperties.bus = new Bus();
|
app.config.globalProperties.bus = new Bus();
|
||||||
window.bus = app.config.globalProperties.bus
|
window.bus = app.config.globalProperties.bus
|
||||||
|
|||||||
@ -39,7 +39,7 @@ export default defineConfig({
|
|||||||
// 监听所有网络接口(0.0.0.0),允许外部IP访问
|
// 监听所有网络接口(0.0.0.0),允许外部IP访问
|
||||||
host: '0.0.0.0',
|
host: '0.0.0.0',
|
||||||
// 可选:指定端口(如8099,和你之前的Caddy端口一致)
|
// 可选:指定端口(如8099,和你之前的Caddy端口一致)
|
||||||
port: 8099,
|
port: 8059,
|
||||||
// 可选:端口被占用时自动切换可用端口
|
// 可选:端口被占用时自动切换可用端口
|
||||||
strictPort: false,
|
strictPort: false,
|
||||||
// 可选:自动打开浏览器
|
// 可选:自动打开浏览器
|
||||||
|
|||||||
@ -22,17 +22,33 @@ Deep Engine 是一个**基于 Three.js WebGPU 进行封装的三维引擎库**
|
|||||||
|
|
||||||
当前文档主要分为以下几部分:
|
当前文档主要分为以下几部分:
|
||||||
|
|
||||||
|
- `API 示例说明`:说明文档的组织方式与阅读建议
|
||||||
- `首页`:说明库的整体定位与核心能力
|
- `首页`:说明库的整体定位与核心能力
|
||||||
- `API`:按源码模块整理的接口文档
|
- `API`:按源码模块整理的接口文档
|
||||||
- `API 示例说明`:说明文档的组织方式与阅读建议
|
|
||||||
|
## 适合阅读人群
|
||||||
|
|
||||||
|
本文档更适合具备以下基础的开发者阅读和使用:
|
||||||
|
|
||||||
|
- 需要具备前端开发基础,能够理解工程结构、模块组织和基础构建流程
|
||||||
|
- 需要具备基础的三维图形能力,理解场景、相机、材质、几何体、坐标系等基本概念
|
||||||
|
- 需要具备 Three.js 使用经验,能够理解常见对象、渲染流程以及场景交互方式
|
||||||
|
|
||||||
|
## 文档导航布局
|
||||||
|
|
||||||
|
当前文档站已经调整为双栏导航结构,便于同时浏览模块层级与当前页面内容:
|
||||||
|
|
||||||
|
- 左侧显示大目录:按文档入口、API 模块分类、源码扩展分类组织页面
|
||||||
|
- 右侧显示小目录:自动提取当前页面的 `H2` 与 `H3` 标题,便于页内快速跳转
|
||||||
|
|
||||||
## 阅读建议
|
## 阅读建议
|
||||||
|
|
||||||
如果你是第一次接触这个库,建议按下面顺序阅读:
|
如果你是第一次接触这个库,建议按下面顺序阅读:
|
||||||
|
|
||||||
1. 先阅读首页,了解该库是基于 Three.js WebGPU 的封装库。
|
1. 先阅读文档说明,明确文档结构、阅读方式和前置能力要求。
|
||||||
2. 再阅读 `packages/docs/api` 下的 API 文档,熟悉 `Viewer`、`Tool`、`Parametric`、`Effect` 等模块。
|
2. 再阅读首页,了解该库是基于 Three.js WebGPU 的封装库。
|
||||||
3. 最后结合 `packages/demo/src` 中的示例场景,对照查看具体调用方式。
|
3. 然后阅读 `packages/docs/api` 下的 API 文档,熟悉 `Viewer`、`Tool`、`Parametric`、`Effect` 等模块。
|
||||||
|
4. 最后结合 `packages/demo/src` 中的示例场景,对照查看具体调用方式。
|
||||||
|
|
||||||
## 与 Demo 的关系
|
## 与 Demo 的关系
|
||||||
|
|
||||||
|
|||||||
@ -7,6 +7,19 @@ outline: [2, 3]
|
|||||||
- 源文件:`packages/sdk/src/effect/FlowParticles.ts`
|
- 源文件:`packages/sdk/src/effect/FlowParticles.ts`
|
||||||
- 文档位置:`packages/docs/api/effect/FlowParticles.md`
|
- 文档位置:`packages/docs/api/effect/FlowParticles.md`
|
||||||
|
|
||||||
|
## 地热注采流动说明
|
||||||
|
|
||||||
|
`FlowParticles` 在地热注采场景中支持两类模式:
|
||||||
|
|
||||||
|
- `bidirectional`:双向对向流动,左右侧粒子分别向中段推进。
|
||||||
|
- `single`:单向流动,支持按左右流量差异发射“补差粒子”,并在中段附近显隐以模拟注采不均衡。
|
||||||
|
|
||||||
|
最新业务逻辑包含:
|
||||||
|
|
||||||
|
- 单向模式的左右段隐藏特例(某侧速度为 0 时,该侧默认隐藏)。
|
||||||
|
- 基于几何投影的显隐判定,避免仅按参数 `t` 带来的路径不均问题。
|
||||||
|
- 右侧流量高于左侧时,自动发射补差粒子。
|
||||||
|
|
||||||
## 接口:`FlowParticlesGPUOptions`
|
## 接口:`FlowParticlesGPUOptions`
|
||||||
|
|
||||||
- 作用:流动粒子配置。
|
- 作用:流动粒子配置。
|
||||||
@ -19,6 +32,11 @@ outline: [2, 3]
|
|||||||
| `endPipe` | `ParametricPipe` | 是 | 结束管道。 |
|
| `endPipe` | `ParametricPipe` | 是 | 结束管道。 |
|
||||||
| `particleCount` | `number` | 否 | 粒子总数量。 |
|
| `particleCount` | `number` | 否 | 粒子总数量。 |
|
||||||
| `speedMultiplier` | `number` | 否 | 粒子流动速度倍率。 |
|
| `speedMultiplier` | `number` | 否 | 粒子流动速度倍率。 |
|
||||||
|
| `flowMode` | `"single" \| "bidirectional"` | 否 | 流动模式,默认 `single`。 |
|
||||||
|
| `leftFlowRate` | `number` | 否 | 左侧流量权重。 |
|
||||||
|
| `rightFlowRate` | `number` | 否 | 右侧流量权重。 |
|
||||||
|
| `leftSpeedMultiplier` | `number` | 否 | 左侧速度倍率。 |
|
||||||
|
| `rightSpeedMultiplier` | `number` | 否 | 右侧速度倍率。 |
|
||||||
| `particleSize` | `number` | 否 | 粒子半径。 |
|
| `particleSize` | `number` | 否 | 粒子半径。 |
|
||||||
| `heatingThreshold` | `number` | 否 | 加热阈值。 |
|
| `heatingThreshold` | `number` | 否 | 加热阈值。 |
|
||||||
| `flowPathCount` | `number` | 否 | 流动路径数量。 |
|
| `flowPathCount` | `number` | 否 | 流动路径数量。 |
|
||||||
@ -65,6 +83,11 @@ outline: [2, 3]
|
|||||||
| `endPipe` | `public` | `ParametricPipe` | 用于保存 `endPipe` 对应的数据。 |
|
| `endPipe` | `public` | `ParametricPipe` | 用于保存 `endPipe` 对应的数据。 |
|
||||||
| `particleCount` | `public` | `number` | 用于保存 `particleCount` 对应的数据。 |
|
| `particleCount` | `public` | `number` | 用于保存 `particleCount` 对应的数据。 |
|
||||||
| `speedMultiplier` | `public` | `number` | 用于保存 `speedMultiplier` 对应的数据。 |
|
| `speedMultiplier` | `public` | `number` | 用于保存 `speedMultiplier` 对应的数据。 |
|
||||||
|
| `flowMode` | `public` | `"single" \| "bidirectional"` | 当前流动模式。 |
|
||||||
|
| `leftFlowRate` | `public` | `number` | 左侧流量权重。 |
|
||||||
|
| `rightFlowRate` | `public` | `number` | 右侧流量权重。 |
|
||||||
|
| `leftSpeedMultiplier` | `public` | `number` | 左侧速度倍率。 |
|
||||||
|
| `rightSpeedMultiplier` | `public` | `number` | 右侧速度倍率。 |
|
||||||
| `particleSize` | `public` | `number` | 用于保存 `particleSize` 对应的数据。 |
|
| `particleSize` | `public` | `number` | 用于保存 `particleSize` 对应的数据。 |
|
||||||
| `heatingThreshold` | `public` | `number` | 用于保存 `heatingThreshold` 对应的数据。 |
|
| `heatingThreshold` | `public` | `number` | 用于保存 `heatingThreshold` 对应的数据。 |
|
||||||
| `flowPathCount` | `public` | `number` | 用于保存 `flowPathCount` 对应的数据。 |
|
| `flowPathCount` | `public` | `number` | 用于保存 `flowPathCount` 对应的数据。 |
|
||||||
@ -104,6 +127,34 @@ outline: [2, 3]
|
|||||||
- 出参:`void`
|
- 出参:`void`
|
||||||
- 返回说明:无返回值。
|
- 返回说明:无返回值。
|
||||||
|
|
||||||
|
#### `setSideFlowRates(leftRate: number, rightRate: number): void`
|
||||||
|
|
||||||
|
- 作用:设置左右流量权重。双向模式下会重建粒子系统;单向模式下用于更新发射和保留判定。
|
||||||
|
|
||||||
|
- 入参:
|
||||||
|
|
||||||
|
| 参数名 | 类型 | 必填 | 说明 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `leftRate` | `number` | 是 | 左侧流量权重。 |
|
||||||
|
| `rightRate` | `number` | 是 | 右侧流量权重。 |
|
||||||
|
|
||||||
|
- 出参:`void`
|
||||||
|
- 返回说明:无返回值。
|
||||||
|
|
||||||
|
#### `setSideSpeedMultipliers(leftSpeed: number, rightSpeed: number): void`
|
||||||
|
|
||||||
|
- 作用:设置左右速度倍率,用于控制两侧流动推进速度。
|
||||||
|
|
||||||
|
- 入参:
|
||||||
|
|
||||||
|
| 参数名 | 类型 | 必填 | 说明 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `leftSpeed` | `number` | 是 | 左侧速度倍率。 |
|
||||||
|
| `rightSpeed` | `number` | 是 | 右侧速度倍率。 |
|
||||||
|
|
||||||
|
- 出参:`void`
|
||||||
|
- 返回说明:无返回值。
|
||||||
|
|
||||||
#### `setFrozenProbability(probability: number): void`
|
#### `setFrozenProbability(probability: number): void`
|
||||||
|
|
||||||
- 作用:设置冻结概率。
|
- 作用:设置冻结概率。
|
||||||
@ -232,8 +283,13 @@ outline: [2, 3]
|
|||||||
const flowParticles = new FlowParticles(viewer, {
|
const flowParticles = new FlowParticles(viewer, {
|
||||||
startPipe: pipe1,
|
startPipe: pipe1,
|
||||||
endPipe: pipe2,
|
endPipe: pipe2,
|
||||||
|
flowMode: "single",
|
||||||
particleCount: particleCount.value,
|
particleCount: particleCount.value,
|
||||||
speedMultiplier: speedMultiplier.value,
|
speedMultiplier: speedMultiplier.value,
|
||||||
|
leftFlowRate: 1,
|
||||||
|
rightFlowRate: 1.2,
|
||||||
|
leftSpeedMultiplier: 1,
|
||||||
|
rightSpeedMultiplier: 1,
|
||||||
particleSize: particleSize.value,
|
particleSize: particleSize.value,
|
||||||
heatingThreshold: heatingThreshold.value,
|
heatingThreshold: heatingThreshold.value,
|
||||||
colorStops: [
|
colorStops: [
|
||||||
@ -287,6 +343,15 @@ outline: [2, 3]
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### `FlowParticles.setSideFlowRates`
|
||||||
|
|
||||||
|
```ts
|
||||||
|
if (flowParticles) {
|
||||||
|
flowParticles.setSideFlowRates(1, 1.4);
|
||||||
|
flowParticles.setSideSpeedMultipliers(1, 0.9);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### `FlowParticles.dispose`
|
### `FlowParticles.dispose`
|
||||||
|
|
||||||
- 来源:`packages/demo/src/panels/GeothermalScene/GeothermalInjectionProductionPanel.vue`
|
- 来源:`packages/demo/src/panels/GeothermalScene/GeothermalInjectionProductionPanel.vue`
|
||||||
|
|||||||
111
packages/docs/api/effect/volume/VtkStructuredPointsParser.md
Normal file
111
packages/docs/api/effect/volume/VtkStructuredPointsParser.md
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
---
|
||||||
|
outline: [2, 3]
|
||||||
|
---
|
||||||
|
|
||||||
|
# VtkStructuredPointsParser
|
||||||
|
|
||||||
|
- 源文件:`packages/sdk/src/effect/volume/vtk/VtkStructuredPointsParser.ts`
|
||||||
|
- 文档位置:`packages/docs/api/effect/volume/VtkStructuredPointsParser.md`
|
||||||
|
|
||||||
|
## 类:`VtkStructuredPointsParser`
|
||||||
|
|
||||||
|
- 作用:解析 legacy VTK 体数据,提取指定分量,返回可直接用于体渲染的数据和元信息。
|
||||||
|
|
||||||
|
## 支持范围
|
||||||
|
|
||||||
|
- 支持 `ASCII` / `BINARY` 编码自动识别。
|
||||||
|
- 支持 `DATASET STRUCTURED_POINTS`(binary)。
|
||||||
|
- 支持 `ASCII UNSTRUCTURED_GRID` 规则网格转体数据。
|
||||||
|
- 支持从 `CELL_DATA` 或 `POINT_DATA` 自动解析标量来源。
|
||||||
|
|
||||||
|
## 相关类型
|
||||||
|
|
||||||
|
### `IVtkParseFromUrlOptions`
|
||||||
|
|
||||||
|
| 字段名 | 类型 | 必填 | 说明 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `url` | `string` | 是 | 远程 VTK 文件地址。 |
|
||||||
|
| `componentIndex` | `number` | 是 | 要提取的分量索引,从 0 开始。 |
|
||||||
|
| `fileName` | `string` | 否 | 可选文件名,默认从 URL 推断。 |
|
||||||
|
| `requestInit` | `RequestInit` | 否 | `fetch` 附加参数。 |
|
||||||
|
|
||||||
|
### `IVtkParseFromBufferOptions`
|
||||||
|
|
||||||
|
| 字段名 | 类型 | 必填 | 说明 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `buffer` | `ArrayBuffer \| Uint8Array` | 是 | VTK 原始二进制内容。 |
|
||||||
|
| `componentIndex` | `number` | 是 | 要提取的分量索引,从 0 开始。 |
|
||||||
|
| `fileName` | `string` | 否 | 可选文件名,默认 `unknown.vtk`。 |
|
||||||
|
|
||||||
|
### `IVtkParsedComponentResult`
|
||||||
|
|
||||||
|
| 字段名 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `metadata` | `IVtkStructuredPointsMetadata` | 体数据元信息。 |
|
||||||
|
| `componentIndex` | `number` | 当前提取的分量索引。 |
|
||||||
|
| `valueRange` | `[number, number]` | 当前分量值域。 |
|
||||||
|
| `values` | `Float32Array` | 当前分量一维标量数组。 |
|
||||||
|
|
||||||
|
### `IVtkStructuredPointsMetadata`
|
||||||
|
|
||||||
|
| 字段名 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `fileName` | `string` | 文件名。 |
|
||||||
|
| `fileSize` | `number` | 文件字节数。 |
|
||||||
|
| `sourceDimensions` | `TVector3` | 原始点维度。 |
|
||||||
|
| `cellDimensions` | `TVector3` | 渲染采样维度。 |
|
||||||
|
| `spacing` | `TVector3` | 网格间距。 |
|
||||||
|
| `sourceOrigin` | `TVector3` | 原始原点。 |
|
||||||
|
| `pointOrigin` | `TVector3` | 体素中心原点。 |
|
||||||
|
| `scalarName` | `string` | 标量名称。 |
|
||||||
|
| `scalarType` | `string` | 标量类型描述。 |
|
||||||
|
| `componentCount` | `number` | 标量分量数。 |
|
||||||
|
| `cellCount` | `number` | 元组数量(通常对应体素数)。 |
|
||||||
|
| `scalarSource` | `"cell" \| "point"` | 标量来源。 |
|
||||||
|
|
||||||
|
## 方法
|
||||||
|
|
||||||
|
### `parseFromUrl(options: IVtkParseFromUrlOptions): Promise<IVtkParsedComponentResult>`
|
||||||
|
|
||||||
|
- 作用:从 URL 下载并解析 VTK 数据。
|
||||||
|
- 典型错误:下载失败、编码不支持、数据集类型不支持、分量越界。
|
||||||
|
|
||||||
|
### `parseFromBuffer(options: IVtkParseFromBufferOptions): IVtkParsedComponentResult`
|
||||||
|
|
||||||
|
- 作用:从内存缓冲区解析 VTK 数据。
|
||||||
|
- 适用场景:文件上传、自定义网络层、离线缓存解析。
|
||||||
|
|
||||||
|
## 使用示例
|
||||||
|
|
||||||
|
```ts
|
||||||
|
import { VtkStructuredPointsParser, VolumeMesh, VolumeRenderMode } from "@deep/engine";
|
||||||
|
|
||||||
|
const parser = new VtkStructuredPointsParser();
|
||||||
|
const parsed = await parser.parseFromUrl({
|
||||||
|
url: "/model/vtk/stress_cells_256.vtk",
|
||||||
|
componentIndex: 0,
|
||||||
|
});
|
||||||
|
|
||||||
|
const [minValue, maxValue] = parsed.valueRange;
|
||||||
|
const values = parsed.values;
|
||||||
|
|
||||||
|
const voxels = new Uint8Array(values.length);
|
||||||
|
const denominator = Math.max(maxValue - minValue, Number.EPSILON);
|
||||||
|
|
||||||
|
for (let i = 0; i < values.length; i += 1) {
|
||||||
|
const normalized = (values[i] - minValue) / denominator;
|
||||||
|
voxels[i] = Math.round(Math.max(0, Math.min(1, normalized)) * 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
const volume = new VolumeMesh(voxels, {
|
||||||
|
shape: parsed.metadata.cellDimensions,
|
||||||
|
mode: VolumeRenderMode.EmissionAbsorptionModel,
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## 注意事项
|
||||||
|
|
||||||
|
- `componentIndex` 必须在 `[0, componentCount - 1]` 范围内。
|
||||||
|
- `UNSTRUCTURED_GRID` 仅支持规则网格输入,非规则点云会抛错。
|
||||||
|
- Binary 读取按大端浮点处理(legacy VTK 约定)。
|
||||||
|
- 数据值域映射通常需要在业务层完成(如映射到 `Uint8Array` 供体渲染)。
|
||||||
@ -6,6 +6,8 @@ outline: [2, 3]
|
|||||||
|
|
||||||
本文档基于 `packages/sdk/src` 的实际源码结构整理,并参考 `packages/demo/src` 中的调用方式补充了常见入口。每个页面都包含函数入参、出参以及属性作用说明。
|
本文档基于 `packages/sdk/src` 的实际源码结构整理,并参考 `packages/demo/src` 中的调用方式补充了常见入口。每个页面都包含函数入参、出参以及属性作用说明。
|
||||||
|
|
||||||
|
SDK 执行 `pnpm sdk:build` 后,会同时输出运行时代码到 `packages/sdk/dist`,并输出类型声明到 `packages/sdk/types`。外部项目通过 `@deep/engine` 导入时,可直接获得对应的 TypeScript 类型信息。
|
||||||
|
|
||||||
## 快速使用流程
|
## 快速使用流程
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
@ -89,6 +91,7 @@ viewer.emitter.once(ViewerEvents.INIT).then(() => {
|
|||||||
|
|
||||||
- [PointCloud](/api/effect/volume/PointCloud)
|
- [PointCloud](/api/effect/volume/PointCloud)
|
||||||
- [PointCloudTool](/api/effect/volume/PointCloudTool)
|
- [PointCloudTool](/api/effect/volume/PointCloudTool)
|
||||||
|
- [VtkStructuredPointsParser](/api/effect/volume/VtkStructuredPointsParser)
|
||||||
- [VolumeMesh](/api/effect/volume/VolumeMesh)
|
- [VolumeMesh](/api/effect/volume/VolumeMesh)
|
||||||
- [VolumeNode](/api/effect/volume/VolumeNode)
|
- [VolumeNode](/api/effect/volume/VolumeNode)
|
||||||
- [VolumeTool](/api/effect/volume/VolumeTool)
|
- [VolumeTool](/api/effect/volume/VolumeTool)
|
||||||
@ -133,4 +136,3 @@ viewer.emitter.once(ViewerEvents.INIT).then(() => {
|
|||||||
### 源码扩展 Curves
|
### 源码扩展 Curves
|
||||||
|
|
||||||
- [CatmullRomCurve3](/api/source/curves/CatmullRomCurve3)
|
- [CatmullRomCurve3](/api/source/curves/CatmullRomCurve3)
|
||||||
|
|
||||||
|
|||||||
@ -9,11 +9,20 @@ outline: [2, 3]
|
|||||||
|
|
||||||
## 类:`ClippingManager`
|
## 类:`ClippingManager`
|
||||||
|
|
||||||
- 作用:剖切管理器 管理剖切组和任意数量的剖切面(通过 addPlane 手动创建)
|
- 作用:剖切管理器,负责剖切对象收拢、剖切平面管理,以及单面剖切补面(CSG)结果生成。
|
||||||
|
|
||||||
|
## 剖切补面能力说明
|
||||||
|
|
||||||
|
`single` 平面启用后,管理器会在 `clippingGroup` 中按名称查找目标网格,执行一次“目标网格 - 刀具体”的 CSG 运算,将结果放到 `singlePlaneCapGroup`,并临时隐藏原网格。
|
||||||
|
|
||||||
|
- 目标网格通过 `setSinglePlaneCapTargetByName` 指定。
|
||||||
|
- 开关通过 `setSinglePlaneCapEnabled` 控制。
|
||||||
|
- 仅当剖切平面与目标网格包围盒相交时才生成结果。
|
||||||
|
- 平面移动时自动刷新补面结果。
|
||||||
|
|
||||||
### 构造函数
|
### 构造函数
|
||||||
|
|
||||||
#### `new ClippingManager(viewer: Viewer)`
|
#### `new ClippingManager(viewer: Viewer, options?: IClippingManagerOptions)`
|
||||||
|
|
||||||
- 作用:创建 ClippingManager 实例。
|
- 作用:创建 ClippingManager 实例。
|
||||||
|
|
||||||
@ -22,6 +31,7 @@ outline: [2, 3]
|
|||||||
| 参数名 | 类型 | 必填 | 说明 |
|
| 参数名 | 类型 | 必填 | 说明 |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| `viewer` | `Viewer` | 是 | 关联的 Viewer 实例。 |
|
| `viewer` | `Viewer` | 是 | 关联的 Viewer 实例。 |
|
||||||
|
| `options` | `IClippingManagerOptions` | 否 | 剖切管理配置,支持默认补面目标网格和默认启用状态。 |
|
||||||
|
|
||||||
- 出参:`ClippingManager`
|
- 出参:`ClippingManager`
|
||||||
- 返回说明:返回当前类实例。
|
- 返回说明:返回当前类实例。
|
||||||
@ -39,6 +49,16 @@ outline: [2, 3]
|
|||||||
| `scene` | `public` | `THREE.Scene` | 用于保存 `scene` 对应的数据。 |
|
| `scene` | `public` | `THREE.Scene` | 用于保存 `scene` 对应的数据。 |
|
||||||
| `viewer` | `public` | `Viewer` | 用于保存 `viewer` 对应的数据。 |
|
| `viewer` | `public` | `Viewer` | 用于保存 `viewer` 对应的数据。 |
|
||||||
| `planeHelperGroup` | `public` | `THREE.Group` | 平面辅助对象组 |
|
| `planeHelperGroup` | `public` | `THREE.Group` | 平面辅助对象组 |
|
||||||
|
| `singlePlaneCapGroup` | `public` | `THREE.Group` | 单面剖切补面结果组 |
|
||||||
|
|
||||||
|
### 接口
|
||||||
|
|
||||||
|
#### `IClippingManagerOptions`
|
||||||
|
|
||||||
|
| 字段名 | 类型 | 必填 | 说明 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `singlePlaneCapMeshName` | `string` | 否 | 单面剖切补面的目标网格名称,对应 `THREE.Mesh.name`。 |
|
||||||
|
| `singlePlaneCapEnabled` | `boolean` | 否 | 是否默认启用单面剖切补面。 |
|
||||||
|
|
||||||
### 方法
|
### 方法
|
||||||
|
|
||||||
@ -91,6 +111,50 @@ outline: [2, 3]
|
|||||||
- 出参:`ClippingPlane \| undefined`
|
- 出参:`ClippingPlane \| undefined`
|
||||||
- 返回说明:返回 `ClippingPlane | undefined`。
|
- 返回说明:返回 `ClippingPlane | undefined`。
|
||||||
|
|
||||||
|
#### `setSinglePlaneCapTargetByName(meshName: string | null): void`
|
||||||
|
|
||||||
|
- 作用:设置单面剖切补面的目标网格名称。仅对 `single` 剖切面生效。
|
||||||
|
|
||||||
|
- 入参:
|
||||||
|
|
||||||
|
| 参数名 | 类型 | 必填 | 说明 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `meshName` | `string \| null` | 是 | 目标网格名称,传入 `null` 可关闭补面。 |
|
||||||
|
|
||||||
|
- 出参:`void`
|
||||||
|
- 返回说明:无返回值。
|
||||||
|
|
||||||
|
#### `setSinglePlaneCapEnabled(enabled: boolean): void`
|
||||||
|
|
||||||
|
- 作用:设置单面剖切补面是否启用。仅对 `single` 剖切面生效。
|
||||||
|
|
||||||
|
- 入参:
|
||||||
|
|
||||||
|
| 参数名 | 类型 | 必填 | 说明 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `enabled` | `boolean` | 是 | 是否启用单面剖切补面。 |
|
||||||
|
|
||||||
|
- 出参:`void`
|
||||||
|
- 返回说明:无返回值。
|
||||||
|
|
||||||
|
#### `getSinglePlaneCapEnabled(): boolean`
|
||||||
|
|
||||||
|
- 作用:获取当前单面剖切补面的启用状态。
|
||||||
|
|
||||||
|
- 入参:无
|
||||||
|
|
||||||
|
- 出参:`boolean`
|
||||||
|
- 返回说明:返回当前是否启用单面剖切补面。
|
||||||
|
|
||||||
|
#### `getSinglePlaneCapTargetName(): string | null`
|
||||||
|
|
||||||
|
- 作用:获取当前单面剖切补面的目标网格名称。
|
||||||
|
|
||||||
|
- 入参:无
|
||||||
|
|
||||||
|
- 出参:`string \| null`
|
||||||
|
- 返回说明:返回当前配置的目标网格名称。
|
||||||
|
|
||||||
#### `autoPlanePosition(offset: number = 2): void`
|
#### `autoPlanePosition(offset: number = 2): void`
|
||||||
|
|
||||||
- 作用:根据剖切组包围盒自动定位 X/Y/Z 三个剖切面 必须先调用 addDefaultPlanes() 注册剖切面
|
- 作用:根据剖切组包围盒自动定位 X/Y/Z 三个剖切面 必须先调用 addDefaultPlanes() 注册剖切面
|
||||||
@ -106,7 +170,7 @@ outline: [2, 3]
|
|||||||
|
|
||||||
#### `addClippingObjectsByUuid(uuids: Array<string>): void`
|
#### `addClippingObjectsByUuid(uuids: Array<string>): void`
|
||||||
|
|
||||||
- 作用:─── 剖切组对象管理(保持不变)────────────────────────────────────────
|
- 作用:按 uuid 将场景对象加入剖切组。
|
||||||
|
|
||||||
- 入参:
|
- 入参:
|
||||||
|
|
||||||
@ -119,7 +183,7 @@ outline: [2, 3]
|
|||||||
|
|
||||||
#### `addClippingObjects(objects: Array<THREE.Object3D>): void`
|
#### `addClippingObjects(objects: Array<THREE.Object3D>): void`
|
||||||
|
|
||||||
- 作用:添加 Clipping Objects。
|
- 作用:批量加入剖切组,并触发单面补面刷新。
|
||||||
|
|
||||||
- 入参:
|
- 入参:
|
||||||
|
|
||||||
@ -132,7 +196,7 @@ outline: [2, 3]
|
|||||||
|
|
||||||
#### `addClippingToObject(object: THREE.Object3D): void`
|
#### `addClippingToObject(object: THREE.Object3D): void`
|
||||||
|
|
||||||
- 作用:添加 Clipping To Object。
|
- 作用:将对象从原父节点迁入剖切组,并保留原始变换信息。
|
||||||
|
|
||||||
- 入参:
|
- 入参:
|
||||||
|
|
||||||
@ -145,7 +209,7 @@ outline: [2, 3]
|
|||||||
|
|
||||||
#### `removeClippingObjectsByUuid(uuids: Array<string>): void`
|
#### `removeClippingObjectsByUuid(uuids: Array<string>): void`
|
||||||
|
|
||||||
- 作用:移除 Clipping Objects By Uuid。
|
- 作用:按 uuid 从剖切组移除对象并恢复原父节点与原始变换。
|
||||||
|
|
||||||
- 入参:
|
- 入参:
|
||||||
|
|
||||||
@ -158,7 +222,7 @@ outline: [2, 3]
|
|||||||
|
|
||||||
#### `clearClippingGroups(): void`
|
#### `clearClippingGroups(): void`
|
||||||
|
|
||||||
- 作用:清理 Clipping Groups。
|
- 作用:清空剖切组对象、移除平面辅助,并刷新补面状态。
|
||||||
|
|
||||||
- 入参:无
|
- 入参:无
|
||||||
|
|
||||||
@ -167,7 +231,7 @@ outline: [2, 3]
|
|||||||
|
|
||||||
#### `clearClippingPlanes(): void`
|
#### `clearClippingPlanes(): void`
|
||||||
|
|
||||||
- 作用:清理 Clipping Planes。
|
- 作用:清空所有剖切平面并解绑单面补面监听。
|
||||||
|
|
||||||
- 入参:无
|
- 入参:无
|
||||||
|
|
||||||
@ -176,7 +240,7 @@ outline: [2, 3]
|
|||||||
|
|
||||||
#### `hideClippingPlanes(): void`
|
#### `hideClippingPlanes(): void`
|
||||||
|
|
||||||
- 作用:执行 hide Clipping Planes 相关逻辑。
|
- 作用:隐藏历史平面辅助对象。
|
||||||
|
|
||||||
- 入参:无
|
- 入参:无
|
||||||
|
|
||||||
@ -185,7 +249,7 @@ outline: [2, 3]
|
|||||||
|
|
||||||
#### `computeBoundingBox(): THREE.Box3`
|
#### `computeBoundingBox(): THREE.Box3`
|
||||||
|
|
||||||
- 作用:执行 compute Bounding Box 相关逻辑。
|
- 作用:计算当前剖切组中网格对象的世界包围盒。
|
||||||
|
|
||||||
- 入参:无
|
- 入参:无
|
||||||
|
|
||||||
@ -207,7 +271,7 @@ outline: [2, 3]
|
|||||||
|
|
||||||
#### `startClipping(): void`
|
#### `startClipping(): void`
|
||||||
|
|
||||||
- 作用:执行 start Clipping 相关逻辑。
|
- 作用:将剖切状态设为启用并发出 `clippingStart` 事件。
|
||||||
|
|
||||||
- 入参:无
|
- 入参:无
|
||||||
|
|
||||||
@ -216,7 +280,7 @@ outline: [2, 3]
|
|||||||
|
|
||||||
#### `stopClipping(): void`
|
#### `stopClipping(): void`
|
||||||
|
|
||||||
- 作用:执行 stop Clipping 相关逻辑。
|
- 作用:将剖切状态设为关闭并发出 `clippingEnd` 事件。
|
||||||
|
|
||||||
- 入参:无
|
- 入参:无
|
||||||
|
|
||||||
@ -234,8 +298,35 @@ outline: [2, 3]
|
|||||||
|
|
||||||
## 构造示例
|
## 构造示例
|
||||||
|
|
||||||
- 当前 Demo 中没有直接展示 `ClippingManager` 的构造调用。
|
- `Viewer` 初始化时会自动创建 `ClippingManager`,可通过 `Viewer` 选项透传剖切补面默认配置。
|
||||||
|
|
||||||
|
```ts
|
||||||
|
import { Viewer } from "@deep/engine";
|
||||||
|
|
||||||
|
const viewer = new Viewer("app", {
|
||||||
|
clipping: {
|
||||||
|
singlePlaneCapMeshName: "地层网格",
|
||||||
|
singlePlaneCapEnabled: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
## 函数示例
|
## 函数示例
|
||||||
|
|
||||||
- 当前 Demo 中没有直接展示 `ClippingManager` 的公开方法调用。
|
- 单面剖切补面的典型流程:
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const [planeX, planeY, planeZ] = viewer.clipping.addDefaultPlanes();
|
||||||
|
|
||||||
|
const singlePlane = viewer.clipping.addPlane("single", {
|
||||||
|
normal: new THREE.Vector3(1, 0, 0),
|
||||||
|
color: new THREE.Color(0xffff00),
|
||||||
|
});
|
||||||
|
|
||||||
|
viewer.clipping.addClippingObjects([targetObject]);
|
||||||
|
viewer.clipping.setSinglePlaneCapTargetByName("地层网格");
|
||||||
|
viewer.clipping.setSinglePlaneCapEnabled(true);
|
||||||
|
|
||||||
|
// 平面位姿变化会自动刷新补面结果
|
||||||
|
singlePlane.setTransformMode("translate");
|
||||||
|
```
|
||||||
|
|||||||
@ -74,6 +74,7 @@ outline: [2, 3]
|
|||||||
#### `createGeometry(): PathTubeGeometry`
|
#### `createGeometry(): PathTubeGeometry`
|
||||||
|
|
||||||
- 作用:创建管道几何体
|
- 作用:创建管道几何体
|
||||||
|
- 行为说明:初始化 `PathTubeGeometry` 时会按整条路径的最大容量预分配顶点缓冲与索引缓冲。即使初始 `progress` 较小,后续动画推进也会尽量复用同一组缓冲区,避免在渲染过程中因为索引扩容而替换 `geometry.index`。
|
||||||
|
|
||||||
- 入参:无
|
- 入参:无
|
||||||
|
|
||||||
@ -609,4 +610,3 @@ const clearVerticalPipes = () => {
|
|||||||
- `packages/demo/src/panels/GoldMineScene/VentilationFillingPanel.vue`
|
- `packages/demo/src/panels/GoldMineScene/VentilationFillingPanel.vue`
|
||||||
- `packages/demo/src/panels/OilGasScene/DrillingAndCementingPanel.vue`
|
- `packages/demo/src/panels/OilGasScene/DrillingAndCementingPanel.vue`
|
||||||
- `packages/demo/src/panels/OilGasScene/FluidApplicationPanel.vue`
|
- `packages/demo/src/panels/OilGasScene/FluidApplicationPanel.vue`
|
||||||
|
|
||||||
|
|||||||
@ -9,4 +9,4 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"vitepress": "2.0.0-alpha.17"
|
"vitepress": "2.0.0-alpha.17"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,5 +3,8 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./public/DeepEngine.es.js",
|
"main": "./public/DeepEngine.es.js",
|
||||||
"types": "./types/index.d.ts"
|
"types": "./types/index.d.ts",
|
||||||
|
"dependencies": {
|
||||||
|
"three": "catalog:"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
BIN
packages/sdk/public/model/fracture/obj_7.FBX
Normal file
BIN
packages/sdk/public/model/fracture/obj_7.FBX
Normal file
Binary file not shown.
233261
packages/sdk/public/model/raw/head256x256x256.raw
Normal file
233261
packages/sdk/public/model/raw/head256x256x256.raw
Normal file
File diff suppressed because one or more lines are too long
1
packages/sdk/public/model/raw/volume-data.raw
Normal file
1
packages/sdk/public/model/raw/volume-data.raw
Normal file
File diff suppressed because one or more lines are too long
109
pnpm-lock.yaml
109
pnpm-lock.yaml
@ -98,52 +98,9 @@ importers:
|
|||||||
|
|
||||||
packages/sdk:
|
packages/sdk:
|
||||||
dependencies:
|
dependencies:
|
||||||
camera-controls:
|
|
||||||
specifier: ^3.1.2
|
|
||||||
version: 3.1.2(three@0.184.0)
|
|
||||||
emittery:
|
|
||||||
specifier: ^2.0.0
|
|
||||||
version: 2.0.0
|
|
||||||
lodash-es:
|
|
||||||
specifier: ^4.18.1
|
|
||||||
version: 4.18.1
|
|
||||||
simplex-noise:
|
|
||||||
specifier: ^4.0.3
|
|
||||||
version: 4.0.3
|
|
||||||
three:
|
three:
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 0.184.0
|
version: 0.184.0
|
||||||
three-bvh-csg:
|
|
||||||
specifier: ^0.0.18
|
|
||||||
version: 0.0.18(three-mesh-bvh@0.9.9(three@0.184.0))(three@0.184.0)
|
|
||||||
three-is:
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../three-is
|
|
||||||
three-mesh-bvh:
|
|
||||||
specifier: ^0.9.9
|
|
||||||
version: 0.9.9(three@0.184.0)
|
|
||||||
devDependencies:
|
|
||||||
'@types/lodash-es':
|
|
||||||
specifier: ^4.17.12
|
|
||||||
version: 4.17.12
|
|
||||||
'@types/node':
|
|
||||||
specifier: 'catalog:'
|
|
||||||
version: 25.6.0
|
|
||||||
'@types/three':
|
|
||||||
specifier: 'catalog:'
|
|
||||||
version: 0.184.0
|
|
||||||
'@vue/tsconfig':
|
|
||||||
specifier: ^0.9.1
|
|
||||||
version: 0.9.1(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))
|
|
||||||
html2canvas:
|
|
||||||
specifier: ^1.4.1
|
|
||||||
version: 1.4.1
|
|
||||||
typescript:
|
|
||||||
specifier: 'catalog:'
|
|
||||||
version: 6.0.3
|
|
||||||
vite:
|
|
||||||
specifier: 'catalog:'
|
|
||||||
version: 8.0.3(@emnapi/core@1.8.1)(@emnapi/runtime@1.8.1)(@types/node@25.6.0)(esbuild@0.27.7)(jiti@1.21.7)(terser@5.46.0)(yaml@2.8.3)
|
|
||||||
|
|
||||||
packages/three-is:
|
packages/three-is:
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -1106,10 +1063,6 @@ packages:
|
|||||||
async-validator@4.2.5:
|
async-validator@4.2.5:
|
||||||
resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
|
resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
|
||||||
|
|
||||||
base64-arraybuffer@1.0.2:
|
|
||||||
resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==}
|
|
||||||
engines: {node: '>= 0.6.0'}
|
|
||||||
|
|
||||||
baseline-browser-mapping@2.10.20:
|
baseline-browser-mapping@2.10.20:
|
||||||
resolution: {integrity: sha512-1AaXxEPfXT+GvTBJFuy4yXVHWJBXa4OdbIebGN/wX5DlsIkU0+wzGnd2lOzokSk51d5LUmqjgBLRLlypLUqInQ==}
|
resolution: {integrity: sha512-1AaXxEPfXT+GvTBJFuy4yXVHWJBXa4OdbIebGN/wX5DlsIkU0+wzGnd2lOzokSk51d5LUmqjgBLRLlypLUqInQ==}
|
||||||
engines: {node: '>=6.0.0'}
|
engines: {node: '>=6.0.0'}
|
||||||
@ -1134,12 +1087,6 @@ packages:
|
|||||||
buffer-from@1.1.2:
|
buffer-from@1.1.2:
|
||||||
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
|
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
|
||||||
|
|
||||||
camera-controls@3.1.2:
|
|
||||||
resolution: {integrity: sha512-xkxfpG2ECZ6Ww5/9+kf4mfg1VEYAoe9aDSY+IwF0UEs7qEzwy0aVRfs2grImIECs/PoBtWFrh7RXsQkwG922JA==}
|
|
||||||
engines: {node: '>=22.0.0', npm: '>=10.5.1'}
|
|
||||||
peerDependencies:
|
|
||||||
three: '>=0.126.1'
|
|
||||||
|
|
||||||
caniuse-lite@1.0.30001788:
|
caniuse-lite@1.0.30001788:
|
||||||
resolution: {integrity: sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==}
|
resolution: {integrity: sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==}
|
||||||
|
|
||||||
@ -1181,9 +1128,6 @@ packages:
|
|||||||
crossws@0.3.5:
|
crossws@0.3.5:
|
||||||
resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==}
|
resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==}
|
||||||
|
|
||||||
css-line-break@2.1.0:
|
|
||||||
resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==}
|
|
||||||
|
|
||||||
css-render@0.15.14:
|
css-render@0.15.14:
|
||||||
resolution: {integrity: sha512-9nF4PdUle+5ta4W5SyZdLCCmFd37uVimSjg1evcTqKJCyvCEEj12WKzOSBNak6r4im4J4iYXKH1OWpUV5LBYFg==}
|
resolution: {integrity: sha512-9nF4PdUle+5ta4W5SyZdLCCmFd37uVimSjg1evcTqKJCyvCEEj12WKzOSBNak6r4im4J4iYXKH1OWpUV5LBYFg==}
|
||||||
|
|
||||||
@ -1316,10 +1260,6 @@ packages:
|
|||||||
html-void-elements@3.0.0:
|
html-void-elements@3.0.0:
|
||||||
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
|
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
|
||||||
|
|
||||||
html2canvas@1.4.1:
|
|
||||||
resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==}
|
|
||||||
engines: {node: '>=8.0.0'}
|
|
||||||
|
|
||||||
iron-webcrypto@1.2.1:
|
iron-webcrypto@1.2.1:
|
||||||
resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==}
|
resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==}
|
||||||
|
|
||||||
@ -1639,20 +1579,6 @@ packages:
|
|||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
text-segmentation@1.0.3:
|
|
||||||
resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==}
|
|
||||||
|
|
||||||
three-bvh-csg@0.0.18:
|
|
||||||
resolution: {integrity: sha512-M3GCZMmGFgASGuDf+YMamM83nVlD/vdwzVHcYbFxgW+g1S7/nKPiuY00YVHOMbjmJPh8mLevGZL65ItHUuGt2w==}
|
|
||||||
peerDependencies:
|
|
||||||
three: '>=0.179.0'
|
|
||||||
three-mesh-bvh: '>=0.9.7'
|
|
||||||
|
|
||||||
three-mesh-bvh@0.9.9:
|
|
||||||
resolution: {integrity: sha512-FJKitcjvbALmeQRK+Sc+nLGorCpkrZBrbgJZFzhdyWboak37DZikn46hvQkNqSbJPm227ahYmS6k3N/GXaAyXw==}
|
|
||||||
peerDependencies:
|
|
||||||
three: '>= 0.159.0'
|
|
||||||
|
|
||||||
three@0.184.0:
|
three@0.184.0:
|
||||||
resolution: {integrity: sha512-wtTRjG92pM5eUg/KuUnHsqSAlPM296brTOcLgMRqEeylYTh/CdtvKUvCyyCQTzFuStieWxvZb8mVTMvdPyUpxg==}
|
resolution: {integrity: sha512-wtTRjG92pM5eUg/KuUnHsqSAlPM296brTOcLgMRqEeylYTh/CdtvKUvCyyCQTzFuStieWxvZb8mVTMvdPyUpxg==}
|
||||||
|
|
||||||
@ -1753,9 +1679,6 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
browserslist: '>= 4.21.0'
|
browserslist: '>= 4.21.0'
|
||||||
|
|
||||||
utrie@1.0.2:
|
|
||||||
resolution: {integrity: sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==}
|
|
||||||
|
|
||||||
vdirs@0.1.8:
|
vdirs@0.1.8:
|
||||||
resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==}
|
resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -2728,8 +2651,6 @@ snapshots:
|
|||||||
|
|
||||||
async-validator@4.2.5: {}
|
async-validator@4.2.5: {}
|
||||||
|
|
||||||
base64-arraybuffer@1.0.2: {}
|
|
||||||
|
|
||||||
baseline-browser-mapping@2.10.20: {}
|
baseline-browser-mapping@2.10.20: {}
|
||||||
|
|
||||||
binary-extensions@2.3.0: {}
|
binary-extensions@2.3.0: {}
|
||||||
@ -2751,10 +2672,6 @@ snapshots:
|
|||||||
buffer-from@1.1.2:
|
buffer-from@1.1.2:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
camera-controls@3.1.2(three@0.184.0):
|
|
||||||
dependencies:
|
|
||||||
three: 0.184.0
|
|
||||||
|
|
||||||
caniuse-lite@1.0.30001788: {}
|
caniuse-lite@1.0.30001788: {}
|
||||||
|
|
||||||
ccount@2.0.1: {}
|
ccount@2.0.1: {}
|
||||||
@ -2796,10 +2713,6 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
uncrypto: 0.1.3
|
uncrypto: 0.1.3
|
||||||
|
|
||||||
css-line-break@2.1.0:
|
|
||||||
dependencies:
|
|
||||||
utrie: 1.0.2
|
|
||||||
|
|
||||||
css-render@0.15.14:
|
css-render@0.15.14:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@emotion/hash': 0.8.0
|
'@emotion/hash': 0.8.0
|
||||||
@ -2941,11 +2854,6 @@ snapshots:
|
|||||||
|
|
||||||
html-void-elements@3.0.0: {}
|
html-void-elements@3.0.0: {}
|
||||||
|
|
||||||
html2canvas@1.4.1:
|
|
||||||
dependencies:
|
|
||||||
css-line-break: 2.1.0
|
|
||||||
text-segmentation: 1.0.3
|
|
||||||
|
|
||||||
iron-webcrypto@1.2.1: {}
|
iron-webcrypto@1.2.1: {}
|
||||||
|
|
||||||
is-binary-path@2.1.0:
|
is-binary-path@2.1.0:
|
||||||
@ -3312,19 +3220,6 @@ snapshots:
|
|||||||
source-map-support: 0.5.21
|
source-map-support: 0.5.21
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
text-segmentation@1.0.3:
|
|
||||||
dependencies:
|
|
||||||
utrie: 1.0.2
|
|
||||||
|
|
||||||
three-bvh-csg@0.0.18(three-mesh-bvh@0.9.9(three@0.184.0))(three@0.184.0):
|
|
||||||
dependencies:
|
|
||||||
three: 0.184.0
|
|
||||||
three-mesh-bvh: 0.9.9(three@0.184.0)
|
|
||||||
|
|
||||||
three-mesh-bvh@0.9.9(three@0.184.0):
|
|
||||||
dependencies:
|
|
||||||
three: 0.184.0
|
|
||||||
|
|
||||||
three@0.184.0: {}
|
three@0.184.0: {}
|
||||||
|
|
||||||
tinyglobby@0.2.16:
|
tinyglobby@0.2.16:
|
||||||
@ -3419,10 +3314,6 @@ snapshots:
|
|||||||
escalade: 3.2.0
|
escalade: 3.2.0
|
||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
|
|
||||||
utrie@1.0.2:
|
|
||||||
dependencies:
|
|
||||||
base64-arraybuffer: 1.0.2
|
|
||||||
|
|
||||||
vdirs@0.1.8(vue@3.5.32(typescript@6.0.3)):
|
vdirs@0.1.8(vue@3.5.32(typescript@6.0.3)):
|
||||||
dependencies:
|
dependencies:
|
||||||
evtd: 0.2.4
|
evtd: 0.2.4
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user