[Paraview] custom filter doesn't update property in the Paraview UI
corinna reuter
corinnareuter75 at gmail.com
Tue Aug 2 10:55:34 EDT 2016
Dear Cory, dear all,
sorry for not getting back to this topic earlier. Your solution works
perfectly for the described problem. When I create e.g. a SphereSource and
attach the TestProperty filter with its NPoints property, this property is
initialized with the correct number of points in the sphere.
However, I have another requirement which is that the property should also
be updated, when the input changes. I thought the same mechanism for
initializing the property would also take care of updating the property
upon modified input.
If I modify the SphereSource from above by changing the ThetaResolution or
PhiResolution, then vtkTestProperty::RequestInformation is called as
expected, and the included print statements show the new number of points,
but the NPoints property won't reflect this new value. Do you know of
another short trick, how to fix this? You mentioned that you found the need
for a domain element in the ParaView source code. Where exactly? If I
understand what prevented the property initialization, I might be able to
find out what prevents the update.
The complete filter sources, updated to include your corrections, are
attached.
Thank you
Corinna
On Fri, Jul 15, 2016 at 6:02 PM, Cory Quammen <cory.quammen at kitware.com>
wrote:
> Corinna,
>
> Looking at the ParaView source code, I believe that vector properties
> with information properties must have a domain associated with them.
> In your case, you can add an IntRangeDomain with only a minimum
> defined:
>
> <IntVectorProperty name="NPoints"
> command="SetNPoints"
> information_property="NPointsInfo"
> number_of_elements="1"
> default_values="42">
> <IntRangeDomain name="range" min="0" />
> </IntVectorProperty>
>
> 0 seems like a reasonable minimum in your case.
>
> Keep your information_only property as it is. You'll need to change
> where your NPoints is set, though - moving this to the
> RequestInformation() member function should work.
>
> Cory
>
>
> On Fri, Jul 15, 2016 at 3:46 AM, corinna reuter
> <corinnareuter75 at gmail.com> wrote:
> > Cory, thanks for mentioning the TIFFReader proxy. I tried to modify my
> > previously attached code such that the NPoints property links to a
> > NPointsInfo property. Plus, I have removed the call
> > "this->SetNPoints(nset);" inside vtkTestProperty::RequestData as
> suggested
> > by Utkarsh. The NPoints property is still showing the default "42",
> though,
> > and not initialized or updated from the number of points of the input
> > dataset. I am obviously missing another important step in addition to
> > changing the xml definitions, but which one?
> >
> > Here is the detailed modification of TestProperty.xml compared to the
> > earlier attachment:
> > replace
> > "<IntVectorProperty name="NPoints"
> > command="SetNPoints"
> > number_of_elements="1"
> > default_values="42">
> > </IntVectorProperty>"
> > with:
> > "<IntVectorProperty name="NPoints"
> > command="SetNPoints"
> > information_property="NPointsInfo"
> > number_of_elements="1"
> > default_values="42">
> > </IntVectorProperty>
> > <IntVectorProperty name="NPointsInfo"
> > command="GetNPoints"
> > information_only="1">
> > <SimpleIntInformationHelper />
> > </IntVectorProperty>"
> >
> > Thank you
> > Corinna
> >
> >
> > On Thu, Jul 14, 2016 at 5:24 PM, Cory Quammen <cory.quammen at kitware.com>
> > wrote:
> >>
> >> Corinna,
> >>
> >> Take a look at the TIFFReader SourceProxy in
> >> ParaViewCore/ServerManager/SMApplication/Resources/readers.xml. It has
> >> a CustomDataSpacing property that enables you to set voxel spacing,
> >> and has an associated information property CustomDataSpacingInfo that
> >> should initially populate the spacing property when the reader is
> >> created.
> >>
> >> HTH,
> >> Cory
> >>
> >> On Thu, Jul 14, 2016 at 11:17 AM, Utkarsh Ayachit
> >> <utkarsh.ayachit at kitware.com> wrote:
> >> >> I'll check the meaning of MTime.
> >> >
> >> > See the implementation of vtkSetMacro() in vtkSetGet.h. Every time the
> >> > value changes, it call this->Modified() which updates the MTime. Since
> >> > VTK is a demand-driven pipeline, changes to MTime is what tells the
> >> > pipeline that the algorithm has been modified and needs reexecution.
> >> > If one modifies the MTime in RequestData() (the method called by the
> >> > pipeline to process the input to produce output), the pipeline thinks
> >> > the filter is always dirty and that can cause unexpected side effects.
> >> >
> >> >
> >> >> I'd need something similar to an image resize filter. The output size
> >> >> should
> >> >> be identical to the input size, when the filter is first attached to
> >> >> the
> >> >> input. The output size should be shown in the UI and the user should
> be
> >> >> able
> >> >> to enter a different output size.
> >> >
> >> > This is possible. Let me see if I can find you a simple example for
> >> > the same. I'll get back to you.
> >> > _______________________________________________
> >> > 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
> >> >
> >> > Search the list archives at: http://markmail.org/search/?q=ParaView
> >> >
> >> > Follow this link to subscribe/unsubscribe:
> >> > http://public.kitware.com/mailman/listinfo/paraview
> >>
> >>
> >>
> >> --
> >> Cory Quammen
> >> R&D Engineer
> >> Kitware, Inc.
> >
> >
>
>
>
> --
> Cory Quammen
> R&D Engineer
> Kitware, Inc.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview/attachments/20160802/51346914/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: TestProperty.new.tgz
Type: application/x-gzip
Size: 2720 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/paraview/attachments/20160802/51346914/attachment.bin>
More information about the ParaView
mailing list