<div dir="ltr">So far so good: I am now able to generate a series of variants of my unstructured grid - like what I wanted.<div><br></div><div>Mostly - because there are still two things that I do not seem to get right - a smaller and a bigger problem:</div><div><br></div><div>1) the smaller: I can choose between two variants, but both are not 100% what I would like most:</div><div><br></div><div>a) the user presses "Apply" - and only the first step of the animation is calculated and displayed. Only by using the "Play" button all the other steps are first calculated, then shown. Pressing "Play" again replays the same sequence that is now read from a cache.</div><div><br></div><div>b) once the user presses "Apply", the entire animation is calculated - without any display! - and then the final step is shown. This I achieve by using the "request->Set(vtkStreamingDemandDrivenPipeline::CONTINUE_EXECUTING(), 1);" command accordingly. The user needs to press "Play" now in order to see the animation (now from the cache).</div><div><br></div><div>Ideally I would like to see variant b), but with displaying all the intermediate steps immediately. However, I have the impression that the CONTINUE_EXECUTING flag is maybe not really for that purpose, but more for "writers" that need to produce one step after another. Since that intermediate display is not possible, then variant a) looks like the better one.</div><div><br></div><div>Short: If there is no solution to this problem currently, I could live with variant a) (and hopefully also my users)</div><div><br></div><div>2) the more difficult problem is the fact that even if the user defines a number of steps initially (in the property panel), my algorithm is such that it is not guaranteed that the number of steps can be achieved at all! Like: the user asks for 10 steps, but only 7 can be found - no more solutions after that. And what is worse: this cannot be seen in advance, without doing the entire calculation! Which can take some time...</div><div><br></div><div>What I could do so far is stopping after 7 steps, even changing the maximum number of steps for the moment to that value, but this is then not reflected in the properties panel: that shows still 10! And also the "player" runs are still assuming that 10 steps should be produced. Ok, this can be somehow handled in the RequestData function in the Algorithm class, but it would be nicer if that Algorithm class could "tell" the properties panel and the player that it is now about 7 steps, not 10 any more!</div><div><br></div><div>In other words: Can I not only retrieve values from the properties panel in the Algorithm class, but also send some values back and have them adapted in the widgets there?</div><div><br></div><div>I see that I still have a lot to learn about the workings of the different parts and their interaction in the VTK/Paraview world, but in a few weeks I will hopefully get much more insight during two days of training at Kitware in Lyon ;-)</div><div><br></div><div>Regards,</div><div>Cornelis</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-09-20 7:43 GMT+02:00 Cornelis Bockemühl <span dir="ltr"><<a href="mailto:cornelis.bockemuehl@gmail.com" target="_blank">cornelis.bockemuehl@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks a lot Utkarsh!<div><br></div><div>It looks like your hints are giving me the theoretical background. Additionally I realized that the vtkTimeSourceExample.h/cpp provides a simple skeleton for implementing a filter that produces a time series programmatically in C++.</div><div><br></div><div>Not finished yet, but I think I am on the right track now!</div><div><br></div><div>Regards, Cornelis</div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-09-19 15:58 GMT+02:00 Utkarsh Ayachit <span dir="ltr"><<a href="mailto:utkarsh.ayachit@kitware.com" target="_blank">utkarsh.ayachit@kitware.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Check out Section 13.2.2 in the ParaView Users Guide. It describes<br>
steps needed for a Python Programmable Source that produces time.<br>
That's pretty much the same thing you'd need to do in your temporal<br>
filter.<br>
<br>
A bit more background is available here:<br>
<a href="https://blog.kitware.com/streaming-in-vtk-time/" rel="noreferrer" target="_blank">https://blog.kitware.com/strea<wbr>ming-in-vtk-time/</a><br>
<br>
Utkarsh<br>
<div><div class="m_4477583190208958649h5"><br>
On Mon, Sep 18, 2017 at 10:33 AM, Cornelis Bockemühl<br>
<<a href="mailto:cornelis.bockemuehl@gmail.com" target="_blank">cornelis.bockemuehl@gmail.com</a><wbr>> wrote:<br>
> Dear Paraview/VTK programmers,<br>
><br>
> Right now I need to write a filter for Paraview that takes an "unstructured<br>
> grid" as input and generates a time series as an output. I.e. a series of<br>
> unstructured grids, derived from the first, with many points and data<br>
> remaining the same and a few changing, including changing a few attribute<br>
> values of cells and also changing the number of cells. No absolute time is<br>
> required, so the steps can simply be numbered 0...1...2 etc.<br>
><br>
> At this moment I am a bit lost about where to start for learning to do such<br>
> a thing, so I would be happy with some starter: "look into ...<br>
> documentation/tutorial" or "look into this .... source code"!<br>
><br>
> The only possibility I see at this moment is to generate the unstructured<br>
> grids timestep by timestep, write them as a series of VTK files with an<br>
> index number in the file name, and then load it into Paraview.<br>
><br>
> However, since Paraview can read such a sequence completely into memory -<br>
> why should not my filter also do the same? But what is then what Paraview<br>
> has in memory: a sequence of objects with timestamps somehow assigned?<br>
><br>
> With this I would have the question of how I can assign a timestamp to an<br>
> unstructured grid?<br>
><br>
> Also the method of writing files first, then reading them seems a bit<br>
> inefficient in terms of memory management: In my specific case a big number<br>
> of data would remain the same, so they could be shared like they are also<br>
> shared along a pipeline of filters - with unchanged arrays just being<br>
> referenced and not copied.<br>
><br>
> One more thing that I found out when trying to analyze the can example: If I<br>
> read it from that can.ex2 file each one of the time steps has an explicit<br>
> time value assigned - some very small number like 0.000<something>. If I<br>
> write the object to a VTK file in full ASCII format in order to analyze it I<br>
> do not find anywhere these time numbers. And if I read back the can example<br>
> from the resulting can*.vtm series of files, the time stamps have<br>
> disappeared and I see only 1...2...3 etc. Not a problem in my case (as<br>
> already said above), but it leaves me again with the question of how to<br>
> assign "time" to my data programmatically: In the VTK files the only<br>
> indication seems to be the run index number of the file and subfolder names!<br>
><br>
> So again: I would be happy with some helpful hints about where I can get<br>
> more information about the subject, either explained or from sourcecode<br>
> study!<br>
><br>
> Thanks and regards,<br>
> Cornelis<br>
><br>
> --<br>
> Cornelis Bockemühl<br>
> Basel, Schweiz<br>
><br>
</div></div>> ______________________________<wbr>_________________<br>
> Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at<br>
> <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensou<wbr>rce/opensource.html</a><br>
><br>
> Search the list archives at:<br>
> <a href="http://markmail.org/search/?q=Paraview-developers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=<wbr>Paraview-developers</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://public.kitware.com/mailman/listinfo/paraview-developers" rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/paraview-develope<wbr>rs</a><br>
><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_4477583190208958649gmail_signature" data-smartmail="gmail_signature">Cornelis Bockemühl<br>Basel, Schweiz<br></div>
</div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Cornelis Bockemühl<br>Basel, Schweiz<br></div>
</div>