DataManager
数据管理器类,负责管理3D场景中的所有数据,包括3D模型、2D对象和属性数据。提供统一的数据存储、检索和管理接口,支持多种类型的数据管理。
类定义
javascript
class DataManager extends EventManager属性
models
模型数组,包含所有模型对象。
类型: {Array<Model>}
只读: true
instancedGroups
实例化对象组数组,包含所有实例化对象组。
类型: {Array<Group>}
只读: true
mergedGroups
合并对象组数组,包含所有合并对象组。
类型: {Array<Group>}
只读: true
singleGroups
单对象组数组,包含所有单对象组。
类型: {Array<Group>}
只读: true
models2D
2D对象迭代器,包含所有CSS2D对象的迭代器。
类型: {IterableIterator<CSS2DObject>}
只读: true
properties
属性数据迭代器,包含所有属性数据的迭代器。
类型: {IterableIterator<*>}
只读: true
方法
addModel(key, model)
添加3D模型到数据管理器,将Model对象添加到数据管理器中。
参数:
key{string} - 模型的唯一标识键model{Model} - 要添加的Model对象
示例:
javascript
// 添加3D模型
dataManager.addModel('building', model);add2DModel(key, css2DObject)
添加2D对象到数据管理器,将CSS2DObject对象添加到数据管理器中。
参数:
key{string} - 2D对象的唯一标识键css2DObject{CSS2DObject} - 要添加的CSS2DObject对象
示例:
javascript
// 添加2D标签
dataManager.add2DModel('label', css2DObject);addPropertyData(key, value)
添加属性数据到数据管理器,将属性数据添加到数据管理器中。
参数:
key{string} - 属性数据的唯一标识键value{*} - 要添加的属性数据,可以是任意类型
示例:
javascript
// 添加属性数据
dataManager.addPropertyData('metadata', {
name: 'Building A',
type: 'Commercial'
});使用场景
数据存储
- 统一管理3D模型数据
- 存储2D标签和UI元素
- 管理各种属性数据
数据检索
- 根据键值快速查找数据
- 提供类型安全的数据访问
- 支持数据的批量操作
数据管理
- 支持数据的添加、获取、移除
- 提供数据的批量清理功能
- 防止数据重复和冲突
资源清理
- 提供完整的数据清理功能
- 防止内存泄漏
- 支持对象的生命周期管理
相关链接
- Model - 模型基类
- SceneManager - 场景管理器
- Viewer3D - 主引擎类