[Paraview] Assigning string labels to datasets?
OSHIMA Takuya
oshima at eng.niigata-u.ac.jp
Fri Mar 7 05:29:51 EST 2008
Hi,
As I play with the new composite dataset structures, I came to think
it would indeed be nice if ParaView3 can handle datasets with string
labels ("Porous Material," "Air," ... , rather than "DataSet 0,"
"DataSet 1," ...). I mean, for example, VTK/IO/vtkEnsight6Reader.cxx
has a fragment of code to assign its output a string label.
vtkCharArray* nmArray = vtkCharArray::New();
nmArray->SetName("Name");
size_t len = strlen(name);
nmArray->SetNumberOfTuples(static_cast<vtkIdType>(len)+1);
char* copy = nmArray->GetPointer(0);
memcpy(copy, name, len);
copy[len] = '\0';
output->GetFieldData()->AddArray(nmArray);
nmArray->Delete();
I can do the same thing to each member dataset in a MultiBlockDataSet,
but it doesn't seem there's a way to display the labels in
ParaView. However if I rewrite the code a bit for Information tab of
Object Inspector (of the CVS head)
--- Qt/Components/pqProxyInformationWidget.cxx.orig 2008-02-20 08:56:03.000000000 +0900
+++ Qt/Components/pqProxyInformationWidget.cxx 2008-03-07 18:40:06.000000000 +0900
@@ -387,7 +387,8 @@
{
QTreeWidgetItem* node = 0;
- QString label = info? info->GetPrettyDataTypeString() : "NA";
+ QString label = info?
+ (parentItem? info->GetName() : info->GetPrettyDataTypeString()): "NA";
if (parentItem)
{
node = new QTreeWidgetItem(parentItem, QStringList(label));
or the one for Properties tab of the Extract Block filter,
--- Qt/Components/pqSignalAdaptorCompositeTreeWidget.cxx.orig 2008-03-01 10:59:23.000000000 +0900
+++ Qt/Components/pqSignalAdaptorCompositeTreeWidget.cxx 2008-03-07 18:12:23.000000000 +0900
@@ -395,7 +395,15 @@
for (unsigned int cc=0; cc < cinfo->GetNumberOfChildren(); cc++)
{
vtkPVDataInformation* childInfo = cinfo->GetDataInformation(cc);
- QString childLabel = QString("DataSet %1").arg(cc);
+ QString childLabel;
+ if(childInfo)
+ {
+ childLabel = QString("DataSet %1 %2").arg(cc).arg(childInfo->GetName());
+ }
+ else
+ {
+ childLabel = QString("DataSet %1").arg(cc);
+ }
bool is_leaf = true;
if (childInfo && childInfo->GetCompositeDataInformation()->GetDataIsComposite())
{
I can see the string labels in addition to dataset numbers. Searching
the list archives of ParaView and VTK I found several similar
discussions held in the past. The modifications above are just
concepts, not ment to be applied to the real source, but would things
like this be an option?
Takuya
More information about the ParaView
mailing list