Hi Lars, > 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.
Just a faint idea that happened to come to me is to create an autostart plugin and hook any one of ***Created() signals of pqOjbectBuilder http://www.paraview.org/ParaView3/Doc/Nightly/html/classpqObjectBuilder.html that is considered suitable to detect creation of your exporter and if detected send the strings to the server-side exporter object. I have never tried myself so am totally unsure if it at all works, may be totally wrong. Takuya Takuya OSHIMA, Ph.D. Faculty of Engineering, Niigata University 8050 Ikarashi-Ninocho, Nishi-ku, Niigata, 950-2181, JAPAN From: Lars Bilke <[email protected]> Subject: Re: [Paraview] Get name of object in Pipeline Browser Date: Thu, 18 Aug 2011 12:52:48 +0200 > 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:[email protected]] >> 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: [email protected] >> > (mailto:[email protected]) >> > [mailto:[email protected]] 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 <[email protected] >> > (mailto:[email protected])> 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/[email protected]/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 >> >> >> >> >> > > _______________________________________________ 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://www.paraview.org/mailman/listinfo/paraview
