<html>
<body>
I called the Update function on filter1 and I get the following error. I
have included the complete code below. <br>
================================================================<br>
vtkStreamingDemandDrivenPipeline (0x9f128f0): Input port 0 of algorithm
vtkAppendPolyData(0x9f112e0) has 0 connections but is not optional.<br>
================================================================<br>
Thanks. <br>
Sunil<br><br>
<i>#include &quot;vtkContourFilter.h&quot;<br>
#include &quot;vtkHierarchicalDataSet.h&quot;<br>
#include &quot;vtkHierarchicalDataSetGeometryFilter.h&quot;<br>
#include &quot;vtkPolyData.h&quot;<br>
#include &quot;vtkXMLMultiGroupDataWriter.h&quot;<br>
#include &quot;vtkXMLHierarchicalDataReader.h&quot;<br>
#include &quot;vtkPointData.h&quot;<br>
#include &quot;vtkHierarchicalDataSetAlgorithm.h&quot;<br>
#include &quot;vtkPolyDataNormals.h&quot;<br>
#include &lt;iostream&gt;<br>
using namespace std;<br>
int main(int argc, char* argv[])<br>
{<br>
&nbsp;&nbsp; //read in HDS<br>
&nbsp;&nbsp; vtkXMLHierarchicalDataReader* reader =
vtkXMLHierarchicalDataReader::New();<br>
&nbsp;&nbsp; reader-&gt;SetFileName( &quot;mb.vtu&quot; );<br>
&nbsp;&nbsp; reader-&gt;Update();<br>
&nbsp;&nbsp; <br>
&nbsp;&nbsp; vtkMultiGroupDataSet* mgd;<br>
&nbsp;&nbsp; mgd = (reader-&gt;GetOutput(0));<br>
&nbsp;&nbsp; cout&lt;&lt;&quot;Getting number of groups
:&quot;&lt;&lt;endl;<br>
&nbsp;&nbsp; cout&lt;&lt;&quot;Number of groups
:&quot;&lt;&lt;mgd-&gt;GetNumberOfGroups()&lt;&lt;endl;<br>
&nbsp;&nbsp; int check = 0;<br>
&nbsp;&nbsp; for ( int grp=0;grp&lt;mgd-&gt;GetNumberOfGroups();grp++
)<br>
&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for ( int
ds=0;ds&lt;mgd-&gt;GetNumberOfDataSets(grp);ds++ )<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //activate scalar
&quot;Density&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check =
dynamic_cast&lt;vtkDataSet*&gt;(mgd-&gt;GetDataSet(grp,ds))-&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
GetPointData()-&gt;SetActiveScalars( &quot;Density&quot; );<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;&quot;CHECK
is :&quot;&lt;&lt;check&lt;&lt;endl;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( check != -1 )<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
cout&lt;&lt;&quot;Group :&quot;&lt;&lt;grp&lt;&lt;&quot; Dataset
:&quot;&lt;&lt;ds&lt;&lt;&quot; set Density&quot;&lt;&lt;endl;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp; }<br>
&nbsp;&nbsp; <br>
&nbsp;&nbsp; <br>
&nbsp;&nbsp; ////////////setup pipelines<br>
&nbsp;&nbsp; vtkHierarchicalDataSetAlgorithm* alg = <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
vtkHierarchicalDataSetAlgorithm::New();<br>
&nbsp;&nbsp; alg-&gt;SetInput( 0, mgd );<br>
&nbsp;&nbsp; alg-&gt;Update();<br>
&nbsp;&nbsp; <br>
&nbsp;&nbsp; <br>
&nbsp;&nbsp; vtkHierarchicalDataSetGeometryFilter* filter1 = <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
vtkHierarchicalDataSetGeometryFilter::New( );<br>
&nbsp;&nbsp; filter1-&gt;SetInputConnection( 0, alg-&gt;GetOutputPort(0)
);<br>
&nbsp;&nbsp; filter1-&gt;Update();<br>
&nbsp;&nbsp; <br>
&nbsp;&nbsp; vtkContourFilter *contour = vtkContourFilter::New();<br>
&nbsp;&nbsp; contour-&gt;SetInputConnection( 0,
filter1-&gt;GetOutputPort(0) );<br>
&nbsp;&nbsp; contour-&gt;SetValue( 0, 0.2 );<br>
&nbsp;&nbsp; contour-&gt;UseScalarTreeOff();<br>
&nbsp;&nbsp; <br>
&nbsp;&nbsp; vtkPolyDataNormals *normals =
vtkPolyDataNormals::New();<br>
&nbsp;&nbsp; normals-&gt;SetInputConnection( 0,
contour-&gt;GetOutputPort(0) );<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp; vtkHierarchicalDataSetGeometryFilter* filter = <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
vtkHierarchicalDataSetGeometryFilter::New( );<br>
&nbsp;&nbsp; filter-&gt;SetInput( normals-&gt;GetOutput(0) );<br><br>
&nbsp;&nbsp; int numPolys =
filter-&gt;GetOutput()-&gt;GetNumberOfPolys();<br>
&nbsp;&nbsp; std::cout &lt;&lt; &quot;&nbsp;&nbsp;&nbsp;&nbsp; The number
of polys is &quot;&lt;&lt; numPolys &lt;&lt; std::endl;<br><br>
&nbsp;&nbsp; //clean up<br>
&nbsp;&nbsp; reader-&gt;Delete();<br>
&nbsp;&nbsp; return 0;<br>
}<br><br>
<br><br>
</i>At 09:09 AM 6/7/2007, Marc Cotran wrote:<br>
<blockquote type=cite class=cite cite="">Hi Sunil,<br><br>
I'm not sure if this will help you as I've no experience with that
specific filter, but you could try calling Update() on it before your
std::cout call. VTK pipelines are largely demand driven, so if you don't
render the result of the pipeline, for example, the filter does not
actually execute. Calling Update() forces the object to run.<br><br>
Marc<br>
</blockquote></body>
</html>