| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /**
- * 关键帧点云数据获取 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)
- }
|