libigl具有与键盘交互的功能(Interaction With Keyboard And Mouse),它有一些默认的按键,当运行一个libigl项目时,会跳出以下窗口,窗口自动输出的内容中介绍了libigl的默认按键:
比如上图中的“L”键,功能是Toggle wireframe(切换线框),其实功能就是hide/show edges(隐藏或显示网格),比如下面两幅图,一开始有网格,点击libigl viewer窗口后,按一下“L”后网格消失,再按一下“L”,网格会重新出现
有的按键的功能可以重复定义,比如按键“L”,libigl已对其默认定义了隐藏/显示网格的功能,但本人在自己程序中加上以下代码,按键“L”将同时具有隐藏/显示网格的功能和本人自定义的功能:
if (key == 'L' || (unsigned int)key == 76) {
//绘制完整的原始网格模型(在超像素分割的基础上进行二次分割的结果)
for (int mesh_id = 0; mesh_id < viewer.data_list.size(); mesh_id++) {
viewer.selected_data_index = mesh_id;
viewer.data().clear(); //把模型网格和代理平面网格全部清除
}
igl::jet(RR, true, Color2);
viewer.data().set_mesh(V_norm, F);
viewer.data().set_colors(Color2);
}
同理,经本人实验,按键“A”、“D”、“F”、“I”、“O”也可以重复定义,但本人重复定义按键“T”时曾遇到过网格显示异常的问题,所以本人还是不建议对libigl的默认按键进行重复定义。
此外,对于:和;这两个按键,其作用分别是在网格上显示顶点的编号和面的编号,必须打开键盘上的大写锁才能正常使用,其中:要在打开键盘上的大写锁后点击libigl窗口,再按shift键和:键,就能显示面的编号了。注意:要将网格单位化,变成在单位直径(半径为0.5)球内的模型,libigl窗口上显示的网格顶点的编号和面的编号位置才能和网格上点和面的位置比较接近
; Toggle vertex labels
: Toggle face labels