[Paraview-developers] How to plug into paraview his own writer ?

houssen houssen at ipgp.fr
Thu Jun 11 10:16:48 EDT 2015


 

I followed 2 tutorials
(http://www.itk.org/Wiki/ParaView/Plugin_HowTo#Writing_Plugins,
http://www.kitware.com/media/html/WritingAParaViewReaderPlug-in.html)
but I feel like I missed some steps : this is not working.

I need to
"catch" data (I can see in 2D/3D paraview viewer) to write them into a
specific file format. I am looking for the minimal (simplest) way to do
this : the only writer input is the file name, then I would like to
understand how to "get data from" paraview (from inside a vtk object I
guess ?), then I just will have to do the easy part which is to write
data to a specific format. 

My understanding is that, first I need a
CMakeLists.txt like :
~> more CMakeLists.txt 
FIND_PACKAGE ( ParaView
REQUIRED )
INCLUDE ( ${PARAVIEW_USE_FILE} )
ADD_PARAVIEW_PLUGIN (
myWriter "1.0" SERVER_MANAGER_XML myWriter.xml SERVER_MANAGER_SOURCES
myWriter.cpp )

In the same directory, I need a (minimal) myWriter.xml
file that looks like :
~> more myWrite.xml

<ServerManagerConfiguration>
 <ProxyGroup name="WRITERS">
 <SourceProxy
name="MYWRITER" class="MYWRITER" label="my writer">
 <Documentation
short_help="my own writer"/>
 <InputProperty>
 <StringVectorProperty
name="FileName" command="SETFILENAME" number_of_elements="1"/>

</InputProperty>
 <Hints>
 <WriterFactory extensions="mw"
file_description="my written file"/>
 </Hints>
 </SourceProxy>

</ProxyGroup>
</ServerManagerConfiguration>
My understanding is that
somehow the xml subscribes my for a specific callback I am called back
on the "save data" button is cliked in the GUI.

Still, in this same
directory, I have myWriter.cpp and myWriter.hpp : how to implement them
?
1. The myWriter class must define and implement a SetFileName method
because of the <StringVectorProperty> xml tag in myWriter.xml : right ?
wrong ?
 This is the file name (including file path) one sets in the GUI
: right ? wrong ?
2. myWriter is supposed to derive from another class :
which one ? where to find it ?
3. How the myWriter implementation will
"catch" data in paraview ? Which method to override / re-implement ?

When I am called from paraview (triggered by the click on "save data"
button), I guess I am called on a specific method "myWriter::cbMethod (
vtkXXX * pDataInParaviewViewer )"
 What is this method ? 

Also, at this
step, I export
PV_PLUGIN_PATH=/mnt/users/houssen/Documents/solve-rel/paraview. When I
run paraview and use the "save data" button I get this :
Generic
Warning: In
/.../Programs/ParaView/ParaView-v4.3.1-source/ParaViewCore/ServerManager/Core/vtkSMWriterFactory.cxx,
line 135
writers : myWriter has no input property.
... But I have an
<InputProperty> tag in the xml : what's wrong ?

Can somebody help me on
this ?

Franck

Note : I run Ubuntu and paraview-4.3
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview-developers/attachments/20150611/2f5d42b3/attachment-0001.html>


More information about the Paraview-developers mailing list