ParaView C++ 插件开发(三)Reader & Writer

读取器(Reader)

通过插件的方式添加一个新的读取器和添加滤波器基本相同。唯一的区别是不需要指明读取器需要添加到GUI上的类别。

对于ParaView的最新版本,我们不需要为GUI指定任何特殊内容,因为读取器的所有细节都可以在读取器的XML代理定义中获得。

对于ParaView版本4.0.1和更早的版本,我们需要XML来定义这个阅读器可以处理什么文件扩展名。这个XML (MyReaderGUI.xml)如下所示:

<ParaViewReaders>
  <Reader name="MyPNGReader" extensions="png" file_description="My PNG Filters">
  </Reader>
</ParaViewReaders>

MyPNGReader.xml文件示例如下。几乎在所有的情况下,都需要有一个SetFileName函数。你也已指定其他属性,就像滤波器插件一样。提示部分(Hints)是将文件扩展名与客户端上的阅读器关联起来所必需的。ReaderFactory提示是客户端用来从源码中标识读取器的信息。

<ServerManagerConfiguration>
  <ProxyGroup name="sources">
    <SourceProxy name="MyPNGReader" class="vtkMyPNGReader" label="PNGReader">
      <Documentation long_help="Read a PNG file" short_help="Read a PNG file">
      </Documentation>
      <StringVectorProperty
          name="FileName"
          animateable="0"
          command="SetFileName"
          number_of_elements="1">
        <FileListDomain name="filters"/>
        <Documentation>
          This property specifies the file name for the PNG reader.
        </Documentation>
      </StringVectorProperty>

      <StringVectorProperty
          name="RegistrationName"
          number_of_elements="1"
          default_values="MyCustomName"
          command="GetRegistrationName"
          panel_visibility="never"
          information_only="1">
        <Documentation>
          This property specify the pipeline name for the reader, using the return value of 'command'. 
          If 'command' attributes is not specified, it uses 'default_value'.
        </Documentation>
      </StringVectorProperty>

      <Hints>
        <ReaderFactory extensions="png" file_description="PNG File Format"/>
      </Hints>
    </SourceProxy>
  </ProxyGroup>
</ServerManagerConfiguration>

读取器的CMake代码和滤波器的基本相同。唯一区别是插件需要传递REQUIRED_ON_SERVER到paraview_add_plugin函数,因为服务器端需要将该读取器处于可用状态。

CMakeLists.txt的格式如下。其中vtkMyPNGReader.cxx是读取器的源代码,MyPNGReader.xml是服务端配置xml文件。

find_package(ParaView REQUIRED)
include(${PARAVIEW_USE_FILE})
add_paraview_plugin(MyReader "1.0"
  SERVER_MANAGER_XML MyPNGReader.xml
  SERVER_MANAGER_SOURCES vtkMyPNGReader.cxx
  REQUIRED_ON_SERVER)

请注意,这是针对ParaView的最新版本。对于ParaView 4.0.1和更早版本,CMakeLists.txt文件需要包含GUI xml,以便将阅读器与文件扩展名相关联。代码如下:

find_package(ParaView REQUIRED)
include(${PARAVIEW_USE_FILE})
add_paraview_plugin(MyReader "1.0"
  SERVER_MANAGER_XML MyPNGReader.xml
  SERVER_MANAGER_SOURCES vtkMyPNGReader.cxx
  GUI_RESOURCE_FILES MyReaderGUI.xml)

如果您想让您的读者正确使用文件系列,请参考 file series animation了解详情。

使用CMake生成项目并编译项目后,在ParaView中进入工具>管理插件/扩展。在Local Plugins下,单击Load New并浏览刚刚创建的共享库文件。现在,您应该可以在“打开文件”对话框的“文件类型”列表中看到新的文件类型。

输出器(Writer)

和输入器插件一样,输出器插件需要告诉ParaView它所支持的输出扩展名。对于最新版本的ParaView,该步骤是在服务器端XML文件中的Hints标签下完成:

<Hints>
  <WriterFactor extensions="tif" file_description="My Tiff Files"/>
</Hints>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值