[Paraview] Object Panel <-> Model Communication
Michael Jackson
mike.jackson at bluequartz.net
Sat Jan 3 20:27:24 EST 2009
Try taking a look at this post:
http://www.paraview.org/pipermail/paraview/2008-November/010217.html
it might help explain further what you will need to do.
_________________________________________________________
Mike Jackson mike.jackson at bluequartz.net
BlueQuartz Software www.bluequartz.net
Principal Software Engineer Dayton, Ohio
On Jan 3, 2009, at 5:29 PM, Nehme Bilal wrote:
>
> Hi,
>
> I am trying to use "DoubleArrayInformationHelper" to get a
> vtkDoubleArray from server side and show it in my filter GUI.
> XML code:
>
> <DoubleVectorProperty
> name="volumesArray"
> command="GetVolumesArray"
> information_only="1">
> <DoubleArrayInformationHelper/>
> </DoubleVectorProperty>
>
> C++:
> vtkDoubleArray* GetVolumesArray()
> {
> return this->volumesArray;
> }
> The current code don't show anything in the GUI.
> I would like to see the content of volumesArray in a Table, List or
> a Tree widget.
>
> How can I do that ?
>
> Nehme
>
>
>
>> From: Utkarsh Ayachit <utkarsh.ayachit at kitware.com>
>> Subject: Re: [Paraview] Object Panel <-> Model Communication
>> To: rafaelmarch3 at yahoo.com
>> Cc: paraview at paraview.org
>> Date: Tuesday, December 16, 2008, 2:17 PM
>>
>> To get back "values" from the server, you can use either
>> "information
>> properties" or "information objects".
>>
>> Information properties are properites with information_only="1" set
>> in
>> the XML (eg. in Servers/ServerManager/Resources/rendering.xml the
>> "Camera" proxy has "CameraPositionInfo" as an information
>> property).
>> Such properties need an "InformationHelper" which knows how to obtain
>> the values from the server. For simple Get*() methods, you can use
>> the
>> <SimpleDoubleInformationHelper/> or <SimpleIntInformationHelper />
>> etc. based on the type of the property. Complex information helpers
>> can be written as well. Look at
>> TimeStepsInformationHelper
>> (vtkSMTimeStepsInformationHelper.h|cxx) as an example.
>>
>> Information objects are used to get data from server which cannot be
>> simply put in a property for example information about the data
>> object
>> produced by a filter (vtkPVDataInformation). These are
>> vtkPVInformation subclasses. You can create you own vtkPVInformation
>> subclass that knows how to collect information and then
>> serialize/deserialize it for transfer to the client from the server
>> (if needed). To gather such information, one uses
>> vtkProcessModule::GatherInformation(vtkIdType connectionID,
>> vtkTypeUInt32 serverFlags, vtkPVInformation* info, vtkClientServerID
>> id) where "id" is vtkSMProxy::GetID() returned for the proxy from
>> which you want to collect the information.
>>
>> In your case, information property may be an easier solution -- if I
>> understand your problem correctly.
>>
>> There is a pqServerManagerModel instance
>> accessible as
>> pqApplicationCore::instance()->getServerManagerModel() that can be
>> used to access sources/filters their representations, views etc. Take
>> a look at Qt/Core/pqServerManagerModel.h for the API. That should
>> help
>> you access the visualization pipeline.
>>
>> "How to get, for instance, the ids of the nodes which are displayed
>> after the application of a filter to the model ?"
>> Not sure I understand what you mean by that. Can you please
>> elaborate?
>>
>> Utkarsh
>>
>> On Tue, Dec 16, 2008 at 6:38 AM, Rafael March
>> <rafaelmarch3 at yahoo.com>
>> wrote:
>>> Hey all,
>>>
>>> I'm programming a filter with a custom Object Panel,
>>> and I'm feeling a little bit lost about the ParaView architecture
>>> and
>>> code design.
>>>
>>> My great problem is the comunication between the
>>> Object Panel and the Model. I know I can't have a pointer to my
>>> vtkUnstructuredGrid displayed, 'cause they are not
>> necessarily at the
>>> same machine or process. I also know that I'm able to send
>>> information
>>> to the model through properties, since I can get the vtkSMProxy in
>>> my
>>> panel. But what about the way back ? Is there a way to send
>>> information
>>> from the display view to the panel ? How can I display in a
>>> QTable, for
>>> instance, the nodes of my model which have some property equals to
>>> 1 ?
>>>
>>> Another problem is the Visualization Pipeline: is there a way to
>> "walk" on
>>> it ?
>>> I mean, if I have a filter name, am I able to get the the filter no
>>> matter where it is in the Pipeline ?
>>>
>>> Sorry for the mess with the questions. I hope I made it clear and
>>> someone
>>> can help me ! :)
>>>
>>> Regards,
>>> Rafael March.
>>>
>>> _______________________________________________
>>> ParaView mailing list
>>> ParaView at paraview.org
>>>
>> http://www.paraview.org/mailman/listinfo/paraview
>>>
>>>
>>
>>
>> _______________________________________________
>> ParaView mailing list
>> ParaView at paraview.org
>> http://www.paraview.org/mailman/listinfo/paraview
>>
>>
>
>
> _______________________________________________
> ParaView mailing list
> ParaView at paraview.org
> http://www.paraview.org/mailman/listinfo/paraview
More information about the ParaView
mailing list