[Paraview] Get name of object in Pipeline Browser

Lars Bilke lars.bilke at ufz.de
Thu Aug 18 06:52:48 EDT 2011


Dear John,

thanks for your explanations. I roughly got an idea but I have a few questions:
>  
> class vtkMyExporter ..... {
>  
> the usual vtkSetGetStuff and all the write, update, etc
>  
>  void SetMyNameString(const char *) // for a single dataset/actor
>  void SetMyNameStringList(const char **) // for a list of items
> };
>  
>  
>  

This is clear.  
> this gets wrapped by client server etc etc
>  
> In the GUI, you could query the name from the pqXXX stuff, I have  a similar snippet that does this
>  
> pqPipelineSource *source = *it;
>  
>  
>  
>  

I assume I can get *it like this:

QList<pqPipelineSource*> sources_and_filters =
pqApplicationCore::instance()->getServerManagerModel()->findItems<pqPipelineSource*>();  

But where and when do I have to call that code? Because at the moment my plugin is executed by clicking on "File / Export" in ParaView, so I don't have any GUI related code. Everything is on the VTK side.
>  
>  
>  
>  
> std::string  xmlName = source->getProxy()->GetXMLName();
>  
> now you want the name, not the XML name, so use that
> but now you can  
>  
> vtkSMPropertyHelper modified(source->getProxy(), "MyNameString");
>  
>  
> modified.Set(xmlName.c_str()); // or something like that
>  
>  
>  
>  

This sets the name on the proxy.  
>  
>  
>  
>  
> then you need to push your string into the VTK class using something like
>  
>  
> source->getProxy()->UpdateVTKObjects()
>  
>  
> or UpdatePipeline (I forget the correct calls)
>  
>  
>  
>  

But what is that doing?  
>  
>  
>  
> and because your custom SetMyNameString doesn’t trigger a modified in the pipeline, you can carry on with doing the write, but the exporter has the string passed in from he GUI just before it writes. You can pass a string list if you want and make sure the order matches the order of writes so the names match.
>  
>  
>  

I dont understand how the name actually gets to my exporter. And because a list of names is more general I would only pass this list to my exporter and not a single name.


See vtkOpenSGExporter.h / .cxx on Github:  
https://github.com/bilke/pv_opensg_plugin


Thank you very much for your help!!
Lars.
> From: Lars Bilke [mailto:lars.bilke at ufz.de]  
> Sent: 18 August 2011 09:14
> To: Biddiscombe, John A.
> Cc: Utkarsh Ayachit; ParaView Mailliste
> Subject: Re: [Paraview] Get name of object in Pipeline Browser  
>  
> Thanks for your answers!  
>  
>  
>  
> John,
>  
> where on the gui-side do I need to pass that string? Do I need to modify the ParaView sources? Because I only want to write a plugin which should be redistributable to colleagues which have only the ParaView binaries installed.
>  
> And your suggestion assumes that I only want to export one actor right? What I want is to export all actors in one step.
>  
>  
>  
> Lars
>  
>  
> Am Mittwoch, 17. August 2011 um 15:45 schrieb Biddiscombe, John A.:
> > It'd probably be easier to add a method to the vtk-exporter class which accepts a string, and from the gui, pass the string in just before export - because you can get it the proxy name from the gui end. Make sure the SetProxyName(char*...) method doesn't call Modified. (ie don't use SetStringMacro)
> >  
> >  JB
> >  
> >  -----Original Message-----
> >  From: paraview-bounces at paraview.org (mailto:paraview-bounces at paraview.org) [mailto:paraview-bounces at paraview.org] On Behalf Of Utkarsh Ayachit
> >  Sent: 17 August 2011 15:16
> >  To: Lars Bilke
> >  Cc: ParaView Mailliste
> >  Subject: Re: [Paraview] Get name of object in Pipeline Browser
> >  
> >  It's not possible, not from a simple exporter plugin.The exporter
> >  lives entirely in the VTK world without any knowledge of proxies. A
> >  unconventional approach would be explicitly make the exporter plugin
> >  link agains the pqCore library, then you can access the
> >  pqApplicationCore and other singletons (like ProxyManager) and get
> >  information about what sources are present and what their names are
> >  (this is acceptable since exporter work entirely on the client-side).
> >  It is still, however, non trivial to determine which actor corresponds
> >  to what source proxy.
> >  
> >  
> >  
> >  On Wed, Aug 17, 2011 at 3:40 AM, Lars Bilke <lars.bilke at ufz.de (mailto:lars.bilke at ufz.de)> wrote:
> >  
> > Dear ParaView users,
> >  is it possible to programmatically get the name of an object in the Pipeline
> >  Browser? To be more specific I need to get this name from a vtkActor. I am
> >  writing a exporter plugin
> >  (see http://www.mail-archive.com/paraview@paraview.org/msg12939.html) and
> >  want to name my objects in the exported file.
> >  Thanks for your help,
> >  Lars.
> >  
> >  
> >  _______________________________________________
> >  Powered by www.kitware.com (http://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://www.paraview.org/mailman/listinfo/paraview  
> > _______________________________________________
> >  Powered by www.kitware.com (http://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://www.paraview.org/mailman/listinfo/paraview  
>  
>  
>  
>  
>  


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20110818/60a8414a/attachment.htm>


More information about the ParaView mailing list