ParaView C++ 插件开发(五)示例

插件开发的例子都在源码中的Examples/Plugins文件夹中。

添加一个数据源插件

ParaView中本身带有多个数据源插件,并且被构建成ParaView的一部分。要将这样的插件添加到ParaView构建中,将它添加到ParaView/Plugins目录是目前唯一支持的机制。

一般情况下,用户应该在ParaView源码外单独构建自己的插件。但是当使用静态库构建ParaView时,将需要构建的插件添加到ParaView源码中能够保证该插件能够使用静态构建方式执行,除此之外没有其他能够使用静态库编译的插件开发方式。

在插件的代码目录中,ParaView会搜索一个名字为paraview.plugin的文件,该文件中提供了ParaView关于该插件的相关信息。这个文件包含如下内容:

# Comments are allowed
NAME
  PluginName
DESCRIPTION
  A description of the plugin. This text is attached to the CMake option to build this plugin.
REQUIRES_MODULES
  # List of VTK modules required by the code contained in the plugin.
  # This allows ParaView to build the full set of requested modules
  # if the plugin is being built.
  VTK::CommonCore

如果通过打开CMake选项PARAVIEW_PLUGIN_ENABLE_PluginName开启插件(自动启动或者手动启动),那么CMake会在paraview.plugin同级目录中寻找CMakeLists.txt。该文件中包含paraview_add_plugin命令,以及构建该插件需要的其他库。

静态链接程序中的插件

可以在编译时将插件导入到基于ParaView的应用程序中。当静态构建基于ParaView的应用程序时,这是从插件引入组件的唯一选择。当静态构建时(即,将BUILD_SHARED_LIBS设置为false),ParaView将通过插入必要的PV_PLUGIN_IMPORT_INIT和PV_PLUGIN_IMPORT宏来自动链接和加载通过CMake启用的插件。

下面的代码展示了PV_PLUGIN宏,该宏用于静态加载插件。

# define PARAVIEW_BUILDING_PLUGIN
# include "vtkPVPlugin.h"

// Adds required forward declarations
PV_PLUGIN_IMPORT_INIT(MyFilterPlugin)
PV_PLUGIN_IMPORT_INIT(MyReaderPlugin)

class MyMainWindow : public QMainWindow
{
  // ...
};

MyMainWindow::MyMainWindow(...)
{
  // ... after initialization ...
  
  // Calls relevant callbacks to load the plugins and update the GUI/Server-Manager
  PV_PLUGIN_IMPORT(MyFilterPlugin)
  PV_PLUGIN_IMPORT(MyReaderPlugin)
}

更详细的代码请参考ParaView源码中的Examples文件夹

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值