Hey all,<br><br>I am trying to extract a section of my datasets using
vtkSelection. I currently have a GUI that the user clicks on to select
a start and end point using vtkPointPicker, returning the PointID. With
a starting POINTID and ending POINTID, i then use a vtkSelection with
field type POINT, ContentType GLOBALIDS to extract a dataset containing
the points (with vtkSelectionNode&#39;s SetSelectionList correctly set I
believe). However, I always end up extracting an empty grid.<br>
<br>I can&#39;t figure out if:<br> My vtkSelectionNode is set up incorrectly<br> I&#39;m using vtkExtractSelection incorrectly.<br> The vtkPointPicker doesnt actually get GLOBALIDS ?<br> Missing an update somewhere?<br><br>

Here is the  code:<br><br>// Set up vtkSelectionNode<br>    vtkSelection* selection = vtkSelection::New();<br>    vtkSelectionNode* selectionNode = vtkSelectionNode::New();<br>    selectionNode-&gt;SetFieldType(<div id=":91" class="ii gt">
vtkSelectionNode::POINT);<br>
    selectionNode-&gt;SetContentType(vtkSelectionNode::GLOBALIDS);<br><br>// Populate the selection node with our GLOBALIDS (obtained from vtkPointPicker)<br>    vtkIntArray* intarray = vtkIntArray::New();<br>    for (int a = first; a &lt; second; a++)<br>

    {<br>        intarray-&gt;InsertNextValue(a);<br>    }<br>    selectionNode-&gt;SetSelectionList(intarray);<br>    selection-&gt;AddNode(selectionNode);<br><br>// Some setup stuff, Our source data is from a multiblock data set<br>

    vtkMultiBlockDataSet *extractFrom = vtkMultiBlockDataSet::SafeDownCast(<a href="http://m_v_modules.at/" target="_blank">m_v_modules.at</a>(0)-&gt;getDataObject());<br>    int nblocks = extractFrom-&gt;GetNumberOfBlocks();<br>
<br>    vtkGeometryFilter *filter = vtkGeometryFilter::New();<br>
    vtkDataSetMapper *mapper = vtkDataSetMapper::New();<br>    int counter=0;<br>    vtkExtractSelection* extractSelection = vtkExtractSelection::New();<br><br>// Iterate through our datasets (structured grids) and apply vtkExtractSelection to them. Always extracts empty!<br>

    vtkCompositeDataIterator *iter = extractFrom-&gt;NewIterator();<br>    iter-&gt;InitTraversal();<br><br>    int totalpoints = 0;<br>    while (!iter-&gt;IsDoneWithTraversal())<br>    {<br>        vtkDataSet* ds = vtkDataSet::SafeDownCast(iter-&gt;GetCurrentDataObject());<br>

        if (ds)<br>        {<br>            const char* name = ds-&gt;GetClassName();    /// Temp debugger<br>            extractSelection-&gt;RemoveAllInputs();<br>            extractSelection-&gt;SetInput(0, ds);    /// Set the vtkDataSet for extraction<br>

            extractSelection-&gt;SetInput(1, selection);    /// Set the vtkSelection for extraction<br>            vtkDataObject* extracted = extractSelection-&gt;GetOutput();<br>            extractSelection-&gt;Update();<br>

            const char* name2 = extracted-&gt;GetClassName();    /// Temp debugger<br>            <br>            vtkUnstructuredGrid* unstructGridTest = vtkUnstructuredGrid::SafeDownCast(extracted);<br>            int ntemp1 = unstructGridTest-&gt;GetNumberOfPoints();<br>

            totalpoints += ntemp1;<br>            counter++;<br>        }<br>        iter-&gt;GoToNextItem();<br>    }<br></div>