我正在尝试使用C 3D Reconstruction Library从Tango设备获取网格。
在Mesh Building Functions中,有要使用的流程的摘要,它表明我必须多次调用Tango3DR_update
函数,然后调用Tango3DR_extractFullMesh
以获得网格。
问题是Tango3DR_update
需要Tango3DR_PointCloud
对象,但我不知道该如何获得。
我可以使用Tango3DR_PointCloud
创建一个空的Tango3DR_PointCloud_create
,但是在任何地方都看不到如何用真实数据填充它。
有谁知道如何获得这个物体?
还是有人知道使用此库是否有任何示例/示例代码?我没找到
谢谢,
奥伦
最佳答案
您应该从在OnXYZijAvailableRouter中收到的TangoXYZij中填充Tango3DR_PointCloud。姿势结构也是一样。
// -- 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#调用。
关于c++ - 探戈计划-3D重建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37540336/