本文中的代码资源(即“附件”)下载地址:
提取码: cueq
2 添加自定义插件
MeshLab中主要插件类型有 filter plugins, i/o plugins, edit plugins,这里只介绍如何添加 filter plugins。
下面这个链接是官方给出的例子:Meshlab Developmentmeshlab.sourceforge.net
简单来说就是 MeshLab 提供了 MeshFilterInterface 这个接口,我们只需要继承这个接口实现自己的类即可。
附件中的 “random_displacement.zip” 实现了一个让每个 vertex 产生随机位移的插件,具体代码如下:
// random_displacement.h#ifndef RANDOM_DISPLACEMENT_H#define RANDOM_DISPLACEMENT_H
#include
class RandomDisplacementPlugin : public QObject, public MeshFilterInterface
{
Q_OBJECT
MESHLAB_PLUGIN_IID_EXPORTER(MESH_FILTER_INTERFACE_IID)
Q_INTERFACES(MeshFilterInterface)
public:
enum { FP_MOVE_VERTEX };
RandomDisplacementPlugin();
virtual QString pluginName(void) const { return "RandomDisplacementPlugin"; }
QString filterName(Filt