在我正在进行的一个项目中,我们正在尝试测试line_walk()函数并使用Line_face_circulator。是否有一种方法可以在Line_face_circulator中可视化面部?我遇到的问题是如何从循环器中提取信息。我已经尝试了下面的一些方法,这些方法都不起作用,但是LFC的文档有点难以操作。
Delaunay::Line_face_circulator lfc = dt.line_walk(Point_2(13, 166), Point_2(42, 1761));
std::cout << "linewalk res" << std::endl;
Container container(lfc);
Iterator i = container.begin();
std::cout << typeid(i).name() << std::endl;
//std::cout << (container.begin()->vertex(0)) << std::endl;
std::cout << lfc.is_empty() << std::endl;
//std::cout << lfc->vertex(0) << std::endl;
//std::cout << *i->vertex(0)->point() << std::endl;
while (i != container.end()){
std::cout << *i << std::endl;
i++;
}
请问从line_face_circulator中提取人脸或人脸的顶点是否有特殊的方法?
谢谢!
应该这样做:
Delaunay::Line_face_circulator lfc = dt.line_walk(Point_2(13, 166), Point_2(42, 1761)), start=lfc;
std::vector<Delaunay::Face_handle> visited_faces;
if (lfc!=nullptr)
{
do{
visited_face.push_back(lfc);
} while(++lfc!=start);
}
循环器文档在这里。