(msgSize, keyframes, edges, points, referencePointIds, currentFramePose)
| 291 | } |
| 292 | |
| 293 | function updateMapElements(msgSize, keyframes, edges, points, referencePointIds, currentFramePose) { |
| 294 | trackStats.update(); |
| 295 | cameraFrames.updateCurrentFrame(currentFramePose); |
| 296 | viewControls.setCurrentIntrinsic(currentFramePose); |
| 297 | |
| 298 | if (cameraFrames.numValidKeyframe == 0 && keyframes.length == 0) { |
| 299 | return; |
| 300 | } |
| 301 | |
| 302 | for (let point of points) { |
| 303 | let id = point["id"]; |
| 304 | if (point["point_pos"] == undefined) { |
| 305 | pointCloud.removePoint(id); |
| 306 | } |
| 307 | else { |
| 308 | let x = point["point_pos"][0] * GLOBAL_SCALE; |
| 309 | let y = point["point_pos"][1] * GLOBAL_SCALE; |
| 310 | let z = point["point_pos"][2] * GLOBAL_SCALE; |
| 311 | let r = point["rgb"][0]; |
| 312 | let g = point["rgb"][1]; |
| 313 | let b = point["rgb"][2]; |
| 314 | pointCloud.updatePoint(id, x, y, z, r, g, b); |
| 315 | } |
| 316 | } |
| 317 | for (let keyframe of keyframes) { |
| 318 | let id = keyframe["id"]; |
| 319 | if (keyframe["camera_pose"] == undefined) { |
| 320 | cameraFrames.removeKeyframe(id); |
| 321 | } |
| 322 | else { |
| 323 | cameraFrames.updateKeyframe(id, keyframe["camera_pose"]); |
| 324 | } |
| 325 | } |
| 326 | cameraFrames.setEdges(edges); |
| 327 | |
| 328 | |
| 329 | let currentMillis = new Date().getTime(); |
| 330 | if (receiveTimestamp != 0) { |
| 331 | let dt = currentMillis - receiveTimestamp; |
| 332 | if (dt < 2) dt = 2; |
| 333 | let fps = 1000.0 / dt; |
| 334 | // adaptive update rate |
| 335 | //viewControls.updateSmoothness(fps); |
| 336 | console.log((" " + parseInt(msgSize / 1000)).substr(-6) + " KB" |
| 337 | + (" " + (fps).toFixed(1)).substr(-7) + " fps, " |
| 338 | + (" " + pointCloud.nValidPoint).substr(-6) + " pts, " |
| 339 | + (" " + cameraFrames.numValidKeyframe).substr(-6) + " kfs"); |
| 340 | } |
| 341 | receiveTimestamp = currentMillis; |
| 342 | |
| 343 | pointCloud.colorizeReferencePoints(referencePointIds); |
| 344 | |
| 345 | } |
| 346 | |
| 347 | function removeAllElements() { |
| 348 | for (let id in pointCloud.vertexIds) { |
no test coverage detected