// superapi 4.1.1版本接口实现
export const fun4_1_1 = {
  /**
   * 开启模型移动
   * @param {string} id 模型实体id
   * @param {number} duaration 移动持续时间
   * @param {number} speed 速度，单位米/秒
   * @param {boolean} loop 是否循环
   * @param {array} path 路径点
   * @param {number} roll 翻滚角
   * @param {number} pitch 俯仰角
   * @param {number} yaw 偏航角
   */
  startEntityMoving(cloudRender, id, duration = null, speed, loop, path, roll = null, pitch = null, yaw = null) {
    if (path.length > 0) {
      var hdata = path.map((item) => {
        return {
          'coord': item.slice(0, 2).toString(),
          'coord_z': item.slice(-1)[0]
        }
      })
      //create path
      var pathjson = {
        'id': 'path_id', //路径id
        'coord_type': 0, //路径中坐标类型(0:经纬度坐标, 1:cad坐标)
        'cad_mapkey': '', //CAD基准点Key值, 项目中约定
        'coord_z_type': 0, //坐标高度类型(0:相对3D世界表面; 1:相对3D世界地面; 2:相对3D世界海拔; 注:cad坐标无效)
        'type': 'none', //路径样式类型(none, solid, arrow, arrow_dot, dashed_dot, arrow_dashed, flash, scan_line, brimless_arrow, railway, railway, square_pipe, dashed_line)
        'points': hdata,
        'color': 'ffffff',
        'pass_color': 'ffffff',
        'width': 1
      }
      cloudRender.SuperAPI('AddPath', pathjson)

      return cloudRender.SuperAPI('CoverToMove', {
        'attach_id': id, //要移动的覆盖物id
        'attach_type': 'scene_effect',
        'be_attach_id': 'path_id', //依附的覆盖物id
        'be_attach_type': 'path', //依附的覆盖物类型 见下表
        'speed': speed, //移动速度 (单位:米/秒)
        'loop': loop || false, //是否循环
        'reverse': false //是否反向移动
      })
    }
  },
  /**
   * 开启镜头移动
   * @param {number} duaration 漫游持续时间
   * @param {number} speed 漫游速度，单位米/秒
   * @param {boolean} loop 是否循环
   * @param {number} armDistance 镜头沿视角到路径的距离，单位米
   * @param {number} roll 翻滚角
   * @param {number} pitch 俯仰角
   * @param {number} yaw 偏航角
   * @param {array} path 路径点
   */
  startThirdPersonRoaming(cloudRender, duaration, speed, loop, armDistance, roll, pitch, yaw, path) {
    var hdata = path.map((item) => {
      return {
        'coord': item.slice(0, 2).toString(),
        'coord_z': item.slice(-1)[0]
      }
    })

    var pathjson = {
      'id': 'move_path_id', //路径id
      'coord_type': 0, //路径中坐标类型(0:经纬度坐标, 1:cad坐标)
      'cad_mapkey': '', //CAD基准点Key值, 项目中约定
      'coord_z_type': 0, //坐标高度类型(0:相对3D世界表面; 1:相对3D世界地面; 2:相对3D世界海拔; 注:cad坐标无效)
      'type': 'none', //路径样式类型(none, solid, arrow, arrow_dot, dashed_dot, arrow_dashed, flash, scan_line, brimless_arrow, railway, railway, square_pipe, dashed_line)
      'points': hdata,
      'color': 'ffffff',
      'pass_color': 'ffffff',
      'width': 1
    }
    cloudRender.SuperAPI('AddPath', pathjson)

    return cloudRender.SuperAPI('SetCameraToMove', {
      'be_attach_id': 'move_path_id',
      'be_attach_type': 'path', //依附的覆盖物类型 见下表
      'speed': speed, //移动速度 (单位:米/秒)
      'loop': loop || false, //是否循环
      'reverse': false, //是否反向移动
      'arm_distance': armDistance, //镜头距覆盖物距离(单位:米)
      'pitch': pitch //镜头俯仰角(0~89)
    })
  }
}
