<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16850" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Try changing your selection array from vtkIntArray 
to vtkIdTypeArray and check that the filters copy the GLOBALIDS (the default is 
not to copy or interpolate).</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>John.</FONT></DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=remywendy@gmail.com href="mailto:remywendy@gmail.com">da xu</A> 
</DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=vtkusers@vtk.org 
  href="mailto:vtkusers@vtk.org">vtkusers@vtk.org</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Wednesday, July 08, 2009 8:12 
  AM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> [vtkusers] vtkSelection with 
  GLOBALIDS,vtkExtractSelection returns empty</DIV>
  <DIV><BR></DIV>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's SetSelectionList correctly set I believe). However, I 
  always end up extracting an empty grid.<BR><BR>I can't figure out 
  if:<BR>&nbsp;My vtkSelectionNode is set up incorrectly<BR>&nbsp;I'm using 
  vtkExtractSelection incorrectly.<BR>&nbsp;The vtkPointPicker doesnt actually 
  get GLOBALIDS ?<BR>&nbsp;Missing an update somewhere?<BR><BR>Here is the 
  code:<BR><BR>// Set up vtkSelectionNode<BR>&nbsp;&nbsp;&nbsp; vtkSelection* 
  selection = vtkSelection::New();<BR>&nbsp;&nbsp;&nbsp; vtkSelectionNode* 
  selectionNode = vtkSelectionNode::New();<BR>&nbsp;&nbsp;&nbsp; 
  selectionNode-&gt;SetFieldType(
  <DIV class="ii gt" id=:91>vtkSelectionNode::POINT);<BR>&nbsp;&nbsp;&nbsp; 
  selectionNode-&gt;SetContentType(vtkSelectionNode::GLOBALIDS);<BR><BR>// 
  Populate the selection node with our GLOBALIDS (obtained from 
  vtkPointPicker)<BR>&nbsp;&nbsp;&nbsp; vtkIntArray* intarray = 
  vtkIntArray::New();<BR>&nbsp;&nbsp;&nbsp; for (int a = first; a &lt; second; 
  a++)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  intarray-&gt;InsertNextValue(a);<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; 
  selectionNode-&gt;SetSelectionList(intarray);<BR>&nbsp;&nbsp;&nbsp; 
  selection-&gt;AddNode(selectionNode);<BR><BR>// Some setup stuff, Our source 
  data is from a multiblock data set<BR>&nbsp;&nbsp;&nbsp; vtkMultiBlockDataSet 
  *extractFrom = vtkMultiBlockDataSet::SafeDownCast(<A 
  href="http://m_v_modules.at/" 
  target=_blank>m_v_modules.at</A>(0)-&gt;getDataObject());<BR>&nbsp;&nbsp;&nbsp; 
  int nblocks = extractFrom-&gt;GetNumberOfBlocks();<BR><BR>&nbsp;&nbsp;&nbsp; 
  vtkGeometryFilter *filter = vtkGeometryFilter::New();<BR>&nbsp;&nbsp;&nbsp; 
  vtkDataSetMapper *mapper = vtkDataSetMapper::New();<BR>&nbsp;&nbsp;&nbsp; int 
  counter=0;<BR>&nbsp;&nbsp;&nbsp; vtkExtractSelection* extractSelection = 
  vtkExtractSelection::New();<BR><BR>// Iterate through our datasets (structured 
  grids) and apply vtkExtractSelection to them. Always extracts 
  empty!<BR>&nbsp;&nbsp;&nbsp; vtkCompositeDataIterator *iter = 
  extractFrom-&gt;NewIterator();<BR>&nbsp;&nbsp;&nbsp; 
  iter-&gt;InitTraversal();<BR><BR>&nbsp;&nbsp;&nbsp; int totalpoints = 
  0;<BR>&nbsp;&nbsp;&nbsp; while 
  (!iter-&gt;IsDoneWithTraversal())<BR>&nbsp;&nbsp;&nbsp; 
  {<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vtkDataSet* ds = 
  vtkDataSet::SafeDownCast(iter-&gt;GetCurrentDataObject());<BR>&nbsp;&nbsp;&nbsp; 
  &nbsp;&nbsp;&nbsp; if (ds)<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  {<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; const char* name 
  = ds-&gt;GetClassName();&nbsp;&nbsp;&nbsp; /// Temp 
  debugger<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  extractSelection-&gt;RemoveAllInputs();<BR>&nbsp;&nbsp;&nbsp; 
  &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; extractSelection-&gt;SetInput(0, 
  ds);&nbsp;&nbsp;&nbsp; /// Set the vtkDataSet for 
  extraction<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  extractSelection-&gt;SetInput(1, selection);&nbsp;&nbsp;&nbsp; /// Set the 
  vtkSelection for extraction<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  &nbsp;&nbsp;&nbsp; vtkDataObject* extracted = 
  extractSelection-&gt;GetOutput();<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  &nbsp;&nbsp;&nbsp; extractSelection-&gt;Update();<BR>&nbsp;&nbsp;&nbsp; 
  &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; const char* name2 = 
  extracted-&gt;GetClassName();&nbsp;&nbsp;&nbsp; /// Temp 
  debugger<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  <BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  vtkUnstructuredGrid* unstructGridTest = 
  vtkUnstructuredGrid::SafeDownCast(extracted);<BR>&nbsp;&nbsp;&nbsp; 
  &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int ntemp1 = 
  unstructGridTest-&gt;GetNumberOfPoints();<BR>&nbsp;&nbsp;&nbsp; 
  &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; totalpoints += 
  ntemp1;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  counter++;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; 
  &nbsp;&nbsp;&nbsp; iter-&gt;GoToNextItem();<BR>&nbsp;&nbsp;&nbsp; }<BR></DIV>
  <P>
  <HR>

  <P></P>_______________________________________________<BR>Powered by 
  www.kitware.com<BR><BR>Visit other Kitware open-source projects at 
  http://www.kitware.com/opensource/opensource.html<BR><BR>Please keep messages 
  on-topic and check the VTK FAQ at: 
  http://www.vtk.org/Wiki/VTK_FAQ<BR><BR>Follow this link to 
  subscribe/unsubscribe:<BR>http://www.vtk.org/mailman/listinfo/vtkusers<BR></BLOCKQUOTE></BODY></HTML>