core/render/PostRender.js

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