[cig-commits] r11477 - cs/benchmark/cigma/trunk/src
luis at geodynamics.org
luis at geodynamics.org
Wed Mar 19 12:00:10 PDT 2008
Author: luis
Date: 2008-03-19 12:00:10 -0700 (Wed, 19 Mar 2008)
New Revision: 11477
Modified:
cs/benchmark/cigma/trunk/src/ListCmd.cpp
cs/benchmark/cigma/trunk/src/VtkList.cpp
cs/benchmark/cigma/trunk/src/VtkList.h
Log:
Make sure the list command supports the VTK XML format as well
Modified: cs/benchmark/cigma/trunk/src/ListCmd.cpp
===================================================================
--- cs/benchmark/cigma/trunk/src/ListCmd.cpp 2008-03-19 19:00:09 UTC (rev 11476)
+++ cs/benchmark/cigma/trunk/src/ListCmd.cpp 2008-03-19 19:00:10 UTC (rev 11477)
@@ -76,21 +76,25 @@
path_splitext(filename, fileroot, extension);
- if (extension == ".vtk")
+ if (extension == ".h5")
{
- vtkls(filename.c_str());
- }
- else if (extension == ".h5")
- {
int ret;
string cmd = "h5ls -r ";
cmd += filename;
ret = system(cmd.c_str());
return ret;
}
+ else if (extension == ".vtk")
+ {
+ list_vtk(filename.c_str());
+ }
+ else if (extension == ".vts")
+ {
+ list_vts(filename.c_str());
+ }
else
{
- cerr << "list: File extension must be .h5 or .vtk"
+ cerr << "list: File extensions must be HDF5(.h5) or VTK(.vtk, .vts)"
<< " (found '" << extension << "')" << endl;
return 2;
}
Modified: cs/benchmark/cigma/trunk/src/VtkList.cpp
===================================================================
--- cs/benchmark/cigma/trunk/src/VtkList.cpp 2008-03-19 19:00:09 UTC (rev 11476)
+++ cs/benchmark/cigma/trunk/src/VtkList.cpp 2008-03-19 19:00:10 UTC (rev 11477)
@@ -1,13 +1,23 @@
+#include <cassert>
#include "VtkList.h"
+
+#include "vtkDataSetReader.h"
+#include "vtkXMLStructuredGridReader.h"
+
#include "vtkDataSet.h"
+#include "vtkStructuredGrid.h"
+
#include "vtkPointData.h"
#include "vtkCellData.h"
#include "vtkDataArray.h"
+
using namespace std;
+
// ---------------------------------------------------------------------------
+/*
VtkFileType getFileType(vtkDataSetReader *reader)
{
// XXX: are these mutually exclusive?
@@ -23,8 +33,9 @@
return VTK_FILE_RECTILINEAR_GRID;
return VTK_FILE_NONE;
-}
+} // */
+
const char *getFileTypeName(VtkFileType fileType)
{
if (fileType == VTK_FILE_POLYDATA)
@@ -40,39 +51,13 @@
return "none";
}
+
// ---------------------------------------------------------------------------
-void vtkls(const char *filename)
+void vtkls(vtkDataSet *dataset)
{
- vtkDataSetReader *reader = vtkDataSetReader::New();
- reader->SetFileName(filename);
- cout << "Reading " << filename << endl;
+ assert(dataset != 0);
- int ierr = -1;
-
- ierr = reader->OpenVTKFile(); // does file exist?
- if (ierr == 0)
- {
- cerr << "Could not open " << filename << endl;
- exit(1);
- }
-
- ierr = reader->ReadHeader(); // is the vtk header present?
- if (ierr == 0)
- {
- cerr << "Unrecognized file " << filename << endl;
- exit(1);
- }
-
-
- // ---------------------------------------------------
-
- reader->Update();
- //reader->PrintSelf(cout, 0);
-
- vtkDataSet *dataset = reader->GetOutput();
- //dataset->PrintSelf(cout, 0);
-
vtkPointData *pointData = dataset->GetPointData();
//pointData->PrintSelf(cout, 0);
@@ -103,47 +88,95 @@
int numArrays;
int numTuples, numComponents;
- const bool group_by_arrays = true;
- const bool group_by_class = false;
-
-
- if (group_by_arrays)
+ numArrays = pointData->GetNumberOfArrays();
+ if (numArrays > 0)
{
- numArrays = pointData->GetNumberOfArrays();
- if (numArrays > 0)
+ for (i = 0; i < numArrays; i++)
{
- for (i = 0; i < numArrays; i++)
- {
- vtkDataArray *dataArray = pointData->GetArray(i);
- const char *name = pointData->GetArrayName(i);
- numTuples = dataArray->GetNumberOfTuples();
- numComponents = dataArray->GetNumberOfComponents();
- cout << "PointDataArray[" << i << "] = " << name << " ";
- //cout << dataArray->GetClassName() << " ";
- cout << "(" << numTuples << " x " << numComponents << ")";
- cout << endl;
- }
+ vtkDataArray *dataArray = pointData->GetArray(i);
+ const char *name = pointData->GetArrayName(i);
+ numTuples = dataArray->GetNumberOfTuples();
+ numComponents = dataArray->GetNumberOfComponents();
+ cout << "PointDataArray[" << i << "] = " << name << " ";
+ //cout << dataArray->GetClassName() << " ";
+ cout << "(" << numTuples << " x " << numComponents << ")";
+ cout << endl;
}
+ }
- numArrays = cellData->GetNumberOfArrays();
- if (numArrays > 0)
+ numArrays = cellData->GetNumberOfArrays();
+ if (numArrays > 0)
+ {
+ for (i = 0; i < numArrays; i++)
{
- for (i = 0; i < numArrays; i++)
- {
- vtkDataArray *dataArray = cellData->GetArray(i);
- const char *name = cellData->GetArrayName(i);
- numTuples = dataArray->GetNumberOfTuples();
- numComponents = dataArray->GetNumberOfComponents();
- cout << "CellDataArray[" << i << "] = " << name << " ";
- //cout << dataArray->GetClassName() << " ";
- cout << "(" << numTuples << " x " << numComponents << ")";
- cout << endl;
- }
+ vtkDataArray *dataArray = cellData->GetArray(i);
+ const char *name = cellData->GetArrayName(i);
+ numTuples = dataArray->GetNumberOfTuples();
+ numComponents = dataArray->GetNumberOfComponents();
+ cout << "CellDataArray[" << i << "] = " << name << " ";
+ //cout << dataArray->GetClassName() << " ";
+ cout << "(" << numTuples << " x " << numComponents << ")";
+ cout << endl;
}
}
+ return;
+}
+
+
+// ---------------------------------------------------------------------------
+
+void list_vtk(const char *filename)
+{
+ int outputType;
+ vtkDataSetReader *reader = vtkDataSetReader::New();
+
+ reader->SetFileName(filename);
+ cout << "Reading " << filename << endl;
+
+ int ierr = -1;
+
+ ierr = reader->OpenVTKFile(); // does file exist?
+ if (ierr == 0)
+ {
+ cerr << "Could not open " << filename << endl;
+ exit(1);
+ }
+
+ ierr = reader->ReadHeader(); // is the vtk header present?
+ if (ierr == 0)
+ {
+ cerr << "Unrecognized file " << filename << endl;
+ exit(1);
+ }
+
+ outputType = reader->ReadOutputType();
+ if (outputType < 0)
+ {
+ cerr << "Invalid VTK file? " << filename << endl;
+ exit(1);
+ }
+
+
+ // ---------------------------------------------------
+ reader->Update();
+ //reader->PrintSelf(cout, 0);
+
+ vtkDataSet *dataset = reader->GetOutput();
+ //dataset->PrintSelf(cout, 0);
+
+ const bool group_by_arrays = true;
+ const bool group_by_class = false;
+
+ if (group_by_arrays)
+ {
+ vtkls(dataset);
+ }
+
if (group_by_class)
{
+ int n, i;
+
n = reader->GetNumberOfFieldDataInFile();
for (i = 0; i < n; i++)
{
@@ -181,5 +214,37 @@
}
}
+ reader->Delete();
+
return;
}
+
+
+void list_vts(const char *filename)
+{
+ vtkXMLStructuredGridReader *reader = vtkXMLStructuredGridReader::New();
+
+ int canReadFile = 0;
+ canReadFile = reader->CanReadFile(filename);
+
+ if (!canReadFile)
+ {
+ cerr << "Could not read " << filename << endl;
+ exit(1);
+ }
+
+ reader->SetFileName(filename);
+ cout << "Reading " << filename << endl;
+
+ reader->Update();
+ //reader->PrintSelf(cout, 0);
+
+ vtkStructuredGrid *sgrid = reader->GetOutput();
+ vtkDataSet *dataset = static_cast<vtkDataSet*>(sgrid);
+
+ vtkls(dataset);
+
+ reader->Delete();
+}
+
+// ---------------------------------------------------------------------------
Modified: cs/benchmark/cigma/trunk/src/VtkList.h
===================================================================
--- cs/benchmark/cigma/trunk/src/VtkList.h 2008-03-19 19:00:09 UTC (rev 11476)
+++ cs/benchmark/cigma/trunk/src/VtkList.h 2008-03-19 19:00:10 UTC (rev 11477)
@@ -1,7 +1,6 @@
#ifndef __VTK_LIST_H__
#define __VTK_LIST_H__
-#include "vtkDataSetReader.h"
typedef enum {
VTK_FILE_NONE,
@@ -12,10 +11,11 @@
VTK_FILE_RECTILINEAR_GRID
} VtkFileType;
-VtkFileType getFileType(vtkDataSetReader *reader);
+//VtkFileType getFileType(vtkDataSetReader *reader);
const char *getFileTypeName(VtkFileType fileType);
+void list_vtk(const char *filename);
+void list_vts(const char *filename);
-void vtkls(const char *filename);
#endif
More information about the cig-commits
mailing list