deep-engine-demo/packages/docs/api/manager/ClippingPlane.md
2026-04-19 18:46:28 +08:00

158 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
outline: [2, 3]
---
# ClippingPlane
- 源文件:`packages/sdk/src/manager/ClippingPlane.ts`
- 文档位置:`packages/docs/api/manager/ClippingPlane.md`
## 接口:`IClippingPlaneOptions`
- 作用IClippingPlaneOptions 的结构定义。
### 字段
| 字段名 | 类型 | 必填 | 作用 |
| --- | --- | --- | --- |
| `normal` | `THREE.Vector3` | 是 | 法线方向。 |
| `constant` | `number` | 否 | 平面常量。 |
| `color` | `THREE.Color` | 否 | 颜色配置。 |
| `enableTransformControls` | `boolean` | 否 | 是否启用变换控制器。 |
| `transformMode` | `"translate" \| "rotate"` | 否 | 变换控制模式。 |
## 类:`ClippingPlane`
- 作用ClippingPlane 类。
### 构造函数
#### `new ClippingPlane(viewer: Viewer, options: IClippingPlaneOptions)`
- 作用:创建剖切平面实例
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `viewer` | `Viewer` | 是 | 视图实例 |
| `options` | `IClippingPlaneOptions` | 是 | 剖切面配置 |
- 出参:`ClippingPlane`
- 返回说明:返回当前类实例。
### 属性
| 属性名 | 可见性 | 类型 | 作用 |
| --- | --- | --- | --- |
| `plane` | `public` | `THREE.Plane` | 当前剖切面对应的数学平面对象。 |
| `helper` | `public` | `ClippingHelper \| undefined` | 剖切面的可视化辅助对象。 |
| `transformControl` | `public` | `TransformControls \| undefined` | 用于拖拽平面位置和朝向的变换控制器。 |
| `emitter` | `public` | `Emittery<{ move: { position: THREE.Vector3; constant: number; normal: THREE.Vector3; }; }, { move: { position: THREE.Vector3; constant: number; normal: THREE.Vector3; }; } & OmnipresentEventData, never>` | 剖切面移动事件发射器。 |
| `viewer` | `public readonly` | `Viewer` | 关联的 Viewer 实例。 |
| `options` | `public readonly` | `IClippingPlaneOptions` | 剖切面的初始化配置。 |
### 方法
#### `updatePlaneFromHelper(): void`
- 作用:根据 helper 当前姿态回写 plane
- 入参:无
- 出参:`void`
- 返回说明:无返回值。
#### `createHelper(worldPosition: THREE.Vector3, size: number, group: THREE.Group): void`
- 作用:创建 ClippingHelper定位到指定世界坐标并加入 group
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `worldPosition` | `THREE.Vector3` | 是 | 平面中心世界坐标 |
| `size` | `number` | 是 | helper 的宽高 |
| `group` | `THREE.Group` | 是 | 要加入的父级 Group |
- 出参:`void`
- 返回说明:无返回值。
#### `detach(): void`
- 作用:解绑辅助对象
- 入参:无
- 出参:`void`
- 返回说明:无返回值。
#### `setTransformMode(mode: "translate" | "rotate"): void`
- 作用:设置变换模式
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `mode` | `"translate" \| "rotate"` | 是 | 变换模式 |
- 出参:`void`
- 返回说明:无返回值。
#### `setTransformSpace(space: "world" | "local"): void`
- 作用:设置变换空间并同步刷新轴约束
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `space` | `"world" \| "local"` | 是 | 变换空间 |
- 出参:`void`
- 返回说明:无返回值。
#### `createDebugPanel(label = "Clipping Plane"): void`
- 作用:创建调试面板,支持移动/旋转切换及 XYZ 数值控制
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `label` | `string` | 否 | 面板标题 |
- 出参:`void`
- 返回说明:无返回值。
#### `showRotateHandles(show: boolean): void`
- 作用:显示或隐藏旋转控制手柄图标。 首次调用 true 时会懒加载图标贴图;设为 false 时隐藏图标。
- 入参:
| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `show` | `boolean` | 是 | 是否显示旋转手柄 |
- 出参:`void`
- 返回说明:无返回值。
#### `dispose(): void`
- 作用:释放资源
- 入参:无
- 出参:`void`
- 返回说明:无返回值。
## 构造示例
- 当前 Demo 中没有直接展示 `ClippingPlane` 的构造调用。
## 函数示例
- 当前 Demo 中没有直接展示 `ClippingPlane` 的公开方法调用。