<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2016-07-05 9:48 GMT+02:00 Elvis Stansvik <span dir="ltr"><<a href="mailto:elvis.stansvik@orexplore.com" target="_blank">elvis.stansvik@orexplore.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"><div><div>The ExecuteDataWithInformation function is described as a convenience function that image readers can implement instead of RequestData. The former is called by the latter as follows:<br><br>//----------------------------------------------------------------------------<br>// This is the superclasses style of Execute method.  Convert it into<br>// an imaging style Execute method.<br>int vtkImageAlgorithm::RequestData(<br>  vtkInformation* request,<br>  vtkInformationVector** vtkNotUsed( inputVector ),<br>  vtkInformationVector* outputVector)<br>{<br>  // the default implimentation is to do what the old pipeline did find what<br>  // output is requesting the data, and pass that into ExecuteData<br><br>  // which output port did the request come from<br>  int outputPort =<br>    request->Get(vtkDemandDrivenPipeline::FROM_OUTPUT_PORT());<br><br>  // if output port is negative then that means this filter is calling the<br>  // update directly, in that case just assume port 0<br>  if (outputPort == -1)<br>      {<br>      outputPort = 0;<br>      }<br><br>  // get the data object<br>  vtkInformation *outInfo =<br>    outputVector->GetInformationObject(outputPort);<br>  // call ExecuteData<br>  this->SetErrorCode( vtkErrorCode::NoError );<br>  if (outInfo)<br>    {<br>    this->ExecuteDataWithInformation( outInfo->Get(vtkDataObject::DATA_OBJECT()),<br>                                      outInfo );<br>    }<br>  else<br>    {<br>    this->ExecuteData(NULL);<br>    }<br>  // Check for any error set by downstream filter (IO in most case)<br>  if ( this->GetErrorCode() )<br>    {<br>    return 0;<br>    }<br><br>  return 1;<br>}<br><br></div>So all it does is get the output port from which the request came from, request the output information and output data object and pass it along to ExecuteDataWithInformation. In my case I only have one output port (port 0), so that's what I used when I implemented RequestData.<br><br></div><div>I'm wondering if I should switch to implementing ExecuteDataWithInformation. The last thing it does is check for errors set by downstream filters with GetErrorCode(). Is this something I should be doing? I can't </div></div></blockquote><div><br></div><div>Sorry I meant "the last thing vtkImageAlgorithm::RequestData does", not "the last thing it does".<br><br></div><div>Elvis<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>see that any of the other image readers that have chosen to implement RequestData are doing this (vtkDEMReader, vtkVolume16Reader, ...).<br><br></div><div>Thanks for any advice,<br></div><div>Elvis<br><br></div></div>
</blockquote></div><br></div></div>