[Paraview] PV4.1, Custom Dock Widget: How to automatically add a glyph3d filter after loading data ?

Florian Hoffmann florian.hoffmann at inutech.de
Wed Sep 17 09:51:20 EDT 2014


Dear Utkarsh,

Thanks. That did help.
So I am having now:

...

vtkSMPropertyHelper(glyph,  "Source").Set(getSphereSource(glyph));

     //  "scalar"  =  0

     //  "vector"  =  1

     //  "vector_comp"  =  2

     //  "off"     =  3

     vtkSMPropertyHelper(glyph,  "ScaleMode",true).Set(0);

     vtkSMPropertyHelper(glyph,  "ScaleFactor",true).Set(1.0);

     //  0  or  1:  1=using  vector  property  for  orientation

     vtkSMPropertyHelper(glyph,  "Orient",true).Set(0);

     //  "All  Points"  =  0

     vtkSMPropertyHelper(glyph,  "GlyphMode",true).Set(0);


All of the above work, except the ScaleFactor setter. The scale factor 
is odd anyway: in the GUI a value of 1.8 appears by default (even though 
according to the doc it should be 1.0) . Any clue ?

Last question: How do I gain access to the GlyphSource(=SphereSource) 
object in order to use the .SetRadius(1.0) function on it ?
It is not clear to me whether it needs to be accessed through a 
vtkSMPropertyHelper or through a proxy ?


Thanks

Florian




Am 17.09.2014 um 14:29 schrieb Utkarsh Ayachit:
> Click on the "?" button on the ParaView UI with the filter active.
> That'll take you a page that will list all such "properties" available
> on the filter. Additionally, you can look at these xml files[1].
> Locate the proxy using the group/name and then you'll have the details
> for properties on it.
>
> Utkarsh
>
> [1] https://github.com/Kitware/ParaView/tree/master/ParaViewCore/ServerManager/SMApplication/Resources
>
>
> On Wed, Sep 17, 2014 at 5:22 AM, Florian Hoffmann
> <florian.hoffmann at inutech.de> wrote:
>> Dear Utkarsh,
>>
>> thanks a lot. I made a small mistake during cmake configuration. It works
>> fine.
>>
>> Question: Where can I find the "keywords" for
>>
>> vtkSMPropertyHelper(...)
>>
>> For example you used:
>>
>>   vtkSMPropertyHelper(cylinder, "Resolution").Set(18);
>>
>>
>> I would like to setup the glyph's settings in a similar fashion. For
>> example:
>>
>> // your code
>> ...
>>
>> // Create and initialize the glyph filter
>>
>> vtkSMSourceProxy* glyph =
>> vtkSMSourceProxy::SafeDownCast(pxm->NewProxy("filters", "Glyph"));
>>
>> controller->PreInitializeProxy(glyph);
>> vtkSMPropertyHelper(glyph, "Input").Set(cylinder);
>> vtkSMPropertyHelper(glyph, "Source").Set(getSphereSource(glyph));
>>
>>
>> // what I would like to add to the glyph's settings
>> vtkSMPropertyHelper(glyph, "Scale Factor").Set(1.0);
>> vtkSMPropertyHelper(glyph, "Scale Mode").Set(scalar);
>> vtkSMPropertyHelper(glyph, "Masking").Set(All_points);
>> ...
>>
>> cylinder->UpdateVTKObjects();
>> ...
>>
>>
>> For example I tried "ScaleFactor" and "Scale Factor" but they do not seem to
>> work.
>>
>> what are the data types for the .Set() functions ? For example in the case
>> of Masking ? Where can I find the C++ masking options and its data type to
>> be used with vtkSMPropertyHelper ? Or do you suggest another way of
>> accessing these properties ?
>>
>> Thank you very much.
>>
>> Florian
>>
>>
>>
>> Am 16.09.2014 um 17:55 schrieb Utkarsh Ayachit:
>>
>> Not entirely sure why. I just built that same with ParaVIew git/master
>> and it built fine for me. What OS is this? Can you attach
>> CMakeCache.txt from ParaView build as well as the plugin build?
>>
>> Utkarsh
>>
>> On Tue, Sep 16, 2014 at 11:26 AM, Florian Hoffmann
>> <florian.hoffmann at inutech.de> wrote:
>>
>> I have the file there as well but nevertheless during compilation of the
>> Plugin it cannot be found.
>> Do you have any idea why this might be the case ?
>>
>>
>> Thanks.
>>
>> Florian
>>
>>
>> Mit freundlichen Grüßen
>> --
>> Dr.-Ing. Florian Hoffmann
>> inuTech GmbH                   Phone    : +49-(0)911-323843-22
>> Fuerther Strasse 212         Fax        : +49-(0)911-323843-43
>> 90429 Nuernberg               E-Mai l   : florian.hoffmann at inutech.de
>> Germany                            Internet  : http://www.inutech.de
>>
>> inuTech GmbH
>> Sitz / Registered Office: Nuernberg
>> Handelsregister / Companies' Register: AG Nürnberg HRB Nr. 19026
>> Geschäftsführer / Managing Director: Frank Vogel
>>
>> *****************************************************************
>> DIFFPACK - THE NEW GENERATION OF SIMULATION-SOFTWARE!
>>
>> Go to http://www.diffpack.com to read the details
>> *****************************************************************
>>
>> Am 16.09.2014 um 14:43 schrieb Utkarsh Ayachit
>> <utkarsh.ayachit at kitware.com>:
>>
>> It's under "ParaVIewCore/ServerManager/Rendering/" in the ParaVIew source[1]
>>
>> Utkarsh
>>
>> [1]
>> https://github.com/Kitware/ParaView/blob/master/ParaViewCore/ServerManager/Rendering/vtkSMParaViewPipelineControllerWithRendering.h
>>
>> On Tue, Sep 16, 2014 at 8:11 AM, Florian Hoffmann
>> <florian.hoffmann at inutech.de> wrote:
>>
>> Dear Utkarsh,
>>
>> thank you very much for your fast reply and the provided example.
>> I compiled PV4.2RC2 from source and just tried to compile your example.
>> Nevertheless I receive a compilation error complaining that the file
>>
>> vtkSMParaViewPipelineControllerWithRendering.h
>>
>> cannot be found.
>> Where is this file supposed to be residing ?
>>
>> Thank you.
>>
>> Best regards,
>>
>> Florian
>>
>>
>>
>> Am 15.09.2014 um 17:16 schrieb Utkarsh Ayachit
>> <utkarsh.ayachit at kitware.com>:
>>
>> Attached is an example based on ParaView 4.2-RC1. As it shows, you
>> cannot directly use VTK objects to create visualization pipelines in
>> ParaView. While this can surely be done with 4.1 or earlier, I'd
>> suggest basing off 4.2, if possible since it simplified a lot of this
>> initialization.
>>
>> Utkarsh
>>
>> On Mon, Sep 15, 2014 at 10:23 AM, Florian Hoffmann
>> <florian.hoffmann at inutech.de> wrote:
>>
>> I would like to automatically add a glyph filter and render the correctly
>> scaled spheres after the user has opened a file in my custom dock widget.
>> I created a DockWidget using the example in /examples/Plugins/DockWidget.
>> When pressing a button a specific file is being opened for the user by the
>> following calls:
>>
>> void on_button_clicked()
>> {
>>        QString xdmfFile = "C:\\..\\unknown_case.xdmf";
>>
>>    QStringList visuFiles;
>>
>>    visuFiles.append(xdmfFile);
>>
>>    pqPipelineSource* pqPlinesource =
>> pqLoadDataReaction::loadData(visuFiles);
>>
>>    pqPlinesource->updatePipeline();
>>
>>   // TODO:
>>   // add spherical glyph for loaded polyData
>>   // scale spherical glyphs by a scalar attribute/property
>>   // render glyphs
>>
>> }
>>
>> I would like to include that the code automatically adds spherical glyphs
>> and renders them for the data just loaded.
>>
>> I tried the following code but I am not sure if it works
>>
>>                vtkSMProxy *myProxy = pqPlinesource->getProxy();
>>
>>        vtkObjectBase *myObject = myProxy->GetClientSideObject();
>>
>>        vtkAlgorithm *myvtkAlgo = vtkAlgorithm::SafeDownCast(myObject);
>>
>>        vtkGlyph3D *myspheres =  vtkGlyph3D::New();
>>
>>        myspheres->SetSourceConnection(myvtkAlgo->GetOutputPort());
>>
>>
>>
>> In case this is supposed to work, how can I now update the pipeline and
>> render the spheres using C++ PV core functionality ? (The user should also
>> see the result in the pipeline browser dock of the GUI).
>>
>> In case my approach is totally wrong, what would be the right way of
>> handling this situation ?
>>
>> Thank you.
>>
>> Best regards,
>>
>> Florian
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the ParaView Wiki at:
>> http://paraview.org/Wiki/ParaView
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/paraview
>>
>> <DockWidget.tar.gz>
>>
>>
>>
>>
>>
>> --
>> Mit freundlichen Grüßen
>> --
>> Dr.-Ing. Florian Hoffmann
>> inuTech GmbH		Phone	 : +49-(0)911-323843-22
>> Fuerther Strasse 212	Fax	 : +49-(0)911-323843-43
>> 90429 Nuernberg		E-Mai l	 : florian.hoffmann at inutech.de
>> Germany		        Internet : http://www.inutech.de
>>
>> inuTech GmbH
>> Sitz / Registered Office: Nuernberg
>> Handelsregister / Companies' Register: AG Nürnberg HRB Nr. 19026
>> Geschäftsführer / Managing Director: Frank Vogel
>>
>> *****************************************************************
>> DIFFPACK - THE NEW GENERATION OF SIMULATION-SOFTWARE!
>>
>> Go to http://www.diffpack.com to read the details
>> *****************************************************************

-- 
Mit freundlichen Grüßen
--
Dr.-Ing. Florian Hoffmann
inuTech GmbH		Phone	 : +49-(0)911-323843-22
Fuerther Strasse 212	Fax	 : +49-(0)911-323843-43
90429 Nuernberg		E-Mai l	 : florian.hoffmann at inutech.de
Germany		        Internet : http://www.inutech.de

inuTech GmbH
Sitz / Registered Office: Nuernberg
Handelsregister / Companies' Register: AG Nürnberg HRB Nr. 19026
Geschäftsführer / Managing Director: Frank Vogel

*****************************************************************
DIFFPACK - THE NEW GENERATION OF SIMULATION-SOFTWARE!

Go to http://www.diffpack.com to read the details
*****************************************************************

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview/attachments/20140917/d6441080/attachment-0001.html>


More information about the ParaView mailing list