跳至主要內容

RomaControl

大约 2 分钟

RomaControl

漫游控件,支持线路、巡检、第一人称模式。

构造

new VT.RomaControl(viewer, {
    // 相机X轴偏移
    offsetX: 0,
    // 相机Y轴偏移
    offsetY: 1.7,
    // 相机Z轴偏移
    offsetZ: 0,

    // 线路漫游配置参数
    // 速度,公里/第小时
    speed: 40, 
    // 是否显示路径
    showPath: false,
    // 线路点位
    points: [],

    // 模型
    model: null,

    // 第一人称漫游参数
    // 移动单位 0.25米
    moveStep: 0.25,

    // 巡检漫游配置参数,线路漫游配置需生效
    inspectionMode: false,
    // 相等距离条件判断,在离目标点位相隔此距离时暂停
    equalDistance: 1.0,
    // 暂停时间
    inspectionPauseTime: 2000, // 巡检停止时间,毫秒

    // 线路漫游模式下的音频播放
    audio: "",
    // 是否自动播放音频
    playAudio: true,
})

属性成员

speed

  • 类型:{Number} 速度

moveStep

  • 类型:{Number} 平移速度

audio

  • 类型:{THREE.Audio} 声音播放器

status

  • 类型:{Integer} 当前状态,0, stop , 1 play, 2 pause

points

  • 类型:{Array} 线路坐标数组,[[x, y, z], [x, y, z]...]

path

  • 类型:{THREE.CatmullRomCurve3} 线路

方法

isPlaying

是否漫游中

  • isPlaying()
  • 类型:Function
  • 参数:无
  • 返回:{Boolean}

isPaused

是否漫游暂停中

  • isPaused()
  • 类型:Function
  • 参数:无
  • 返回:{Boolean}

isStopped

是否漫游处于停止状态

  • isStopped()
  • 类型:Function
  • 参数:无
  • 返回:{Boolean}

pickStartPoint

开始拾取第一人称漫游的起始位置

  • pickStartPoint()
  • 类型:Function
  • 参数:无
  • 返回:无

setPoints

设置漫游线路

  • setPoints(points)
  • 类型:Function
  • 参数:
    • points {Array} [[x, y, z], [x, y, z]...]
  • 返回:无

setAudio

设置音频声音

  • setAudio(audio, callback)
  • 类型:Function
  • 参数:
    • audio {String} 音频地址,格式: mp3、wav
    • callback {Function} 回调方法
  • 返回:无

playAudio

播放音频,需要先设置音频

  • playAudio()
  • 类型:Function
  • 参数:无
  • 返回:无

play

开始漫游

  • play()
  • 类型:Function
  • 参数:无
  • 返回:无

pause

暂停漫游

  • pause()
  • 类型:Function
  • 参数:无
  • 返回:无

stop

停止漫游

  • stop()
  • 类型:Function
  • 参数:无
  • 返回:无

clear

清除漫游

  • clear()
  • 类型:Function
  • 参数:无
  • 返回:无

destory

退出并清除、销毁漫游

  • destory()
  • 类型:Function
  • 参数:无
  • 返回:无

事件

事件名称回调参数事件说明
playing-漫游中
play-开始
pause-暂停
stop-停止
inspection.pause{index, point}巡检暂停

使用示例:

// 漫游中触发
romaControl.addEventListener("playing", () => {
    // 执行代码
});

// 巡检暂停触发
romaControl.addEventListener("inspection.pause", () => {
    // 执行代码
});
上次编辑于:
贡献者: dashun