/**
 * 关键帧点云数据获取 Worker
 * 功能：异步获取关键帧点云数据（Protobuf 格式）
 */

/**
 * 监听主线程消息
 */
self.onmessage = function(event) {
  const { url, index } = event.data
  
  console.log(`[KeyframeWorker] 获取点云 ${index}:`, url)
  
  // 发送请求获取点云数据
  fetch(url, {
    method: 'GET',
    headers: {
      'Content-Type': 'application/x-protobuf',
      'Accept': 'application/x-protobuf'
    }
  })
  .then(response => {
    if (!response.ok) {
      throw new Error(`HTTP ${response.status}: ${response.statusText}`)
    }
    return response.arrayBuffer()
  })
  .then(arrayBuffer => {
    // 返回 Uint8Array 给主线程
    // 主线程会使用 Protobuf 解析这个数据
    const uint8Array = new Uint8Array(arrayBuffer)
    console.log(`[KeyframeWorker] 点云 ${index} 获取成功:`, uint8Array.length, 'bytes')
    self.postMessage({ type: 'success', data: uint8Array, index: index })
  })
  .catch(error => {
    console.error(`[KeyframeWorker] 点云 ${index} 获取失败:`, error)
    self.postMessage({ type: 'error', error: error.message, index: index })
  })
}

/**
 * 错误处理
 */
self.onerror = function(error) {
  console.error('Worker error:', error)
}

