import { Cesium } from '../../../namespace'
import { isVisible } from '../../utils/Coordinate'
import { panelDom } from '../../utils/PostRender'
/**
* 场景渲染后立即触发事件类
* @class
*/
class PostRender {
/**
* 构造函数
* @param {Viewer} viewer 地图场景
*/
constructor(viewer) {
this._viewer = viewer
}
/**
* 注册要在引发事件时执行的回调函数
* @param {Function} listener 引发事件时要执行的函数
* @returns {Function} 一个函数,在调用时将删除此事件侦听器
*/
addEventListener(listener) {
return this._viewer.scene.postRender.addEventListener(listener)
}
/**
* 注销以前注册的回调
* @param {Function} listener 要取消注册的函数
* @returns {Boolean} 是否已删除,true-侦听器已被删除; false-侦听器和范围未向事件注册。
*/
removeEventListener(listener) {
return this._viewer.scene.postRender.removeEventListener(listener)
}
/**
* DOM元素跟随
* @param {HTMLElement} dom DOM元素对象
* @param {Cartesian3} position Dom元素绑定坐标,笛卡尔坐标系
* @param {DomOptions} [options] DOM跟随对象参数,包括视角偏移和最高可视距离设置
* @returns {Function} 移除回调函数,在调用时将删除此事件侦听器
*/
domFollow(dom, position, options) {
const render = panelDom(this._viewer, dom, position, options)
return render
}
}
export default PostRender