[cig-commits] r13707 - cs/cigma/trunk/src

luis at geodynamics.org luis at geodynamics.org
Wed Dec 17 02:31:40 PST 2008


Author: luis
Date: 2008-12-17 02:31:40 -0800 (Wed, 17 Dec 2008)
New Revision: 13707

Modified:
   cs/cigma/trunk/src/core_list_op.cpp
   cs/cigma/trunk/src/io_vtk.cpp
   cs/cigma/trunk/src/io_vtk.h
   cs/cigma/trunk/src/io_vtk_reader.cpp
   cs/cigma/trunk/src/io_vtk_reader.h
Log:
Updated cigma::ListOp class

Modified: cs/cigma/trunk/src/core_list_op.cpp
===================================================================
--- cs/cigma/trunk/src/core_list_op.cpp	2008-12-17 10:31:38 UTC (rev 13706)
+++ cs/cigma/trunk/src/core_list_op.cpp	2008-12-17 10:31:40 UTC (rev 13707)
@@ -2,12 +2,9 @@
 #include "Common.h"
 #include "Filesystem.h"
 
-//#include "io_hdf5_reader.h"
-//#include "io_vtk_reader.h"
+#include "io_hdf5_reader.h"
+#include "io_vtk_reader.h"
 
-#include "io_vtk.h"
-#include "io_hdf5.h"
-
 // std
 #include <iostream>
 #include <cstdlib>

Modified: cs/cigma/trunk/src/io_vtk.cpp
===================================================================
--- cs/cigma/trunk/src/io_vtk.cpp	2008-12-17 10:31:38 UTC (rev 13706)
+++ cs/cigma/trunk/src/io_vtk.cpp	2008-12-17 10:31:40 UTC (rev 13707)
@@ -22,7 +22,6 @@
 template <> int vtk_datatype_from<unsigned long>()  { return VTK_UNSIGNED_LONG; }
 template <> int vtk_datatype_from<float>()          { return VTK_FLOAT; }
 template <> int vtk_datatype_from<double>()         { return VTK_DOUBLE; }
-template <> int vtk_datatype_from<vtkIdType>()      { return VTK_ID_TYPE; }
 
 /* convert datatype to a string */
 std::string vtk_datatype_name(int datatype)
@@ -190,6 +189,7 @@
     return -1;
 }
 
+/*
 int vtk_print_contents(const char *filename)
 {
     TRI_LOG_STR("vtk_print_contents()");
@@ -258,14 +258,18 @@
 
     return 0;
 }
+*/
 
 #else
 
 
+/*
 int vtk_print_contents(const char *filename)
 {
     throw cigma::Exception("vtk_print_contents", "Error: Cigma not configured with VTK library", 1);
     return -1;
 }
+*/
 
+
 #endif /* HAVE_VTK */

Modified: cs/cigma/trunk/src/io_vtk.h
===================================================================
--- cs/cigma/trunk/src/io_vtk.h	2008-12-17 10:31:38 UTC (rev 13706)
+++ cs/cigma/trunk/src/io_vtk.h	2008-12-17 10:31:40 UTC (rev 13707)
@@ -18,10 +18,6 @@
 } vtkGridType;
 
 
-int vtk_print_contents(const char *filename);
-
-
-
 #ifdef HAVE_VTK
 
 #include <string>
@@ -31,6 +27,7 @@
 #include "tri_logger.hpp"
 #include "Exception.h"
 
+#include "vtkDataSetReader.h"
 #include "vtkRectilinearGridReader.h"
 #include "vtkStructuredGridReader.h"
 #include "vtkUnstructuredGridReader.h"
@@ -50,6 +47,11 @@
 #include "vtkDataArray.h"
 #include "vtkDataArraySelection.h"
 
+#include "vtkIntArray.h"
+#include "vtkLongArray.h"
+#include "vtkFloatArray.h"
+#include "vtkDoubleArray.h"
+
 #include "vtkIdList.h"
 #include "vtkCell.h"
 #include "vtkGenericCell.h"
@@ -63,6 +65,7 @@
     throw cigma::Exception("vtk_datatype_from", "no mapping available for this VTK datatype");
 }
 
+
 std::string vtk_datatype_name(int datatype);
 
 vtkDataSetReader* vtk_read_legacy(const char *filename, vtkGridType& gridType);
@@ -71,8 +74,6 @@
 
 int vtk_celldim(int cellType);
 
-int vtk_print_contents(const char *filename);
-
 template <typename T>
 int vtk_read_pointdata(vtkDataSet* dataset, const char *loc, T** data, int *num, int *dim)
 {
@@ -116,11 +117,11 @@
         if (datatype != vtk_datatype_from<T>())
         {
             std::ostringstream stream;
-            string name = vtk_datatype_name(datatype);
-            string expected  = vtk_datatype_name(vtk_datatype_from<T>());
-            stream << "Invalid vtk datatype (got "
-                   << name << " array, expected "
-                   << expected << " array)"
+            std::string name = vtk_datatype_name(datatype);
+            std::string expected  = vtk_datatype_name(vtk_datatype_from<T>());
+            stream << "Invalid vtk datatype "
+                   << "(got " << name << " array, "
+                   << "expected " << expected << " array)"
                    << std::ends;
             throw cigma::Exception("vtk_read_pointdata", stream.str(), 3);
         }
@@ -229,6 +230,8 @@
     int npts;
     int ndims;
 
+    CoordType* array = 0;
+
     int cellType = dataset->GetCellType(0); // XXX: assumes uniform cell types
 
     npts = dataset->GetNumberOfPoints();
@@ -285,6 +288,8 @@
     int ncells;
     int nverts;
 
+    IdType* array = 0;
+
     // XXX: write function to check that the entire array of cell types is uniform
 
     vtkCell *firstCell = dataset->GetCell(0); // XXX: assumes uniform cell types

Modified: cs/cigma/trunk/src/io_vtk_reader.cpp
===================================================================
--- cs/cigma/trunk/src/io_vtk_reader.cpp	2008-12-17 10:31:38 UTC (rev 13706)
+++ cs/cigma/trunk/src/io_vtk_reader.cpp	2008-12-17 10:31:40 UTC (rev 13707)
@@ -40,8 +40,8 @@
 VtkReader::VtkReader()
 {
     dataset = 0;
-    legacy_reader = 0;
-    xml_reader = 0;
+    legacyReader = 0;
+    xmlReader = 0;
     gridType = GRID_NULL;
 }
 
@@ -361,7 +361,7 @@
     */
 
     TRI_LOG_STR("VtkReader::getCoordinates()");
-    return vtk_read_coordinates(this->dataset, loc, coords, nno, nsd);
+    return vtk_read_coordinates(this->dataset, loc, coordinates, nno, nsd);
 }
 
 int VtkReader::getConnectivity(const char *loc, int **connectivity, int *nel, int *ndofs)
@@ -410,6 +410,76 @@
 }
 
 
+int vtk_print_contents(const char *filename)
+{
+    TRI_LOG_STR("vtk_print_contents()");
+    TRI_LOG(filename);
+
+    cout << "Listing contents of VTK file '" << filename << "'" << endl;
+
+    VtkReader reader;
+    reader.open(filename, "r");
+
+    if (reader.dataset == 0)
+    {
+        return -1;
+    }
+
+    vtkDataSet* dataset = reader.dataset;
+    vtkPointData* pointData = dataset->GetPointData();
+    vtkCellData* cellData = dataset->GetCellData();
+
+    if (false)
+    {
+        pointData->PrintSelf(cout, 0);
+        cellData->PrintSelf(cout, 0);
+    }
+
+    int nno = dataset->GetNumberOfPoints();
+    int nel = dataset->GetNumberOfCells();
+
+    if (nno > 0) { cout << "Points = " << nno << endl; }
+    if (nel > 0) { cout << "Cells  = " << nel << endl; }
+
+    int i,n;
+    int numArrays, numTuples, numComponents;
+
+    numArrays = pointData->GetNumberOfArrays();
+    if (numArrays > 0)
+    {
+        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;
+        }
+    }
+
+    numArrays = cellData->GetNumberOfArrays();
+    if (numArrays > 0)
+    {
+        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;
+        }
+    }
+
+    return 0;
+}
+
+
 #else
 
 //
@@ -455,5 +525,11 @@
     return -1;
 }
 
+int vtk_print_contents(const char *filename)
+{
+    throw cigma::Exception("vtk_print_contents", "Error: Cigma not configured with VTK library", 1);
+    return -1;
+}
 
+
 #endif

Modified: cs/cigma/trunk/src/io_vtk_reader.h
===================================================================
--- cs/cigma/trunk/src/io_vtk_reader.h	2008-12-17 10:31:38 UTC (rev 13706)
+++ cs/cigma/trunk/src/io_vtk_reader.h	2008-12-17 10:31:40 UTC (rev 13707)
@@ -41,5 +41,8 @@
 #endif
 };
 
+/* XXX: keep here for now */
+int vtk_print_contents(const char *filename);
 
+
 #endif /* __CIGMA_VTK_READER_H__ */



More information about the CIG-COMMITS mailing list