Project Tango - 3D重建

时间:2016-05-31 08:15:16

标签: c++ google-project-tango 3d-reconstruction

我尝试使用C 3D Reconstruction Library从Tango设备获取网格物体。 在Mesh Building Functions中有一个要使用的流的摘要,其中显示我必须多次调用Tango3DR_update函数,然后调用Tango3DR_extractFullMesh来获取网格。< / p>

问题是Tango3DR_update需要Tango3DR_PointCloud这个我不知道如何获得的对象。 我可以使用Tango3DR_PointCloud创建一个空的Tango3DR_PointCloud_create,但我无法在任何地方看到我如何用真实数据填充它。

有谁知道如何获得这个对象? 或者任何人都知道是否有任何使用此库的示例/示例代码?我找不到任何东西。

谢谢,   奥伦

1 个答案:

答案 0 :(得分:2)

您应该从OnXYZijAvailableRouter收到的TangoXYZij中填写Tango3DR_PointCloud。与pose结构相同。

// -- point cloud
Tango3DR_PointCloud cloud;
cloud.num_points = xyz_ij->xyz_count;
cloud.points = new Tango3DR_Vector4[cloud.num_points];
for (int i = 0; i < cloud.num_points; ++i) {
  cloud.points[i][0] = xyz_ij->xyz[i][0];
  cloud.points[i][1] = xyz_ij->xyz[i][1];
  cloud.points[i][2] = xyz_ij->xyz[i][2];
  // last is confidence
  cloud.points[i][3] = 1;
}
cloud.timestamp = xyz_ij->timestamp;

(一旦完成,请不要忘记delete [] cloud.points)

我能找到的唯一官方例子是Unity examples。他们使用C API,但是从C#调用。