7.9 KiB
7.9 KiB
| outline | ||
|---|---|---|
|
CSGOperator
- 源文件:
packages/sdk/src/tool/CSGOperator.ts - 文档位置:
packages/docs/api/tool/CSGOperator.md
类型:CSGOperationType
- 作用:CSGOperationType 的类型定义。
定义
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.vuepackages/demo/src/panels/GoldMineScene/DrillingPanel.vuepackages/demo/src/panels/TunnelScene/RobotExcavationPanel.vuepackages/demo/src/views/TunnelScene.vue