--- 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` | 用于保存 `icons` 的映射关系。 | | `textureLoader` | `public` | `THREE.TextureLoader` | 用于保存 `textureLoader` 对应的数据。 | ### 方法 #### `addIcon(iconOrId: Icon | string, textureUrl?: string, position?: THREE.Vector3, size: number = 1): THREE.Sprite` - 作用:添加图标 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `iconOrId` | `Icon \| string` | 是 | 图标实例或图标唯一标识 | | `textureUrl` | `string` | 否 | 精灵图纹理URL(当第一个参数是ID时使用) | | `position` | `THREE.Vector3` | 否 | 图标位置(当第一个参数是ID时使用) | | `size` | `number` | 否 | 图标大小(当第一个参数是ID时使用) | - 出参:`THREE.Sprite` - 返回说明:添加的精灵图实例 #### `removeIcon(id: string): boolean` - 作用:删除图标 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `id` | `string` | 是 | 图标唯一标识 | - 出参:`boolean` - 返回说明:是否删除成功 #### `getIcon(id: string): THREE.Sprite | undefined` - 作用:获取图标 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `id` | `string` | 是 | 图标唯一标识 | - 出参:`THREE.Sprite \| undefined` - 返回说明:精灵图实例或undefined #### `getAllIcons(): Map>` - 作用:获取所有图标 - 入参:无 - 出参:`Map>` - 返回说明:图标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` 的公开方法调用。