Hi,<br><br>How do you name blocks?&nbsp; I was patching the ParaView code how Takuya posted previously on the mailing list and putting the name as field data for each block.&nbsp; Unfortunately the latest changes in the CVS stop this from working.<br>
<br>If there is a better way to do naming I&#39;d prefer to use that.<br><br>Thanks,<br>Paul<br><br>PS this was the post with the patch I was applying -<br><br>2008/3/7 OSHIMA Takuya &lt;<a href="mailto:oshima@eng.niigata-u.ac.jp">oshima@eng.niigata-u.ac.jp</a>&gt;:<br>
Hi,<br>
<br>
As I play with the new composite dataset structures, I came to think<br>
it would indeed be nice if ParaView3 can handle datasets with string<br>
labels (&quot;Porous Material,&quot; &quot;Air,&quot; ... , rather than &quot;DataSet 0,&quot;<br>
&quot;DataSet 1,&quot; ...). I mean, for example, VTK/IO/vtkEnsight6Reader.cxx<br>
has a fragment of code to assign its output a string label.<br>
<br>
 &nbsp;vtkCharArray* nmArray = vtkCharArray::New();<br>
 &nbsp;nmArray-&gt;SetName(&quot;Name&quot;);<br>
 &nbsp;size_t len = strlen(name);<br>
 &nbsp;nmArray-&gt;SetNumberOfTuples<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">(static_cast&lt;vtkIdType&gt;(len)+1);<br>
 &nbsp;char* copy = nmArray-&gt;GetPointer(0);<br>
 &nbsp;memcpy(copy, name, len);<br>
 &nbsp;copy[len] = &#39;\0&#39;;<br>
 &nbsp;output-&gt;GetFieldData()-&gt;AddArray(nmArray);<br>
 &nbsp;nmArray-&gt;Delete();<br>
<br>
I can do the same thing to each member dataset in a MultiBlockDataSet,<br>
but it doesn&#39;t seem there&#39;s a way to display the labels in<br>
ParaView. However if I rewrite the code a bit for Information tab of<br>
Object Inspector (of the CVS head)<br>
<br>
--- Qt/Components/pqProxyInformationWidget.cxx.orig &nbsp; &nbsp; 2008-02-20 08:56:03.000000000 +0900<br>
+++ Qt/Components/pqProxyInformationWidget.cxx &nbsp;2008-03-07 18:40:06.000000000 +0900<br>
@@ -387,7 +387,8 @@<br>
&nbsp;{<br>
 &nbsp; QTreeWidgetItem* node = 0;<br>
<br>
- &nbsp;QString label = info? info-&gt;GetPrettyDataTypeString() : &quot;NA&quot;;<br>
+ &nbsp;QString label = info?<br>
+ &nbsp; &nbsp;(parentItem? info-&gt;GetName() : info-&gt;GetPrettyDataTypeString()): &quot;NA&quot;;<br>
 &nbsp; if (parentItem)<br>
 &nbsp; &nbsp; {<br>
 &nbsp; &nbsp; node = new QTreeWidgetItem(parentItem, QStringList(label));<br>
<br>
or the one for Properties tab of the Extract Block filter,<br>
<br>
--- Qt/Components/pqSignalAdaptorCompositeTreeWidget.cxx.orig &nbsp; 2008-03-01 10:59:23.000000000 +0900<br>
+++ Qt/Components/pqSignalAdaptorCompositeTreeWidget.cxx &nbsp; &nbsp; &nbsp; &nbsp;2008-03-07 18:12:23.000000000 +0900<br>
@@ -395,7 +395,15 @@<br>
 &nbsp; for (unsigned int cc=0; cc &lt; cinfo-&gt;GetNumberOfChildren(); cc++)<br>
 &nbsp; &nbsp; {<br>
 &nbsp; &nbsp; vtkPVDataInformation* childInfo = cinfo-&gt;GetDataInformation(cc);<br>
- &nbsp; &nbsp;QString childLabel = QString(&quot;DataSet %1&quot;).arg(cc);<br>
+ &nbsp; &nbsp;QString childLabel;<br>
+ &nbsp; &nbsp;if(childInfo)<br>
+ &nbsp; &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp;childLabel = QString(&quot;DataSet %1 &nbsp;%2&quot;).arg(cc).arg(childInfo-&gt;GetName());<br>
+ &nbsp; &nbsp; &nbsp;}<br>
+ &nbsp; &nbsp;else<br>
+ &nbsp; &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp;childLabel = QString(&quot;DataSet %1&quot;).arg(cc);<br>
+ &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; bool is_leaf = true;<br>
 &nbsp; &nbsp; if (childInfo &amp;&amp; childInfo-&gt;GetCompositeDataInformation()-&gt;GetDataIsComposite())<br>
 &nbsp; &nbsp; &nbsp; {<br>
<br>
I can see the string labels in addition to dataset numbers. Searching<br>
the list archives of ParaView and VTK I found several similar<br>
discussions held in the past. The modifications above are just<br>
concepts, not ment to be applied to the real source, but would things<br>
like this be an option?<br>
<br>
Takuya</blockquote><br><br><div class="gmail_quote">2008/4/30 OSHIMA Takuya &lt;<a href="mailto:oshima@eng.niigata-u.ac.jp">oshima@eng.niigata-u.ac.jp</a>&gt;:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br>
<br>
I&#39;m so happy to see the string block labeling feature has been finally<br>
added to the CVS head!<br>
<br>
However I found a problem when I ran the Extract Block filter to a<br>
vtkMultiBlockDataSet which has the block structure as shown by the<br>
attached picture1.png (the Properties panel of the Extract Block<br>
filter). In this case I expect to see the labels for the selected<br>
blocks &quot;roofEndWeb&quot; and &quot;internalField&quot; after running the filter, but<br>
in reality what I got was &quot;roofEndWeb&quot; and &quot;1: Unstructured Grid&quot; as<br>
shown by picture2.png (the Information panel of the same filter). The<br>
problem occurrs only when Prune Output is turned on.<br>
<br>
My guess is that the line 232 of vtkExtractBlock.cxx<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clone-&gt;GetMetaData(index)-&gt;Copy(prunedBlock-&gt;GetMetaData(cc));<br>
<br>
should be<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clone-&gt;GetMetaData(index)-&gt;Copy(prunedBlock-&gt;GetMetaData(static_cast<br>
&lt;unsigned int&gt;(0)));<br>
<br>
? (this worked for the case, but I&#39;m not so sure.)<br>
<font color="#888888"><br>
Takuya<br>
</font><br>_______________________________________________<br>
ParaView mailing list<br>
<a href="mailto:ParaView@paraview.org">ParaView@paraview.org</a><br>
<a href="http://www.paraview.org/mailman/listinfo/paraview" target="_blank">http://www.paraview.org/mailman/listinfo/paraview</a><br>
<br></blockquote></div><br>