[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