feat(all): init commit

This commit is contained in:
plum
2026-04-19 18:46:28 +08:00
commit 5d7f479765
479 changed files with 178500 additions and 0 deletions
+279
View File
@@ -0,0 +1,279 @@
---
outline: [2, 3]
---
# CSGOperator
- 源文件:`packages/sdk/src/tool/CSGOperator.ts`
- 文档位置:`packages/docs/api/tool/CSGOperator.md`
## 类型:`CSGOperationType`
- 作用:CSGOperationType 的类型定义。
### 定义
```ts
export type CSGOperationType = typeof CSGOperationType[keyof typeof CSGOperationType];
```
## 类:`CSGOperator`
- 作用:CSG 操作器 使用 three-bvh-csg 进行布尔运算
### 构造函数
#### `new CSGOperator()`
- 作用:创建 CSGOperator 实例。
- 入参:无
- 出参:`CSGOperator`
- 返回说明:返回当前类实例。
### 属性
| 属性名 | 可见性 | 类型 | 作用 |
| --- | --- | --- | --- |
| `evaluator` | `public` | `Evaluator` | 用于保存 `evaluator` 对应的数据。 |
### 访问器
#### `get debugMode(): boolean`
- 作用:获取 debug Mode。
- 入参:无
- 出参:`boolean`
- 返回说明:返回布尔结果。
#### `set debugMode(value: boolean)`
- 作用:设置 debug Mode。
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `value` | `boolean` | 是 | 要写入的新值。 |
- 出参:`void`
- 返回说明:无返回值。
### 方法
#### `clearBrushCache(mesh?: THREE.Mesh): void`
- 作用:清除 Brush 缓存
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `mesh` | `THREE.Mesh` | 否 | - 可选,指定要清除的网格,不指定则清除所有 |
- 出参:`void`
- 返回说明:无返回值。
#### `union(meshA: THREE.Mesh, meshB: THREE.Mesh): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 作用:执行并集操作
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `meshA` | `THREE.Mesh` | 是 | - 网格 A |
| `meshB` | `THREE.Mesh` | 是 | - 网格 B |
- 出参:`THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 返回说明:结果几何体
#### `subtract(meshA: THREE.Mesh, meshB: THREE.Mesh): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 作用:执行差集操作 (A - B)
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `meshA` | `THREE.Mesh` | 是 | - 被减去的网格 |
| `meshB` | `THREE.Mesh` | 是 | - 减去的网格 |
- 出参:`THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 返回说明:结果几何体
#### `reverseSubtract(meshA: THREE.Mesh, meshB: THREE.Mesh): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 作用:执行反向差集操作 (B - A)
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `meshA` | `THREE.Mesh` | 是 | - 网格 A |
| `meshB` | `THREE.Mesh` | 是 | - 网格 B |
- 出参:`THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 返回说明:结果几何体
#### `intersection(meshA: THREE.Mesh, meshB: THREE.Mesh): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 作用:执行交集操作
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `meshA` | `THREE.Mesh` | 是 | - 网格 A |
| `meshB` | `THREE.Mesh` | 是 | - 网格 B |
- 出参:`THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 返回说明:结果几何体
#### `difference(meshA: THREE.Mesh, meshB: THREE.Mesh): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 作用:执行对称差集操作
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `meshA` | `THREE.Mesh` | 是 | - 网格 A |
| `meshB` | `THREE.Mesh` | 是 | - 网格 B |
- 出参:`THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 返回说明:结果几何体
#### `hollowSubtract(meshA: THREE.Mesh, meshB: THREE.Mesh): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 作用:执行空心差集操作 从 meshA 中减去 meshB,但只删除相交的面
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `meshA` | `THREE.Mesh` | 是 | - 网格 A |
| `meshB` | `THREE.Mesh` | 是 | - 网格 B |
- 出参:`THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 返回说明:结果几何体
#### `hollowIntersection(meshA: THREE.Mesh, meshB: THREE.Mesh): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 作用:执行空心交集操作 只保留相交部分的表面
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `meshA` | `THREE.Mesh` | 是 | - 网格 A |
| `meshB` | `THREE.Mesh` | 是 | - 网格 B |
- 出参:`THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 返回说明:结果几何体
#### `operate(meshA: THREE.Mesh, meshB: THREE.Mesh, operation: CSGOperationType): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 作用:通用 CSG 操作方法
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `meshA` | `THREE.Mesh` | 是 | - 网格 A |
| `meshB` | `THREE.Mesh` | 是 | - 网格 B |
| `operation` | `CSGOperationType` | 是 | - CSG 操作类型 |
- 出参:`THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 返回说明:结果几何体
#### `subtractMultiple(meshA: THREE.Mesh, meshes: THREE.Mesh[]): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 作用:批量执行差集操作 从 meshA 中减去多个网格
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `meshA` | `THREE.Mesh` | 是 | - 被减去的网格 |
| `meshes` | `THREE.Mesh[]` | 是 | - 要减去的网格数组 |
- 出参:`THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 返回说明:结果几何体
#### `setAttributes(attributes: string[]): void`
- 作用:设置属性插值
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `attributes` | `string[]` | 是 | - 要插值的属性名称数组 |
- 出参:`void`
- 返回说明:无返回值。
#### `setUseGroups(useGroups: boolean): void`
- 作用:设置是否使用材质组
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `useGroups` | `boolean` | 是 | - 是否使用组 |
- 出参:`void`
- 返回说明:无返回值。
#### `meshToBrush(mesh: THREE.Mesh): Brush`
- 作用:将 Mesh 转换为 Brush,使用缓存机制复用 Brush 对象
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `mesh` | `THREE.Mesh` | 是 | - 需要转换的网格 |
- 出参:`Brush`
- 返回说明:Brush 对象
#### `evaluate(meshA: THREE.Mesh, meshB: THREE.Mesh, operation: CSGOperationType): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 作用:统一的 CSG 操作执行方法
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `meshA` | `THREE.Mesh` | 是 | - 网格 A |
| `meshB` | `THREE.Mesh` | 是 | - 网格 B |
| `operation` | `CSGOperationType` | 是 | - CSG 操作类型 |
- 出参:`THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>`
- 返回说明:结果几何体
## 构造示例
- 当前 Demo 中没有直接展示 `CSGOperator` 的构造调用。
## 函数示例
- 当前 Demo 中没有直接展示 `CSGOperator` 的公开方法调用。
## Demo 参考
### `CSGOperationType`
以下示例文件中可以看到该 API 的实际调用方式:
- `packages/demo/src/panels/GoldMineScene/DevelopmentMiningPanel.vue`
- `packages/demo/src/panels/GoldMineScene/DrillingPanel.vue`
- `packages/demo/src/panels/TunnelScene/RobotExcavationPanel.vue`
- `packages/demo/src/views/TunnelScene.vue`
+143
View File
@@ -0,0 +1,143 @@
---
outline: [2, 3]
---
# CollisionDetector
- 源文件:`packages/sdk/src/tool/CollisionDetector.ts`
- 文档位置:`packages/docs/api/tool/CollisionDetector.md`
## 类:`CollisionDetector`
- 作用:碰撞检测器 使用 three-mesh-bvh 进行高效的碰撞检测
### 属性
| 属性名 | 可见性 | 类型 | 作用 |
| --- | --- | --- | --- |
| `meshBVHMap` | `public` | `WeakMap<THREE.Mesh, any>` | 用于保存 `meshBVHMap` 的映射关系。 |
### 方法
#### `computeBoundsTree(geometry: THREE.BufferGeometry): void`
- 作用:为几何体计算 BVH
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `geometry` | `THREE.BufferGeometry` | 是 | 几何体 |
- 出参:`void`
- 返回说明:无返回值。
#### `disposeBoundsTree(geometry: THREE.BufferGeometry): void`
- 作用:释放几何体的 BVH
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `geometry` | `THREE.BufferGeometry` | 是 | 几何体 |
- 出参:`void`
- 返回说明:无返回值。
#### `hasBoundsTree(geometry: THREE.BufferGeometry): boolean`
- 作用:检查几何体是否有 BVH
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `geometry` | `THREE.BufferGeometry` | 是 | 几何体 |
- 出参:`boolean`
- 返回说明:是否有 BVH
#### `ensureBoundsTree(geometry: THREE.BufferGeometry): void`
- 作用:确保几何体有 BVH(如果没有则计算)
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `geometry` | `THREE.BufferGeometry` | 是 | 几何体 |
- 出参:`void`
- 返回说明:无返回值。
#### `buildBVH(mesh: THREE.Mesh): void`
- 作用:为网格构建 BVH
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `mesh` | `THREE.Mesh` | 是 | - 需要构建 BVH 的网格 |
- 出参:`void`
- 返回说明:无返回值。
#### `checkIntersection(meshA: THREE.Mesh, meshB: THREE.Mesh): boolean`
- 作用:检测两个网格是否相交
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `meshA` | `THREE.Mesh` | 是 | - 网格 A |
| `meshB` | `THREE.Mesh` | 是 | - 网格 B |
- 出参:`boolean`
- 返回说明:是否相交
#### `getIntersectionVolume(meshA: THREE.Mesh, meshB: THREE.Mesh): THREE.Box3 | null`
- 作用:获取两个网格的相交体积
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `meshA` | `THREE.Mesh` | 是 | - 网格 A |
| `meshB` | `THREE.Mesh` | 是 | - 网格 B |
- 出参:`THREE.Box3 \| null`
- 返回说明:相交的包围盒,如果不相交则返回 null
#### `disposeBVH(mesh: THREE.Mesh): void`
- 作用:清理网格的 BVH
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `mesh` | `THREE.Mesh` | 是 | - 需要清理 BVH 的网格 |
- 出参:`void`
- 返回说明:无返回值。
#### `disposeAll(): void`
- 作用:释放资源并销毁当前实例。
- 入参:无
- 出参:`void`
- 返回说明:无返回值。
## 构造示例
- 当前 Demo 中没有直接展示 `CollisionDetector` 的构造调用。
## 函数示例
- 当前 Demo 中没有直接展示 `CollisionDetector` 的公开方法调用。
+342
View File
@@ -0,0 +1,342 @@
---
outline: [2, 3]
---
# Tool
- 源文件:`packages/sdk/src/tool/Tool.ts`
- 文档位置:`packages/docs/api/tool/Tool.md`
## 枚举:`UserDataProperty`
- 作用:UserData 属性枚举
| 枚举项 | 值 | 说明 |
| --- | --- | --- |
| `SELECTION` | `'selection'` | 选择排除属性,为真的时候,在点击事件进行返回 |
| `SCENE_TREE_EXCLUDE` | `'sceneTreeExclude'` | 场景树排除属性 |
## 类:`Tool`
- 作用:包围盒工具类 提供计算物体包围盒的静态方法
### 属性
| 属性名 | 可见性 | 类型 | 作用 |
| --- | --- | --- | --- |
| `originalTransparentMap` | `public static` | `WeakMap<THREE.Material<THREE.MaterialEventMap>, boolean>` | 修改对象及其所有子对象的透明度 |
### 方法
#### `defineMaterialOpacityMapping(object: THREE.Mesh, propertyName: string = "mappedOpacity", sourceMin: number = 0.3, sourceMax: number = 1): void`
- 作用:为对象定义透明度映射属性 读取时将材质 opacity 从 sourceMin~sourceMax 映射到 0~1,设置时反向映射回 sourceMin~sourceMax。
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Mesh` | 是 | 目标对象(需包含 material |
| `propertyName` | `string` | 否 | 挂载到对象上的属性名,默认 opacity |
| `sourceMin` | `number` | 否 | 材质真实透明度最小值,默认 0.3 |
| `sourceMax` | `number` | 否 | 材质真实透明度最大值,默认 1 |
- 出参:`void`
- 返回说明:无返回值。
#### `removeMaterialOpacityMapping(object: THREE.Object3D, propertyName: string = "opacity", restoreDirectBinding: boolean = true): void`
- 作用:取消对象上的透明度映射属性 可选恢复为材质 opacity 的直接读写绑定(不做区间映射)。
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 目标对象(需包含 material |
| `propertyName` | `string` | 否 | 挂载在对象上的属性名,默认 opacity |
| `restoreDirectBinding` | `boolean` | 否 | 是否恢复直接绑定,默认 true |
- 出参:`void`
- 返回说明:无返回值。
#### `computeBoundingBox(object: THREE.Object3D): THREE.Box3 | null`
- 作用:计算物体的包围盒,包括所有子对象
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 要计算包围盒的物体 |
- 出参:`THREE.Box3 \| null`
- 返回说明:物体的包围盒,如果物体没有几何体则返回 null
#### `getBoundingBoxSize(object: THREE.Object3D): THREE.Vector3 | null`
- 作用:计算物体包围盒的大小
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 要计算大小的物体 |
- 出参:`THREE.Vector3 \| null`
- 返回说明:包围盒的大小向量,如果物体没有几何体则返回 null
#### `getBoundingBoxCenter(object: THREE.Object3D): THREE.Vector3 | null`
- 作用:计算物体包围盒的中心点
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 要计算中心点的物体 |
- 出参:`THREE.Vector3 \| null`
- 返回说明:包围盒的中心点向量,如果物体没有几何体则返回 null
#### `getBoundingBoxFaceCenters(object: THREE.Object3D): { YF: THREE.Vector3; YB: THREE.Vector3; ZU: THREE.Vector3; ZD: THREE.Vector3; XL: THREE.Vector3; XR: THREE.Vector3; } | null`
- 作用:计算物体包围盒的六个面中心点
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 要计算面中心点的物体 |
- 出参:`{ YF: THREE.Vector3; YB: THREE.Vector3; ZU: THREE.Vector3; ZD: THREE.Vector3; XL: THREE.Vector3; XR: THREE.Vector3; } \| null`
- 返回说明:六个面的中心点对象,如果物体没有几何体则返回 null
#### `queryObjectsByName(scene: THREE.Object3D, name: string, exactMatch: boolean = false): THREE.Object3D<THREE.Object3DEventMap>[]`
- 作用:遍历场景并查询对象名称
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `scene` | `THREE.Object3D` | 是 | 要查询的场景或对象 |
| `name` | `string` | 是 | 查询的名称 |
| `exactMatch` | `boolean` | 否 | 是否精确匹配(true: === 匹配, false: 模糊匹配) |
- 出参:`THREE.Object3D<THREE.Object3DEventMap>[]`
- 返回说明:匹配的对象列表
#### `setUserDataProperty(object: THREE.Object3D, key: string, value: any): void`
- 作用:给 Three.js 对象设置 userData 属性
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 要设置属性的对象 |
| `key` | `string` | 是 | 属性名 |
| `value` | `any` | 是 | 属性值 |
- 出参:`void`
- 返回说明:无返回值。
#### `removeUserDataProperty(object: THREE.Object3D, key: string): void`
- 作用:从 Three.js 对象中移除 userData 属性
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 要移除属性的对象 |
| `key` | `string` | 是 | 属性名 |
- 出参:`void`
- 返回说明:无返回值。
#### `setSelectionExclude(object: THREE.Object3D, exclude: boolean = true): void`
- 作用:给 Three.js 对象设置 meta 中的是否选择排除属性
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 要设置属性的对象 |
| `exclude` | `boolean` | 否 | 是否排除选择 |
- 出参:`void`
- 返回说明:无返回值。
#### `setSceneTreeExclude(object: THREE.Object3D, exclude: boolean = true): void`
- 作用:给 Three.js 对象设置 meta 中的是否场景树排除属性
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 要设置属性的对象 |
| `exclude` | `boolean` | 否 | 是否排除场景树 |
- 出参:`void`
- 返回说明:无返回值。
#### `setExcludeAll(object: THREE.Object3D, exclude: boolean = true): void`
- 作用:同时设置选择排除和场景树排除属性
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 要设置属性的对象 |
| `exclude` | `boolean` | 否 | 是否排除,默认为 true |
- 出参:`void`
- 返回说明:无返回值。
#### `setHiddenAndUnselectable(object: THREE.Object3D): void`
- 作用:设置对象不可在树菜单显示且不可选择
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 要设置属性的对象 |
- 出参:`void`
- 返回说明:无返回值。
#### `handleMaterialOpacity(object: THREE.Object3D, material: THREE.Material, opacity: number): void`
- 作用:处理单个材质的透明度
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 目标对象。 |
| `material` | `THREE.Material` | 是 | 要处理的材质 |
| `opacity` | `number` | 是 | 透明度值,范围 0-1 |
- 出参:`void`
- 返回说明:无返回值。
#### `setOpacity(object: THREE.Object3D, opacity: number): void`
- 作用:设置 Opacity。
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 目标对象。 |
| `opacity` | `number` | 是 | 参数 `opacity`,类型为 `number`。 |
- 出参:`void`
- 返回说明:无返回值。
#### `getOpacity(mesh: THREE.Mesh, materialIndex: number = 0): number`
- 作用:获取对象的透明度值
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `mesh` | `THREE.Mesh` | 是 | 要获取透明度的 Mesh 对象 |
| `materialIndex` | `number` | 否 | 材质索引,当材质为数组时使用,默认为 0 |
- 出参:`number`
- 返回说明:透明度值,范围 0-1
#### `getPoints(points: Array<THREE.Vector3 | { x: number; y: number; z: number }>): THREE.Vector3[]`
- 作用:获取 Points。
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `points` | `Array<THREE.Vector3 \| { x: number; y: number; z: number }>` | 是 | 参数 `points`,类型为 `Array<THREE.Vector3 \| { x: number; y: number; z: number }>`。 |
- 出参:`THREE.Vector3[]`
- 返回说明:返回数组结果,元素类型为 `THREE.Vector3`
#### `setRenderOrder(object: THREE.Object3D, defaultRenderOrder: number, specificMeshes?: Array<{ name: string, renderOrder: number }>): void`
- 作用:设置场景中网格的渲染顺序
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `object` | `THREE.Object3D` | 是 | 要遍历的根对象 |
| `defaultRenderOrder` | `number` | 是 | 所有网格的默认渲染顺序值 |
| `specificMeshes` | `Array<{ name: string, renderOrder: number }>` | 否 | 可选的特定网格数组及其渲染顺序值 |
- 出参:`void`
- 返回说明:无返回值。
## 构造示例
- 当前 Demo 中没有直接展示 `Tool` 的构造调用。
## 函数示例
### `Tool.defineMaterialOpacityMapping`
- 来源:`packages/demo/src/hooks/Bus.ts`
```ts
setSection(section: ParametricBox | THREE.Mesh) {
Tool.defineMaterialOpacityMapping(section);
this.section = section;
}
```
### `Tool.setSelectionExclude`
- 来源:`packages/demo/src/components/SceneTree.vue`
```ts
if (object) {
Tool.setSelectionExclude(object, selectable);
}
}
};
```
### `Tool.setExcludeAll`
- 来源:`packages/demo/src/panels/TunnelScene/RobotExcavationPanel.vue`
```ts
let defaultExcavationTunnel = new ParametricArch(viewer, {
...geometrySettings,
animate:false
});
defaultExcavationTunnel.name = "机器人开挖隧道碰撞体";
defaultExcavationTunnel.visible = false;
Tool.setExcludeAll(defaultExcavationTunnel)
viewer.rangeCullingManager.add(defaultExcavationTunnel);
```
## Demo 参考
### `Tool`
以下示例文件中可以看到该 API 的实际调用方式:
- `packages/demo/src/components/SceneTree.vue`
- `packages/demo/src/hooks/Bus.ts`
- `packages/demo/src/hooks/useDebug.ts`
- `packages/demo/src/panels/TunnelScene/RobotExcavationPanel.vue`
- `packages/demo/src/views/GeothermalScene.vue`
- `packages/demo/src/views/GoldMineScene.vue`
- `packages/demo/src/views/OilGasScene.vue`
- `packages/demo/src/views/TunnelScene.vue`