<div dir="ltr"><div>Well, after moving the writer to my RequestData function, I found that the output is not properly copying the multi-block dataset for some reason. I have to try and figure that out...<br><br></div>Kevin E. Dean<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 30, 2015 at 4:22 PM, Dean, Kevin <span dir="ltr"><<a href="mailto:kevin.dean@decisionsciencescorp.com" target="_blank">kevin.dean@decisionsciencescorp.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>So I got a little further. Instead I used a multi block data set to load my polydata(s). When i update my pipeline, all the information gets transferred to ParaView except for the block data. I set up a writer that records the data, and that information is exactly the same as the streaming data (but it can actually render the blocks). So, I guess you could say I am perplexed, ha. Do you have any suggestions?<br><br></div>Thanks Man!<br><br></div>Kevin E. Dean<br><br></div>here's the snippet:<br><br>void MultiBlockDataSetDDSReader::UpdatePipeline(vtkMultiBlockDataSet* mb)<br>{<span class=""><br> printf("%s\n", __PRETTY_FUNCTION__);<br><br></span> MultiBlockDataSetDDSReader::UpdateInformation();<br> vtkStreamingDemandDrivenPipeline* executive = vtkStreamingDemandDrivenPipeline::SafeDownCast(MultiBlockDataSetDDSReader::GetExecutive());<br><br> this->multi_block = mb;<br><br> for (int i = 0; i < this->multi_block->GetNumberOfBlocks(); i++)<br> {<br> executive->SetUpdateExtent(0, i, this->multi_block->GetNumberOfBlocks(), 0);<br> MultiBlockDataSetDDSReader::Update();<br> }<br>}<br><br></div>and my request data:<br>/*----------------------------------------------------------------------------*/<br>int MultiBlockDataSetDDSReader::RequestData(<br> vtkInformation *vtkNotUsed(request),<br> vtkInformationVector **inputVector,<br> vtkInformationVector *outputVector)<br>{<span class=""><br> printf("%s\n", __PRETTY_FUNCTION__);<br></span> vtkInformation* outInfo = outputVector->GetInformationObject(0);<br> vtkMultiBlockDataSet *output = vtkMultiBlockDataSet::GetData(outputVector);<br><br> if (this->multi_block != NULL)<br> {<br> output->ShallowCopy(this->multi_block);<br><br> vtkStreamingDemandDrivenPipeline::CONTINUE_EXECUTING();<br> }<br><br> return 1;<br>}<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jun 26, 2015 at 9:30 AM, Dean, Kevin <span dir="ltr"><<a href="mailto:kevin.dean@decisionsciencescorp.com" target="_blank">kevin.dean@decisionsciencescorp.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Ok, so I looked through this yesterday and tried implementing some of the code. I now have the poly data information (# of cells, # of points, and Bounds updating in ParaView) However, for poly data objects to be rendered (and their data arrays to be copied to the output), is the best way to set the update extents by:<br><br></div>executive->SetUpdateExtent( vtkInformation *, int piece, int numPieces, int ghostLevel );<br><br></div><div>I'm not that familiar with updating unstructured datasets. Image data is simple because the extents are based off the size of the image. Also, for understanding the description of "pieces", since they are subsets of unstructured datasets, does a piece correspond to individual cells or other information held within the poly data? And just one more question, is there a good place to find an explanation of what is / how to set up a PRODUCER, because I read that the producer determines what a piece means...<br></div><div><br></div>Thanks for the help!<span><font color="#888888"><br><br></font></span></div><span><font color="#888888">Kevin<br></font></span></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 25, 2015 at 6:42 AM, Utkarsh Ayachit <span dir="ltr"><<a href="mailto:utkarsh.ayachit@kitware.com" target="_blank">utkarsh.ayachit@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">RequestData doesn't get called unless the pipeline determines that something has changed. This is at core of VTK's demand driven execution pipeline. You may want to checkout Berk's blog (<a href="http://www.kitware.com/blog/home/post/831" target="_blank">http://www.kitware.com/blog/home/post/831</a>) about how you can use `CONTINUE_EXECUTING` key for "streaming".<div><br></div><div>Utkarsh</div></div><br><div class="gmail_quote"><div><div><div dir="ltr">On Wed, Jun 24, 2015 at 2:32 PM Dean, Kevin <<a href="mailto:kevin.dean@decisionsciencescorp.com" target="_blank">kevin.dean@decisionsciencescorp.com</a>> wrote:<br></div></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div><div><span style="font-family:monospace,monospace">I was wondering if anyone has run into this problem before. I am streaming vtkPolyData objects into ParaView, but for some reason (after my UpdatePipeline function is called), the executive does not call RequestData upon an Update command. Could there be any reasons for this?<br><br></span></div><span style="font-family:monospace,monospace">Here is my snippet:<br><br><span style="color:rgb(116,27,71)"><b>void</b></span> <b>VTKPolyDataObjectsDDSReader::UpdateMyPipeline</b>(<span style="color:rgb(56,118,29)">vtkPolyData</span>* poly_data)<br>{<br></span></div><span style="font-family:monospace,monospace"> <span style="color:rgb(56,118,29)">// DEBUG:</span><br></span><div><span style="font-family:monospace,monospace"> <span style="color:rgb(56,118,29)">// printf("%s\n", __PRETTY_FUNCTION__);</span><br><br> <span style="color:rgb(56,118,29)">VTKPolyDataObjectsDDSReader</span>::<b><span style="color:rgb(153,0,255)">UpdateInformation</span></b>();<br> <span style="color:rgb(56,118,29)">vtkStreamingDemandDrivenPipeline</span>* executive = <span style="color:rgb(56,118,29)">vtkStreamingDemandDrivenPipeline</span>::<i>SafeDownCast</i>(<span style="color:rgb(56,118,29)">VTKPolyDataObjectsDDSReader</span>::<span style="color:rgb(153,0,255)"><b>GetExecutive</b></span>());<br><br> <b><span style="color:rgb(116,27,71)">if</span></b> (!executive)<br> {<br> <b><span style="color:rgb(116,27,71)">return</span></b>;<br> }<br><br> <b><span style="color:rgb(116,27,71)">this</span></b>-><span style="color:rgb(0,0,255)">poly_data</span> = poly_data;<br><br> <span style="color:rgb(116,27,71)"><b>for</b></span> (<span style="color:rgb(116,27,71)"><b>int</b></span> i = 0; i < <span style="color:rgb(116,27,71)"><b>this</b></span>-><span style="color:rgb(0,0,255)">poly_data</span>-><span style="color:rgb(153,0,255)"><b>GetNumberOfPieces</b></span>(); i++)<br> {<br> executive-><span style="color:rgb(153,0,255)"><b>SetUpdateExtent</b></span>(0, i, <span style="color:rgb(116,27,71)"><b>this</b></span>-><span style="color:rgb(0,0,255)">poly_data</span>-><span style="color:rgb(153,0,255)"><b>GetNumberOfPieces</b></span>(), 0);<br> <span style="color:rgb(106,168,79)">VTKPolyDataObjectsDDSReader</span>::<span style="color:rgb(153,0,255)"><b>Update</b></span>();<br> }<br>}</span><br><br></div><div>Any help is appreciated! Thanks guys.<br><br></div><div>Kevin E. Dean<br><br></div><div>P.S. - also attached is a screenshot of what some of the output looks like.<br></div></div>
<br>
</div></div><span><font color="#888888">This email and its contents are confidential. If you are not the
intended recipient, please do not disclose or use the information within
this email or its attachments. If you have received this email in
error, please report the error to the sender by return email and
delete this communication from your records.</font></span></blockquote></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
<br>
<span><font color="#888888">This email and its contents are confidential. If you are not the
intended recipient, please do not disclose or use the information within
this email or its attachments. If you have received this email in
error, please report the error to the sender by return email and
delete this communication from your records.</font></span>