ExternalObjectManager
类:外部构件管理器,用于管理和操作Viewer3D中的外部构件。ViewerGIS中请使用Glodon.Bimface.Layer.ExternalObjectLayer。
Constructor
new Glodon.Bimface.Plugins.ExternalObject.ExternalObjectManager(viewer)
构造外部构件管理器
Parameters:
Name | Type | Description |
---|---|---|
viewer | Glodon.Bimface.Viewer.Viewer3D | Viewer3D对象 |
Methods
clear()
移除场景内所有的外部构件
clearAllHierarchy()
解除所有外部构件关联关系
clearGlowEffect()
清空所有外部构件的发光效果
clearHierarchy(fatherId, childrenIds)
解除外部构件关联关系
Parameters:
Name | Type | Description |
---|---|---|
fatherId | String | 需要解绑的父构件ID |
childrenIds | Array | 需要解绑的子构件ID数组,父子构件需为相邻构件,仅支持解除相邻构件关联关系,不支持解除跨层级构件间的关联关系。 |
clone(objectId, name)
克隆指定的外部构件
Parameters:
Name | Type | Description |
---|---|---|
objectId | String | 被克隆的外部构件ID |
name | String | 克隆后的外部构件名称 |
Returns:
Type | Description |
---|---|
String | 克隆后的外部构件ID |
convert(id, hideSourceObject)
根据ID将指定构件转换为外部构件
Parameters:
Name | Type | Description |
---|---|---|
id | Object | ID |
hideSourceObject | Boolean | 是否隐藏源对象,默认为true |
Returns:
Type | Description |
---|---|
Object | 转换完的构件对象 |
getAllObjectIds()
获取所有外部构件的ID
Returns:
Type | Description |
---|---|
Array | 外部构件ID列表 |
getAnimations(id)
获取外部构件的动画对象索引列表
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
Returns:
Type | Description |
---|---|
Array | 返回该外部构件包含的所有动画列表,包含动画索引、名称、动画时长(单位为秒)。例 [ { index: 0, name: "animation1", duration: 1.6 }, { index: 1, name: "animation2", duration: 2.3 } ] |
getAssociatedInfo(id)
根据外部构件ID获取关联的模型/构件ID信息
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
Returns:
Type | Description |
---|---|
Object | 外部构件关联的模型/构件ID信息,例{modelId:'1234',objectId:'5678'} |
getBoundingBoxById(id)
根据ID获取外部构件的包围盒信息
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
Returns:
Type | Description |
---|---|
Object | 包围盒对象 |
getObjectData(id)
获取指定ID外部构件的objectData内容
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
Returns:
Type | Description |
---|---|
Array | 筛选条件数组,每个元素均为key-value对象 |
getObjectIdByName(name)
根据名称获取对应的外部构件ID
Parameters:
Name | Type | Description |
---|---|---|
name | String | 外部构件名称 |
Returns:
Type | Description |
---|---|
String | 外部构件ID |
getPosition(id)
根据ID获取外部构件的局部坐标原点在世界坐标系中的位置
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
Returns:
Type | Description |
---|---|
Object | 外部构件的局部坐标原点在世界坐标系中的位置,如:{ x: 5000, y: 3000, z: -600 } |
getTransformation(id)
获取指定外部构件的坐标变换状态
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
Returns:
Type | Description |
---|---|
Array | 描述模型坐标变换的对象 |
hide(condition)
按条件隐藏外部构件
Parameters:
Name | Type | Description |
---|---|---|
condition | Object | 构件筛选条件 |
isAnimatable(id)
根据ID判断外部构件是否包含动画
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
Returns:
Type | Description |
---|---|
Boolean | 是否包含动画 |
loadObject(option, successCallback, failureCallback)
添加外部构件
Parameters:
Name | Type | Description |
---|---|---|
option | Object | 添加外部构件的选项 |
successCallback | Function | 加载成功的回调函数 |
failureCallback | Function | 加载失败的回调函数 |
offset(id, offset)
根据ID对外部构件在局部坐标系下进行平移
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
offset | Object | 外部构件在局部坐标系下的平移距离,如:{ x: 5000, y: 3000, z: -600 } |
offsetX(id, offsetX)
根据ID对外部构件在局部坐标系的X方向进行平移
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
offsetX | Number | 外部构件在局部坐标系X方向的平移距离 |
offsetY(id, offsetY)
根据ID对外部构件在局部坐标系的Y方向进行平移
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
offsetY | Number | 外部构件在局部坐标系Y方向的平移距离 |
offsetZ(id, offsetZ)
根据ID对外部构件在局部坐标系的Z方向进行平移
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
offsetZ | Number | 外部构件在局部坐标系Z方向的平移距离 |
overrideColor(condition, color)
根据条件给指定外部构件着色
Parameters:
Name | Type | Description |
---|---|---|
condition | Object | 筛选条件 |
color | Glodon.Web.Graphics.Color | 着色颜色 |
pause(id)
根据ID暂停外部构件动画
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
play(id, option)
根据ID播放外部构件动画
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
option | Object | 动画播放设置 |
removeById(id)
根据ID将指定外部构件从场景中移除
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
removeByIds(ids)
根据ID列表将指定外部构件从场景中移除
Parameters:
Name | Type | Description |
---|---|---|
ids | Array | 外部构件ID列表 |
removeGlowEffectById(ids)
根据ID列表移除外部构件的发光效果
Parameters:
Name | Type | Description |
---|---|---|
ids | Array | 外部构件ID列表. |
removeSelection(condition)
根据条件取消外部构件的选中状态
Parameters:
Name | Type | Description |
---|---|---|
condition | Object | 构件筛选条件 |
restoreColor(condition)
根据条件清空外部构件颜色,恢复默认显示
Parameters:
Name | Type | Description |
---|---|---|
condition | Object | 筛选条件 |
rotate(id, rotation)
根据ID将外部构件绕局部坐标系的坐标轴进行旋转
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
rotation | Object | 外部构件绕局部坐标轴的旋转值,如{x:Math.PI/4, y: 0, z: 0} |
rotateOnBasePoint(id, basePoint, axis, radian)
根据自定义基点和旋转轴旋转外部构件,坐标系为世界坐标系
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
basePoint | Object | 旋转中心点坐标 例如:{ x: 5000, y: 3000, z: -600 } |
axis | Object | 旋转轴向量 例如:{ x: 0, y: 0.5, z: -0.6 } |
radian | Number | 旋转弧度值 如Math.PI / 6 |
rotateX(id, radianX)
根据ID将外部构件沿着局部坐标系X轴旋转
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
radianX | Number | 外部构件沿着局部坐标系X轴旋转的弧度值,如Math.PI/4 |
rotateY(id, radianY)
根据ID将外部构件沿着局部坐标系Y轴旋转
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
radianY | Number | 外部构件沿着局部坐标系Y轴旋转的弧度值,如Math.PI/4 |
rotateZ(id, radianZ)
根据ID将外部构件沿着局部坐标系Z轴旋转
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
radianZ | Number | 外部构件沿着局部坐标系Z轴旋转的弧度值,如Math.PI/4 |
scale(id, scale)
根据ID对外部构件在局部坐标系下进行缩放,缩放中心为局部坐标原点
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
scale | Object | 外部构件在局部坐标系下的缩放倍数,如:{ x: 0.5, y: 1.5, z: 1.0 } (x、y、z值不能为0) |
scaleOnBasePoint(id, basePoint, scale)
根据自定义基点和向量缩放外部构件,坐标系为世界坐标系
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
basePoint | Object | 缩放中心点坐标 例如:{ x: 5000, y: 3000, z: -600 } |
scale | Object | 缩放向量 例如:{ x: 1, y: 0.5, z: 0.6 } |
scaleX(id, scaleX)
根据ID将外部构件沿着局部坐标系X轴方向进行缩放,缩放中心为局部坐标原点
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
scaleX | Number | 外部构件沿着局部坐标系X轴方向进行缩放的倍数(不能为0) |
scaleY(id, scaleY)
根据ID将外部构件沿着局部坐标系Y轴方向进行缩放,缩放中心为局部坐标原点
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
scaleY | Number | 外部构件沿着局部坐标系Y轴方向进行缩放的倍数(不能为0) |
scaleZ(id, scaleZ)
根据ID将外部构件沿着局部坐标系Z轴方向进行缩放,缩放中心为局部坐标原点
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
scaleZ | Number | 外部构件沿着局部坐标系Z轴方向进行缩放的倍数(不能为0) |
select(condition)
根据条件选择对应外部构件
Parameters:
Name | Type | Description |
---|---|---|
condition | Object | 构件筛选条件 |
setGlowEffectById(ids, option)
根据ID列表设置外部构件的发光效果
Parameters:
Name | Type | Description |
---|---|---|
ids | Array | 外部构件ID列表 |
option | Object | 发光效果参数 |
setHierarchy(relationships)
设置外部构件关联关系
Parameters:
Name | Type | Description |
---|---|---|
relationships | Object | 设置外部构件之间的关联关系,由Id和children构成的对象,若存在子构件,则在children继续添加该层级;若不存在子构件,则为null。举例如下:{"id":"A","children":[{"id":"B","children":[{"id":"E","children":[ {"id":"J","children":[{"id":"K", "children":null }] },{"id":"I","children":null}]}]}]} |
setObjectData(id, objectData)
设置指定ID外部构件的objectData内容,用于构件筛选
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
objectData | Array | 筛选条件数组,每个元素均为key-value对象 |
setPosition(id, position)
根据ID设置外部构件的局部坐标原点在世界坐标系中的位置
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
position | Object | 外部构件的局部坐标原点在世界坐标系中的位置,如:{ x: 5000, y: 3000, z: -600 } |
setTransformation(id, transformation)
设置指定外部构件的坐标变换状态
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
transformation | Array | 描述模型坐标变换的对象,可通过ExternalObjectManager.getTransformation()获得 |
show()
按条件显示外部构件
stop(id)
根据ID停止播放外部构件动画
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
toLocalPosition(id, option)
根据ID设置世界坐标系中的点和向量,在外部构件局部坐标系中的位置和方向
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
option | Object | 需要转换的配置项 |
Returns:
Type | Description |
---|---|
Object | 世界坐标系下的点和向量,在外部构件的局部坐标系中的位置和方向,例如:{localPosition:{ x: 1000, y: 2000, z: -300 },localVector:{ x: 0, y: 0.5, z: -1 }} |
toWorldPosition(id, option)
根据ID设置在外部构件局部坐标系中的点和向量,在世界坐标系中的位置和方向
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
option | Object | 需要转换的配置项 |
Returns:
Type | Description |
---|---|
Object | 外部构件局部坐标系下的点和向量,世界坐标系中的位置和方向,例如:{worldPosition:{x: 5000, y: 3000, z: -600 },worldVector:{ x: 0, y: 0.5, z: -0.6 }} |
translate(id, translation)
平移外部构件,坐标系为世界坐标系
Parameters:
Name | Type | Description |
---|---|---|
id | String | 外部构件ID |
translation | Object | 平移距离,例如:{ x: 5000, y: 3000, z: -600 } |