我尝试使用C 3D Reconstruction Library从Tango设备获取网格物体。
在Mesh Building Functions中有一个要使用的流的摘要,其中显示我必须多次调用Tango3DR_update
函数,然后调用Tango3DR_extractFullMesh
来获取网格。< / p>
问题是Tango3DR_update
需要Tango3DR_PointCloud
这个我不知道如何获得的对象。
我可以使用Tango3DR_PointCloud
创建一个空的Tango3DR_PointCloud_create
,但我无法在任何地方看到我如何用真实数据填充它。
有谁知道如何获得这个对象? 或者任何人都知道是否有任何使用此库的示例/示例代码?我找不到任何东西。
谢谢, 奥伦
答案 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#调用。