<font size=2 face="sans-serif">In case this subject is eventually interesting
to anyone else, below is basic GraphToTable function. &nbsp;(Thanks Jeff/Brian
for your inputs)</font>
<br>
<br><font size=2 face="sans-serif">vtkTable *createTableFromGraph(vtkGraph
*graph)</font>
<br><font size=2 face="sans-serif">{</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; vtkTable
*myTable = vtkTable::New();</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; //Create
a column named &quot;NodeId&quot;</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; vtkStringArray
*colNodeId = vtkStringArray::New();</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; colNodeId-&gt;SetName(&quot;NodeId&quot;);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; myTable-&gt;AddColumn(colNodeId);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; //Create
columns named &quot;X&quot;, &quot;Y&quot; and &quot;Z&quot;</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; vtkFloatArray
*colX = vtkFloatArray::New();</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; colX-&gt;SetName(&quot;X&quot;);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; myTable-&gt;AddColumn(colX);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; vtkFloatArray
*colY = vtkFloatArray::New();</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; colY-&gt;SetName(&quot;Y&quot;);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; myTable-&gt;AddColumn(colY);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; vtkFloatArray
*colZ = vtkFloatArray::New();</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; colZ-&gt;SetName(&quot;Z&quot;);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; myTable-&gt;AddColumn(colZ);</font>
<br>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; //Fill
the table with data from the graph vertices</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; vtkVertexListIterator
*vertices = vtkVertexListIterator::New();</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; graph-&gt;GetVertices(vertices);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; double
position[3] = {0.0, 0.0, 0.0};</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; vtkIdType
i = 0;</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; while
(vertices-&gt;HasNext())</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; vertices-&gt;Next();</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; //Add the vertex ID to the &quot;NodeId&quot;
column</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; char vertexId[10];</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; sprintf(vertexId, &quot;%d&quot;,i); //Convert
the vertex ID to a string</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; colNodeId-&gt;InsertNextValue( vertexId );</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; //Add the position values to columns &quot;X&quot;,
&quot;Y&quot; and &quot;Z&quot;</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; graph-&gt;GetPoint(i, position);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; colX-&gt;InsertNextValue( position[0] );</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; colY-&gt;InsertNextValue( position[1] );</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; colZ-&gt;InsertNextValue( position[2] );</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; ++i;</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; return
myTable;</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif">Cheers,</font>
<br>
<br><font size=2 face="sans-serif">JB</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">From:</font>
<td><font size=1 face="sans-serif">Jeff Baumes &lt;jeff.baumes@kitware.com&gt;</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font>
<td><font size=1 face="sans-serif">Jason BELLONE &lt;JBELLONE@unog.ch&gt;</font>
<tr>
<td valign=top><font size=1 color=#5f5f5f face="sans-serif">Cc:</font>
<td><font size=1 face="sans-serif">vtkusers@vtk.org</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font>
<td><font size=1 face="sans-serif">19/04/2010 16:47</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font>
<td><font size=1 face="sans-serif">Re: [vtkusers] vtkGraphToTable</font></table>
<br>
<hr noshade>
<br>
<br>
<br><tt><font size=2>You are right that vtkDataObjectToTable will not transfer
points to<br>
the table, because points are treated as a special array outside the<br>
point (or vertex) data. It would be great to see a &quot;TransferPoints&quot;<br>
option to vtkDataObjectToTable to take care of this case.<br>
<br>
Jeff<br>
<br>
On Fri, Apr 16, 2010 at 1:14 PM, Jason BELLONE &lt;JBELLONE@unog.ch&gt;
wrote:<br>
&gt; Thanks Brian,<br>
&gt;<br>
&gt; I really appreciate your suggestions! Please forgive my ignorance,
but I'm a<br>
&gt; bit unclear on parameterizing vtkDataObjectToTable. Using the<br>
&gt; vtkRandomGraphSource-&gt;vtkGraphLayout-&gt;vtkDataObjectToTable-&gt;vtkTableWriter<br>
&gt; pipeline, I get only a list of vertexIds (with SetFieldType(3)) -
but no<br>
&gt; coordinates (posX, posY, posZ).<br>
&gt;<br>
&gt; P.S. I'm using VisTrails to simulate which doesn't have<br>
&gt; vtkDelimitedTextWriter<br>
&gt;<br>
&gt; For some background, the reason we're following this approach is to
use vtk<br>
&gt; to produce graph data models as vtkTables. The table is used as source
for a<br>
&gt; 3d game engine (OGRE) where the id, x, y, z records are used to generate<br>
&gt; null 3d points. Game assets are then attached to these points.<br>
&gt;<br>
&gt; Thank you very much for the assistance,<br>
&gt;<br>
&gt; JB<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Powered by </font></tt><a href=www.kitware.com><tt><font size=2>www.kitware.com</font></tt></a><tt><font size=2><br>
&gt;<br>
&gt; Visit other Kitware open-source projects at<br>
&gt; </font></tt><a href=http://www.kitware.com/opensource/opensource.html><tt><font size=2>http://www.kitware.com/opensource/opensource.html</font></tt></a><tt><font size=2><br>
&gt;<br>
&gt; Please keep messages on-topic and check the VTK FAQ at:<br>
&gt; </font></tt><a href=http://www.vtk.org/Wiki/VTK_FAQ><tt><font size=2>http://www.vtk.org/Wiki/VTK_FAQ</font></tt></a><tt><font size=2><br>
&gt;<br>
&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; </font></tt><a href=http://www.vtk.org/mailman/listinfo/vtkusers><tt><font size=2>http://www.vtk.org/mailman/listinfo/vtkusers</font></tt></a><tt><font size=2><br>
&gt;<br>
&gt;<br>
</font></tt>
<br>
<br>