Viewer3D
类:操作三维场景的类
Constructor
new Glodon.Bimface.Viewer.Viewer3D(viewer3DConfig)
构造三维场景的类
Parameters:
Name | Type | Description |
---|---|---|
viewer3DConfig | Glodon.Bimface.Viewer.Viewer3DConfig | viewer3D的配置项 |
Methods
addBlinkComponentsById(objectIds)
根据构件ID在闪烁状态集合中继续添加构件
Parameters:
Name | Type | Description |
---|---|---|
objectIds | Array | 构件ID数组 |
addEventListener(event, callback)
注册监听事件
Parameters:
Name | Type | Description |
---|---|---|
event | Glodon.Bimface.Viewer.Viewer3DEvent | 监听事件 |
callback | Function | 监听事件的回调函数 |
bringAxisGridsToFront(isEnabled)
使得轴网浮在最上层
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 是否将轴网提到最上层 |
clearAllBlinkComponents()
取消所有构件的闪烁状态
clearBlinkComponentsById(objectIds)
根据构件ID从闪烁状态集合中取消构件的闪烁状态
Parameters:
Name | Type | Description |
---|---|---|
objectIds | Array | 构件ID数组 |
clearIsolation()
取消构件隔离
clearModelIsolation()
取消所有模型的隔离效果
clearRotationCenter()
清除设定的旋转中心
createBoundary(outerRing, innerRing)
通过一系列边界点创建房间边界并返回房间边界Boundary对象
Parameters:
Name | Type | Description |
---|---|---|
outerRing | Array | 房间外边界,格式为[[x1,y1,z1], [x2.y2,z2], ...],首尾不可重复 |
innerRing | Array | 房间内边界,格式为[[x1,y1,z1], [x2.y2,z2], ...],首尾不可重复 |
Returns:
Type | Description |
---|---|
Object | 房间边界Boundary对象 |
Example
// 构造组成房间外边界的点
let outerRing = [
[-8000.000, 20000.000, 0.000],
[7000.000, 20000.000, 0.000],
[7000.000, -12500.000, 0.000],
[18000.000, -12500.000, 0.000],
[18000.000, -21000.000, 0.000],
[-8000.000, -21000.000, 0.000]
];
// 构造组成房间内边界的点,支持多个内边界
let innerRing = [[
[-4600.000, 8000.000, 0.000],
[4100.000, 8000.5000, 0.000],
[4100.000, -12500.000, 0.000],
[-4600.000, -12500.000, 0.000]
]];
// 根据点信息创建房间边界
let roomBoundary = viewer.createBoundary(outerRing, innerRing);
createSnapshotAsync(option, callback)
创建模型快照
Parameters:
Name | Type | Description |
---|---|---|
option | Object | |
callback | Function | 快照回调函数 |
deactivateComponentsById(objectIds)
根据构件ID将构件设置为未激活状态 当构件被设置为未激活的状态后,构件无法被选择、修改颜色与材质、控制可见性(显示、隐藏)、设置隔离效果,用户可以穿透该构件选择其后方的构件、三维标签
Parameters:
Name | Type | Description |
---|---|---|
objectIds | Array | 构件的ID集合,如["x1", "x2"] |
destroy()
销毁场景
enableAxisGridsHover(isEnabled)
是否启用轴网的悬浮效果
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 是否启用 |
enableBlinkComponents(isEnabled)
启用或者禁用构件闪烁
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 是否启用构件闪烁 |
enableContactShadow(isEnabled)
开启/关闭接触阴影效果
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 开启/关闭接触阴影效果 |
enableCoordinateSystem(isEnabled)
是否显示坐标系
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 是否显示坐标系 |
enableDamping(isEnabled)
是否开启阻尼效果
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 设置为 true 开启平移阻尼效果,false 关闭平移阻尼效果 |
enableDoubleClickZoom(isEnabled)
是否开启鼠标双击的zoom行为
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 是否开启鼠标双击的zoom行为 |
enableFullScreen(isEnabled)
设置是否开启全屏模式
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 是否开启全屏模式 |
enableGlowEffect(isEnabled)
是否开启发光效果
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 是否开启发光效果,true为开启,false为关闭 |
enableGravity(isEnabled)
是否开启重力漫游
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 开启或关闭重力漫游 |
enableHitDetection(isEnabled)
是否开启漫游碰撞
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 开启或关闭漫游碰撞 |
enableHover(isEnabled)
设置鼠标悬停效果
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 开启或关闭鼠标悬停效果 |
enableMouseMovePick(isEnabled)
设置鼠标滑动拾取坐标
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 开启或关闭鼠标滑动拾取坐标 |
enableOrbit(isEnabled)
是否允许模型旋转
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 是否允许场景旋转,默认为true |
enableScale(isEnabled)
设置是否允许场景缩放
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 是否允许场景缩放,默认为true |
enableShortcutKey(isEnabled)
是否开启快捷键
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 是否开启快捷键 |
enableSnap(isEnabled)
开启或关闭对象捕捉
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 开启或关闭对象捕捉 |
enableSSAOEffect(isEnabled)
是否开启SSAO效果
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 是否开启SSAO效果,true为开启,false为关闭 |
enableTranslate(isEnabled)
设置是否允许场景平移
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 是否允许场景平移,默认为true |
enableWireframe(isEnabled)
是否开启构件线框
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 是否开启构件线框,默认为true |
exitWalk()
退出漫游模式
getAllModels()
获取所有模型信息
Returns:
Type | Description |
---|---|
Array | 各模型信息,包括模型ID和模型名称 |
getAvatar()
获取第三人称漫游人物形象
getAvatarHeight()
获取漫游人物身高
getBackgroundColor()
获取背景颜色
Returns:
Type | Description |
---|---|
Glodon.Web.Graphics.Color | 获取背景颜色 |
getBlinkComponents()
获取闪烁状态集合中的构件ID数组
Returns:
Type | Description |
---|---|
Array | 构件ID数组 |
getCamera()
获取相机对象
Returns:
Type | Description |
---|---|
Glodon.Bimface.Camera.Camera3D | Viewer3D场景的相机对象 |
getCameraAnimation()
获取模型动画状态
Returns:
Type | Description |
---|---|
Boolean | 开启或者关闭 |
getCameraStatus()
获取当前相机位置信息,用于保存后恢复相机视点
Returns:
Type | Description |
---|---|
Object | 相机位置信息 |
getCollisionByCondition()
获取碰撞检测的构件类型
getComponentsByClientCoordinates(clientCoordinates)
根据屏幕点获取所有的构件ID列表
Parameters:
Name | Type | Description |
---|---|---|
clientCoordinates | Object | 屏幕坐标点 |
Returns:
Type | Description |
---|---|
Array | 构件ID列表 |
getComponentsByRaycaster(startPoint, direction, conditions)
射线检测
Parameters:
Name | Type | Description |
---|---|---|
startPoint | Object | 射线检测起始点,如:{x:50, y:200, z:300} |
direction | Object | 射线方向向量,如:{x:10, y:25, z:5} |
conditions | Array | 构件筛选条件,筛选字段可通过getObjectDataById方法获取 |
Returns:
Type | Description |
---|---|
Array | 按照碰撞顺序返回各构件信息:构件ID、射线与构件相交点、射线起点至相交点的距离,相交点处法向量,单位与场景设置单位一致。如:[{"id":"compontId1","position":{x:600,y:360,z:200},"distance":299.36,"normal":{x:0.6,y:0.8,z:0}},{"id":"compontId2","position":{x:630,y:400,z:210},"distance":320,"normal":{x:1,y:0.9,z:0.5}}] |
getContactShadow()
获取接触阴影效果的配置
Returns:
Type | Description |
---|---|
Object | Object 接触阴影效果的配置项 |
getCurrentRangeofCamera()
获取相机最大活动范围
Returns:
Type | Description |
---|---|
Number | 相机最大活动范围参数 |
getCurrentState()
获取当前模型的浏览状态,用于保存后恢复模型状态
Returns:
Type | Description |
---|---|
Object | 模型浏览状态 |
getCustomHomeview()
获取用户Home视图
Returns:
Type | Description |
---|---|
Object | 用户Home视图 |
getDefaultHomeview()
获取默认Home视图
Returns:
Type | Description |
---|---|
Object | 默认Home视图 |
getDrawingListbyId(fileId, objectId, callback)
根据文件ID和构件ID获取图纸列表
Parameters:
Name | Type | Description |
---|---|---|
fileId | String | 集成模型或单模型的文件ID |
objectId | String | 构件ID |
callback | Function | 获取图纸列表成功后的回调函数 |
getExposureShift()
获取曝光补偿量
Returns:
Type | Description |
---|---|
Number | 获取曝光补偿量 |
getFloorsbyFileId(fileId, callback)
在集成模型中根据文件ID获取子模型的楼层信息
Parameters:
Name | Type | Description |
---|---|---|
fileId | String | 参与集成的子文件ID |
callback | Function | 获取子模型楼层信息的回调函数 |
getGlobalUnit()
获取当前场景的全局单位
Returns:
Type | Description |
---|---|
Glodon.Bimface.Common.Units.LengthUnits | 场景全局单位 |
getLightingMode()
获取当前光照模式
Returns:
Type | Description |
---|---|
String | 光照模式:"Phong"为普通模式,"IBL"为基于图像模式 |
getLineSelectRange()
获取模型线拾取范围
Returns:
Type | Description |
---|---|
Number | 模型线的拾取范围,单位为毫米 |
getMepSystem(fileId, successCallback, failureCallback)
获取模型中的系统拓扑信息
Parameters:
Name | Type | Description |
---|---|---|
fileId | Function | 文件ID |
successCallback | Function | 获取系统拓扑信息成功之后的回调函数 |
failureCallback | Function | 获取系统拓扑信息失败之后的回调函数 |
getMinimumFPS()
获取模型渲染帧率
Returns:
Type | Description |
---|---|
Number | 模型渲染帧率 |
getModel(modelId)
获取模型对象
Parameters:
Name | Type | Description |
---|---|---|
modelId | String | 模型ID,不传则返回默认模型对象 |
Returns:
Type | Description |
---|---|
Glodon.Bimface.Model.BimModel | 指定模型对象 |
getModelBoundaryPoints(modelId)
获取当前模型的边界点对象
Parameters:
Name | Type | Description |
---|---|---|
modelId | String | 指定模型的ModelID |
Returns:
Type | Description |
---|---|
Array | 描述模型边界点的数组 |
getModelSet(successCallback, failureCallback)
获取模型组信息,模型转换时需在配置项中设置"exportSetsTree": true
Parameters:
Name | Type | Description |
---|---|---|
successCallback | Function | 获取模型组信息成功的回调函数 |
failureCallback | Function | 获取模型组信息失败的回调函数 |
getNearestAxisGrids(point3d, fileId, callback)
最近轴网交点的轴线信息及偏移值
Parameters:
Name | Type | Description |
---|---|---|
point3d | Object | 点对象 |
fileId | String | 集成模型的子文件ID,单文件不填,集成模型为必填项 |
callback | Function | 回调函数 |
Example
// 构造三维点对象
let point = { x: 5000, y: 6000, z: -350 };
// 单模型获取指定点最近的轴线
viewer.getNearestAxisGrids(point, '', function(data) {
console.log(data);
});
getRoomManager()
获取房间管理器对象。
Returns:
Type | Description |
---|---|
Glodon.Bimface.Plugins.Rooms.RoomManager | 指定房间管理器对象 |
getViewHouseIsLoaded()
获取ViewHouse是否被加载
Returns:
Type | Description |
---|---|
Boolean | ViewHouse是否被加载 |
getWireframeColor()
获取线框颜色
Returns:
Type | Description |
---|---|
Glodon.Web.Graphics.Color | 线框颜色 |
hideViewHouse()
隐藏ViewHouse
isContactShadowEnabled()
是否开启了接触阴影效果
Returns:
Type | Description |
---|---|
Boolean | isEnabled 是否开启了接触阴影效果 |
isEnableCoordinateSystem()
获取坐标系可见状态
Returns:
Type | Description |
---|---|
Boolean | 坐标系可见状态 |
isEnableHover()
是否开启了鼠标的悬浮效果
Returns:
Type | Description |
---|---|
Boolean | 是否开启了鼠标的Hover效果 |
isEnableIBLBackground()
获取IBL背景的启用状态
Returns:
Type | Description |
---|---|
Boolean | IBL背景的启用状态 |
isEnableOrbit()
是否开启场景旋转
Returns:
Type | Description |
---|---|
Boolean | 是否允许场景旋转 |
isEnableScale()
是否开启场景缩放
Returns:
Type | Description |
---|---|
Boolean | isEnabled 是否允许场景缩放 |
isEnableToggleContextMenuDisplay()
是否开启了右键菜单
Returns:
Type | Description |
---|---|
Boolean | 是否开启了右键菜单 |
isEnableTranslate()
获取是否开启场景平移
Returns:
Type | Description |
---|---|
Boolean | isEnabled 是否允许场景平移 |
isolateModel(modelIds, state)
隔离模型的全部构件,其他模型的全部构件隐藏或半透明
Parameters:
Name | Type | Description |
---|---|---|
modelIds | Array | 模型ID的数组 |
state | Glodon.Bimface.Viewer.IsolateOption | 被隔离构件显示状态,如Glodon.Bimface.Viewer.IsolateOption.MakeOthersTranslucent |
isWireframeEnabled()
是否开启了构件线框
Returns:
Type | Description |
---|---|
Boolean | 是否开启了构件线框 |
loadModel(option)
添加自定义模型ID三维模型
Parameters:
Name | Type | Description |
---|---|---|
option | Object | 加载模型的参数对象 |
lockAxis(axis, range)
锁定相机绕轴旋转范围
Parameters:
Name | Type | Description |
---|---|---|
axis | Glodon.Bimface.Viewer.AxisOption | 暂支持Z轴,Glodon.Bimface.Viewer.AxisOption.Z |
range | Array | 相机沿轴转动时可变化的范围,如[Math.PI / 6, Math.PI / 3],不填则为禁止绕该轴旋转 |
recordCustomHomeview(camera)
保存当前视图为用户Home视图
Parameters:
Name | Type | Description |
---|---|---|
camera | Object | 相机状态,getCameraStatus()返回的对象 |
removeEventListener(event, callback)
注销监听事件
Parameters:
Name | Type | Description |
---|---|---|
event | Glodon.Bimface.Viewer.Viewer3DEvent | 监听事件 |
callback | Function | 监听事件的回调函数 |
removeModel(modelId)
卸载模型
Parameters:
Name | Type | Description |
---|---|---|
modelId | String | 模型ID |
render()
模型渲染,当修改了模型构件的状态,必须手动调用render(),场景才会显示效果,如果同时需要调用多个函数,强烈建议在最后调用一次render()
resize(width, height)
设置场景显示大小
Parameters:
Name | Type | Description |
---|---|---|
width | Number | 设置宽度 |
height | Number | 设置高度 |
restoreWireframeColor()
恢复线框默认颜色
setAvatar(avatar)
设置第三人称漫游人物形象
Parameters:
Name | Type | Description |
---|---|---|
avatar | Glodon.Bimface.Viewer.AvatarOption | 设置第三人称漫游时的人物形象,例如Glodon.Bimface.Viewer.AvatarOption.ConstructionWorker |
setAvatarHeight(avatarHeight)
设置漫游人物身高
Parameters:
Name | Type | Description |
---|---|---|
avatarHeight | Number | 设置漫游人物的身高 |
setBackgroundColor(color1, color2)
设置场景背景颜色
Parameters:
Name | Type | Description |
---|---|---|
color1 | Glodon.Web.Graphics.Color | 设置背景颜色 |
color2 | Glodon.Web.Graphics.Color | 设置背景颜色,可不填(color2存在时即是由上而下的线性渐变背景颜色) |
Example
viewer3D.setBackgroundColor(
new Glodon.Web.Graphics.Color(88, 103, 133, 1),
new Glodon.Web.Graphics.Color(229, 234, 242, 1)
);
setBlinkColor(color)
设置闪烁状态的构件颜色
Parameters:
Name | Type | Description |
---|---|---|
color | Glodon.Web.Graphics.Color | 闪烁颜色,当参数为空时,恢复为默认颜色 |
setBlinkComponentsById(objectIds)
根据构件ID设置多个构件为闪烁状态集合
Parameters:
Name | Type | Description |
---|---|---|
objectIds | Array | 构件ID数组 |
setBlinkIntervalTime(time)
设置闪烁状态颜色变化的间隔时间
Parameters:
Name | Type | Description |
---|---|---|
time | Number | 间隔时间(毫秒),参数为空时恢复为默认,参数 time <= 0 时无效 |
setCameraAnimation(isEnabled)
设置模型动画,目前仅支持setCameraStatus()、setState()、 setView()三种API
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 开启或关闭模型动画 |
setCameraStatus(camera, callback)
根据相机位置信息恢复视点
Parameters:
Name | Type | Description |
---|---|---|
camera | Object | 相机状态,getCameraStatus()返回的对象 |
callback | Function | 相机还原之后回调函数,可不写 |
setCollisionByCondition(condition)
设置碰撞检测的构件类型
Parameters:
Name | Type | Description |
---|---|---|
condition | Object | 条件参数 |
setContactShadow(option)
设置接触阴影效果的配置
Parameters:
Name | Type | Description |
---|---|---|
option | Object | 接触阴影效果的配置项 |
setDampingFactor(factor)
设置平移阻尼效果参数
Parameters:
Name | Type | Description |
---|---|---|
factor | Number | 阻尼效果级别,取值范围[1, 10],数值与平移阻尼效果成正比, 数值越大,阻尼效果越明显,默认值 10 |
setExplosionExtent(extent)
设置爆炸效果离散系数
Parameters:
Name | Type | Description |
---|---|---|
extent | Number | 爆炸系数,取值范围[0, 3] |
setExposureShift(compensation)
设置曝光补偿量,默认为0,大于0为增加曝光,小于0为减少曝光
Parameters:
Name | Type | Description |
---|---|---|
compensation | Number | 曝光补偿量,取值范围[-1, 1] |
setFlySpeedRate(rate)
设置漫游倍速
Parameters:
Name | Type | Description |
---|---|---|
rate | Number | 倍速,取值范围[0, 25] |
setLineSelectRange(distance)
设置模型线的拾取范围
Parameters:
Name | Type | Description |
---|---|---|
distance | Number | 模型线的拾取范围,默认值为30,单位为毫米 |
setMaximalRangeofCamera(far)
限制相机最大活动范围
Parameters:
Name | Type | Description |
---|---|---|
far | Number | 相机与模型最远距离参数,范围(0, ∞),默认值为2 |
setMinimumFPS(fps)
设置模型渲染帧率
Parameters:
Name | Type | Description |
---|---|---|
fps | Number | 设置模型渲染帧率,取值范围[4, 60] |
setNavigationMode(navigationMode, options)
设置导航模式
Parameters:
Name | Type | Description |
---|---|---|
navigationMode | Glodon.Bimface.Viewer.NavigationMode3D | 设置导航模式,如Glodon.Bimface.Viewer.NavigationMode3D.Walk |
options | Object | 配置参数 |
setOrbitButton(orbitButton)
设置鼠标旋转习惯(左键旋转 / 右键旋转)
Parameters:
Name | Type | Description |
---|---|---|
orbitButton | Glodon.Bimface.Viewer.OrbitButton | 设置左右鼠标,进行模型旋转,如Glodon.Bimface.Viewer.OrbitButton.Left |
setRotationCenter(point)
设置模型旋转中心
Parameters:
Name | Type | Description |
---|---|---|
point | Glodon.Web.Geometry.Point3d | 模型旋转中心,缺省值为场景中心 |
setSnapMode(snapMode)
设置对象捕捉模式
Parameters:
Name | Type | Description |
---|---|---|
snapMode | Glodon.Bimface.Viewer.SnapMode | 捕捉模式 |
setState(state, callback)
还原场景状态
Parameters:
Name | Type | Description |
---|---|---|
state | Object | 场景状态,通过getCurrentState(),get3DViewStates(callback)等方法获取的状态 |
callback | Function | 场景还原之后回调函数,可不写 |
setView(view, callback)
设置模型标准视角
Parameters:
Name | Type | Description |
---|---|---|
view | Glodon.Bimface.Viewer.ViewOption | 设置模型视角,如Glodon.Bimface.Viewer.ViewOption.Home |
callback | Function | 视角还原之后回调函数,可不写 |
setWireframeColor(color)
设置线框颜色
Parameters:
Name | Type | Description |
---|---|---|
color | Glodon.Web.Graphics.Color | 线框颜色 |
showViewHouse()
显示ViewHouse
startAutoRotate(speed, point)
开始自动旋转模型
Parameters:
Name | Type | Description |
---|---|---|
speed | Number | 速率,正负表示方向,数值表示速度 |
point | Object | 旋转中心,{x: 0, y: 0, z: 0},缺省值为场景中心 |
stopAutoRotate()
停止自动旋转模型
toggleContextMenuDisplay(isEnabled)
切换右键菜单响应
Parameters:
Name | Type | Description |
---|---|---|
isEnabled | Boolean | 开启或关闭右键菜单响应 |
updateContactShadow()
更新接触阴影效果
updateSceneBoundingBox()
更新场景包围盒
zoomIn()
模型放大
zoomOut()
模型缩小