feat(all): init commit
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
---
|
||||
outline: [2, 3]
|
||||
---
|
||||
|
||||
# CSS2DRendererManager
|
||||
|
||||
- 源文件:`packages/sdk/src/manager/CSS2DRendererManager.ts`
|
||||
- 文档位置:`packages/docs/api/manager/CSS2DRendererManager.md`
|
||||
|
||||
## 类:`CSS2DRendererManager`
|
||||
|
||||
- 作用:CSS2D 渲染管理类 负责管理 CSS2D 渲染器和 CSS2D 对象
|
||||
|
||||
### 构造函数
|
||||
|
||||
#### `new CSS2DRendererManager(viewer: Viewer)`
|
||||
|
||||
- 作用:构造函数
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `viewer` | `Viewer` | 是 | - 视图实例 |
|
||||
|
||||
- 出参:`CSS2DRendererManager`
|
||||
- 返回说明:返回当前类实例。
|
||||
|
||||
### 属性
|
||||
|
||||
| 属性名 | 可见性 | 类型 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `renderer` | `public` | `CSS2DRenderer` | CSS2D 渲染器 |
|
||||
| `viewer` | `public` | `Viewer` | 视图实例 |
|
||||
| `objects` | `public` | `Map<string, CSS2DObject>` | CSS2D 对象集合 |
|
||||
|
||||
### 方法
|
||||
|
||||
#### `init(): void`
|
||||
|
||||
- 作用:初始化 CSS2D 渲染器
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `handleResize(): void`
|
||||
|
||||
- 作用:处理窗口大小变化
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `createObject(element: HTMLElement, position: THREE.Vector3): CSS2DObject`
|
||||
|
||||
- 作用:创建 CSS2D 对象
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `element` | `HTMLElement` | 是 | - DOM 元素 |
|
||||
| `position` | `THREE.Vector3` | 是 | - 位置 |
|
||||
|
||||
- 出参:`CSS2DObject`
|
||||
- 返回说明:CSS2D 对象
|
||||
|
||||
#### `addObject(object: CSS2DObject, parent: THREE.Object3D = this.viewer.scene): void`
|
||||
|
||||
- 作用:添加 CSS2D 对象到场景
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `CSS2DObject` | 是 | - CSS2D 对象 |
|
||||
| `parent` | `THREE.Object3D` | 否 | - 父对象,默认为场景 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `removeObject(object: CSS2DObject): void`
|
||||
|
||||
- 作用:从场景中移除 CSS2D 对象
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `CSS2DObject` | 是 | - CSS2D 对象 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `render(): void`
|
||||
|
||||
- 作用:渲染 CSS2D 场景
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `dispose(): void`
|
||||
|
||||
- 作用:清理资源
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `getRenderer(): CSS2DRenderer`
|
||||
|
||||
- 作用:获取 CSS2D 渲染器实例
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`CSS2DRenderer`
|
||||
- 返回说明:CSS2D 渲染器
|
||||
|
||||
#### `getObjects(): CSS2DObject[]`
|
||||
|
||||
- 作用:获取所有 CSS2D 对象
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`CSS2DObject[]`
|
||||
- 返回说明:CSS2D 对象数组
|
||||
|
||||
## 构造示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `CSS2DRendererManager` 的构造调用。
|
||||
|
||||
## 函数示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `CSS2DRendererManager` 的公开方法调用。
|
||||
@@ -0,0 +1,154 @@
|
||||
---
|
||||
outline: [2, 3]
|
||||
---
|
||||
|
||||
# CSS3DRendererManager
|
||||
|
||||
- 源文件:`packages/sdk/src/manager/CSS3DRendererManager.ts`
|
||||
- 文档位置:`packages/docs/api/manager/CSS3DRendererManager.md`
|
||||
|
||||
## 类:`CSS3DRendererManager`
|
||||
|
||||
- 作用:CSS3D 渲染管理类 负责管理 CSS3D 渲染器和 CSS3D 对象
|
||||
|
||||
### 构造函数
|
||||
|
||||
#### `new CSS3DRendererManager(viewer: Viewer)`
|
||||
|
||||
- 作用:构造函数
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `viewer` | `Viewer` | 是 | - 视图实例 |
|
||||
|
||||
- 出参:`CSS3DRendererManager`
|
||||
- 返回说明:返回当前类实例。
|
||||
|
||||
### 属性
|
||||
|
||||
| 属性名 | 可见性 | 类型 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `renderer` | `public` | `CSS3DRenderer` | CSS3D 渲染器 |
|
||||
| `viewer` | `public` | `Viewer` | 视图实例 |
|
||||
| `objects` | `public` | `Map<string, CSS3DObject \| CSS3DSprite>` | CSS3D 对象集合 |
|
||||
|
||||
### 方法
|
||||
|
||||
#### `init(): void`
|
||||
|
||||
- 作用:初始化 CSS3D 渲染器
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `handleResize(): void`
|
||||
|
||||
- 作用:处理窗口大小变化
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `createObject(element: HTMLElement, position: THREE.Vector3): CSS3DObject`
|
||||
|
||||
- 作用:创建 CSS3D 对象
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `element` | `HTMLElement` | 是 | - DOM 元素 |
|
||||
| `position` | `THREE.Vector3` | 是 | - 位置 |
|
||||
|
||||
- 出参:`CSS3DObject`
|
||||
- 返回说明:CSS3D 对象
|
||||
|
||||
#### `createSprite(element: HTMLElement, position: THREE.Vector3): CSS3DSprite`
|
||||
|
||||
- 作用:创建 CSS3D 精灵
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `element` | `HTMLElement` | 是 | - DOM 元素 |
|
||||
| `position` | `THREE.Vector3` | 是 | - 位置 |
|
||||
|
||||
- 出参:`CSS3DSprite`
|
||||
- 返回说明:CSS3D 精灵
|
||||
|
||||
#### `addObject(object: CSS3DObject | CSS3DSprite, parent: THREE.Object3D = this.viewer.scene): void`
|
||||
|
||||
- 作用:添加 CSS3D 对象到场景
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `CSS3DObject \| CSS3DSprite` | 是 | - CSS3D 对象或精灵 |
|
||||
| `parent` | `THREE.Object3D` | 否 | - 父对象,默认为场景 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `removeObject(object: CSS3DObject | CSS3DSprite): void`
|
||||
|
||||
- 作用:从场景中移除 CSS3D 对象
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `CSS3DObject \| CSS3DSprite` | 是 | - CSS3D 对象或精灵 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `render(): void`
|
||||
|
||||
- 作用:渲染 CSS3D 场景
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `dispose(): void`
|
||||
|
||||
- 作用:清理资源
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `getRenderer(): CSS3DRenderer`
|
||||
|
||||
- 作用:获取 CSS3D 渲染器实例
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`CSS3DRenderer`
|
||||
- 返回说明:CSS3D 渲染器
|
||||
|
||||
#### `getObjects(): (CSS3DObject | CSS3DSprite)[]`
|
||||
|
||||
- 作用:获取所有 CSS3D 对象
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`(CSS3DObject \| CSS3DSprite)[]`
|
||||
- 返回说明:CSS3D 对象数组
|
||||
|
||||
## 构造示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `CSS3DRendererManager` 的构造调用。
|
||||
|
||||
## 函数示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `CSS3DRendererManager` 的公开方法调用。
|
||||
@@ -0,0 +1,241 @@
|
||||
---
|
||||
outline: [2, 3]
|
||||
---
|
||||
|
||||
# ClippingManager
|
||||
|
||||
- 源文件:`packages/sdk/src/manager/ClippingManager.ts`
|
||||
- 文档位置:`packages/docs/api/manager/ClippingManager.md`
|
||||
|
||||
## 类:`ClippingManager`
|
||||
|
||||
- 作用:剖切管理器 管理剖切组和任意数量的剖切面(通过 addPlane 手动创建)
|
||||
|
||||
### 构造函数
|
||||
|
||||
#### `new ClippingManager(viewer: Viewer)`
|
||||
|
||||
- 作用:创建 ClippingManager 实例。
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `viewer` | `Viewer` | 是 | 关联的 Viewer 实例。 |
|
||||
|
||||
- 出参:`ClippingManager`
|
||||
- 返回说明:返回当前类实例。
|
||||
|
||||
### 属性
|
||||
|
||||
| 属性名 | 可见性 | 类型 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `panelCounter` | `public static` | `number` | 用于保存 `panelCounter` 对应的数据。 |
|
||||
| `emitter` | `public` | `Emittery<{ clippingStart: undefined; clippingEnd: undefined; }, { clippingStart: undefined; clippingEnd: undefined; } & OmnipresentEventData, DatalessEventNames<{ clippingStart: undefined; clippingEnd: undefined; }>>` | 用于保存 `emitter` 对应的数据。 |
|
||||
| `isClipping` | `public` | `boolean` | 剖切是否已开始 |
|
||||
| `clippingPlanes` | `public` | `THREE.Plane[]` | 所有注册的剖切平面(THREE.Plane),同步到 clippingGroup |
|
||||
| `clippingPlaneHelpers` | `public` | `THREE.PlaneHelper[]` | 已废弃的辅助对象数组(保留以防外部引用) |
|
||||
| `clippingGroup` | `public` | `THREE.ClippingGroup` | 用于保存 `clippingGroup` 对应的数据。 |
|
||||
| `scene` | `public` | `THREE.Scene` | 用于保存 `scene` 对应的数据。 |
|
||||
| `viewer` | `public` | `Viewer` | 用于保存 `viewer` 对应的数据。 |
|
||||
| `planeHelperGroup` | `public` | `THREE.Group` | 平面辅助对象组 |
|
||||
|
||||
### 方法
|
||||
|
||||
#### `addDefaultPlanes(): [ClippingPlane, ClippingPlane, ClippingPlane]`
|
||||
|
||||
- 作用:创建默认的 X / Y / Z 三个剖切面
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`[ClippingPlane, ClippingPlane, ClippingPlane]`
|
||||
- 返回说明:[planeX, planeY, planeZ]
|
||||
|
||||
#### `addPlane(id: string, options: IClippingPlaneOptions): ClippingPlane`
|
||||
|
||||
- 作用:创建并注册一个剖切面
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `id` | `string` | 是 | 唯一标识 |
|
||||
| `options` | `IClippingPlaneOptions` | 是 | 剖切面配置 |
|
||||
|
||||
- 出参:`ClippingPlane`
|
||||
- 返回说明:返回 `ClippingPlane`。
|
||||
|
||||
#### `removePlane(id: string): void`
|
||||
|
||||
- 作用:移除剖切面
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `id` | `string` | 是 | 参数 `id`,类型为 `string`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `getPlane(id: string): ClippingPlane | undefined`
|
||||
|
||||
- 作用:获取剖切面
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `id` | `string` | 是 | 参数 `id`,类型为 `string`。 |
|
||||
|
||||
- 出参:`ClippingPlane \| undefined`
|
||||
- 返回说明:返回 `ClippingPlane | undefined`。
|
||||
|
||||
#### `autoPlanePosition(offset: number = 2): void`
|
||||
|
||||
- 作用:根据剖切组包围盒自动定位 X/Y/Z 三个剖切面 必须先调用 addDefaultPlanes() 注册剖切面
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `offset` | `number` | 否 | 从包围盒 min 边的偏移量 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `addClippingObjectsByUuid(uuids: Array<string>): void`
|
||||
|
||||
- 作用:─── 剖切组对象管理(保持不变)────────────────────────────────────────
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `uuids` | `Array<string>` | 是 | 参数 `uuids`,类型为 `Array<string>`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `addClippingObjects(objects: Array<THREE.Object3D>): void`
|
||||
|
||||
- 作用:添加 Clipping Objects。
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `objects` | `Array<THREE.Object3D>` | 是 | 目标对象集合。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `addClippingToObject(object: THREE.Object3D): void`
|
||||
|
||||
- 作用:添加 Clipping To Object。
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `THREE.Object3D` | 是 | 目标对象。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `removeClippingObjectsByUuid(uuids: Array<string>): void`
|
||||
|
||||
- 作用:移除 Clipping Objects By Uuid。
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `uuids` | `Array<string>` | 是 | 参数 `uuids`,类型为 `Array<string>`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `clearClippingGroups(): void`
|
||||
|
||||
- 作用:清理 Clipping Groups。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `clearClippingPlanes(): void`
|
||||
|
||||
- 作用:清理 Clipping Planes。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `hideClippingPlanes(): void`
|
||||
|
||||
- 作用:执行 hide Clipping Planes 相关逻辑。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `computeBoundingBox(): THREE.Box3`
|
||||
|
||||
- 作用:执行 compute Bounding Box 相关逻辑。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`THREE.Box3`
|
||||
- 返回说明:返回 `THREE.Box3`。
|
||||
|
||||
#### `createDebugPanel(clippingObjects: THREE.Object3D[] = []): void`
|
||||
|
||||
- 作用:创建调试面板
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `clippingObjects` | `THREE.Object3D[]` | 否 | 参数 `clippingObjects`,类型为 `THREE.Object3D[]`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `startClipping(): void`
|
||||
|
||||
- 作用:执行 start Clipping 相关逻辑。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `stopClipping(): void`
|
||||
|
||||
- 作用:执行 stop Clipping 相关逻辑。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `dispose(): void`
|
||||
|
||||
- 作用:释放资源并销毁当前实例。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
## 构造示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `ClippingManager` 的构造调用。
|
||||
|
||||
## 函数示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `ClippingManager` 的公开方法调用。
|
||||
@@ -0,0 +1,157 @@
|
||||
---
|
||||
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` 的公开方法调用。
|
||||
@@ -0,0 +1,270 @@
|
||||
---
|
||||
outline: [2, 3]
|
||||
---
|
||||
|
||||
# EventManager
|
||||
|
||||
- 源文件:`packages/sdk/src/manager/EventManager.ts`
|
||||
- 文档位置:`packages/docs/api/manager/EventManager.md`
|
||||
|
||||
## 类:`EventManager`
|
||||
|
||||
- 作用:事件管理器 继承自 Emittery,提供事件的订阅、取消订阅和触发功能
|
||||
- 继承/实现:`extends Emittery<EventManagerEventMap>`
|
||||
|
||||
### 构造函数
|
||||
|
||||
#### `new EventManager(viewer: Viewer)`
|
||||
|
||||
- 作用:创建 EventManager 实例。
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `viewer` | `Viewer` | 是 | 关联的 Viewer 实例。 |
|
||||
|
||||
- 出参:`EventManager`
|
||||
- 返回说明:返回当前类实例。
|
||||
|
||||
### 属性
|
||||
|
||||
| 属性名 | 可见性 | 类型 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `raycaster` | `public` | `Raycaster` | 射线选择相关 |
|
||||
| `mouse` | `public` | `Vector2` | 用于保存 `mouse` 对应的数据。 |
|
||||
| `camera` | `public` | `Camera \| null` | 用于保存 `camera` 对应的数据。 |
|
||||
| `scene` | `public` | `Scene \| null` | 用于保存 `scene` 对应的数据。 |
|
||||
| `filterList` | `public` | `Object3D[]` | 用于保存 `filterList` 的集合数据。 |
|
||||
| `onDownPosition` | `public` | `Vector2` | 鼠标位置跟踪 |
|
||||
| `onUpPosition` | `public` | `Vector2` | 用于保存 `onUpPosition` 对应的数据。 |
|
||||
| `selectionBox` | `public` | `SelectionBox \| null` | 框选相关 |
|
||||
| `selectionHelper` | `public` | `SelectionHelper \| null` | 用于保存 `selectionHelper` 对应的数据。 |
|
||||
| `boxSelectionEnabled` | `public` | `boolean` | 用于标记 `boxSelectionEnabled` 的启用状态。 |
|
||||
| `viewer` | `public` | `Viewer` | 用于保存 `viewer` 对应的数据。 |
|
||||
|
||||
### 访问器
|
||||
|
||||
#### `get enableClick(): boolean`
|
||||
|
||||
- 作用:获取 enable Click。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`boolean`
|
||||
- 返回说明:返回布尔结果。
|
||||
|
||||
#### `set enableClick(value: boolean)`
|
||||
|
||||
- 作用:设置 enable Click。
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `value` | `boolean` | 是 | 要写入的新值。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
### 方法
|
||||
|
||||
#### `disableRaycast(): void`
|
||||
|
||||
- 作用:禁用射线选择功能
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `addToFilterList(object: Object3D): void`
|
||||
|
||||
- 作用:添加对象到过滤列表(这些对象不会被射线选中)
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `Object3D` | 是 | - 要过滤的对象 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `removeFromFilterList(object: Object3D): void`
|
||||
|
||||
- 作用:从过滤列表中移除对象
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `Object3D` | 是 | - 要移除的对象 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `clearFilterList(): void`
|
||||
|
||||
- 作用:清空过滤列表
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `getMousePosition(dom: HTMLElement, x: number, y: number): [number, number]`
|
||||
|
||||
- 作用:获取鼠标在视口中的位置
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `dom` | `HTMLElement` | 是 | 参数 `dom`,类型为 `HTMLElement`。 |
|
||||
| `x` | `number` | 是 | 参数 `x`,类型为 `number`。 |
|
||||
| `y` | `number` | 是 | 参数 `y`,类型为 `number`。 |
|
||||
|
||||
- 出参:`[number, number]`
|
||||
- 返回说明:返回 `[number, number]`。
|
||||
|
||||
#### `handleClick(): void`
|
||||
|
||||
- 作用:处理点击事件
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `onMouseDown(event: MouseEvent): void`
|
||||
|
||||
- 作用:鼠标按下事件处理
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `event` | `MouseEvent` | 是 | 参数 `event`,类型为 `MouseEvent`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `onMouseUp(event: MouseEvent): void`
|
||||
|
||||
- 作用:鼠标释放事件处理
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `event` | `MouseEvent` | 是 | 参数 `event`,类型为 `MouseEvent`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `enableBoxSelection(): void`
|
||||
|
||||
- 作用:启用框选功能
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `disableBoxSelection(): void`
|
||||
|
||||
- 作用:禁用框选功能
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `onBoxSelectionStart(event: PointerEvent): void`
|
||||
|
||||
- 作用:框选开始事件处理
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `event` | `PointerEvent` | 是 | 参数 `event`,类型为 `PointerEvent`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `onBoxSelectionMove(event: PointerEvent): void`
|
||||
|
||||
- 作用:框选移动事件处理
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `event` | `PointerEvent` | 是 | 参数 `event`,类型为 `PointerEvent`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `onBoxSelectionEnd(event: PointerEvent): void`
|
||||
|
||||
- 作用:框选结束事件处理
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `event` | `PointerEvent` | 是 | 参数 `event`,类型为 `PointerEvent`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
## 构造示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `EventManager` 的构造调用。
|
||||
|
||||
## 函数示例
|
||||
|
||||
### `EventManager.addToFilterList`
|
||||
|
||||
- 来源:`packages/demo/src/components/Toolbar.vue`
|
||||
|
||||
```ts
|
||||
if (newValue) {
|
||||
// 透视选择激活时,将对象添加到过滤列表(不可被选中)
|
||||
viewer.events.addToFilterList(sampleObject)
|
||||
} else {
|
||||
// 透视选择关闭时,从过滤列表中移除(可被选中)
|
||||
viewer.events.removeFromFilterList(sampleObject)
|
||||
}
|
||||
}
|
||||
}, {immediate: true})
|
||||
```
|
||||
|
||||
### `EventManager.removeFromFilterList`
|
||||
|
||||
- 来源:`packages/demo/src/components/Toolbar.vue`
|
||||
|
||||
```ts
|
||||
viewer.events.addToFilterList(sampleObject)
|
||||
} else {
|
||||
// 透视选择关闭时,从过滤列表中移除(可被选中)
|
||||
viewer.events.removeFromFilterList(sampleObject)
|
||||
}
|
||||
}
|
||||
}, {immediate: true})
|
||||
```
|
||||
|
||||
### `EventManager.enableBoxSelection`
|
||||
|
||||
- 来源:`packages/demo/src/components/Toolbar.vue`
|
||||
|
||||
```ts
|
||||
if (eventManager.enableBoxSelection && eventManager.disableBoxSelection) {
|
||||
// 启用框选
|
||||
eventManager.enableBoxSelection()
|
||||
// 添加事件监听器
|
||||
eventManager.on(EventManagerEvents.BOX_SELECTION_MOVE, handleBoxSelectionMove)
|
||||
eventManager.on(EventManagerEvents.BOX_SELECTION_COMPLETE, handleBoxSelectionComplete)
|
||||
```
|
||||
@@ -0,0 +1,133 @@
|
||||
---
|
||||
outline: [2, 3]
|
||||
---
|
||||
|
||||
# IconManager
|
||||
|
||||
- 源文件:`packages/sdk/src/manager/IconManager.ts`
|
||||
- 文档位置:`packages/docs/api/manager/IconManager.md`
|
||||
|
||||
## 类:`IconManager`
|
||||
|
||||
- 作用:图标管理类 - 通过精灵图(Sprite)添加和删除图标
|
||||
|
||||
### 构造函数
|
||||
|
||||
#### `new IconManager(scene: THREE.Scene)`
|
||||
|
||||
- 作用:构造函数
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `scene` | `THREE.Scene` | 是 | Three.js场景实例 |
|
||||
|
||||
- 出参:`IconManager`
|
||||
- 返回说明:返回当前类实例。
|
||||
|
||||
### 属性
|
||||
|
||||
| 属性名 | 可见性 | 类型 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `scene` | `public` | `THREE.Scene` | 用于保存 `scene` 对应的数据。 |
|
||||
| `icons` | `public` | `Map<string, THREE.Sprite>` | 用于保存 `icons` 的映射关系。 |
|
||||
| `textureLoader` | `public` | `THREE.TextureLoader` | 用于保存 `textureLoader` 对应的数据。 |
|
||||
|
||||
### 方法
|
||||
|
||||
#### `addIcon(iconOrId: Icon | string, textureUrl?: string, position?: THREE.Vector3, size: number = 1): THREE.Sprite<THREE.Object3DEventMap>`
|
||||
|
||||
- 作用:添加图标
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `iconOrId` | `Icon \| string` | 是 | 图标实例或图标唯一标识 |
|
||||
| `textureUrl` | `string` | 否 | 精灵图纹理URL(当第一个参数是ID时使用) |
|
||||
| `position` | `THREE.Vector3` | 否 | 图标位置(当第一个参数是ID时使用) |
|
||||
| `size` | `number` | 否 | 图标大小(当第一个参数是ID时使用) |
|
||||
|
||||
- 出参:`THREE.Sprite<THREE.Object3DEventMap>`
|
||||
- 返回说明:添加的精灵图实例
|
||||
|
||||
#### `removeIcon(id: string): boolean`
|
||||
|
||||
- 作用:删除图标
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `id` | `string` | 是 | 图标唯一标识 |
|
||||
|
||||
- 出参:`boolean`
|
||||
- 返回说明:是否删除成功
|
||||
|
||||
#### `getIcon(id: string): THREE.Sprite<THREE.Object3DEventMap> | undefined`
|
||||
|
||||
- 作用:获取图标
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `id` | `string` | 是 | 图标唯一标识 |
|
||||
|
||||
- 出参:`THREE.Sprite<THREE.Object3DEventMap> \| undefined`
|
||||
- 返回说明:精灵图实例或undefined
|
||||
|
||||
#### `getAllIcons(): Map<string, THREE.Sprite<THREE.Object3DEventMap>>`
|
||||
|
||||
- 作用:获取所有图标
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`Map<string, THREE.Sprite<THREE.Object3DEventMap>>`
|
||||
- 返回说明:图标ID和精灵图实例的映射
|
||||
|
||||
#### `updateIconPosition(id: string, position: THREE.Vector3): boolean`
|
||||
|
||||
- 作用:更新图标位置
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `id` | `string` | 是 | 图标唯一标识 |
|
||||
| `position` | `THREE.Vector3` | 是 | 新位置 |
|
||||
|
||||
- 出参:`boolean`
|
||||
- 返回说明:是否更新成功
|
||||
|
||||
#### `updateIconSize(id: string, size: number): boolean`
|
||||
|
||||
- 作用:更新图标大小
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `id` | `string` | 是 | 图标唯一标识 |
|
||||
| `size` | `number` | 是 | 新大小 |
|
||||
|
||||
- 出参:`boolean`
|
||||
- 返回说明:是否更新成功
|
||||
|
||||
#### `clearAllIcons(): void`
|
||||
|
||||
- 作用:清除所有图标
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
## 构造示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `IconManager` 的构造调用。
|
||||
|
||||
## 函数示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `IconManager` 的公开方法调用。
|
||||
@@ -0,0 +1,117 @@
|
||||
---
|
||||
outline: [2, 3]
|
||||
---
|
||||
|
||||
# PanelManager
|
||||
|
||||
- 源文件:`packages/sdk/src/manager/PanelManager.ts`
|
||||
- 文档位置:`packages/docs/api/manager/PanelManager.md`
|
||||
|
||||
## 接口:`IPanelManagerOptions`
|
||||
|
||||
- 作用:面板管理器配置选项
|
||||
|
||||
### 字段
|
||||
|
||||
| 字段名 | 类型 | 必填 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `size` | `number` | 否 | 面板大小 |
|
||||
| `cubeSize` | `number` | 否 | 小正方体大小 |
|
||||
| `cubeGap` | `number` | 否 | 小正方体间距 |
|
||||
| `panelOffset` | `number` | 否 | 面板位置偏移 |
|
||||
| `initialData` | `{ [face: string]: ICubeData[][]; }` | 否 | 初始数据 |
|
||||
|
||||
## 类:`PanelManager`
|
||||
|
||||
- 作用:面板管理器 管理六个面的立方体面板
|
||||
|
||||
### 构造函数
|
||||
|
||||
#### `new PanelManager(options: IPanelManagerOptions = {})`
|
||||
|
||||
- 作用:创建面板管理器
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `options` | `IPanelManagerOptions` | 否 | - 配置选项 |
|
||||
|
||||
- 出参:`PanelManager`
|
||||
- 返回说明:返回当前类实例。
|
||||
|
||||
### 属性
|
||||
|
||||
| 属性名 | 可见性 | 类型 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `group` | `public` | `THREE.Group` | 主组对象 |
|
||||
| `panels` | `public` | `Map<string, CubePanel>` | 面板映射 |
|
||||
| `options` | `public` | `Required<IPanelManagerOptions>` | 配置选项 |
|
||||
|
||||
### 方法
|
||||
|
||||
#### `initPanels(): void`
|
||||
|
||||
- 作用:初始化六个面
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `getPanel(name: string): CubePanel | undefined`
|
||||
|
||||
- 作用:获取指定面板
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `name` | `string` | 是 | - 面板名称 |
|
||||
|
||||
- 出参:`CubePanel \| undefined`
|
||||
- 返回说明:面板对象
|
||||
|
||||
#### `setPanelData(name: string, data: ICubeData[][]): void`
|
||||
|
||||
- 作用:设置指定面板的数据
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `name` | `string` | 是 | - 面板名称 |
|
||||
| `data` | `ICubeData[][]` | 是 | - 面板数据 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setAllPanelsData(data: { [face: string]: ICubeData[][]; }): void`
|
||||
|
||||
- 作用:批量设置所有面板数据
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `data` | `{ [face: string]: ICubeData[][]; }` | 是 | - 所有面板数据 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `dispose(): void`
|
||||
|
||||
- 作用:销毁面板管理器
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
## 构造示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `PanelManager` 的构造调用。
|
||||
|
||||
## 函数示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `PanelManager` 的公开方法调用。
|
||||
@@ -0,0 +1,396 @@
|
||||
---
|
||||
outline: [2, 3]
|
||||
---
|
||||
|
||||
# ParametricManager
|
||||
|
||||
- 源文件:`packages/sdk/src/manager/ParametricManager.ts`
|
||||
- 文档位置:`packages/docs/api/manager/ParametricManager.md`
|
||||
|
||||
## 类:`ParametricManager`
|
||||
|
||||
- 作用:参数化对象管理器 管理所有参数化几何体实例,提供统一的查找和管理接口
|
||||
|
||||
### 属性
|
||||
|
||||
| 属性名 | 可见性 | 类型 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `boxes` | `public` | `ParametricBox[]` | 所有 Box 实例 |
|
||||
| `cylinders` | `public` | `ParametricCylinder[]` | 所有 Cylinder 实例 |
|
||||
| `spheres` | `public` | `ParametricSphere[]` | 所有 Sphere 实例 |
|
||||
| `arches` | `public` | `ParametricArch[]` | 所有 Arch 实例 |
|
||||
| `pipes` | `public` | `ParametricPipe[]` | 所有 Pipe 实例 |
|
||||
|
||||
### 方法
|
||||
|
||||
#### `addBox(box: ParametricBox): void`
|
||||
|
||||
- 作用:添加 Box 实例
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `box` | `ParametricBox` | 是 | 参数 `box`,类型为 `ParametricBox`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `removeBox(box: ParametricBox): void`
|
||||
|
||||
- 作用:移除 Box 实例
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `box` | `ParametricBox` | 是 | 参数 `box`,类型为 `ParametricBox`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `addCylinder(cylinder: ParametricCylinder): void`
|
||||
|
||||
- 作用:添加 Cylinder 实例
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `cylinder` | `ParametricCylinder` | 是 | 参数 `cylinder`,类型为 `ParametricCylinder`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `removeCylinder(cylinder: ParametricCylinder): void`
|
||||
|
||||
- 作用:移除 Cylinder 实例
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `cylinder` | `ParametricCylinder` | 是 | 参数 `cylinder`,类型为 `ParametricCylinder`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `addSphere(sphere: ParametricSphere): void`
|
||||
|
||||
- 作用:添加 Sphere 实例
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `sphere` | `ParametricSphere` | 是 | 参数 `sphere`,类型为 `ParametricSphere`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `removeSphere(sphere: ParametricSphere): void`
|
||||
|
||||
- 作用:移除 Sphere 实例
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `sphere` | `ParametricSphere` | 是 | 参数 `sphere`,类型为 `ParametricSphere`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `addArch(arch: ParametricArch): void`
|
||||
|
||||
- 作用:添加 Arch 实例
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `arch` | `ParametricArch` | 是 | 参数 `arch`,类型为 `ParametricArch`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `removeArch(arch: ParametricArch): void`
|
||||
|
||||
- 作用:移除 Arch 实例
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `arch` | `ParametricArch` | 是 | 参数 `arch`,类型为 `ParametricArch`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `addPipe(pipe: ParametricPipe): void`
|
||||
|
||||
- 作用:添加 Pipe 实例
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `pipe` | `ParametricPipe` | 是 | 参数 `pipe`,类型为 `ParametricPipe`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `removePipe(pipe: ParametricPipe): void`
|
||||
|
||||
- 作用:移除 Pipe 实例
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `pipe` | `ParametricPipe` | 是 | 参数 `pipe`,类型为 `ParametricPipe`。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `findPipe(predicate: (pipe: ParametricPipe) => boolean): ParametricPipe | null`
|
||||
|
||||
- 作用:查找第一个符合条件的 Pipe
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `predicate` | `(pipe: ParametricPipe) => boolean` | 是 | - 过滤条件函数 |
|
||||
|
||||
- 出参:`ParametricPipe \| null`
|
||||
- 返回说明:找到的 Pipe 实例或 null
|
||||
|
||||
#### `findAllPipes(predicate: (pipe: ParametricPipe) => boolean): ParametricPipe[]`
|
||||
|
||||
- 作用:查找所有符合条件的 Pipe
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `predicate` | `(pipe: ParametricPipe) => boolean` | 是 | - 过滤条件函数 |
|
||||
|
||||
- 出参:`ParametricPipe[]`
|
||||
- 返回说明:符合条件的 Pipe 实例数组
|
||||
|
||||
#### `findPipeByMetadata(key: string, value: any): ParametricPipe | null`
|
||||
|
||||
- 作用:根据 metadata 查找 Pipe
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `key` | `string` | 是 | - metadata 的键 |
|
||||
| `value` | `any` | 是 | - metadata 的值 |
|
||||
|
||||
- 出参:`ParametricPipe \| null`
|
||||
- 返回说明:找到的 Pipe 实例或 null
|
||||
|
||||
#### `findAllPipesByMetadata(key: string, value: any): ParametricPipe[]`
|
||||
|
||||
- 作用:根据 metadata 查找所有 Pipe
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `key` | `string` | 是 | - metadata 的键 |
|
||||
| `value` | `any` | 是 | - metadata 的值 |
|
||||
|
||||
- 出参:`ParametricPipe[]`
|
||||
- 返回说明:符合条件的 Pipe 实例数组
|
||||
|
||||
#### `findPipeByName(name: string): ParametricPipe | null`
|
||||
|
||||
- 作用:根据名称查找 Pipe
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `name` | `string` | 是 | - mesh 的名称 |
|
||||
|
||||
- 出参:`ParametricPipe \| null`
|
||||
- 返回说明:找到的 Pipe 实例或 null
|
||||
|
||||
#### `findBox(predicate: (box: ParametricBox) => boolean): ParametricBox | null`
|
||||
|
||||
- 作用:查找第一个符合条件的 Box
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `predicate` | `(box: ParametricBox) => boolean` | 是 | - 过滤条件函数 |
|
||||
|
||||
- 出参:`ParametricBox \| null`
|
||||
- 返回说明:找到的 Box 实例或 null
|
||||
|
||||
#### `findAllBoxes(predicate: (box: ParametricBox) => boolean): ParametricBox[]`
|
||||
|
||||
- 作用:查找所有符合条件的 Box
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `predicate` | `(box: ParametricBox) => boolean` | 是 | - 过滤条件函数 |
|
||||
|
||||
- 出参:`ParametricBox[]`
|
||||
- 返回说明:符合条件的 Box 实例数组
|
||||
|
||||
#### `findCylinder(predicate: (cylinder: ParametricCylinder) => boolean): ParametricCylinder | null`
|
||||
|
||||
- 作用:查找第一个符合条件的 Cylinder
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `predicate` | `(cylinder: ParametricCylinder) => boolean` | 是 | - 过滤条件函数 |
|
||||
|
||||
- 出参:`ParametricCylinder \| null`
|
||||
- 返回说明:找到的 Cylinder 实例或 null
|
||||
|
||||
#### `findAllCylinders(predicate: (cylinder: ParametricCylinder) => boolean): ParametricCylinder[]`
|
||||
|
||||
- 作用:查找所有符合条件的 Cylinder
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `predicate` | `(cylinder: ParametricCylinder) => boolean` | 是 | - 过滤条件函数 |
|
||||
|
||||
- 出参:`ParametricCylinder[]`
|
||||
- 返回说明:符合条件的 Cylinder 实例数组
|
||||
|
||||
#### `findSphere(predicate: (sphere: ParametricSphere) => boolean): ParametricSphere | null`
|
||||
|
||||
- 作用:查找第一个符合条件的 Sphere
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `predicate` | `(sphere: ParametricSphere) => boolean` | 是 | - 过滤条件函数 |
|
||||
|
||||
- 出参:`ParametricSphere \| null`
|
||||
- 返回说明:找到的 Sphere 实例或 null
|
||||
|
||||
#### `findAllSpheres(predicate: (sphere: ParametricSphere) => boolean): ParametricSphere[]`
|
||||
|
||||
- 作用:查找所有符合条件的 Sphere
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `predicate` | `(sphere: ParametricSphere) => boolean` | 是 | - 过滤条件函数 |
|
||||
|
||||
- 出参:`ParametricSphere[]`
|
||||
- 返回说明:符合条件的 Sphere 实例数组
|
||||
|
||||
#### `findArch(predicate: (arch: ParametricArch) => boolean): ParametricArch | null`
|
||||
|
||||
- 作用:查找第一个符合条件的 Arch
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `predicate` | `(arch: ParametricArch) => boolean` | 是 | - 过滤条件函数 |
|
||||
|
||||
- 出参:`ParametricArch \| null`
|
||||
- 返回说明:找到的 Arch 实例或 null
|
||||
|
||||
#### `findAllArches(predicate: (arch: ParametricArch) => boolean): ParametricArch[]`
|
||||
|
||||
- 作用:查找所有符合条件的 Arch
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `predicate` | `(arch: ParametricArch) => boolean` | 是 | - 过滤条件函数 |
|
||||
|
||||
- 出参:`ParametricArch[]`
|
||||
- 返回说明:符合条件的 Arch 实例数组
|
||||
|
||||
#### `clearBoxes(): void`
|
||||
|
||||
- 作用:清空所有 Box 实例
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `clearCylinders(): void`
|
||||
|
||||
- 作用:清空所有 Cylinder 实例
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `clearSpheres(): void`
|
||||
|
||||
- 作用:清空所有 Sphere 实例
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `clearArches(): void`
|
||||
|
||||
- 作用:清空所有 Arch 实例
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `clearPipes(): void`
|
||||
|
||||
- 作用:清空所有 Pipe 实例
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `clearAll(): void`
|
||||
|
||||
- 作用:清空所有参数化对象
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `getTotalCount(): number`
|
||||
|
||||
- 作用:获取所有参数化对象的总数
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`number`
|
||||
- 返回说明:返回数值结果。
|
||||
|
||||
## 构造示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `ParametricManager` 的构造调用。
|
||||
|
||||
## 函数示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `ParametricManager` 的公开方法调用。
|
||||
@@ -0,0 +1,372 @@
|
||||
---
|
||||
outline: [2, 3]
|
||||
---
|
||||
|
||||
# PipelineManager
|
||||
|
||||
- 源文件:`packages/sdk/src/manager/PipelineManager.ts`
|
||||
- 文档位置:`packages/docs/api/manager/PipelineManager.md`
|
||||
|
||||
## 类:`PipelineManager`
|
||||
|
||||
- 作用:管线管理器 用于管理渲染管线效果,如描边、Bloom 等
|
||||
|
||||
### 构造函数
|
||||
|
||||
#### `new PipelineManager(viewer: Viewer)`
|
||||
|
||||
- 作用:构造函数
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `viewer` | `Viewer` | 是 | - Viewer 实例 |
|
||||
|
||||
- 出参:`PipelineManager`
|
||||
- 返回说明:返回当前类实例。
|
||||
|
||||
### 属性
|
||||
|
||||
| 属性名 | 可见性 | 类型 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `renderer` | `public` | `THREE.WebGPURenderer` | 用于保存 `renderer` 对应的数据。 |
|
||||
| `scene` | `public` | `THREE.Scene` | 用于保存 `scene` 对应的数据。 |
|
||||
| `sceneHelpers` | `public` | `THREE.Scene` | 用于保存 `sceneHelpers` 对应的数据。 |
|
||||
| `outlinePass` | `public` | `OutlinePass` | 用于保存 `outlinePass` 对应的数据。 |
|
||||
| `bloomPass` | `public` | `BloomPass` | 用于保存 `bloomPass` 对应的数据。 |
|
||||
| `enableOutline` | `public` | `boolean` | 用于标记 `enableOutline` 的启用状态。 |
|
||||
| `enableBloom` | `public` | `boolean` | 用于标记 `enableBloom` 的启用状态。 |
|
||||
|
||||
### 访问器
|
||||
|
||||
#### `get renderPipeline(): THREE.RenderPipeline | null`
|
||||
|
||||
- 作用:获取当前激活的渲染管线
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`THREE.RenderPipeline \| null`
|
||||
- 返回说明:返回 `THREE.RenderPipeline | null`。
|
||||
|
||||
### 方法
|
||||
|
||||
#### `init(): void`
|
||||
|
||||
- 作用:初始化管线管理器
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `updateCamera(): void`
|
||||
|
||||
- 作用:更新相机引用 当相机类型切换时调用
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `updateRenderPipeline(): void`
|
||||
|
||||
- 作用:更新渲染管道
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `render(): void`
|
||||
|
||||
- 作用:渲染场景
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `addSelectedObject(object: THREE.Object3D): void`
|
||||
|
||||
- 作用:添加要描边的对象
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `THREE.Object3D` | 是 | - 要添加的对象 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `removeSelectedObject(object: THREE.Object3D): void`
|
||||
|
||||
- 作用:移除要描边的对象
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `THREE.Object3D` | 是 | - 要移除的对象 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `clearSelectedObjects(): void`
|
||||
|
||||
- 作用:清空所有要描边的对象
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setEdgeStrength(value: number): void`
|
||||
|
||||
- 作用:设置描边强度
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `value` | `number` | 是 | - 描边强度值 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setEdgeGlow(value: number): void`
|
||||
|
||||
- 作用:设置描边 glow 效果
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `value` | `number` | 是 | - glow 效果值 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setEdgeThickness(value: number): void`
|
||||
|
||||
- 作用:设置描边厚度
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `value` | `number` | 是 | - 描边厚度值 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setPulsePeriod(value: number): void`
|
||||
|
||||
- 作用:设置描边脉冲周期
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `value` | `number` | 是 | - 脉冲周期值 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setVisibleEdgeColor(color: THREE.Color): void`
|
||||
|
||||
- 作用:设置可见边的颜色
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `color` | `THREE.Color` | 是 | - 颜色值 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setHiddenEdgeColor(color: THREE.Color): void`
|
||||
|
||||
- 作用:设置隐藏边的颜色
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `color` | `THREE.Color` | 是 | - 颜色值 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setBloomThreshold(value: number): void`
|
||||
|
||||
- 作用:设置 Bloom 阈值
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `value` | `number` | 是 | - 阈值,范围 0.0 到 1.0 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setBloomStrength(value: number): void`
|
||||
|
||||
- 作用:设置 Bloom 强度
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `value` | `number` | 是 | - 强度,范围 0.0 到 3.0 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setBloomRadius(value: number): void`
|
||||
|
||||
- 作用:设置 Bloom 半径
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `value` | `number` | 是 | - 半径,范围 0.0 到 1.0 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setOutlineEnabled(enabled: boolean): void`
|
||||
|
||||
- 作用:启用或禁用描边效果
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `enabled` | `boolean` | 是 | - 是否启用 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setBloomEnabled(enabled: boolean): void`
|
||||
|
||||
- 作用:启用或禁用 Bloom 效果
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `enabled` | `boolean` | 是 | - 是否启用 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `getSelectedObjects(): THREE.Object3D<THREE.Object3DEventMap>[]`
|
||||
|
||||
- 作用:获取当前选中的对象列表
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`THREE.Object3D<THREE.Object3DEventMap>[]`
|
||||
- 返回说明:选中的对象列表
|
||||
|
||||
#### `isObjectInOutlineList(object: THREE.Object3D): boolean`
|
||||
|
||||
- 作用:检查对象是否在描边列表中
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `THREE.Object3D` | 是 | - 要检查的对象 |
|
||||
|
||||
- 出参:`boolean`
|
||||
- 返回说明:是否在描边列表中
|
||||
|
||||
#### `addHighlightedObject(object: THREE.Object3D, highlightColor: THREE.Color = new THREE.Color(0, 1, 0)): void`
|
||||
|
||||
- 作用:添加要高亮的对象
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `THREE.Object3D` | 是 | - 要高亮的对象 |
|
||||
| `highlightColor` | `THREE.Color` | 否 | - 高亮颜色,默认为绿色 (0, 1, 0) |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `removeHighlightedObject(object: THREE.Object3D): void`
|
||||
|
||||
- 作用:移除要高亮的对象
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `THREE.Object3D` | 是 | - 要移除的对象 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `clearHighlightedObjects(): void`
|
||||
|
||||
- 作用:清空所有要高亮的对象
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `isObjectInBloomList(object: THREE.Object3D): boolean`
|
||||
|
||||
- 作用:检查对象是否在高亮列表中
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `THREE.Object3D` | 是 | - 要检查的对象 |
|
||||
|
||||
- 出参:`boolean`
|
||||
- 返回说明:是否在高亮列表中
|
||||
|
||||
#### `getOutlinePass(): OutlinePass`
|
||||
|
||||
- 作用:获取描边通道实例
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`OutlinePass`
|
||||
- 返回说明:描边通道实例
|
||||
|
||||
#### `getBloomPass(): BloomPass`
|
||||
|
||||
- 作用:获取 Bloom 通道实例
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`BloomPass`
|
||||
- 返回说明:Bloom 通道实例
|
||||
|
||||
#### `dispose(): void`
|
||||
|
||||
- 作用:销毁管线管理器
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
## 构造示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `PipelineManager` 的构造调用。
|
||||
|
||||
## 函数示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `PipelineManager` 的公开方法调用。
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
outline: [2, 3]
|
||||
---
|
||||
|
||||
# RangeCullingManager
|
||||
|
||||
- 源文件:`packages/sdk/src/manager/RangeCullingManager.ts`
|
||||
- 文档位置:`packages/docs/api/manager/RangeCullingManager.md`
|
||||
|
||||
## 类:`RangeCullingManager`
|
||||
|
||||
- 作用:范围剔除管理器
|
||||
- 继承/实现:`extends THREE.ClippingGroup`
|
||||
|
||||
### 构造函数
|
||||
|
||||
#### `new RangeCullingManager(viewer: Viewer)`
|
||||
|
||||
- 作用:创建 RangeCullingManager 实例。
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `viewer` | `Viewer` | 是 | 关联的 Viewer 实例。 |
|
||||
|
||||
- 出参:`RangeCullingManager`
|
||||
- 返回说明:返回当前类实例。
|
||||
|
||||
### 属性
|
||||
|
||||
| 属性名 | 可见性 | 类型 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `viewer` | `public` | `Viewer` | 用于保存 `viewer` 对应的数据。 |
|
||||
| `name` | `public` | `string` | 名称。 |
|
||||
|
||||
### 方法
|
||||
|
||||
#### `init(mesh: THREE.Mesh): void`
|
||||
|
||||
- 作用:执行 init 初始化逻辑。
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `mesh` | `THREE.Mesh` | 是 | 目标网格对象。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `generateClippingPlanesFromMesh(mesh: THREE.Mesh): void`
|
||||
|
||||
- 作用:根据普通 mesh 的包围盒生成 6 个剔除平面
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `mesh` | `THREE.Mesh` | 是 | 要计算包围盒的 mesh |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
## 构造示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `RangeCullingManager` 的构造调用。
|
||||
|
||||
## 函数示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `RangeCullingManager` 的公开方法调用。
|
||||
@@ -0,0 +1,206 @@
|
||||
---
|
||||
outline: [2, 3]
|
||||
---
|
||||
|
||||
# ResourceManager
|
||||
|
||||
- 源文件:`packages/sdk/src/manager/ResourceManager.ts`
|
||||
- 文档位置:`packages/docs/api/manager/ResourceManager.md`
|
||||
|
||||
## 枚举:`ResourceType`
|
||||
|
||||
- 作用:资源类型
|
||||
|
||||
| 枚举项 | 值 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `TEXTURE` | `"texture"` | 纹理 |
|
||||
| `MATERIAL` | `"material"` | 材质 |
|
||||
| `GEOMETRY` | `"geometry"` | 几何体 |
|
||||
| `MODEL` | `"model"` | 模型 |
|
||||
| `RAW_DATA` | `"raw_data"` | 原始数据 |
|
||||
|
||||
## 接口:`ILoadProgress`
|
||||
|
||||
- 作用:资源加载进度信息
|
||||
|
||||
### 字段
|
||||
|
||||
| 字段名 | 类型 | 必填 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `loaded` | `number` | 是 | 已加载的字节数 |
|
||||
| `total` | `number` | 是 | 总字节数 |
|
||||
| `progress` | `number` | 是 | 加载进度百分比 (0-100) |
|
||||
|
||||
## 类:`ResourceManager`
|
||||
|
||||
- 作用:资源管理器 负责加载、缓存和管理三维资源
|
||||
|
||||
### 构造函数
|
||||
|
||||
#### `new ResourceManager()`
|
||||
|
||||
- 作用:创建 ResourceManager 实例。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`ResourceManager`
|
||||
- 返回说明:返回当前类实例。
|
||||
|
||||
### 属性
|
||||
|
||||
| 属性名 | 可见性 | 类型 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `cache` | `public` | `Map<string, unknown>` | 用于保存 `cache` 的映射关系。 |
|
||||
| `textureLoader` | `public` | `THREE.TextureLoader` | 用于保存 `textureLoader` 对应的数据。 |
|
||||
| `fbxLoader` | `public` | `FBXLoader` | 用于保存 `fbxLoader` 对应的数据。 |
|
||||
| `gltfLoader` | `public` | `GLTFLoader` | 用于保存 `gltfLoader` 对应的数据。 |
|
||||
| `fileLoader` | `public` | `THREE.FileLoader` | 用于保存 `fileLoader` 对应的数据。 |
|
||||
| `loadingManager` | `public` | `THREE.LoadingManager` | 用于统一管理 `loadingManager` 相关能力。 |
|
||||
|
||||
### 方法
|
||||
|
||||
#### `createGLTFLoader(manager?: THREE.LoadingManager): GLTFLoader`
|
||||
|
||||
- 作用:创建 GLTF 加载器
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `manager` | `THREE.LoadingManager` | 否 | - 加载管理器 |
|
||||
|
||||
- 出参:`GLTFLoader`
|
||||
- 返回说明:GLTF 加载器实例
|
||||
|
||||
#### `loadTexture(url: string, onProgress?: (progress: ILoadProgress) => void): Promise<THREE.Texture<unknown, THREE.TextureEventMap>>`
|
||||
|
||||
- 作用:加载纹理
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `url` | `string` | 是 | - 纹理文件路径 |
|
||||
| `onProgress` | `(progress: ILoadProgress) => void` | 否 | - 加载进度回调 |
|
||||
|
||||
- 出参:`Promise<THREE.Texture<unknown, THREE.TextureEventMap>>`
|
||||
- 返回说明:纹理对象
|
||||
|
||||
#### `loadFBX(url: string, onProgress?: (progress: ILoadProgress) => void): Promise<THREE.Group<THREE.Object3DEventMap>>`
|
||||
|
||||
- 作用:加载 FBX 模型
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `url` | `string` | 是 | - FBX 文件路径 |
|
||||
| `onProgress` | `(progress: ILoadProgress) => void` | 否 | - 加载进度回调 |
|
||||
|
||||
- 出参:`Promise<THREE.Group<THREE.Object3DEventMap>>`
|
||||
- 返回说明:FBX 模型对象 (Group)
|
||||
|
||||
#### `loadGLTF(url: string, onProgress?: (progress: ILoadProgress) => void): Promise<THREE.Object3D<THREE.Object3DEventMap>>`
|
||||
|
||||
- 作用:加载 GLTF 模型
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `url` | `string` | 是 | - GLTF 文件路径 |
|
||||
| `onProgress` | `(progress: ILoadProgress) => void` | 否 | - 加载进度回调 |
|
||||
|
||||
- 出参:`Promise<THREE.Object3D<THREE.Object3DEventMap>>`
|
||||
- 返回说明:GLTF 模型对象
|
||||
|
||||
#### `loadRawData(url: string, onProgress?: (progress: ILoadProgress) => void): Promise<ArrayBuffer>`
|
||||
|
||||
- 作用:加载原始二进制数据
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `url` | `string` | 是 | - 原始数据文件路径 |
|
||||
| `onProgress` | `(progress: ILoadProgress) => void` | 否 | - 加载进度回调 |
|
||||
|
||||
- 出参:`Promise<ArrayBuffer>`
|
||||
- 返回说明:ArrayBuffer 数据
|
||||
|
||||
#### `get<T = unknown>(type: ResourceType, key: string): T | undefined`
|
||||
|
||||
- 作用:从缓存中获取资源
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `type` | `ResourceType` | 是 | - 资源类型 |
|
||||
| `key` | `string` | 是 | - 资源键名 |
|
||||
|
||||
- 出参:`T \| undefined`
|
||||
- 返回说明:资源对象,如果不存在则返回 undefined
|
||||
|
||||
#### `has(type: ResourceType, key: string): boolean`
|
||||
|
||||
- 作用:检查资源是否存在于缓存中
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `type` | `ResourceType` | 是 | - 资源类型 |
|
||||
| `key` | `string` | 是 | - 资源键名 |
|
||||
|
||||
- 出参:`boolean`
|
||||
- 返回说明:是否存在
|
||||
|
||||
#### `remove(type: ResourceType, key: string): boolean`
|
||||
|
||||
- 作用:从缓存中移除资源
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `type` | `ResourceType` | 是 | - 资源类型 |
|
||||
| `key` | `string` | 是 | - 资源键名 |
|
||||
|
||||
- 出参:`boolean`
|
||||
- 返回说明:是否成功移除
|
||||
|
||||
#### `clear(): void`
|
||||
|
||||
- 作用:清空所有缓存
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `getCacheSize(): number`
|
||||
|
||||
- 作用:获取缓存大小
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`number`
|
||||
- 返回说明:缓存中的资源数量
|
||||
|
||||
#### `dispose(): void`
|
||||
|
||||
- 作用:销毁资源管理器
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
## 构造示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `ResourceManager` 的构造调用。
|
||||
|
||||
## 函数示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `ResourceManager` 的公开方法调用。
|
||||
@@ -0,0 +1,305 @@
|
||||
---
|
||||
outline: [2, 3]
|
||||
---
|
||||
|
||||
# RuptureEventManager
|
||||
|
||||
- 源文件:`packages/sdk/src/manager/RuptureEventManager.ts`
|
||||
- 文档位置:`packages/docs/api/manager/RuptureEventManager.md`
|
||||
|
||||
## 接口:`RuptureEvent`
|
||||
|
||||
- 作用:破裂事件数据接口
|
||||
|
||||
### 字段
|
||||
|
||||
| 字段名 | 类型 | 必填 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `position` | `{ x: number; y: number; z: number }` | 是 | 位置数据。 |
|
||||
| `time` | `number` | 是 | 用于保存 `time` 对应的数据。 |
|
||||
| `energy` | `number` | 是 | 用于保存 `energy` 对应的数据。 |
|
||||
|
||||
## 接口:`RuptureEventConfig`
|
||||
|
||||
- 作用:破裂事件配置接口
|
||||
|
||||
### 字段
|
||||
|
||||
| 字段名 | 类型 | 必填 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `minRadius` | `number` | 否 | 用于保存 `minRadius` 对应的数据。 |
|
||||
| `maxRadius` | `number` | 否 | 用于保存 `maxRadius` 对应的数据。 |
|
||||
| `minEnergy` | `number` | 否 | 用于保存 `minEnergy` 对应的数据。 |
|
||||
| `maxEnergy` | `number` | 否 | 用于保存 `maxEnergy` 对应的数据。 |
|
||||
| `mappingType` | `'linear' \| 'logarithmic'` | 否 | 用于保存 `mappingType` 对应的数据。 |
|
||||
| `crackModelUrls` | `string[]` | 否 | 用于保存 `crackModelUrls` 的集合数据。 |
|
||||
| `crackBaseScale` | `number` | 否 | 用于保存 `crackBaseScale` 对应的数据。 |
|
||||
|
||||
## 类:`RuptureEventManager`
|
||||
|
||||
- 作用:破裂事件管理类 通过球体可视化破裂事件,球体大小表示能量,颜色表示时间序列
|
||||
|
||||
### 构造函数
|
||||
|
||||
#### `new RuptureEventManager(viewer: Viewer, config?: RuptureEventConfig)`
|
||||
|
||||
- 作用:构造函数
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `viewer` | `Viewer` | 是 | Viewer实例 |
|
||||
| `config` | `RuptureEventConfig` | 否 | 配置选项 |
|
||||
|
||||
- 出参:`RuptureEventManager`
|
||||
- 返回说明:返回当前类实例。
|
||||
|
||||
### 属性
|
||||
|
||||
| 属性名 | 可见性 | 类型 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `viewer` | `public` | `Viewer` | 用于保存 `viewer` 对应的数据。 |
|
||||
| `scene` | `public` | `THREE.Scene` | 用于保存 `scene` 对应的数据。 |
|
||||
| `events` | `public` | `Map<number, { event: RuptureEvent; mesh: THREE.Mesh; crackModel?: THREE.Group }>` | 用于保存 `events` 的映射关系。 |
|
||||
| `config` | `public` | `Required<RuptureEventConfig>` | 用于保存 `config` 对应的数据。 |
|
||||
| `minTime` | `public` | `number` | 用于保存 `minTime` 对应的数据。 |
|
||||
| `maxTime` | `public` | `number` | 用于保存 `maxTime` 对应的数据。 |
|
||||
| `crackModels` | `public` | `THREE.Group[]` | 用于保存 `crackModels` 的集合数据。 |
|
||||
| `isLoadingModels` | `public` | `boolean` | 用于标记 `isLoadingModels` 的启用状态。 |
|
||||
|
||||
### 方法
|
||||
|
||||
#### `loadCrackModels(): Promise<void>`
|
||||
|
||||
- 作用:预加载裂缝模型
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`Promise<void>`
|
||||
- 返回说明:返回 Promise,解析结果类型为 `void`。
|
||||
|
||||
#### `createCrackModel(event: RuptureEvent, radius: number): THREE.Group<THREE.Object3DEventMap> | undefined`
|
||||
|
||||
- 作用:为破裂球创建裂缝模型
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `event` | `RuptureEvent` | 是 | 破裂事件数据 |
|
||||
| `radius` | `number` | 是 | 球体半径 |
|
||||
|
||||
- 出参:`THREE.Group<THREE.Object3DEventMap> \| undefined`
|
||||
- 返回说明:裂缝模型实例
|
||||
|
||||
#### `addEvent(event: RuptureEvent): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>`
|
||||
|
||||
- 作用:添加单个破裂事件
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `event` | `RuptureEvent` | 是 | 破裂事件数据 |
|
||||
|
||||
- 出参:`THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> \| THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>`
|
||||
- 返回说明:创建的球体网格
|
||||
|
||||
#### `addEvents(events: RuptureEvent[]): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>[]`
|
||||
|
||||
- 作用:批量添加破裂事件
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `events` | `RuptureEvent[]` | 是 | 破裂事件数组 |
|
||||
|
||||
- 出参:`THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> \| THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>[]`
|
||||
- 返回说明:创建的球体网格数组
|
||||
|
||||
#### `removeEvent(time: number): boolean`
|
||||
|
||||
- 作用:删除破裂事件
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `time` | `number` | 是 | 事件时间戳 |
|
||||
|
||||
- 出参:`boolean`
|
||||
- 返回说明:是否删除成功
|
||||
|
||||
#### `clearEvents(): void`
|
||||
|
||||
- 作用:清空所有破裂事件
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `applyFilter(recentMinutes: number | null, energyThreshold: number | null): void`
|
||||
|
||||
- 作用:根据时间窗口和能量阈值过滤事件
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `recentMinutes` | `number \| null` | 是 | 最近N分钟(null表示不过滤) |
|
||||
| `energyThreshold` | `number \| null` | 是 | 能量阈值(null表示不过滤) |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `cancelFilter(): void`
|
||||
|
||||
- 作用:取消过滤,显示所有事件
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `getEvent(time: number): { event: RuptureEvent; mesh: THREE.Mesh; crackModel?: THREE.Group; } | undefined`
|
||||
|
||||
- 作用:获取事件
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `time` | `number` | 是 | 事件时间戳 |
|
||||
|
||||
- 出参:`{ event: RuptureEvent; mesh: THREE.Mesh; crackModel?: THREE.Group; } \| undefined`
|
||||
- 返回说明:事件数据、网格和裂缝模型
|
||||
|
||||
#### `getAllEvents(): Map<number, { event: RuptureEvent; mesh: THREE.Mesh; crackModel?: THREE.Group; }>`
|
||||
|
||||
- 作用:获取所有事件
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`Map<number, { event: RuptureEvent; mesh: THREE.Mesh; crackModel?: THREE.Group; }>`
|
||||
- 返回说明:所有事件的Map
|
||||
|
||||
#### `getVisibleEventCount(): number`
|
||||
|
||||
- 作用:获取当前显示的事件数量
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`number`
|
||||
- 返回说明:可见事件数量
|
||||
|
||||
#### `getTotalEventCount(): number`
|
||||
|
||||
- 作用:获取总事件数量
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`number`
|
||||
- 返回说明:总事件数量
|
||||
|
||||
#### `updateConfig(config: Partial<RuptureEventConfig>): void`
|
||||
|
||||
- 作用:更新配置
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `config` | `Partial<RuptureEventConfig>` | 是 | 新配置 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `createEventSphere(event: RuptureEvent): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>`
|
||||
|
||||
- 作用:创建事件球体
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `event` | `RuptureEvent` | 是 | 破裂事件数据 |
|
||||
|
||||
- 出参:`THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> \| THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>`
|
||||
- 返回说明:球体网格
|
||||
|
||||
#### `mapEnergyToRadius(energy: number): number`
|
||||
|
||||
- 作用:将能量映射到半径
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `energy` | `number` | 是 | 能量值 |
|
||||
|
||||
- 出参:`number`
|
||||
- 返回说明:半径值
|
||||
|
||||
#### `mapTimeToColor(time: number): THREE.Color`
|
||||
|
||||
- 作用:将时间映射到颜色(蓝 → 黄 → 红)
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `time` | `number` | 是 | 时间戳 |
|
||||
|
||||
- 出参:`THREE.Color`
|
||||
- 返回说明:颜色
|
||||
|
||||
#### `updateTimeRange(time: number): void`
|
||||
|
||||
- 作用:更新时间范围
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `time` | `number` | 是 | 时间戳 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `recalculateTimeRange(): void`
|
||||
|
||||
- 作用:重新计算时间范围
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `updateAllColors(): void`
|
||||
|
||||
- 作用:更新所有事件的颜色
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
## 构造示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `RuptureEventManager` 的构造调用。
|
||||
|
||||
## 函数示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `RuptureEventManager` 的公开方法调用。
|
||||
|
||||
## Demo 参考
|
||||
|
||||
### `RuptureEvent`
|
||||
|
||||
以下示例文件中可以看到该 API 的实际调用方式:
|
||||
|
||||
- `packages/demo/src/disasterFormationPanel/TunnelScene/RuptureEventPanel.vue`
|
||||
|
||||
@@ -0,0 +1,278 @@
|
||||
---
|
||||
outline: [2, 3]
|
||||
---
|
||||
|
||||
# SelectionManager
|
||||
|
||||
- 源文件:`packages/sdk/src/manager/SelectionManager.ts`
|
||||
- 文档位置:`packages/docs/api/manager/SelectionManager.md`
|
||||
|
||||
## 类:`SelectionManager`
|
||||
|
||||
- 作用:选择管理器 用于管理场景中物体的选择状态
|
||||
- 继承/实现:`extends Emittery<SelectionManagerEventMap>`
|
||||
|
||||
### 构造函数
|
||||
|
||||
#### `new SelectionManager(viewer: Viewer)`
|
||||
|
||||
- 作用:构造函数
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `viewer` | `Viewer` | 是 | - Viewer 实例 |
|
||||
|
||||
- 出参:`SelectionManager`
|
||||
- 返回说明:返回当前类实例。
|
||||
|
||||
### 属性
|
||||
|
||||
| 属性名 | 可见性 | 类型 | 作用 |
|
||||
| --- | --- | --- | --- |
|
||||
| `selectedObject` | `public` | `Object3D \| null` | 当前被选中的场景对象。 |
|
||||
| `scene` | `public` | `Scene` | 用于保存 `scene` 对应的数据。 |
|
||||
| `eventManager` | `public` | `EventManager` | 用于统一管理 `eventManager` 相关能力。 |
|
||||
| `viewer` | `public` | `Viewer` | 用于保存 `viewer` 对应的数据。 |
|
||||
| `selectionBox` | `public` | `Box3Helper` | 用于显示选中包围盒的辅助对象。 |
|
||||
| `box` | `public` | `Box3` | 复用的包围盒计算对象。 |
|
||||
| `camera` | `public` | `Camera` | 用于保存 `camera` 对应的数据。 |
|
||||
| `sceneHelpers` | `public` | `Scene` | 用于保存 `sceneHelpers` 对应的数据。 |
|
||||
| `transformControls` | `public` | `TransformControls` | 用于保存 `transformControls` 对应的数据。 |
|
||||
| `objectPositionOnDown` | `public` | `Vector3` | 用于保存 `objectPositionOnDown` 对应的数据。 |
|
||||
| `objectRotationOnDown` | `public` | `Euler` | 用于保存 `objectRotationOnDown` 对应的数据。 |
|
||||
| `objectScaleOnDown` | `public` | `Vector3` | 用于保存 `objectScaleOnDown` 对应的数据。 |
|
||||
|
||||
### 访问器
|
||||
|
||||
#### `get isControl(): boolean`
|
||||
|
||||
- 作用:获取 is Control。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`boolean`
|
||||
- 返回说明:返回布尔结果。
|
||||
|
||||
#### `set isControl(value: boolean)`
|
||||
|
||||
- 作用:设置 is Control。
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `value` | `boolean` | 是 | 要写入的新值。 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
### 方法
|
||||
|
||||
#### `init(): void`
|
||||
|
||||
- 作用:初始化选择管理器
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `initSelectionBox(): void`
|
||||
|
||||
- 作用:执行 init Selection Box 初始化逻辑。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `initTransformControls(): void`
|
||||
|
||||
- 作用:执行 init Transform Controls 初始化逻辑。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `startControl(): void`
|
||||
|
||||
- 作用:执行 start Control 相关逻辑。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `endControl(): void`
|
||||
|
||||
- 作用:执行 end Control 相关逻辑。
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setSelectedObject(object: Object3D | null | undefined): void`
|
||||
|
||||
- 作用:设置选择的物体
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `object` | `Object3D \| null \| undefined` | 是 | - 要选择的物体 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `clearSelection(): void`
|
||||
|
||||
- 作用:取消选择
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `selectObjectByUuid(uuid: string): void`
|
||||
|
||||
- 作用:通过 UUID 设置选择的模型
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `uuid` | `string` | 是 | - 模型的 UUID |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `getSelectedObject(): Object3D<Object3DEventMap> | null`
|
||||
|
||||
- 作用:获取当前选中的物体
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`Object3D<Object3DEventMap> \| null`
|
||||
- 返回说明:当前选中的物体,如果没有选中则返回 null
|
||||
|
||||
#### `setTransformMode(mode: 'translate' | 'rotate' | 'scale'): void`
|
||||
|
||||
- 作用:设置控制模式
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `mode` | `'translate' \| 'rotate' \| 'scale'` | 是 | 控制模式:'translate', 'rotate', 'scale' |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `getControlledObject(): Object3D<Object3DEventMap> | null`
|
||||
|
||||
- 作用:获取当前被控制的模型
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`Object3D<Object3DEventMap> \| null`
|
||||
- 返回说明:返回 `Object3D<Object3DEventMap> | null`。
|
||||
|
||||
#### `connect(domElement: HTMLElement): void`
|
||||
|
||||
- 作用:连接到渲染器的 DOM 元素
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `domElement` | `HTMLElement` | 是 | 渲染器的 DOM 元素 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setSpace(space: 'world' | 'local'): void`
|
||||
|
||||
- 作用:设置变换空间
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `space` | `'world' \| 'local'` | 是 | 空间:'world' 或 'local' |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `setTranslationSnap(snap: number): void`
|
||||
|
||||
- 作用:设置平移捕捉
|
||||
|
||||
- 入参:
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `snap` | `number` | 是 | 捕捉距离 |
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
#### `dispose(): void`
|
||||
|
||||
- 作用:销毁选择管理器
|
||||
|
||||
- 入参:无
|
||||
|
||||
- 出参:`void`
|
||||
- 返回说明:无返回值。
|
||||
|
||||
## 构造示例
|
||||
|
||||
- 当前 Demo 中没有直接展示 `SelectionManager` 的构造调用。
|
||||
|
||||
## 函数示例
|
||||
|
||||
### `SelectionManager.setSelectedObject`
|
||||
|
||||
- 来源:`packages/demo/src/hooks/useDebug.ts`
|
||||
|
||||
```ts
|
||||
// 派发树更新
|
||||
bus.triggerSceneTreeUpdate()
|
||||
|
||||
// 选择对象
|
||||
viewer!.selection!.setSelectedObject(box);
|
||||
},
|
||||
exportSceneJSON: () => {
|
||||
viewer.downloadSceneJSON();
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
### `SelectionManager.selectObjectByUuid`
|
||||
|
||||
- 来源:`packages/demo/src/components/SceneTree.vue`
|
||||
|
||||
```ts
|
||||
if (bus.viewer && bus.viewer.selection) {
|
||||
bus.viewer.selection.selectObjectByUuid(option.uuid);
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### `SelectionManager.setTransformMode`
|
||||
|
||||
- 来源:`packages/demo/src/hooks/useDebug.ts`
|
||||
|
||||
```ts
|
||||
// 控制模式
|
||||
controlFolder.add(controlParams, 'controlMode', ['translate', 'rotate', 'scale']).name('控制模式')
|
||||
.onChange((value) => {
|
||||
viewer.selection.setTransformMode(value as 'translate' | 'rotate' | 'scale');
|
||||
});
|
||||
```
|
||||
Reference in New Issue
Block a user