对于搞图形的同学们来说,libigl实在是一个很方便的工具库。我自己使用libigl也有一年多了,一开始主要是觉得libigl有写好的可以很容易调用的图形界面,常用的图形操作都能cover,tutorial的使用案例也相对丰富,后来我发现我对libigl的使用太肤浅了,搞图形的同学都知道,一个项目经常需要调用很多图形库,比如CGAL,MATLAB等,libigl使用CMAKE管理项目可以很轻松的调用CGAL,MATLAB,boost,opencv等其他库,基本上就可以cover我们的需求。下面我就讲一下libigl如何通过CMAKE来配置CGAL和MATLAB
LIBIGL配置CGAL
libigl使用CGAL的前提是你自己有CGAL,没有CGAL的同学可以参考我以前的博客win10+ vs2015+QT5.7.0+boost_1_62_0+ CMake3.7.0+cgal-4.9的64位开发环境配置 安装CGAL。
如果你已经安装好了CGAL,打开CMAKE,在libigl分组里面勾选 LIBIGL_WITH_CGAL选项,然后正常configure 和generate
如果成功编译,tutorial里面会多出几个与CGAL相关的项目609_Boolean,610_CSGTree当然这两个项目只是CGAL用法的冰山一角,大家可以在自己的项目里按照自己的需求调用CGAL,有些同学喜欢直接修改tutorial里面的项目,如果想在609,610之外调用CGAL,就需要在项目所在CMakeLists.txt 的target_link_libiraries里面添加${LIBIGL_CGAL_EXTRA_LIBRARIES}, 当然如果参照我的博客创建自己的libigl项目创建了自己的libigl项目的话就不需要这一步额外的操作。
LIBIGL配置MATLAB
同理,想让libigl调用MATLAB,你首先要安装MATLAB。
同样的,打开CMAKE,勾选LIBIGL_WITH_MATLAB 选项,configure和generate。在这里有一点和CGAL不同,对于MATLAB2014 以后的版本,libigl并不能找到MATLAB 的include和library路径,所以第一次编译会出错,需要自己补全路径。
MATLAB_ROOT_DIR是MATLAB的安装目录,MATLAB_INCLUDE_DIR的路径是MATLAB_ROOT_DIR/extern/include
MATLAB_XXX_LIBRARY的路径是MATLAB_ROOT_DIR/extern/lib/win64/microsoft/libXXX.lib。最近发现有使用MATLAB2017的同学编译时不出现MATLBA_INCLUDE_DIR和MATLAB_XXX_LIBRARY这几个entry,经试验通过add entry的方法也是可以的,其中include类型是path,XXX_libiray的类型是filepath
同CGAL,MATLAB示例项目602_matlab,非602改需添加${LIBIGL_CGAL_EXTRA_LIBRARIES}
除此以外,有些同学在编译成功后运行tutorial里面的MATLAB示例时会报找不到XXX.dll 错误,解决方法打开命令提示行输入:
matlab regserver.bat
最后的最后祝大家能愉快的使用libigl,如果有不太明白的可以发邮件给ph1994wh@gmail.com,当然我看不看就不一定了,我这么懒,上帝保佑吧